当前位置:网站首页>ARM裸板调试之JTAG调试命令行调试
ARM裸板调试之JTAG调试命令行调试
2022-07-20 03:00:00 【陈 洪 伟】
我们仍然调试之前的nandflash程序,我们用openOCD连接,然后加载程序。
这里是直接下载到片内4KRAM中,然后resume 0发现灯没有亮,程序跑飞了,
这是因为我们的链接地址0x30000000,我们上电后前面的代码要从nandflash里面读取代码然后拷贝到SDRAM中,其中前面的代码要用位置无关码来写,而我们现在的代码不是用位置无关码写的。
我们之前已经知道了memsetup这个函数不是用位置无关码写的,
这个数组是在栈上的这没错,但是他的初始值是在只读数据段的,会去链接地址的地方读这个初始值,但是现在这个地址都还没初始化,所以就错了,现在假设我们不知道程序出错的原因在这里,接下来开始调试。我们现在想一步一步执行。
执行完第一步之后,我们用reg看一下寄存器值,一上电是管理模式,所以我们看一下管理模式中的值,发现sp是0x1000,
然后继续step继续执行,会调到38的位置,这与反汇编文件是一致的。
然后看一下38的位置有什么,再继续执行
然后step单步执行,reg看寄存器值,发现r2 r3的值都是对的。
然后我们看一下0x53000000这里的值是多少,
然后再step执行str r2,[r3]这一行。这时候就把0存到53000000这里了,验证一下
我们再执行若干步,执行到bl memsetup这个函数,
通过分析反汇编文件得到:
我们执行一次step,看一下sp的值
FEC就是4076,和我们分析的值一致。
然后再次step,执行完之后看一下ip的值是多少,ip是一个别名
这个只读数据段就是我们memsetup函数里面数组的初始值。这里就会报错,我们执行完54这行代码,然后看一下r0 r1 r2 r3里面的值,
所以要把memsetup里面数组定义改成
现在我们就找到错误的地方了,但是上面这种jtag命令行的方法我们可以看到,这种方法要求我们对汇编语言比较熟悉才行。
边栏推荐
- 编译+链接和预处理
- [LeetCode]剑指 Offer 53 - II. 0~n-1中缺失的数字
- Understanding and applying continuous integration Tekton
- 10 port scanning tools for advanced scanning by network administrators
- 原生高性能抓包工具Proxyman,送给爱学习的你
- . Net core rapid development platform, powerful workflow engine, multi system rapid configuration
- C——变量的作用域与存储类
- 昇思易点通 | 经典卷积神经网络的深度学习解析
- 显示SAP CRM Product hierarchy的一个小工具
- 【腾讯位置组件】 微信公众号h5 调用腾讯地图组件
猜你喜欢
随机推荐
技术干货 | 基于 MindSpore 实现图像分割之平均表面距离
[Tencent location component] wechat official account H5 calls Tencent map component
【AD学习记录】为什么原理图和PCB都在同一个文件夹下面了却,无法生成PCB?
Win:使用 netsh 命令配置 Port Forwarding
Using TinyMCE rich text editor in vscode
理解和应用持续集成-Tekton
【服务器数据恢复】某品牌ProLiant服务器raid瘫痪数据库文件损坏的数据恢复
[noi simulation] Simen Nong number (number theory, linked list)
最高的评价:您要走的开发事业道路做事的决心,行动是彻底的,诚恳的和绝对真实的
移动端测试必备技能: adb命令和抓包
Manually operated industrial robot
Lecture 5 of Data Engineering Series: data set quality of data centric AI
JVM tuning method
[LeetCode]剑指 Offer 57. 和为s的两个数字
LeetCode. 302 weekly games___ 02_ 6164. Maximum sum of digits and equal pairs___ Hash + enhanced preprocessing + custom priority queue
It's 2022, and you don't know what automated testing is
[server data recovery] data recovery of a brand ProLiant server raid paralysis database file damage
A good resume can always brighten people's eyes during the interview of the testing post
Unity shader implements the image with rounded corners and edge borders
【webrtc】ImportError: No module named win32file