ホーム › フォーラム › Texas Instruments › マイコン › C2000 › プログラム書き換え
-
投稿者投稿
-
プログラム書き換え
デバイス型番:TMS320F28379D度々お世話になっております。
F28379DのDSPにおいて
SPIを使って、プログラムデータをRAM(ROM)に保存し、
自分自身のコードを書き換えるような事は可能でしょうかttkkttkkさん
SPIを使用したプログラムローダーのサンプルプロジェクトは用意されておりませんが、UARTによるプログラムローダーのサンプルプロジェクトが用意されております。
<C2000ware>\device_support\f2837xd\examples\dual\F2837xD_sci_flash_kernelsこちらをベースに、UART通信部分をSPI通信へ変更いただくことで、対応可能と考えます。
ご確認のほど、よろしくお願いいたします。
回答ありがとうございます
基本的な箇所で不明点があるので
すみませんが、教えてください。1
serial_flash_programmerを使ってSCI_Bootの設定にすれば
F2837xD_sci_flash_kernelsを経由してプログラムのダウンロードが可能ということでしょうか2
上記、PC から controlCARD(F2837xD) にSCIでダウンロードをする場合には
PCから出力されたシリアルポートのSCIのRXD,TXD,GNDと基板のRXD,TXD,GNDをつなぐ配線が必要になるのでしょうかttkkttkkさん
1
serial_flash_programmerを使ってSCI_Bootの設定にすれば
F2837xD_sci_flash_kernelsを経由してプログラムのダウンロードが可能ということでしょうかはい、ご認識の通りです。
改めまして、serial_flash_programmerの動作につきまして、以下に記載させていただきます。- SCI Boot Modeで起動しているC2000デバイスに対して使用します。
- SCI Bootloader(BootROM)は、serial_flash_programmer(PC)から受信したプログラム(Flash Kernel)をRAMに展開します。Bootloaderは全てを受信すると、RAMに保存したFlash Kernelを起動します。
- 起動したFlash Kernelは、serial_flash_programmerから受信したファームウェアをFlashROMへ書き込みます。
- serial_flash_programmerは、ファームウェアの転送後、ベリファイコマンドを送信し、書き込みが正常に行われたことを確認した後、リセットコマンドを送信します。
2
上記、PC から controlCARD(F2837xD) にSCIでダウンロードをする場合には
PCから出力されたシリアルポートのSCIのRXD,TXD,GNDと基板のRXD,TXD,GNDをつなぐ配線が必要になるのでしょうかはい、JTAGエミュレータにはC2000デバイスと通信するためのシリアルポートの信号は出力されませんので、別途PCからのシリアルポートの信号(RXD, TXD, GND)を接続して頂く必要がございます。
ご確認のほど、よろしくお願いいたします。
丁寧な回答ありがとうございます。
serial_flash_programmerをまだ実際に使用していない状態で申し訳ないのですが
教えてください。1
上記2の質問の続きになるのですが
F2837xDとcontrolCARD Docking Station v4.1を使用しているのですが
serial_flash_programmerからシリアル通信でプログラムをダウンロードする場合
controlCARDの76pin(RXA),78pin(TXA)に接続すれば可能でしょうか?
A:SW1の[Switch Position 2]をONにする必要があるのでしょうか?2
serial_flash_programmerは、ファームウェアの転送後、ベリファイコマンドを送信し、書き込みが正常に行われたことを確認した後、リセットコマンドを送信します。とあるのですが、コマンドプロンプトにて実行した場合、
メニューが表示される記載があるのですが、上記動作はそのメニュー中の1-DFUを選択したときでしょうか?3
サンプルのカーネルのソフトがSCI-A、SPI-Aと通信するように解釈したのですが
SCI-B、SPI-Bを使用してもダウンロードすることは可能でしょうか?何度も申し訳ございませんが回答をお願いいたします。
すみません、一点追加です
controlCARDのOTP、Z1_BOOTCTRLを0x49490B5Aと
変更してしまったのですが、SCI_Bootを選択することは可能でしょうか?何度も申し訳ございませんが回答をお願いします
ttkkttkkさん
1
上記2の質問の続きになるのですが
F2837xDとcontrolCARD Docking Station v4.1を使用しているのですが
serial_flash_programmerからシリアル通信でプログラムをダウンロードする場合
controlCARDの76pin(RXA),78pin(TXA)に接続すれば可能でしょうか?F2837xDでは、SCIブート時の信号として、以下を使用します。
・ SCITXDA : GPIO-84 (controlCARD:151pin)
・ SCIRXDA : GPIO-85 (controlCARD:152pin)
※Technical Reference Manual [Table 4-29. SCI Boot Options]よりこの設定は、Boot Mode端子でGet Modeを設定しており、かつZx_BOOTCTRLのBMODEを0x81と設定することでGPIO-28(controlCARD:76pin)とGPIO-29(controlCARD:78pin)に変更可能です。
serial_flash_programmerでは、Flash Kernelのロードと、ファームウェアのダウンロードが一緒になったツールですので、SCIブート時と同じ端子をご利用いただくことになります。
A:SW1の[Switch Position 2]をONにする必要があるのでしょうか?
A:SW1の[Switch Position 2]をONにしていただくことで、XDS100のシリアル通信を利用可能です。
弊社では試しておりませんが、Dock’ng Station側の151pin-76pin, 152pin-78pinをそれぞれ接続していただくと、デフォルトのSCIブートでもXDS100のシリアルポートが使用できると思います。2
serial_flash_programmerは、ファームウェアの転送後、ベリファイコマンドを送信し、書き込みが正常に行われたことを確認した後、リセットコマンドを送信します。とあるのですが、コマンドプロンプトにて実行した場合、
メニューが表示される記載があるのですが、上記動作はそのメニュー中の1-DFUを選択したときでしょうか?serial_flash_programmerのREADME.txtに以下のように記載がございます。
”DFU stands for device firmware upgrade and erases, programs and verifies the necessary flash sectors.”
DFU選択時は、ベリファイまで実行しますが、リセットまで行われません。ベリファイ成功後、Resetを選択頂く必要がございます。3
サンプルのカーネルのソフトがSCI-A、SPI-Aと通信するように解釈したのですが
SCI-B、SPI-Bを使用してもダウンロードすることは可能でしょうか?サンプルのコードは、SCI-Aのみの通信となっております。SPI-A, SCI-B, SPI-Bをご利用の場合は、サンプルコードを修正頂く必要があります。
controlCARDのOTP、Z1_BOOTCTRLを0x49490B5Aと
変更してしまったのですが、SCI_Bootを選択することは可能でしょうか?申し訳ありませんが、BOOTCTRLが0x49490B5Aとなっている場合、SCI_Boot(Select Pin[0:1]=10b)を選択することができません。
他のcontrolCARDでお試しいただけますでしょうか。ご確認のほど、よろしくお願いいたします。
-
投稿者投稿