当前位置:文档之家› 第1章 嵌入式Linux快速入门

第1章 嵌入式Linux快速入门

第1章 嵌入式Linux快速入门
第1章 嵌入式Linux快速入门

第1章 Linux系统快速入门

嵌入式Linux 是以Linux 为基础的操作系统,只有熟练使用Linux 系统之后,才能在嵌入式Linux 开发领域得心应手。本章主要讲述Linux基本概念、分区、文件系统、目录结构规范等。

1.1.嵌入式Linux基础

如图1-1所示,嵌入式Linux从UNIX发展而来,UNIX系统至今广泛应用在金融、电信、政府等对可靠性、安全性要求极高的领域,这些优点都被Linux 系统继承下来,并通过GNU(GNU is Not Unix)组织实施GPL(G eneral P ublic L icense)版权,成为开源自由软件,由任何组织、个人免费使用。

图1-1 Unix家族图

自由开源软件在嵌入式应用上受到青睐,Linux 日益成为主流的嵌入式操作系统之一。随着摩托罗拉手机A760、IBM 智能型手表WatchPad、夏普PDA Zaurus 等一款款高性能“智能数码产品”的出现,以及Motolola、三星、MontaVista、飞利浦、Nokia、IBM、SUN 等众多国际顶级巨头的加入,嵌入式Linux 的队伍越来越庞大了。目前,国外不少大学、研究机构和知名公司都加入了嵌入式Linux 的开发工作,成熟的嵌入式Linux 产品不断涌现。

很多高端网络设备采用嵌入式Linux,嵌入式Linux在数码产品中使用更加广泛,Nokia手机Symbian系统由Linux发展而来,Google Android采用了Linux2.6内核,成为一种通用性很强、用于高端手机的嵌入式操作系统。

1.1.1.嵌入式Linux市场和应用领域

如图1-2所示,嵌入式Linux应用领域包括:汽车电子、办公室自动化、医疗图像、仪器仪表、家庭数码、移动通信、IP网络、无线通信、中央办公室设备等。

图1-2 嵌入式Linux应用领域

1.1.

2.Linux作为嵌入式操作系统优点和应用优势

嵌入式Linux继承了桌面Linux系统的如下优点:

?多任务、多用户

?支持数十种文件系统格式

?开放源代码

?完全运行于保护模式

?采用先进的内存管理机制,更加有效地利用物理内存

?提供了先进的网络支持

?符合IEEE POSIX标准

在应用上具有如下优势:

(1)低成本开发系统

Linux 的源码开放性允许任何人获取并修改Linux 的源码。这样一方面大大降低了开发的成本,另一方面又可以提高开发产品的效率。并且还可以在Linux 社区中获得支持,用户只需向邮件列表发一封邮件,即可获得作者的支持

(2)可应用于多种硬件平台

Linux 可支持X86、PowerPC、ARM、Xscale、MIPS、SH、68K、Alpha、Sparc等多种体系结构,并且已经被移植到多种硬件平台。这对于经费、时间受限制的研究与开发项目

是很有吸引力的。Linux 采用一个统一的框架对硬件进行管理,同时从一个硬件平台到另一个硬件平台的改动与上层应用无关。

(3)可定制的内核

Linux 具有独特的内核模块机制,它可以根据用户的需要,实时地将某些模块插入到内核中或者从内核中移走,并能根据嵌入式设备的个性需要量体裁衣。经裁减的Linux 内核最小可达到150KB以下,尤其适合嵌入式领域中资源受限的实际情况。当前的2.6 内核加入了许多嵌入式友好特性。

(4)性能优异

Linux 系统内核精简、高效并且稳定,能够充分发挥硬件的功能,因此它比其他操作系统的运行效率更高。在个人计算机上使用Linux,可以将它作为工作站。它也非常适合在嵌入式领域中应用,对比其他操作系统,它占用的资源更少,运行更稳定,速度更快。

(5)良好的网络支持

Linux 是首先实现TCP/IP协议栈的操作系统,它的内核结构在网络方面是非常完整的,并提供了对包括十兆位、百兆位及千兆位的以太网,还有无线网络,对现在依赖于网络的嵌入式设备来说无疑是很好的选择。

1.1.3.Linux发行版本

由于Linux 属于GNU系统,而这个系统采用GPL协议,并保证了源代码的公开,于是众多组织或公司在Linux 内核源代码的基础上进行了一些必要的修改加工,然后再开发一些配套的软件,并把它整合成一个自己的发布版Linux。除去非商业组织Debian开发的Debian GNU/Linux 外,美国的Red Hat公司发行了Red Hat Linux,法国的Mandrake公司发行了Mandrake Linux,德国的SUSE 公司发行了SUSE Linux,国内众多公司也发行了中文版的Linux,如著名的红旗Linux。Linux 目前已经有超过250 个发行版本。

1.1.4.Linux学习网站

https://www.doczj.com/doc/cc12941893.html,

https://www.doczj.com/doc/cc12941893.html,/

https://www.doczj.com/doc/cc12941893.html,/forum/

https://www.doczj.com/doc/cc12941893.html,

1.2. L inux 基础概念

1.文件系统、分区、目录结构和挂载

文件系统是指操作系统中与管理文件有关的软件和数据。Linux 的文件系统和Windows 中的文件系统有很大的区别,Windows 文件系统是以驱动器的盘符为基础的,而且每一个目录指明其所在的分区,例如“E:\workplace ”是指此文件在E 盘这个分区下。而Linux 的文件系统是一棵文件树,且它的所有文件和外部设备(如硬盘、光驱等)都是以文件的形式挂在这个文件树上,例如“/usr/local ”。图1-3和图1-4分别为Windows 和Linux 分区和目录结构。

图1-3 Windows 目录结构 图1-4 Linux 目录结构

Linux 系统分区

引导分区

2.主分区、扩展分区和逻辑分区

硬盘分区是针对一个硬盘进行操作的,它可以分为:主分区、扩展分区、逻辑分区。其中主分区就是包含操作系统启动所必需的文件和数据的硬盘分区,数量为1~3 个。图1-5为主分区、扩展分区、逻辑分区示意图,通常Windows需安装在主分区,但Linux可安装在主分区或逻辑分区。

