假如只有串口和JTAG,如何高效且优雅的调试linux驱动程序

在只有串口和JTAG存在的嵌入式设备环境中,可以通过JTAG将镜像文件下载到指定位置,但是当文件较大时,下载镜像所消耗的时间会很长,当调试代码时每次都重新加载镜像文件,极大的降低了开发效率。
基于这个背景,我们可以通过串口按需加载文件,对于调试驱动程序而言,可以极大的提高开发和调试效率。

需要的工具包括lrzsz和一个支持x/y/z moderm的串口终端。

1. 源码下载

下载地址:

https://ohse.de/uwe/software/lrzsz.html

下载0.12.20版本

2. 编译

  • 配置
CC=arm-none-linux-gnueabi-gcc CFLAGS=-O2 ./configure

结果log:

checking for xgettext... /usr/bin/xgettext
checking for catalogs to be installed...  de
updating cache ./config.cache
creating ./config.status
creating Makefile
creating intl/Makefile
creating lib/Makefile
creating testsuite/Makefile
creating man/Makefile
creating po/Makefile.in
creating src/Makefile
creating debian/rules
creating Specfile
creating systype
creating src/lrzszbug
creating config.h
linux:lrzsz-0.12.20$
  • 编译
make

查看编译出来的可执行程序如下:

linux:lrzsz-0.12.20$ ls src/
ansi2knr.1  canit.o   lrz    lrzszbug     lsyslog.o  lsz.o        Makefile.in  rbsb.c  tcp.o     timing.o   zm.o      zperr.o
ansi2knr.c  crctab.c  lrz.c  lrzszbug.in  lsz        Makefile     protname.c   rbsb.o  timing.c  zglobal.h  zmodem.h  zreadline.c
canit.c     crctab.o  lrz.o  lsyslog.c    lsz.c      Makefile.am  protname.o   tcp.c   timing.h  zm.c       zperr.c   zreadline.o
linux:lrzsz-0.12.20$

将lrz和lsz拷贝出来即可

3.上板验证

3.1 从远端获取文件

结果:

3.2 发送文件到远端

远端接收目录如下:

4. x/y/z moderm

  • xmodem
    简单通用,传输信息单位是“包=128B”,传输速度慢,适合电话线路质量差的情况下用
  • ymodem
    由XMODEM演变来,效率可靠性高,包=128*8B;一次传输可发送或接受几个文件
  • zmodem
    于上两种不同,已连续的数据流发送数据,效率更高
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
搭建Linux内核调试环境需要准备以下工具和步骤: 1. 准备编译工具链:在Linux系统上搭建交叉编译工具链,用于编译和调试内核。可以使用GCC工具链或者Clang/LLVM工具链。 2. 获取Linux内核源代码:从Linux官方网站或者GitHub上获取所需的Linux内核源代码。可以选择稳定版本或者特定的分支。 3. 配置编译选项:进入内核源代码目录,在终端执行"make menuconfig"命令,配置所需的编译选项。可以选择启用调试符号、内核调试选项和相关的硬件调试支持等。 4. 编译内核:执行"make"命令编译内核。可能需要一段时间来完成编译过程,取决于系统资源和内核配置选项。 5. 安装内核:执行"make modules_install install"命令将编译好的内核和模块安装到系统中。注意备份原有内核并配置启动引导文件。 6. 配置调试工具:安装并配置GDB调试器。GDB是一种强大的调试器,可以用于调试Linux内核。可以通过包管理器安装GDB,如"apt-get"或者"yum"。 7. 连接调试器:通过串口、网络或者通过JTAG接口连接调试器到目标机器。这可能需要硬件设备和相应的驱动程序。 8. 启动内核调试:启动目标机器,并在GDB中配置和启动目标机器连接。可以设置断点、观察变量、单步执行和查看调用栈等。 9. 进行调试:在GDB中使用各种调试命令和功能对Linux内核进行调试。例如,可以查看内核日志、内存映射和寄存器状态等。 10. 分析问题和修复:根据调试结果分析问题,并进行相应的代码修改,重复以上步骤来进行进一步的调试和测试。 以上是搭建Linux内核调试环境的基本步骤。根据具体需求和调试场景,可能还需要其他工具和配置来满足特定的调试需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux与SoC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值