GNU ARM Eclipseプラグインによって生成され、セミホスティングが有効になっている STM32f4xx プロジェクト テンプレートを見ています。main
関数はargc
とパラメータの両方で定義されargv
ますが、これは独立した組み込みプログラムではほとんど役に立ちませんが、セミホスト型のデバッグされたプログラムの場合、何らかのメカニズムを使用して渡すことができます。だから私の質問は、このメカニズムにどのようにアクセスするのですか? 現在、テンプレートとプロジェクト設定に変更を加えていない場合、argv[0]
equals は string と同じですが、"foobar"
どこから来たのかわかりません。そして、他の文字列を渡す方法がわかりません。詳細情報:
- IDE: Eclipse + GNU Arm Eclipse プラグイン
- ツールチェーン: GCC ARM Embedded
- デバッグ: ツールチェーンからの Eclipse + OpenOCD + GDB
- ハードウェア: STM32f401vC
更新:定数がnewlib
コードの奥深くに埋め込まれているのではないかと疑い始めています。args の読み取りがトリガーされた場所 ( にあります_syscals.c
)はわかりますが、どこcall_host (SEMIHOSTING_SYS_GET_CMDLINE, &cmdBlock);
で処理されているのかわかりません。次に、に変換され、bkpt 0xAB
そこから失われます。