Waktu yang baik untuk bergerak; 8-bit sekarat dengan cepat; ketika Anda dapat membeli papan $ 5 dengan (misalnya) STM32F103 yang merupakan mikrokontroler ARM 32-bit yang cukup mumpuni (bahkan dengan USB!), tidak ada keraguan waktu telah berubah.
Anda sudah memiliki beberapa jawaban yang luar biasa tetapi terutama saya akan mengatakan "lupa berkumpul" dan hampir "lupa peduli tentang bagaimana cpu bekerja pada tingkat rendah" - suatu hari akan ada kasing sudut di mana Anda perlu menggali ke dalamnya (optimasi khusus atau untuk debugging) tetapi core ARM menjalankan kode C dengan sangat baik (sesuai desain) dan Anda jarang perlu menjelajah jauh di dalam nyali.
Ini berarti Anda akan menghabiskan sejumlah waktu untuk membenturkan kepala Anda terhadap masalah dengan kompiler (dan terutama penghubung dan makefile) menampi kesalahan yang tidak jelas pada Anda, tetapi semuanya dapat diatasi.
Nyali bagaimana ARM bekerja (yaitu buku cpu ARM) padat dan tidak begitu menarik sampai Anda benar-benar perlu mengoptimalkan (dan Anda akan kagum betapa jarangnya ketika Anda memiliki register 32 bit dan PLL Anda ' d Jam CPU berada di wilayah 100mhz).
Set instruksi ARM "skool lama" jauh lebih mudah untuk membaca pembongkaran dari pada "Thumb2" yang jauh lebih baru - yang adalah apa yang Anda temukan pada ARM tingkat mikrokontroler modern (Cortex) - tetapi sekali lagi jeroan instruksi bahasa assembly sebagian besar menghilang ke latar belakang; jika Anda memiliki toolset yang tepat (terutama debugger tingkat sumber yang layak dengan breakpoints / langkah tunggal dll) Anda hanya tidak terlalu peduli tentang hal itu menjadi ARM sama sekali.
Setelah Anda berada di dunia register 32-bit dan lebar bus data 32-bit dan semua yang Anda inginkan tersedia dalam chip Anda tidak akan pernah ingin kembali ke CPU 8-bit lagi; pada dasarnya sering tidak ada penalti untuk "santai" dan menulis kode agar dapat dibaca lebih efisien
Namun ... peripheral ... aye dan ADA masalahnya.
Anda benar-benar mendapatkan banyak hal untuk dimainkan di MCU modern, dan banyak hal yang cukup mewah; Anda sering menemukan dunia kecanggihan jauh, jauh melampaui AVR, PIC, dan 8.051 peripheral on-chip.
Satu pengatur waktu yang bisa diprogram? Nah, sudah delapan! DMA? Bagaimana dengan 12 saluran dengan prioritas terprogram dan mode burst serta mode berantai dan auto-reload dan .. dan .. dan ...
I2C? I2S? Puluhan opsi pin muxing? Lima belas cara berbeda untuk memprogram ulang flash on-chip? Yakin!
Seringkali Anda merasa seperti beralih dari kelaparan ke pesta dengan periferal dan biasanya ada satu keping chip yang akan Anda kagumi tetapi jarang digunakan (karenanya; clock gating).
Jumlah perangkat keras on-chip (dan variasi pada hanya dalam satu garis chip vendor) saat ini cukup membingungkan. Salah satu vendor chip tentu saja akan cenderung menggunakan kembali blok IP sehingga setelah Anda terbiasa dengan merek tertentu itu menjadi lebih mudah tetapi "sial sudah mendapat craaaazy saat ini."
Jika apa pun periferal dan interaksinya (dan DMA serta interupsi dan alokasi bus dan dan dan ...) sangat kompleks (dan, kadang-kadang, tidak persis seperti yang dijelaskan dalam lembar data), insinyur sering kali memiliki rangkaian MCU ARM dan cenderung ingin tetap dengan itu hanya karena mereka terbiasa dengan perangkat dan alat pengembangan.
Pustaka dan alat pengembangan yang bagus (mis. Kompilasi cepat + siklus debug dengan debugger yang tepat) dan sekumpulan besar proyek kode contoh bekerja sangat penting untuk pilihan MCU ARM Anda saat ini. Tampaknya sebagian besar vendor sekarang memiliki papan evaluasi yang sangat murah (
Seperti yang saya yakin Anda perhatikan, setelah Anda melampaui level mikrokontroler dengan ARM dan masuk ke level SOC (mis. Raspberry Pi / style style SOCs) maka aturannya akan berubah sepenuhnya dan semua tentang jenis Linux yang Anda gunakan untuk menjalankan, karena - dengan sedikit pengecualian - Anda akan menggonggong gila untuk mencoba hal lain.
Pada dasarnya; terlepas dari CPU yang (mungkin) telah dipilih sebelumnya untuk Anda pada pertunjukan ini, beli sendiri segenggam papan evaluasi berbasis-korteks super murah dari beberapa vendor yang berbeda (TI, STM, Freescale dan banyak lagi yang terpikirkan) dan retas dengan kode sampel yang disediakan.
Saran terakhir; setelah Anda menemukan halaman-atau-tiga di lembar data yang menjelaskan opsi pin-muxing untuk chip nomor bagian persis yang Anda kerjakan, Anda mungkin ingin mencetaknya dan menempelkannya di dinding. Mencari tahu di akhir proyek bahwa kombinasi periferal tertentu tidak mungkin karena pin muxing tidak menyenangkan, dan terkadang info itu begitu terkubur sehingga Anda bersumpah mereka mencoba menyembunyikannya :-)