2021年6月22日火曜日

[IAR] do not initializeのエラーが出ました

こんにちは、針山散策を今日もほのぼのと行います。

開発環境Iarのバージョンを最新にして

旧環境をビルドしてみたところ、

Error[Lp049]: there was no reference to __iar_data_init3, but it is needed to
initialize section .bss (main.o #8)

が表示されました。

no definition for init routine "__iar_zero_init3が表示される
に書いているのを見ると、

初期化のないRAMセクションで、

リンカ設定ファイルで明示的に do not initialize のリストにないセクションがある場合、

エラーになるようになったようです。

意味としては、RAMだからグローバル変数の初期化をきちんとしないと
エラーになりますよ。ということなのだと思います。

リンカファイルをいろいろ変えてみたりしましたが、あまり効果はありませんでした。



色々試したところ、main()に相当する部分の先頭で、

以下の関数を実行するとワーニングにはなったが、エラーにはならなくなりました。

void main_XXX()
{
__iar_data_init3();"

}

ワーニング[Pe223]: function "__iar_data_init3" declared implicitly …

と出ましたが、マップファイルにもそれなりのデータがあったので

問題無いと思います。

スッキリわかるJava入門/中山清喬/国本大悟/フレアリンク【3000円以上送料無料】

価格:2,860円
(2021/6/14 19:17時点)
感想(0件)


「スッキリわかるJava入門 第3版」でほぼ合格

0 件のコメント:

コメントを投稿