当前位置:文档之家› ARM的嵌入式Linux应用程序开发设计.

ARM的嵌入式Linux应用程序开发设计.

ARM的嵌入式Linux应用程序开发设计.
ARM的嵌入式Linux应用程序开发设计.

ARM的嵌入式Linux应用程序开发设计

嵌入式系统已经渗透到人们工作、生活中的各个领域,嵌入式处理器已占分散处理器市场份额的94%。而嵌入式Linux系统也蓬勃发展,不仅继承了Linux 源码开放、内核稳定高效、软件丰富等优势,还具备支持广泛处理器结构和硬件平台、占有空间小、成本低廉、结构紧凑等特点。1ARM处理器及开发板在嵌入式领域,ARM已取得了极大的成功,造就了IP核商业化、市场化的神话。据统计,全球有103家巨型IT公司在采用ARM技术,20家最大的半导体,一

嵌入式系统已经渗透到人们工作、生活中的各个领域,嵌入式处理器已占分散处理器市场份额的94%。而嵌入式Linux系统也蓬勃发展,不仅继承了Linux源码开放、内核稳定高效、软件丰富等优势,还具备支持广泛处理器结构和硬件平台、占有空间小、成本低廉、结构紧凑等特点。

1 ARM处理器及开发板

在嵌入式领域,ARM已取得了极大的成功,造就了IP核商业化、市场化的神话。据统计,全球有103家巨型IT公司在采用ARM技术,20家最大的半导体,一商中有19家是ARM的用户。ARM系列芯片已经被广泛的应用于移动电活、手持式计算机以及各种各样的嵌入式应用领域,成为世界上销量最大的32位微处理器。ARM已成为业界实际的RISC芯片标准。

ARM系列处理器根据各自特点应用于不同领域。从应用的角度上ARM芯片选择的一般原则:MMU;处理器速度;内置存储器容量;USB接口;GPIO数量;中断控制器;IIS(integrate interface ofsound)音频接口;nWAIT信号;

RTC(real timeclock);LCD控制器;PWM输出等各项指标。

本文使用的是ARM9,其性能远远高过ARM7。开发板使用的是广州斯道信息技术有限公司的开发板,中央处理器是三星公司的S3C2410。ARM9具有以下特点:5级流水线;采用哈佛结构;高速缓存和写缓存的引入;支持MMU。

2 嵌入式Linux系统

嵌入式操作系统是嵌入式应用软件的基础和开发平台,它的出现解决了嵌入式软件开发标准化的难题。嵌入式系统具有操作系统的最基本的功能。目前主流的嵌入式系统有以下儿种:Linux、VxWorks、QNX、Windows CE、Palm OS。

嵌入式Linux操作系统具有一些独特的优势:层次结构及内核完全开放;强大的网络支持功能;具备一整套工具链;广泛的硬件支持特性。

嵌入式Linux系统有很多种。本文使用的是Red Hat9操作系统。

在安装有Windows和Linux双系统的PC上,系统会以Linux的GRUB作为引导装入器来选择启动二者。此时若直接删除Linux分区,会导致系统无法启动Windows或者是需要用行命令才能启动Windows。可以先使用虚拟机安装Linux 系统,练习使用,熟悉后再在PC上安装。

3 应用程序开发

一般嵌入式开发流程如图1所示。

这里省略前面三步,从开发应用程序开始。

3.1 交叉开发环境建立

对嵌入式系统而言,只装备必要的资源是前提条件,这也决定了嵌入式应用程序的开发环境不可能是资源有限的嵌入式系统,只能利用资源丰富的PC开发,然后建立交叉开发平台。

交叉编译器(cross-compiler)是进行交叉平台开发的主要软件工具。它是运行在一种处理器体系结构上,但是可以生成在另一种不同的处理器体系结构上运行的目标代码的编译器。要建立交叉开发环境,主要需要几个工具包:gcc,glib,binutils,gdb等。一般开发板都提供这些工具,如果不是使用的开发板,在网上也是可以下载到全部软件包的。依次将它们安装在PC上即可。

Linux的软件安装方法与Windows不同。Linux中根据不同的压缩打包方式使用不同的命令安装。在安装过程中,由于软件包之间的依赖关系,系统可能会警告还有哪些没有安装,可以忽略这些警告。

3.2 U-Boot

在U-Boot(UniversalBootloader)之前,先介绍一下Bootloader。简单的说,Bootloader就是在操作系统内核运行之前的一段引导程序,类似于PC中的

BIOS。通过它,可以完成对应硬件设备的初始化,并建立内存空间的映射图的

功能,为最终调用系统内核做好准备。

U-Boot是遵循GPL条款的开放源码项目,它不仅仅支持嵌人式Linux系统的引导,U-Boot中Universal的一层含义就是在于U-Boot支持多种嵌入式操作系统,就目前来看,U-Boot对Linux的支持最完善。另外一层含义则是U-Boot

支持多种常用系列的处理器。

U-Boot支持的主要功能:系统引导;基本辅助功能(操作系统接口功能;可灵

活设置、传递多个关键参数给操作系统;支持目标板多种存储方式;CRC32校验);设备驱动;上电自检功能;特殊功能(XIP内核引导)。

U-Boot移植主要分为两步:配置主板和设置Flash和SDRAM时序。

3.3 嵌入式Linux系统内核编译和移植

嵌入式Linux内核的编译都是通过make的不同命令实现的,一般分为3步:(1)内核配置。主要是用户用于为目标板选择处理器架构的选项。内核支持4种方法的配置,虽然界面不同,但功能是一样的,其中make menuconfig使用最广泛;(2)建立依赖关系。在第一次编译时发生,产生".de-pend"文件,运行"make dep"即可;(3)建立内核。这里建立的是压缩的内核映像,使用"make zIm-age"或"make bzImage"。这样就完成了编译,下载在开发板即可。

一般来说与开发板通信有3种方式:网络下载(t ftp,ftp等),串口下载和USB 下载。用tftp下载,需要配置Linux下的tftp服务,然后将PC和开发板直连线(非网线)即可;用串口下载,需要配置Linux下的串日通信工具Minicom。

