微波EDA网,见证研发工程师的成长! 2025年01月11日 星期六
首页 > 硬件设计 > 电源设计 > 可在线更新应用程序代码的DSP自举模块

可在线更新应用程序代码的DSP自举模块

时间:12-05 来源:互联网 点击:

R_Page为每页FLASH可容纳最多数据块= 512/64)或者GUI软件发送的最后一组数据,写入FLASH。PageIndices[0]为下位机自举的基指针,指向FLASH中0x2000开始的地址,其中0x2000~0x2200用来存放接收数据信息(大孝所含数据块量);PageIndex为当前操作的Flash相对于基页0x2000的偏移量,PageIndices[0]+PageIndex*0x200指向Flash当前操作地址,自举程序代码从0x2200地址处开始。

BytesRead+= Block_Read((BYTE*)(&TempStorage[BlockIndex]),

ReadStageLength);

BlockIndex++;

if((BlockIndex==(Block_PR_Page))||(BytesRead==BytesToRead))

{

Page_Erase((BYTE*)(PageIndices[0]+PageIndex*0x200));

Page_Write((BYTE*)(PageIndices[0]+PageIndex*0x200));

PageIndex++;

}

4 实验验证

为测试该模块的可行性,以TMS320VC54x目标板为基础,设计了如下实验进行验证。

实验第一步首先需要验证GUI软件控制代码格式转换,和移植的可行性。利用DSP开发软件CCS编写一段LCD显示程序并编译生成.out文件。通过JTAG仿真后,LCD上显示“DSP自举模块液晶显示自举测试”等信息。之后去除JTAG进行自举试验。通过USB将PC机与C8051F340相连。待GUI软件成功获取USB器件编号并打开USB器件后,设置自举文件路径,点击 “下载更新DSP自举代码”按键开始更新代码。图8、图9为试验结果。

图8为GUI前面板的实验数据。图中两个USB检测灯在USB连接成功并被功打开时被点亮表明。状态显示区中的“文件转换执行信息”由GUI调用Hex500.exe软件之后产生、“DSP自举代码文件路径”为所转换生成的.dat文件路径,通过路径转换为字符串产生、“DSP自举代码文件内容”,由“读取文本文件VI”读取生成的.dat文件产生。实验数据与设想的一致,表明该模块已成功完成了程序代码的格式转换。最下方的灯被点亮并显示“DSP自举代码下载更新完成”表示GUI软件成功的通过USB将代码数据更新给C8051F340,DSP自举代码更新完成。

加载中...

图9为GUI软件控制DSP代码文件格式转换部分的框图在高亮运行模式下截取的数据。探针[1]为转换完成后所获得.dat文件的路径,探针[2]为所得到.dat文件的大小。表明上位机已成功完成代码文件格式的转换得到.dat格式文件

加载中...

第二步需验证C8051F340利用FLASH存储DSP代码并通过标准串行自举控制DSP自举的可行性。实验第一步成功之后,将C8051F340与DSP通过标准串行总线,C8051F340自动控制DSP开始自举。图10为C8051F340在获取GUI软件传送的更新代码并成功通过标准串行自举控制完成DSP自举的实物照片。LCD显示数据与通过JTAG仿真情况下完全一致,证明了该DSP自举模块的有效性,且该自举模块可实现一键更新DSP代码文件,方便快速。

加载中...

5 结语

本文提出了一种可在线更新程序的自举模块。该模块在GUI软件中将DSP程序代码进行格式转换并通过利用USB将代码数据导入C8051F340单片机的片内FLASH中存储。C8051F340通过标准串行总线控制DSP进行自举。利用该模块,用户更新DSP程序代码可完全在计算机上操作,无需了解自举的具体细节,实现一键更新代码;同时该自举模块可在短短数秒内完成代码更新,从而大大减轻了开发难度和缩短开发周期。另外,由于单片机FLASH存储量为64kb,除去单片机的程序占用空间,从0x2200地址开始,共可存储55.5kb左右的DSP程序代码,满足大多数中小DSP应用程序的自举需求,因此该系统可广泛用于程序代码不超过55.5k字节的DSP系统中。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top