在看LDR和STR指令时,有下面一段程序
GPIO-BASE EQU 0xe0028000
LDR R0,=GPIO-BASE
LDR R1,=0x00ffff00
STR R1,[R0,#0x0c]
我不是很明白,第一句是把GPIO-BASE的地址装载到R0寄存器中,所以在第三句中R0的值加上#0x0c是GPIO-BASE的地址加了#0x0c,并不是GPIO-BASE的值0xe0028000加上了#0x0c,所以R1的值没有存储到0xe002800c中去,而是存到变量GPIO-BASE的地址向后偏移0x0c的地址中去了。所以无法实现对 地址0xe002800c处寄存器的有效控制。
说白了GPIO-BASE就是一个指针,程序中是对指针的地址也就是指针的指针进行了操作,而不是对指针的值进行操作,所以无法改变指针所指向的寄存器。
但书上的历程是这么写的,是不是我理解错了,希望大家帮助解答一下!
我要赚赏金打赏帖 |
|
|---|---|
| 基于MCP23S17的输入输出功能模块控制被打赏¥20元 | |
| 【S32K3XX】SPD 软件包使用Link文件修改被打赏¥22元 | |
| Switch-Case局部变量定义问题被打赏¥23元 | |
| 基于米尔TIAM62L开发板的串口通信及应用被打赏¥20元 | |
| PCF8574功能模块及其使用被打赏¥20元 | |
| 传感器LSM6DSO及LIS3MDL的功能检测被打赏¥18元 | |
| LPS25HB气压传感器及其检测被打赏¥18元 | |
| HTS221温湿度传感器及其检测被打赏¥18元 | |
| 【S32K3XX】HSE FW 版本更新被打赏¥21元 | |
| 基于ArduinoUNO开发板的AT24C02读写测试被打赏¥16元 | |
我要赚赏金