配置的主要是一些重要参数,如波特率。

但是只有系统内核是不够的,要使系统正常启动,还需要加载文件系统,所以

需要制作文件系统。可以手工制作,但是工作量太大,一般是把现有文件系统

加载到目标板,包括制作文件系统镜像和用NFS加载文件系统方法。

开发板上一般已经烧写好了嵌入式系统内核镜像,文件系统和前面讲的U-Boot,在掌握了烧写方法后,可以自己下载。

3.4 源程序的获得、编译和调试

由于Linux是开源软件,所以运行在其下的应用软件也是开源软件,不管是哪

一类的都免费获得源代码。可以直接在已有的源代码上进行修改得到符合要求的代码。论文中使用的就是已有的源代码,如图2所示。

Linux操作系统支持汇编,C,C++,Basic,Fortran,Pascal,JAVA,PHP等多种编程语言。其下的文本编辑器是Vi和Emacs,二者均有强大的编辑功能。图形界面的编程用的是Qt或是MiniGUI。利用以上软件,跟在Windows和其他操作系统下的软件编写方法完全相同。

编写软件的过程与在其他系统下没有什么不同,不同的地方在与编译和调试。嵌入式中称之为交叉编译和交叉调试。

交叉编译就是将在PC上编写好的源代码经过编译、链接生成可以在嵌入式系统上运行的代码,如图2所示。

在交叉调试中,调试器和被调试程序分别在PC系统和嵌入式系统中,这是与一般调试不同的地方。交叉调试一般分为软件调试和硬件调试。

软件调试插入调试桩的方式进行。典型的是GDB调试器,它分为GdbServer和GdbClient,前者作为调试桩安装在arm的嵌入式系统中,后者驻于本地PC 中,二者可通过串口、网口、并口通信。

硬件调试一般都使用的是仿真器,常用的如ROMMonitor、ROMEmulator、In-CircuitEmulator和In-CircuitDebugger。硬件调试功能更强大,性能更优秀,但是有的价格昂贵,额外的设备增加了成本。而ARM的JTAG端口实现在CPU内部调试,通过端口发送命令和接收信息。

JTAG采用的主要技术为边界扫描技术,它的基本思想就是在靠近芯片的输入输出管脚上增加一个移位寄存器单元。当芯片处于调试状态时候,这些边界扫描寄存器可以将芯片和外围的输入输出隔离开来。通过这些边界扫描寄存器单元,可以实现对芯片输入输出信号的观察和控制,它提供了一个便捷的方式用于观测和控制所需要调试的芯片。通过JTAG接口可以方便地对目标系统进行测试,同时,还可以实现Flash的编程,是非常受人欢迎的调试方式。

主机从网络下载mp3格式歌曲,通过串口(或tftp)传送到开发板上,用经过调试的播放器,结合教研室开发的功率放大器,很好的实现了播放音频的功能。

在此基础上,还可以进一步开发视频播放功能。除了播放器应用软件,还可以根据存储器的大小增加其他应用程序。

嵌入式Linux应用程序设计试题

嵌入式Linux应用程序设计(试题) 1、嵌入式linux操作系统的特点(多选) ABCDE A、低廉性 B、广泛性 C、可移植性好 D、良好的网络支持 E、实时性好 2、Linux的基本思想有两点:A、一切都是文件;B、每个软件都有确定的用途。 3、嵌入式Linux系统构成:嵌入式微处理器,外围硬件设备,嵌入式操作系统,用户应用程序。 4、硬盘分区一般分为:主分区,扩展分区,逻辑分区,交换分区 5、主分区和扩展分区的最大的区别:C A、大小不一样 B、挂载点不一样 C、主分区的作用就是用来进行启动操作系统的,因此引导程序都应该存放在主分区上。 D、主分区在硬盘物理位置的最前面 6、Linux分区类型默认的是:C A. vfat B. ext2/ext3 C. swap D. dos 7、如何从当前系统中卸载一个已装载的文件系统 A A. umount [挂载点目录] B. dismount C. mount –u [挂载点目录] D. 从 /etc/fstab 中删除这个文件系统项 8、用户切换指令是: A A、su B、sudo C、useradd D、userdel 9、查看当前系统中的进程指令 A A、ps B、kill C、cat D、man 10、下面杀死一个ID号为9号的进程的操作正确的是 C A、ps -ef B、kill 9 C、kill -9 9 D、rm 9 11、使用重定向来把ls输出保存到文件test.txt中:A A、ls > test.txt B、ls < test.txt C、ls | test.txt D、ls | grep test.txt 12、使用重定向来把test.txt文件中内容输出:B A、more > test.txt B、more < test.txt C、more | test.txt D、more | grep test.txt 13、解压文件tar.tar.gz:C A、tar -zxvf tar.tar.gz B、tar -jxvf tar.tar.gz C、tar -cxvf tar.tar.gz D、tar -jvf tar.tar.gz 14、把目录/aaa内文件及目录的压缩到文件tar.tar.gz:D A、tar -zxvf tar.tar.gz /aaa B、tar -jxvf tar.tar.gz /aaa C、tar -cxvf tar.tar.gz /aaa D、tar -cvf tar.tar.gz /aaa 15、vi 有几种模式:三种模式 16、vi中的操作指令: :w 保存 :q 退出 :q! 强行退出 :wq 保存退出 :w [filename] 保存到filename文件中 :set nu 显示行号,设定之后,会在每一行的前面显示对应行号

设计模式优缺点及应用场景整理

