スタック?
あっ....
C言語/組み込みでは、スタティックとヒープ以外の変数はすべてスタックに積まれるよ(ぼそっ)
つまり、すべてのauto変数と呼び出し元情報とか、関数への値引き渡しもぜーんぶスタック上だし。
なので、割り込みハンドラで呼ばれるのもあるけど、
注目ポイントそこじゃないな....
たいていの組み込みプログラムでは、
ただの関数呼び出しのほうが大量にスタック使う印象。
割り込みなんて応答速度命のところもあるので
スタック大量に確保してるような時間は(普通)無いしね。
逆に割り込みハンドラのスタック使用量なんて、あまり心配してない。
標準ライブラリも大量にスタック使うよ。
printfとか気軽に使うと、数百バイトなんてすぐだよ....というか、
こういうの、どこで習えばいいんだろうね。
中級者クラスの話だと思うんだけど、
マイコン環境でタスク複数走っているときには、
複数から呼ばれる可能性のある関数で、
static使うと、たいてい破綻するんじゃないかなあ。
そのために(わざわざ)面倒でもスタック上に実体あるんだと思うし。
メカニズムは考えればわかるか(説明めんどい...)
これが嫌で、みんなちゃんとしたunixとかを
組み込みに持ち込もうとしてるんだと思うし。
知ってる人は当たり前に知っている感じだけど、
実は、組み込みやってても、みんな知らないのかな。
知ってる人って実はかなり少数派?なのか....
上級者?
コードからでは絶対にわからないバグを
あぶりだすスキル持ちのことだと...神は存在する...俺は見た....
| 固定リンク | 0
« USB HOST | トップページ | 物資注文 »
コメント