程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> TMS320F28335項目開發記錄4_28335之啟動模式(串口燒寫Flash)

TMS320F28335項目開發記錄4_28335之啟動模式(串口燒寫Flash)

編輯:C++入門知識

TMS320F28335項目開發記錄4_28335之啟動模式(串口燒寫Flash)


TMS320F28335支持多種啟動模式,如下:

 

//       $Boot_Table:
//
//         GPIO87   GPIO86     GPIO85   GPIO84
//          XA15     XA14       XA13     XA12
//           PU       PU         PU       PU
//        ==========================================
//            1        1          1        1    Jump to Flash <- boot to Flash
//            1        1          1        0    SCI-A boot
//            1        1          0        1    SPI-A boot
//            1        1          0        0    I2C-A boot
//            1        0          1        1    eCAN-A boot
//            1        0          1        0    McBSP-A boot
//            1        0          0        1    Jump to XINTF x16
//            1        0          0        0    Jump to XINTF x32
//            0        1          1        1    Jump to OTP
//            0        1          1        0    Parallel GPIO I/O boot
//            0        1          0        1    Parallel XINTF boot
//            0        1          0        0    Jump to SARAM
//            0        0          1        1    Branch to check boot mode
//            0        0          1        0    Boot to flash, bypass ADC cal
//            0        0          0        1    Boot to SARAM, bypass ADC cal
//            0        0          0        0    Boot to SCI-A, bypass ADC cal
//                                              Boot_Table_End$

 

 

一時興起,先說一些題外話,關於燒寫程序的問題:

1. 一般使用CCS+仿真器時,我們把程序燒進RAM中運行,這樣運行速度快,方便實際項目的開發與調試;

注意此時用的是28335_RAM_lnk.cmd文件

2. 當項目完成時,一般我們會選擇將程序燒進Flash中,以擺脫仿對真器的依賴;當我們用f28335.cmd連接文件時,會把程序燒進28335內部的Flash中,此時,就可以脫離仿真器運行了;從Flash啟動;——也就是上面的

XA15     XA14       XA13     XA12

 

即分別等於1 1 1 1 時,Jump to Flash;

 

當然,具體的配置不僅僅是修改cmd文件這麼簡單的,有時程序在RAM中運行良好,到Flash中後就會出現這樣那樣的問題;

最典型如US_DELAY延時的一個函數,在RAM運行是延時很精確的,但在Flash中卻不一樣了,這個後面會說;

 

3. 結束廢話,進入正題,當我們要沒有仿真器時,如何將程序燒進Flash中呢?

我們最上面的看啟動方式中有SCI-A boot, SCI是串行通信接口,我們可以從串口啟動引導28335;

在這之前,一般硬件上都有跳線設置,我們可以把XA12下拉為低電平;

這樣就可以設置啟動模式為:1 1 1 0 ——即為SCI-A啟動

 

第一步

下載hex2000,使用hex2000將ccs編譯得到的.out文件轉換為.hex文件;

將ccs編譯得到的hex文件拷貝至到hex2000目錄下;

開始——運行——到hex2000目錄下 輸入:
hex2000.exe -romwidth 16 -memwidth 16 -i -o LED.hex LED.out

出現下圖所示信息代表轉換成功:

\

第二張圖是使用CCS自帶的生成HEX文件的一個功能選項,這樣可以不用下載hex2000;

第二步
開發板切換為SCI-A啟動模式,即1110;
將XA12接地即可,其他X13-X15保持上拉的3.3V不變;

第三步


第四步
串口接好,啟動C2Prog,板子復位上電;

使用串口調試工具,測試打開的串口:發送ABC等應該原樣返回信息;

配置C2Prog後,點program即可燒寫

 

第五步

切換為Flash啟動,觀察程序運行;

>>PS:我曾出現失敗的錯誤提示:
CRC Info added at 0x00330809: 0x9D1C 0x57C0 0x0000

*** PLEASE RESET TARGET IN SCI BOOT-LOADER MODE ***
Connecting with target (autobaud)... failed (no response)!

這個原因可能是因為232或485串口工作不良好,也可能是你的模式沒有切換正確;

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved