【问题标题】:what does something like 0400:0130h mean for register location?0400:0130h 之类的东西对寄存器位置意味着什么?
【发布时间】:2020-12-09 22:02:02
【问题描述】:

我一直在尝试使用 devkitARM 进行开发,唯一值得注意的指南是 Coranac 的 Tonc,一切都很好,但是当某些寄存器位于 xxxx:xxxxh 位置时,我无法理解这意味着什么 h 和数字是什么意思?到处都找不到。

【问题讨论】:

  • 数字表示它是一个数字。 h 表示它是一个十六进制数(从 0 到 F 的 16 位数字,而不是从 0 到 9 的 10 位数字)。这意味着硬件 IO 寄存器存在于地址 04000130h、0x04000130 或 67109168(十进制)。
  • 哦,对了,谢谢,':' 表示它是一个范围,例如从 0x04000000 到 0x04000130 还是为了方便起见?
  • 它只是为了让它更容易阅读

标签: c memory embedded cpu-registers devkitpro


【解决方案1】:

计算机地址传统上总是以十六进制格式给出。在计算机科学的上下文中,以 h 结尾的数字意味着:十六进制。

十六进制很方便,因为除其他外,我们可以使用它轻松计算数字并获取用于地址的“半字节”的数量。在这种情况下,8 个半字节 = 4 个字节 = 32 位地址。

数字是绝对物理地址。您可以查看 ARM 部分的手册(通常称为“用户指南”)以查看具体存储在 04000130h 处的内容。这不一定由 ARM 内核指定,但也可以由特定的 MCU 制造商指定。

: 没有任何意义,可以根据上下文表示任何含义。这不是写地址的标准方式。

【讨论】:

  • 我看到: 经常用作十六进制的组分隔符,例如 . 在某些地区用作千位分隔符。
  • 对,我重读了一些东西,我注意到 0400:0004h 和 0400:0006h 用于不同的状态寄存器,所以“:”绝对只是一个分隔符。
猜你喜欢
  • 2013-01-16
  • 1970-01-01
  • 2021-08-26
  • 2011-07-11
  • 1970-01-01
  • 2021-05-17
  • 1970-01-01
  • 2015-05-23
  • 2015-07-30
相关资源
最近更新 更多