DSP在线升级程序步骤

DSP在线升级程序步骤

ID:40760874

大小:22.09 KB

页数:7页

时间:2019-08-07

DSP在线升级程序步骤_第1页
DSP在线升级程序步骤_第2页
DSP在线升级程序步骤_第3页
DSP在线升级程序步骤_第4页
DSP在线升级程序步骤_第5页
资源描述:

《DSP在线升级程序步骤》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

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

2、序。还可以通过汇编跳转指令直接跳转到程序codestart执行。二、升级程序1、具备能力:具备通信能力和Flash读写能力2、准备:FlashAPI移植、上位机的升级配套程序;存储升级标志位的空间(外部EEPROM,不会随便擦除的内部Flash)3、流程:接收->校验->烧写->跳转三、升级步骤1、数据接收:通过CAN/串口等方式接收数据。由于28335内存较小,不适合缓存大量的数据,这里是接收一部分数据,校验完成后烧写进Flash,再去接收一部分数据2、数据解析:接收到的数据是hex格式的数据,所以需要解析才能放入对

3、应的flash地址。但由于28335能力限制,这里采用先在上位机解析完成,采用先告知地址,然后发送数据的方式完成数据通信和传输。3、校验:这里采用crc校验。/*******************************************************Name    :  crc16*Function:  crc校验16位*Params  :  data(UInt8 *):待操作的数组   len:数据长度*Return  :  UInt16:返回CRC值 CRC校验码为2个字节高位在前*******

4、************************************************/UInt16 crc16(Uint8 *data, UInt16 len){    UInt16 CRC = 0xFFFF;    UInt8 j, TMP = 0;    UInt8 i;    for (i = 0; i < len; i++)    {        CRC ^= data[i];        for (j = 0; j < 8; j++)        {            TMP = CRC

5、 & 0x0001;            CRC = CRC >> 1;            if(TMP)                CRC = CRC ^ 0xA001;        }    }    return CRC;}4、数据烧写flash:运用flashAPI提供的接收完成数据的烧写。这里要注意flashAPI必须运行在RAM中。5、完成数据烧写后,需要跳转到主程序。一般采用汇编指令。汇编指令asm("LB0xXXXXXX")或者汇编函数。这里采用asm的方式,跳转地址为新应用程序的起始地址,

6、这里必须规定每次跟新的新应用程序的起始地址必须固定。  asm("LB0x3xxxxx");如果是使用变动的起始地址,则必须采用汇编函数,把地址作为参数传进函数。四、主程序1、接收升级指令后,能够标志升级状态。重启进入升级程序,进行判断,进而升级程序。2、主程序运行后,升级状态标记为不用升级状态。五、注意点1、升级程序与主程序要严格分开,合理分配flash空间,附升级程序和主程序cmd大致分配空间。主程序cmd文件/****************************************************

7、******************* 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)**********************************************************************/MEMORY{PAGE 0:  

8、  /* Program Memory */    BEGIN_M0        : origin = 0x000000, length = 0x000002     /* Part of M0SARAM.  Used for "Boot to M0" bootloader mode. */    FLASH_PROGRAMS 

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。