stm32芯片启动过程分析求证

author author     2023-04-27     265

关键词:

STM32 的开发之前做过一些,但对头文件的理解以及存储器的映射理解不是很深,现在准备开始研究ARM的时候,发现启动引导问题暴露出来了,现在我把我对STM32 启动过程描述一下,请高手指正:
STM32 有三种启动模式,根据上电后两个BOOT脚的电平可以确定是哪种启动:
1,User flash memory 2,system memory 3, embedded SRAM.
现假设User flash 的起始地址是0x08000000
system memory address 是0x1FFFF000
embedded SRAM address 是0x20000000
1。现在假设User flash 里已经烧写有应用程序,并且我选择user flash memory启动模式,则上电后PC指针从绝对物理地址0x00000000启动,然后经跟着就是执行厂家固化的boot程序(即:检测boot引脚的高低电平,根据检测结果实现指针跳转)。由于我之前假设是User flash模式,所以PC指针会跳转到0x0800000处,然后紧跟着就是堆栈设置,中断向量入口设置,最后执行main函数。
2。如果是system flash模式,则上电检测后会跳转到0x1FFFF000,在这个模式里厂家还固化了一些函数来实现IAP(初始化串口,还有一些串口协议等等)。估计在这个模式下,中断是不好使的。这一点求证??
3。如果是sram模式估计过程跟模式1的过程相似。

所以在STM32 运行中,不会出现象ARM的那种情况,即需要引导将FLASH中程序copy到SRAM中执行的这个过程。这一点结论,我心里没有底

参考技术A

看这段,用户手册第二章一目了然。

参考技术B 需要帮你做设计吗追问

我只是对这部分比较感兴趣,工作上我不需要搞软件,我纯属个人兴趣。

追答

好的

stm32启动地址

...dquo;规矩”,所以它做了一个启动映射的过程,就是和芯片上总能见到的BOOT0和BOOT1有关了,当选择从主Flash启动模式后,芯片一上 查看详情

stm32启动过程cortex-m3架构堆栈代码位置编译汇编链接分析(代码片段)

...系结构:哈佛结构与冯诺依曼结构的区别复位有三种启动方式,从哪里开始启动、启动代码的所在的位置三、从存储器映射来看stm32架构(内存与外设)四、从CM3内核架构来看CPU流水 查看详情

正点原子stm32(基于hal库)1(代码片段)

...统IO分配STM32基础知识入门STM32F103系统架构CortexM3内核&芯片STM32系统架构存储器映射寄存器基础知识寄存器映射STM32启动过程分析启动模式(sct文件)启动文件分析(startup_stm32xxx.s)启动文件中的一些指令启动文件代码讲解系统启动... 查看详情

stm32f407读保护,写保护,解锁过程芯片已设置读保护,无法读取更多信息

硬件准备:CH340USB转TTL串口一个STM32F407板子一块设置从ISP启动软件准备:1,flash_loader_demo_v2.8.0.exe或者FlashLoaderDemonstrator2.8.0.msi都可以下载地址:(两个下载地址,优选第一个,第二个备选)http://download.csdn.net/download/keith_cheung/9355... 查看详情

stm32怎么添加芯片包无响应

参考技术A1、stm32使用过程中出现芯片超时无应答,无法连接的情况。2、跳线帽是否连接正常。3、stm32是否设置正确。4、如果上述都正常,利用stm32的设定选项字节,选中芯片类型,进行恢复出厂设置即可。 查看详情

stm32f0_新建软件工程详细过程

前言由于ST公司推出比STM32F1性价比更高的F0芯片,现在市面上F0芯片的占有率也非常高。F0芯片属于M0内核,主频48M(当然,可以超频的,但尽量不要超的太多),资源大小可根据项目需求来选型。因此,最近几天总结一下关于STM3... 查看详情

stm32的问题

