测试友晶DE25-Nano开发板,在U-Boot阶段用md命令读取数据时出现系统挂死,提示如下:
"Synchronous Abort" handler, esr 0x96000021, far 0x1
ResettingCPU Code: 2a0403f3 17ffffcb 7100129f 54000181 (b94002c3)
### ERROR ### Please RESET the board ###

从截图可以看到,命令md.b 0x1 1会返回数据,而命令 md.l 0x1 1会导致系统挂死。
如果是访问一个未定义的地址常量,系统也会挂死:

下发echo md.l $YYYQ 1,系统会打印md.l 1,如下图:

所以md.l $YYYQ 1命令执行时,实际是访问了地址0x1。
查看md命令的格式可知:
md.b (Byte):按单个字节访问,地址是字节对齐的,所以访问地址 0x01 完全合法,能正常返回数据。
md.l (Long):按 4 字节访问,要求 4 字节对齐的地址。因为 4 字节在 32 位系统中构成一个“字”(Word),将其看作一个整体进行读写。访问地址必须能被 4 整除(如地址 0x00, 0x04, 0x08...),否则就会产生非对齐访问(Unaligned Access)。
而我们测试地址:0x01,这个地址无法被 4 整除,是一个典型的非对齐地址,因此导致 md.l 命令失败。
md命令格式解析如下:
| 命令 | 格式 | 参数说明 |
|
md (Memory Display) |
md[.b, .w, .l] address [# of objects] |
.b (byte):指定数据宽度1字节 .w (word):指定数据宽度2字节 .l (long):指定数据宽度4字节(默认) •address:要读的起始内存地址 •# of objects:显示的数据个数(十六进制),与宽度配合决定总显示字节数 |
|
mw (Memory Write) |
mw[.b, .w, .l] address value [count] |
.b / .w / .l :含义同上 •address:要写入的起始地址 •value:要写入的数据值 •[count]:要写入的个数(十六进制,可选,默认值为1) |
-
命令
+关注
关注
5文章
769浏览量
24163 -
开发板
+关注
关注
26文章
6547浏览量
121473 -
友晶科技
+关注
关注
0文章
9浏览量
7175
原文标题:答疑解惑|Uboot阶段访问某个地址导致系统挂死(DE25-Nano开发板)(地址对齐)
文章出处:【微信号:友晶FPGA,微信公众号:友晶FPGA】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
基于FPGA开发板DE10-Standard和T-Core的串口通信设计
NVIC_SystemReset()导致系统挂死怎么解决?
出售2套:友晶科技(Terasic)原装正品 FPGA开发板 Terasic ALTERA DE2-115
Altera DE0 Nano FPGA 开发板 二手 转让 出售
出售DE2-70 FPGA开发板
请问有 Terasic 友晶 tNano FPGA 开发板的 光盘资料吗?
出售 altera 友晶 DE5-NET开发板 三块,有意者带价来,基本全新,配件齐全
Altera DE2 开发板测试说明
ADI开发板扩展DE10-Nano 套件功能
DE1O Nano SoC开发板的用户手册免费下载
友晶DE25-Nano开发板Uboot阶段与FPGA外设交互失败
友晶DE25-Nano开发板Uboot阶段访问某个地址导致系统挂死
评论