(C:) (D:) (E:)

图1-5 主分区、扩展分区、逻辑分区示意图

图1-5分区结构中Windows下的盘符和Linux设备文件的对应关系如下:

?/dev/hda (硬盘)

?C盘—/dev/hda1(主分区)

?/dev/hda2 (主分区)

?/dev/hda4 (扩展分区)

?D盘—/dev/hda5(逻辑分区)

?E盘—/dev/hda6(逻辑分区)

3.SWAP交换分区

在系统内存容量有限的情况下,为了运行大型的程序,Linux 在硬盘上划出一个区域来当作临时的内存,而Windows 操作系统把这个区域叫做虚拟内存,Linux把它叫做交换分区swap。

4.分区格式(文件系统格式)

不同的操作系统选择了不同的格式,同一种操作系统也可能支持多种格式。微软公司的Windows 就选择了FAT32、NTFS两种格式,但是Windows 不支持Linux 上常见的分区格式。Linux 是一个开放的操作系统,它最初使用EXT2格式,后来使用EXT3格式,但是它同时支持非常多的分区格式,包括很多大型机上UNIX 使用的XFS格式,也包括微软公司的FAT以及NTFS格式。

5.GRUB

GRUB是一种引导装入器(功能与Windows下NT Loader相似),它负责装入内核并引导Linux系统,位于硬盘的起始部分。由于GRUB多方面的优越性,如今的Linux一般都默认采用GRUB来引导Linux操作系统。但事实上它还可以引导Windows 等多种操作系统。

6.root权限

Linux 也是一个多用户的系统,不同的用户和用户组会有不同的权限,其中把具有超级权限的用户称为root用户(相当于Windows下Administrator)。root 的

默认主目录在“/root”下,而其他普通用户的目录则在“/home”下。root的权限极高,它甚至可以修改Linux的内核。

1.3.L inux 文件及文件系统

1.3.1.文件类型及文件属性

1.文件类型

普通文件:包括编程和脚本文件(.c .cpp .h .o .pl .py .so .sh .tcl )、系统文件(.conf .lock .rpm)、文件格式

(.au .gif .html/.htm .jpg .pdf .png .ps .txt .wav .xpm)

、压缩以及归档文件:(.bz2 .gz .tar .tbz .tgz .zip )。

目录文件:目录中包含文件以及下级子目录,但目录也是文件。这个文件中记录了包含在它中的文件和子目录的名称与它所处的地址。目录文件

中记录文件的名字,文件本身的记录不包含文件名,对文件名进行

的更改,实际是修改目录文件中的一条文件记录

连接文件:连接是Linux中比较特殊而非常有用的一种文件,类似于Windows 中的快捷方式,它本身不包含任何内容,它指向别的文件或目录。设备文件:Linux下所有的设备都是通过文件来表示的,所有的设备文件都存放在/dev目录下,设备文件的文件名就是设备名,它包括两种,一种

是块设备文件,另一种是字符设备文件。

2.文件属性

Linux 中的文件属性如图1.6 如示,Linux 中文件的拥有者可以把文件的访问属性设成3 种不同的访问权限:可读(r)、可写(w)和可执行(x)。文件又有3个不同的用户级别:文件拥有者(u)、所属的用户组(g)和系统里的其他用户(o)。

图1-6 Linux文件属性

第一个字符显示文件的类型:

? “-”表示普通文件。

? “d”表示目录文件。

? “l”表示链接文件。

? “c”表示字符设备。

? “b”表示块设备。

? “p”表示命名管道,比如FIFO 文件(First In First Out,先进先出)。

? “f”表示堆栈文件,比如LIFO 文件(Last In First Out,后进先出)。

? “s”表示套接字。

思考与练习

1.请查找相关资料,查看GNU所规定的自由软件的具体协议是什么。

2.请问Linux 下的文件系统和Windows下的文件系统有什么区别?

3.试指出读者Linux 系统中的磁盘划分情况(如主分区、扩展分区的对应情况)。4.Linux 中的文件有哪些类,这样分类有什么好处?

5.若有一个文件,其属性为“-rwxr--rw-”,说出这代表什么?

6.请说出下列目录中放置的是哪些文件。

/etc/ /etc/rc.d/init.d/ /usr/bin /bin /usr/sbin /sbin /var/log

嵌入式linux基本操作实验一的实验报告

实验一linux基本操作实验的实验报告 一实验目的 1、熟悉嵌入式开发平台部件,了解宿主机/目标机开发模式; 2、熟悉和掌握常用Linux的命令和工具。 二实验步骤 1、连接主机和目标板;(三根线,网线直接连接实验箱和PC机,实验箱UART2连接主机的UART口)。 2、Linux命令的熟悉与操作 PC端:在PC机的桌面上打开虚拟机,并启动Linux系统,打开命令终端,操作Linux基本命令,如:查看:ls,进入目录:cd,创建文件:mkdir,删除文件:rmdir,配置网络:ifconfig,挂载:mount,设置权限:chmod,编辑器:vi,拷贝:cp等命令,要求能熟练操作。 使用方法: 1.查看:ls Ls列出文件和目录 Ls–a 显示隐藏文件 Ls–l 显示长列格式ls–al 其中:蓝:目录;绿:可执行文件;红:压缩文件;浅蓝:链接文件;灰:其他文件;红底白字:错误的链接文件 2.进入目录:cd 改变当前目录:cd 目录名(进入用户home目录:cd ~;进入上一级目录:cd -) 3.创建文件:mkdir 建立文件/目录:touch 文件名/mkdir目录名 4.删除文件:rmdir 删除空目录:rmdir目录名 5.配置网络:ifconfig 网络- (以太网和WIFI无线) ifconfig eth0 显示一个以太网卡的配置 6.挂载:mount mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘- 确定目录'/ mnt/hda2' 已经存在 umount /dev/hda2 卸载一个叫做hda2的盘- 先从挂载点'/ mnt/hda2' 退出fuser -km /mnt/hda2 当设备繁忙时强制卸载 umount -n /mnt/hda2 运行卸载操作而不写入/etc/mtab文件- 当文件为只读或当磁盘写满时非常有用 mount /dev/fd0 /mnt/floppy 挂载一个软盘 mount /dev/cdrom /mnt/cdrom挂载一个cdrom或dvdrom mount /dev/hdc /mnt/cdrecorder挂载一个cdrw或dvdrom mount /dev/hdb /mnt/cdrecorder挂载一个cdrw或dvdrom mount -o loop file.iso /mnt/cdrom挂载一个文件或ISO镜像文件

