欢迎来到我司精密电阻产品网站!
STM32 ISP下载的原理是什么?
精密电阻 2024-10-23

单击“嵌入式大杂烩”,然后单击“确定”。

上方,然后选择“顶级公共帐户”第一次查看编程说明!上一个注释共享:STM32串行端口IAP共享。

其中,下载IAP程序是使用ISP下载。

这里的ISP是什么?在ISP模式下下载程序的原理ISP:在系统编程中,STM32F10xxx中有三种启动方法可用于在系统中进行编程:在ISP模式下下载程序时,需要将STM32的BOOT0引脚和BOOT1引脚设置为0,即从系统存储(系统内存)启动。

从系统内存启动时,为什么可以使用串行端口下载程序?这是因为ST官员在芯片出厂之前已将引导加载程序(BootLoader程序)固化到该存储区中。

对于STM32F103ZET6,系统存储器的起始地址为0x1FFFF000,可在芯片手册的存储器映射中找到:它通过串行端口接收数据并将其写入用户闪存的起始地址(0x08000000)。

只能将其编程到该地址。

如果在keil中设置的地址不是该地址,则编译后的文件将无法成功编程。

用户闪存(即用户闪存)同时也称为主闪存。

该BootLoader程序的源代码不是开源的,用户无法对其进行修改。

在上一笔记的IAP实验中,IAP程序是通过FlyMCU软件刻录的,刻录的地址为0x08000000。

注意:STM32固化的BootLoader的不同系列和不同型号是不同的,即所使用的通信接口是不同的。

例如,STM32F1xxx系列仅支持USART1:STM32F4xxx系列仅支持USART1,USART3,CAN2和其他接口:有关其他类型的BootLoader支持的接口,请参考AN2606文档,链接:https://www.st.com/内容/ ccc /资源/技术/document/application_note/b9/9b/16/3a/12/1e/40/0c/CD00167594.pdf/files/CD00167594.pdf/jcr:content/translations/en.CD00167594.pdf此处,数据协议的内容不是“开始讨论”,有兴趣的朋友可以做自己的研究。

IAP和ISP有什么区别?从基本功能的角度来看,IAP程序和ISP程序似乎做相同的事情,它们都是引导加载程序,因此Internet上有很多文章将IAP程序和ISP程序都称为BootLoader程序。

注意区别。

但是,ISP和IAP仍然有些不同。

STM32内部闪存分为两部分,系统闪存和用户闪存。

引导引脚用于控制上电后执行Flash中的哪个程序。

ST正式编译的Bootloader程序(ISP程序)存储在System Flash中,我们无法对其进行更改。

User Flash是我们可以使用的Flash空间,我们编写的代码将刻录到User Flash中。

我们可以将用户Flash分为两部分。

第一部分用于编写我们编写的IAP程序,而第二部分用于编写我们编写的应用程序。

其中,IAP程序用于更新我们的应用程序。

ISP程序用于更新我们写到地址0x08000000的程序。

如果我们产品中的程序具有IAP程序+应用程序,则存储在地址0x08000000的程序是IAP程序。

ISP程序,IAP程序和应用程序之间的关系的示意图如下:如果我们产品中的程序只是应用程序,则存储在地址0x08000000的程序就是应用程序。

ISP程序和应用程序之间的关系示意图如下:结束:以上是这次共享的注释,如有错误,欢迎您!如果此说明对您有所帮助,请收集,转发并观看它〜我想您会喜欢:“ STM32串行端口IAP共享”; C语言代码优化的一些技术(4)[RT-Thread]线程的基本知识“替换串行端口打印,嵌入式中打印调试的另一种方法”我的个人博客:https://zhengnianli.github.io