CN115934114A - 一种软件固件在线烧写方法、设备及计算机可读存储介质 - Google Patents
一种软件固件在线烧写方法、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115934114A CN115934114A CN202211432619.0A CN202211432619A CN115934114A CN 115934114 A CN115934114 A CN 115934114A CN 202211432619 A CN202211432619 A CN 202211432619A CN 115934114 A CN115934114 A CN 115934114A
- Authority
- CN
- China
- Prior art keywords
- chip microcomputer
- single chip
- bus
- software
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种软件固件在线烧写方法、设备及计算机可读存储介质,其中,该方法包括:检测掉电寄存器值是否指向所述单片机的引导加载程序;若所述掉电寄存器值指向所述引导加载程序,则打开所述总线的接收中断,并通过所述接收中断的循环由所述上位机向所述单片机发送闪存解锁、闪存擦除以及闪存写入的指令;通过所述闪存解锁、所述闪存擦除以及所述闪存写入的指令控制所述单片机执行主程序的烧写任务;在所述引导加载程序接收到所述烧写完成指令时,由所述软件程序跳转至所述主程序并运行。实现了一种低成本的软件固件在线烧写方案,使得较远的距离下的软件固件在线烧写更稳定、更高效,极大程度地提升了生产研发效率。
Description
技术领域
本发明涉及单片机技术领域,尤其涉及一种软件固件在线烧写方法、设备及计算机可读存储介质。
背景技术
目前,针对STM32型号的单片机,其软件烧写常使用ST-Link烧写器。但是,在产品大规模生产的过程中,使用ST-Link烧写器时,需要在单片机硬件上留出独立的接口来烧写软件;同时,ST-Link烧写器价格高昂,烧写时通讯线路不能过长。因此,上述方案并不适用于产品售后时的固件在线升级等应用场景。
进一步地,现有的STM32单片机的Bootloader常使用串口进行数据交互,但是,串口通信同样存在数据传输效率低,传输距离短等缺点。因此,在通过串口通信进行烧写时,同样存在通讯线路不能过长的问题。
基于此,如何以较低的成本,实现较远的距离下的软件固件在线烧写,成为目前亟待解决的技术问题。
发明内容
为了解决现有技术中的上述技术缺陷,本发明提出了一种软件固件在线烧写方法,该方法包括:
在单片机的软件程序启动后,对通用输入输出口和总线进行初始化,并由上位机通过所述输入输出口和所述总线检测所述单片机的掉电寄存器值是否指向所述单片机的引导加载程序;
若所述掉电寄存器值指向所述引导加载程序,则打开所述总线的接收中断,并通过所述接收中断的循环由所述上位机向所述单片机发送闪存解锁、闪存擦除以及闪存写入的指令;
通过所述闪存解锁、所述闪存擦除以及所述闪存写入的指令控制所述单片机执行主程序的烧写任务,并由所述上位机向所述单片机发送烧写完成指令;
在所述引导加载程序接收到所述烧写完成指令时,由所述软件程序跳转至所述主程序并运行。
可选地,所述在单片机的软件程序启动后,对通用输入输出口和总线进行初始化,并由上位机通过所述输入输出口和所述总线检测所述单片机的掉电寄存器值是否指向所述单片机的引导加载程序,之前包括:
通过所述引导加载程序引用所述单片机的HAL库函数,并通过预设的编程语言编译器将所述引导加载程序编译在首地址0x8000000;
确定所述引导加载程序的占用空间为16KB,并确定所述主程序的首地址为0x8004000。
可选地,所述在单片机的软件程序启动后,对通用输入输出口和总线进行初始化,并由上位机通过所述输入输出口和所述总线检测所述单片机的掉电寄存器值是否指向所述单片机的引导加载程序,之前还包括:
通过所述HAL库函数创建所述引导加载程序的底层程序,并在所述底层程序中划分总线驱动、灯驱动以及闪存驱动;
通过所述总线驱动配置总线通讯的寄存器,通过所述灯驱动配置印制电路板上的灯引脚,通过所述闪存驱动配置所述闪存解锁、所述闪存擦除以及所述闪存写入的功能函数。
可选地,所述在单片机的软件程序启动后,对通用输入输出口和总线进行初始化,并由上位机通过所述输入输出口和所述总线检测所述单片机的掉电寄存器值是否指向所述单片机的引导加载程序,之前还包括:
创建所述引导加载程序的应用层程序,其中,所述应用层程序包括引导加载功能函数、程序状态上报函数以及总线信号收发处理函数;
通过所述引导加载函数执行指令解析和版本号写入闪存,通过所述程序状态上报函数根据接收的所述上位机的指令反馈软硬件版本号,通过所述总线信号收发处理函数执行总线接收中断处理以及总线发送。
可选地,所述在单片机的软件程序启动后,对通用输入输出口和总线进行初始化,并由上位机通过所述输入输出口和所述总线检测所述单片机的掉电寄存器值是否指向所述单片机的引导加载程序,包括:
若所述掉电寄存器值未指向所述引导加载程序,则确定所述主程序已被烧写至指定的地址;
由所述软件程序跳转至所述主程序并运行。
可选地,所述在单片机的软件程序启动后,对通用输入输出口和总线进行初始化,并由上位机通过所述输入输出口和所述总线检测所述单片机的掉电寄存器值是否指向所述单片机的引导加载程序,还包括:
通过所述总线驱动对通用输入输出口和总线进行初始化;
由所述上位机通过所述输入输出口和所述总线检测所述单片机的掉电寄存器值是否指向所述单片机的引导加载程序。
可选地,所述若所述掉电寄存器值指向所述引导加载程序,则打开所述总线的接收中断,并通过所述接收中断的循环由所述上位机向所述单片机发送闪存解锁、闪存擦除以及闪存写入的指令,包括:
若所述掉电寄存器值指向所述引导加载程序,则通过所述总线驱动打开所述总线的接收中断;
通过所述接收中断的循环由所述上位机向所述单片机发送闪存解锁、闪存擦除以及闪存写入的指令。
可选地,所述通过所述闪存解锁、所述闪存擦除以及所述闪存写入的指令控制所述单片机执行主程序的烧写任务,并由所述上位机向所述单片机发送烧写完成指令,包括:
通过所述引导加载函数解析所述闪存解锁、所述闪存擦除以及所述闪存写入的指令;
在执行完成所述主程序的烧写任务后,通过程序状态上报函数接收所述上位机指令并反馈软硬件版本号,并由所述上位机向所述单片机发送烧写完成指令。
本发明还提出了一种软件固件在线烧写设备,该设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上任一项所述的软件固件在线烧写方法的步骤。
本发明还提出了一种计算机可读存储介质,该计算机可读存储介质上存储有软件固件在线烧写程序,软件固件在线烧写程序被处理器执行时实现如上述任一项所述的软件固件在线烧写方法的步骤。
实施本发明的软件固件在线烧写方法、设备及计算机可读存储介质,通过在单片机的软件程序启动后,对通用输入输出口和总线进行初始化,并由上位机通过所述输入输出口和所述总线检测所述单片机的掉电寄存器值是否指向所述单片机的引导加载程序;若所述掉电寄存器值指向所述引导加载程序,则打开所述总线的接收中断,并通过所述接收中断的循环由所述上位机向所述单片机发送闪存解锁、闪存擦除以及闪存写入的指令;通过所述闪存解锁、所述闪存擦除以及所述闪存写入的指令控制所述单片机执行主程序的烧写任务,并由所述上位机向所述单片机发送烧写完成指令;在所述引导加载程序接收到所述烧写完成指令时,由所述软件程序跳转至所述主程序并运行。实现了一种低成本的软件固件在线烧写方案,使得较远的距离下的软件固件在线烧写更稳定、更高效,极大程度地提升了生产研发效率。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明软件固件在线烧写方法的第一流程图;
图2是本发明软件固件在线烧写方法的引导加载程序的软件架构图;
图3是本发明软件固件在线烧写方法第二实施例的流程图;
图4是本发明软件固件在线烧写方法第三实施例的流程图;
图5是本发明软件固件在线烧写方法第四实施例的流程图;
图6是本发明软件固件在线烧写方法第五实施例的流程图;
图7是本发明软件固件在线烧写方法第六实施例的流程图;
图8是本发明软件固件在线烧写方法第七实施例的流程图;
图9是本发明软件固件在线烧写方法第八实施例的流程图。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
请参考图1示出的本发明软件固件在线烧写方法的第一流程图。本实施例提出了一种软件固件在线烧写方法,该方法包括:
S1、在单片机的软件程序启动后,对通用输入输出口和总线进行初始化,并由上位机通过所述输入输出口和所述总线检测所述单片机的掉电寄存器值是否指向所述单片机的引导加载程序;
S2、若所述掉电寄存器值指向所述引导加载程序,则打开所述总线的接收中断,并通过所述接收中断的循环由所述上位机向所述单片机发送闪存解锁、闪存擦除以及闪存写入的指令;
S3、通过所述闪存解锁、所述闪存擦除以及所述闪存写入的指令控制所述单片机执行主程序的烧写任务,并由所述上位机向所述单片机发送烧写完成指令;
S4、在所述引导加载程序接收到所述烧写完成指令时,由所述软件程序跳转至所述主程序并运行。
在本实施例中,软件首先对GPIO(General Purpose Input Output,通用输入输出)和CAN(Controller Area Network,国际标准化的串行通信协议)进行初始化;然后,软件读取备份寄存器的值判断是否已烧写主程序;其中,若主程序已被烧写至指定地址,则程序直接跳转至主程序;若主程序还未被烧写至指定地址,则进入Bootloader程序;再然后,打开CAN接收中断,通过接收上位机从CAN总线传来的指令完成FLASH闪存的解锁、擦除、写入等功能;最后,当主程序文件烧写完毕,并由上位机发出烧写完成指令后,Bootloader程序跳转至主程序运行。
请参考图2示出的本发明软件固件在线烧写方法的引导加载程序的软件架构图。在本实施例中,引导加载程序包括底层程序和应用层程序。其中,底层程序分为CAN驱动,其作用是配置CAN通讯相关的寄存器,包括波特率、CAN滤波器等参数;LED灯驱动,其作用是配置PCB上LED的相关引脚;FLASH驱动,其作用是封装FLASH解锁、擦除以及写入的函数;可选地,在本实施例中,上述所有底层驱动函数都引用了STM32单片机的HAL库函数,并通过HAL库函数操作寄存器完成相应的功能;可选地,本实施例的烧写程序采用GCC(GNU CompilerCollection,GNU编译器套件)编译,实现Windows和Linux双平台支持。
请继续参考图2,本实施例的引导加载程序还包括应用层程序,该应用层程序包括Bootloader功能函数,该Bootloader功能函数还包含Bootloader指令解析函数以及版本号写入FLASH函数等;该应用层程序还包括程序状态上报函数,该程序状态上报函数的作用是,接收上位机指令反馈软硬件版本号;该应用层程序还包括CAN信号收发处理函数,该CAN信号收发处理函数的作用是执行CAN接收中断处理以及CAN发送操作等。
可选地,在本实施例中,请参考图3,所述在单片机的软件程序启动后,对通用输入输出口和总线进行初始化,并由上位机通过所述输入输出口和所述总线检测所述单片机的掉电寄存器值是否指向所述单片机的引导加载程序,之前包括:
S01、通过所述引导加载程序引用所述单片机的HAL库函数,并通过预设的编程语言编译器将所述引导加载程序编译在首地址0x8000000;
S02、确定所述引导加载程序的占用空间为16KB,并确定所述主程序的首地址为0x8004000。
在本实施例中,在所述引导加载程序编译在非首地址时,根据所述引导加载程序编译的地址和所述引导加载程序的占用空间确定所述主程序的首地址。
可选地,在本实施例中,请参考图4,所述在单片机的软件程序启动后,对通用输入输出口和总线进行初始化,并由上位机通过所述输入输出口和所述总线检测所述单片机的掉电寄存器值是否指向所述单片机的引导加载程序,之前还包括:
S03、通过所述HAL库函数创建所述引导加载程序的底层程序,并在所述底层程序中划分总线驱动、灯驱动以及闪存驱动;
S04、通过所述总线驱动配置总线通讯的寄存器,通过所述灯驱动配置印制电路板上的灯引脚,通过所述闪存驱动配置所述闪存解锁、所述闪存擦除以及所述闪存写入的功能函数。
在本实施例中,根据上述掉电寄存器值是否指向所述单片机的引导加载程序的状态确定相应的灯信号,并由上述灯驱动执行相应的信号灯显示;可选地,通过信号灯显示当前的引导加载程序的工作状态、所述闪存解锁、所述闪存擦除以及所述闪存写入的状态、所述由当前程序跳转至主程序运行状态中的一种或多种。
可选地,在本实施例中,请参考图5,所述在单片机的软件程序启动后,对通用输入输出口和总线进行初始化,并由上位机通过所述输入输出口和所述总线检测所述单片机的掉电寄存器值是否指向所述单片机的引导加载程序,之前还包括:
S05、创建所述引导加载程序的应用层程序,其中,所述应用层程序包括引导加载功能函数、程序状态上报函数以及总线信号收发处理函数;
S06、通过所述引导加载函数执行指令解析和版本号写入闪存,通过所述程序状态上报函数根据接收的所述上位机的指令反馈软硬件版本号,通过所述总线信号收发处理函数执行总线接收中断处理以及总线发送。
在本实施例中,在确定所述掉电寄存器值指向所述引导加载程序时,首先由所述程序状态上报函数根据接收的所述上位机的指令反馈软硬件版本号;然后由所述引导加载函数执行指令解析和版本号写入闪存。
可选地,在本实施例中,请参考图6,所述在单片机的软件程序启动后,对通用输入输出口和总线进行初始化,并由上位机通过所述输入输出口和所述总线检测所述单片机的掉电寄存器值是否指向所述单片机的引导加载程序,包括:
S11、若所述掉电寄存器值未指向所述引导加载程序,则确定所述主程序已被烧写至指定的地址;
S12、由所述软件程序跳转至所述主程序并运行。
在本实施例中,若所述掉电寄存器值未指向所述引导加载程序,则确定所述主程序已被烧写至指定的地址;进一步地,由所述程序状态上报函数根据接收的所述上位机的指令反馈软硬件版本号,若确定与待写入的主程序版本号一致,则由所述软件程序跳转至所述主程序并运行。
可选地,在本实施例中,请参考图7,所述在单片机的软件程序启动后,对通用输入输出口和总线进行初始化,并由上位机通过所述输入输出口和所述总线检测所述单片机的掉电寄存器值是否指向所述单片机的引导加载程序,还包括:
S13、通过所述总线驱动对通用输入输出口和总线进行初始化;
S14、由所述上位机通过所述输入输出口和所述总线检测所述单片机的掉电寄存器值是否指向所述单片机的引导加载程序。
在本实施例中,由所述程序状态上报函数根据接收的所述上位机的指令反馈软硬件版本号,若确定与待写入的主程序版本号不一致,则通过所述总线驱动对通用输入输出口和总线进行初始化,并开始执行后续的主程序重新烧写的步骤。
可选地,在本实施例中,请参考图8,所述若所述掉电寄存器值指向所述引导加载程序,则打开所述总线的接收中断,并通过所述接收中断的循环由所述上位机向所述单片机发送闪存解锁、闪存擦除以及闪存写入的指令,包括:
S21、若所述掉电寄存器值指向所述引导加载程序,则通过所述总线驱动打开所述总线的接收中断;
S22、通过所述接收中断的循环由所述上位机向所述单片机发送闪存解锁、闪存擦除以及闪存写入的指令。
在本实施例中,由上述总线信号收发处理函数在所述接收中断的循环中,处理相应的总线接收中断,并由所述上位机向所述单片机发送闪存解锁、闪存擦除以及闪存写入的指令。
可选地,在本实施例中,请参考图9,所述通过所述闪存解锁、所述闪存擦除以及所述闪存写入的指令控制所述单片机执行主程序的烧写任务,并由所述上位机向所述单片机发送烧写完成指令,包括:
S31、通过所述引导加载函数解析所述闪存解锁、所述闪存擦除以及所述闪存写入的指令;
S32、在执行完成所述主程序的烧写任务后,通过程序状态上报函数接收所述上位机指令并反馈软硬件版本号,并由所述上位机向所述单片机发送烧写完成指令。
在本实施例中,在通过上述信号收发处理函数执行总线的主程序发送任务后,再通过所述引导加载函数解析所述闪存解锁、所述闪存擦除以及所述闪存写入的指令,从而使得单片机执行相应的所述闪存解锁、所述闪存擦除以及所述闪存写入任务,从而达成所述主程序的烧写任务。
本实施例的有益效果在于,通过在单片机的软件程序启动后,对通用输入输出口和总线进行初始化,并由上位机通过所述输入输出口和所述总线检测所述单片机的掉电寄存器值是否指向所述单片机的引导加载程序;若所述掉电寄存器值指向所述引导加载程序,则打开所述总线的接收中断,并通过所述接收中断的循环由所述上位机向所述单片机发送闪存解锁、闪存擦除以及闪存写入的指令;通过所述闪存解锁、所述闪存擦除以及所述闪存写入的指令控制所述单片机执行主程序的烧写任务,并由所述上位机向所述单片机发送烧写完成指令;在所述引导加载程序接收到所述烧写完成指令时,由所述软件程序跳转至所述主程序并运行。实现了一种低成本的软件固件在线烧写方案,使得较远的距离下的软件固件在线烧写更稳定、更高效,极大程度地提升了生产研发效率。
基于上述实施例,本发明还提出了一种软件固件在线烧写设备,该设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上任一项所述的软件固件在线烧写方法的步骤。
需要说明的是,上述设备实施例与方法实施例属于同一构思,其具体实现过程详细见方法实施例,且方法实施例中的技术特征在设备实施例中均对应适用,这里不再赘述。
基于上述实施例,本发明还提出了一种计算机可读存储介质,该计算机可读存储介质上存储有软件固件在线烧写程序,软件固件在线烧写程序被处理器执行时实现如上述任一项所述的软件固件在线烧写方法的步骤。
需要说明的是,上述介质实施例与方法实施例属于同一构思,其具体实现过程详细见方法实施例,且方法实施例中的技术特征在介质实施例中均对应适用,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (10)
1.一种软件固件在线烧写方法,其特征在于,所述方法包括:
在单片机的软件程序启动后,对通用输入输出口和总线进行初始化,并由上位机通过所述输入输出口和所述总线检测所述单片机的掉电寄存器值是否指向所述单片机的引导加载程序;
若所述掉电寄存器值指向所述引导加载程序,则打开所述总线的接收中断,并通过所述接收中断的循环由所述上位机向所述单片机发送闪存解锁、闪存擦除以及闪存写入的指令;
通过所述闪存解锁、所述闪存擦除以及所述闪存写入的指令控制所述单片机执行主程序的烧写任务,并由所述上位机向所述单片机发送烧写完成指令;
在所述引导加载程序接收到所述烧写完成指令时,由所述软件程序跳转至所述主程序并运行。
2.根据权利要求1所述的软件固件在线烧写方法,其特征在于,所述在单片机的软件程序启动后,对通用输入输出口和总线进行初始化,并由上位机通过所述输入输出口和所述总线检测所述单片机的掉电寄存器值是否指向所述单片机的引导加载程序,之前包括:
通过所述引导加载程序引用所述单片机的HAL库函数,并通过预设的编程语言编译器将所述引导加载程序编译在首地址0x8000000;
确定所述引导加载程序的占用空间为16KB,并确定所述主程序的首地址为0x8004000。
3.根据权利要求2所述的软件固件在线烧写方法,其特征在于,所述在单片机的软件程序启动后,对通用输入输出口和总线进行初始化,并由上位机通过所述输入输出口和所述总线检测所述单片机的掉电寄存器值是否指向所述单片机的引导加载程序,之前还包括:
通过所述HAL库函数创建所述引导加载程序的底层程序,并在所述底层程序中划分总线驱动、灯驱动以及闪存驱动;
通过所述总线驱动配置总线通讯的寄存器,通过所述灯驱动配置印制电路板上的灯引脚,通过所述闪存驱动配置所述闪存解锁、所述闪存擦除以及所述闪存写入的功能函数。
4.根据权利要求1所述的软件固件在线烧写方法,其特征在于,所述在单片机的软件程序启动后,对通用输入输出口和总线进行初始化,并由上位机通过所述输入输出口和所述总线检测所述单片机的掉电寄存器值是否指向所述单片机的引导加载程序,之前还包括:
创建所述引导加载程序的应用层程序,其中,所述应用层程序包括引导加载功能函数、程序状态上报函数以及总线信号收发处理函数;
通过所述引导加载函数执行指令解析和版本号写入闪存,通过所述程序状态上报函数根据接收的所述上位机的指令反馈软硬件版本号,通过所述总线信号收发处理函数执行总线接收中断处理以及总线发送。
5.根据权利要求1所述的软件固件在线烧写方法,其特征在于,所述在单片机的软件程序启动后,对通用输入输出口和总线进行初始化,并由上位机通过所述输入输出口和所述总线检测所述单片机的掉电寄存器值是否指向所述单片机的引导加载程序,包括:
若所述掉电寄存器值未指向所述引导加载程序,则确定所述主程序已被烧写至指定的地址;
由所述软件程序跳转至所述主程序并运行。
6.根据权利要求3所述的软件固件在线烧写方法,其特征在于,所述在单片机的软件程序启动后,对通用输入输出口和总线进行初始化,并由上位机通过所述输入输出口和所述总线检测所述单片机的掉电寄存器值是否指向所述单片机的引导加载程序,还包括:
通过所述总线驱动对通用输入输出口和总线进行初始化;
由所述上位机通过所述输入输出口和所述总线检测所述单片机的掉电寄存器值是否指向所述单片机的引导加载程序。
7.根据权利要求3所述的软件固件在线烧写方法,其特征在于,所述若所述掉电寄存器值指向所述引导加载程序,则打开所述总线的接收中断,并通过所述接收中断的循环由所述上位机向所述单片机发送闪存解锁、闪存擦除以及闪存写入的指令,包括:
若所述掉电寄存器值指向所述引导加载程序,则通过所述总线驱动打开所述总线的接收中断;
通过所述接收中断的循环由所述上位机向所述单片机发送闪存解锁、闪存擦除以及闪存写入的指令。
8.根据权利要求4所述的软件固件在线烧写方法,其特征在于,所述通过所述闪存解锁、所述闪存擦除以及所述闪存写入的指令控制所述单片机执行主程序的烧写任务,并由所述上位机向所述单片机发送烧写完成指令,包括:
通过所述引导加载函数解析所述闪存解锁、所述闪存擦除以及所述闪存写入的指令;
在执行完成所述主程序的烧写任务后,通过程序状态上报函数接收所述上位机指令并反馈软硬件版本号,并由所述上位机向所述单片机发送烧写完成指令。
9.一种软件固件在线烧写设备,其特征在于,所述设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至8中任一项所述的软件固件在线烧写方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有软件固件在线烧写程序,所述软件固件在线烧写程序被处理器执行时实现如权利要求1至8中任一项所述的软件固件在线烧写方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211432619.0A CN115934114A (zh) | 2022-11-16 | 2022-11-16 | 一种软件固件在线烧写方法、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211432619.0A CN115934114A (zh) | 2022-11-16 | 2022-11-16 | 一种软件固件在线烧写方法、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115934114A true CN115934114A (zh) | 2023-04-07 |
Family
ID=86654861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211432619.0A Pending CN115934114A (zh) | 2022-11-16 | 2022-11-16 | 一种软件固件在线烧写方法、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115934114A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116700786A (zh) * | 2023-08-02 | 2023-09-05 | 成都利普芯微电子有限公司 | 一种微控制器及防止微控制器Flash误擦写的方法 |
-
2022
- 2022-11-16 CN CN202211432619.0A patent/CN115934114A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116700786A (zh) * | 2023-08-02 | 2023-09-05 | 成都利普芯微电子有限公司 | 一种微控制器及防止微控制器Flash误擦写的方法 |
CN116700786B (zh) * | 2023-08-02 | 2023-11-10 | 成都利普芯微电子有限公司 | 一种微控制器及防止微控制器Flash误擦写的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102945173B (zh) | 用户程序在线升级系统和升级方法 | |
CN101937351B (zh) | 一种自动安装应用软件的方法和系统 | |
US20120254831A1 (en) | Supporting hardware configuration changes in a uefi firmware component | |
CN109710320B (zh) | 一种两级驱动的启动引导BootLoader方法 | |
CN102955723B (zh) | 一种硬件自动测试方法及系统 | |
CN109614126B (zh) | 一种嵌入式系统在线程序升级方法及装置 | |
CN110187909B (zh) | 一种基于安卓系统的单片机固件升级方法 | |
CN115658160B (zh) | 基于多核异构soc的多操作系统升级方法、装置及系统 | |
CN111679839B (zh) | 一种mcu flash的在线烧写方法 | |
CN115934114A (zh) | 一种软件固件在线烧写方法、设备及计算机可读存储介质 | |
CN108037938A (zh) | 一种eMMC的开卡方法 | |
CN113076144A (zh) | 功放适配方法、终端设备、存储介质及计算机程序产品 | |
CN104428751A (zh) | 程序数据的更新方法及设备 | |
US8726258B2 (en) | Supporting multiple hardware components in UEFI | |
CN114816491A (zh) | 用于多系统移动终端的系统升级方法、装置及终端 | |
CN107729090A (zh) | 一种基于串口传输的用户程序下载方法 | |
CN116719724A (zh) | eMMC多平台测试方法和装置、电子设备 | |
CN113821265B (zh) | 操作系统控制方法、装置、计算机主板和可读存储介质 | |
CN106648697B (zh) | 一种点亮终端的方法及自动控制终端的方法 | |
CN105159714A (zh) | 一种pmic初始化方法和电子设备 | |
CN211427090U (zh) | 微控制单元设备 | |
CN110888689B (zh) | 一种触摸屏驱动的加载方法、存储介质及终端设备 | |
CN101826062A (zh) | 计算机执行方法以及电子系统 | |
CN107229457B (zh) | 电子控制器的引导加载方法、装置、电子控制器及汽车 | |
CN117939507A (zh) | 安卓模拟器WiFi模拟方法、装置和计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |