最新DSP在线升级程序步骤资料_第1页
最新DSP在线升级程序步骤资料_第2页
最新DSP在线升级程序步骤资料_第3页
最新DSP在线升级程序步骤资料_第4页
最新DSP在线升级程序步骤资料_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精品文档目标板:C2000 的 28335/28069一、主要思路:1、 准备升级程序(相当于一个bootloader ),作为上电首先运行的程序。进入升级程序,首先判断需不 需要升级,需要升级,进入升级状态,通信完成新的主程序的接收,存入,升级成功后,进入主程序运行。2、在主程序运行时,收到升级指令,标记升级标志,重启进入升级程序进去升级。3、 板子上电后,会调到flash启动的起始地址 0x33FFF6( DSP28335 ),这个地址存放着程序的 codestart 的其实地址。所以,修改了0X33FFF6的存放的值,那么就能决定执行那一段程序。还可以通过汇编跳转 指令直接跳转到程序 c

2、odestart执行。二、升级程序1、 具备能力:具备通信能力和Flash读写能力2、 准备:Flash API移植、上位机的升级配套程序;存储升级标志位的空间(外部EEPROM,不会随便擦 除的内部Flash)3、流程:接收- 校验- 烧写- 跳转三、升级步骤1、 数据接收:通过 CAN/串口等方式接收数据。由于28335内存较小,不适合缓存大量的数据,这里是接收一部分数据,校验完成后烧写进Flash,再去接收一部分数据2、 数据解析:接收到的数据是hex格式的数据,所以需要解析才能放入对应的flash地址。但由于28335 能力限制,这里采用先在上位机解析完成,采用先告知地址,然后发送数据

