ホーム › フォーラム › Texas Instruments › マイコン › C2000 › TMS320F28075 FLASH BOOT
-
投稿者投稿
-
TMS320F28075 FLASH BOOT
デバイス型番:TMS320F28075BOOT MODEを選択するディフォルトのboot pinであるGPIO72、GPIO84は、別用途で使用した為、boot pinとしてGPIO68を使いたい。そこで、CCSツールでTOOL⇒On-Chip Flashで、Z1_BOOTCTRLに0x45450b5aを書き込み、Releaseモードでビルドし、書き込みを実施した・エミュレータを繋いだままrunすると、正常に動作するが、エミュレータを抜き、電源の入り切りをしても、起動しません。
何か、まだ手順や方法が違うのでしょうか。少し、懸念しているのは、何かプロジェクトに追加しなければならないものがあるのかということですです。それちも単純なミスなのか、ご教授願います。Attachments:
micky様
お世話になっております。
いくつかご確認させていただきたく、
・Flashに書き込みが行われていること(エミュレータ接続時にはプログラムがSRAMに配置されていないか?)は確認できておりますでしょうか?
・動作確認時のGPIO68の電圧はHighになっておりますでしょうか。
スタンドアローンでBootさせる場合は、下記Technical Reference Manualの565ページに従ってBootが行われ、Flashに正常にプログラムが書き込まれている場合、Z1_BOOTCTRLの値を拝見すると、GPIO68がHighになっていればFlashからBootされる認識でおります。
https://www.tij.co.jp/jp/lit/ug/spruhm9f/spruhm9f.pdf
以上、参考になれば幸いです。
uchidaK
書込み実行するとconsoleウィンドウに下記のメッセージがあり、プログラムが0x8xxxxx番地に書き込まれています。
また、GPIO68の電圧はHigに22KでPULLUPしており、ポートの電圧レベルも確認しています。
なんとなく、リセット後の飛び先アドレスが正しく設定されていないのかと思っています。フラッシュブート時の飛び先は、コンパイル?リンク時に勝手に設定されるのでしょうか?—-以下、consoleウィンドウメッセージ—-
C28xx_CPU1: GEL Output:
Memory Map Initialization Complete
C28xx_CPU1: Writing Flash @ Address 0x00082000 of Length 0x00000081 (page 0)
C28xx_CPU1: PLL configuration status = 1. PLL configured successfully.
C28xx_CPU1: Erasing Flash Bank 0, Sector A
C28xx_CPU1: Erasing Flash Bank 0, Sector B
C28xx_CPU1: Erasing Flash Bank 0, Sector C
C28xx_CPU1: Erasing Flash Bank 0, Sector D
C28xx_CPU1: Erasing Flash Bank 0, Sector E
C28xx_CPU1: Erasing Flash Bank 0, Sector F
C28xx_CPU1: Erasing Flash Bank 0, Sector G
C28xx_CPU1: Erasing Flash Bank 0, Sector H
C28xx_CPU1: Erasing Flash Bank 0, Sector I
C28xx_CPU1: Erasing Flash Bank 0, Sector J
C28xx_CPU1: Erasing Flash Bank 0, Sector K
C28xx_CPU1: Erasing Flash Bank 0, Sector L
C28xx_CPU1: Erasing Flash Bank 0, Sector M
C28xx_CPU1: Erasing Flash Bank 0, Sector N
C28xx_CPU1: Data has been buffered at the end of the current data block for 64-bit aligned writes.
C28xx_CPU1: Verifying Flash @ Address 0x00082000 of Length 0x00000100
C28xx_CPU1: Writing Flash @ Address 0x00086000 of Length 0x00000004 (page 0)
C28xx_CPU1: Verifying Flash @ Address 0x00086000 of Length 0x00000008
C28xx_CPU1: Writing Flash @ Address 0x00082088 of Length 0x00001f78 (page 0)
C28xx_CPU1: Verifying Flash @ Address 0x00082088 of Length 0x00003EF0
C28xx_CPU1: Writing Flash @ Address 0x00084000 of Length 0x00000465 (page 0)
C28xx_CPU1: Data has been buffered at the end of the current data block for 64-bit aligned writes.
C28xx_CPU1: Verifying Flash @ Address 0x00084000 of Length 0x000008C8
C28xx_CPU1: Writing buffered data @ Address 0x00082080 of Length 0x00000004
C28xx_CPU1: Verifying Flash @ Address 0x00082080 of Length 0x00000008
C28xx_CPU1: Writing buffered data @ Address 0x00084464 of Length 0x00000004
C28xx_CPU1: Verifying Flash @ Address 0x00084464 of Length 0x00000008mickey様
お世話になっております。
Flash bootを行う際は、リンカコマンドファイルにてF2807x_CodeStartBranch.asm
(貴社プロジェクト内にも存在していると推察します)に記載されたcodestartセクションにFlashの開始アドレスを
割り当てる必要がございます。
下記ファイルを参考にリンカコマンドファイルが正しく設定されているか、ご確認いただけますでしょうか。
controlSUITE\device_support\F2807x\v210\F2807x_common\cmd\2807x_Generic_FLASH_lnk.cmd
以上、よろしくお願いいたします。
uchidaK
uchidaK様
どうやら、projectの「F2807x_CodeStartBranch.asm」を組み込んでいなかった事が原因のようです。
このファイルを組み込むことにより、FLASH BOOTするようになりました。
ありがとうございました。とりあえず、解決しました。mickey
-
投稿者投稿