看完发现有不太对的地方告诉我下 各设计模式优缺点总结 1桥接模式 优点:1 将实现予以解耦,让它和界面之间不再永久绑定 2 抽象和实现可以独立扩展,不会影响到对方 3 对于“具体的抽象类”所做的改变,不会影响到客户。 缺点:1. 增加了复杂度 用途:1. 适合使用在需要跨越多个平台的图形和窗口上 2. 当需要用不同的方式改变接口和实现时,你会发现桥接模式很好用。 具体实例:跨平台的软件,不同电视机和不同的遥控器。 2生成器模式(建造者模式) 优点: 1.将一个复杂对象的创建过程封装起来 2.允许对象通过多个步骤来创建,并且可以改变创建过程 3.向客户隐藏内部的表现 4.产品的实现可以被替换,因为客户只看到一个抽象的接口 缺点: 1.与工厂模式相比,采用生成器模式创建对象更复杂,其客户,需要更多的知识领域。用处: 用来创建组合结构。 典型例子: 想不起典型例子 还是扯那个画小人,构建小人分画头,画身体,画双手,黄双脚等不同构建部分,全部放在一起构建。 3职责链模式 优点: 1.将请求的发送者和接收者解耦 2.可以简化你的对象,因为它不需要知道链的结构 3.通过改变链内的成员或调动他们的次序,允许你动态地新增或删除责任 缺点: 1.并不保证请求一定会被执行,如果没有任何对象处理它的话,它可能会落到链尾端 之外 2.可能不容观察运行时的特征,有碍于除错。 用途:

经常被使用在窗口系统中,处理鼠标和键盘之类的事件。 当算法牵涉到一种链型运算,而且不希望处理过程中有过多的循环和条件选择语句,并且希望比较容易的扩充文法,可以采用职责链模式。 1)有多个对象处理请求,到底怎么处理在运行时确定。 2)希望在不明确指定接收者的情况下,向多个对象中的一个提交请求。 3)可处理一个请求的对象集合应该被动态指定。 典型例子: 一个请求发送给前台,前台表示我无权管理,将请求传递给财务部门,财务部门再……4蝇量模式(享元) 优点: 1.减少运行时对象实例的个数,节省内存 2.将许多“虚拟”对象的状态集中管理 缺点: 一旦你实现了它,单个的逻辑实现将无法拥有独立而不同的行为 用途: 当一个类有许多的实例,而这些实例能被同一方法控制的时候,我们就可以使用蝇量模式。(这话什么意思啊,HF书上原话,是这话有问题还是我理解能力有问题?!) 具体场景: 五子棋中的黑白子,改变坐标状态(x,y),但用同一个实体。 5解释器模式(这个模式我真没仔细看) 优点: 1.将每一个语法规则表示成一个类,方便事先语言。 2.因为语法由许多类表示,所以你可以轻易地改变或扩展此语言 3.通过在类结构中加入新的方法,可以在解释的同时增加新的行为,例如打印格式的梅花或者进行复制的程序验证。 缺点: 当语法规则数目太大时,这个模式可能会变得非常繁琐。 用途: 1.当你需要实现一个简答的语言时,使用解释器 2.当你有一个简单的语法,切简单比效率更重要时,使用解释器 3.可以处理脚本语言和编程语言 典型例子:正则表达式 6中介者模式 优点: 1.通过将对象彼此解耦,可以增加对象的复用性。 2.通过将控制逻辑集中,可以简化系统维护

嵌入式Linux应用程序开发报告

湖南工业大学 课程设计 资料袋 计算机与通信学院学院(系、部)2015~ 2016 学年第一学期 课程名称嵌入式Linux应用程序开发指导教师叶伟琼职称副教授 学生姓名皓月叶舞专业班级通信工程12XX 学号124082004XX 题目AD驱动 成绩起止日期2015 年12 月14 日~2015年12月20 日 目录清单 序号材料名称资料数量备注 1 课程设计任务书 1 2 课程设计说明书 1 3 课程设计图纸10 张4 5 6

湖南工业大学 课程设计任务书 2015 —2016学年第1 学期 计算机与通信学院通信工程专业12XX 班 课程名称:嵌入式Linux应用程序开发 设计题目: AD驱动 完成期限:自2015 年12 月14 日至2015 年12 月20 日共 1 周 内容及任务一、设计的主要技术参数 数模转换、数模编程 二、设计任务(内容) 1、完成相关编程模拟量输入采集和转换 2、将结果显示 3、测试并运行,改变模拟量输入 4、验证 5、完成课程设计说明书 三、设计工作量 1周完成 进度安排 起止日期工作内容 12月14日分组、任务分配、课题理解 12月15日-12月17日功能分析、程序设计 12月18日-12月19日实验验证和测试 12月20 日总结、书写实验报告 参考资料[1] 王实甫. 嵌入式Linux系统设计与实例开发. 吉林大学出版社,2004年 [2] 田丰兴. 嵌入式控制系统. 北京航空航天大学出版社,2002年 指导教师(签字):年月日系(教研室)主任(签字):年月日

湖南工业大学 嵌入式Linux应用程序设计 课程设计说明书 AD驱动 起止日期: 2015年 12月14日至 2015年 12月 20 日 学生姓名皓月叶舞 班级通信1204班 学号124082004XX 成绩 指导教师(签字) 计算机与通信学院 2015年 12月20日

嵌入式linux简单程序

1、demo demo.c #ifndef __KERNEL__ #define __KERNEL__ #endif #ifndef MODULE #define MODULE #endif #include #include //模块相关 #include //内核相关 #include //file_operations #include //ssize_t定义文件 #include //__init和__exit相关 #include #include #include //copy_to_user()和copy_from_user()在此定义 #include /*相关宏定义*/ #define DEVICE_NAME "demo"//设备名称 #define demo_MAJOR 88//主设备号 #define demo_MINOR 0//次设备号 #define ERROR -1 static int MAX_BUF_LEN=1024;//数值的最大值 static int WRI_LENGTH=0; /*结构体的定义*/ static int demo_major=demo_MAJOR; struct demo_dev { struct cdev cdev; char drv_buf[1024]; }; struct demo_dev * demo_devp; /****************************************************************************** *******/ /*demo设备文件打开*/ int demo_open(struct inode * inode,struct file *filp) { filp->private_data=demo_devp;

嵌入式Linux系统的搭建与配置过程

