完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32F103C8T6初学笔记
初识STM32 STM32是32位CPU,数据总线32位 STM32的地址总线32位(地址总线32位与数据总线32位无关) STM32可以访问的地址容量是:4GB(2的32次方Byte) STM32有4GB空间 存储器映像的意思即STM32设计时是如何使用这4GB的逻辑地址 STM32存储器映像 [tr]STM32的实际地址安排[/tr]
bitband:位带操作 别名存储器区,字(32位) 映射 位段存储区, 位 为什么要有位带操作? 因为STM32本身只支持8、16、32位的操作,而不支持位操作。 但是我们实际编程中有对1位单独操作的需求,所以我们需要对32位进行整体操作。 方法一: 读出整个32位,然后对其中一位做操作后再整体32位写回去。 效率低。 改进效率 ↓ 方法二: 发明位带操作替代ARM不支持的位操作。 位带操作的思路:不直接单独操作这一位,而是把这一位映射到别的某个地方的32位,然后在别的地方操作32位就相当于是操作这里的这1位。 别名存储器区大小等于位段存储器区大小的32倍。 位带操作的核心问题:如何由位段存储器区地址,计算出别名存储器区的地址 方法:bit_word_addr = bit_band_base + (byte_offset × 32) + (bit_number × 4) 其中: - bit_word_addr 是别名存储区中字的地址,它映射到某个目标位。 - bit_band_base 是别名区的起始地址。 - byte_offset 是包含目标位的字节在位段里的序号。 - bit_number 是目标位所在位置( 0-31) 举例说明如何映射别名区中SRAM地址为0x22000300的字节中的位2: 0x22006008 = 0x22000000 + (0x300*32) + (2*4). STM32的启动模式 启动模式:研究STM32上电复位后从哪里开始执行程序的问题 三种启动模式: (1)用户闪存存储器区是放置用户写的代码,程序员代码烧录时就被烧录到这里,正常工作状态把STM32设置为从这里启动。 (2)系统存储器区在非常规情况使用,实现ISP功能。 (3)内嵌SRAM区在非常规情况使用,实现调试器调试功能。 ISP:In-System Programming(系统烧录,系统编程)。PC机通过串口把bin/hex文件直接ISP到单片机内部Flash中。 IAP:In-Application Programming(应用编程,应用烧录,在线升级),IAP的核心是用户需要在自己的应用程序中去操作单片机内部flash的控制器的寄存器,实现对内部Flash的烧录功能。IAP时用户程序通过串口(USB、Ethernet)来接收PC发送过来的bin/hex文件,将之烧录到内部Flash中去完成IAP。完成后再次启动后就会从用户存储器区执行,更新就会起效果。一般实现IAP需要人为的将用户存储器区分为2部分:Bootloader+APP |
||
|
||
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1916 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1680 浏览 1 评论
1172 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
771 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1732 浏览 2 评论
1973浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
808浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
257浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
625浏览 3评论
634浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-24 21:09 , Processed in 0.657917 second(s), Total 44, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号