器件型号: TMS320F28384D
您好 TI 支持部门、
将 uint16_t 指针从 volatile union 转换为时、我遇到地址解析问题 uint32_t。 计算出的地址意外 0x00000000 而不是预期的物理 RAM 偏移。
环境:
- 编译器: TI v22.6.2.LTS
- 优化: 迷惑不解
相关代码:
//定义
typedef 联合体{
uint16_t DramData[DRAM_size];
结构
{
uint16_t Debug_CNT;
};
}dram_var_def;
volatile dram_var_def dram_var;
易失性_uint32_t 地址;
//代码
DELAY_US (1);
//展开测试
地址=(uint32_t)&dram_var.dramData[0];
ReadWriteMemoryTest (address、DRAM_Size);
装配体转储(从) ReadWriteMemoryTest:
0x082B4C 761F0260 MOVW DP、 #0x260
0x082B4E 8F000000 MOVL XAR4、 #0x000000
0x082B50 A800 MOVL @0x0、 XAR4
0x082B51 FF2F0200 MOV ACC、 #0x200 << 15
0x082B53 1E42 MOVL *- SP[2]、 符合
0x082B54 0600 MOVL ACC、 @0x0
0x082B55 76482D75 LCR ReadWriteMemoryTest
观察到的观察结果:
address可变内容:0&Dram_var.DramData[0]地址:0x80000000
问题:
为什么地址被解析为 0? 我应该采取哪些步骤来解决此问题?
谢谢你。