...发工具IAREWARM介绍STM32微控制器最小系统-电源电路讲解(芯片电源功能块及开发板电源电路设计讲解)-时钟电路讲解(芯片时钟树及开发板时钟电路设计讲解)-复位电路讲解(芯片复位功能块及开发板手动和上电复位电路设计... 查看详情

stm32启动文件ldmdhdclvlxl分析及选择

startup_stm32f10x_cl.s互联型的STM32F105xx,STM32F107xxstartup_stm32f10x_hd.s大容量的STM32F101xx,STM32F102xx,STM32F103xxstartup_stm32f10x_hd_vl.s大容量的STM32F100xxstartup_stm32f10x_ld.s小容量的STM32F101xx,STM32F102xx, 查看详情

x-002exyson4412芯片启动过程分析

...到FriendlyARMTiny4412开发板上,首先我们需要对SamsungExyson4412芯片的启动方式、系统时钟初始化、串口初始化、内存初始化以及开发板的内存地址空间分配有一个清楚的认识。下面是一些参考资料:1>、技术部落(这个网站对Exyson4... 查看详情

从 Flash 启动时的 STM32 HardFault

...:2018-11-0117:50:09【问题描述】:我有一个简单的STM32F103ARM芯片裸机程序(我使用GNU工具链和openocd调试器)。当我从RAM运行它时,它工作正常。当我使用预装的引导加载程序启动芯片并直接跳转到闪存中的Reset_Handler位置时,它也... 查看详情

stm32的flash数据页转存过程分析!

stm32模拟eeprom要实现flash数据页转存,实现函数为1/**2*@briefTransferslastupdatedvariablesdatafromthefullPageto3*anemptyone.4*@paramVirtAddress:16bitvirtualaddressofthevariable5*@paramData:16bitdatatobewrittenasvariab 查看详情

stm32的引脚boot0boot1的功能。

参考技术A功能:在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序,见下表:BOOT1=x BOOT0=0 从用户闪存启动,这是正常的工作模式。BOOT1=0 BOOT0... 查看详情

正点原子stm32(基于hal库)(代码片段)

...TM32命名规则STM32选型STM32设计数据手册最小系统IO分配STM32启动过程分析启动模式启动文件分析 查看详情

stm32f407开发板用户手册第13章stm32f407启动过程详解(代码片段)

...ewthread&tid=93255第13章      STM32F407启动过程详解本章教程主要跟大家讲STM32F407的启动过程,这里的启动过程是指从CPU上电复位执行第1条指令开始(汇编文件)到进入C程序main()函数入口之间的部分。 查看详情

stm32的引脚boot0boot1的功能。

...脚就按你程序里设置的干啥就干啥了功能:在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序,见下表:BOOT1=x BOOT0=0 从用户闪存启动,这是正常... 查看详情

stm32芯片下载成功,程序不运行问题的解决

在调试过程出现stm32程序下载成功但是程序不运行,在debug下,执行初始化后,执行到延时函数的时候就报错,怀疑是外部时钟的问题,采用8MHz晶振,晶振更换后程序运行正常。用示波器测量晶振波形如下图:更换晶振后晶振波... 查看详情

[架构之路-18]:目标系统-硬件平台-案例1-单片机mcustm32芯片的工作原理与启动流程

...应用场合第2章片上资源(STM32F103xxx)2.1不同型号芯片的片上资源比较2.2 资源的含义与作用第3章STM32F103内部架构3.1概述与架构图3.2内部总线3.3DMA控制器第4章外部引脚与最小系统(STM32F103xxx)4.1外部引脚4.2最小系... 查看详情

stm32的bootloader需要自己写吗

stm32的每个芯片都有bootloader,这是你怎么折腾都不会坏的你也修改不了。启动方式选系统存储器启动(BOOT1=0BOOT0=1)自动进入bootloader模式等待烧写程序。参考技术A用IAP就自己写。STM32自己带了一个,直接用就行了 参考技术B……... 查看详情