1.摘要 (2) 2.UBOOT,LINUX内核,文件系统的介绍及相互关系..3 2.1嵌入式系统简介 (3) 2.2嵌入式Linux概述 (3) 2.3UBOOT简介 (4) 3.UBOOT的启动过程 (6) 4.内核的主要功能和裁剪 (7) 4.1Linux的编译 (7) 4.2嵌入式Linux的配置和剪裁 (8) 5.文件系统的制作过程 (8) 6.交叉编译器的搭建和环境变量的设置 (9) 7.驱动程序的编写过程与关键点 (11) 7.1Linux网络驱动程序的结构 (11) 7.2网络驱动程序的基本方法 (12) 7.3网络驱动程序中用到的数据结构 (12) 7.4常用的系统支持 (14) 7.5编写Linux网络驱动程序中需要注意的问题 (18) 8.参考文献 (20)

嵌入式系统是以应用为中心,以计算机为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序4部分组成,用于实现对其它设备的控制、监视或管理等功能。其广泛应用于控制领域、消费电子产品等行业,已成为现代电子领域的重要研究方向之一。嵌入式Linux的研究已经成为当前信息技术研究的热点,它的应用蕴含着巨大的商业价值,并且己经广泛的应用于各种信息家电、通讯产品、工业控制中。论文首先介绍了ARM和嵌入式Linux操作系统的特点和当前的发展概况。然后阐述了嵌入式Linux 开发流程以及移植到具体硬件平台需要完成的工作,如U-Boot的移植、Linux内核的编译与裁剪、文件系统的制作、驱动程序的编写等。 关键字:嵌入式;ARM;嵌入式Linux;Linux内核;驱动程序

ARM的嵌入式Linux应用程序开发设计

ARM的嵌入式Linux应用程序开发设计 嵌入式系统已经渗透到人们工作、生活中的各个领域,嵌入式处理器已占分散处理器市场份额的94%。而嵌入式Linux系统也蓬勃发展,不仅继承了Linux 源码开放、内核稳定高效、软件丰富等优势,还具备支持广泛处理器结构和硬件平台、占有空间小、成本低廉、结构紧凑等特点。1ARM处理器及开发板在嵌入式领域,ARM已取得了极大的成功,造就了IP核商业化、市场化的神话。据统计,全球有103家巨型IT公司在采用ARM技术,20家最大的半导体,一 嵌入式系统已经渗透到人们工作、生活中的各个领域,嵌入式处理器已占分散处理器市场份额的94%。而嵌入式Linux系统也蓬勃发展,不仅继承了Linux源码开放、内核稳定高效、软件丰富等优势,还具备支持广泛处理器结构和硬件平台、占有空间小、成本低廉、结构紧凑等特点。 1 ARM处理器及开发板 在嵌入式领域,ARM已取得了极大的成功,造就了IP核商业化、市场化的神话。据统计,全球有103家巨型IT公司在采用ARM技术,20家最大的半导体,一商中有19家是ARM的用户。ARM系列芯片已经被广泛的应用于移动电活、手持式计算机以及各种各样的嵌入式应用领域,成为世界上销量最大的32位微处理器。ARM已成为业界实际的RISC芯片标准。 ARM系列处理器根据各自特点应用于不同领域。从应用的角度上ARM芯片选择的一般原则:MMU;处理器速度;内置存储器容量;USB接口;GPIO数量;中断控制器;IIS(integrate interface ofsound)音频接口;nWAIT信号; RTC(real timeclock);LCD控制器;PWM输出等各项指标。 本文使用的是ARM9,其性能远远高过ARM7。开发板使用的是广州斯道信息技术有限公司的开发板,中央处理器是三星公司的S3C2410。ARM9具有以下特点:5级流水线;采用哈佛结构;高速缓存和写缓存的引入;支持MMU。 2 嵌入式Linux系统 嵌入式操作系统是嵌入式应用软件的基础和开发平台,它的出现解决了嵌入式软件开发标准化的难题。嵌入式系统具有操作系统的最基本的功能。目前主流的嵌入式系统有以下儿种:Linux、VxWorks、QNX、Windows CE、Palm OS。 嵌入式Linux操作系统具有一些独特的优势:层次结构及内核完全开放;强大的网络支持功能;具备一整套工具链;广泛的硬件支持特性。 嵌入式Linux系统有很多种。本文使用的是Red Hat9操作系统。 在安装有Windows和Linux双系统的PC上,系统会以Linux的GRUB作为引导装入器来选择启动二者。此时若直接删除Linux分区,会导致系统无法启动

嵌入式Linux系统开发标准教程

嵌入式Linux系统开发标准教程 目录 版权信息 内容简介 编辑推荐 目录 编辑本段版权信息 书名: 嵌入式Linux系统开发标准教程 作者:华清远见嵌入式培训中心 出版社:人民邮电出版社 出版时间: 2009 ISBN: 9787115194756 开本:16 定价: 45.00 元 编辑本段内容简介 《嵌入式Linux系统开发标准教程(第2版)》以嵌入式Linux系统开发流程为主线,剖析了嵌入式Linux系统构建的各个环节。《嵌入式Linux 系统开发标准教程(第2版)》从嵌入式系统基础知识和Linux编程技术讲起,接下来介绍了嵌入式Linux交叉开发环境的建立,然后分析了嵌入式Linux系统的引导程序、内核和文件系统三大组成部分,最后介绍了嵌入式Linux系统集成和部署的方法。 《嵌入式Linux系统开发标准教程(第2版)》先以ARM平台为例,对U-Boot和Linux内核启动过程做了详细分析,为学习嵌入式Linux系统开