LInux 嵌入式操作系统期末试题

1.简答题:请简单概括什么是嵌入式系统、并举出嵌入式系统的特点;(6分) 答: 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可剪裁,适用于应用系统,对功能、可靠性、成本、体积、功耗等方面有特殊要求的专用计算机系统; 其特点如下: (1)嵌入式系统是面向特定系统应用的。 (2)嵌入式系统涉及计算机技术、微电子技术、电子技术、通信和软件等各个行业; 是一个技术密集、资金密集、高度分散、不断创新的知识集成系统; (3)嵌入式系统的硬件和软件都必须具有高度可定制性;只有这样才能适应嵌入式系 统应用的需要,在产品价格和性能方面具备竞争力; (4)嵌入式系统的生命周期相当长。 (5)嵌入式系统不具备本地系统开发能力,通常需要有一套专门的开发工具和环境。 2.嵌入式操作系统的优势:1.低成本开发系统 2.可应用多种硬件平台 3.可定制内核 4. 性能优异 5.良好的网络支持 3.linux文件类型:1.普通文件 2.目录文件 3.链接文件 4.设备文件 a.块设备文件(硬 盘:/dev/hda1)b.字符设备(串行端口接口设备) 4.linux文件属性:访问权限:r:可读w:可写x:可执行用户级别:u:文件拥有者g:所 属用户组 o:其他用户第一个字符显示文件类型:-普通d目录 l 链接… 5.简答题:(6分) linux目录结构:/bin 存放linux常用操作命令的执行文件(二进制文件) /boot 操作系统启动时所需要的程序 /dev Linux系统中使用的外部设备 /etc 系统管理时所需要的各种配置文件和子目录 /etc/rc.d Linux启动和关闭时要用到的脚本 /etc/rc.d/init Linux默认服务的启动脚本 /home 系统中默认用户工作根目录 /lib 存放系统动态链接共享库 /mnt软驱、光驱、硬盘的挂载点 /proc存放系统核心与执行程序所需信息、 /root超级用户登陆时的主目录 /sbin 存放管理员常用系统管理程序 /usr存放用户应用程序和文件 /var存放日志信息(答六点即可) 6.编写一个shell文件:创建studen01 –student30这30个用户,用户组为class1,之 后编写shell文件,删除所有用户

嵌入式Linux系统中音频驱动的设计与实现

第31卷 第2期 2008年4月 电子器件 Ch in es e Jo u rnal Of Electro n Devi ces Vol.31 No.2Apr.2008 Design and Implementation of Audio Driver for Embedded Linux System YU Yue,YA O G uo -liang * (N ational A S I C S ystem Eng ine ering Center ,S outhe ast Unive rsity ,N anj ing 210096,China) Abstract:This paper intro duces the fundam ental principle and architecture of the audio system w hich con -sists of the CODEC UCB1400and the 805puls,and describes the design of audio dev ice dr iv er based on Audio Codec .97for Embedded Linux System.The paper focuses o n the implementatio n of the DM A trans -port and ioctl interface.T he audio dr iv e is running w ell in actual Embedded Linux system equipments.Key words:805plus;embedded Linux;Audio A C .97driver;DM A;ioctl interface EEACC :1130B 嵌入式Linux 系统中音频驱动的设计与实现 虞 跃,姚国良 * (东南大学国家专用集成电路系统工程中心,南京210096) 收稿日期:2007-07-09 作者简介:虞 跃(1982-),男,东南大学电子工程系国家专用集成电路工程技术研究中心硕士研究生,研究方向为嵌入式系统设计; 姚国良(1979-),男,东南大学电子工程系博士研究生,yuyueo@https://www.doczj.com/doc/cc12941893.html,. 摘 要:介绍了由805puls 处理器和U CB1400编解码芯片构成的音频系统体系结构及工作原理,接着阐述了嵌入式Linux 操作系统下基于A C .97协议标准的音频设备驱动程序的设计与实现。其中着重讲述了采用循环缓冲区进行音频数据的DM A 传输流程以及ioctl 接口的实现。此设计方案已在嵌入式L inux 系统中得到使用,运行效果良好。 关键词:805plus;嵌入式L inux ;AC .97音频驱动;DM A;ioctl 接口中图分类号:TP391 文献标识码:A 文章编号:1005-9490(2008)02-0709-03 嵌入式音频系统广泛应用于GPS 自动导航、PDA,3G 手机等移动信息终端,具备播放、录音功能的音频系统的应用使得移动信息终端上视听娱乐IP 电话、音频录制等成为可能,并推动了移动信息终端设备的发展。 在软件上,嵌入式操作系统的新兴力量Linux 的开源性,内核可定制等优点吸引了许多的开发者与开发商。它是个和U nix 相似、以核心为基础的、完全内存保护、多任务多进程的操作系统。支持广泛的计算机硬件,包括X86,A lpha,Sparc,M IPS,PPC,ARM ,NEC,MOT OROLA 等现有的大部分芯片[1]。 本文针对805puls 微处理器选用Philips 公司的编解码芯片(CODEC)U CB1400,构建了基于Au -dio Codec .97(AC .97)标准的音频系统。并介绍了该音频系统在Linux 操作系统2.4.19内核下驱动 程序的实现技术。 1 音频系统构架 1.1 微处理器805plus 805plus 是东南大学ASIC 系统工程技术研究中心和北京大学微处理器研究开发中心共同设计和开发的32bit 嵌入式微处理器,是采用H ar vard 结构的RISC 处理器。内部采用五级流水线结构,兼容16bit 和32bit 的指令系统805plus 嵌入式微处理器集成了存储接口EMI,时钟和功耗管理PM C,中断控制器INTC,通用定时器T IM ER,脉宽调制器PWM,实时时钟RT C,通用串口UA RT,LCD 控制器LCDC,AC .97控制器,同步外设接口SPI 。1.2 AC .97协议标准[2] AC'97协议标准是一套关于A C'97数字音频处理(AC'97Digital Controller)、AC '97数字串口(AC

