Cortex M3 Bit-banding简介
Cortex M3 Bit-banding简介
bit-band 区域将存储器别名区(bit-band alias region)的一个字映射为 bit-band区的一个位. 处理器存储器映射包括两个 bit-banding 区域, 它们分别为 SRAM 和外设存储区域中的最低的 1MB.
下图是处理器的地址空间映射,包含了(bit-banding区域的映射)
Cortex-M3 存储器映射有2个32MB别名区,它们被映射为两个1MB的bit-band 区:
- 对 32MB SRAM 别名区的访问映射为对1MB SRAM bit-band区的访问
- 对 32MB 外设别名区的访问映射为对1MB外设bit-band区的访问
映射公式显示如何将别名区中的字与 bit-band 区中的对应位或目标位关联,映射公式如下:
bit_word_offset = (byte_offset x 32) + (bit_number x 4)
bit_word_addr = bit_band_base + bit_word_offset
这里:
- Bit_word_offset 为bit-band存储区中的目标位的位置
- Bit_word_addr为别名存储区中映射为目标位的字的地址
- Bit_band_base 是别名区的开始地址
- Byte_offset 为bit-band 区中包含目标位的字节的编号
- Bit_number 为目标位的位位置(0-7)
下图显示了 SRAM bit-band 别名区和 SRAMbit-band 区之间的 bit-band 映射的例子:
- 地址 0x23FFFFE0 的别名字映射为 0x200FFFFF 的bit-band 字节的位 0:
0x23FFFFE0=0x22000000+(0xFFFFF*32)+0*4 - 地址 0x23FFFFFC 的别名字映射为 0x200FFFFF 的bit-band 字节的位 7:
0x23FFFFFC=0x22000000+(0xFFFFF*32)+7*4 - 地址 0x22000000 的别名字映射为 0x20000000 的bit-band 字节的位 0:
0x22000000=0x22000000+(0*32)+0*4 - 地址 0x220001C 的别名字映射为 0x20000000 的bit-band 字节的位 0:
0x2200001C=0x22000000+(0*32)+7*4
向别名区写入一个字与在 bit-band 区的目标位执行读-修改-写操作具有相同的作用.
写入别名区的字的位0决定了写入bit-band 区的目标位的值。将位 0 为1的值写入别名区表示向 bit-band 位写入1, 将位0 为0 的值写入别名区表示向bit-band 位写入 0.
别名字的位[31:1]在 bit-band 位上不起作用。写入 0x01 与写入 0xFF 的效果相同, 写入0x00 与写入0x0E 的效果相同.
读别名区的一个字返回 0x01 或0x00, 0x01 表示 bit-band 区中的目标位置位, 0x00 表示目标位清零。位[31:1]将为 0。
注:采用大端格式时,对 bit-band 别名区的访问必须以字节方式。否则访问值不可预知。
以下是一个根据bit-band区域地址和目标位来计算bit-band alias region映射的对应字节的宏(来源于Atmel ASF的bit-banding Example):
- /**
- * \brief Calculate bit band alias address.
- *
- * Calculate the bit band alias address and return a pointer address to word.
- *
- * \param addr The byte address of bitbanding bit.
- * \param bit The bit position of bitbanding bit.
- * \callergraph
- */
- #define BITBAND_ALIAS_ADDRESS(addr, bit) \
- ((volatile uint32_t*)((((uint32_t)(addr) & 0xF0000000) + 0x02000000) \
- +((((uint32_t)(addr)&0xFFFFF)*32)\
- +( (uint32_t)(bit)*4))))
Cortex M3 Bit-banding简介相关推荐
- Cortex M3 NVIC与中断控制
Cortex M3 NVIC与中断控制 宗旨:技术的学习是有限的,分享的精神是无限的. 一.NVIC概览 --嵌套中断向量表控制器 NVIC 的寄存器以存储器映射的方式来访问,除了包含控制寄存器和中断 ...
- Cortex M3内核架构
CortexM3内核架构 宗旨:技术的学习是有限的,分享的精神是无限的. 1.ARMCortex-M3处理器 Cortex-M3处理器内核是单片机的中央处理单元( CPU). 完整的基于CM3的MCU ...
- cortex m3 开源_开源增强现实耳机,Steam的125M有效帐户等
cortex m3 开源 您好,开放游戏迷! 在本周的版本中,我们将了解Steam的1.25亿活跃帐户和Game Developers Conference,这是一个开源增强现实头戴设备,Linux游 ...
- cortex m3的操作模式和状态
1.操作状态(operation state): debug state:处理器在调试器发起halt或匹配到断点时,会进入debug state并停止执行指令. thumb state:处理器正在运行 ...
- cortex m3/m4处理器的复位设计
cortex m3/m4处理器在复位层面总体上可以划分为core和debug logic两部分.core部分包括处理器内核(core)以及NVIC,BUS Matrix,MPU的非debug部分.de ...
- Cortex、ARMv8、arm架构、ARM指令集、soc?Cortex A8、A9都是ARMv7a 架构;Cortex M3、M4是ARMv7m架构;前者是处理器(内核)后者是指令集的架构(架构)
架构组成元素的指令集状态或者语法thumb指令集与arm指令集的区别例如thumb指令集是什么_thumb指令集与arm指令集的区别以及thumb-2的关系在下一文中介绍,本文暂时不讨论 有粉丝问我到 ...
- stm32 cortex M3 汇编指令集 英文详解
这是cortex M3的汇编指令集详解,包含指令执行的周期,如下图示例,可以去Arm公司下载此文档,链接在此https://developer.arm.com/documentation/ddi033 ...
- Cortex‐M3的Faults异常究竟是什么?
关注+星标公众号,不错过精彩内容 作者 | strongerHuang 微信公众号 | strongerHuang 有许多朋友在学习,或者开发STM32时都遇到过HardFault_Handler的情 ...
- ARM 架构、ARM7、ARM9、STM32、Cortex M3 M4 、51、AVR 有啥区别
ARM架构.ARM7.ARM9.STM32.Cortex M3 M4.51.AVR之间有什么区别和联系? ARM架构:由英国ARM公司设计的一系列32位的RISC微处理器架构总称,现有ARMv1~AR ...
最新文章
- IPCC气候变暖最新报告:不要眼见,要“远见”
- 组合数取模 Lucas定理
- 使用代码创建具有organization unit的opportunity
- yolo opencv_如何使用Yolo,SORT和Opencv跟踪足球运动员。
- bluecam连接步骤说明_厂家详解旋片式真空泵使用说明
- LeetCode 2094. 找出 3 位偶数
- python list tuple 消耗_Python list 和 tuple 使用小记
- 东芝宣布时域神经网络技术:要让低功率物联网设备也能深度学习
- 通过蓝牙连接进行ActiveSync同步
- 互联网在线地图平台对比分析
- 【PX4自动驾驶用户指南】距离传感器
- 【Python编程:从入门到实践】第十六章练习题
- 小米有品开出全球首家商业旗舰店:加速新零售扩张
- python深度学习include框架_《用Python实现深度学习框架》上市
- 科林明伦杯哈尔滨理工大学第六届程序设计团队赛-Team模拟
- 牛客AI模拟面试1测开岗
- vs2017开发ActiveX(主讲OCX)(七)、方法
- pcmcia oracle vm vitualbox 虚拟机,virtualbox中调整虚拟机的硬盘大小 与 CentOS卡在进度条启动缓慢进不去解决办法...
- 云展网 课件 图片 下载
- 如何在 Linux 系统中配置 firewalld 防火墙策略
热门文章
- HTTPSConnectionPool(host=‘music.163.com‘, port=443): Max retries exceeded with url: /weapi/comment/
- 支持Micro USB安卓接口与iphone 8手机的5W无线充电芯片|无线快充芯片小封装SOP8外围简单精简
- CSS3无限滚动(无线循环滚动)
- pandas数据处理:常用却不甚了解的函数,pd.read_excel()
- 如何分析和判断中国经济大势
- 哈氏合金C276钢带、C22带钢、254SMO薄带精密箔带需求增速
- 2019年软件QA与测试八大关键词
- 机器学习一百天 数据预处理
- 区块链技术与应用-----区块链概念
- 中e管家投资理财需了解的基础知识