三星redhatlinux

redhatlinux  时间:2021-04-05  阅读:()

第1章嵌入式Linux开发基础知识目前Linux已被广泛应用于信息家电、数据网络、工业控制、医疗卫生、航空航天等众多领域.
在嵌入式领域,由于价格低廉、结构小巧的各种微处理器的出现为外设连接提供了稳定可靠的硬件架构,限制嵌入式系统发展的瓶颈就突出表现在软件方面.

尽管从20世纪80年代末开始,陆续出现了一些嵌入式操作系统,比较著名的有VxWorks、pSOS、Neculeus和WindowsCE.
但这些专用操作系统都是商业化产品,其高昂的价格使许多低端产品的小公司望而却步,并且其源代码的封闭性也大大限制了开发者的积极性.
结合中国实情,当前国家对自主操作系统的大力支持,为开放源码的Linux的推广提供了广阔的发展前景.
对上层应用开发者而言,嵌入式系统需要的是一套高度简练、界面友善、质量可靠、应用广泛、易开发、多任务,并且价格低廉的操作系统.
Linux对厂商不偏不倚而且成本极低,因此很快成为用于各种设备的操作系统.
如今,业界已经达成共识:即嵌入式Linux是大势所趋,其巨大的市场潜力与酝酿的无限商机必然会吸引众多的厂商进入这一领域.

1.
1嵌入式Linux简介Linux正在嵌入式开发领域稳步发展.
因为Linux使用GPL,所以任何对将Linux定制于自己特定开发板或PDA、掌上机、可佩带设备感兴趣的人都可以从因特网免费下载其内核和应用程序,并开始移植或开发.
许多Linux改良品种迎合了嵌入式市场.
它们包括RTLinux(实时Linux)、μCLinux(用于非MMU设备的Linux)、MontavistaLinux(用于ARM、MIPS、PPC的Linux分发版)、ARM-Linux(ARM上的Linux)和其他Linux系统.
嵌入式Linux的发展比较迅速.
NEC、索尼已经在销售个人视频录像机等基于Linux的消费类电子产品,摩托罗拉则计划在其未来的大多数手机上使用Linux,IBM也制定了在手持机上运行Linux的计划.

数年来,"Linux标准库"组织一直在从事对在服务器上运行的Linux进行标准化的工作,现在,嵌入式计算领域也开始了这一工作.
嵌入式Linux标准吸引了"Linux标准库"以及UNIX组织中有益的元素.

在嵌入式系统中使用Linux的优点和缺点虽然大多数Linux系统运行在PC平台上,但Linux也可以作为嵌入式系统的操作系统.
Linux的安装和管理比UNIX更加简单灵活,这对于那些UNIX专家们来说又是一个优点,因为Linux中有许多命令和编程接口同传统的UNIX一样.
但是对于习惯于Windows操作系统的人来说,需要记忆大量的命令行参数却是一个缺点.
随着Linux社团的不断努力,Linux的人机界面开发环境正在不断完善.
典型的Linux系统经过打包,在拥有硬盘和大容量内存的PC机上运行,而嵌入式系统不需要这么高的配置.
一个功能完备的Linux内核要求大约1MB内存.
而Linux微内核只占用其中很小一部分内存,包括虚拟内存和所有核心的操作系统功能在内,只需占用系统约100KB内存.
只要有500KB的内存,一个有网络栈和基本实用程序的完全的Linux系统就可以在一台8位总线(SX)的Intel386微处理器上运行得很好了.
由于内存要求常常是由应用的需要所决定的,例如Web服务器或者SNMP代理,Linux系统甚至可以仅使用256KBROM和512KBRAM进行工作.
因此它是一个瞄准嵌入式市场的轻量级操作系统.
与传统的实时操作系统(RTOS)相比,采用像嵌入式Linux这样的开放源码的操作系统的另外一个好处是Linux开发团体看来会比RTOS的供应商更快地支持新的IP协议和其他协议.
例如,用于Linux的设备驱动程序要比用于商业操作系统的设备驱动程序多,如网络接口卡(NIC)驱动程序以及并口、串口驱动程序.
Linux操作系统本身的微内核体系结构相当简单.
网络和文件系统以模块形式置于微内核的上层.
驱动程序和其他部件可在运行时作为可加载模块编译到或者是添加到内核.
这为构造定制的可嵌入式系统提供了高度模块化的构件方法.
而在典型情况下该系统需结合定制的驱动程序和应用程序以提供附加功能.