《嵌入式系统与开发》构建嵌入式Linux系统-实验报告

《嵌入式数据库sqlite移植及使用》 实验报告 学生姓名:陈彤 学号:13004405 专业班级:130044 指导教师:孙国梓 完成时间:2016.5.31 实验3 嵌入式数据库sqlite移植及使用 一.实验目的 理解嵌入式软件移植的基本方法,掌握sqlite数据库软件移植的步骤,掌握sqlite开发的两种方式—命令模式和C代码开发模式的使用方法,并编程实现简单通讯录查询实验。 二.实验内容 实验3.1 移植嵌入式数据库sqlite 实验3.2 简单通讯录查询实例设计和测试 三.预备知识 Linux使用、数据库相关知识等 四.实验设备及工具(包括软件调试工具) 硬件:ARM 嵌入式开发平台、PC 机Pentium100 以上、串口线。 软件:WinXP或UBUNTU开发环境。 五.实验步骤 5.1 移植嵌入式数据库sqlite 步骤【参看教材103页】: 第一步,解压缩sqlite源码,命令tar zxvf sqlite-autoconf-3080900.tar.gz,在解压后的文件夹下,可以看到源码文件有shell.c 和sqlite3.c文件,生成Makefile的配置脚本文件configure.ac ,并检查当前文件夹下__A__(A.存在 B.不存在)Makefile文件。 第二步利用configure脚本文件生成基于ARM实验台的Makefile,具体命令为./configure CC=arm-linux-gcc –prefix=/opt/sqlite –host=arm-linux(假设安装目录为/opt/sqlite),并检查当前文件夹下___A__(A.存在 B.不存在)Makefile文件。 第三步,编译sqlite,命令为_make_,编译过程中使用的编译器为_ arm-linux-gcc _。 第四步,安装sqlit,命令为_make install_。安装完成后到_/opt/sqlite_文件夹下去查看相关文件,可以看到该文件夹下有_bin_、_include_、__lib__和share文件夹,其中可执行文件sqlite3位于_./bin_文件夹,库位于_./lib_文件夹。 第五步,将sqlite3拷贝到开发板bin目录下,将库下的文件拷贝到开发板的lib目录下【注意链接文件的创建】 第六步,数据库的使用 方式1:命令操纵数据库 在超级终端环境下创建数据库stucomm.db,命令为_sqlite3 stucomm.db_; 创建数据表stutable,字段包括id 整型,name 字符型,phoneNum 字符型,具体命令为_sqlite> create table stutable (id int(20),name char(20),phoneNum char(20));_; 插入2条记录,记录信息如下 001,zhangsan,10086 002,lisi,10000

嵌入式linux系统移植试题 - 答案

嵌入式Linux系统移植试题(时间:60分钟) 一、单项选择题(每题2分,共40分) 1.嵌入式linux系统移植不包括(D) [A] bootloader[B] linux内核[C] 根文件系统[D] 应用程序 2.下列选项中符合gcc的编译流程的是(A ) [A] 预处理->编译->汇编->连接[B] 预处理->汇编->编译->连接[C] 编译->预处 理->汇编->连接[D] 预处理->连接->汇编->编译 3.下列二进制工具哪个是丢弃目标文件的全部或者特定符号,减少文件体积的(D ) [A] size[B] as [C] nm [D] strip 4.下列二进制工具哪个是用来反汇编的(B) [A] nm[B] objdump [C] objcopy [D] string 5.下列二进制工具哪个是用来进行目标格式转换的(C ) [A] nm[B] objdump [C] objcopy [D] string 6.下列二进制工具哪个是用来把程序地址转换为文件名和行号的(D) [A] nm[B] objdump [C] objcopy [D] addr2line 7.FS4412开发平台上,uImage被解压到什么地址(B) [A] 0x40000000 [B] 0x40008000 [C] 0x41000000 [D] 0x43e00000 8.编译Linux内核设备树文件使用什么命令(D) [A] make dtbi[B] make tags [C] make dtb [D] make dtbs 9.linux要求bootloader在运行内核前,让系统进入何种模式(B) [A] user[B] svc [C] system 10.u-boot的命令中存放自启动命令的环境变量是(D) [A] ipaddr [B] bootargs [C] bootm [D] bootcmd 11.u-boot的命令中,设置环境变量的命令是(A) [A] setenv [B] printenv [C] tftp [D] bootm 12.u-boot中存放内核启动参数的环境变量是(C)

CAN总线在嵌入式Linux下驱动程序的实现

CAN总线在嵌入式Linux下驱动程序的实现 时间:2009-11-05 09:41:22 来源:微计算机信息作者:黄捷峰蔡启仲郭毅锋田小刚 1 引言 基于嵌入式系统设计的工业控制装置,在工业控制现场受到各种干扰,如电磁、粉尘、天气等对系统的正常运行造成很大的影响。在工业控制现场各个设备之间要经常交换、传输数据,需要一种抗干扰性强、稳定、传输速率快的现场总线进行通信。文章采用CAN总线,基于嵌入式系统32位的S3C44B0X微处理器,通过其SPI接口,MCP2510 CAN控制器扩展CAN总线;将嵌入式操作系统嵌入到S3C44B0X微处理器中,能实现多任务、友好图形用户界面;针对S3C44B0X微处理器没有内存管理单元MMU,采用uClinux嵌入式操作系统。这样在嵌入式系统中扩展CAN设备关键技术就是CAN设备在嵌入式操作系统下驱动程序的实现。文章重点解决了CAN总线在嵌入式操作系统下驱动程序实现的问题。对于用户来说,CAN设备在嵌入式操作系统驱动的实现为用户屏蔽了硬件的细节,用户不用关心硬件就可以编出自己的用户程序。实验结果表明驱动程序的正确性,能提高整个系统的抗干扰能力,稳定性好,最大传输速率达到1Mb/s;硬件的错误检定特性也增强了CAN的抗电磁干扰能力。 2 系统硬件设计 系统采用S3C44B0X微处理器,需要扩展CAN控制器。常用的CAN控制器有SJA1000和MCP2510,这两种芯片都支持CAN2.0B标准。SJA1000采用的总线是地址线和数据线复用的方式,但是嵌入式处理器外部总线大多是地址线和数据线分开的结构,这样每次对SJA1000操作时需要先后写入地址和数据2次数据,而且SJA1000使用5V逻辑电平。所以应用MCP2510控制器进行扩展,收发器采用82C250。MCP2510控制器特点:1.支持标准格式和扩展格式的CAN数据帧结构(CAN2.0B);2.0~8字节的有效数据长度,支持远程帧;3.最大1Mb/s的可编程波特率;4.2个支持过滤器的接受缓冲区,3个发送缓冲区; 5.SPI高速串行总线,最大5MHz; 6.3~5.5V宽电压范围供电。MCP2510工作电压为3.3V,能够直接与S3C44B0X微处理器I/O口相连。为了进一步提高系统抗干扰性,可在CAN控制器和收发器之间加一个光隔6N137。其结构原理框图如图1: 图1.S3C44B0X扩展CAN结构框图图2.字符设备注册表 3 CAN设备驱动程序的设计 Linux把设备看成特殊的文件进行管理,添加一种设备,首先要注册该设备,增加它的驱动。设备驱动程序是操作系统内核与设备硬件之间的接口,并为应用程序屏蔽了硬件细节。在linux中用户进程不能直接对物理设备进行操作,必须通过系统调用向内核提出请求,

