为什么基于Cortex-M3/M4的STM32芯片组织的用户代码移植到基于Cortex-M0/M0+的STM32芯片时为何可能会发生非对齐错误?
这是因为基于Cortex-M3/M4的STM32芯片对数据访问的对齐要求不那么严格,即使非对齐访问也可以支持,当然可能会牺牲访问效率。而对于Cortex-M0/M0+的芯片则明确不支持对数据的非对齐访问。显然,我们设计代码时尽量遵循对齐访问便于移植。
因为内核的差异导致我们在应用上的误解或误用,这也是常有的事情。我这里刚好就最近某STM32用户咨询的问题稍作整理,顺便做个简单分享。
下面是部分Cortex-M内核的NVIC特性差异对照表,有兴趣的话可以看看。
该表格是我从The Definitive guide to ARM Cortex-M0 and ARM Cortex-M0+
Processors文档里提取而来,分享给大家算是借花献佛。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
芯片
+关注
关注
455文章
50732浏览量
423241 -
mcu
+关注
关注
146文章
17135浏览量
351017 -
STM32
+关注
关注
2270文章
10896浏览量
355767 -
Cortex
+关注
关注
2文章
202浏览量
46485
发布评论请先 登录
相关推荐
STM32F407 ADC结果无法右对齐怎么办?
从例程里面复制的main到自己建立的模板里面就出现了这样的问题,这个“ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;”已经设为右对齐,可是串口出来的数据还是0xXXX0,四个四位数(最右始终为0),明显是左
发表于 09-10 09:34
将STM32F103的程序移植到STM32F107VC上,用不了该怎么办
做毕业设计,小白一枚,把DW1000测距的代码从STM32F103上移植到STM32F107VC上,改了启动文件和宏定义,也改了时钟,程序可
发表于 01-08 09:37
uboot移植遇到坏块该怎么办?
nand flash 应该也没什么问题才对, 而且视频教程上也是烧写到 nand flash上的。 猜想:是因为 nand flash 坏块的原因吗?2、如果 uboot.bin 大于4K ,还能继续烧写到 nor flash上吗?如果不能,应该怎么办? 期待你们的解答,谢谢!输出的
发表于 09-29 10:10
将代码移植到nucleoSTM32F072RBT6上出现错误
之前在使用nucleo STM32F091RCT6进行项目实验时,代码编译链接无报错。最近需要将代码移植到nucleo
发表于 12-23 06:18
sx1278驱动移植时报错怎么办?如何解决
sx1278驱动移植时报错怎么办?如何解决?为什么会同时调用stm32f10x.h和stm32f103xe.h这两个头文件呢?
发表于 02-21 07:23
求助,请问RISC-V系列MCU不支持非对齐访问吗?
的hardfault,即非对齐load address错误。网上搜了一下,好像说RISC-V还是像CORTEX-M系列那样,能访问,只是速度一样会很慢。但是现在直接hardfault了。不允许
发表于 06-20 06:37
STM32 进入Stop模式后电流还是很大怎么办?
STM32 进入Stop模式后电流还是很大怎么办?STM32 进入停止模式后电流还是很大,可能椒几百个uA,怎么办?通常做法有如下几点:MCU外围管脚配置检查外围有无闭合回路SWDIO
发表于 12-08 20:51
•16次下载
STM32的Flash写了保护怎么办?STM32如何设置读保护和解除读保护?
STM32的Flash写了保护怎么办?STM32如何设置读保护和解除读保护? 一、STM32的Flash写了保护怎么办? 当
工控主板发生故障该怎么办?
工控主板发生故障该怎么办?前几天有个客户问了我这个问题,大部分情况下出现的故障并不可怕,主要是用户粗心大意造成的。那今天小编就来讲解一下工控主板一般会出现故障的主要原因及判断方法:
评论