PEEDI 2 调试Linux核和应用程序 案例

PEEDI 2 调试Linux核和应用程序 案例

ID:41006119

大小:78.50 KB

页数:4页

时间:2019-08-13

PEEDI 2 调试Linux核和应用程序 案例_第1页
PEEDI 2 调试Linux核和应用程序 案例_第2页
PEEDI 2 调试Linux核和应用程序 案例_第3页
PEEDI 2 调试Linux核和应用程序 案例_第4页
资源描述:

《PEEDI 2 调试Linux核和应用程序 案例》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、用PEEDI工具调试Linux核和应用程序关键词:调试Linux核,GNU工具链,KaRoTrition起步包,PEEDI,简单快捷;介绍基于微形控制器的32位高速ARM的持续流行使得Linux可以进入嵌入式装置的世界。这是需要调试它的核及应用变得重要的原因。Linux是一个多处理开发系统,它利用一个存储管理单元(MMU)给每个过程一个单独的存储空间。MMU也同样为保护每个存储单元区别于其它存储单元负责。不同过程调试间的转换,因此这里我将展示怎么调试Linux核以及应用不受干扰程序被调试。我用到的工具为了达到本文的目的,我将用到ARM-ELF和

2、ARM-LINUXGNU工具链,以及带有2个配套原件TritionLP单元的KaRoTrition起步包。Trition板内带有Linux。设置PEEDI除了所有在目标配置文件中共同的设置,这里必须设置两个XScal明确参数。首先是调试控制器的地址。调试控制器是一个2KB调试检测器,就像程序以定义过的虚拟地址下到CPU的微操作快速缓冲贮存区。这个地址被选择,以至于没有用户操作编码被过度写入,这保证了在用户执行编码时CPU没有命令到达。这里有另一个是调试控制器地址的限制——PEEDI的分支命令优先于CPU的重置向量,这允许了分支在+/-32MB之

3、间波动,外向量处于0x0000_0000或者0xFFFF_0000.因此最终的调试地址可能从0x0000_0000到0x01FF_FC00,以及从0xFE00_0000到0xFFFF_FC00,与1KB(0x400)范围均衡,没有与任何用户编码重合。我个人选择地址0xFFFFF800,CPU剩余的2KB的存储空间。在载入调试控制器后,PEEDI需要优先于CPU的重置向量来指向调试控制器的进入。由于微型指令的快速缓冲贮存区是32位长字节,PEEDI不能优先而只有重置向量可以优先于所有的八个向量。那就是PEEDI必须一直注意应用向量的原因。接下来是

4、第二个XScal明确参数设置,指导PEEDI怎么管理外向量。这里有两个选择——设置向量的连续值,或者让PEEDI每次调试开始时都能恢复向量。每个向量可能有自己的性能设置,因此,如果我们选择连续向量,我们需要在描述有效的ARM指令时设置相应的CORE_VECTOR_XXX参数值,属于用户编码的相应向量.例如:0xE59FF018代表了”LDRpc,[pc,#18]”命令,这对于一个外向量是很普遍的。我个人的选择是第二个——让PEEDI接受每次CPU进入调试控制器后的向量。为了实现它,我会设置所有的CORE_VECTOR_XXX参数为AUTO。即使

5、在应用编码下载时,PEEDI填满向量,这项技术工作效果都很好。有种情况是当PEEDI不能自动下载向量,即当向量运行时的应用被设置。为了在那种困难的时刻帮助PEEDI,你不得不在向量设置后和确保断开前在用户编码处设置一个断点。你可以用三种方式来完成:1、设置32位写通道,观察在用户编码向量最后修正的点。2、在向量被设置但是不确定处,设置硬件断点到编码点。3、在资源编码,向量被设置但是不确定处增加一个软件断点“asm(“bkpt0”)”。在目标停止之后,你可以马上重新开始。整个过程可以轻易地在核的初始化部分自动运行,就像这样:广州虹科电子科技有限公

6、司020-38743030/38743032在开始真正的调试之前我们有一件事需要加强注意——确保没有用户编码会打扰调试控制器。尤其是提供Triton板的Linux接口打扰控制器启动,为了阻止它:——在资源的任一处用“MCRp15,0,rd,c7,c5”代替“MCRp15,0,rd,c7,c5,1”——在建立Linux核时,使CONFIG_XSCALE_CACHE_ERRATA(XScale快速缓冲区勘误表的工作区)不能正常运行。现在我们准备好接上电缆,来证实我们迄今为止所完成的。在你接上PEEDI到你的调试板时,如果每件事都是正确的,你可以首先

7、看到红灯亮,在这之后,Linux注册启动。现在你可以键入一些字符来观察Linux正常的工作,然后你可以分配PEEDI命令行界面暂停指令来停止目标,尝试键入更多的字符,没有任何东西出现。现在出现结果命令,你原先键入的字符开始出现。因此我们已经控制目标了。调试核为了调试核,我们需要一段ELF格式的程序,包括调试信息,即收集GCC-g附件,这段程序必须在目标中闪存。首先我们要做的是在执行核编码的时候停止目标。使用暂停命令不是一个好的办法,因为我们可能在用户进程中暂停,因此最好在核内设置一个断点或者就像我前面讲到的那样将最后的程序移到初始化部分。现在如

8、果我们重新开始目标,在向量被核的备份编码设置后会断开。这里我们可以在载入ELF核之后在主机上开始gdb/insight。然后连接PEEDI:现在我们将

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。