版權說明:本文檔由用戶提供并上傳,收益歸屬內(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 變壓器使用協(xié)議書的
- 安置房合同無效的原因
- 2025項目宣傳廣告合同范本
- 2024版物業(yè)管理服務合同模板2篇
- 2025特別贊助合同范文
- 二零二五年度教育培訓機構合作合同作廢證明范本3篇
- 二零二五年度賓館土地經(jīng)營權抵押融資合同3篇
- 二零二五年度智能語音交互技術研發(fā)合同3篇
- 二零二五年度智慧物流合伙協(xié)議人退伙運輸服務協(xié)議2篇
- 二零二五年度教育機構教師聘用合同書3篇
- 2024年壓瘡管理制度范本(六篇)
- 2024秋期國家開放大學??啤陡叩葦?shù)學基礎》一平臺在線形考(形考任務一至四)試題及答案
- 人教版2024新版七年級上冊數(shù)學期中模擬測試卷(含答案解析)
- 期末家長會(課件)小學生主題班會
- 數(shù)字化供電所題庫練習試題附答案
- 數(shù)字政府建設課件
- 2外匯風險對企業(yè)的潛在影響
- 無菌技術操作評分標準
- 《社群運營》全套教學課件
- GB/T 18029.8-2024輪椅車第8部分:靜態(tài)強度、沖擊強度及疲勞強度的要求和測試方法
- 中央2024年國家國防科工局重大專項工程中心面向應屆生招聘筆試歷年典型考題及考點附答案解析
評論
0/150
提交評論