发奠定基础,然后从概念上阐述了嵌入式Linux系统开发流程,实践上提供了具体的操作步骤,使读者能够深入理解嵌入式Linux系统的构建。 《嵌入式Linux系统开发标准教程(第2版)》可作为高等院校电子类、电气类、控制类等专业高年级本科生、研究生学习嵌入式Linux的教材,也可供希望进入嵌入式领域的科研和工程技术人员参考使用,还可作为嵌入式培训班的教材和教辅材料。 编辑本段编辑推荐 众多专家、厂商联合推荐,业界权威培训机构的经验总结。《嵌入式Linux系统开发标准教程(第2版)》配套PPT嵌入式专家讲座视频鞂式图书样章。嵌入式系统概述、ARM嵌入式处理器、Linux编程环境,嵌入式交叉开发环境、交叉杆塔工具链、Bootloader、配置编译Linux内核、Liux内核移植、内核高度技术、制作根文件系统、开源软件的应用、系统集成测试、部署Linux系统。 编辑本段目录 第1章嵌入式系统概述 1.1嵌入式系统的定义与特点 1.2常见的嵌入式操作系统 1.3嵌入式Linux的发展历史 1.4初步认识嵌入式Linux开发环境 1.5嵌入式Linux系统开发要点 第2章ARM嵌入式处理器 2.1初识ARM 2.1.1ARM公司简介 2.1.2ARM体系结构基础 2.1.3Linux与ARM处理器 2.2ARM指令集 2.2.1ARM处理器的指令集概述 2.2.2ARM指令寻址方式 2.2.3Thumb指令概述 2.3典型ARM处理器简介 2.3.1AtmelAT91RM9200 2.3.2SamsungS3C2410 2.3.3TIOMAP1510/1610系列 2.3.4Freescalei.Max21 2.4典型的嵌入式系统开发平台——三星S3C2410开发板

几种常见的教学设计模式及其比较

几种常见的教学设计模式及其比较 教学设计理论是在其他相关学科理论如学习理论、教学理论、传播理论、系统理论等研究的基础上建立并发展起来的。但是,更为重要的是进一步扩展到实践应用的领域,用正确的理论指导实践。许多教学设计专家把教学设计的理论应用到实践中,形成一系列过程设计模式。这些模式一方面综合了理论与技术等各方面的因素,另一方面简化了复杂的教学理论以及教学过程各要素之间的关系,因此,设计过程模式也成为教学设计理论的重要组成部分。 传统教学设计观念把教学设计过程看作纯粹是个人经验的产物,缺少一定的理论基础。现代教学设计模式则已经跳出这种传统框架,反映了现代教学设计理论与实践的状况,重点不再限于描述教学设计的具体步骤,而成为连接理论研究与实践操作之间的桥梁,其主要功能是便于教学理论在教学设计中的运用。 教学设计在实践上大致经历了四个不同阶段,体现了不同的教学理念。第一阶段把教学设计看成是应用科学。以行为主义心理学为基础,认为任何学习的结果都是由一系列预先设置的学习目标所导致,教学设计的主要任务就是把学习分解成各种类型的行为目标,根据这些行为目标选择适当的媒体和方法,为教学提供一种可行的教学序列。其倡导者大多是心理学家,如斯金纳、梅格、加涅等。第二阶段倾向于用美学的方法对教学进行设计,重视美学形式对学生的影响,强调用美学效果吸引学习者的兴趣。其倡导者是一些富有创造性的媒体制造者。这一阶段人们已经认识到教学中学习者情感尤其是兴趣的发展。第三阶段教学设计侧重于解决问题的方法和过程。主张教学设计不应该根据预先确定的目标制定机械的教学步骤,因为学习并不都是像行为主义学习理论描述的那样可以通过简单的刺激-反应过程进行。学习应通过学习者自行探究和解决问题而进行,因而强调设计的探究、协作和创造性。这种教学设计过程确立了更为复杂的学习目标,以使学习者成为可以解决问题的探究者。第四阶段,教学设计强调学习是一个动态的建构过程。尤其是进入九十年代以来,教学设计者和教师们逐渐意识到学习往往是个人的事情,学习是否成功与学习者先前已有的知识和经验有关,而且学生获取知识和经验的范围不断增加和扩展,更新和变化的速度也大大加快。教学设计目的不再是建立一系列学习步骤,更重要的是帮助学生建构自己的知识和世界。教学设计者和教师分别变成了学习背景的设计者和说明者。 以上可以看出教学设计过程模式的总的发展趋势是由原来的单一的应用科学形式转向了多样性的综合化形式。但不论怎样变化,教学设计过程都必须清楚地解决四个基本问题,一是学习者的特点是什么?二是教学的目标是什么?三是教学资源和教学策略是什么?四是怎样评价和修改?对这四个基本问题的处理和展开发生不同,就形成了众多的教学设计过程模式。 1.迪克—凯瑞的系统教学设计模式 迪克—凯瑞(W. Dick & L. Carey)的教学设计过程模式最为突出,是典型的基于行为主义的教学系统开发模式,该模式从确定教学目标开始,到终结性评价

嵌入式Linux应用软件开发流程

从软件工程的角度来说,嵌入式应用软件也有一定的生命周期,如要进行需求分析、系统设计、代码编写、调试和维护等工作,软件工程的许多理论对它也是适用的。 但和其他通用软件相比,它的开发有许多独特之处: ·在需求分析时,必须考虑硬件性能的影响,具体功能必须考虑由何种硬件实现。 ·在系统设计阶段,重点考虑的是任务的划分及其接口,而不是模块的划分。模块划分则放在了任务的设计阶段。 ·在调试时采用交叉调试方式。 ·软件调试完毕固化到嵌入式系统中后,它的后期维护工作较少。 下面主要介绍分析和设计阶段的步骤与原则: 1、需求分析 对需求加以分析产生需求说明,需求说明过程给出系统功能需求,它包括:·系统所有实现的功能 ·系统的输入、输出 ·系统的外部接口需求(如用户界面) ·它的性能以及诸如文件/数据库安全等其他要求 在实时系统中,常用状态变迁图来描述系统。在设计状态图时,应对系统运行过程进行详细考虑,尽量在状态图中列出所有系统状态,包括许多用户无需知道的内部状态,对许多异常也应有相应处理。 此外,应清楚地说明人机接口,即操作员与系统间地相互作用。对于比较复杂地系统,形成一本操作手册是必要的,为用户提供使用该系统的操作步骤。为使系统说明更清楚,可以将状态变迁图与操作手册脚本结合起来。

