DFU Basic_Device_Firmware_Upgradeテンプレートアプリケーションの問題

Tip / ログイン to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは

基本デバイス ファームウェア アップグレード テンプレート アプリケーションには、main.c に次のコードがあります (540行目):

/* クリーンブートか初回ブートの可能性がある。*/
if (ステータス != CY_DFU_SUCCESS)
{
定数uint32_t elfStartAddress = 0x10000000;
const uint32_t elfAppSize = 0xFFFC;

/* MD を INITIAL_VALUE に設定する。*/
ステータス= Cy_DFU_SetAppMetadata(0u、elfStartAddress、elfAppSize、params);
}

これは、提供されたブートローダリンカの dfu_cm0p_app0.ld ファイルを修正してブートローダのアドレスやサイズを変更した場合には機能しません。 アドレスとサイズにシンボル定義を使用することをお勧めします。 現在の設定、特にサイズを保持する設定はありますか?

感謝

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-6/Problem-in-DFU-Basic-Device-Firmware-Upgrade-Template-Application/td-p/664114

0 件の賞賛
1 解決策
Translation_Bot
Community Manager
Community Manager
Community Manager

このコードはデバイスのソフトウェアを更新するのに役立ちますが、更新の開始場所と必要なスペースの量について固定値を想定しているため、問題があります。 誰かがこれらの値を変更すると、正しく機能しません。 提案は、マーカーなどの記号を使用して、コード自体をいじることなく開始点とサイズを簡単に変更できるようにすることです。 「ここから始めろ」とか「これくらいの大きさ」とかいう看板があるようなもので、誰でも問題なく調整できます。

以下は、ブートローダーのアドレスとサイズにシンボルを使用するコードスニペットの修正バージョンです。

*おそらくクリーンブートまたは最初のブート。 */
if (ステータス != CY_DFU_SUCCESS)
{
/* ブートローダのアドレスとサイズのシンボルをリンカファイルに定義 */
extern uint32_t __BOOTLOADER_START_ADDR;
extern uint32_t __BOOTLOADER_SIZE;

定数 uint32_t elfStartAddress = &__BOOTLOADER_START_ADDR;
定数 uint32_t elfAppSize = &__BOOTLOADER_SIZE;

/* MD を INITIAL_VALUE に設定する。 */
ステータス= Cy_DFU_SetAppMetadata(0u、elfStartAddress、elfAppSize、params);
}

リンカ ファイル (dfu_cm0p_app0.ld) を更新して、シンボル__BOOTLOADER_START_ADDR__BOOTLOADER_SIZE 適切な値で含め てください。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-6/Problem-in-DFU-Basic-Device-Firmware-Upgrade-Template-Application/m-p/664874

元の投稿で解決策を見る

0 件の賞賛
6 返答(返信)
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは

はい、選択に応じて、ブートローダーアプリケーションとアプリケーションのアドレスを変更できます。指定されたアドレスには修正設定はありません。

 

よろしく

ロハン

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-6/Problem-in-DFU-Basic-Device-Firmware-Upgrade-Template-Application/m-p/664797

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

このコードはデバイスのソフトウェアを更新するのに役立ちますが、更新の開始場所と必要なスペースの量について固定値を想定しているため、問題があります。 誰かがこれらの値を変更すると、正しく機能しません。 提案は、マーカーなどの記号を使用して、コード自体をいじることなく開始点とサイズを簡単に変更できるようにすることです。 「ここから始めろ」とか「これくらいの大きさ」とかいう看板があるようなもので、誰でも問題なく調整できます。

以下は、ブートローダーのアドレスとサイズにシンボルを使用するコードスニペットの修正バージョンです。

*おそらくクリーンブートまたは最初のブート。 */
if (ステータス != CY_DFU_SUCCESS)
{
/* ブートローダのアドレスとサイズのシンボルをリンカファイルに定義 */
extern uint32_t __BOOTLOADER_START_ADDR;
extern uint32_t __BOOTLOADER_SIZE;

定数 uint32_t elfStartAddress = &__BOOTLOADER_START_ADDR;
定数 uint32_t elfAppSize = &__BOOTLOADER_SIZE;

/* MD を INITIAL_VALUE に設定する。 */
ステータス= Cy_DFU_SetAppMetadata(0u、elfStartAddress、elfAppSize、params);
}

リンカ ファイル (dfu_cm0p_app0.ld) を更新して、シンボル__BOOTLOADER_START_ADDR__BOOTLOADER_SIZE 適切な値で含め てください。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-6/Problem-in-DFU-Basic-Device-Firmware-Upgrade-Template-Application/m-p/664874

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

Hashirshabbirさん、ご回答ありがとうございます。 私はこれと同等のことをすることになりました。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-6/Problem-in-DFU-Basic-Device-Firmware-Upgrade-Template-Application/m-p/665018

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

TESTBOARD_150PC_OUTDUAL_SENSOR_BOX_KITこのTLE9243QK_BASE_BOARD を閉じる前に、私の質問のコンテキストは、MTB DFUライブラリにCM0Pブートローダー を使用して コアアプリケーションのプロトタイププロジェクトを実行しているということです。これは、少なくとも数か月前の時点では、十分に文書化されたユースケースではないようです。 このテーマを扱った参考資料を知っている人はいますか?

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-6/Problem-in-DFU-Basic-Device-Firmware-Upgrade-Template-Application/m-p/665019

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは@Buzz_Inf

以下のリンクを参照してください。

https://www.infineon.com/dgdl/Infineon-AN213924_PSoC_6_MCU_Device_Firmware_Update_Software_Developme...

 

よろしく

ロハン

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-6/Problem-in-DFU-Basic-Device-Firmware-Upgrade-Template-Application/m-p/666603

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

すべての回答をありがとう。 さらに進歩すると、CM0ブートローダーを使用して DUAL_SENSOR_BOX_KITコアアプリケーションをロードできます。 DFU の例には、CM0 と CM4 の両方のアプリケーションに CRC 検証を追加し、make ファイルのCY_CORTEX_M4_APPL_ADDR定義を調整し、ソフトウェア リセット アプローチではなく CM0 アプリケーションにジャンプを使用するなど、いくつかの調整が必要でした。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-6/Problem-in-DFU-Basic-Device-Firmware-Upgrade-Template-Application/m-p/667157

0 件の賞賛