DSP28035串口升级方法,该方案通过使用标志位实现了串口的升级功能,具备良好的稳定性和可靠性

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、FLASHAbootloader

   FlashC---FLASHGapp

   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
 

  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
TMS320F2812是德州仪器(TI)公司的一款数字信号处理器(DSP)芯片。要实现远程升级TMS320F2812的程序,可以采用以下方法: 1. 基于串口通信:可以通过串口通信方式,将新的程序固件从远程设备发送到TMS320F2812中。这需要使用合适的串口通信协议和通信接口,如RS232、RS485、USB等。在远程设备通过串口发送程序时,TMS320F2812接收并写入新的程序固件,最后进行重启操作。 2. 基于以太网通信:可以通过以太网接口实现远程升级功能。远程设备通过以太网将新的程序固件发送到TMS320F2812,然后TMS320F2812接收并写入新的程序固件,最后进行重启操作。这种方法需要在TMS320F2812上实现对应的以太网通信协议,常用的有TCP/IP协议栈。 3. 基于无线通信:可以利用无线通信方式,如Wi-Fi或蓝牙,将新的程序固件从远程设备发送到TMS320F2812。远程设备通过无线通信将新的程序固件发送给TMS320F2812,然后TMS320F2812接收并写入新的程序固件,最后进行重启操作。这需要在TMS320F2812上实现对应的无线通信协议和通信接口。 无论使用哪种方法进行远程升级,都需要保证通信的可靠性和数据的完整性。在升级过程中,需要进行适当的校验和错误处理,以确保新的程序固件能够正确地写入并正常运行。同时,也需要注意安全性问题,防止恶意程序固件的远程升级。+
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值