初级会员

- 积分
- 87
- 金钱
- 87
- 注册时间
- 2017-7-28
- 在线时间
- 22 小时
|

楼主 |
发表于 2017-8-6 02:15:26
|
显示全部楼层
本帖最后由 exayf007 于 2017-8-6 02:26 编辑
现在问题有点头绪了,经过测试。发现了
uint16_t TFTLCD_Buffer[272][480]__attribute__((at(0xc0000000)));
for(...)
TFTLCD_Buffer[cnt1][cnt2]=0xffff;
这样的话会出现can't access memory
uint16_t TFTLCD_Buffer[1][6]__attribute__((at(0xc0000000)));//将BUFFER更改比较小
for(...)
TFTLCD_Buffer[cnt1][cnt2]=0xffff;
这样不会出现 can't access memory
uint16_t TFTLCD_Buffer[1][6]__attribute__((at(0xc0000000)));//将BUFFER更改比较小
TFTLCD_Buffer[cnt1][cnt2]=0xffff; //不用for
这样不会can't access memory
uint16_t TFTLCD_Buffer[272][480];//不指定0xc000 0000
for(...) //用for
TFTLCD_Buffer[cnt1][cnt2]=0xffff;
这样会出现 can't access memory
上面是我经过测试发现的情况,感觉很是诡异。可以观察出的现象有:
1,如果使用了for,在数组小的情况不会can't accesss memory,数组大就会
2,如果不使用for,任何使用都不会can't access memory
最终在作了如下尝试成功了
static uint16_t TFTLCD_Buffer[1][6]__attribute__((at(0xc0000000)));
但是不知道为什么是这样,知道的朋友麻烦点一下
|
|