DSP在線升級程序步驟(共7頁)_第1頁
DSP在線升級程序步驟(共7頁)_第2頁
DSP在線升級程序步驟(共7頁)_第3頁
DSP在線升級程序步驟(共7頁)_第4頁
DSP在線升級程序步驟(共7頁)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上目標板:C2000的28335/28069一、主要思路:1、準備升級程序(相當于一個bootloader),作為上電首先運行的程序。進入升級程序,首先判斷需不需要升級,需要升級,進入升級狀態(tài),通信完成新的主程序的接收,存入,升級成功后,進入主程序運行。2、在主程序運行時,收到升級指令,標記升級標志,重啟進入升級程序進去升級。3、板子上電后,會調(diào)到flash啟動的起始地址0x33FFF6(DSP28335),這個地址存放著程序的codestart的其實地址。所以,修改了0x33FFF6的存放的值,那么就能決定執(zhí)行那一段程序。還可以通過匯編跳轉(zhuǎn)指令直接跳轉(zhuǎn)到程序codes

2、tart執(zhí)行。二、升級程序1、具備能力:具備通信能力和Flash讀寫能力2、準備:Flash API移植、上位機的升級配套程序;存儲升級標志位的空間(外部EEPROM,不會隨便擦除的內(nèi)部Flash)3、流程:接收->校驗->燒寫->跳轉(zhuǎn)三、升級步驟1、數(shù)據(jù)接收:通過CAN/串口等方式接收數(shù)據(jù)。由于28335內(nèi)存較小,不適合緩存大量的數(shù)據(jù),這里是接收一部分數(shù)據(jù),校驗完成后燒寫進Flash,再去接收一部分數(shù)據(jù)2、數(shù)據(jù)解析:接收到的數(shù)據(jù)是hex格式的數(shù)據(jù),所以需要解析才能放入對應的flash地址。但由于28335能力限制,這里采用先在上位機解析完成,采用先告知地址,然后發(fā)送數(shù)據(jù)的方

3、式完成數(shù)據(jù)通信和傳輸。3、校驗:這里采用crc校驗。/*Name    :  crc16*Function:  crc校驗16位*Params  :  data(UInt8 *):待操作的數(shù)組   len:數(shù)據(jù)長度*Return  :  UInt16:返回CRC值 CRC校驗碼為2個字節(jié)高位在前*/UInt16 crc16(Uint8 *data, UInt

4、16 len)    UInt16 CRC = 0xFFFF;    UInt8 j, TMP = 0;    UInt8 i;    for (i = 0; i < len; i+)       

5、60;    CRC = datai;        for (j = 0; j < 8; j+)                    TMP = CRC

6、0;& 0x0001;            CRC = CRC >> 1;            if(TMP)              

7、0; CRC = CRC  0xA001;                return CRC;4、數(shù)據(jù)燒寫flash:運用flash API提供的接收完成數(shù)據(jù)的燒寫。這里要注意flash API必須運行在RAM中。5、完成數(shù)據(jù)燒寫后,需要跳轉(zhuǎn)到主程序。一般采用匯編指令。匯編指令asm("LB 0xXXXXXX")或者匯編函數(shù)。這里采用asm的方式,跳轉(zhuǎn)地址

8、為新應用程序的起始地址,這里必須規(guī)定每次跟新的新應用程序的起始地址必須固定。   asm(" LB 0x3xxxxx");如果是使用變動的起始地址,則必須采用匯編函數(shù),把地址作為參數(shù)傳進函數(shù)。四、主程序1、接收升級指令后,能夠標志升級狀態(tài)。重啟進入升級程序,進行判斷,進而升級程序。2、主程序運行后,升級狀態(tài)標記為不用升級狀態(tài)。五、注意點1、升級程序與主程序要嚴格分開,合理分配flash空間,附升級程序和主程序cmd大致分配空間。主程序cmd文件/* File: f28335_nonBIOS_flash.cmd - 

9、Linker command file for non-DSP/BIOS* code with DSP in Boot to Flash boot mode.* History: 09/18/07 - original (D. Alter)*/MEMORYPAGE 0:    /* Program Memory */ 

10、   BEGIN_M0        : origin = 0x, length = 0x     /* Part of M0SARAM.  Used for "Boot to M0" bootloader mode. */ &#

11、160;  FLASH_PROGRAMS  : origin = 0x, length = 0x     /* On-chip FLASH */    FLASH_PROGRAM   : origin = 0x, length = 0x01FFF0   

