串口升级,在线升级

南北湖创客7个月前菜鸟经验5

通过串口远程升级的程序步骤:

  1. 制作升级包:需要准备一个包含新程序代码的升级包。这个升级包通常包含了将要更新的程序代码以及可能需要的任何配置文件或数据。

  2. 下载升级包:将升级包传输到嵌入式设备上。这可以通过串口、网络或其他通信接口完成。在串口升级的情况下,需要确保设备与升级源之间的串口通信已经建立并且稳定。

  3. 验签升级包:为了安全起见,通常会对升级包进行签名验证,以确保它没有被篡改,并且来自一个可信的来源。

  4. 烧写程序:在验证升级包无误后,会使用IAP(In Application Programming)技术,即在应用程序运行过程中对User Flash的部分区域进行烧写。这通常涉及到将单片机的Flash分成至少两个区域,一个是Bootloader区,另一个是App用户代码区,可能还有一个代码备份区。

  5. 执行升级:Bootloader会根据升级包的内容来更新App用户代码区的程序。在这个过程中,可能需要暂停正在运行的应用程序,以便安全地完成程序的替换。

    5.1硬件设备初始化:这是BootLoader启动流程的第一步,主要是对系统中的硬件设备进行基本的初始化,确保它们处于一个合适的状态以便后续操作。

    5.2为加载stage2准备RAM空间:在这个阶段,BootLoader会为加载第二段代码(stage2)准备RAM空间。这是因为第一段代码(stage1)通常负责基本硬件初始化,而第二段代码则包含更复杂的操作,如加载操作系统内核。

    5.3拷贝Boot Loader的stage2到RAM:第一段代码会将存储在非易失性存储器中的第二段代码拷贝到之前准备好的RAM空间中。这样做可以提高执行速度,因为RAM的访问速度比大多数存储设备要快得多。

    5.4设置栈指针sp:在执行第二段代码之前,需要设置好栈指针,以便代码执行过程中能够正确地使用栈空间。

    5.5跳转到第二段代码的C入口点:第一段代码的最后一步是跳转到第二段代码的C语言入口点,开始执行更为复杂的初始化和加载任务。

    5.6初始化本阶段要使用到的硬件设备:第二段代码会继续初始化硬件设备,这可能包括更详细的内存检测、串口、网络接口等设备的初始化。

    5.7检测系统的内存映射:这一步是为了确保操作系统能够正确地访问和使用系统的内存资源。

    5.8加载内核映像与根文件系统:最后,BootLoader会加载操作系统内核映像以及根文件系统到内存中,并设置好启动参数,然后跳转到内核入口点,开始操作系统的启动过程。

  6. 重启设备:升级完成后,设备通常会被重启,以便新的程序代码能够被执行。重启后,设备的应用程序将运行新版本的软件。

  7. 验证升级结果:最后,需要验证新程序是否运行正常,确保升级过程中没有出现问题,并且所有功能都按预期工作。

需要注意的是,整个升级过程中,确保电源稳定和通信连接可靠是非常重要的,以避免在升级过程中出现意外中断。此外,为了确保升级的安全性,应该采取适当的加密和验证措施,以防止未授权的代码被加载到设备上。




返回列表

上一篇:保存现场

下一篇:调频机组原理

相关文章

MPU的使用

MPU的使用

MPU:(Memory Protection Unit,内存保护单元),是一种硬件机制,用于保护处理器访问内存时产生的错误或意外情况。1、要知道保护什么,首先要知道内存分布2、保护的大小MPU 可以独...

hal库的设计理念

123略略略...

使用understand软件梳理程序结构(防止法律纠纷,不使用公司程序)

1、从main.c起步2、FIle:  main.c3、Graphical  Views4、Declaration5、从start函数起步6、进不去函数,点project菜单7、A...

eclipse小技巧

1、文件感叹号:找不到文件2、文件上红叉:3、文件-右击-properties-resource-:可以改变文件location,帮助找到文件4、linked resources--path vari...

Error: No STM32 target found!

一、供电板子一定要供电!二、ST-LINK是否接触不良确保ST-LINK跟板子连接完好三、按住reset点击download硬件和接线都没问题情况下,这时候可能是SWD的引脚被占用了,或者被禁用了。这...

电路(芯片)功能杂谈

电路(芯片)功能杂谈

0、分流器分流器是一种测量直流电流用的仪器,根据直流电流通过电阻时在电阻两端产生电压的原理制成 。用于直流电流测量的分流器有插槽式和非插槽式。分流器有锰镍铜合金电阻棒和铜带,并镀有镍层。其额定压降是6...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。