南邮嵌入式系统B实验报告2016年度-2017年度-2

_* 南京邮电大学通信学院 实验报告 实验名称:基于ADS开发环境的程序设计 嵌入式Linux交叉开发环境的建立 嵌入式Linux环境下的程序设计 多线程程序设计 课程名称嵌入式系统B 班级学号 姓名 开课学期2016/2017学年第2学期

实验一基于ADS开发环境的程序设计 一、实验目的 1、学习ADS开发环境的使用; 2、学习和掌握ADS环境下的汇编语言及C语言程序设计; 3、学习和掌握汇编语言及C语言的混合编程方法。 二、实验内容 1、编写和调试汇编语言程序; 2、编写和调试C语言程序; 3、编写和调试汇编语言及C语言的混合程序; 三、实验过程与结果 1、寄存器R0和R1中有两个正整数,求这两个数的最大公约数,结果保存在R3中。 代码1:使用C内嵌汇编 #include int find_gcd(int x,int y) { int gcdnum; __asm { MOV r0, x MOV r1, y LOOP: CMP r0, r1 SUBLT r1, r1, r0 SUBGT r0, r0, r1 BNE LOOP MOV r3, r0 MOV gcdnum,r3 //stop // B stop // END } return gcdnum; } int main() { int a; a = find_gcd(18,9);

printf("gcdnum:%d\n",a); return 0; } 代码2:使用纯汇编语言 AREA example1,CODE,readonly ENTRY MOV r0, #4 MOV r1, #9 start CMP r0, r1 SUBLT r1, r1, r0 SUBGT r0, r0, r1 BNE start MOV r3, r0 stop B stop END 2、寄存器R0 、R1和R2中有三个正整数,求出其中最大的数,并将其保存在R3中。 代码1:使用纯汇编语言 AREA examp,CODE,READONL Y ENTRY MOV R0,#10 MOV R1,#30 MOV R2,#20 Start CMP R0,R1 BLE lbl_a CMP R0,R2 MOVGT R3,R0 MOVLE R3,R2 B lbl_b lbl_a CMP R1,R2 MOVGT R3,R1 MOVLE R3,R2 lbl_b B . END 代码2:使用C内嵌汇编语言 #include int find_maxnum(int a,int b,int c)

嵌入式Linux系统期末考试简答题、运用题

简答题与应用题 什么是嵌入式系统?主要有什么特点? 以应用为中心,以计算机技术为基础的, 并且软件硬件是可剪裁的, 能满足应用系统对功能、 可靠性、成本、 体积、功耗等指标的严格要求的专用计算机系统。他可以实现对其他设备的控制、监视或者管理等功能。 与通用的 计算机系统相比,特点为: (1) (2) (5) 嵌入式系统通常由嵌入式处理机、嵌入式外围设备、嵌入式操作系统和嵌入式应用软件等几大部分组成。 4、什么是Linux ?什么是嵌入式 Linux ? 答:严格来讲,Linux 是指由Linux 本人维护并不断更新的内核 。 一个嵌入式Linux 系统指的是一个基于 Linux 内核的,但不包含有关这个内核的任何专业的库或是用户工具 的嵌入式系统。 Linux 内核构建嵌入式操作系统有什么优势(优良特性)? 程度代码是可以获取的,可靠度高; 有完整的源码,软件丰富并且免费; 得到众多硬件生产家的广泛支持;包括 cpu 、计算机外 围设备 完善的通信协议、软件标准和文件管理机制; 提供完全免费且优秀的开发工具; 广泛的社群支持 无需购买lice nee ,是免费的; 不依赖特定厂商、供应商; 成本相对低廉。 6、 RTOS (嵌入式操作系统)强调的实时是什么概念?与中断的关系? 答:实时指的是特定操作所消耗的时间(以及空间)的上限是可预知的。操作系统能够在规定响应时间内完成客 户服务程序。中断程序响应中断并完成 是在固定时间内。 7、什么是实时LinUX ?涉及到哪些软硬件内容? 答:实时LinUX ( RT-Linux )通过在Linux 内核与硬件中断之间增加一个精巧的可抢先的实时内核 ,把标准的Linux 内核作为实时内核的一个进程与用户进程一起调度 ,标准的Linux 内核的优先级最低,可以被实时进程抢断。 正 常的Linux 进程仍可以在Linux 内核上运行,这样既可以使用标准分时操作系统即 Linux 的各种服务,又能提 供低延时的实时环境。它在硬件上涉及到硬件中断,软件上涉及到对高优先级的实时硬件中断的快速响应。 能在规定的时间内完成对突发事件的处理的 Linux 系统; 软件:中断服务程序、进程调度程序,硬件:嵌入式系统所采用的中断管理硬件。 8、试简要说明Linux 内核构成,并简要说明各部分的功能? 答: MMU :内存管理单元,完成地址映射(应用虚拟地址方式) VFS :虚拟文件管理系统,提供了统一管理计算机资源的途径。使统一规范计算机资源的使用格式成为可能,方 1、 答: 面向特定应用,一般都有实时要求; 集先进性的计算机技术、半导体工艺、电子技术和通信网络技术于一体的并且在不断创新的知识集 成系统; 嵌入式系统是和具体应用对象有机结合在一起,因而其升级换代也是和具体的产品同步进行的。 嵌入式系统的软 硬件设计着重于高效率性。在最大限度满足应用需求的前提下,降低成本是必须要 考虑的主要问题。 嵌入式系统软件一般都固化在存储器芯片中。 (3) (4) 5、 用 答:( 1) (2) (3) (4) (5) (6) (7) (8) () 2、 答: 3、嵌入式操作系统的作用是什么?

