フォーラムへの返信
-
投稿者投稿
-
御確認ありがとうございます。
GPIO(LED)によりイレースコマンド実行(完了しているかは不明)まで進んでいるのを確認できてます。プロジェクトですが、カスタムされた基板ありきのプロジェクトなので、お試し頂くのは難しいと思いますが、プロジェクト送付は可能です。
ありがとうございます。
F021_API_F2837xS_FPU32.libのRAM展開のみの件承知しました。ありがとうございます。
FLASHを書き換える動作をしているプログラムになります。
RAM展開の件承知いたしました。
それはデバッグモードでも同様でしょうか?
(意図としてはこちらで質問させて頂いている内容になります。https://emb.macnica.co.jp/forums/topic/13740/)確認になります。
今回LiveFirmwareUpdateについて色々とご質問させて頂きましたが、プロジェクトを一つで行う場合はブートに伴うプログラムはRAMに展開する必要がある。
プロジェクトをブート用とアプリ用に分けて作成し、FLASHの領域も分けて作成した場合は、アプリ用側のアップデートに限りブートに伴うプログラムをRAMに展開する必要はない。(展開せずにアップデートできていました。)
上記認識で問題ございませんでしょうか?上記質問ですが、解決いたしました。
プロジェクトプロパティのDebug->FlashSettingのNecessarySectorsOnlyにチェック。ありがとうございます。
初期起動の件承知しました。
また、プロジェクトを2つに分けると.outも2つになるかと思います。
一方を書き込むと他方の領域がイレースされます。
これを回避する方法はございますでしょうか?
行いたいことは使用している領域のみイレースして書込みです。ありがとうございます。
ブートプロジェクトのBEGINを0x080000
アプリプロジェクトのBEGINを0x088000
とした場合、ブートからアプリに移動する際は((void (*)())0x088000)(); アプリからブートに移動する際は((void (*)())0x080000)(); という認識でよろしいでしょうか?
また、起動はどちらのプロジェクトから起動しますでしょうか?ありがとうございます。
ブート用プロジェクトとアプリ用プロジェクトを作成する件承知いたしました。
干渉しないようにというのは、cmdファイルにてFLASH領域及びRAM領域が干渉しないという理解でよろしいでしょうか?
起動時はブート用プロジェクトから起動しその後アプリ用プロジェクトで動作と考えております。
その際、アプリ用プロジェクトの開始アドレスにはどのようにジャンプすればよろしいでしょうか?
また、開始アドレスはどのように指定しますでしょうか?(cmdファイル内のcodestart?)ブートに関わるプログラムのRAM展開からのLiveFirmアップデートが一通り確認できました。
しかし、現在下記懸念点がございます。
解決方法等ございましたらご教授の程宜しくお願いいたします。
datファイルの転送中(FLASH書込み中)に断線及び電圧低下(電源オフ)がおこるとデバッガ等で正常データを上書きしないといけないかと思います。
そこで、ブート用に関わるプログラムとアップデートされるであろうプログラムの領域をFLASHのセクターで分離し、動作させることは可能でしょうか?ありがとうございます。
解決いたしました。ありがとうございます。
上記方法でRAM展開できました。ありがとうございます。
新たな問題を抱えております。アドバイスお願いいたします。
F021_API_F2837xS_FPU32.lib を使用してFLASHのイレースを行っているですが、特定のセクターをイレースすると動作がとまります。
そのセクターを.mapファイルで確認すると上記.libが使用されている場所のようです。
動作に必要な関数はCODE_SECTIONにてRAM展開しているのですが、.libはRAM展開の仕方がわからずケアしておりません。
そのせいで動作が止まっているのではと考えております。
.libもRAM展開する必要御座いますでしょうか?
必要な場合はどのようにするかご教授願います。ありがとうございます。
一括で定義する方法等はございますでしょうか?
やはり個別に定義しないといけないでしょうか?作成したdatファイルを読み込みFLASHに書き込んでいる箇所をモニタすると、書込み開始アドレスが80002からではなくエントリポイントのアドレス設定されている次のセクター88000からとなります。
これは正しいのでしょうか?
開始アドレスは何によって決まるのでしょうか?
と記載しましたが、エントリポイントのアドレスは無関係でした。また、RAM展開する関数ですが、こちらは関数内で使用しているサブ関数も定義する必要がございますでしょうか?
サンプルプロジェクトのSCI部を独自プロトコルに変更するようにしてデバッグを行っているのですが、動作がいまいちつかめない状況です。
何かお心当たりがあればアドバイスを御願いいたします。
作成したdatファイルを読み込みFLASHに書き込んでいる箇所をモニタすると、書込み開始アドレスが80002からではなくエントリポイントのアドレス設定されている次のセクター88000からとなります。
これは正しいのでしょうか?
開始アドレスは何によって決まるのでしょうか?
また、mapファイルで確認したusedサイズと出力したdatファイルのサイズを比べるとdatファイルがかなり大きいサイズとなっております。(datファイルはバイナリエディタで確認)
これも正しいのでしょうか?
以上よろしくお願いいたします。 -
投稿者投稿