DSP28035串口升级方案
带bootloader源码,测试app工程源码,上位机源码,说明文档。
上位机采用vs2013开发,c#。
工程采用ccs10.3.1开发。
说明
这个方案和另外一个的差别是,这个利用标志位升级,而不是时间窗口。
F28035_bootloader_sci_v3是bootloader的源代码;
F28035_app_text_V2是用户示例代码1;
F28035_APP_TEXT是用户示例代码2;
CodeProgram是上位机源代码,里面也有编译好的可执行程序。
两个用户示例代码都是供用户参考用的。
一、概述
1、测试平台介绍:采用M新动力的DSP28035开发板,串口使用GPIO28\29。波特率为115200。
2、BootLoader代码,只有D400这一个灯1s闪烁一次;
APP代码,D400\401\402三个灯同时200ms闪烁一次。
3、上位机采用VS2013平台开发;
DSP工程采用的CCS10.3.1平台开发。
4、协议的注释在上位机源代码中。
5、FLASHA放bootloader
FlashC---FLASHG放app
flahsH放升级标志位
6、先使用JTAG烧录BootLoader固件,然后去掉仿真器,使用串口进行APP代码更新。首次烧录,bootloader会一直等待用户升级代码,以后升级则由用户代码跳转升级,用户代码必须实现跳转功能和flash标志位的写入。
二、用户工程设置方法
1、选择对应编译器版本,(太低版本可能没有后续的C2000 Hex Utility选项)。
2、然后按以下内容设置:
按照以上设置,产生目标hex文件,用于后续烧录。
三、用户代码中要实现以下功能
识别握手指令,进行flash中标志位的写入,并且复位CPU。
参考代码如下:
DINT;
Flash_Erase(SECTORH,&Flash_Status);
UpdateFlag[0] = 0x1234;
UpdateFlag[1] = 0xABCD;
Flash_WR(0x3E8000,UpdateFlag,0x02);
EINT;
RESET_CPU();
DSP28035串口升级方案
在程序员社区的博客上,我们将为大家介绍一种利用标志位进行串口升级的DSP28035方案。该方案包含有bootloader源码、测试app工程源码、上位机源码以及说明文档。其中,上位机采用vs2013开发,使用c#语言,而工程则是采用ccs10.3.1开发。本篇文章将围绕这个方案展开,详细介绍其设计原理和使用方法。
首先,与另外一个方案相比,本方案的升级方式采用了标志位而非时间窗口。具体来说,F28035_bootloader_sci_v3是bootloader的源代码,而F28035_app_text_V2和F28035_APP_TEXT则是供用户参考的两个示例代码。至于上位机源码,其中包含了编译好的可执行程序以及代码解释。需要注意的是,这些代码是基于vs2013平台和CCS10.3.1平台进行开发的。
接下来,本文将从以下几个方面对该方案进行详细介绍。
一、概述
1、测试平台介绍
我们使用了M新动力的DSP28035开发板作为测试平台,并将GPIO28和GPIO29作为串口进行通信,波特率设置为115200。
2、BootLoader和APP代码介绍
BootLoader代码中只有一个灯D400每隔1秒闪烁一次,而APP代码中则有三个灯D400、D401和D402同时闪烁,间隔为200毫秒。
3、上位机开发平台
我们采用VS2013作为上位机的开发平台,用于编写相应的程序。
4、协议注释位置
协议的注释位于上位机源代码中,方便用户阅读和理解。
5、Flash布局
在Flash中,我们将bootloader放置在FLASHA区域,将APP放在FLASHC至FLASHG区域,而升级标志位则存放在FLASHH区域。
6、烧录顺序及跳转实现
首先使用JTAG烧录BootLoader固件,然后去掉仿真器,使用串口进行APP代码的更新。首次烧录时,bootloader会一直等待用户升级代码;以后的升级则由用户代码跳转实现,用户代码必须实现跳转功能和写入flash标志位的功能。
二、用户工程设置方法
1、选择对应编译器版本
为了确保后续步骤顺利进行,我们需要选择适合的编译器版本(太低版本可能没有后续的C2000 Hex Utility选项)。
2、按照以下内容进行设置
根据以上设置,生成目标hex文件,以便后续的烧录操作。
三、用户代码实现功能
在用户代码中,需要实现以下功能:识别握手指令、写入flash中的标志位,并且复位CPU。具体的参考代码如下:
DINT; // 关中断
Flash_Erase(SECTORH, &Flash_Status); // 擦除指定扇区
UpdateFlag[0] = 0x1234; // 设置标志位数据 UpdateFlag[1] = 0xABCD; Flash_WR(0x3E8000, UpdateFlag, 0x02); // 写入标志位数据到指定地址
EINT; // 开中断
RESET_CPU(); // 复位CPU
通过以上步骤,用户代码实现了握手指令的识别,并将标志位写入flash中,最后复位CPU。
在本文中,我们详细介绍了DSP28035串口升级方案,包括其原理和使用方法。该方案通过使用标志位实现了串口的升级功能,具备良好的稳定性和可靠性。希望本文能为广大程序员提供一种实用的技术解决方案,并帮助他们更好地应对实际开发中的升级需求。
相关代码,程序地址:http://lanzouw.top/682777940502.html