PICマイコンのスタックについて

PICマイコンは、スタックをRAM領域に置きません。RAM領域とは別にハードウエアのスタックが用意されています。ハードウエアのスタックはデバイスの規模によって違いますが、最小で2個しか持っていないものも多くあります。

CCS Cコンパイラでのスタックの消費

ハードウエアスタックは、関数コールする毎に戻りアドレスを保存するためにスタックを1つ消費します。実際には、すべての関数コールでスタックを消費することは無く、1箇所からのみ呼び出される関数に関しては、コンパイラはジャンプ命令を使用することでスタックを消費しないようにコンパイルします。しかし、それでもスタックが2個の場合、関数を機能毎に細分化すると、すぐにスタック不足となってしまいます。その様な場合には、複数個所から呼ばれる関数でも、インライン関数にすることでスタックの消費を回避できます。しかし、インライン関数にすると、ROM消費量は当然増加してしまいます。
スタックが不足するようプログラムを作成してコンパイルしても、コンパイラは警告等を発することはありません。実際にプログラムを実行すると、スタック破壊を起こして、PICマイコンは暴走状態に陥ります。
プログラマはスタック消費量を常に意識してコーディングに取り組む必要があります。

この投稿の続きを読む »

タグ


2012年8月27日 | コメントは受け付けていません。|

カテゴリー:技術情報

Doxygen対応Cプログラムコメント記述例ご紹介

弊社でのC言語で開発を行うプロジェクトでは、ソフトウェア詳細設計書にDoxygenで出力したデータを用いるため、必要な情報を出力するためのコメント記述をしております。

今回は弊社で用いるタグコメントの書き方について紹介させて頂きます。

実際にはDoxygenのオプション設定などにより別の記述もございますので、詳しくはDoxygenのサイトを参照頂ければと思います。

この投稿の続きを読む »

タグ


2012年8月26日 | コメントは受け付けていません。|

カテゴリー:技術情報

夏期休業のお知らせ

誠に勝手ながら弊社では、8月11日(土)~8月19日(日)までを夏期休業期間とさせていただきます。
お客様、お取引先様にはご迷惑をお掛けいたしますが、何卒ご了承くださいますよう、お願い申し上げます。

タグ

2012年8月1日 | コメントは受け付けていません。|

カテゴリー:お知らせ

このページの先頭へ

イメージ画像