完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32(cortex_m3) 的 Bit-Banding 该怎样理解?
原文是这样的: Bit-Banding The Cortex-M3 memory map includes two bit-band memory regions. These regions map each word in an alias region of memory to a bit in a bit-band region of memory. Writing to a word in the alias region has the same effect as a read-modify-write operation on the targeted bit in the bit-band region. All the STM32F10x peripheral registers are mapped in a bit-band region. This feature is consequently intensively used in functions which perform single bit set/reset in order to reduce and optimize code size. ...... /* Peripheral address in the alias region */ #define PERIPH_BB_BASE ((u32)0x42000000) 它 举 的 例子中, 这个 PERIPH_BB_BASE ((u32)0x42000000) 是如何确定的? 这个文档 是 STM32 的 Firware library 的 PDF文件。 Bit-Banding的意思是:对Bit-Band区一个字的操作对应实际存储器中的一位。 在STM32F10xxx的技术参考手册中第2.3.3节,有这样的描述: Cortex-M3存储器映像包括两个位段(bit-band)区。这两个位段区将别名存储器区中的每个字映射到位段存储器区的一个位,在别名存储区写入一个字具有对位段区的目标位执行读-改-写操作的相同效果。 在STM32F10x里,外设寄存器和SRAM都被映射到一个位段区里,这允许执行单一的位段的写和读操作。 下面的映射公式给出了别名区中的每个字是如何对应位带区的相应位的: bit_word_addr = bit_band_base + (byte_offset x 32) + (bit_number × 4) 其中: - bit_word_addr 是别名存储器区中字的地址,它映射到某个目标位。 - bit_band_base 是别名区的起始地址。 - byte_offset 是包含目标位的字节在位段里的序号 - bit_number 是目标位所在位置(0-31) 下面的例子说明如何映射别名区中SRAM地址为0x20000300的字节中的位2: 0x22006008 = 0x22000000 + (0x300*32) + (2*4). 对0x22006008地址的写操作和对SRAM中地址0x20000300字节的位2执行读-改-写操作有着相同的效果。 读0x22006008地址返回SRAM中地址0x20000300字节的位2的值(0x01 or 0x00)。 请参考《Cortex-M3技术参考手册》以了解更多有关位段的信息。 上面例子中的基地址0x22000000和你所讲的基地址0x42000000是固定在芯片中,你必须用这两个地址;基地址0x22000000用于操作内置RAM,基地址0x42000000用于操作内置外设。 如果你有其他的理解,欢迎回帖讨论 |
|
相关推荐 |
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
1187 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1122 浏览 2 评论
2223 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1311 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1735 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 05:36 , Processed in 0.655307 second(s), Total 51, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号