专栏名称: 嵌入式微处理器
关注这个时代最火的嵌入式微处理器,你想知道的都在这里。
今天看啥  ›  专栏  ›  嵌入式微处理器

关于总线错误,我帮你们踩了这些坑!

嵌入式微处理器  · 公众号  ·  · 2024-06-19 15:38

文章预览

大家好,我是LinuxZn。 最近踩了一个总线错误的坑,下面简单总结、复盘分享给大家。希望这些经验和教训,能让各位少走弯路。 什么是总线错误? 平时开发过程中,我们常遇到的、引起进程崩溃的错误,大多都是段错误吧。段错误(segmentation fault)就是指访问的内存超出了系统所给这个程序的内存空间,比如操作空指针、数组越界等。 与段错误比较相似,总线错误(Bus Error)就是因为对非对齐地址的访问导致CPU读取数据违反了一定的总线规则。 CPU处于性能方面的考虑,要求对数据进行访问时都必须是地址对齐的。如果发现进行的不是地址对齐的访问,就会发送SIGBUS信号给进程,使进程产生 core dump。 总线错误与CPU架构有关,有些架构的CPU支持不对齐访问。下面我们通过实例来进行分析: 总线错误的实例 # include   # include   # pragma  pack(1) struc ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览