質問: いつもお世話になっております。 今まで多少マイコンは触ってきたのですが、スタートアップルーチンについては先人の作成されたものをそのまま使うのみでした 今回、できればこのあたりまで理解を深めたいと思い、いろいろスタートアップルーチンを覗いたり、アプリケーションシートを読んだりしているのですが、到底1からかくのは難しそうです Arduinoなんかは、スタートアップルーチンは完全に隠されており、存在すら知らない人も多いイメージです 組み込みの皆様は、何を参照しながら、どのようにしてスタートアップルーチンを書いていらっしゃるのでしょうか もちろん、アプリケーションシートなどを参照されているとは思いますが、具体的にどの項目を観ればよいのでしょうか 尚、マイコンはR8Cマイコン、AVRマイコン、RXマイコン、STM32マイコンで考えています。 R8C M12A、ATMega328Pで実例を交えながら回答いただけると大変ありがたい(使ったことがあるため)ですが、一般論でもかまいません 手がかりがほしい、という状況です また、STM32についてはこれから手を出したいと考えているところです よろしくお願いいたします。
回答: 昔(20年以上前)に、マイコンの仕事をやり始めた者です。 その時代は、まだコンパイラーがイマイチで、スタートアップは、 基本アセンブラ言語で書いていました。 近年では、C言語でも、CPU内の特殊レジスタ(スタックポインタや、 割り込みの禁止や許可のビット)にアクセスできる、 関数などが用意されていて、アセンブラを使わないで書けるようになって きていますね。 自分が思うには、昔のCPUは機能が単純だったので、自分で手書きしても、 大変ではありませんでしがた、最近では、機能が色々と増えてきていて、 結構大変になってきています。 まずは、CPUメーカーのサンプルや、人が書いたルーチンを見て、そこに 書いてある内容を、CPU(や周辺ICの)データシートを見て、何をしているか 理解する事が大切だと思います。 理解するには、ソフトだけではなく、ハードウェアの知識が、必要になって 来ることも多々あります。 例えば、外部バスにSD-RAM等が接続されている場合は、そのSD-RAMの 仕様も、知っていないと、バスコントローラーの初期化もできませしね。 理解が進むと、必要に応じて、修正したり、自分で一から作る事も、 できるようになるとおもいますよ。 がんばって下さい。