嵌入式系统也常常要求通用的功能,为了避免重复劳动,这些功能的实现运用了许多现成的程序和驱动程序,它们可以用于公共外设和应用.
Linux可以在外设范围广泛的多数微处理器上运行,并早已经具备了现成的应用库.
Linux用于嵌入式的因特网设备也是很合适的,原因是它支持多处理器系统,该特性使Linux具有了伸缩性.
因而设计人员可以选择在双处理器系统上运行实时应用,提高整体的处理能力.
例如,可以在一个处理器运行GUI,同时在另一个处理器上运行Linux系统.
在嵌入式系统上运行Linux的一个缺点是Linux体系提供实时性能需要添加实时软件模块.
而这些模块运行的内核空间正是操作系统实现调度策略、硬件中断异常和执行程序的部分.
由于这些实时软件模块是在内核空间运行的,因此代码错误可能会破坏操作系统从而影响整个系统的可靠性,这对于实时应用将是一个非常严重的弱点.
尽管如此,已经有许多嵌入式Linux系统的示例,可以有把握地说,某种形式的Linux能在几乎任一台执行代码的计算机上运行.
1.
2嵌入式Linux开发平台简介嵌入式Linux可以运行的硬件平台十分广泛,从x86、MIPS、POWERPC到ARM,以及其他许多硬件体系结构.
目前在世界范围内,ARM体系结构的SOC逐渐占领32位嵌入式微处理器市场,并且在国内市场上很容易购买到ARM核的嵌入式处理器,我们所介绍的硬件平台也是基于ARM体系结构的,由北京博创兴业科技有限公司开发的UP-NetARM3000和UP-NetARM2410/UP-NetARM2410-S实验仪器.

UP-NetARM3000的CPU为AMR7TDMI内核的三星S3C44B0X01芯片,由于没有MMU,只能运行μCLinux,UP-NetARM2410的CPU为AMR920T内核的三星S3C2410芯片,由于有MMU,就可以运行标准的ARM-Linux内核.
通过这两个平台,可以学习嵌入式Linux中的针对有MMU和无MMU的不同开发过程.
UP-NetARM3000及其他产品的资料可以访问博创公司的网站www.
up-tech.
com获得.
这里针对UP-NetARM2410作详细的介绍.
1.
硬件配置UP-NetARM2410的硬件配置如表1-1所示,实物如图1-1所示.
表1-1UP-NetARM2410的硬件配置配置名称型号规格CPUARM920T结构芯片三星S3C2410X工作频率为203MHz以太网AX8879610/100Mbps自适应Flash盘SAMSUNGK29F280864MB内存SDRAMHY57V561620BT-H32MB*2=64MBLCDSTN240*320256色TFT640*48024位色键盘LED数码管驱动器ZLG729017键数字小键盘触摸屏FM7843驱动USB主从接口USB1.
1串口RS2322个AD3个电位器控制输入调试接口JTAG,14针、20针JTAG烧写Flash音频输出IIS总线,UDA1341芯片,44.
1kHz音频扩展插槽3个168Pin总线直接扩展DA扩展板DA转换SD卡扩展板GPS_GPRS扩展板SIMCOM的SIM100-E模块支持双道语音通信PS/2&IC_CARD扩展板外接键盘鼠标和IC卡CAN扩展板IDE_CF卡展板图1-1UP-NetARM2410实物图2.
S3C2410芯片介绍(1)S3C2410X芯片集成了大量的功能单元,包括:内部1.
8V,存储器3.
3V,外部I/O3.
3V,16KB数据CACHE,16KB指令CACHE,MMU.
内置外部存储器控制器(SDRAM控制和芯片选择逻辑).
LCD控制器,一个LCD专用DMA.
4个带外部请求线的DMA.
3个通用异步串行端口(IrDA1.
0,16-ByteTxFIFO,and16-ByteRxFIFO),2通道SPI.
一个多主I2C总线,一个I2S总线控制器.
SD主接口版本1.
0和多媒体卡协议版本2.
11兼容.
两个USBHOST,一个USBDEVICE(VER1.
1).
4个PWM定时器和一个内部定时器.
看门狗定时器.
117个通用I/O.
24个外部中断.
电源控制模式:标准、慢速、休眠、掉电.
8通道10位ADC和触摸屏接口.
带日历功能的实时时钟.
芯片内置PLL.
设计用于手持设备和通用嵌入式系统.
16/32位RISC体系结构,使用ARM920TCPU核的强大指令集.
带MMU的先进的体系结构支持WinCE、EPOC32、Linux.
指令缓存(CACHE)、数据缓存、写缓冲和物理地址TAGRAM,减小了对主存储器带宽和性能的影响.
ARM920TCPU核支持ARM调试的体系结构.
内部先进的位控制器总线(AMBA)(AMBA2.
0,AHB/APB).
S3C2410X芯片其结构图如图1-2所示.
图1-2S3C2410X芯片(2)系统管理小端/大端支持.
地址空间:每个BANK128MB(全部为1GB).
每个BANK可编程为8/16/32位数据总线.
BANK0到BANK6为固定起始地址.
BANK7可编程BANK起始地址和大小.
一共8个存储器BANK.
6个存储器BANK用于ROM、SRAM和其他.
两个存储器BANK用于ROM、SRAM和同步DRAM.
每个存储器BANK可编程存取周期.
支持等待信号用以扩展总线周期.
支持SDRAM掉电模式下的自刷新.
支持不同类型的ROM用于启动(NOR/NANDFlash、EEPROM和其他).
(3)芯片封装272-FBGA封装图如图1-3所示.
图1-3272-FBGA封装图1.
3嵌入式Linux开发流程在一个嵌入式系统中使用Linux开发,根据应用需求的不同有不同的配置开发方法,但是一般都要经过如下的过程:1.
建立开发环境操作系统一般使用RedHat-Linux,版本从7到9都可以,选择定制安装或全部安装,通过网络下载相应的GCC交叉编译器进行安装(例如arm-Linux-gcc、arm-μclibc-gcc),或者安装产品厂家提供的交叉编译器.

