Sejauh msp430, itu adalah arsitektur yang bagus, alat yang cukup bagus di luar sana mspgcc dan mspgcc4 dan llvm dalam hal ini. binutils tanpa menambal. Anda bisa mendapatkan launchpad dengan harga di bawah $ 5 dengan harga beli beberapa (akhirnya Anda akan menutup sesuatu atau mencairkannya, mencairkannya, memiliki cadangan, esp pada harga ini) ...
Unduh alat-alatnya, semuanya gratis, tulis beberapa baris kode, pelajari cara menautkannya, lihat seberapa besar binernya, rasakan tertanam, garis kode ke ukuran rom, dll.
Bagaimana pro melakukannya. Hampir setiap cara yang dapat Anda bayangkan:
Beberapa perusahaan mandat turun dari tempat tinggi dan tidak ada yang dapat Anda lakukan selain berhenti. Dan Anda mungkin tidak pernah tahu mengapa platform itu dipilih.
Terkadang kontraktor / pelanggan favorit menentukan platform, terkadang Anda bisa mendidik / bernegosiasi, kadang tidak.
Beberapa orang hanya punya favorit, takut akan hal yang tidak diketahui, apa pun. Alasan yang sama mengapa beberapa orang hanya membeli satu merek mobil, karena ayah saya dulu dan ayahnya dulu, dan itu bisa menjadi alasan keseluruhannya.
Beberapa orang fokus pada alat. Di sini, sekali lagi Anda memiliki orang-orang yang loyal terhadap merek, membatasi diri pada perusahaan penyusun favorit mereka dan target apa pun yang mereka dukung, atau alat sumber terbuka favorit dan apa yang mendukungnya. Sistem operasi tertanam favorit dan batasi untuk target yang mendukung.
Dalam beberapa kasus ini adalah tentang alat tetapi dengan cara yang berbeda, seiring waktu Anda mungkin telah menginvestasikan banyak uang dalam kontrak dukungan tahunan dengan vendor (misalnya lengan atau xilinx atau motorola) dan mungkin Anda menyukai dukungan mereka. dan tidak ingin berubah atau iblis yang Anda tahu lebih baik dari iblis yang tidak Anda miliki. Atau bisa jadi itu karena 5 proyek aktif lainnya di perusahaan menggunakan hal ini dan kami sudah memiliki kontrak dukungan dan akan terus membayar untuk tahun itu demi tahun Anda harus memilih salah satu dari solusi vendor tersebut.
Terkadang ini tentang menyelamatkan milipennies. Bagian ini 1,5% lebih murah daripada bagian itu, membuatnya bekerja dengan bagian ini, jangan pedulikan NRE, pikirkan tentang penghematan manufaktur dalam volume.
Terkadang ini tentang yang negatif. Satu vendor mungkin telah mengacaukan perusahaan Anda dengan satu atau lain cara. Gagal memenuhi pasokan suku cadang yang diiklankan menyebabkan keterlambatan atau pembatalan produk Anda. Umpan dan beralih penipuan (biaya $ 50.000 untuk perangkat lunak tidak termasuk biaya $ 1.200 untuk dongle yang diperlukan untuk membuka kunci lisensi, itu adalah item biaya tambahan. Oh dan itu adalah per pengguna untuk lisensi mengambang). Setelah Anda menandatangani NDA untuk melihat manual referensi programmer atau panduan desain referensi, Anda akan mengetahui betapa mengerikannya teknik mereka dan Anda dapat memilih untuk memasukkan daftar hitam semua produk mereka seumur hidup. Sejarah masa lalu dengan dukungan teknis yang mengerikan. Sejumlah alasan dapat menyebabkan Anda untuk tidak pernah mengizinkan orang penjualan mereka di pintu depan, atau membuat Anda tidak pernah melihat situs web mereka lagi.
Kadang-kadang itu ada hubungannya dengan kinerja, antarmuka, dll. Misalnya, Anda memiliki antarmuka yang menggunakan kawat dan perlu tarik ke atas, mikrokontroler merek XYZ seharga $ 3 per bagian memiliki satu set pin I / O yang dapat digunakan tanpa memerlukan perangkat keras eksternal lainnya, merek ABC memiliki bagian $ 3 yang akan memerlukan transistor dan resistor eksternal untuk membuatnya bekerja seminimal mungkin. Contoh Anda tentang msp430, katakan tentang konsumsi daya, bagian A mungkin hanya mengharuskan pengguna untuk menggunakan satu baterai AAA dan berjalan selama berbulan-bulan, bagian B mungkin membutuhkan dua baterai AAA dan berjalan selama berminggu-minggu.
Kasus yang paling langka dari semua adalah untuk benar-benar melakukan rekayasa, survei semua vendor, lakukan matematika konsumsi daya, harga per unit matematika produk Anda, seberapa besar rom yang kita butuhkan dan berapa frekuensi untuk menjalankan chip, lem logika, terus dan terus. Biasanya seseorang (bos / pelanggan / insinyur senior) mengambil pengalaman bertahun-tahun dan menembak dari pinggul (sering menggunakan satu atau lebih dari yang di atas) untuk memilih jalan (sering jalan yang baik menghemat banyak waktu dalam jadwal dan dolar) dan rekayasa dilakukan sekali untuk menyempurnakan platform yang dipilih.
Rekomendasi pribadi saya adalah fleksibel. Sebagian besar merek / keluarga mikrokontroler dalam beberapa bentuk atau mode dapat diperoleh di papan eval dengan harga di bawah $ 50. Sparkfun, olimex atau langsung dari vendor (ti untuk msp430 atau stellaris, dll). Cobalah satu atau lebih dari masing-masing, rasakan apa yang sama dan apa yang berbeda, alat, pemuat, seberapa sulit untuk dibongkar, dll. Anda mendapatkan dua hal dari ini setidaknya, satu adalah ketika Anda dipaksa menyusuri jalan setapak mulai dari level tinggi atau pelanggan, Anda bisa mulai bekerja, kedua adalah ketika giliran Anda untuk memilih platform, Anda lebih terdidik tentang apa yang ada dan tidak ada di luar sana dan dapat memilih platform (kata yang dimuat) yang tepat berdasarkan masalah untuk diselesaikan.
Bahkan jika Anda tidak atau tidak bisa keluar dan menghabiskan uang sebanyak itu pada perangkat keras, sebagian besar memiliki alat yang dapat Anda unduh (gratis), dalam kasus-kasus seperti microchip Anda sekarang bisa mendapatkan kompiler C (dulu Hi-tech) tetapi harus berlangganan (berikan alamat email Anda). gcc suka atau benci itu akan ada di masa depan Anda, desktop atau tertanam, membuat tangan Anda kotor dan belajar menggunakannya sebagai kompiler silang. Coba llvm juga, itu akan ada untuk sementara waktu dan memberikan gcc beberapa kompetisi serius. Pokoknya tulis atau temukan beberapa emulator, mame punya banyak, gdb punya beberapa, dll. Saya sudah menulis satu bernama thumbulator di github, mode ibu jari ARM saja, mirip dengan korteks-m3 kecuali saya tidak mendukung thumb2 (masih bisa belajar sedikit dan jalankan program pada keduanya sebelum Anda beralih ke perangkat keras saja). Saya menyiapkan emulator msp430 tetapi agak terhenti karenanya. Set instruksi sangat kecil sehingga sebagian besar pekerjaan adalah malam atau mungkin proyek Sabtu. Hal yang sama berlaku untuk PIC, sore yang panjang dan Anda memiliki set instruksi simulator untuk berlatih tertanam. Jika tidak ada yang lain, Anda hanya bisa menulis kompilasi program dan tautan untuk merasakan bagaimana melakukan itu dan seberapa besar akhirnya program itu, bagaimana mengatur program untuk menghasilkan kode yang lebih ketat, dll.
Sejauh C vs assembler, beberapa set instruksi ramah-C dan beberapa tidak. Beberapa kompiler berukuran sedang dan beberapa sangat buruk dan hanya beberapa yang benar-benar bagus (dan biasanya berharga beberapa ribu dolar satu kali atau per tahun untuk digunakan). Seperti kinerja di mana pun jika Anda ingin benar-benar mendorongnya, campuran bahasa tingkat tinggi (katakan saja C) dan assembler mungkin diperlukan. Jadi skill tidak menulis seluruh aplikasi dalam assembler, skill menentukan kode apa yang menyebabkan Anda tidak memenuhi waktu / kinerja dan kemudian mengetahui bagaimana menyelesaikannya baik melalui C, opsi kompiler, memilih kompiler yang tepat, atau menulis assembler.
Saya sarankan Anda tahu assembler untuk semua platform yang Anda pilih untuk digunakan, jika tidak ada pengetahuan lain yang dapat dibaca tentangnya dengan tertanam, saya sarankan Anda membongkar sering (sambil mencari tahu di mana masalah kinerja Anda). Banyak platform yang diperlukan atau diinginkan oleh assembler untuk kode boot up.
Jika Anda ingin menghemat 10-20% pada harga per unit dan ingin membeli mikrokontroler yang lebih murah / lebih lambat atau osilator, atau bagian flash 32Kb bukan bagian flash 64KB dan dapat menutupi biaya pengembangan dengan volume penjualan, dan mungkin daftar panjang hal-hal lain yang mungkin Anda pilih untuk ditulis semuanya dalam assembler, cepat, daya rendah, biaya rendah, pelanggan yang bahagia.
Tergantung pada latar belakang Anda sejauh ini, mungkin Anda tidak perlu khawatir tentang menulis di semua assembler dan mungkin tentang aspek teknik listrik tertanam dengan mikrokontroler, skema membaca, mengetahui apa kolektor terbuka, tri state, push pull, pwm, adc, dac, dan daftar panjang istilah lain dan cara menggunakannya. bit banging i2c, spi, mdio, dallas one wire, dll. Menggunakan lingkup sebagai debugger perangkat lunak. Meskipun cakupan dapat menyoroti hal-hal untuk Anda hari ini (item biaya tambahan), Anda harus dapat melihat i2c dan spi dan beberapa protokol lain tanpa highlight.
Saya juga merekomendasikan bahwa untuk setiap platform yang Anda mainkan, keluarlah dari kotak pasir orang lain (misalnya lingkungan ide / pemrograman Arduino). Tulis kode boot yang mengambil prosesor dari reset ke program utama () Anda, lakukan sebanyak yang Anda bisa untuk memahami cara memuat / memprogram flash ke titik yang mungkin melibatkan penulisan loader Anda sendiri meskipun rak yang ada sana. Ini semua tentang pendidikan pribadi, semakin banyak yang Anda tahu dan dapat menarik keluar dari saku belakang Anda dan menggunakan lebih banyak kontrol yang akan Anda miliki atas karier Anda dan semakin banyak angka nol di akhir angka pada gaji Anda.
Apa pun yang Anda lakukan, JANGAN, coba pelajari x86 sebagai assembler pertama Anda di desktop, pilih apa saja dan lintas kompilasi dan simulasi, ARM, THUMB, MSP430, PIC, AVR, bahkan 6502, 8051. x86 adalah instruksi yang mengerikan mengatur dan sebagai hasilnya telah berubah dan dibentuk dalam banyak cara, microcoded, tidak microcoded, multi-core, terus dan terus. Pertahankan x86 ke bahasa tingkat tinggi dan sistem operasi yang besar. Gunakan untuk editor teks Anda dan kompiler dan targetkan hal lain.
Maaf atas jawaban panjangnya ... semoga bermanfaat.