嵌入式Linux考试复习

1、两次过程考核(20分左右) 2、嵌入式系统的定义 嵌入式系统是以应用为中心,以计算机技术为基础,采用可剪裁软硬件,适用于对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统,用于实现对其他设备的控制、监视或管理等功能 3、嵌入式系统与桌面通用系统的区别(列出来两个) (1)嵌入式系统中运行的任务是专用而确定的,而桌面通用系统需要支持大量的、需求多样的应用程序 (2) 嵌入式系统往往对实时性提出较高的要求。 (3)嵌入式系统中使用的操作系统一般是实时操作系统 (4) 嵌入式系统运行需要高可靠性保障,比桌面系统的故障容忍能力弱很多 (5) 嵌入式系统大都有功耗约束 (6) 嵌入式系统比桌面通用系统可用资源少得多,其开发需要专用工具和特殊方法 (7) 嵌入式系统开发是一项综合的计算机应用技术 4、(填空)文件的类型;ls –l 命令执行后后显示的文件各个属性的意思 文件的类型: 普通文件,目录文件,链接文件,设备文件,管道,堆栈,套接字 各个属性: (1)第一个字符显示文件的类型 (2)第一个字符之后有3个三位字符组: 第一个三位字符组表示对于文件拥有者(u)对该文件的权限;

第二个三位字符组表示文件用户组(g)对该文件的权限; 第三个三位字符组表示系统其他用户(o)对该文件的权限; 若该用户组对此没有权限,一般显示“-”字符 5、(选择题)文件系统 ext2和ext3 swap文件系统 vfat文件系统 NFS文件系统 ISO9660文件系统 内存文件系统:proc、sys、ramdisk 嵌入式文件系统:cramfs、jffs、yaffs等 6、linux 目录结构下面放什么(了解常用) /bin 该目录中存放Linux的常用命令 /boot 该目录下存放的都是系统启动时要用到的程序 /dev 该目录包含了Linux系统中使用的所有外部设备,它实际上是访问这些外部设备的端口,你可以访问这些外部设备,与访问一个文件或一个目录没有区别/usr 用户应用程序和文件都存放在该目录下 /etc该目录存放了系统管理时要用到的各种配置文件和子目录,例如网络配置文件、文件系统等。 /home 用来存放该用户的主目录。

嵌入式LINUX试题

一、单项选择题 1.在宿主机上开启tftp服务时,所要修改的配置文件为()A./etc/exports B./etc/xinetd.d C.以上都不对 D./etc/xinetd.d/tftp 答案:D 2.内核在配置结束后,会将用户的选择结果保存在文件()中A.defconfig B.config C.default D..config 答案:D 3.u-boot指令中,下载文件的命令是() A.setenv B.reset C.tftp D.ping 答案:C 4.Kconfig文件中生成新的配置菜单使用() A.menu B.help C.default D.config 答案:A 5.在内核解压缩目录的Makefile文件中修改的ARCH变量实际是在指定()A.优化参数 B.目标系统架构 C.交叉编译器 D.编译参数 答案:B 6.在构建嵌入式linux平台过程中,具备开发能力的计算机我们称之为()A.计算机 B.宿主机 C.服务器 D.目标系统 答案:B 7.内核在编译时所依赖的编译规则文件是() A..config B.Makefile C.Make D.File 答案:B 8.linux下所使用的串口调试工具是()

B.nfs C.minicom D.tftp 答案:C 9.内核配置菜单生成时所依赖的文件是() A.config B.Kconfig C.Makefile D.kconfig 答案:B 10.U-Boot下tftp下载文件到目标系统的内存当中,在内存当中默认的地址是()A.0x30000000 B.0x30008000 C.0x30000100 D.0x30080000 答案:B 11.在操作过程中,内核编译所生成的内核压缩可执行文件是()A.s3c2440 B.linux-2.6.32.2 C.zImage D.选项均不真确 答案:C 12.系统环境变量中用来作为可执行文件搜索路径的变量是(); A.PWD B.HISTORY_SIZE C.LD_LIBRARY_PATH D.PATH 答案:D 13.创建设备文件有手动创建与自动创建之分,那么手动创建时标示设备所属种类时是用()来区分的。 A.次设备号 B.num C.-m D.主设备号 答案:D 14.嵌入式系统是面向()、实现特定功能的、软硬件可裁剪的计算机控制系统; A.家庭 B.特定领域 C.工厂 D.学校 答案:B 15.在Linux下,打补丁时所使用的命令是() A.patch

嵌入式linux android驱动工程师 面试题总汇

嵌入式linux android驱动工程师面试题总汇 1.嵌入式系统中断服务子程序(ISR)收藏中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展—让标准C支持中断。具代表事实是,产生了一个新的关键字__interrupt。下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码的。 2.C语言中对位的操作,比如对a的第三位清0,第四位置1.本来应该会的,一犯晕写反了,以后注意! #define BIT3 (1<<3) #define BIT4 (1<<4) a &= ~BIT3;a |= BIT4; 3.考到volatile含义并举例: 理解出错,举了很具体的例子,连程序都搬上去了,有些理解不深的没举出来…… volatile表示这个变量会被意想不到的改变,每次用他的时候都会小心的重新读取一遍,不适用寄存器保存的副本。 volatile表示直接存取原始地址 例: 并行设备的硬件寄存器(状态寄存器) 在多线程运行的时候共享变量也要时时更新 一个中断服务子程序中访问到的的非自动变量(不太清楚,正在查找资料ing……) 4.要求设置一绝对地址为0x67a9的整型变量的值为0xaa66