12、60; /* On-chip FLASH */    ZONE7A          : origin = 0x, length = 0x    CSM_RSVD        : origin = 0x33F

13、F80, length = 0x     /* Part of FLASH Sector A.  Reserved when CSM is in use. */    BEGIN_FLASH     : origin = 0x33FFF6, length

14、60;= 0x     /* Part of FLASH Sector A.  Used for "Jump to flash" bootloader mode. */    PASSWORDS       : origin = 0x33F

15、FF8, length = 0x     /* Part of FLASH Sector A.  CSM password locations. */    ADC_CAL         : origin = 0x, length =&#

16、160;0x     /* ADC_cal function in Reserved memory */    OTP             : origin = 0x, length = 0x     /*

17、 1Kw OTP */    IQTABLES        : origin = 0x3FE000, length = 0x000B50     /* Part of Boot ROM */    IQTABLES2  

18、0;    : origin = 0x3FEB50, length = 0x00008C     /* Part of Boot ROM */    FPUTABLES       : origin = 0x3FEBDC, length =

19、 0x0006A0     /* Part of Boot ROM */    BOOTROM         : origin = 0x3FF27C, length = 0x000D44     /* 8Kw Boot 

20、;ROM */    RESET           : origin = 0x3FFFC0, length = 0x     /* part of Boot ROM */    FLASH_CONST   &

21、#160; : origin = 0x, length = 0x PAGE 1 :   /* Data Memory */    M0SARAM         : origin = 0x, length = 0x0003FE  

22、   /* 1Kw M0 SARAM */    M1SARAM         : origin = 0x, length = 0x     /* 1Kw M1 SARAM */    DRAM &

23、#160;          : origin = 0x, length = 0x    PIEVECT            : origin = 0x000D00, length = 0x  &#

24、160; ZONE7B          : origin = 0x, length = 0x/    FLASH_DATA      : origin = 0x, length = 0x     /* On-

25、chip FLASH */SECTIONS/* Compiler Required Sections */  /* Program memory (PAGE 0) sections */   .text1     : DSP2833x_CodeStartBranch.obj(.text)> FLASH_PROGRAMS, PAGE 

26、= 0   .text2     : *(.text)> FLASH_PROGRAM,      PAGE = 0   .cinit            : > FLASH_PROGRAM,   

27、      PAGE = 0   .const            : > FLASH_PROGRAM,         PAGE = 0   .econst   

28、0;       : > FLASH_CONST,           PAGE = 0   .pinit            : > FLASH_PROGRAM,  

29、0;      PAGE = 0   .reset            : > RESET,                 PAGE = 0,

30、0;TYPE = DSECT  /* We are not using the .reset section */   .switch           : > FLASH_PROGRAM,         PAGE

31、60;= 0   .cio              : > FLASH_PROGRAM,         PAGE = 0  /* Data Memory (PAGE 1) sections */

32、60;  .bss              : > DRAM,                  PAGE = 1   .ebss    &#

33、160;        : > DRAM,                  PAGE = 1   .stack            :

34、60;> DRAM,                  PAGE = 1   .sysmem           : > ZONE7B,       

35、;         PAGE = 1   .esysmem          : > ZONE7B,                PAGE = 1/*&

36、#160;User Defined Sections */   codestart         : > BEGIN_FLASH,           PAGE = 0          &#

37、160;     /* Used by file CodeStartBranch.asm */   csm_rsvd          : > CSM_RSVD,              PAGE

38、60;= 0                /* Used by file passwords.asm */   internalMemFuncs  : > FLASH_PROGRAM,         PAGE&

39、#160;= 0                /* Used by file Xintf.c.  Link to internal memory */   passwords         : &

40、gt; PASSWORDS,             PAGE = 0                /* Used by file passwords.asm */   /* Sectio

41、n secureRamFuncs used by file SysCtrl.c. */   ramfuncs          : LOAD = FLASH_PROGRAM,    PAGE = 0          &

42、#160;     /* Should be Flash */                       RUN = ZONE7A,          

43、60; PAGE = 0                /* Must be CSM secured RAM */                   

44、0;   LOAD_START(_RamfuncsLoadStart),                       LOAD_END(_RamfuncsLoadEnd),              

45、         RUN_START(_RamfuncsRunStart)   /* Allocate ADC_cal function (pre-programmed by factory into TI reserved memory) */   .adc_cal      

