CDS 未对齐访问异常
来源:互联网 发布:地名地址数据规范 编辑:程序博客网 时间:2024/05/21 14:51
1、代码如下
2、汇编如下
3、分析
r0:栈地址
r15:返回时的跳转地址
r2:第一个传入参数的地址
8000cf6e: 8005 ld r0, (r5, 0) 设置栈地址
8000cf70: 24f0 subi r0, r0, 16 栈空间
8000cf72: 9f20 st r15, (r0, 8) 将r15保存到 r0+8 这个地址上,r15就可以用了
8000cf74: 9830 st r8, (r0, 12) 将r8保存到r0+12这个地址上,r8就可以用了
8000cf76: 1208 mov r8, r0 将r0保存到r8中,
8000cf78: 9208 st r2, (r8, 0) 将r2保存到r8+0中,
174 while(*ptr !='\0')
8000cf7a: f009 br 0x8000cf8e 跳转到0x8000cf8e这个地址
8000cf8e: 8708 ld r7, (r8, 0) 将r8+0保存到r7中,
8000cf92: 0147 zextb r7, r7
8000cf94: 2a07 cmpnei r7, 0
8000cf96: e7f2 bt 0x8000cf7c
176 Uart_SendData(UART1,*ptr);
8000cf7c: 8708 ld r7, (r8, 0) 将r8+0保存到r7中,
8000cf7e: a707 ldb r7, (r7, 0) 将r7+0保存到r7中,
8000cf80: 0147 zextb r7, r7
8000cf82: 6012 movi r2, 1 r2表示数字1
8000cf84: 1273 mov r3, r7 r3表示字符‘X’
8000cf86: 7f21 jsri 0x8002176C // 0x8002176c <Uart_SendData>
177 ptr++;
8000cf88: 8708 ld r7, (r8, 0) 将r8+0保存到r7中,
8000cf8a: 2007 addi r7, r7, 1 r7下移1
8000cf8c: 9708 st r7, (r8, 0) 将r7保存到r8+0中,
174 while(*ptr !='\0')
8000cf8e: 8708 ld r7, (r8, 0)
8000cf90: a707 ldb r7, (r7, 0)
8000cf92: 0147 zextb r7, r7
8000cf94: 2a07 cmpnei r7, 0
8000cf96: e7f2 bt 0x8000cf7c
179 }
4、错误, 可以发现是8000cf8e: 8708 ld r7, (r8, 0) 中的r7错误!!!
5、后续步骤。。。
暂无。。。
- CDS 未对齐访问异常
- CDS 未对齐访问异常 【2】
- 解决数据结构未对齐的异常
- CDS
- cds
- CDS 网络通信,异常重启---调试
- Data abort为例子:数据非对齐访问异常
- DataGridView数据未对齐
- 教程:基于访问控制的ABAP CDS视图权限
- 教程:基于访问控制的ABAP CDS视图权限
- SpringMVC + Shiro 访问未授权页面时不跳转,页面打印抛异常
- CPU访问字节对齐
- memcpy内存对齐访问
- 结构体对齐访问
- ARM非对齐访问
- 未捕捉的异常
- 未捕获的异常
- hbase 异常 未解决
- unity3d 物理引擎
- iOS 处理图片的一些小 Tip
- 新更新....llq原创考试第二题
- 《leetCode》:Remove Duplicates from Sorted Array II
- codeblocks找不到openssl/md5.h头文件
- CDS 未对齐访问异常
- ubuntu安装配置jdk
- Hadoop集群的回收机制
- Android 使用Messenger实现跨进程之间通信
- DTO及其处理
- AdapterView和Adapter
- adb server is out of date. killing... ADB server didn't ACK * failed to star
- 心情随笔(六):金秋十月备考之路亦别有一番风味
- gitHub管理代码