OpenEdv-开源电子网

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

关于STM32G0系列对指针操作的疑惑,麻烦各位大佬看看

[复制链接]

8

主题

98

帖子

0

精华

高级会员

Rank: 4

积分
789
金钱
789
注册时间
2019-8-15
在线时间
423 小时
发表于 2022-10-17 18:17:59 | 显示全部楼层 |阅读模式
5金钱
本帖最后由 鲸鱼niko 于 2022-10-17 18:29 编辑

使用的芯片是stm32g030,在图片所示断点处,对地址进行取值操作,程序进入hard_fault,但是不知道原因,麻烦各位大佬指点一下。
同时,使用stm32f1芯片进行相同函数测试,发现程序正常执行,没有hard_fault。




B020B3E2-4D73-477d-9F32-C632ABB85D3A.png

123.zip

343 Bytes, 下载次数: 6

最佳答案

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

m0不支持非对齐访问,m3支持。还有hard_fault可以用一个库追下,看看哪里进入的。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

271

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1236
金钱
1236
注册时间
2015-5-14
在线时间
352 小时
发表于 2022-10-17 18:18:00 来自手机 | 显示全部楼层
m0不支持非对齐访问,m3支持。还有hard_fault可以用一个库追下,看看哪里进入的。
回复

使用道具 举报

10

主题

271

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1236
金钱
1236
注册时间
2015-5-14
在线时间
352 小时
发表于 2022-10-17 19:52:04 来自手机 | 显示全部楼层
这个库CmBacktrace
回复

使用道具 举报

8

主题

154

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
439
金钱
439
注册时间
2018-12-21
在线时间
126 小时
发表于 2022-10-17 21:15:15 | 显示全部楼层
首先你的Test函数传入一个u32的指针,这个临时变量一般是寄存器类型被放在R0,然后你去对这个临时变量进行取地址,但是寄存器变量是不可能有内存地址的,这样做根本没意义。
所以你应该粘贴出这段C代码的反编译结果看看是不是编译器不理解你的神仙操作,抽风了。
回复

使用道具 举报

8

主题

98

帖子

0

精华

高级会员

Rank: 4

积分
789
金钱
789
注册时间
2019-8-15
在线时间
423 小时
 楼主| 发表于 2022-10-18 09:32:47 | 显示全部楼层
无痕幽雨 发表于 2022-10-17 18:18
m0不支持非对齐访问,m3支持。还有hard_fault可以用一个库追下,看看哪里进入的。

感谢大佬,我就是想知道这个。还有想请教一下,如果在m0上使用结构体,是不是不指定#pragma pack(),使用keil默认的对齐方式,就一定没有这个问题。
回复

使用道具 举报

8

主题

98

帖子

0

精华

高级会员

Rank: 4

积分
789
金钱
789
注册时间
2019-8-15
在线时间
423 小时
 楼主| 发表于 2022-10-18 09:37:58 | 显示全部楼层
0x00000000 发表于 2022-10-17 21:15
首先你的Test函数传入一个u32的指针,这个临时变量一般是寄存器类型被放在R0,然后你去对这个临时变量进行 ...

感谢,应该是一楼说的那个非对齐访问的问题,感谢
回复

使用道具 举报

10

主题

271

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1236
金钱
1236
注册时间
2015-5-14
在线时间
352 小时
发表于 2022-10-18 20:19:45 来自手机 | 显示全部楼层
鲸鱼niko 发表于 2022-10-18 09:32
感谢大佬,我就是想知道这个。还有想请教一下,如果在m0上使用结构体,是不是不指定#pragma pack(),使 ...

对,默认对齐到数据总线宽度。
回复

使用道具 举报

10

主题

271

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1236
金钱
1236
注册时间
2015-5-14
在线时间
352 小时
发表于 2022-10-18 20:20:55 来自手机 | 显示全部楼层
但是,它也和你的数据排列方式有关。
回复

使用道具 举报

8

主题

98

帖子

0

精华

高级会员

Rank: 4

积分
789
金钱
789
注册时间
2019-8-15
在线时间
423 小时
 楼主| 发表于 2022-10-19 09:35:52 | 显示全部楼层
无痕幽雨 发表于 2022-10-18 20:20
但是,它也和你的数据排列方式有关。

好的,感谢
回复

使用道具 举报

1

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
171
金钱
171
注册时间
2019-9-8
在线时间
24 小时
发表于 2023-3-15 22:07:33 | 显示全部楼层
无痕幽雨 发表于 2022-10-18 20:20
但是,它也和你的数据排列方式有关。

您好,请问我给G030下载程序后老是跑不起来,反复上电有时候能正常跑,还有就是存储参数的时候程序经常卡死,还可能是哪里的问题
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 14:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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