所属的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。根据本实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。在一个实施例中,本发明提供一种基于stm32的u盘在线升级装置可以包括至少一个处理单元、以及至少一个存储单元。其中,存储单元存储有程序代码,当程序代码被处理单元执行时,使得处理单元执行本说明书上述描述的根据本发明各种示例性实施方式的基于stm32的u盘在线升级中的步骤。例如,处理单元可以执行如图1所示的基于stm32的u盘在线升级方法的流程。在一个实施例中,本发明提供一种计算机可读介质,该存储有计算机可执行指令,计算机可执行指令用于执行本说明书上述描述的根据本发明各种示例性实施方式的基于stm32的u盘在线升级方法中的步骤。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、rf等等,或者上述的任意合适的组合。此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。上面结合附图对本发明专利进行了示例性的描述,显然本发明专利的实现并不受上述方式的限制,只要采用了本发明专利的方法构思和技术方案进行的各种改进,或未经改进将本发明专利的构思和技术方案直接应用于其它场合的,均在本发明的保护范围内。
背景技术:
1、随着物联网(iot)技术的飞速发展,嵌入式设备广泛应用于各行各业,从智能家居到工业自动化,再到医疗设备,这些设备的固件升级需求日益迫切。传统的串口+上位机在线升级(iap)方案虽然在一定程度上满足了基本需求,但在实际应用中逐渐显露下面几点缺陷:
2、1、操作复杂性:需要专业技术人员操作,普通用户难以上手,增加了培训成本和维护难度。升级过程涉及多个步骤,如连接串口、配置软件、上传固件等,操作繁琐且易出错。
3、2、环境局限性:依赖电脑实现,在狭小空间或者在一些不利于使用电脑的特殊空间内中难以实施。
4、因此,亟需开发出一种不依赖电脑,适用于狭小空间的,更高智能,更高效率的升级方式。
技术实现思路
1、为了克服现有的在线升级方法存在依赖电脑实现,操作较为复杂以及无法在狭小空间使用的问题,本发明提供了一种基于stm32的u盘在线升级方法、装置及可读介质。
2、本发明技术方案如下所述:
3、第一方面,本发明提供一种基于stm32的u盘在线升级方法,包括以下步骤:
4、步骤s1、系统上电初始化或复位;
5、步骤s2、运行bootloader程序,bootloader程序判断是否存在经由u盘传输的新程序或数据更新需求;
6、步骤s3、若存在更新需求,则进行步骤s4;若无更新需求,则进行步骤s5;
7、步骤s4、系统进行相应的更新操作;
8、步骤s5、系统指令跳转至应用程序区段,继续执行标准应用程序逻辑。
9、作为本发明的一个优选方案,步骤s4包括以下子步骤:
10、步骤s401、bootloader程序通过usb接口与u盘建立通信;
11、步骤s402、bootloader程序读取u盘内的固件程序或者数据,并在设备的人机交互页面中显示读取到的固件程序或者数据;
12、步骤s403、bootloader程序根据用户选择的固件程序或者数据,擦除stm32微控制器的非易失性储存器中现有的对应固件程序或者数据;
13、步骤s404、bootloader程序将用户选择的固件程序或者数据写入至stm32微控制器的非易失性储存器中;
14、步骤s405,系统检查写入是否成功;若成功,则进行步骤s5;若不成功,否进行步骤则进行步骤s402。
15、作为本发明的一个优选方案,在步骤s401中,stm32微控制器被配置为usb主机模式,并通过usb驱动电路驱动u盘。
16、作为本发明的一个优选方案,usb驱动电路包括usb接口、自恢复保险丝f2、esd静电保护元器件d3、电容c31、电阻r40和电阻r41,usb接口的vcc引脚分别与电容c31的一端、自恢复保险丝f2的一端和vbus电压连接,电容c31的另一端接地,自恢复保险丝f2的另一端与usb_5v电压连接,usb接口的d-引脚与esd静电保护元器件d3的第六引脚连接,usb接口的d+引脚与esd静电保护元器件d3的第四引脚连接,usb接口的gnd引脚接地,esd静电保护元器件d3的第一引脚经过电阻r41后与stm32微控制器的usb_otg_d-引脚连接,esd静电保护元器件d3的第三引脚经过电阻r40后与stm32微控制器的usb_otg_d+引脚连接,esd静电保护元器件d3的第二引脚与vbus电压连接,esd静电保护元器件d3的第五引脚接地。
17、作为本发明的一个优选方案,在步骤s401中,stm32微控制器通过stm32cubemx工具配置和编写u盘驱动程序,以通过u盘驱动程序处理u盘的枚举和连接。
18、作为本发明的一个优选方案,通过stm32cubemx工具配置和编写u盘驱动程序,包括以下步骤:
19、步骤a1、在stm32cubemx中选择合适的stm32微控制器型号;
20、步骤a2、配置系统时钟、中断、调试接口、usb主机接口和gpio外设;
21、步骤a3、stm32cubemx基于所选的stm32微控制器型号和配置自动生成底层驱动代码;
22、步骤a4、将生成的底层驱动代码导出,并整合到项目结构中;
23、步骤a5、根据项目的具体需求,对自动生成的底层驱动代码进行定制化调整。
24、作为本发明的一个优选方案,通过stm32cubemx工具配置和编写u盘驱动程序,还包括以下步骤:
25、步骤a6、采用j-link仿真器对代码运行状况进行深度检验;
26、步骤a7、对u盘执行读写操作的实验;
27、步骤a8、基于反复测试的数据反馈,对代码进行全面的优化迭代与改良。
28、作为本发明的一个优选方案,通过stm32cubemx工具配置和编写u盘驱动程序,还包括以下步骤:
29、步骤a9、设置错误与异常处理逻辑;
30、步骤a10、开发高级特性,包括u盘文件管理系统和格式化功能。
31、第二方面,本发明提供一种基于stm32的u盘在线升级装置,包括:
32、至少一个处理器;以及
33、与所述至少一个处理器通信连接的存储器;其中,
34、所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述任一方案所述的基于stm32的u盘在线升级方法。
35、第三方面,本发明提供一种计算机可读介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述的基于stm32的u盘在线升级方法。
36、根据上述方案的本发明,其有益效果在于:
37、本发明采用的是u盘+设备的升级方式,只需要通过手机或者电脑及其他终端设备,将新的固件程序或者数据放入u盘中,然后将u盘插入设备中,通过设备的按键以及旋钮,选择升级对象进行升级即可;操作简单方便,不需要借助其他工具,哪怕是非专业的人员,在人机交互页面的指引和提示下,也能很轻松的操作成功;iap技术配合usb闪存盘的传输方案,为开发更高智能、更高效率的升级方式开辟了路径,也降低了设备的维护成本;主要应用场景是,在一些狭小空间或者在一些不利于使用电脑的特殊空间内,只需要u盘就可以为设备进行在线升级。
1.一种基于stm32的u盘在线升级方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于stm32的u盘在线升级方法,其特征在于,步骤s4包括以下子步骤:
3.根据权利要求2所述的基于stm32的u盘在线升级方法,其特征在于,在步骤s401中,stm32微控制器被配置为usb主机模式,并通过usb驱动电路驱动u盘。
4.根据权利要求3所述的基于stm32的u盘在线升级方法,其特征在于,usb驱动电路包括usb接口、自恢复保险丝f2、esd静电保护元器件d3、电容c31、电阻r40和电阻r41,usb接口的vcc引脚分别与电容c31的一端、自恢复保险丝f2的一端和vbus电压连接,电容c31的另一端接地,自恢复保险丝f2的另一端与usb_5v电压连接,usb接口的d-引脚与esd静电保护元器件d3的第六引脚连接,usb接口的d+引脚与esd静电保护元器件d3的第四引脚连接,usb接口的gnd引脚接地,esd静电保护元器件d3的第一引脚经过电阻r41后与stm32微控制器的usb_otg_d-引脚连接,esd静电保护元器件d3的第三引脚经过电阻r40后与stm32微控制器的usb_otg_d+引脚连接,esd静电保护元器件d3的第二引脚与vbus电压连接,esd静电保护元器件d3的第五引脚接地。
5.根据权利要求3所述的基于stm32的u盘在线升级方法,其特征在于,在步骤s401中,stm32微控制器通过stm32cubemx工具配置和编写u盘驱动程序,以通过u盘驱动程序处理u盘的枚举和连接。
6.根据权利要求5所述的基于stm32的u盘在线升级方法,其特征在于,通过stm32cubemx工具配置和编写u盘驱动程序,包括以下步骤:
7.根据权利要求6所述的基于stm32的u盘在线升级方法,其特征在于,通过stm32cubemx工具配置和编写u盘驱动程序,还包括以下步骤:
8.根据权利要求7所述的基于stm32的u盘在线升级方法,其特征在于,通过stm32cubemx工具配置和编写u盘驱动程序,还包括以下步骤:
9.一种基于stm32的u盘在线升级装置,其特征在于,包括:
10.一种计算机可读介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令用于执行如权利要求1至8任一权利要求所述的基于stm32的u盘在线升级方法。
