linux内核添加lrz,linux 调试之lrz的移植与一些说明

开发板:RT5350

编译器:mipsel-linux-gcc

( 如果是arm平台和arm_linux的话,请参照修改即可)

1.获取源码:lrzsz-0.12.20.tar.gz

2. 解压:

tar–xvf lrzsz-0.12.20.tar.gz

3.添加配置参数:

vi mipsel-linux.cache (默认下没有这个文件,因为新建这个文件并打开,添加以下内容)

添加内容:

ac_cv_prog_CC=${ac_cv_prog_CC=/opt/buildroot-gcc342/bin/mipsel-linux-gcc'}

备注一下:

/opt/buildroot-gcc342/bin是mipse-linux编译器的绝对路径。

4,配置

./configure –cache-file=mipsel-linux.cach –prefix=/usr/local/lrz

说明一下,执行这个配置操作后,mipsel-linux.cache内容会有所增加,makefie里的CC会指向第三步中配置的编译器。

7c3d0f66bcca95331caf0eaae57ab0a9.png

如果没有看到CC和CPP这两条语句没有指向指定的编译器,说明没有配置成功,需要重新操作一遍,确保操作无误。

5 编译

make

make install

执行这两行后,就会生成lrz等可执行文件。会把这些执行文件存放到/usr/local/lrz里。 这就是配置时—prefix这个参数的作用了。

865b32f1a124d542482042f8804ae68f.png

cda151359a55a4c2a398bce49d17173d.png

然后把这几个文件拷贝的要烧写的文件系统中,

ddbb2c277ca8077c07cc6e8f45f9dae1.png

烧写,启动系统。

e62d7f4f52a7e2a3059f678a0772d2b2.png

可以看到这几个文件已经成功烧录到板子去了。

由于这几个文件没有放到bin目录,所以要执行这个文件的时候,需要这样执行。

chmod 777 lrz (该指令是修改权限,有些平台不一定需要)

./lrz  执行这个程序。 (如果是拷贝到了bin目录里,可直接lrz执行)

已成功弹出对话框,并选择要下载的文件

d252d788fb2a97e9720ba7c8ffacc66f.png

36fcde849245c78d31b9f40360bb2b60.png

下载完成,提示有下载速度。不过,源码默认的波特率是2400,如果要提高速度,可修改源码目录下/src/lrz/c.

大概69行。

unsigned Baudrate=2400;

改为:

unsigned Baudrate=57600;(当然,改多少视自己口味吧)

ab37c3d4a36d1fad76f285aed58e6cc7.png

保存重新编译,下载,重启。

当然,事实证明,修改波特率效果不是很明显,因为本来使用lrz通过串口传输文件到linux下是比较慢的,不过,lrz还是比较方便的,适合于调试linux的程序。一般编写的linux的程序也就几十k到几百K左右,lrz直接下载就OK了,而且可以在linux任何目录下执行lrz便可把文件下载到该目录下。lrz辅助调试还是非常方便的。

最后建议编译的时候,还是选择静态编译。虽然静态编译出来的可执行文件会稍微大一点点,不过,可以避免因系统缺少一个库文件而不能正常使用。

当然采用静态编译的好处是可以在相同平台的不同系统下运行。当然,如果是在mipsel下的编译了,要在arm平台上使用一般是不可能的了。但至少可以在mipsel下可以正常使用,也许你会问这样做的必要性,举个例子吧。

同学A和同学B的电脑都是win 7系统的。

同学A用VC6制作了个软件可以在自己的电脑上运行,但是把可执行文件拷贝到同学B的电脑就不能运行了,提示说缺少什么dll文件之类的。原来是同学B的电脑没有装VC。那怎么办呢。同学A要想别人用他的软件,不可能叫所有人都装VC吧,也不可能说缺少dll就要补上,不停地补dll也不是个办法的。

所以,只要同学A要编译的时候,使用静态编译,可以发布版本的程序,这样拷贝给B同学的时候就可以运行。相信使用过VC的不少同学能够理解这一点的。

回到我们的话题,要想静态编译lrz,可以修改第三步就可以了。

vi mipsel-linux.cache (默认下没有这个文件,因为新建这个文件并打开,添加以下内容)

添加内容:

ac_cv_prog_CC=${ac_cv_prog_CC=/opt/buildroot-gcc342/bin/mipsel-linux-gcc-static'}

后面步骤相同,发现makefile文件会变为:

18260c73e2c6390bae5c5d8e9e1c71f6.png

同时,mipsel-linux.cache文件的内容被修改如下:

6acc9b71ea4cdab50436634ce35514bd.png

说明已成功设置为静态编译。

剩下的请参考前面的操作。