在对需求进行分析,了解系统所要实现的功能的基础上,系统开发选用何种硬件、软件平台就可以确定了。 对于硬件平台,要考虑的是微处理器的处理速度、内存空间的大小、外部扩展设备是否满足功能要求等。如微处理器对外部事件的响应速度是否满足系统的实时性要求,它的稳定性如何,内存空间是否满足操作系统及应用软件的运行要求,对于要求网络功能的系统,是否扩展有以太网接口等。 对于软件平台而言,操作系统是否支持实时性及支持的程度、对多任务的管理能力是否支持前面选中的微处理器、网络功能是否满足系统要求以及开发环境是否完善等都是必须考虑的。 当然,不管选用何种软硬件平台,成本因素都是要考虑的,嵌入式Linux 正是在这方面具有突出的优势。 2、任务和模块划分 在进行需求分析和明确系统功能后,就可以对系统进行任务划分。任务是代码运行的一个映象,是无限循环的一段代码。从系统的角度来看,任务是嵌入式系统中竞争系统资源的最小运行单元,任务可以使用或等待CPU、I/O设备和内存空间等系统资源。 在设计一个较为复杂的多任务应用系统时,进行合理的任务划分对系统的运行效率、实时性和吞吐量影响都极大。任务分解过细会不断地在各任务之间切换,而任务之间的通信量也会很大,这样将会大大地增加系统的开销,影响系统的效率。而任务分解过粗、不够彻底又会造成原本可以并行的操作只能按顺序串行执行,从而影响系统的吞吐量。为了达到系统效率和吞吐量之间的平衡折中,在划分任务时应在数据流图的基础上,遵循下列步骤和原则:

嵌入式Linux应用完全开发手册

嵌入式Linux应用完全开发手册 终端概述 在Linux中,TTY(终端)是一类字符设备的统称,包括了3中类型:控制台、串口、伪终端。 控制台:供内核使用的终端为控制台。控制台在Linux启动时,通过命令console=…指定,如果没有指定控制台,系把第一个注册的终端作为控制台。控制台是一个虚拟的终端,它必须映射到真正的终端上。 控制台可以简单的理解为printk输出的地方。 控制台是个只输出的设备,功能很简单,只能在内核中访问。 进程四要素 █有段程序供其执行。这段 程序不一定是某个进程所专 有,可以与其它进程共用。 █有进程专用的内核空间 堆栈。 █在内核中有一个 task_struct数据结构,即通 常所说的“进程控制块”。有 了这个数据结构,进程才能 成为内核调度的一个基本单位接受内核的调度。 █有独立的用户空间。 进程调度 █调度概念:从就绪的进程中选出最合适的一个进程执行。 █调度策略 -SCHED_NORMAL(SCHED_OTHER):普通的分时进程。

- SCHED_FIFO:先进先出的实时调度 - SCHED_RR:时间片轮转实时进程 - SCHED_BATCH:批处理进程 - SCHED_IDLE:只有在系统空闲时,才能够被调度执行的进程。 进程管理 █特点:动态性、并发性、独 立性、异步性 编译说明 █编译选项: -c编译不链接。 -g 带有调试信息。 -I .h文件所在目录 -预处理:语法分析,例如:将宏定义展开。 -编译:*.c 文件编译成*.s文件。 -汇编:*.s 文件编译成*.o文件。 -链接:多个*.o 文件链接成执行文件。 █Linux系统调用和C库 Linux系统调用是依赖于系统的,而C库在任何操作系统下,调用都是相同的。

软件设计模式及其使用

龙源期刊网 https://www.doczj.com/doc/7b15881831.html, 软件设计模式及其使用 作者:罗兴荣 来源:《数字技术与应用》2013年第04期 摘要:在计算机软件快速发展的今天,软件设计模式在计算机程序设计的运用中越来越重要。软件设计模式按其完成工作的种类可分为了创建型的模式、结构型的模式以及行为型的模式。在实际应用中根据分析研究问题的结果选择和使用合适的软件设计模式。 关键词:软件设计设计模式模式分类模式选择模式使用 中图分类号:P631 文献标识码:A 文章编号:1007-9416(2013)04-0194-01 关于模式这个概念,最早的时候是在城市建筑领域当中出现的,而Christopher Alexander[1]所写的一本关于建筑的书中对模式这一概念有明确的定义,其大概含义是说每一个模式都是描述我们周围发生的事情,并对发生的问题进行合理的解释,使得利用这个模式就可以重复的解决类似的问题。Christopher Alexander利用他所得出的模式这个概念解决了建筑领域中的一些问题,模式这一概念发展到现在,已经逐渐成为计算机领域当中独有的概念了。 1 软件设计模式分类 对软件设计模式的分类有许多不同的方法,在这里主要是根据模式在计算机软件设计中能够完成何种种类的工作来决定的,大致可以分为创建型的模式、结构型的模式以及行为型的模式这三种类型。而当模式运用于不同因素的时候又可以分为不同的类型,运用于类的时候可以分为类模式,运用于对象的时候可以分为对象模式。所谓类模式就是处理系统中的类与子类之间关系的模式,这些关系可以通过继承的形式来建立,静态的类模式在进行编译的时候便要确定下来;所谓对象模式,就是处理对象之间关系的模式,这些关系在系统运行的时候是能够不断变化的,所以对象模式是动态的模式。 第一,创建型的软件设计模式。创建型的设计模式是和对象的创建有着十分必然的关系,也就是说,在描述创建对象的时候,要将对象创建过程的具体细节进行隐藏设计,使得系统程序代码能够不依赖具体的对象。所以当我们需要在系统中增加一个新的对象的时候,是不需要修改系统的源代码的。创建型的类模式需要将对象当中的部分在子类当中进行延迟性的创建工作,而创建型的对象模式则是将对象的部分在另一个对象中进行延迟性的创建。 第二,结构型的软件设计模式。结构型的软件设计模式是处理类的和处理对象的设计模式的组合形式,也就是能够描述类与对象之间的大的结构如何组建起来,并且在组建之后还能够拥有新的功能的一种模式。结构型的类模式是采用继承性的机制来对类进行组合。而结构型的对象模式则是能够描述对象之间的组装方式。

