移動する良い時間です。8ビットは急速に消滅しています。(たとえば)かなり高性能な32ビットARMマイクロコントローラー(USBでも!)であるSTM32F103を使用して5ドルのボードを購入できる場合、間違いなく時代は変わっています。
あなたはすでにいくつかの優れた答えを持っていますが、主に「アセンブリを忘れて」、「CPUが低レベルでどのように機能するかを気にすることを忘れて」と言います-いつかそれを掘る必要があるコーナーケースがあります(特定の最適化またはデバッグ用)が、ARMコアは(設計により)Cコードを非常にうまく実行しますが、変化することはほとんどありません。
これは、コンパイラー(および特にリンカーとメイクファイル)の問題に頭を突っ込むのに一定の時間を費やすことを意味します。
ARMの仕組み(つまり、ARM CPUブック)の根幹は密集しており、実際に最適化する必要がある日まではあまり興味がありません(32ビットのレジスターとPLLがあるときは、驚くほどです) d CPUクロックは100MHz程度です。
「古いskool」ARM命令セットは、最新の「Thumb2」(ほとんどの最新のマイクロコントローラレベルのARM(Cortex)で見られるもの)よりも逆アセンブリを読む方がはるかに簡単ですが、アセンブリ言語命令の内部ほとんどが背景にフェードインします。適切なツールセット(特に、ブレークポイント/シングルステップなどを備えた適切なソースレベルデバッガー)があれば、それがARMであることにあまり関心がありません。
32ビットのレジスタと32ビットのデータバス幅、そしてオンチップで利用できるようにしたいものすべての世界に入ったら、再び8ビットCPUに戻ることはありません。基本的に、「簡単に」、コードを効率的に読みやすくするためのペナルティはありません。
しかし...周辺機器...はい、摩擦があります。
確かに、最新のMCUで使用できるものは山ほどありますが、その多くはかなり派手なものです。多くの場合、AVR、PIC、8051オンチップ周辺機器をはるかに超える洗練された世界を見つけます。
1つのプログラム可能なタイマー?いや、8つあります!DMA?プログラム可能な優先度とバーストモードおよびチェーンモードと自動リロードを備えた12チャネルはどうですか。
I2C?I2S?多数のピン多重化オプション?オンチップフラッシュを再プログラムする15の異なる方法 もちろん!
多くの場合、飢amineから周辺機器でごちそうになったように感じますが、一般的には、チップのチャンク全体が賞賛されるがほとんど使用されません(したがって、クロックゲーティング)。
オンチップハードウェアの量(およびたった1つのベンダーのチップラインのバリエーション)は、今日ではかなり気が遠くなります。もちろん、あるチップベンダーはIPブロックを再利用する傾向があるので、特定のブランドに慣れると簡単になりますが、「最近はすっごく楽しかったです」。
周辺機器とその相互作用(およびDMAと割り込みとバスの割り当ておよびand ...)が非常に複雑な場合(および、データシートに記載されているとおりではない場合があります)、エンジニアは頻繁にお気に入りのARM MCUを使用し、周辺機器と開発ツールに精通しているという理由だけでそれを使い続けたいと思う傾向があります。
優れたライブラリと開発ツール(つまり、適切なデバッガーを使用した高速コンパイル+デバッグサイクル)と、動作するサンプルコードプロジェクトの大規模なセットは、現在のARM MCUの選択に不可欠です。ほとんどのベンダーが非常に安価な評価ボードを持っているようです(
ご存知のとおり、ARMでマイクロコントローラーレベルを超えてSOCレベル(Raspberry Pi / etcスタイルのSOCなど)に到達すると、ルールが完全に変わり、どのLinuxを使用するかが決まります実行するために-わずかな例外を除いて-あなたは他のことを試みるために怒ってbarえているでしょう。
基本的に; このギグで事前に選択されている可能性のあるCPUに関係なく、いくつかの異なるベンダー(TI、STM、Freescaleなど)からいくつかの超安価なCortexベースの評価ボードを購入してください。提供されたサンプルコードをハックしてください。
最後のアドバイス。使用している正確な部品番号チップのピン多重化オプションを説明するページまたは3をデータシートで見つけたら、それを印刷して壁に貼り付けることができます。プロジェクトの後半で、ピンの多重化のために特定の周辺機器の組み合わせが不可能であることがわかり、時にはその情報が埋もれてしまい、隠そうとしていることを誓います:-)