- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DSP在线升级程序步骤
目标板:C2000的28335/28069
一、主要思路:
1、准备升级程序(相当于一个bootloader),作为上电首先运行的程序。进入升级程序,首先判断需不需要升级,需要升级,进入升级状态,通信完成新的主程序的接收,存入,升级成功后,进入主程序运行。
2、在主程序运行时,收到升级指令,标记升级标志,重启进入升级程序进去升级。
3、板子上电后,会调到flash启动的起始地址0x33FFF6(DSP28335),这个地址存放着程序的codestart的其实地址。所以,修改了0x33FFF6的存放的值,那么就能决定执行那一段程序。还可以通过汇编跳转指令直接跳转到程序codestart执行。
二、升级程序
1、具备能力:具备通信能力和Flash读写能力
2、准备:Flash API移植、上位机的升级配套程序;存储升级标志位的空间(外部EEPROM,不会随便擦除的内部Flash)
3、流程:接收-校验-烧写-跳转
三、升级步骤
1、数据接收:通过CAN/串口等方式接收数据。由于28335内存较小,不适合缓存大量的数据,这里是接收一部分数据,校验完成后烧写进Flash,再去接收一部分数据
2、数据解析:接收到的数据是hex格式的数据,所以需要解析才能放入对应的flash地址。但由于28335能力限制,这里采用先在上位机解析完成,采用先告知地址,然后发送数据的方式完成数据通信和传输。
3、校验:这里采用crc校验。
/******************************************************
*Name????:??crc16
*Function:??crc校验16位
*Params??:??data(UInt8?*):待操作的数组???len:数据长度
*Return??:??UInt16:返回CRC值?CRC校验码为2个字节高位在前
*******************************************************/
UInt16?crc16(Uint8?*data,?UInt16?len)
{
????UInt16?CRC?=?0xFFFF;
????UInt8?j,?TMP?=?0;
????UInt8?i;
????for?(i?=?0;?i??len;?i++)
????{
????????CRC?^=?data[i];
????????for?(j?=?0;?j??8;?j++)
????????{
????????????TMP?=?CRC??0x0001;
????????????CRC?=?CRC??1;
????????????if(TMP)
????????????????CRC?=?CRC?^?0xA001;
????????}
????}
????return?CRC;
}
4、数据烧写flash:运用flash API提供的接收完成数据的烧写。这里要注意flash API必须运行在RAM中。
5、完成数据烧写后,需要跳转到主程序。一般采用汇编指令。汇编指令asm(LB 0xXXXXXX)或者汇编函数。
这里采用asm的方式,跳转地址为新应用程序的起始地址,这里必须规定每次跟新的新应用程序的起始地址必须固定。 ??
asm( LB 0x3xxxxx);
如果是使用变动的起始地址,则必须采用汇编函数,把地址作为参数传进函数。
四、主程序
1、接收升级指令后,能够标志升级状态。重启进入升级程序,进行判断,进而升级程序。
2、主程序运行后,升级状态标记为不用升级状态。
五、注意点
1、升级程序与主程序要严格分开,合理分配flash空间,附升级程序和主程序cmd大致分配空间。
主程序cmd文件
/**********************************************************************
*?File:?f28335_nonBIOS_flash.cmd?--?Linker?command?file?for?non-DSP/BIOS
*?code?with?DSP?in?Boot?to?Flash?boot?mode.
*
*?History:?09/18/07?-?original?(D.?Alter)
**********************************************************************/
MEMORY
{
PAGE?0:????/*?Program?Memory?*/
????BEGIN_M0????????:?origin?=?0x000000,?length?=?0x000002?????/*?Part?of?M0SARAM.??Used?for
您可能关注的文档
- Cisco交换机密码清除.doc
- COD测量方法研究进展.docx
- cohesive文摘介绍.docx
- CollegePressures完整译文.docx
- CMMI3访谈问题列表forEPG.doc
- COPD急性加重.docx
- COPD麻醉与镇痛.doc
- CP0401FC国产超临界630MW锅炉汽温大幅波动原因分析研究.doc
- CP0414FC超超临界机组材料蒸汽侧氧化的氢监测实践与探讨.doc
- CRH380A牵引计算书.doc
- 2024年江西省高考政治试卷真题(含答案逐题解析).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)物理试卷(含答案详解).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解).pdf
- 2024年内蒙通辽市中考化学试卷(含答案逐题解析).docx
- 2024年四川省攀枝花市中考化学试卷真题(含答案详解).docx
- (一模)长春市2025届高三质量监测(一)化学试卷(含答案).pdf
- 2024年安徽省高考政治试卷(含答案逐题解析).pdf
- (一模)长春市2025届高三质量监测(一)生物试卷(含答案).pdf
- 2024年湖南省高考政治试卷真题(含答案逐题解析).docx
- 2024年安徽省高考政治试卷(含答案逐题解析).docx
文档评论(0)