0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用户代码移植到STM32芯片时发生非对齐错误怎么办

麦辣鸡腿堡 来源:茶话MCU 作者:茶话MCU 2023-09-09 15:48 次阅读

为什么基于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文档里提取而来,分享给大家算是借花献佛。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    447

    文章

    47788

    浏览量

    409143
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16017

    浏览量

    343632
  • STM32
    +关注

    关注

    2239

    文章

    10671

    浏览量

    348755
  • Cortex
    +关注

    关注

    2

    文章

    194

    浏览量

    45753
收藏 人收藏

    评论

    相关推荐

    STM32移植而引发的两个小疑问

    STM32用户将基于STM32F0芯片代码移植STM3
    的头像 发表于 11-18 14:12 521次阅读
    因<b class='flag-5'>STM32</b><b class='flag-5'>移植</b>而引发的两个小疑问

    想要protues仿真stm32怎么办

    `学习过stm32芯片,想用protues仿真,制版,怎么办,有什么可以替代吗?`
    发表于 04-16 19:41

    编译差分线时出现错误怎么办

    编译差分线时出现错误怎么办错误:number of nets in differential parts EXT_CS_DPN is 1 instead of 2
    发表于 04-30 09:50

    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

    Debug程序发送2个或2个以上字节串口出现溢出错误怎么办

    Debug程序发送2个或2个以上字节串口出现溢出错误怎么办
    发表于 12-09 08:01

    代码移植nucleoSTM32F072RBT6上出现错误

    之前在使用nucleo STM32F091RCT6进行项目实验时,代码编译链接无报错。最近需要将代码移植nucleo
    发表于 12-23 06:18

    STM32F103的代码移植HK32F103时发生问题

    在将STM32F103的代码移植HK32F103时发生问题。原来STM32使用DMA来接收串口
    发表于 01-21 10:45

    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

    STM32F4芯片移植_LVGL7.11_UCOS移植代码工程

    STM32F4芯片移植_LVGL7.11_UCOS移植代码工程
    发表于 12-09 17:45 22次下载

    STM32f4—ucosiii移植代码工程

    STM32f4—ucosiii移植代码工程
    发表于 12-09 18:02 21次下载

    STM32-不同芯片移植

    在实际项目中,我们根据项目需求选用最合适的芯片型号,有时会涉及到一个工程代码在不同芯片上的使用,不同型号的芯片如何移植呢?通过本文,您将了解
    发表于 12-29 18:49 5次下载
    <b class='flag-5'>STM32</b>-不同<b class='flag-5'>芯片</b>的<b class='flag-5'>移植</b>

    STM32移植的mx wifi源代码

    STM32移植的mx_wifi源代码,可方便移植到其他的STM32单片机上。
    发表于 09-26 16:35 2次下载