C8051F串口升级程序

C8051f121、C8051F500串口升级成功

  1. 了解单片机如何在flash中运行程序的
  2. 了解hex文件转换成二进制文件在flash中的情况。
  3. 了解flash擦除原理
  4. 了解单片机flash中的机器码的含义
    ——————————————————————————————

1、单片机如何在flash中运行程序

以C8051F系列为例,单片机的程序经过keil等IDLE软件编译成hex文件,然后通过仿真器烧写至单片机的flash里,hex首先得转换成二进制文件,然后写入flash,以500为例,flash为64KB,从0x0000H起始到0xFFFF结束。

地址0123456789101112131415
0x0000H02xxxx
0x0010H
0x0020H
0xDFFFH
0x7FFFH
0xFFFFH

如表所示,程序正常的机器码从地址0x0000H开始,最开头的一般都是02,02代表跳转,跳转到接下来的后两个字节xx xx,第四个字节往后会配置一些中断向量及其他一些操作。我们想要上电后执行boot的程序就需要把boot的程序放置在02 xx xx 的这个xx xx位置,然后boot程序里执行串口的接收程序,将串口接收的8位的数据(也就是机器码)依次烧写至flash的地址0x0003之后的位置,需要注意的是,boot程序执行完之后需要跳转的app的程序,而boot程序需要跳转的位置就是储存app跳转命令的地方,要烧写的程序分两个部分,前三个字节和后面的部分,前三个字节的储存位置解释boot程序需要跳转的位置。上电->boot->储存app跳转指令的位置->执行app跳转指令(这个指令本来应该是在flash前三个字节),这样就实现了boot。

未完待续。。。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
STM32F030C8T6是意法半导体推出的一款32位微控制器芯片。要实现串口升级程序,可以按照以下步骤进行: 1. 准备工作:获取升级文件和开发环境。首先需要准备要升级的固件文件,可以是一个软件包或者固件文件。另外还需要一台计算机,并安装STM32Cube开发环境或者其他适用的集成开发环境。 2. 编写升级程序:基于开发环境,使用C语言或其他高级语言编写升级程序程序包括串口通信的初始化、接收和发送功能。通过串口,将升级文件按照指定协议发送给目标设备。 3. 配置串口:在程序中设置串口的波特率、数据位、停止位和校验位等参数,以便与目标设备进行通信。可以使用STM32F030C8T6的内置串口硬件模块,也可以使用软件实现虚拟串口。 4. 接收升级文件:在升级程序中添加接收功能,使用串口接收升级文件的数据。可以按照固定长度或者协议进行数据包的接收和处理。 5. 升级过程:根据协议或者控制策略,将接收到的数据写入目标设备的存储器中,完成固件的升级过程。可以在升级过程中显示进度或者状态信息。 6. 升级完成:升级过程完成后,可以通过串口发送一条完成的信息,提示升级成功。同时,可以进行设备的重启或其他操作,使新固件生效。 需要注意的是,在升级过程中,要确保目标设备能够正确接收和处理串口数据,并且升级程序与目标设备的串口通信参数要匹配。此外,为了避免升级过程中出现错误,可以添加校验和重发机制,确保数据的完整性。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值