c - 设置硬件外设中的寄存器

标签 c pointers cpu-registers

现在我正在阅读一本名为“嵌入式系统编程”的初级书籍。其中有一节解释了如何使用 C 操作外围设备上的寄存器。

一开始就有一个例子,我只是不明白。

uint32_t *pGpio0Set = (uint32_t *)(0x40E00018);

我认为这是声明一个指向 32 位无符号整数的指针。我还可以猜测,相关寄存器控制着 GPIO,并且该寄存器位于地址 0x40E00018。

我不明白的是(0x40E00018)前面的(uint32_t *)是什么意思以及它有什么作用。

安德鲁

最佳答案

它被称为 type cast 。它通常将一种类型转换为另一种类型。在本例中,它将十六进制数转换为地址。该十六进制数字周围的括号是多余的。

关于c - 设置硬件外设中的寄存器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10308859/

相关文章:

linux - 使用 malloc/free on callstack 在 Linux 64 位上从 Signal Handler 回溯

delphi - Delphi中asm程序结束时要恢复哪些CPU寄存器

c - 打包/解包缓冲区

c - 不同的互斥属性

C 语言 : convert 3 char string ("123") to %. 2f (1.23)

java将对象保存在CPU寄存器中

c - msgrcv 获取空白消息

objective-c - 如何在 OpenGL 中向网格对象添加顶点?

pointers - 指向结构的 Nil 指针不深等于 nil?

c - 字符数组的文字字符串初始值设定项