网站首页

人工智能P2P分享搜索全网发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

RISC-V未对齐导致问题案例

时间:2023-06-08 10:04

人气:

作者:admin

标签: RISC-V  嵌入式  程序  调试   

导读:本文介绍未对齐导致问题案例...

本文转自公众号,欢迎关注

未对齐导致问题案例 (qq.com)

前言

本文以一个实例,讲解RISC-V未对齐访问导致的问题.

未对齐导致的问题很常见,本文以实例分享调试分析过程。

过程

现象是程序进入了异常中断函数exception()

先分部打端点,结合step单步运行,确认执行哪个函数的哪一句执行后异常。

这里已经确认是rom_usb_uvc.c的984行执行后异常。

在执行异常的语句前打断点

b rom_usb_uvc.c:984

再重新运行到该处

显示汇编界面layout split

图片

stepi按照汇编单步执行

最终确认执行汇编指令

lw a2,0(a1)后异常

图片

查看此时寄存器a1的值。

(gdb) info reg a1
a1             0x28429ddd       675454429

stepi执行完`lw a2,0(a1)``后进入异常处理函数

图片

查看此时mcause寄存器

(gdb) info reg mcause
mcause         0x4      4

<><>.

对应Load address misaligned。正是lw指令寄存器a1间接寻址非WORD对齐地址0x28429ddd导致。

图片

jpeg2usbpacket函数传入的指向缓冲区的指针参数非WORD对齐导致。

所以修改缓冲区按照WORD对齐。


审核编辑:汤梓红

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信