OpenEdv-开源电子网

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

做嵌入式7年了,第一次遇到这种问题,const声明的数组异常

[复制链接]

12

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2014-10-22
在线时间
17 小时
发表于 2024-4-20 11:25:22 | 显示全部楼层 |阅读模式
50金钱
定义一个const类型数组,编译器竟然将其地址分配到了0x00000000,其实是0x08000000程序存放的起始地址,这导致数据内容变成了flash里的可执行程序内容,怎么会这样?


捕获.PNG
捕获1111.PNG

最佳答案

查看完整内容[请看2#楼]

应该是哪里出问题了,后面也不知道怎么就好了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2014-10-22
在线时间
17 小时
 楼主| 发表于 2024-4-20 11:25:23 | 显示全部楼层
高级放牛娃 发表于 2024-4-20 17:49
我觉得还是你的程序某个地方又问题。
即便是const数组,也不是0x80000000,我看到的都是在程序的结束位置 ...

应该是哪里出问题了,后面也不知道怎么就好了
回复

使用道具 举报

0

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2023-12-6
在线时间
32 小时
发表于 2024-4-20 16:44:44 | 显示全部楼层
没遇到过 可以看MAP文件分析下
回复

使用道具 举报

0

主题

103

帖子

0

精华

高级会员

Rank: 4

积分
632
金钱
632
注册时间
2016-3-30
在线时间
67 小时
发表于 2024-4-20 17:49:32 | 显示全部楼层
我觉得还是你的程序某个地方又问题。
即便是const数组,也不是0x80000000,我看到的都是在程序的结束位置。
回复

使用道具 举报

3

主题

1906

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4100
金钱
4100
注册时间
2018-8-14
在线时间
695 小时
发表于 2024-4-20 23:10:59 | 显示全部楼层
问题应该是在 static, 把它删了试试。
回复

使用道具 举报

10

主题

213

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5607
金钱
5607
注册时间
2016-12-19
在线时间
724 小时
发表于 2024-4-21 07:02:30 | 显示全部楼层
根本不需要关心这个,多此一举
回复

使用道具 举报

2

主题

446

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4133
金钱
4133
注册时间
2018-5-14
在线时间
902 小时
发表于 2024-4-22 08:30:29 | 显示全部楼层
高级放牛娃 发表于 2024-4-20 17:49
我觉得还是你的程序某个地方又问题。
即便是const数组,也不是0x80000000,我看到的都是在程序的结束位置 ...

我也是这么觉得,像是内存被异常修改了
回复

使用道具 举报

13

主题

166

帖子

0

精华

高级会员

Rank: 4

积分
791
金钱
791
注册时间
2018-12-19
在线时间
163 小时
发表于 2024-4-22 13:43:59 | 显示全部楼层
你用的哪个芯片?工程设置里面的flash起始地址是多少?有些芯片的flash起始地址是0x08000000,有些芯片的flash起始地址是0x00000000
回复

使用道具 举报

9

主题

245

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1221
金钱
1221
注册时间
2014-11-25
在线时间
173 小时
发表于 2024-4-22 16:55:27 | 显示全部楼层
回复

使用道具 举报

12

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2014-10-22
在线时间
17 小时
 楼主| 发表于 2024-5-10 09:34:23 | 显示全部楼层
854278507 发表于 2024-4-22 13:43
你用的哪个芯片?工程设置里面的flash起始地址是多少?有些芯片的flash起始地址是0x08000000,有些芯片的fl ...

不是起始地址的问题,问题是数组地址分配到了程序起始地址上了
回复

使用道具 举报

12

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2014-10-22
在线时间
17 小时
 楼主| 发表于 2024-5-10 09:35:37 | 显示全部楼层
你的蓝朋友 发表于 2024-4-21 07:02
根本不需要关心这个,多此一举

数组值不对,没法用啊
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 23:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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