嵌入式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、嵌入式操作系统的作用是什么?

嵌入式软件开发流程图

嵌入式软件开发流程 一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图1.1所示。 图1.1 嵌入式系统开发流程图 在系统总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定的硬件才能实现,因此需要进行处理器选型,以更好地满足产品的需求。另外,对于有些硬件和软件都可以实现的功能,就需要在成本和性能上做出抉择。往往通过硬件实现会增加产品的成本,但能大大提高产品的性能和可靠性。 再次,开发环境的选择对于嵌入式系统的开发也有很大的影响。这里的开发环境包括嵌入式操作系统的选择以及开发工具的选择等。比如,对开发成本和进度限制较大的产品可以选择嵌入式Linux,对实时性要求非常高的产品可以选择Vxworks等。

1.2 嵌入式软件开发概述 嵌入式软件开发总体流程为图4.15中“软件设计实现”部分所示,它同通用计算机软件开发一样,分为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。其中嵌入式软件需求分析与硬件的需求分析合二为一,故没有分开画出。 由于在嵌入式软件开发的工具非常多,为了更好地帮助读者选择开发工具,下面首先对嵌入式软件开发过程中所使用的工具做一简单归纳。 嵌入式软件的开发工具根据不同的开发过程而划分,比如在需求分析阶段,可以选择IBM的Rational Rose等软件,而在程序开发阶段可以采用CodeWarrior(下面要介绍的ADS 的一个工具)等,在调试阶段所用的Multi-ICE等。同时,不同的嵌入式操作系统往往会有配套的开发工具,比如Vxworks有集成开发环境Tornado,WindowsCE的集成开发环境WindowsCE Platform等。此外,不同的处理器可能还有对应的开发工具,比如ARM的常用集成开发工具ADS、IAR和RealView等。在这里,大多数软件都有比较高的使用费用,但也可以大大加快产品的开发进度,用户可以根据需求自行选择。图4.16是嵌入式开发的不同阶段的常用软件。 图1.2 嵌入式开发不同阶段的常用软件 嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分,其中又可以分为编译和调试两部分,下面分别对这两部分进行讲解。 1.交叉编译 嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。在第3章中已经提到,编译的最主要的工作就在将程序转化成运行该程序的CPU所能识别的机器代码,由于不同的体系结构有不同的指令系统。因此,不同的CPU需要有相应的编译器,而交叉编译就如同翻译一样,把相同的程序代码翻译成不同CPU的对应可执行二进制文件。要注意的是,编译器本身也是程序,也要在与之对应的某一个CPU平台上运行。嵌入式系统交叉编译环境如图4.17所示。

嵌入式linux应用程序开发期末考试题库及答案

1下列哪一项不是嵌入式操作系统的特点D A、占有资源少 B、低成本 C、高可靠性 D、交互性 2下列哪一项不是嵌入式系统的基本要素C A、嵌入性 B、专用性 C、通用性 D、计算机系统 3现阶段嵌入式系统发展的主要标志为D A、以单芯片为核心的可编程控制器 B、以嵌入式CPU为基础、以简单操作系统为核心 C、嵌入式操作系统 D、Internet 4下面哪项不是嵌入式系统的特点D A、面向特定应用 B、软件一般都固化在存储器芯片或单片机本身中,而不存储于磁盘中 C、代码尤其要求高质量、高可靠性 D、具备二次开发能力 5下面哪项不是ARM处理器的特点D A、支持Thumb(16位)/ARM(32位)双指令集 B、兼容8位/16位器件 C、指令长度固定 D、大量使用RAM,指令执行速度更快 6下面哪项不是ARM处理器的特点B A、大多数数据操作都在寄存器中完成 B、采用CISC指令集 C、寻址方式灵活简单,执行效率高 D、体积小、低功耗、低成本、高性能 7下面哪项不属于ARM处理器模式A A、管理模式(root) B、用户模式(usr) C、快速中断模式(fiq) D、外部中断模式(irq) 8下面哪项为错误的说法A A、冯·诺依曼结构共用数据存储空间和程序存储空间,不共享存储器总线 B、哈佛结构有分离的数据和程序空间及分离的访问总线 C、哈佛结构在指令执行时,取址和取数可以进行并行操作 D、哈佛结构指令执行时效率更高 9采用下列哪项更有利于开发微型嵌入式应用系统B A、脚本程序语言 B、C语言或汇编语言 C、C++或SQL语言 D、HTML或XML语言 10下面哪项为一般嵌入式系统开发中不具备的环节B A、系统总体开发 B、数据库设计 C、嵌入式硬件开发 D、嵌入式软件开发 11在嵌入式系统开发过程中下面哪项为错误的说法B A、对于有些硬件和软件都可以实现的功能,需要在成本和性能上做出抉择 B、对实时性要求非常高的产品可以选择嵌入式Linux开发环境 C、嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分 D、嵌入式系统的软件开发可分为交叉编译和交叉调试两部分 12对于Linux操作系统,下面哪项说法是错误的D A、是一种开源的操作系统 B、提供了强大的应用程序开发环境 C、可以免费使用 D、不支持Sparc硬件平台 13使用命令chmod的数字设置,可以改变C A、文件的访问特权 B、目录的访问特权 C、文件/目录的访问特权 14修改文件a.txt的权限,使每个用户都可以读取和写入这个文件,相应命令为A A、chmod666a.txt B、chmod777a.txt C、chmod755a.txt D、chmod555a.txt 15某文件的组外成员的权限为只读;所有者有全部权限;组内的权限为读与写,则该文件的权限为D A、467 B、674 C、476 D、764

八种架构设计模式及其优缺点

