DSP在线升级(1) |
您所在的位置:网站首页 › firmware更新需要多久 › DSP在线升级(1) |
DSP在线升级(1)---认识DSP芯片启动流程 DSP在线升级(2)--bootloader的设计框架 DSP在线升级(3)-----一块DSP芯片的片上flash如何烧写2个工程 DSP在线升级(4)-----bootloader实现的功能 首先了解一下TI的DSP上电之后是如何运行的; 以Ti的DSP28377为例,CCS版本号v7.3; 连接仿真器,保持DSP的在线调试状态;
首先进入debug调试界面,启动28377的芯片配置;鼠标右键点击connect Target按钮(如图1所示);
图1 点击连接芯片之后,我们可以看到调试界面显示, 0x3FF16A(no symbols are defined) no source avaliable for 0x3ff16a(如图2所示); 这里的意思是程序运行至了芯片片上FLASH的0x3FF16A处,但是本地的工程文件并没有与该地址对应的代码以及符号映射;因此会出现这些信息;
图2 配合工程文件的.cmd文件理解; 在不进行特殊设置的情况下,默认用户启动方式为从片内FLASH启动; cmd文件中,标明了用户程序(不包含Ti出厂前已固化在芯片中的程序)的初始启动地址,对于28377芯片而言,该地址为0x080000; RESET 为芯片上电重启后执行的第一条指令;该指令在芯片FLASH上的地址为0x3FFFC0; (如图3所示)
图3 在连上仿真器的状态下,我们可以查看FLASH芯片中烧写的内容; 首先查看0x3FFFC0处的内容; 通过调试界面的view,中的memory broswer 选项,查看flash地址0x3FFFC0中的内容(如图4所示);内容为 F16A 003F,FLASH中保存的都是数据,这些“数据”也就是可执行的机器码,这段汇编代码具体的意思,可以通过dsp的反汇编来查看;其中0x3FFFC0处的内容为待执行程序有效地址:0x3FF16A;(如图4所示) 这与前面的no symbols are defined in 0x3ff16a 是对应的;
图4 接着查看flash地址为0x3FF16A处的内容: flash的这些地址中烧写的数据都是Ti在芯片出厂前固化在芯片中的代码;代码实现的功能是对寄存器和堆栈等进行初始化;(如图5所示) 这些系统的boot程序运行完之后;就会跳转至芯片中片上FLASH的地址0x080000处,去执行用户的第一条指令;
图5 加载自己的程序: 首先我们新建一个工程,工程名为test(如图6所示);
图6 工程只有一个main函数,同时我们需要注意;对于不同型号的芯片(本例中为28377),需要添加对应芯片的F2837xD_CodeStartBranch.asm文件;该文件为汇编文件,其中定义了codestart函数:codestart函数对应 .cmd文件中的 codestart 段,相关内容如下(见图7所示): 图7 (cmd中对应的codestart段) cmd文件,将codestart定位在 BEGIN(0x80000)处(如图8所示)
图8
编译好程序,并将其烧写至dsp片上FLASH之后;在线调试; dsp芯片上电重启后,首先运Ti已经固化的系统boot程序,为用户程序的运行配置运行环境;之后从0x80000地址开始运行用户代码;(详细启动过程见链接) DSP芯片上电后在执行main函数前的执行流程 查看FLASH 0x80000处内容(如图9所示); 图9 该地址处的内容为0048 201C,对应我们代码中的codestart; 其中0048 201C为机器码;该两字节代码意思为跳转(004)至(0x8201C)处; 实际对应汇编语句 LB _c_int00观察0x8201C中的内容(如图10所示); 图10 该地址内的代码,即为_c_int00函数的机器码; 前面介绍了codestart函数(如图11所示)
图11 codestart函数中LB _c_int00 即为跳转至 _c_int00;
结合这个链接,可以将dsp上电执行了哪些代码,了解的更加清晰;(同上) DSP芯片上电后在执行main函数前的执行流程
对于以上的内容再进行进一步补充说明;假设我们配置cmd文件; BEGIN: origin=0x082000,length=0x000002 我们连接仿真器在线运行时,程序是可以正常运行的,但是当我们不连接仿真器时,将DSP芯片上电,此时,程序的确已经烧写进入dsp的flash芯片当中,但是芯片无法正常运行;我们需要将程序的cmd文件设置为: BEGIN : origin=0x080000,length=0x000002 codestart : > BEGIN 即将codestart执行地址通过cmd文件链接至0x80000处(不同型号芯片的地址不完全相同),程序才可以正常执行
阅读完链接之后,我们可以了解到; DSP上电运行后,执行流程如下(图12): 图12 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |