什么是位带?


16

我正在阅读ARM Cortex M3参考手册,并出现“位带”,“位带区域”和“位带别名”的概念。

什么是位带?


我专门在github页面上解释了什么是位带,它如何工作以及如何使用它。我相信它可以回答有关位带的大多数问题,可以随时(重新)查看它。

这是有关的ARM Cortex M3位处理操作功能,方便的介绍atadiat.com/en/articles/...
叶海亚泰维勒

Answers:


8

ARM信息中心指的是位带在自己的Cortex-M3和-M4文件,编译器文档,和其他一些地方,比如首页>编程模型>位带。从主页>用于Cortex-M3的开发软件>位带

位带将完整的存储字映射到位带区域中的单个位。例如,写入别名字之一将设置或清除位带区域中的相应位。

它似乎是获得单个原子操作的一种方法。

在写入别名区域时,使用32位字的位0设置位带区中的值。从别名地址读取将返回位0中位带区域的值,其他位将被清除。


您是否知道如何在内部执行位带区操作以及关于原子性的真正保证?在设计芯片以促进原子位设置或位清除操作时,我将使用两个高地址位在“正常访问”(00),“写1”(01)和“写零”之间进行选择(1x)。另外,当那些地址位为0x11时,我会让CPU反转其数据输出。这样,可以在一个周期内设置或清除位,而无需进行读-修改-写操作。即使由硬件在写入的同时设置位,...
supercat 2012年

1
只需点击链接,对不起。
tyblu 2012年

1
@AlKepp,在我使用过的许多系统上写一点是真正的原子性,只需一条指令即可执行不可中断的动作。
Kortuk'3

1
@AlKepp,我并不是要暗示某些系统无法通过原子指令执行此操作。您说:“写一点文字不能真正做到原子。” 我不同意这种说法。我已经使用了许多原子的系统,并且它们确实存在。
Kortuk

3
@ AlKepp,Cortex M3是更多微控制器的示例。对我来说,重要的是您不能说原子指令不存在(如果它们经常存在的话)。在这里,许多人使用的嵌入式系统资源不足,无法将其内置在内存中,实际上,这是我享受编码的唯一系统。除此之外,告诉某人它何时不存在并被普遍使用可能会误导他人。
Kortuk'3
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.