може да е сполучлив, но е гол кърнел... такива предполагам има десетки. Първо ще проверя дали има по-добро решение, ако не, ще почна да разглеждам кърнелчетата по-подробно, включително и тоя кокос.
Разбира се би било както NXP, така и всички останали да разгледам, само откъде толкова време?

Аз на пръв поглед луминари-каубой ми изглежда най-читава, пък вече ако някой посочи други интересни чипове/производители ще ги погледна по-обстойно...
Мога да направя дълъг списък, но целта ми не е такава
Общо взето много, недомислици, много фалшиви реклами и много бъгове...
Примерно за недомислици - прекъсванията могат да прекъсват инструкции за лоад/стор мултипъл. На всички е ясно, че да прекъсваш асемблерска инструкция е трудна работа и усложнява всичко. И съвсем нормално като погледнеш ератите - не са го направили без бъгове. Но по-важният въпрос - струвало ли си е? Значи при АРМ7 не можеш да прекъсваш мултипъл трансфер, просто прекъсването тръгва веднага след трансфера. А при кортекс прекъсваш трансфера но след това са вкарали пушване на една дузина регистри. Няма логика - прекъсваш един трансфер уж за бързина, пък добавяш друг трансфер...
Поне да бяха запазили банкирането на регистри и да няма пушване, тогава да - прекъсваш трансфер (ако има) и влизаш в прекъсване веднага. Изобщо с това пушване са осрали нещата тотално и за да не станат по-бавни са въвели и нещата като "tail chainning" на прекъсвания. Това го няма в АРМ7, просто защото е абсолютно излишно - при излизане от едно прекъсване може да влезеш в следващото веднага, щото няма спасявания на регистри. На всичкото отгоре тая "кръпка" омазва други неща като SWI/SVC щото при ARM7 си викам SWI функции *БЕЗ* да използвам стек - НУЛА байта стек... Даже благодарение на GCC за всяка системна функция си задавам кои регистри ползва/омазва и в повечето случаи системните функции ми ползват по-малко регистри от стандартната calling конвенция. Така получавам бързи системни функции, не използвам стекове и оставям на нишките повече свободни регистри...
Докато при кортекс кво се получава - задължително ми пъха в стека *ВСИЧКИ* регистри от calling конвенцията. Демек хабят стек. Заради "опашатите" прекъсвания пък не мога да разчитам на нито един от регистрите, демек всички параметри трябва да си ги взема от стека. Демек системната функция става още по-бавна спрямо обикновена функция.
Освен това при АРМ7 системните си функции можех да ги викам от където си искам, докато тук трябва да правя трикове ако искам да извикам системна функция от прекъсвания примерно.
Друго неудобство за мен е премахването на хендлърите... То верно, хендлърите са за ОС и хората дето ползваха АРМ7 без ОС бяха объркани... Но според мен тоя клас контролери е тъпо да се ползват без ОС, още повече че има сума си и безплатни. Съответно АРМ7 беше перфектно решение. Хендлъри и прекъсвания даваха възможност за много ефикасни ОС. На практика един кърнел може да се вкара в няколко стотин байта и да не изисква *НИКАКЪВ* овърхед по нататък. Докато при кортекс мога да имам 100-на прикъсвания и в кода на всяко прекъсване да го съобразявам с това имам или нямам ОС. Демек да дублирам едни и същи неща на много места, вместо да си ги сложа еднократно в хендлъра.
Други грижи са атомичните операции, дето наистина са си проблем за АРМ7. Но като гледам изобщо не са го решили тоя проблем, даже са направили нещата още по-зле. Примерно АРМ7 винаги прави единично четене или единичен запис като атомична операция. Демек ако един таск пише 32-бит думи, друг таск ги чете, то винаги се четат коректни 32-бит данни. Докато при кортекс дори това не е така. Може да прочетеш примерно 16 бита от един запис и 16 бита от друг... Ех, верно става дума за неподравнени операции дето не са възможни (хардуерно) при АРМ7, но... така или иначе подобни неща усложняват живота ни, щото са потенциални източници на бъгове...
А на кортекс не му липсват бъгове

Поне АРМ7 отдавна беше изчистен и последните 5+ години аз не знам за отворен бъг в ядрото. Докато тук имаме ерати.. и то май изобщо не са изчерпателни, щото вече аз лично се сблъсках 3 бъга в SWO интерфейса дето ги няма никъде описани.
Както и да е... не това беше темата
