こんにちは。ブートローダーでC40チップを使用してフラッシュメモリへの書き込みに問題が発生しています。300KBのバイナリプログラムを作成しているのですが、9番目のデータパケット(2番目のブロック)で頻繁に失敗し、完全に成功する確率は10分の1程度です。C40チップに問題があるかどうか確認していただけないでしょうか?作成中のメインプログラムは…
Flash_UnlockSectorIfProtected ( cur_sector ) ;
DisableAllInterrupts () ;
DisEnableIrq1 () ;
if ( Flash_Write ( flash_write_addr + offset , & payload [ 2 ] , FIXED_PACKET_DATA_LEN ) != 0 ) {
EnableIrq1 () ;
EnableAllInterrupts () ;
}
EnableIrq1 () ;
EnableAllInterrupts () ;
Power_Ip_MC_ME_SocTriggerResetEvent(POWER_IP_DEST_RESET_MODE) を使用したリセットに問題がありますか? 8 回試行した後に連続リセットを防ぐにはどうすればよいでしょうか?また、ジャンプにはどの関数を使用すればよいでしょうか?
func = * ( uint32_t volatile * )( ADDR_APP + 0xC ) ;
func = * ( uint32_t volatile * )((( uint32_t ) func ) + 0x4 ) ;
func = (((( uint32_t ) func ) & 0xFFFFFFFF U )) ; // Reset_Handler+1 --> ハードフォールトを回避するために必要
リセットとジャンプの後、以前のプログラムの残留データは残りますか? RAMをクリーンアップする必要はありますか? もし必要なら、どのようにすればよいですか? よろしくお願いいたします。
こんにちは@ LJH1
問題を再現できる簡単なデモを提供してください。そうすれば、私もあなたの問題を再現できます。製品プロジェクト全体や、散在するドライバファイルは必要ありません。
RTD社は標準バージョンとして4.0.0を使用しています。