将变量固定在RAM中,根据外部输入的地址值读取变量值。
该方法比较适用于stm32做从设备时主机需要读取某地址上的值。
rt_uint32_t val __attribute__ ((at(0x10000000)));
rt_uint32_t val_2 __attribute__ ((at(0x10000004)));
int main(void)
{
val = 10;
val_2 = 20;
rt_uint32_t *add = NULL;
add = (rt_uint32_t *)(0x10000000+0x00);//人为赋地址值
rt_kprintf("*add:%d\n",*add);//用*指针打印出val的值
add = (rt_uint32_t *)(0x10000000+0x04);//人为赋地址值
rt_kprintf("*add:%d\n",*add);//用*指针打印出val的值
}
结果
*add:10
*add:20