串口下载原理和FlymCU的使用介绍

在32的存储器映像中,在ROM区的Flash程序存储区的位置,存储的就是编译后的程序代码,把什么程序写入这个位置,32就执行什么样的程序。

那么我们想使用用串口下载,就需要把程序数据通过串口发送给STM32,32接收数据,然后刷新到Flash程序存储区这一块位置就行,但接收并转存,这个过程本身也是程序来完成的,如何用程序实现自我更新呢?stm32通过串口进行程序的自我更新,使用的是BootLoader(自举程序),它是stm32公司写好的一段代码,这段程序的存储位置,就是ROM区的最后。用途是:程序自我更新,串口下载。在程序更新过程中,BootLoader接收USART1数据,刷新到程序存储器(Flash),这时主程序就处于瘫痪状态,更新好之后,再启动主程序,执行新程序,这就是串口下载的流程。这个BootLoader就相当于手机的刷机模式,是辅助主程序进行自我更新的。

FlyMcu的使用:

FlyMcu界面介绍:

上面的RAMISP模式:指的是不把程序写入FLASH,而是保存到RAM中运行,这种方式的下载方式快,不减少FLASH的写入寿命,缺点也很明显,因为RAM空间少于FLASH空间,能写入的程序大小有限,如果程序中有操作FLASH存储的内容将无法执行,还会出现其他想不到的问题,另外RAM中的数据掉电就会丢失,通过RAMISP写入程序,一旦断电重启,单片机无法运行,所以这个功能用于频繁操作和频繁调试的场合—不是大佬不要随便使用。

在FlyMcu下面就有一个下拉框就是用来配置DTR和RTS的,是高电平复位还是低电平复位,等等配置,需要根据一键下载电路来选,一般最常用的是DTR的低电平复位,RTS的高电平进BootLoader。在下载过程中,右边框里面有显示DTR和RTS的高低电平转换,以此来切换大小机器人工作。

FlyMcu也可以选择编程后执行,这样就不用进入BootLoader之后再切换跳线帽进入Flash主存储区执行还复位。其原理是软件实现硬件功能,但这样只是一次性的。

其他功能:

读FLASH功能:把芯片里的程序给读出来,保存到自己电脑里面。(比如,看到别人的32产品,觉得不错,就可以抄一下它的PCB板),然后程序文件又可以通过这个软件读出来,这样就可以大批量的山寨别人的产品。但是一般32都有读保护的。FlyMcu这个文件是bin格式的,里面记录的是32从0800开始存储的程序数据,bin格式的是没有地址信息的原始数据文件,.hex文件,是有地址信息的。两个都起到记录程序代码的作用。

清除芯片功能:可以把主程序区域全部擦除。这时读器件信息功能,会把芯片的序列号什么的信息读出来。

选项字节:选项字节就是存储一些独立于程序代码的配置参数。

串口号:

在设置选项字节参数里面有以下的参数:

第一块就是读保护:为了保护开发产品的安全,在选项字节里就有一个参数可以配置配置读保护。选择阻止读出,回到keil里面下载程序时就会失败,如果是设置读保护而下载失败,那就在再到这里来,取消读保护,另外,在取消读保护时,会清空芯片的程序。

第二块:硬件选项字节:看门狗、停机和待机模式不产生复位。

第三块:用户数据字节参数:选项字节的数据相当于是世外桃源,无论程序怎么更新,选项字节的数据都可以不变,可以用这些字节来存储不随程序变化而变化的参数,另外,选择字节还可以用上位机很方便的修改,比如FlyMcu或者STLINK Utility,在上位机里可以直接修改选项字节的内容,可以使用在一些产品中,可供用户配置的参数。

最后一块:写保护:可以对Flash的每几个页单独进行写保护,比如在程序的最后几页写了一些自定的数据,不想在下载的时候被擦除了,就可以把最后几页设置写保护锁起来。另外,在设置写保护之后,再下载,如果需要写入保护区的话,就会出错。这个软件不能单独写入选项字节,只能下载Flash之后,顺便写入选项字节。而写保护之后,不能写入,不能写入就不能更改选项字节,矛盾。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值