OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2051|回复: 5

把图片的数组testValue[307200]用绝对定位方式访问SRAM,如何给testValue[307200]赋值

[复制链接]

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2017-3-12
在线时间
13 小时
发表于 2017-8-22 23:18:00 | 显示全部楼层 |阅读模式
把图片的数组testValue[307200]用绝对定位方式访问SRAM,如何给testValue[307200]赋值
uint8_t testValue[307200] __attribute__((at(0x68000000))
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-8-23 08:52:22 | 显示全部楼层
跟你平时使用数组一模一样,直接操作数组
回复 支持 反对

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2017-3-12
在线时间
13 小时
 楼主| 发表于 2017-8-23 10:28:45 | 显示全部楼层
本帖最后由 dczjn 于 2017-8-23 10:46 编辑

老师,看我哪儿写错了
回复 支持 反对

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2017-3-12
在线时间
13 小时
 楼主| 发表于 2017-8-23 10:38:10 | 显示全部楼层
本帖最后由 dczjn 于 2017-8-23 10:53 编辑
zuozhongkai 发表于 2017-8-23 08:52
跟你平时使用数组一模一样,直接操作数组

uint8_t testValue[6] __attribute__((at(0x68000000));
uint8_t testValue[6]={6,6,8,8,9,9};
int main(void)
{
int i=0;
for(;i<6;i++)
   {
    printf("%d\n"testValue);

   }
  printf("%x\n " &testValue);
}

输出结果是垃圾数,数组地址到正确 是0x68000000
***************************************
如果在main函数内赋值,数组很大时,内存溢出,地址不是外部0X68000000
uint8_t testValue[6] __attribute__((at(0x68000000));

int main(void)
{
testValue[307200]={};
int i=0;
for(;i<307200;i++)
   {

    printf("%d\n"testValue);
   }
}
回复 支持 反对

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2017-3-12
在线时间
13 小时
 楼主| 发表于 2017-8-23 10:45:21 | 显示全部楼层
zuozhongkai 发表于 2017-8-23 08:52
跟你平时使用数组一模一样,直接操作数组

老师,看看我写错在哪儿
回复 支持 反对

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2017-3-12
在线时间
13 小时
 楼主| 发表于 2017-8-23 10:58:04 | 显示全部楼层
本帖最后由 dczjn 于 2017-8-23 10:59 编辑
dczjn 发表于 2017-8-23 10:38
uint8_t testValue[6] __attribute__((at(0x68000000));
uint8_t testValue[6]={6,6,8,8,9,9};
int mai ...

uint8_t testValue[6] __attribute__((at(0x68000000));
uint8_t testValue[6]={6,6,8,8,9,9};
int main(void)
{
int i=0;
for(;i<6;i++)
   {
    printf("%d\n"testValue);

   }
  printf("%x\n " &testValue);
}

输出结果是垃圾数,数组地址到正确 是0x68000000
***************************************
如果在main函数内赋值,数组很大时,内存溢出,地址不是外部0X68000000
uint8_t testValue[6] __attribute__((at(0x68000000));

int main(void)
{
testValue[307200]={};
int i=0;
for(;i<307200;i++)
   {

    printf("%d\n"testValue);
   }
}


上次的代码,忘记写中括号了,帖子中括号写不进去为何?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-14 21:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表