碧波液压网 欢迎你,游客。 登录 注册

利用JTAGOCD加速Linux设备开发

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  引言

  传统上,调试嵌入式Linux产品需要将硬件和软件工具结合起来,如用JTAG工具进行硬件bring-up,用基于代理(agent-based)的解决方案进行软件开发。这些JTAG和基于代理的工具相结合的方法通常可以解决单点问题,但它们最初并不是专门针对集成化的Linux开发而设计的。因而,在当今集成化的产品开发中,这些传统方法常常是不可行的。

  但是,我们可以在Linux内核的配置、补丁管理以及在基于Eclipse的IDE环境中的用户空间应用开发、调试和分析之中,将传统JTAG硬件调试融入其中得到一种全新的方法,从而完全改变开发人员使用JTAG连接进行Linux设备软件调试的方法,这就是Wind RiverWorkbench。

  Linux设备调试的复杂性

  在嵌入式设备领域,Linux的应用正在迅速增加。根据技术市场研究机构VDC的报告,在新的设备研发项目中,有23%会采用Linux。由于开发工作跨越Boot Loader、Linux内核、内核模块和应用,调试工作很可能极为复杂。Linux开发人员必须面对的问题包括为Boot Loader建立目标配置文件,在用户模式和内核模式之间双向对硬Linux虚拟地址、映射内核符号信息以及排除遍布于用户和内核空间之中的差错。包括内核GNU调试器和GNU调试器在内,在基于代理的调试方案中,要想解决上述任何问题都会遇到极大困难。

  Boot Loader调试

  如果浪费太多的时间在BootLoader的开发与调试上,将会严重影响开发人员对于系统稳定性、设备软件与应用开发的精力投入。因此,开发人员应当借助于先进的工具,尽快逾越这个阶段。

  Linux需要依靠BootLoader来启动操作系统。这段代码存放在Flash或者其他非易失性存储器之中,在系统开机或者复位之后立即运行。Boot Loader的调试可能会非常复杂。这段代码与硬件密切相关,在系统启动之后开发人员必须把它从Flash存储重新定位到RAM之中。在今天的SoC处理器中可能包括了数百个配置寄存器,都需要在此时进行初始化,这项工作需要熟悉数千页的特殊设定文档。如果设定寄存器错误,可能导致随后Linux内核或者应用调试的异常。并且手工编辑寄存器设定是一项极为繁琐易错的工作。

  Boot Loader开发的另一项常见挑战出现在Boot Loader把Linux装入RAM并启动操作系统的时候。基于代理的调试解决方案不支持BootLoader调试,因为在此过程中还没有开始发挥作用。因此,开发人员只能寄希望于JTAG工具。

  JTAG调试解决方案提供了很强的能力来帮助开发人员快速有效地完成Boot Loader的测试与故障排除工作。它使寄存器设置工作大大简化,通过设置硬件断点以及单步执行Flash中的代码,可以快速发现原代码中的错误。IDE可以支持反汇编,还可以让你混合查阅源代码和汇编代码,符号管理功能比较便于代码从Flash向RAM的重新定位,使整个调试工作得到很大帮助。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论