goo blog サービス終了のお知らせ 

40代ヘタレプログラマ(組込系)のブログ

個人的な備忘録
ときどきつぶやきます
http://twitter.com/h100401jp

スタートアップをみてみる

2006-12-07 00:43:19 | 日記
R8Ctiny のコンパイラでちょっと気になっていたニュースがあるので、スタートアップを自動生成させてみてみることにする。

RENESAS TOOL NEWS 2006年12月01日
http://tool-support.renesas.com/jpn/toolnews/061201/tn3.htm

ひゅ~ (HEW)を起動して新規にプロジェクトを作成してみる。

CPU種別 は M16C にして・・・
CPU Series は R8C/Tiny にして・・・
CPU Group は 23 にして・・・
ROM は 64K のままで
HEAP は確保しないことにする。malloc() 使うとメモリの使用量把握しにくいしね。
User Stack は 200H にする。RAM は 3K あるからもっと増やしてもいいけどね。
Interrupt Stack は 80H のままでいいか。

んで、出てきた ncrt0.a30 の一部を以下に引用

ldc #stack_top,sp ;set stack pointer
ldc #0080h,flg

あーなるほどねー、フラグレジスタの設定の前にSPを設定してる。これじゃ正しく動くことはあるまい。

スタートアップから main() へいって、そこからさらに何か別の関数コールして、
main() へもどってこれなくなるのかな。たしかルネサスは戻りアドレスもスタックにつんでるはずだし。対処方法はルネサスのホームページにでてるけど、このままもうちょっと見てみることにする。

最新の画像もっと見る

1 コメント(10/1 コメント投稿終了予定)

コメント日が  古い順  |   新しい順
Unknown (you)
2010-07-16 23:09:31
この記事を見てやっと問題を解決できました。
スタックがうまく設定できていないのはわかっていたけどその解決方法が.....
返信する

コメントを投稿

サービス終了に伴い、10月1日にコメント投稿機能を終了させていただく予定です。
ブログ作成者から承認されるまでコメントは反映されません。