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

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは、私は現在、CAN経由でTraveo IIをフラッシュする必要があるプロジェクトに取り組んでいます。 したがって、AN227076に従ってコマンド「ブートローダーを入力してください」を使用して、Traveo IIへの新しいファームウェアのロードを開始するために、ブートローダーをアクティブにしたいと思います。

Traveo II TRMから、ブートローダーをアクティブにするための3つの主な要件があることを理解しています。

1. CPUSS.保護 != セキュア 
2. TOC2の状態は、消去または有効でスフラッシュのいずれかです。TOC2_FLASH ビットFB_BOOTLOADER_DISABLEはゼロです
3. 0x10000000の最初の2つの32ビットワード(最初のアプリケーションフラッシュアドレス、コードフラッシュラージセクタのアドレス)は0xFFFFFFFFに等しい

Traveo IIがポイント1とポイント2を満たしていること CAN 確認します。
私の現在の段階は、SROM APIを使用しているポイント3です:Cy_FlashSectorEraseとCy_FlashWriteCode消去してから、0x10000000と0x10000004に0xFFFFFFFF書き込みます。

しかし、OpenOCDを使用して0x10000000と0x10000004のメモリを読み取ると、Traveo IIは0x10000000 0x28080000(SRAM 1の最初のアドレス)を格納し、0x10002845 0x10000004格納するため、SROM APIを実行しないようです。

この問題を解決するにはどうすればよいですか?

さらに、ブートローダファームウェアを書くための参照/例はありますか?

備考:CM0 +にコードを格納しており、フラッシュAPIのブロッキングモードを使用しています

ありがとうございました

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

こんにちは @dustin26

「OpenOCDを使用して0x10000000と0x10000004のメモリを読み取ると、Traveo IIは0x10000000ストア0x28080000(SRAM 1の最初のアドレス)と0x10000004ストア0x10002845」としてSROM APIを実行していないようです」 とはどういう意味ですか?SROM APIは書き込みと消去でのみ実行され、読み取りでは実行されないためです。
あなたの声明の私の理解を修正してください、あなたがCy_FlashEraseSectorを実行してCy_FlashWriteCodeすると、OpenOCDを使用して0x1000'000の値をチェックしますが、0xFFFF'FFFFの代わりに0x2808'0000と読み取られますか?

あなたの問題について、Flashを初期化するためのあなたのステップをどのように説明していただけますか?
また、フラッシュレジスタで0xFFFFFFFFを期待している場合は、Cy_FlashSectorEraseだけが必要だと思います。

Q:さらに、ブートローダファームウェアを作成するためのリファレンス/例はありますか?
A: 残念ながら、公式の例でブートレーダファームウェアを書く例はありません。

 

ありがとうございました

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

こんにちは @azwawe_

返信ありがとうございます!

参考までに、CM0 +にロードするメインプログラムを添付しています。 メインの前にはTOC2構成しかありません。

「あなたの声明の私の理解を修正してください。Cy_FlashEraseSectorを実行してCy_FlashWriteCodeすると、OpenOCDを使用して0x1000'000の値をチェックしますが、0xFFFF'FFFFではなく0x2808'0000と表示されますか?」

はい、あなたはまさに正しいです。

「また、フラッシュレジスターで0xFFFFFFFFを期待している場合は、Cy_FlashSectorEraseだけが必要だと思います。」

おかげで、私はこれについて知りませんでした、私はすぐにあなたを更新しようとします!

もう一度あなたの助けに感謝します!

編集:CY_SI_SECURE_FLASH_BEGINは0x10000000を指します

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

こんにちは @dustin26

実装に関しては、フラッシュ初期化関数が実行された後、0x1000'0000を1回消去するだけです。 次に CAN そのアドレスに保存されている値を再度再確認します。 これがお役に立てば幸いです。

 

ありがとうございました

0 件の賞賛