2.
配置开发主机配置MINICOM,一般的参数为波特率为115200bps,数据位为8位,停止位为1,无奇偶校验,软件硬件流控设为无.
在Windows下的超级终端的配置也是这样的.
MINICOM软件的作用是作为调试嵌入式开发板的信息输出的监视器和键盘输入的工具.
配置网络,主要是配置NFS网络文件系统,需要关闭防火墙,简化嵌入式网络调试环境设置过程.

3.
建立引导装载程序BOOTLOADER从网络上下载一些公开源代码的BOOTLOADER,如U-BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根据自己具体的芯片进行移植修改.
有些芯片没有内置引导装载程序,例如三星的ARM7、ARM9系列芯片,这样就需要编写开发板上Flash的烧写程序,网络上有免费下载的Windows下通过JTAG并口简易仿真器烧写ARM外围Flash芯片的烧写程序,也有Linux下的公开源代码的J-Flash程序.
如果不能烧写自己的开发板,就需要根据自己的具体电路进行源代码修改.
这是系统正常运行的第一步.
如果购买了厂家的仿真器当然比较容易烧写Flash,这对于需要迅速开发自己产品的人来说可以极大地提高开发速度,但是其中的核心技术是无法了解的.

4.
下载别人已经移植好的Linux操作系统如μCLinux、ARM-Linux、PPC-Linux等,如果有专门针对所使用的CPU移植好的Linux操作系统那是再好不过的,下载后再添加自己的特定硬件的驱动程序,进行调试修改,对于带MMU的CPU可以使用模块方式调试驱动,对于μCLinux这样的系统则需编译进内核进行调试.

5.
建立根文件系统从www.
busybox.
net下载使用BUSYBOX软件进行功能裁减,产生一个最基本的根文件系统,再根据自己的应用需要添加其他程序.
默认的启动脚本一般都不会符合应用的需要,所以就要修改根文件系统中的启动脚本,它的存放位置位于/etc目录下,包括:/etc/init.
d/rc.
S、/etc/profile、/etc/.
profile等,自动挂装文件系统的配置文件/etc/fstab,具体情况会随系统不同而不同.
根文件系统在嵌入式系统中一般设为只读,需要使用mkcramfs、genromfs等工具产生烧写映像文件.

