Гарний час рухатися; 8-біт швидко гине; коли ви можете придбати плату за 5 доларів (наприклад) STM32F103, яка є досить здатною 32-бітовою мікроконтролером ARM (навіть за допомогою USB!), сумніви часів не змінилися.
У вас вже були чудові відповіді, але в першу чергу я б сказав "забудьте збірку" і майже "забудьте піклуватися про те, як процесор працює на низькому рівні" - одного дня буде кутовий випадок, коли вам потрібно буде заритися в нього (специфічна оптимізація або для налагодження), але ARM-сердечники винятково добре працюють з кодом C (за конструкцією), і вам дуже рідко потрібно заглиблюватися всередину кишок.
Це означає, що ви витратите певну кількість часу на удари головою проти проблем із компіляторами (і особливо лінкерами та файлами), що баффікують вам незрозумілі помилки, але всі вони переважають.
Кишки того, як працюють ARM (тобто книги для процесорів ARM), щільні і не дуже цікаві до того дня, коли вам насправді потрібно оптимізувати (і ви будете вражені, як це нечасто, коли у вас є 32-бітові регістри та ваш PLL ' d тактовий процесор знаходиться в районі 100 МГц).
"Набір інструкцій ARM" старого skool "набагато простіше читати розбирання, ніж набагато новіший" Thumb2 "- що саме ви знайдете в більшості сучасних ARM-апаратів рівня мікроконтролерів (Cortex) - але знову ж таки внутрішніх вказівок інструкцій на мові збірки в основному відходять на другий план; якщо у вас є правильний набір інструментів (особливо пристойний налагоджувач на рівні джерела з точками прориву / один крок тощо), ви просто не надто переймаєтесь тим, що це ARM взагалі.
Опинившись у світі 32-розрядних регістрів та 32-бітної ширини шини даних, і все, що ви коли-небудь хотіли, доступне на мікросхемі, ви ніколи не захочете знову повернутися до 8-бітного процесора; в основному, за те, що "полегшити" та писати код, часто не передбачено розбірливості більш ніж ефективно.
Однак ... периферія ... так, і ТУТ.
Ви впевнені, що в сучасних MCU граєте багато речей, і багато з них - це дуже вигадливі речі; Ви часто знаходите світ вишуканості далеко за межами периферійних пристроїв AVR, PIC та 8051.
Один програмований таймер? Ні, майте вісім! DMA? Як щодо 12 каналів з програмованим пріоритетом та режимом розриву та ланцюговим режимом та автоматичним перезавантаженням і .. і .. і ...
I2C? I2S? Десятки варіантів піксельного приглушення? П'ятнадцять різних способів перепрограмувати флеш-пам’ять? Звичайно!
Часто відчувається, що ви перейшли від голоду до бенкету периферійними пристроями, і звичайно, що є цілі шматки чіпа, яким ви захоплюєтесь, але ледве використовуєте (отже, годинникові решітки).
Кількість апаратного забезпечення на мікросхемі (і варіації цього лише в одній лінійці мікросхем постачальника) на сьогоднішній день є досить приголомшливою. Звичайно, один постачальник мікросхем, як правило, повторно використовує блоки IP, тож коли ви ознайомитесь з певним брендом, це стане простіше, але "лайно в даний час отримано просто".
Якщо що-небудь, периферійні пристрої та їх взаємодія (і DMA, і переривання, і розподіл шини, і, і ...) є настільки складними (і, в деяких випадках, не так, як описано в таблицях), що інженери часто мають улюблений діапазон MCU-модулів ARM і прагнуть дотримуватися цього просто тому, що вони знайомі з периферійними пристроями та інструментами розробки.
Хороші бібліотеки та засоби розробки (тобто швидкий компіляція + цикл налагодження з належним налагоджувачем) та великий набір робочих прикладних проектів з кодом є абсолютно важливими для вашого вибору ARM MCU на сьогодні. Здається, більшість постачальників зараз мають надзвичайно дешеві дошки з оцінювання (
Як я впевнений, ви помітили, як тільки ви вийдете за рівень мікроконтролера з ARM та на рівень SOC (наприклад, Raspberry Pi / etc SOCs стилю Raspberry), то правила повністю змінюються, і справа в тому, для якого Linux ви переходите бігати, тому що - за суттєво нечисленними винятками - ти благаєш божевільний, щоб спробувати щось інше.
В основному; незалежно від процесора, який (можливо) був попередньо обраний для вас на цьому концерті, купіть собі декілька супердешевих комітетів з оцінювання на основі Cortex у кількох різних постачальників (TI, STM, Freescale та багато іншого) здійснити злому з наданим зразком коду.
Заключний рада; як тільки ви знайдете сторінку чи три в таблиці даних, яка описує параметри фіксації штифтів для чіпу чіткого номера деталі, з яким ви працюєте, ви можете роздрукувати його і приклеїти до стіни. Дізнавшись пізно в проекті, що певна комбінація периферійних пристроїв неможлива через прикручування пін-файлу - це не цікаво, а іноді ця інформація настільки захована, що ви б поклялися, що намагаються її приховати :-)