当时我的写法: #define AA *(volatile unsigned long *)0xaa66AA = 0x67a9; 答案: int *ptr =(int *)0xaa66; *ptr = 0x67a9; 我感觉自己写的应该不算错吧(自我感觉,还请达人指正),我写的适合裸机下用,当做寄存器用,而答案就是适合在操作系统下的写法。 1. linux内核里面,内存申请有哪几个函数,各自的区别? 2. IRQ和FIQ有什么区别,在CPU里面是是怎么做的? 3. int *a; char *b; a 和b本身是什么类型? a、b里面本身存放的只是一个地址,难道是这两个地址有不同么? 4.xx的上半部分和下半部分的问题: 讲下分成上半部分和下半部分的原因,为何要分?讲下如何实现? 5.内核函数mmap的实现原理,机制? 6.驱动里面为什么要有并发、互斥的控制?如何实现?讲个例子? 7. spinlock自旋锁是如何实现的? 8.任务调度的机制? 【二、本人碰到】

嵌入式linux实验指导书

目录 实验一 linux常用指令练习 (3) 1、在线帮助指令 (3) 2、linux开关机及注销指令。 (3) 重启指令: (3) 1)、reboot命令 (3) 2)、init 6命令 (3) 关机指令: (3) 1)、halt命令 (3) 2)、poweroff命令 (4) 3)、init 0命令 (4) 4)、shutdown命令 (4) 注销指令: (4) 3、用户管理命令 (4) 1)、用户切换su命令 (4) 2)、添加用户命令adduser/useradd (5) 3)、删除用户及更改用户属性 (5) 4)、设置用户密码 (6) 5)、查看用户信息 (6) 4、文件目录操作指令 (7) 1)、改变当前工作目录命令(cd) (7) 2)、显示当前路径pwd (7) 3)、查看当前目录下的文件命令ls (7) 4)、新建目录指令mkdir (8) 5)、删除目录命令rmdir (8) 6)、新建文件命令touch (8) 7)、删除文件指令rm (8) 8)、文件和目录的复制命令cp (8) 9)、文件和目录的移动命令mv (9) 10)、更改文件或目录的使用权限chmod (9) 11)、查看文件的命令cat (9) 12)、文件链接命令ln (9) 13)、文件压缩解压命令 (10) 5、网络相关命令 (11) 6、磁盘管理命令 (11) 7、挂载文件命令mount (12) 8、其他系统命令 (12) 练习1: (13) 练习2: (15) 练习3: (16) 练习4: (21) 实验二 VI文本编辑器的使用 (24) 1、练习使用VI指令 (24) 2、利用VI编写一个hello.c文件 (24)

嵌入式Linux试题答案

《嵌入式开发》期中试卷 试卷适用范围:2011级计算机科学与技术(本)1、2班 一、填空题(每空1分,共46分) 习题 1 1.填空题 (1)嵌入式系统是以应用为中心、以计算机技术为基础,软、硬件可裁剪,适应于应用系统对功能、可靠性、成本、体积、功耗等方面有特殊要求的专用计算机系统。 (2)嵌入到对象体系中的专用计算机系统。嵌入性、专用性与计算机系统是嵌入式系统的三个基本要素。对象系统是指嵌入式系统所嵌入的宿主系统。 (3)嵌入式系统按形态可分为设备级(工控机)、板级(单板、模块)、芯片级(MCU、SOC)。 (4)嵌入式系统由硬件和软件两大部分组成,硬件一般由高性能微处理器和外围接口电路组成,软件一般由操作系统和应用程序构成,软件和硬件之间由所谓的中间层(BSP层,板级支持包)连接。 (5)嵌入式系统从组织层次上看,嵌入式系统一般由硬件层、中间层、软件层和功能层组成。 (6)在专用的嵌入式板子上面运行GNU/Linux系统已经变得越来越流行。一个嵌入式Linux系统从软件的角度看通常可以分为四个层次:引导加载程序、 Linux内核、文件系统、用户应用程序。 (7)嵌入式系统硬件的核心部件是各种类型的嵌入式处理器。 (8)嵌入式系统的核心部件是嵌入式处理器,一般把嵌入式处理器分成4类,即微处理器、微控制器、数字信号处理器、和嵌入式片上系统。 (9)ARM公司首创了 chipless 的生产模式,专门从事基于RISC技术芯片的设计开发,公司本身并不生产芯片,而是设计出高效的IP内核,授权给半导体公司使用。 (10)ARM7TDMI中,T表示支持Thump指令集。D表示支持片上调试(Debug)。M表示内嵌硬件乘法器(Multiplier)。I表示支持片上断点和调试点。 (11)ARM9系列微处理器包含ARM920T、ARM922T和ARM940T三种类型,以适用于不同的应用场合。 (12)ARM微处理器有两种工作状态:Thump状态、ARM状态。 (13)通用寄存器分为三类:未分组寄存器、分组寄存器、程序计数器(PC)。 (14)异常是由内/外部源引起的需要处理器干预的一个事件。 (15)精简指令集计算机RISC(Reduced Instruction Set Computer)和复杂指令集计算机CISC 是当前CPU的两种架构。 (16)ARM微处理器的在较新的体系结构中支持两种指令集: ARM指令集、Thump指令集。 (17)MMU的作用有两个:将虚拟地址转化为物理地址、对存储器访问的

嵌入式LINUX四按键驱动

对一个具有四个按键的按键驱动的分析 源代码: /*Headers-------------------------------------------------*/ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef CONFIG_DEVFS_FS #include #endif /*V ars----------------------------------------------------*/ #define DEVICE_NAME "buttons" #define EXTINT_OFF (IRQ_EINT4 - 4) unsigned int buttons_major=0; unsigned int buttons_minor=0; unsigned int type = IRQT_FALLING; struct button_info { unsigned int irq_no; unsigned int gpio_port; unsigned int IN; int button_no; }; struct button_info realarm_button_info[4] = { { IRQ_EINT19, S3C2410_GPG11, S3C2410_GPG11_INP, 1 }, { IRQ_EINT8, S3C2410_GPG0, S3C2410_GPG0_INP, 2 },

