【技术实现步骤摘要】
一种基于国产单片机GD32的软件升级方法
[0001]本专利技术属于计算机控制
,涉及一种基于国产单片机GD32的软件升级方法。
技术介绍
[0002]工业控制领域的软件通常在第一次部署后还需再次升级,软件使用一段时间后由于出现BUG、用户的需求增加、模块性能的升级等需要再次对芯片中的软件进行烧写,软件升级方法包括ISP(在系统中编程)和IAP(在应用中编程)两种方法。
[0003]ISP升级方法一般通过仿真器进行软件升级,目前已经使用比较少,这种方法的缺点主要是需要拆开设备,连接仿真器,时间成本、经济成本均较高。
[0004]目前主流的方法是IAP升级方法,传统上通常使用串口进行升级,在系统进入BootLoader的时候通过串口将升级文件写入到FLASH中并进行跳转。
[0005]常用的单片机软件升级包括使用仿真器进行升级和使用IAP进行软件升级,国产单片机GD32同样也可以使用仿真器进行升级或者使用IAP进行升级,对于使用仿真器升级的方法(使用JTag或者SWD进行烧录)需要每次连接专用的烧录仿真器,对于产品设计来说需要设计单独的升级接口电路,并且每次只能单独升级一个设备。
技术实现思路
[0006](一)专利技术目的
[0007]本专利技术的目的是:提供一种基于国产单片机GD32的软件升级方法,使用基于CAN总线的IAP升级方法,将待升级的设备全部接在总线上,通过使用YMODEM协议进行简单快速批量化的升级。
[0008](二)技术方案
[0 ...
【技术保护点】
【技术特征摘要】
1.一种基于国产单片机GD32的软件升级方法,其特征在于,包括以下步骤:S1:设计CAN总线通讯应用层协议,设计数据处理过程中的CAN消息结构体CAN_RECV_DATA,并对CAN总线29位扩展帧ID进行配置;S2:对单片机系统进行初始化操作,配置时钟信息以及中断信息,配置总线通讯速率信息,总线ID的掩码值以及过滤器值,定义所使用的变量以及乒乓缓冲区;S3:在CAN总线中断回调函数CAN0_RX0_IRQHandler中,将接收到的CAN总线数据依次存入到乒乓缓冲区中;S4:根据步骤1定义CAN总线通讯协议对CAN总线数据进行解析,将获取到的数据帧的ID值赋值到接收帧标识变量RecvID,将获取到的数据长度赋值到接收帧长度变量RecvDLC,将获取到的最多8个数据值赋值到接收数据指针RecvData;S5:在主函数中对收到的CAN总线数据进行解析,将解析后得到的数据提取出来,使用写入闪存函数WriteFlash()将更新后的固件信息写入到Flash中;读取应用程序启动地址APP_ADDR_FLASH并判断该地址所存储的数据最高位是否为1,为1则表示已成功将固件写入到Flash中标识升级成功;S6:获取APP_ADDR_FLASH地址偏移4个字节地址所存储的值并转化为函数指针类型,使用初始化堆栈指针函数set_MSP()函数,参数为APP_ADDR_FLASH初始化用户的堆栈指针;运行pFunction函数指针所指的实体进行程序跳转,完成启动程序到应用程序的跳转,完成程序升级。2.如权利要求1所述的基于国产单片机GD32的软件升级方法,其特征在于,所述步骤S1中,CAN总线通讯应用层协议包括两个字节的帧头、两个字节的帧长度、一个字节的目的地址、一个字节的源地址、一个字节的升级文件总帧数、一个字节的当前帧序号、1K字节的YMODEM协议升级文件内容、两个字节CRC校验;帧头两个字节分别为0x55、0xAA。3.如权利要求2所述的基于国产单片机GD32的软件升级方法,其特征在于,所述步骤S1中,CAN消息结构体CAN_RECV_DATA包括
①
扩展帧ID值ExtID,类型为无符号长整形;
②
数据长度DLC,类型为无符号短整形;
③
数组Data,长度为8,类型为无符号字符型。4.如权利要求3所述的基于国产单片机GD32的软件升级方法,其特征在于,所述步骤S1中,CAN总线29位扩展帧ID中,第14位到21位共8位作为CAN总线源节点域,第22位到29位共8位作为CAN总线目的节点域;定义CAN总线源节点ID值为SRCID,目的节点ID值为DSTID,将SRCID值和DSTID值分别赋值到CAN总线的目的节点域和源节点域。5.如权利要求4所述的基于国产单片机GD32的软件升级方法,其特征在于,所述步骤S2中,使用初始化函数SystemInit()对GD32板卡进行基本功能初始化操作,配置过程包括使用系统时钟配置函数SetSysClock()函数对系统时钟进行初始化操作,使能片外高速时钟HSE,配置时钟分频因子,打开锁相环PLL时钟,配置中断向量NVIC;对CAN总线进行初始化设置,包括波特率设置为1M,帧类型设置为扩展帧;使能CAN总线中断,设置CAN设备的掩码值CAN_Mask为0x1FE00000,设置CAN设备的过滤器值CAN_Filter为SRCID,将帧类型设置为数据帧;时钟分频因子包括AHB高速总线分频因子、APB1低速总线分频因子、APB2低速总线分频因子。...
【专利技术属性】
技术研发人员:王雨龙,
申请(专利权)人:天津津航计算技术研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。