DSP在线升级(3)-----一块DSP芯片的片上flash如何烧写2个工程
DSP在线升级(4)-----bootloader实现的功能
仍然以28377系列的dsp芯片为例;
对于project1
main函数编写如下:
main函数编写随意,最主要时其中有一句跳转地址的汇编指令;这里我们让代码跳转至地址0x84000;我们后面将该地址设置为第二个工程的codestart地址;那么该程序在运行时会跳转至第二个工程的起始地址;
同时在该工程的cmd文件中配置如下:
需要注意两点;该工程codestart的 BEGIN地址设置为 0x80000(默认的cmd文件,BEGIN起始地址都是0x80000);确保上电之后,程序pc执行到0x80000时,该处存在用户代码;
同时该工程需要限制在限定的flash sector中;(这里假设为flash sectorA 和sectorB中,按照用户个人需求来设定),通过cmd文件中的 SECTIONS可以进行配置,这是为两个不同的工程划分不同的区间,让两个工程之间没有flash重叠的部分;
对于project2
main函数编写如下
代码中有一句跳转汇编指令,跳转地址为0x80000;由于该地址为第一个工程的起始地址;
同时该文件的cmd文件配置为将
codestart的BEGIN段配置为 0x84000;
同时其他的代码段(数据段)都链接至flash sectorC 及以后,这了我们链接在flashD中;
当我们先将一个工程文件烧写至flash中,再烧写第二个工程,同时在线调试其中一个工程时,在main函数处打上断点,我们可以观察到该工程频繁进入main函数的断点;这是由于两个工程之间在不断地跳转至对方codestart所致;
怎么在一个flash上同时烧写两个工程文件时参考如下:
CCS7.3烧写DSP的on-chip FLASH时,如何只擦除部分FLASH Sector(一块DSP芯片的片上FLASH烧写两个工程)