6.
建立应用程序的Flash磁盘分区一般使用JFFS2或YAFFS文件系统,这需要在内核中提供这些文件系统的驱动,有的系统使用一个线性Flash(NOR型)512KB~32MB,有的系统使用非线性Flash(NAND型)8~512MB,有的两个同时使用,需要根据应用规划Flash的分区方案.

7.
开发应用程序应用程序可以放入根文件系统中,也可以放入YAFFS、JFFS2文件系统中,有的应用不使用根文件系统,直接将应用程序和内核设计在一起,这有点类似于μCOS-II的方式.
8.
烧写内核、根文件系统、应用程序9.
发布产品1.
4建立嵌入式Linux开发环境嵌入式Linux开发环境有以下几个方案:(1)基于PC机Windows操作系统下的CYGWIN.
(2)在Windows下安装虚拟机后,再在虚拟机中安装Linux操作系统.
(3)直接安装Linux操作系统.
由于基于Windows的环境要么有兼容性问题,要么速度有影响,所以推荐读者使用纯Linux操作系统环境.
我们实际的开发环境为RedHat9.
0,它已经支持中文,并且包含了绝大部分的开发工具,不用担心装了Linux就不能使用Windows的问题,一般的情况都是用户已经有了Windows操作系统,再安装Linux,Linux会自动安装一个叫做GRUB的启动引导软件,可以选择引导多个操作系统.

一、预备知识绝大多数的Linux软件开发都是以native方式进行的,即本机(HOST)开发、调试,本机运行的方式.
这种方式通常不适合于嵌入式系统的软件开发,因为对于嵌入式系统的开发,没有足够的资源在本机(即嵌入式目标系统)运行开发工具和调试工具.
通常的嵌入式系统的软件开发采用一种交叉编译调试的方式.
交叉编译调试环境建立在宿主机(即一台PC机)上,对应的开发板叫做目标板.
运行Linux的PC(宿主机)开发时使用宿主机上的交叉编译、汇编及连接工具形成可执行的二进制代码(这种可执行代码并不能在宿主机上执行,而只能在目标板上执行).
然后把可执行文件下载到目标机上运行.
调试时的方法很多,可以使用串口、以太网口等,具体使用哪种调试方法可以根据目标机处理器所提供的支持作出选择.
宿主机和目标板的处理器一般都不相同,宿主机为Intel处理器,而目标板如UP-NETARM2410开发板为三星S3C2410.
GNU编译器提供这样的功能,在编译器编译时可以选择开发所需的宿主机和目标机从而建立开发环境.
所以在进行嵌入式开发前第一步的工作就是要安装一台装有指定操作系统的PC机作为宿主开发机,对于嵌入式Linux,宿主机上的操作系统一般要求为RedHatLinux.
嵌入式开发通常要求宿主机配置有网络,支持NFS(为交叉开发时mount所用).
然后要在宿主机上建立交叉编译调试的开发环境.
环境的建立需要许多的软件模块协同工作,这将是一项比较繁杂的工作,但现在已完全由博创嵌入式教学套件中光盘的安装而自动完成了.

二、对开发PC机的性能要求由于RedHat9.
0安装后占用空间约为2.
4~5GB之间,还要安装ARMLinux开发软件,因此对开发计算机的硬盘空间要求较大.
硬件要求如下:CPU:高于奔腾500MB,推荐高于赛扬1.
7GB.
内存:大于128MB,推荐256MB.
硬盘:大于10GB,推荐高于40GB.
三、开发工具软件的安装与配置1.
RedHatLinux9.
0的安装在一台PC上安装RedHatLinux9.
0,选择Custom定制安装,在选择软件包时最好将所有包都安装,需要空间约2.
7GB,如果选择最后一项:everything,即完全安装,将安装3张光盘的全部软件,需要磁盘空间大约5GB.
因此建议提前为RedHatLinux的安装预留大约5~15GB的空间,具体视用户的硬盘空间大小来确定,在安装完RedHat后还要安装Linux的编译器和开发库以及ARMLinux的所有源代码,这些包安装后总共需要的空间大约为800MB.

