STMCU小助手
发布时间:2022-5-7 18:19
|
存储器采用固定的存储器映射,代码区域起始地址为 0x0000 0000(通过 ICode/DCode 总 线访问),而数据区域起始地址为 0x2000 0000(通过系统总线访问)。Cortex™-M4F CPU 始终通过 ICode 总线获取复位向量,这意味着只有代码区域(通常为 Flash)可以提供 自举空间。STM32F4xx 微控制器实施一种特殊机制,可以从其它存储器(如内部 SRAM)& V( T5 u& q B7 u- j% G6 R7 y+ J 进行自举。# m- E$ W$ s. c7 ~ 在 STM32F4xx 中,可通过 BOOT[1:0] 引脚选择三种不同的自举模式。 STM32有三种启动模式:5 S) X" a% p1 }4 t7 Y: B6 b% G Main Flash memory:主FLASH- W" t' f2 p% F- R. G' `2 b4 b System memory:系统存储器 Embedded SRAM:内置SRAM 三种模式是通过不同配置来实现,一般通过BOOT引脚和BOOT位来配置启动模式。0 O( n" ]5 o1 S: H! a: p$ w3 W 不同的芯片配置有差异,有些芯片没有BOOT1引脚,会结合BOOT位来实现。
4 E2 f$ C8 D% m. J" C7 d4 ~ 复位后,在 SYSCLK 的第四个上升沿锁存 BOOT 引脚的值。复位后,用户可以通过设置 BOOT1 和 BOOT0 引脚来选择需要的自举模式。BOOT0 为专用引脚,而 BOOT1 则与 GPIO 引脚共用。一旦完成对 BOOT1 的采样,相应- U: e4 N6 \8 P. u, K( i; }4 b. q+ r GPIO 引脚即进入空闲状态,可用于其它用途。器件退出待机模式时,还会对 BOOT 引脚重新采样。因此,当器件处于待机模式时,这些引 脚必须保持所需的自举模式配置。这样的启动延迟结束后,CPU 将从地址 0x0000 0000 获 取栈顶值,然后从始于 0x0000 0004 的自举存储器开始执行代码。6 m* M5 T# j. Y! W+ M8 s 注意: 如果器件从 SRAM 自举,在应用程序初始化代码中,需要使用 NVIC 异常及中断向量表和偏 移寄存器来重新分配 SRAM 中的向量表。1 d+ G5 p4 _5 q/ q. z5 u }* ?. b8 v( _' D/ o8 v 嵌入式自举程序 嵌入式自举程序模式用于通过以下串行接口重新编程 Flash:, t9 c! {' U3 Y* A ● USART1(PA9/PA10): w+ k/ u% C! n. A. K1 N ● USART3(PB10/11 和 PC10/11)" m6 s7 N5 O/ O) ^# f ● CAN2(PB5/13): b0 x5 m9 S& `! N2 y6 Y# q& Y ● USB OTG FS(PA11/12) 从设备模式(DFU:器件固件升级)。 0 H7 g1 k+ C- k5 S2 [ USART 外设以内部 16 MHz 振荡器 (HSI) 频率运行,而 CAN 和 USB OTG FS 则需要相当 于 1 MHz 数倍(4 MHz 到 26 MHz 之间)的外部时钟 (HSE) 频率。嵌入式自举程序代码位于系统存储器中,在芯片生产期间由 ST 编程。1 X; ~9 q: B* S3 T2 F- }
% l( Q1 q. G5 {' i3 N) m" O 0 {$ Z. x" `8 c7 Y: Q |
【福利三:雨露均沾·逢7狂欢】之四:用一个定时器同步另外两个定时器输出PWM
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
【逢7发帖赢大礼】全网最简单的Arduino_STM32开发环境搭建教程!
STM32F4中文用户手册
STM32F400、STM32F402 Cortex-M4超值单片机
SPI 高温读错最后一位?STM32F42xx 官方根治方案
微信公众号
手机版