嵌入式Linux系统开发教程实验报告

嵌入式实验报告 : 学号: 学院: 日期:

实验一熟悉嵌入式系统开发环境 一、实验目的 熟悉Linux 开发环境,学会基于S3C2410 的Linux 开发环境的配置和使用。使用Linux的armv4l-unknown-linux-gcc 编译,使用基于NFS 方式的下载调试,了解嵌入式开发的基本过程。 二、实验容 本次实验使用Redhat Linux 9.0 操作系统环境,安装ARM-Linux 的开发库及编译器。创建一个新目录,并在其中编写hello.c 和Makefile 文件。学习在Linux 下的编程和编译过程,以及ARM 开发板的使用和开发环境的设置。下载已经编译好的文件到目标开发板上运行。 三、实验设备及工具 硬件::UP-TECH S2410/P270 DVP 嵌入式实验平台、PC 机Pentium 500 以上, 硬盘10G 以上。 软件:PC 机操作系统REDHAT LINUX 9.0+超级终端(或X-shell)+AMR-LINUX 开发环境。 四、实验步骤 1、建立工作目录 [rootlocalhost root]# mkdir hello [rootlocalhost root]# cd hello 2、编写程序源代码 我们可以是用下面的命令来编写hello.c的源代码,进入hello目录使用vi命令来编辑代码: [rootlocalhost hello]# vi hello.c 按“i”或者“a”进入编辑模式,将上面的代码录入进去,完成后按Esc 键进入

命令状态,再用命令“:wq!”保存并退出。这样我们便在当前目录下建立了一个名为hello.c的文件。 hello.c源程序: #include int main() { char name[20]; scanf(“%s”,name); printf(“hello %s”,name); return 0; } 3、编写Makefile 要使上面的hello.c程序能够运行,我们必须要编写一个Makefile文件,Makefile文件定义了一系列的规则,它指明了哪些文件需要编译,哪些文件需要先编译,哪些文件需要重新编译等等更为复杂的命令。使用它带来的好处就是自动编译,你只需要敲一个“make”命令整个工程就可以实现自动编译。Makefile源程序: CC= armv4l-unknown-linux-gcc EXEC = hello OBJS = hello.o CFLAGS += LDFLAGS+= –static all: $(EXEC) $(EXEC): $(OBJS) $(CC) $(LDFLAGS) -o $ $(OBJS) clean: -rm -f $(EXEC) *.elf *.gdb *.o 下面我们来简单介绍这个Makefile 文件的几个主要部分: CC 指明编译器 EXEC 表示编译后生成的执行文件名称 OBJS 目标文件列表

嵌入式Linux系统期末考试简答题运用题

简答题与应用题: 1、什么是嵌入式系统?主要有什么特点? 答:以应用为中心,以计算机技术为基础的,并且软件硬件是可剪裁的,能满足应用系统对功能、可靠性、成本、体积、功耗等指标的严格要求的专用计算机系统。他可以实现对其他设备的控制、监视或者管理等功能。 与通用的计算机系统相比,特点为: (1)面向特定应用,一般都有实时要求; (2)集先进性的计算机技术、半导体工艺、电子技术和通信网络技术于一体的并且在不断创新的知识集成系统; (3)嵌入式系统是和具体应用对象有机结合在一起,因而其升级换代也是和具体的产品同步进行的。 (4)嵌入式系统的软硬件设计着重于高效率性。在最大限度满足应用需求的前提下,降低成本是必须要考虑的主要问题。 (5)嵌入式系统软件一般都固化在存储器芯片中。 2、嵌入式系统有哪几个部分? 答:嵌入式系统通常由嵌入式处理机、嵌入式外围设备、嵌入式操作系统和嵌入式应用软件等几大部分组成。3、嵌入式操作系统的作用是什么? *实际是一组软件模块集合 满足多任务处理、稳定运行、安全可靠、占用系统资源少、特有的实时事件处理、便于维护和管理、简洁良好的用户界面 4、什么是Linux?什么是嵌入式Linux? 答:严格来讲,Linux是指由Linux本人维护并不断更新的内核。 一个嵌入式Linux系统指的是一个基于Linux内核的,但不包含有关这个内核的任何专业的库或是用户工具的嵌入式系统。 5、用Linux内核构建嵌入式操作系统有什么优势(优良特性)? 答:(1)程度代码是可以获取的,可靠度高; (2)有完整的源码,软件丰富并且免费; (3)得到众多硬件生产家的广泛支持;包括cpu、计算机外围设备 (4)完善的通信协议、软件标准和文件管理机制; (5)提供完全免费且优秀的开发工具; (6)广泛的社群支持 (7)无需购买licence,是免费的; (8)不依赖特定厂商、供应商; (9)成本相对低廉。 6、RTOS(嵌入式操作系统)强调的实时是什么概念?与中断的关系? 答:实时指的是特定操作所消耗的时间(以及空间)的上限是可预知的。操作系统能够在规定响应时间内完成客户服务程序。中断程序响应中断并完成是在固定时间内。 7、什么是实时Linux?涉及到哪些软硬件内容? 答:实时Linux(RT-Linux)通过在Linux内核与硬件中断之间增加一个精巧的可抢先的实时内核,把标准的Linux 内核作为实时内核的一个进程与用户进程一起调度,标准的Linux内核的优先级最低,可以被实时进程抢断。正常的Linux进程仍可以在Linux内核上运行,这样既可以使用标准分时操作系统即Linux的各种服务, 又能提供低延时的实时环境。它在硬件上涉及到硬件中断,软件上涉及到对高优先级的实时硬件中断的快速响应。能在规定的时间内完成对突发事件的处理的Linux系统; 软件:中断服务程序、进程调度程序,硬件:嵌入式系统所采用的中断管理硬件。 8、试简要说明Linux内核构成,并简要说明各部分的功能? 答: MMU:内存管理单元,完成地址映射(应用虚拟地址方式) VFS:虚拟文件管理系统,提供了统一管理计算机资源的途径。使统一规范计算机资源的使用格式成为可能,方

相关主题
文本预览
相关文档 最新文档