发 帖  
原厂入驻New
[问答] 请问stm32m0单片机按地址写长整数,地址必须是4的整数倍吗?
600 STM32 cpu 单片机
分享
一段以前用的很多的程序,以前在别的工程用过很多了(STM32 M3系列, 51单片机)
今天拿到m0单片机的工程里一运行就hard fault
找来找去似乎是这么个问题: 用指针往一个地址里写长整数数据, 这个地址必须是4的整数倍?
类似这样:
        {
                int* a;
                int* b;
                a = (int*)(0x20000410);
                *a = 0;                        //okay
                b = (int*)(0x20000421);
                *b = 0;                        //hard fault
        }
我用的是mdk5, 感觉应该是cpu什么模式没设置对吧? 应该怎么解决这个问题?
thx
0
2018-11-19 08:51:36   评论 分享淘帖 邀请回答

相关问题

9个回答
晕, 还真是这样?

Important
It is important to make sure the memory address accessed is aligned. For example, a word size
access can only be carried out on address locations when address bits[1:0] are set to zero, and
a half word size access can only be carried out on address locations when an address bit[0] is
set to zero. The Cortex-M0 processor does not support unaligned transfers. Any attempt at
unaligned memory access results in a hard fault exception. Byte-size transfers are always aligned
on the Cortex-M0 processor.
2018-11-19 09:02:55 1 评论

举报

1 条评论
  • 2018-11-20 08:03

    你好!我是江苏晨朗电子集团有限公司陈生,冒昧打扰是想招聘行业内懂单片机、会C语言编程的人员,我们公司做电机,想招电机控制工程师,工作地点在江苏海安,待遇优厚,拜托!我的手机邮箱13906277642@163.com

32位的机器,你不按4来操作,CPU得多累啊
2018-11-19 09:11:05 评论

举报

推荐看这篇文章:结构体和类的内存字节对齐详解
http://www.jizhuomi.com/software/567.html
2018-11-19 09:22:44 评论

举报

我回复了啥?居然被屏蔽了?
2018-11-19 09:39:58 评论

举报

zrl12123456 发表于 2018-11-19 06:48
推荐看这篇文章:结构体和类的内存字节对齐详解
http://www.jizhuomi.com/software/567.html

好吧,推荐了一个我觉得比较好的个人网站的文章,可能管理员觉得是广告?呵呵
2018-11-19 09:53:48 评论

举报

最好4位对齐,好习惯
2018-11-19 10:01:07 评论

举报

zrl12123456 发表于 2018-11-19 07:20
好吧,推荐了一个我觉得比较好的个人网站的文章,可能管理员觉得是广告?呵呵

恢复了,可能是以为发的广告
2018-11-19 10:07:10 评论

举报

2的n次方,都行,我试过使用内部flash 存储数据,2字节或4字节都可以。例如6字节就不行!!!
2018-11-19 10:19:52 评论

举报

2018-11-19 10:38:38 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

高级模式
您需要登录后才可以回帖 登录 | 注册

我要提问
课程
    关闭

    站长推荐 上一条 /10 下一条

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