当前位置: 首页 > 新闻中心 > 乐球吧nba在线直播
返回
列表

stm32cubeMX学习九、带串口屏显现的BootLoader

发表时间: 2024-03-24 作者: 乐球吧nba在线直播

  网上许多解说这方面的仅仅讲得感觉很高端,让人觉得这是一个牛逼的东西。我是这么来了解的,不管是bootLoader仍是APP,它都是一般的应用程序,只不过把这些一般的应用程序分别在STM32的FLASH中分隔三个区域来存储罢了,然后程序经过指针来完成偏移,跳转到其间的某个区域,来履行对应区域的程序,仅此罢了。

  打个比如,像许多公司,每次烧写程序的时分都要把机子拆开再烧写,再装回去,这样很费事,又影响出产功率,那咱们怎样来完成呢?

  1、假定我的设备没有USB口,但有wifi或许其它无线模块,我就可以在bootloader端完成一个与云端通讯的程序,用来承受云端的数据(APP),然后拷贝到APP的备份区,这样一个时间段做下查验,保证备份区的程序和云端的程序是共同的,然后就可以终究靠指针跳转到备份区来运转新的程序了,假定发现更新的程序有猫腻,还能康复回本来的应用程序(程序员自己去完成这个逻辑)。

  2、假定我的设备只要一个USB口,我既要让它能下载程序,又要让它能拜访存储在外挂FLASH里的数据(比如是个EXCEL表格或许其它用户数据),那怎样来做呢?不可能用户程序在跑的过程中你给它下载程序吧?

  最好的做法是这样的,将它分红两个程序来做,分别是BootLoader、APP

  (1)当检测到用户一起按下左+承认+电源按键时,此刻进入DFU(Device Firmware Upgrade)固件更新形式,用户都可以经过USB线将设备和PC端衔接起来,然后翻开上位机将现已制作好的应用程序(xxx.dfu)烧写到STM32芯片的APP区域。

  (2)正常发动形式下,没有识别到左+承认+电源按键,由BootLoader程序跳到到用户APP履行,此刻进入到APP。

  (2)当识别到有USB线将设备和PC端衔接时,挂载FLASH里的某个盘,然后读取数据(用户自己去完成)。

  这样做起来感觉就简略多了,逻辑也很明晰,接下来开端完成一个带串口屏显现的最简略的BootLoader。

  如图所示,在BootLoader页面(屏幕ID为0)这儿添加了一个进度条(控件2)和一张图片(控件3),图片所示的二维码是我的微信大众号。

  程序首要存储在STM32的内部FLASH中,咱们来看看这张图,咱们咱们都期望开机的第一个程序便是BootLoader,然后经过BootLoader再跳转到APP,所以BootLoader的开始履行地址不变,为0x8000000。

  那咱们的APP在放在哪里呢?我这儿把APP放在0x8002000这一个方位,所以在BootLoader程序中界说一个宏,代表APP的地址