46、    : load = ADC_CAL,          PAGE = 0, TYPE = NOLOAD/* end of file */升級程序cmd文件/* File: f28335_nonBIOS_flash.cmd - Linker command file 

47、;for non-DSP/BIOS* code with DSP in Boot to Flash boot mode.* History: 09/18/07 - original (D. Alter)*/MEMORYPAGE 0:    /* Program Memory */    BEGIN_M0 &#

48、160;      : origin = 0x, length = 0x     /* Part of M0SARAM.  Used for "Boot to M0" bootloader mode. */    FLASH_PROGRAM 

49、;  : origin = 0x, length = 0x     /* On-chip FLASH G*/    FLASH_PROGRAM1  : origin = 0x, length = 0x     /* On-chip FLASH

50、0;G*/    FLASH_CONST     : origin = 0x, length = 0x     /* On-chip FLASH G*/    ZONE7A          : origin 

51、= 0x, length = 0x    CSM_RSVD        : origin = 0x33FF80, length = 0x     /* Part of FLASH Sector A.  Reserved when CSM&

52、#160;is in use. */    BEGIN_FLASH     : origin = 0x33FFF6, length = 0x     /* Part of FLASH Sector A.  Used for "Jump to flas

53、h" bootloader mode. */    PASSWORDS       : origin = 0x33FFF8, length = 0x     /* Part of FLASH Sector A.  CSM password locat

54、ions. */    ADC_CAL         : origin = 0x, length = 0x     /* ADC_cal function in Reserved memory */    OTP   

55、          : origin = 0x, length = 0x     /* 1Kw OTP */    IQTABLES        : origin = 0x3FE000, lengt

56、h = 0x000B50     /* Part of Boot ROM */    IQTABLES2       : origin = 0x3FEB50, length = 0x00008C     /* Part of Bo

57、ot ROM */    FPUTABLES       : origin = 0x3FEBDC, length = 0x0006A0     /* Part of Boot ROM */    BOOTROM     

58、    : origin = 0x3FF27C, length = 0x000D44     /* 8Kw Boot ROM */    RESET           : origin = 0x3FFFC0, leng

59、th = 0x     /* part of Boot ROM */ PAGE 1 :   /* Data Memory */    M0SARAM         : origin = 0x, length 

60、= 0x0003FE     /* 1Kw M0 SARAM */    M1SARAM         : origin = 0x, length = 0x     /* 1Kw M1 SARAM */ &#

61、160;  DRAM            : origin = 0x, length = 0x    PIEVECT            : origin = 0x000D00, length&#

62、160;= 0x    ZONE7B          : origin = 0x, length = 0x    /FLASH_DATA      : origin = 0x, length = 0x  &#

63、160;  /* On-chip FLASH B*/SECTIONS   Flash28_API:           -lFlash28335_API_V210.lib(.econst)        -lFlash28335_API_V210.lib(.text)     &

64、#160;                LOAD = FLASH_PROGRAM1,                       RUN = ZONE7A, 

65、                      LOAD_START(_Flash28_API_LoadStart),                      &

66、#160;LOAD_END(_Flash28_API_LoadEnd),                       RUN_START(_Flash28_API_RunStart),               

67、60;       PAGE = 0/* Compiler Required Sections */  /* Program memory (PAGE 0) sections */   .text             :

68、60;> FLASH_PROGRAM,         PAGE = 0   .cinit            : > FLASH_PROGRAM,         PAGE = 0&#

69、160;  .const            : > FLASH_PROGRAM,         PAGE = 0   .econst           : >&

70、#160;FLASH_CONST,           PAGE = 0   .pinit            : > FLASH_PROGRAM,         PAGE = 0

71、   .reset            : > RESET,                 PAGE = 0, TYPE = DSECT  /* We are&

72、#160;not using the .reset section */   .switch           : > FLASH_PROGRAM,         PAGE = 0   .cio    

73、;          : > FLASH_PROGRAM,         PAGE = 0  /* Data Memory (PAGE 1) sections */   .bss      &

74、#160;       : > DRAM,                  PAGE = 1   .ebss             :

75、60;> DRAM,                  PAGE = 1   .stack            : > DRAM,      &#

76、160;           PAGE = 1   .sysmem           : > ZONE7B,                P

77、AGE = 1   .esysmem          : > ZONE7B,                PAGE = 1/* User Defined Sections */  

78、 codestart         : > BEGIN_FLASH,           PAGE = 0                /* Used by&#

79、160;file CodeStartBranch.asm */   csm_rsvd          : > CSM_RSVD,              PAGE = 0       

80、60;        /* Used by file passwords.asm */   internalMemFuncs  : > FLASH_PROGRAM,         PAGE = 0                /* Used by file&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論