嵌入式linux在经济社会中的应用实例—GPS系统
更新时间:2023-05-06 05:15:01 阅读量: 实用文档 文档下载
- 嵌入式LINUX推荐度:
- 相关推荐
--
华东交通大学理工学院
Institute of Technology.
East China Jiaotong University
课程论文
Course Thesis
题目嵌入式linux在经济社会中的应用实例—GPS系统
分院:电信分院
专业:通信工程
班级: 2008-2
学号: 224
学生姓名:骆玉春
指导教师:徐涢基
--
--
摘要
本文以S3C2410处理器的GPS手持设备开发过程为例,介绍了嵌入式 Linux 系统软硬件的设计与开发。通过本文的实例,可以加深对嵌入式Linux开发流程的概念的理解,了解嵌入式Linux系统开发的基本过程。
随着全球定位系统(GPS,Globe Positioning System)的广泛应用,GPS 手持终端设备的市场需求越来越大。
首先,分析系统工作原理,再选择合适的参考硬件平台,然后选择合适的操作系统和软件。
Linux对S3C2410处理器支持得相当好,操作系统内核和应用程序都是开放源码的。因此,Linux可以完全按照自己的需要裁减配置系统,使得尺寸更小,而且Linux操作系统性能比Windows操作系统性能更优越。
关键词:GPS系统;linux;系统硬件;系统软件;设计;
--
--
目录
摘要 (1)
目录 (2)
第一章需求分析 .......................................................................................................... 错误!未定义书签。
1.1 系统工作原理 (3)
1.2 选择参考硬件平台 (3)
1.3 选择操作系统和软件 (4)
第二章系统硬件设计 (5)
2.1 电源电路设计 (5)
2.2 复位电路设计 (7)
2.3 时钟电路设计 (7)
2.4 SDRAM接口电路设计 (8)
2.5 Flash接口电路设计 (9)
2.6 JTAG接口电路设计 (12)
2.7 USB接口电路设计 (12)
2.8 键盘输入接口电路设计 (13)
2.9 LCD(触摸屏)接口电路设计 (13)
2.10 GPS接口电路设计 (13)
2.11 PCB设计制作 (14)
第三章系统软件设计 (15)
3.1 U-Boot的移植 ...................................................................................................... 1错误!未定义书签。
3.2 linux内核的移植 (16)
3.3 应用程序的开发移植 (17)
第四章系统集成与部署 ............................................................................................ 错误!未定义书签。参考文献 . (21)
--
--
第一章需求分析
随着全球定位系统(GPS,Globe Positioning System)的广泛应用,GPS 手持终端设备的市场需求越来越大。本项目要设计开发一款手持GPS工程样机。
首先,分析系统工作原理,再选择合适的参考硬件平台,然后选择合适的操作系统和软件。
1.1系统工作原理
系统首先通过GPS模块获得绝对位置数据,并将数据通过UART通信方式传给处理器,经处理器处理后得到当前地图的相对位置,并实时显示到LCD上,使用户随时知道自己的方位;键盘和触摸屏作为人机接口,进行进一步的查询工作;USB用于同微机通信,是可选功能;存储器单元用于存储数据,包括操作系统和应用程序。
1.2选择参考硬件平台
目前半导体供应商提供各种ARM/XSCAE体系结构的处理器,有些ARM926和XSCALE核的处理器都已经用来设计手机等高端移动通信设备,有些则可以用来设计中低端的PDA设备。考虑价格因素,采用Samsung的S3C2410ARM920T处理器。S3C2410属于中低端的处理器,适合手持设备并且国内外参考硬件平台很多,系统大部分模块在硬件平台上可以直接测试。
系统包括CPU、GPS模块、存储器单元、LCD模块、触摸屏、键盘、USB接口等部分组成,功能框图如图1-1所示。
图 1-1 系统功能框图
根据项目的需求,可以适当调整硬件配置。例如:总共需要多少存储空间,使用什么型号的Flash等。同时也要考虑软件支持的程度,驱动程序能否支持新的接口芯片等。本项目的硬件参考配置如下:
--
--
1、CPU单元(S3C2410X16/32-bit ARM920T内核)。
2、存储器单元(2MB NOR Flash和32MB NAND Flash,64MB SDRAM)。
3、复位电路(包括上电复位和手段复位,至少保持4个时钟周期的有效低电平,保证系统的可靠复位)。
4、电源电路。
5、时钟电路(外部 12MHz时钟输入,经内部PLL倍频至200MHz及32.768KHz 的RTC时钟输入)。
6、实时时钟(内部RTC带日历功能)。
7、LCD接口。
8、触摸屏接口。
9、键盘接口。
10、GPS模块。
11、USB接口。
1.3选择操作系统和软件
Samsung S3C2410是最开放的开发设计平台。它的软件和硬件设计资料可以免费从互联网上获取,并且WindowsCE和Linux两种操作系统都能支持。在参考板上一般可以直接对Windows CE和Linux进行测试。
Linux对S3C2410处理器支持得相当好,操作系统内核和应用程序都是开放源码的。因此,Linux可以完全按照自己的需要裁减配置系统,使得尺寸更小,而且Linux操作系统性能比Windows操作系统性能更优越。另外,可以避免支付Windows产品的版税。S3C2410在Linux社区有庞大的用户群,可以获取丰富的开发调试信息。
我们选择Linux作为工程样机的操作系统。由于图形界面要求并不复杂,可以选择QT/Embedded图形系统。
--
--
第二章系统硬件设计
2.1电源电路设计
电源电路的设计是非常重要的,特别是对于手持设备来说,如何减少系统的功耗往往成为工程师最为头疼的问题。不过本节不会深入研究如何降低功耗,只是用一个最普通的方案实现。电源框图如图2-1所示。
图2-1 电源管理系统功能框图
电源由电池提供的2.4V电压输入,经DC/DC开关电源变换器升压至5V输出,3.3V由低压差线性电压源LDO通过+5V调整输出得到,1.8V则由LDO通过3.3V 调整输出得到,这样完成了系统供电。我们知道电源分开关电源和线性电源,那么在嵌入式系统中我们该如何选择呢?每种方式都有自己的优点和弱点,表2-1总结了这两种电源的优缺点。
表2-1 开关电源和线性电源的优缺点
线性电源通常由一只工作在电网频率的变压器、一个桥式整流器和一只电容器组成。变压器能够升压也能够降压,同时还与电网隔离。交流正弦波经过桥式整流器整流后的信号,再用电容器平滑为直流电压,这是未经调节的直流电压。为了在输出端得到调节性能较好的电压,增加了一只线性电压调节器。这样,电压的调节性能较好,但是电源的元件数量增多了,成本也提高了,效率通常低于50%。
--
--
开关电源输出电压的调节性能很好,频率较高,可以在输入端加上通用范围的电压,而且发热少、尺寸小、重量轻。开关电源的主要元件有脉冲宽度调制驱动器、MOSFET功率晶体管、一只变压器以及反馈电路。效率通常高于50%,既省电,元器件的寿命也更长。
根据以上的分析,在输入输出压降幅度大、功耗高,或是要求升压的场合,往往采用开关电源方案;在压降小、功率要求不是很大的时候,使用线性电源为宜。电源是整个系统中最重要的环节,大多数不稳定的因素或故障都是由于电源方面的设计造成的,因此必须加以重视,否则后患无穷。
本例中使用的DC/DC变换器是ST(意法半导体)公司的L6920,该产品广泛用于手持系统、移动电话、数模照相机等应用领域,原理图如图2-2所示。L6920 管脚说明如表2-2所示。
图2-2 L6920电路原理图
表 2-2 L6920管脚说明
此外,电感电容的选取很重要,直接影响DC/DC的效率和输出波形,电感如COILCRAFTS、COILTRONICS、MURATA等公司的产品性能非常好,不过价格比较贵。一些我国台湾产的性价比也不错,电容的选取要容易一些。目前大陆生产的钽电容质量都还可以,如果要求不苛刻的话,完全满足要求。线性电源LDO的电路就简单得多,这里只列出输出3.3V的电路图,如图2-3所示。
--
--
图2-3 线性电源LDO的电路原理图
当今有很多优秀的电源管理系统设计厂商,如Linear、TI、ADI、ON-SEMI、ST、Semtech,Intersil、Maxim等,有很大的选择余地。
2.2复位电路设计
复位对于一个系统来说很重要,由于各个单元要进入正常工作状态,都需要可靠的复位。正常情况下,一般有上电复位和手动复位。如果电源电压出现波动,系统会非正常复位,这时候会发生复位时间不够从而造成一些错误甚至死机,所以复位监控电路也是必要的复位。电路原理如图2-4所示。
图2-4 复位电路原理图
我们的复位电路使用的芯片是 MAX811,管脚说明如表2-3所示。
表2-3 MAX811管脚说明
根据其型号的后缀,MAX811的复位电平门限有5种规格(表2-4),例如表中用的是MAX811-T,就表示电压低于3.08V时,产生复位信号。
表2-4 MAX811的规格
--
--
如系统需要中有与CPU逻辑相反的复位信号,则在nRESET信号后加入非门反相输出。
2.3时钟电路设计
CPU部分需要两路时钟输入,一路是CPU工作时钟输入,另一路提供给RTC 电路。CPU工作时钟是一个有源晶振,无需外部电容,直接输出12MHz时钟信号到CPU,由CPU内部PLL倍频到200MHz,两路时钟输入如图2-5所示。这两种是最普遍的时钟电路,在后面的CS8900A接口电路中也有时钟电路,做法是一样的。
图2-5 时钟电路原理图
2.4 SDRAM接口电路设计
SDRAM具有容量大、存取速度快、成本低的特点,因而广泛应用到微机处理系统中。SDRAM主要用来存放执行代码和变量,是系统启动之后主要进行存取操作的存储器。由于SDRAM需要定时刷新以保持存储的数据,因而要求微处理器具有刷新控制逻辑,或在系统中另外加入刷新控制逻辑电路。S3C2410X及其他一些ARM芯片在片内具有独立的SDRAM刷新控制逻辑,可方便的与SDRAM接口。但某些ARM芯片则没有SDRAM刷新控制逻辑,就不能直接与SDRAM接口,在进行系统设计时应注意这一点。
目前常用的SDRAM为8位/16位的数据宽度,我们可根据系统需求,构建16位或32位的SDRAM存储器系统。本例中使用的是两片三星K4S561632C-TC75芯片构建32位的SDRAM存储器系统。每片K4S561632C的存储容量为16组×16M 位(32MB),工作电压为3.3V,常见封装为54脚TSOP,兼容LVTTL接口,支持自动刷新(Auto-Refresh)和自刷新(Self-Refresh),16位数据宽度。其管脚说明如表2-5所示。
表2-5 K4S561632C-TC75管脚说明
--
--
SDRAM连接原理图如图2-6所示。
图2-6 SDRAM电路原理图
--
--
2.5 Flash 接口电路设计
Flash存储器是一种在系统上(In-System)进行电擦写,掉电后信息不丢失的存储器。它具有低功耗、大容量、擦写速度快、可整片或分扇区在系统编程(烧写)、擦除等特点,并且可由内部嵌入的算法完成对芯片的操作,因而在各种嵌入式系统中得到了广泛的应用。作为一种非易失性存储器,Flash在系统中通常用于存放程序代码、常量表以及一些在系统掉电后需要保存的用户数据等。
现在市场上两种主要的非易失闪存技术是NOR和NAND。Intel于1988年首先开发出NOR Flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。1989年东芝公司发表了NAND Flash结构,强调降低每比特的成本,更高的性能,并且像磁盘一样可以通过接口轻松升级。
NOR的特点是芯片内执行,这样应用程序可以直接在Flash内运行,不必再把代码读到系统RAM中。NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。
NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于Flash的管理和需要特殊的系统接口。
Flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何Flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。两者的速度差异如下:
1、NOR的读速度比NAND稍快一些。
2、NAND的写入速度比NOR快很多。
3、NAND的4ms擦除速度远比NOR的5s快。
4、大多数写入操作需要先进行擦除操作。
5、NAND的擦除单元更小,相应的擦除电路更少。
基于以上分析,我们用NOR Flash存储Boot代码,NAND Flash存储操作系统和应用程序代码。前者我们选用ST公司的M29W160(1MB×16),后者用三星的K9F5608B(32MB×8)。
M29W160的单片存储容量为16M位(2MB),工作电压为2.7V~3.6V,采用48脚TSOP封装或48脚FBGA封装,16位数据宽度,可以以8位(字节模式)或16位(字模式)数据宽度的方式工作。M29W160仅需单3V电压即可完成在系统的编程与擦除操作,通过对其内部的命令寄存器写入标准的命令序列,可对Flash 进行编程(烧写)、整片擦除、按扇区擦除以及其他操作。此外,它还支持任意地址的块写保护,十分方便用户。M29W160的管脚说明如表2-6所示。
表2-6 M29W160的管脚说明
--
--
--
M29W160的实际应用原理图如图2-7所示。
图2-7 M29W160电路原理图
三星公司的K9F 系列NAND Flash 存储器有着容量大、功耗低、成本低、电气性能好等特点是大容量Flash 市场的有力竞争者。K9F5608B 的单片存储容量为256Mbit ,工作电压为2.7V ~3.6V ,采用48脚TSOP 封装或63脚TBGA 封装,8位数据宽度,带有硬件数据保护功能,支持上电自动引导功能,块擦写时间为
2ms ,数据存储有效时间达10年以上。K9F5608B 的管脚说明如表2-7所示。
表2-7 K9F5608B 的管脚说明
--
K9F5608B的实际应用原理图如图2-8所示。
图2-8 K9F5608B的电路原理图
随着嵌入式技术的高速发展,Flash被广泛应用到各个领域,功能越来越强大,电路也日趋复杂。不过各大存储器生产厂商采用统一的标准进行设计生产,所以常用的型号往往是完全兼容的,可以直接替代。我们在应用Flash时,只要注意遵循数据手册的指导,按说明进行设计即可,一般不会出现问题。
2.6 JTAG接口电路设计
JTAG接口对于开发调试非常重要。对于产品来说也可以通过JTAG修复或者更新软件,所以最好预留这个接口,至少引出JTAG接口线。JTAG接口电路原理图如图2-9所示。
图2-9 JTAG电路原理图
2.7 USB 接口电路设计
S3C2410X提供了方便的USB 1.1接口,片内包括2个USB控制器,可设置为两个主机或1主机1设备。
USB接口原理图如图2-10所示。
--
--
图2-10 USB 电路原理图
接口说明:CON14工作在A-TYPE(主机)状态,跳线J35、J36的2、3脚接通时CON16有效,工作在A-TYPE(主机模式)状态,跳线J35、J36的1、2脚接通时,CON17有效,工作在B-TYPE(设备模式)状态。
2.8 键盘输入接口电路设计
键盘采用中断方式连接,共6个功能键,占用6个中断源。当有按键被按下时,会实时产生中断请求信号,通知CPU处理。电路比较简单,如图2-11所示。
图2-11 键盘输入电路原理图
2.9 LCD(触摸屏)接口电路设计
S3C2410X支持TFT/STN型的LCD及触摸屏,但是不能直接与LCD相连,需要接口板驱动LCD。S3C2410X通过50pin的插座作为LCD与触摸屏接口,至于接口板,市场上可以买到,管脚定义都是标准的。原理图如图2-11所示。
--
--
图2-12 LCD 电路原理图
2.10 GPS接口电路设计
本设计选用的GPS模块是HIMARK的AR2010-GM,该产品体积小、功耗低,具备标准GPS功能,技术参数如下:
定位精度 5~25 m CEP w/o S/A;
速率 0.1 m/sw/o S/A;
时间±1μsec(卫星时间);
海拔高度 max.18000 m;
速度 max.500 m/s ;
加速度 max.±4g;
端口 RS232 串口 x1,TTL x1;
速率 4.8、9.6、19.2 和 38.4kbit/s(可选择升级至 115.2kbit/s);
输出协议 NMEA 0183:GGA、GLL、GSV、GSA、RMC、VTG;
电源 3 VDC~9VDC;
消耗电流小于 27mA;
卫星信道 12-channel;
工作温度?40℃~85℃;
储存温度?55℃~100℃;
工作适度 5%~95%;
AR2010-GM 模块通信端口定义如表2-8所示。
表2-8 AR2010-GM模块通信端口定义
--
--
虽然AR2010-GM模块的功能强大,内部结构复杂,但是与CPU的通信非常简单,采用标准 UART方式,只需4根信号线即可,无需任何附加元件就能和S3C2410X 连接。
2.11 PCB 设计制作
随着处理器频率的不断加快,对PCB的布局和走线要求越来越高,早已不是仅仅布通就可以的时代了。当今的PCB板制造技术向高密度、高精度、细孔径、细导线、细间距、高可靠、多层化、高速传输、轻量、薄型方向发展,在生产上同时向提高生产率、降低成本、减少污染、适应多品种、小批量生产的方向发展。
对于主频高达200MHz的S3C2410X处理器来说,它的PCB设计是硬件工作中的难点,前面所有工作都集中体现在电路板上,因而PCB的设计直接影响整个系统的性能。掌握好PCB设计的步骤和要点,不仅能加快开发进度,更会增加系统的稳定性,也为软件开发创造更好的条件。在PCB布板之前,一定要保证原理图的正确性,PCB的电气关系是由原理图的网表生成的,错误的原理图会直接导致错误的PCB板,还要重新返工,这一点相信所有的硬件工程师都有切身体会。
第三章系统软件设计
在样机硬件设计阶段,就可以在参考硬件平台上进行软件开发。
软件开发是一个反复修改编译的过程,交叉开发环境的软件开发流程如图3-1所示。
--
--
图3-1 程序开发流
当样机电路板做好以后,还需要移植到新的平台上。因为样机是参照参考板设计的,所以大部分接口(特别是片上的设备接口)都相同。但是可能增减个别的接口或者替换外围芯片,例如:Flash 由 AMD 公司的 Am29LV800B 替换成 ST 公司的 M29W160(1Mbit×16),容量增加了,擦写 Flash的指令也要相应修改。
软件移植包括 Linux 系统的 3 个组成部分:U-Boot 移植、内核移植和应用程序移植。样机开发板名称假设为 GPS2410,程序移植时将引用这个名称。
3.1 U-Boot 的移植
S3C2410的参考平台上一般使用vivi作为Linux引导程序。如果不习惯vivi或者觉得U-Boot好用,那就把U-Boot移植到硬件板上吧。
(1)在顶层Makefile 中为开发板添加新的配置选项,添加下面两行:gps2410_config : unconfig主机端编辑程序
@./mkconfig $(@:_config=) arm arm920t gps2410 NULL s3c24x0
(2)创建一个新目录存放开发板相关的代码,并且添加文件:
board/gps2410/config.mk
board/gps2410/flash.c
board/gps2410/gps2410.c
board/gps2410/Make
board/gps2410/u-boot.lds
(3)为开发板添加新的配置文件。
可以先复制参考开发板的配置文件,再修改。例如:
$ cp include/configs/smdk2410.h include/configs/gps2410.h
(4)配置开发板。
$ make gps2410_config
(5)编译 U-Boot。
执行make命令,编译成功可以得到U-Boot映像。有些错误是跟配置选项是有关系的,通常打开某些功能选项会带来一些错误。一开始可以尽量跟参考板配置相同。
(6)添加驱动或者功能选项。
--
--
GPS2410开发板的以太网驱动仍然采用常见的CS8900以太网接口芯片。可能变化的是以太网控制寄存器基地址,只要在include/config/gps2410.h文件中修改即可。非常幸运,只要改一下基地址,gps2410的以太网接口就能够正常工作了。
因为Flash换成了ST公司的M29W160,所以必须修改Flash的擦写函数。阅读Flash芯片手册或者擦写例程,确定Flash的扇区大小、块大小、块数和芯片大小,明确Flash的擦写操作指令。然后在源程序board/gps2410/flash.c 中修改。
(7)调试U-Boot源代码,直到U-Boot在开发板上能够正常启动。
这最好借助硬件仿真器来调试,至少需要烧写 Flash 的工具。
3.2 Linux内核的移植
S3C2410属于片上系统,处理器芯片具备串口、显示等外围接口的控制器。参考板上的设备驱动程序多数可以直接使用。但是有些驱动程序也需要移植或者重新开发。
Linux-2.6.14的内核可以对S3C2410有基本的支持。
第1个驱动是串口控制台。2.6内核的串口设备名称有了改变,由“ttyS”变成了“ttySAC”。所以只要内核命令行参数相应的修改成为:console=ttySAC0,115200。
第2个驱动是以太网接口。GPS2410开发板的网络接口使用CS8900A芯片,但是Linux2.6内核中并没有支持S3C2410平台的驱动。幸运的是从Linux社区搜到了针对CS8900接口的补丁,这可省了不少力气。不然,还要认真分析一下网络驱动程序了。
第3个驱动是LCD驱动。这个驱动程序是s3c2410的Frame Buffer驱动:s3c2410fb,源文件是drivers/video/s3c2410fb.c。问题是参考板和样机的LCD 不是同一品牌的,有些显示参数的设置需要修改。
其他的驱动跟硬件参考平台很接近,只需要小修小改,就可以跑通了。
最后还要考虑一下MTD驱动。MTD可以对Flash建立分区表,以便分别存储U-Boot、内核和文件系统。
3.3 应用程序的开发移植
应用程序的功能包含两个方面:一方面是实现图形用户界面,另一方面是GPS数据处理。
图形用户界面可以基于QT/Embedded实现。使用QT/E空间可以开发一些简单便捷的图形应用程序,可以支持触摸屏和按键接口。
GPS数据是通过串口通信的,所以这部分程序主要是Linux串口编程。另外程序还需要具体分析处理接收和发送的数据。
--
--
当然也离不开Linux基本的系统工具,使用Busybox工具集就可以了。
第四章系统集成与部署
各部分软件开发完成以后,就可以对样机进行彻底测试了。可以先通过NFS 方式测试,再部署到Flash中测试。当然,这很可能是反复测试的过程。对于GPS2410样机,只对功能方面做了测试,没有测试性能方面的问题。
本项目采用了RAMDISK文件系统,因为它是简单实用的。为了尽量使文件系统最小,按照下列步骤定制文件系统。
(1)创建目录结构。
在工作区中建立新目录 myfs,作为定制文件系统。执行下列命令创建目录结构。
$ cd ~/workspace
$ mkdir ./myfs
$ cd ./myfs
$ mkdir bin dev etc lib mnt proc sbin usr
(2)创建设备节点。
如果内核配置了 devfs,就不需要创建这些节点了。如果找到一个 MAKEDEV 脚本,可以很快地创建所有节点。
$ cd dev/
$ mknod –m 660 mtd0 c 90 0
$ mknod –m 660 mtd2 c 90 4
$ mknod –m 660 mtdblock0 b 31 0
$ mknod –m 660 mtdblock1 b 31 1
$ mknod –m 660 mtdblock2 b 31 2
(3)添加应用程序。
编译安装 Busybox 及其链接,可以直接从测试过文件系统中复制。
$ cd ~/workspace/myfs
$ cd ./bin
$ cp /usr/local/arm/3.3.2/rootfs/bin/busybox ./
$ ln -s /bin/busybox basename
$ ln -s /bin/busybox cat
$ ln -s /bin/busybox chgrp
$ ln -s /bin/busybox chmod
$ ln -s /bin/busybox chown
$ ln -s /bin/busybox clear
--
--
$ ln -s /bin/busybox cp
$ ln -s /bin/busybox cut
$ ln -s /bin/busybox date
$ ln -s /bin/busybox dd
$ ln -s /bin/busybox df
$ ln -s /bin/busybox dmesg
$ ln -s /bin/busybox du
$ ln -s /bin/busybox echo
$ ln -s /bin/busybox env
$ ln -s /bin/busybox expr
$ ln -s /bin/busybox false
$ ln -s /bin/busybox free
$ ln -s /bin/busybox grep
$ ln -s /bin/busybox gunzip $ ln -s /bin/busybox gzip
$ ln -s /bin/busybox head
$ ln -s /bin/busybox hostname $ ln -s /bin/busybox kill
$ ln -s /bin/busybox killall $ ln -s /bin/busybox ln
$ ln -s /bin/busybox ls
$ ln -s /bin/busybox mkdir
$ ln -s /bin/busybox mknod
$ ln -s /bin/busybox more
$ ln -s /bin/busybox mount
$ ln -s /bin/busybox mv
$ ln -s /bin/busybox ping
$ ln -s /bin/busybox ps
$ ln -s /bin/busybox pwd
$ ln -s /bin/busybox rdate
$ ln -s /bin/busybox rm
$ ln -s /bin/busybox rmdir
$ ln -s /bin/busybox sed
$ ln -s /bin/busybox sh
$ ln -s /bin/busybox sleep
$ ln -s /bin/busybox sync
--
--
$ ln -s /bin/busybox tail
$ ln -s /bin/busybox telnet
$ ln -s /bin/busybox test
$ ln -s /bin/busybox time
$ ln -s /bin/busybox true
$ ln -s /bin/busybox umount
$ ln -s /bin/busybox uname
$ ln -s /bin/busybox uptime
$ ln -s /bin/busybox usleep
$ ln -s /bin/busybox vi
$ ln -s /bin/busybox wget
$ ln -s /bin/busybox zcat
$ cd ../sbin
$ ln -s /bin/busybox halt
$ ln -s /bin/busybox ifconfig
$ ln -s /bin/busybox init
$ ln -s /bin/busybox reboot
$ ln -s /bin/busybox route
另外还要把开发的图形和应用程序安装到相应目录下。
(4)添加库。
应用程序运行是依赖于动态库的,还需要安装依赖的库。
$ cd lib
$ cp /opt/target/rootfs/lib/ld-linux.so.2 ./
$ cp /opt/target/rootfs/lib/libc.so.6 ./
$ cp /opt/target/rootfs/lib/libnss_dns.so.2 ./
$ cp /opt/target/rootfs/lib/libnss_ ./
$ cp /opt/target/rootfs/lib/libresolv.so.2 ./
(5)添加配置脚本。
Linux 系统的启动脚本大部分在etc目录下,复制etc下的一些脚本,并且配置修改。也可以自己定制一个简单的脚本/linuxrc,完成全部初始化工作。
#/linuxrc
(6)制作RAMDISK。
$ mkdir /mnt/initrd
$ dd if=/dev/zero of=initrd.img bs=1k count=8192
$ mkfs.ext2 –F initrd.img
$ mount –o loop initrd.img /mnt/initrd
--
正在阅读:
嵌入式linux在经济社会中的应用实例—GPS系统05-06
注重特色育人管理 强化职业素质养成教育-2019年精选教育文档12-05
常设中国建设工程法律论坛建设工程施工合同纠纷鉴定指引序言09-27
面试英语01-20
智慧城市之智慧小区建设及意义04-14
学业奖学金综合测评量化考核细则最终稿01-21
贵州省金沙县安底中学七年级语文上学期寒假作业 人教新课标版12-06
高频电子04-17
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 经济社会
- 嵌入式
- 实例
- 应用
- 系统
- linux
- GPS
- 中小学校岗位安全工作职责 (1)
- 语文版-语文-高一-电视剧《红楼梦》歌曲集
- 2019年初中语文满分作文范文:那一刻,我长大了
- 2020注册会计师《经济法》预测试题及答案
- 《我叫MT外传》重装待发 策略战棋脑洞大开
- 中心幼儿园各岗位流程图
- 幼儿园规章制度汇总(超全)
- 2011年3月计算机二级VB笔试试题-推荐下载
- 女西装的实验报告(完整版)
- 统编版三年级语文下册第二单元主题阅读卷含答案
- 高三第一次模拟考试文科数学试卷
- 土壤肥料学试卷24答案.doc
- 基金银丰投资价值分析报告
- BD_FACSCalibur中文培训
- 日本展览搭建公司,韩国展台搭建公司,日本展览设计公司哪家好
- 审计服务收费标准表
- 2020年智慧树知道网课《天线与电波传播》课后章节测试满分答案
- 整个基因克隆实验规程完整
- 内蒙古包头市2017届高三下学期第一次模拟考试数学理试题 含答案 精品
- 机械优化设计试卷期末考试及答案