3、的方式完成数据通信和传输。3、校验:这里采用 crc校验。/*Name : crc16*Function: crc 校验 16 位*Params : data ( UInt8 * ):待操作的数组len:数据长度*Return : UInt16 :返回CRC值CRC校验码为2个字节高位在前*/UInt16 crc16(Uint8 *data, UInt16 len)UInt16 CRC = 0xFFFF;UInt8 j, TMP = 0;UInt8 i;for (i = 0; i len; i+)CRC 人=datai;for (j = 0; j 1;if(TMP)CRC = CRC 人 0x

4、A001;return CRC;4、 数据烧写flash :运用flash API提供的接收完成数据的烧写。这里要注意flash API必须运行在RAM 中。5、 完成数据烧写后,需要跳转到主程序。一般采用汇编指令。汇编指令asm(LB OxXXXXXX)或者汇编 函数。这里采用asm的方式,跳转地址为新应用程序的起始地址,这里必须规定每次跟新的新应用程序的起始地址必须固定。asm( LB 0x3xxxxx);如果是使用变动的起始地址,则必须采用汇编函数,把地址作为参数传进函数。四、主程序1、接收升级指令后,能够标志升级状态。重启进入升级程序,进行判断,进而升级程序。2、主程序运行后,升级状态

5、标记为不用升级状态。五、注意点1、升级程序与主程序要严格分开,合理分配flash空间,附升级程序和主程序 cmd大致分配空间。主程序cmd文件/* File: f28335_nonBIOS_flash.cmd - 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 */BEGIN_MO : origin = 0x000000, length

6、= 0x000002/* Part of MOSARAM. Used for Boot to M0 bootloader mode. */FLASH_PROGRAMS : origin = 0x310000, length = 0x000010/* On-chip FLASH */FLASH_PROGRAM : origin = 0x310010, length = 0x01FFF0 /* On-chip FLASH */ZONE7A : origin = 0x200000, length = 0x010000CSM_RSVD:origin = 0x33FF80, length = 0x000

7、076/* Part of FLASH Sector A.Reserved when CSM is in use. */BEGIN_FLASH : origin = 0x33FFF6, length = 0x000002/* Part of FLASH Sector A.Used for Jump to flashbootloader mode. */PASSWORDS: origin = 0x33FFF8, length = 0x000008/* Part of FLASH Sector A.CSM password locations. */ADC_CAL:origin = 0x38008

8、0, length = 0x000009/* ADC_cal function in Reserved memory */OTP:origin = 0x380400, length = 0x000400/* 1Kw OTP */IQTABLES:origin = 0x3FE000, length = 0x000B50/* Part of Boot ROM */IQTABLES2:origin = 0x3FEB50, length = 0x00008C/* Part of Boot ROM */FPUTABLES:origin = 0x3FEBDC, length = 0x0006A0/* Pa

9、rt of Boot ROM */BOOTROM:origin = 0x3FF27C, length = 0x000D44/* 8Kw Boot ROM */RESET:origin = 0x3FFFC0, length = 0x000002/* part of Boot ROM */FLASH_CONST : origin = 0x300000, length = 0x010000PAGE 1 : /* Data Memory */M0SARAM:origin = 0x000002, length = 0x0003FE/* 1Kw M0 SARAM */M1SARAM:origin = 0x

10、000400, length = 0x000400/* 1Kw M1 SARAM */DRAM:origin = 0x008000, length = 0x008000PIEVECT:origin = 0x000D00, length = 0x000100ZONE7B:origin = 0x210000, length = 0x010000/ FLASH_DATA : origin = 0x330000, length = 0x008000/* On-chip FLASH */SECTIONS/* Compiler Required Sections */* Program memory (P

11、AGE 0) sections */.text1 : DSP2833x_CodeStartBranch.obj(.text) FLASH_PROGRAMS, PAGE = 0.text2 : *(.text) FLASH_PROGRAM, PAGE = 0.cinit: FLASH_PROGRAM, PAGE = 0.const: FLASH_PROGRAM, PAGE = 0.econst : FLASH_CONST, PAGE = 0.pinit: FLASH_PROGRAM, PAGE = 0.reset : RESET,PAGE = 0, TYPE = DSECT /* We are

12、not using the .reset section */.switch : FLASH_PROGRAM, PAGE = 0.cio: FLASH_PROGRAM, PAGE = 0/* Data Memory (PAGE 1) sections */.bss: DRAM,PAGE = 1.ebss: DRAM,PAGE = 1.stack: DRAM,PAGE = 1.sysmem: ZONE7B,PAGE = 1.esysmem: ZONE7B,PAGE = 1/* User Defined Sections */codestart : BEGIN_FLASH, PAGE = 0/*

13、Used by file CodeStartBranch.asm */csm_rsvd : CSM_RSVD,PAGE = 0/* Used by file passwords.asm */internalMemFuncs : FLASH_PROGRAM, PAGE = 0/* Used by file Xintf.c. Linkto internal memory */passwords : PASSWORDS,PAGE = 0/* Used by file passwords.asm */* Section secureRamFuncs used by file SysCtrl.c. */

14、ramfuncs : LOAD = FLASH_PROGRAM, PAGE = 0/* Should be Flash */RUN = ZONE7A,PAGE = 0/* Must be CSM secured RAM */LOAD_START(_RamfuncsLoadStart), LOAD_END(_RamfuncsLoadEnd),RUN_START(_RamfuncsRunStart)/* Allocate ADC_cal function (pre-programmed by factory into TI reserved memory) */PAGE = 0, TYPE = N

15、OLOAD.adc_cal : load = ADC_CAL,end of file*升级程序cmd文件* File: f28335_nonBIOS_flash.cmd - 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 */BEGIN_MO : origin = 0x000000, length = 0x000002/* Part of

16、 MOSARAM. Used for Boot to M0 bootloader mode. */FLASH_PROGRAM : origin = 0x330000, length = 0x005000/* On-chip FLASH G*/FLASH_PROGRAM1 : origin = 0x335000, length = 0x001000/* On-chip FLASH G*/FLASH_CONST : origin = 0x336000, length = 0x001000/* On-chip FLASH G*/ZONE7A : origin = 0x200000, length =

17、 0x010000CSM_RSVD:origin = 0x33FF80, length = 0x000076/* Part of FLASH Sector A. Reserved when CSM is in use. */BEGIN_FLASH : origin = 0x33FFF6, length = 0x000002/* Part of FLASH Sector A. Used for Jump to flash bootloader mode. */PASSWORDS : origin = 0x33FFF8, length = 0x000008/* Part of FLASH Sect

18、or A. CSM password locations. */ADC_CALmory */:origin = 0x380080, length = 0x000009/* ADC_cal function in Reserved meOTP: origin = 0x380400, length = 0x000400/* 1Kw OTP */IQTABLES:origin = 0x3FE000, length = 0x000B50/* Part of Boot ROM */IQTABLES2:origin = 0x3FEB50, length = 0x00008C/* Part of Boot

19、ROM */FPUTABLES:origin = 0x3FEBDC, length = 0x0006A0/* Part of Boot ROM */BOOTROM:origin = 0x3FF27C, length = 0x000D44/* 8Kw Boot ROM */RESET:origin = 0x3FFFC0, length = 0x000002/* part of Boot ROM */PAGE 1 : /* Data Memory */M0SARAM:origin = 0x000002, length = 0x0003FE/* 1Kw M0 SARAM */M1SARAM:orig

20、in = 0x000400, length = 0x000400/* 1Kw M1 SARAM */DRAM:origin = 0x008000, length = 0x008000PIEVECT:origin = 0x000D00, length = 0x000100ZONE7B:origin = 0x210000, length = 0x010000FLASH_DATA: origin = 0x330000, length = 0x008000 /* On-chip FLASH B*/SECTIONSFlash28_API:-IFIash28335_API_V210.lib(.econst

21、)-IFIash28335_API_V210.lib(.text)LOAD = FLASH_PROGRAM1,RUN = ZONE7A,LOAD_START(_Flash28_API_LoadStart),LOAD_END(_Flash28_API_LoadEnd),RUN_START(_Flash28_API_RunStart),PAGE = 0/* Compiler Required Sections */* Program memory (PAGE 0) sections */.text: FLASH_PROGRAM,PAGE = 0.cinit: FLASH_PROGRAM,PAGE

22、= 0.const: FLASH_PROGRAM, PAGE = 0.econst : FLASH_CONST, PAGE = 0.pinit: FLASH_PROGRAM, PAGE = 0.reset : RESET,PAGE = 0, TYPE = DSECT /* We are not using the .reset section */.switch : FLASH_PROGRAM, PAGE = 0.cio: FLASH_PROGRAM, PAGE = 0/* Data Memory (PAGE 1) sections */.bss:DRAM,PAGE = 1.ebss:DRAM

23、,PAGE = 1.stack:DRAM,PAGE = 1.sysmem : ZONE7B,PAGE = 1.esysmem : ZONE7B,PAGE = 1/* User Defined Sections */codestart : BEGIN_FLASH, PAGE = 0/* Used by file CodeStartBranch.asm */csm_rsvd : CSM_RSVD,PAGE = 0/* Used by file passwords.asm */internalMemFuncs : FLASH_PROGRAM, PAGE = 0/* Used by file Xintf.c. Linkto internal memory */passwords : PASS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论