打印

数组指定内存

[复制链接]
221|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小小的人呀|  楼主 | 2018-7-27 08:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用_at_关键字对存储器进行绝对地址定位程序如下#include<reg51.h>char xdata LED_Data[50] _at_ 0x8000;main(){   LED_Data[0] = 0x23;}在keil中运行以上程序可以在存储器窗口中输入 x:0x8000 可以看到0x8000地址中的值为0x23.值得指出的几点是1.在给变量LED_Data[50]定位绝对地址空间时,不能对其赋初值。2.char xdata LED_Data[50] _at_ 0x8000;这条语句不能主函数中。有些网友提到在按着keil说明中用_at_进行绝对地址定位时,编译会出现错误274,就是将这条语句放在主函数中的原因。3.keil中地址是自动分配的,所以除非特殊情况否则不提倡使用绝对地址定位。不要把c当作汇编使用。
对于stm32,内存分配u16 testsram[250000] __attribute__((at(0XC0000000)));//测试用数组

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

399

主题

399

帖子

0

粉丝