八种架构设计模式及其优缺点概述(上) 1. 什么是架构 我想这个问题,十个人回答得有十一个答案,因为另外的那一个是大家妥协的结果。哈哈,我理解,架构就是骨架,如下图所示: 人类的身体的支撑是主要由骨架来承担的,然后是其上的肌肉、神经、皮肤。架构对于软件的重要性不亚于骨架对人类身体的重要性。 2. 什么是设计模式

这个问题我问过的面试者不下于数十次,回答五花八门,在我看来,模式就是经验,设计模式就是设计经验,有了这些经验,我们就能在特定情况下使用特定的设计、组合设计,这样可以大大节省我们的设计时间,提高工作效率。 作为一个工作10年以上的老码农,经历的系统架构设计也算不少,接下来,我会把工作中用到的一些架构方面的设计模式分享给大家,望大家少走弯路。总体而言,共有八种,分别是: 1.单库单应用模式:最简单的,可能大家都见过 2.内容分发模式:目前用的比较多 3.查询分离模式:对于大并发的查询、业务 4.微服务模式:适用于复杂的业务模式的拆解 5.多级缓存模式:可以把缓存玩的很好 6.分库分表模式:解决单机数据库瓶颈 7.弹性伸缩模式:解决波峰波谷业务流量不均匀的方法之一 8.多机房模式:解决高可用、高性能的一种方法 3. 单库单应用模式这是最简单的一种设计模式,我们的大部分本科毕业设计、一些小的应用,基本上都是这种模式,这种模式的一般设计见下图:

如上图所示,这种模式一般只有一个数据库,一个业务应用层,一个后台管理系统,所有的业务都是用过业务层完成的,所有的数据也都是存储在一个数据库中的,好一点会有数据库的同步。虽然简单,但是也并不是一无是处。

优点:结构简单、开发速度快、实现简单,可用于产品的第一版等有原型验证需求、用户少的设计。 缺点:性能差、基本没有高可用、扩展性差,不适用于大规模部署、应用等生产环境。 4. 内容分发模式基本上所有的大型的网站都有或多或少的采用这一种设计模式,常见的应用场景是使用CDN技术把网页、图片、CSS、JS等这些静态资源分发到离用户最近的服务器。这种模式的一般设计见下图:

嵌入式Linux系统

10-1 嵌入式Linux系统概述 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统,对功能、可靠性、成本、体积、功耗等方面有特殊要求的专用计算机系统。 Linux在所有的操作系统中,Linux 是一个发展最快、应用最为广泛的操作系统。 所谓嵌入式Linux,是指Linux 在嵌入式系统中应用,而不是什么嵌入式功能。实际上,嵌入式Linux 和Linux 是同一件事。 10-2 Linux启动过程综述 一. Bootloader 二.Kernel引导入口 三.核心数据结构初始化--内核引导第一部分 四.外设初始化--内核引导第二部分 五.init进程和inittab引导指令 六.rc启动脚本 七.getty和login 八.bash 附:XDM方式登录 Bootloader 简单地说,BootLoader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。 在Alpha/AXP平台上引导Linux通常有两种方法,一种是由MILO及其他类似的引导程序引导,另一种是由Firmware直接引导。MILO功能与i386平台的LILO相近,但内置有基本的磁盘驱动程序(如IDE、SCSI等),以及常见的文件系统驱动程序(如ext2,iso9660等),firmware有ARC、SRM两种形式,ARC具有类BIOS界面,甚至还有多重引导的设置;而SRM

嵌入式Linux应用程序开发测试题

嵌入式Linux应用程序开发测试题(14级嵌入式方向专用) 一、选择题 1、下列哪一项不是嵌入式操作系统的特点D A、占有资源少 B、低成本 C、高可靠性 D、交互性 2、在Linux内核配置过程中,下面哪项命令采用的是基于图形窗口模式的配置 界面C A、make config B、make menuconfig C、make xconfig D、make oldconfig 3、在Linux内核配置过程中,下面哪项命令建立依赖关系C A、make config B、make menuconfig C、make dep D、make clean 4、交叉编译器中,下面哪项不是必需包含的D A、glibc B、gcc C、binutils D、tmake 5、内核的编译主要步骤不包括下面哪项D A、内核配置 B、建立依存关系 C、建立内核 D、加载内核 6、内核编译时选项前的尖括号中可以是空,*,M,其中*表示C A、选项将编译为模块 B、不包含选项 C、包含选项 7、Bootloader的stage1阶段主要完成的工作不包括下面哪项D A、基本的硬件初始化 B、为加载stage2准备RAM空间 C、拷贝stage2到RAM中 D、用汇编语言跳转到main入口函数 8、GCC的正确编译流程为A A、预处理-编译-汇编-链接 B、预处理-编译-链接-汇编

C、预处理-链接-编译-汇编 D、编译-预处理-汇编-链接 9、如需GCC提供编译过程中所有有用的报警信息,则在编译时应加入选项B A、-w B、-Wall C、-werror D、-error 10、下面哪些与GDB相关的说法是错误的B A、GDB能调试可执行文件 B、GDB能调试源代码 C、GDB对编译过程有要求D、GDB支持交叉调试 11、在GDB调试过程中,使用下面哪项命令设置断点,其中m代表行号A A、b m B、c m C、n m D、s m 12、open函数原型中的O_RDWR标志表示文件打开方式为C A、只读方式打开文件 B、可写方式打开文件 C、读写方式打开文件 D、以添加方式打开文件,在打开文件的同时,文件指针指向文件末尾 13、在Linux操作系统中,串口设备的设备名一般为C A、com1 B、port1 C、ttyS0 D、serl1 14、下面哪项对Linux操作系统下fork函数的描述是错误的D A、fork函数执行一次返回两个值 B、新进程称为子进程,而原进程称为父进程 C、父进程返回值为子进程的进程号 D、子进程返回值为父进程的进程号 15、编写守护进程的第一步为A A、创建子进程,父进程退出 B、在子进程中创建新会话 C、改变当前目录为根目录 D、关闭文件描述符 16、在关于TCP/UDP的描述中,下面哪项是错误的C A、TCP数据传输实现了从一个应用程序到另一个应用程序的数据传递

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