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会指向第三步中配置的编译器。
如果没有看到CC和CPP这两条语句没有指向指定的编译器,说明没有配置成功,需要重新操作一遍,确保操作无误。
5 编译
make
make install
执行这两行后,就会生成lrz等可执行文件。会把这些执行文件存放到/usr/local/lrz里。 这就是配置时—prefix这个参数的作用了。
然后把这几个文件拷贝的要烧写的文件系统中,
烧写,启动系统。
可以看到这几个文件已经成功烧录到板子去了。
由于这几个文件没有放到bin目录,所以要执行这个文件的时候,需要这样执行。
chmod 777 lrz (该指令是修改权限,有些平台不一定需要)
./lrz 执行这个程序。 (如果是拷贝到了bin目录里,可直接lrz执行)
已成功弹出对话框,并选择要下载的文件
下载完成,提示有下载速度。不过,源码默认的波特率是2400,如果要提高速度,可修改源码目录下/src/lrz/c.
大概69行。
unsigned Baudrate=2400;
改为:
unsigned Baudrate=57600;(当然,改多少视自己口味吧)
保存重新编译,下载,重启。
当然,事实证明,修改波特率效果不是很明显,因为本来使用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文件会变为:
同时,mipsel-linux.cache文件的内容被修改如下:
说明已成功设置为静态编译。
剩下的请参考前面的操作。
linux内核添加lrz,linux 调试之lrz的移植与一些说明相关推荐
- linux内核添加模块,linux中添加内核模块
1. 内核模块简介 Linux 内核的 整 体结构 非 常 庞 大 ,其 包 含 的 组 件也 非 常多 , 如 何使用 需 要 的 组 件 呢? 方 法 一 : 把 所有的 组 件都 编译 进 内 ...
- Linux 内核的测试和调试(1)
Linux 内核的测试和调试(1) Linux 内核测试哲学 不管是开源还是闭源,所有软件的开发流程中,测试是一个重要的.不可或缺的环节,Linux 内核也不例外.开发人员自测.系统测试.回归测试.压 ...
- Bochs调试Linux内核6 - 启动过程调试 - 跳到bootsect引导程序执行
接此,Bochs调试Linux内核5 - 启动过程调试 - 认识Bootsect.S_bcbobo21cn的专栏-CSDN博客 看一下,0x00007c11 这里是重复执行串传送:而后一条 ...
- 向linux内核增加新的系统调用,为linux内核添加新的系统调用
为linux内核添加新的系统调用 作者:李志勇 更多精彩: 更多精彩: 开发平台:x86 ubuntu 目标平台:S3C6410 linux3.4.4 一. 打开内核源码目录下arch/arm/ ...
- linux内核添加系统调用(详细)
linux内核添加系统调用(详细) 说在前面: 这是我第五次编译内核,分别踩了很多坑.中途问过wz佬,佬让我用qemu.我还是最后换ubuntu虚拟机跑了.现在已经有点emo了. 这篇博客是我第五次的 ...
- 手机linux内核版本了解,Linux内核版本介绍与查询
Linux内核版本命名在不同时期有着不同的规范,在涉及到Linux版本问题时经常容易混淆,主线版本/稳定版/长期支持版本经常搞不清楚,本文主要记录下内核版本命名的规则以及如何查看Linux系统版本信息 ...
- linux内核精髓:精通linux内核必会的75个绝技,Linux内核精髓精通Linux内核必会的75个绝技 PDF 高清扫描版...
经过近20年的发展,Linux操作系统已经成为当今最成功的开源软件之一,使用广泛,影响深远.随着Linux操作系统功能的不断丰富和完善,Linux内核的源代码也从最初的几万行增加到如今的数百万行,庞大 ...
- 【Linux 内核】编译 Linux 内核 ① ( 下载指定版本的 Linux 内核源码 | Linux 内核版本号含义 | 主版本号 | 次版本号 | 小版本号 | 稳定版本 )
文章目录 一.下载 Linux 内核 1.下载最新版本 Linux 内核 2.下载指定版本 Linux 内核 二.Linux 内核版本号含义 一.下载 Linux 内核 1.下载最新版本 Linux ...
- 简述arm linux内核启动流程,Linux内核启动过程和Bootloader(总述)
1.Linux内核启动过程概述 一个嵌入式 Linux 系统从软件角度看可以分为四个部分:引导加载程序(Bootloader),Linux 内核,文件系统,应用程序.其中 Bootloader是系统启 ...
- linux 内核优化实战,Linux编译优化必须掌握的几个姿势总结
01.编译选项和内核编译 Linux内核(英语:linux kernel),是一种计算机操作系统内核,已C语言和汇编语言写成,匹配POSIX标准,以GNU通用公共许可证发布.从技术上说Linux只是一 ...
最新文章
- Java 25 岁,发展现状大曝光!程序员的机会来了
- php7.3 安装详解,php7.3.20以及常用拓展安装
- Oracle数据库的轻松干净卸载
- jvm_堆栈永久区详细讲解
- python 基础教程(第二版)
- 【洛谷P1833】樱花
- oracle+导入emp,Oracle数据库导入导出emp文件
- 模糊搜索神器FZF番外篇
- halcon学习笔记——图像的预处理
- php没有输出报错信息的解决
- c语言如何做一个打卡的程序,C语言实现学生打卡系统
- 宏基因组/微生物组杂志简介及2020最新影响因子
- web漏扫问题处理1
- LCD驱动(FrameBuffer)实例开发讲解
- 用eclipse和androidstudio和基于高德地图API开发的附近购平台的java服务端和android客户端数据库用mysql包括程序设计图
- 项目管理心得--第一篇
- 移动端web设计尺寸_移动端H5页面的设计稿尺寸大小规范
- CentOS下 Meld安装(文件和文件夹比较)的两种方式
- 3.2 QuickBI可视化分析工具
- 百度地图配合java 代码制作地图