CS+初心者のIKUZOです、先ほど来からRX63NのUSBでターミナル動作とブロック転送ができるようになりましたので、下記のようなことをやろうとしましたが失敗しました
1.DebugBuildを追加します
2.sub.c とsub.h を追加します
3.セクションPSUB,DSUB,0x10000を追加します
4.sub.c中で#pragma section SUBを宣言します
5.sub.c中でint sub_proc(char *str){printf("*");}を作成します
6.これでDebugBuildをビルドします、結果ビルドエラー無し
7.出来上がった.mot 部分から 0x10000 ~0x18000までをバイナリ化してロードモジュールにする
8.DefaultBuildに切り替えてビルド(sub.c関連は無効)
9.DefaultBuildの.motをFDTでROMにプログラム
10.基板を起動、ターミナル起動、USBターミナルからSRAMの0x10000へロードモジュールを転送
11.本プログラムのコマンドラインから0x10000のロードモジュールを呼び出し
12.暴走はしないもののそれらしい動作はいたしません
13.DebugBuildマップ情報を出力させますと、PSUB,DSUBは4Byte程しか出力されていませんでした。
14.これは失敗と判断しました。
良い方法を提案いただけませんでしょうか?
わわいさん
ご指摘ありがとうございます、そうでした、私の間違いです、文字列の位置を示しているのですね、ちゃんと動作しているの?ということで現在printfは無理みたいなので、下記のようにしてみました
///////////////////////////////////////////////////////////////////////
//_sub_proc 27 Program 0x00010000 0x0001001A Function Global PSUB SubBuild\sub.obj
int sub_proc(char *str)
{
// printf("sub_procのアドレスは%08lX\r",(long)&sub_proc);
while(1){}
return CMD_OK;
}
ダウンロードしてsubを呼び出したところ
ちゃんと無限ループになっていました、リングLEDも停止しましたので、ちゃんと動作してると確認できました。