2.
开发环境配置配置网络,包括配置IP地址、NFS服务器和防火墙.
网络配置主要是要安装好以太网卡,对于一般常见的RTL8139网卡,RedHat9.
0可以自动识别并自动安装好,完全不要用户参与,因此建议使用该网卡.
然后配置宿主机IP为192.
168.
0.
121.
如果在有多台计算机使用的局域网环境使用该开发设备,IP地址可以根据具体情况设置,如图1-4所示.

图1-4网络配置双击设备eth0的蓝色区域,进入以太网设置界面,如图1-5、图1-6所示.
图1-5以太网常规设置界面图1-6以太网路由设置界面对于RedHat9.
0,它默认的是打开了防火墙,因此对于外来的IP访问它全部拒绝,这样其他网络设备根本无法访问它,即无法用NFSmount,许多网络功能都将无法使用.
因此网络安装完毕后,应立即关闭防火墙.
操作如下:单击"红帽子"开始菜单,选择安全级别设置,选中"无防火墙"选项,如图1-7所示.
在系统设置菜单中选择服务器设置菜单,再选中服务菜单,将iptables服务取消,并确保nfs选项选中.
图1-7安全级别设置配置NFS的步骤如下:单击主菜单"系统设置"→"服务器设置"→"NFS服务器"命令(英文为:SETUP→SYSTEMSERVICE→NFS),单击"增加"按钮出现如图1-8所示的界面在目录(Drictory)中输入需要共享的路径,在主机(Hosts)中输入允许进行连接的主机IP地址,并选择允许客户对共享目录的操作为只读(Read-only)或读写(Read/Write).

JUSTG(5.99美元/月)最新5折优惠,KVM虚拟虚拟512Mkvm路线

Justg是一家俄罗斯VPS云服务器提供商,主要提供南非地区的VPS服务器产品,CN2高质量线路网络,100Mbps带宽,自带一个IPv4和8个IPv6,线路质量还不错,主要是用户较少,带宽使用率不高,比较空闲,不拥挤,比较适合面向非洲、欧美的用户业务需求,也适合追求速度快又需要冷门的朋友。justg的俄罗斯VPS云服务器位于莫斯科机房,到美国和中国速度都非常不错,到欧洲的平均延迟时间为40毫秒,...

ZJI-全场八折优惠,香港服务器 600元起,还有日本/美国/韩国服务器

月付/年付优惠码:zji  下物理服务器/VDS/虚拟主机空间订单八折终身优惠(长期有效)一、ZJI官网点击直达ZJI官方网站二、特惠香港日本服务器香港大埔:http://hkdb.speedtest.zji.net/香港葵湾:http://hkkw.speedtest.zji.net/日本大阪:http://jpsk.speedtest.zji.net/日本大阪一型 ...

CloudServer:$4/月KVM-2GB/50GB/5TB/三个数据中心

CloudServer是一家新的VPS主机商,成立了差不多9个月吧,提供基于KVM架构的VPS主机,支持Linux或者Windows操作系统,数据中心在美国纽约、洛杉矶和芝加哥机房,都是ColoCrossing的机器。目前商家在LEB提供了几款特价套餐,最低月付4美元(或者$23.88/年),购买更高级别套餐还能三个月费用使用6个月,等于前半年五折了。下面列出几款特别套餐配置信息。CPU:1cor...

redhatlinux为你推荐
h连锁酒店全国比较有名的连锁酒店?12306崩溃亲们,为什么12306手机订票系统打不开,显示网络异常,李子柒年入1.6亿将55g铁片放入硫酸铜溶液中片刻,取出洗净,干燥后,称重为56.6g,问生成铜多少g??求解题步骤及答案同ip网站查询怎么查自己的服务器挂着哪些网站蒋存祺蒋存祺的主要事迹同ip域名不同的几个ip怎样和同一个域名对应上www.55125.cn如何登录www.jbjy.cnmole.61.com谁知道摩尔庄园的网址啊百度指数词为什么百度指数里有写词没有指数,还要购买avtt4.comwww.51kao4.com为什么进不去啊?
长沙服务器租用 北京服务器租用 site5 softlayer 域名优惠码 info域名 NetSpeeder 云主机51web html空间 双拼域名 nerds 免费活动 免费cdn 能外链的相册 多线空间 1元域名 台湾google 云服务器比较 成都主机托管 国外网页代理 更多