STM32F103 bootloader下载调试过程总结

最近我参与了手机支付项目组的驱动调试,主要涉及到了对于STM32单片机的bootloader下载程序。对于发现和解决的问题在以下进行一个总结。
1、对于使用FLASH_LOAD软件来说,当出现软件无法找到MCU的情况时,需要上st官网查询是否有软件更新,因为很可能这块MCU是新版本在以前的软件中没有该芯片的信息。
2、对于使用MCU与MCU之间通过ISP下载的方式需要首先确认被下载的MCU的bootload version是什么,因为当version更新时,一些指令也会相应的更新,例如version 2.X 和version3.X的两个版本对于擦除内部flash有不同的指令和表示格式。对于version 2.X的擦除指令是0x43,擦除页地址为1个字节表示,同时擦除整个空间的指令为0xFF,0x00。而对于version3.X的擦除指令是0x44, 擦除页地址使用2个字节表示, 同时擦除整个空间的指令为0xFF,0xFF。
3、在通过ISP下载之前首先需要由上端发送一个0x7F的指令给被下载的MCU,被下载的MCU会送0x79给上端,这样一个握手协议成功。假如不发送7F给被下载的MCU,而是直接发送write memory指令,就会导致两者之间的波特率不同,无法正常通讯。所以需要在ISP下载之前先进行握手协议。
4、一块空的STM32本身没有写、读保护的,所以在下载之前不需要发送去读写保护指令。对memory的读写命令也不需要。
5、正确的ISP烧写流程应该是如下:
发送0x7F—>等待收取0x79—>发送读取bootload version命令—>获取bootload version—>根据bootload version发送擦除指令—>发送write memory指令—>发送FLASH地址—>发送bin数据。
### 回答1: Stm32f103是一种常用的32位单片机,其系统启动需要用到bootloader源码。bootloader源码是指在单片机刚上电时自动运行的一段程序,其常见作用是进行系统初始化、读取外部存储设备、检查固件更新等。在stm32f103中,bootloader的源码位于芯片内部的系统存储器中,由芯片厂商提供。 stm32f103bootloader源码主要包括系统启动、解锁flash、擦除flash、写入新程序、复位和检测等功能。在系统初始化时,bootloader会检查系统时钟以及外部存储设备是否正常,通过外部存储设备读取新程序并将其写入flash中,最后实现系统复位和程序启动。 在实际应用中,我们可以使用bootloader源码为stm32f103单片机提供系统启动和更新固件的功能。只需将新的程序文件写入外部存储设备,重新上电即可自动更新程序。此外,bootloader源码还可以用于裸机编程和与其他硬件设备的通信。但是需要注意的是,bootloader源码需要根据实际应用需求进行修改和定制,以保证正确性和安全性。 总之,stm32f103bootloader源码是实现系统启动和更新固件的重要工具,具有广泛的应用前景。 ### 回答2: stm32f103 bootloader是一种特殊的软件程序,其作用在于将新的应用程序烧录到stm32f103微控制器中。其源码可以提供给开发者进行修改和定制,以适应不同的应用需求。 stm32f103 bootloader源码包含了一系列函数和API,用于实现bootloader的所有功能。其中包括引导初始化、芯片擦除、应用程序烧录、校验和验证、启动应用程序等。 开发者可以根据自己的需求来选择不同的芯片擦除模式、烧录模式、校验模式等,以达到更好的效果。在调试和测试阶段,可以利用这些API来检测和修复由于编程错误或硬件故障引起的问题。 除此之外,还可以通过修改源码来实现定制化功能,如增加新的通信协议、增加新的校验方法等。这样可以提高产品的可靠性、稳定性和安全性。 总之,stm32f103 bootloader源码是一种非常有用的资源,可帮助开发者快速构建自己的应用程序,并为后期的调试和测试提供有力的支持。 ### 回答3: STM32F103是一款32位的Cortex-M3处理器,它支持多种启动方式,其中一种是通过Bootloader程序来进行系统启动。Bootloader程序通常作为系统的第一阶段,它的主要任务是初始化硬件,加载应用程序并将其放到正确的内存地址,并启动应用程序。在STM32F103中,用户可以自行设计Bootloader程序,以满足自己的需求。 STM32F103 Bootloader的源码是由STM公司提供的,用户可以从官方网站上下载相应的文件。Bootloader程序的实现,通常需要考虑以下几个方面: 1. Bootloader的容量:由于Bootloader需要放在芯片的Flash中,因此其容量是非常重要的。在STM32F103的Flash中,用户可以选择不同的Bootloader容量,以适应不同的应用场景。 2. 加载应用程序Bootloader程序需要能够从外部存储器如EEPROM等读取应用程序,并将其加载到正确的内存地址中。这部分的代码需要根据具体的应用场景来进行设计。 3. 启动应用程序:当应用程序已经被成功加载到内存地址中,Bootloader需要执行Jump指令,跳转到应用程序的入口点,从而启动应用程序。 总之,STM32F103 Bootloader的源码是一份非常重要的代码,它可以帮助用户实现系统的快速启动和应用程序的更新。用户需要根据自己的实际需求,合理设计Bootloader程序,并将其嵌入到整个系统中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值