DSP在线升级(1)---认识DSP芯片启动流程

DSP在线升级(2)--bootloader的设计框架

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烧写两个工程)

 

 

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