一、总体思路
首先要介绍的是,DSP在线升级的本质是指上位机先解析hex/bin文件,然后通过CAN总线/串口等通信方式,把解析的数据发给DSP(下位机),DSP利用TI封装好的flash编程函数(擦除/编程/验证)写入flash 。
这里遇到个问题,dsp自己给自己编程,程序运行在哪里呢?所以要对片上flash重新划分,用来存放两个工程,一个工程用来做程序升级,一个工程用来做正常开发。28335的flash是256K*16位的,有8个扇区,A区有程序密码锁。我们称第一个工程为boot,第二个工程为app。
二、程序设计步骤
1、cmd文件划分
cmd文件包括两个部分,第一,MEMORY区,他是用来指示存储空间的,里面有两页,pag0是程序区,pag1是数据区;第二,SECTIONS区,他是用来分配存储空间的。这里面基于ti的28335.cmd文件修改,其实只需要指定下app工程的跳转地址就可以,长度为2个字。boot工程还是用原来的跳转地址,在扇区A中。扇区A,D用来做boot,扇区H/G/F/E用来做app,B/C区暂不做指定。
以下是MEMORY修改部分
/* FLASHH : origin = 0x300000, length = 0x008000*/ /* on-chip FLASH */
APP_BEGIN : origin = 0x300000, length = 0x000002 /* on-chip FLASH */
FLASHH : origin = 0x300002, length = 0