嵌入式项目一引导文.docx

上传人:b****6 文档编号:7950113 上传时间:2023-05-12 格式:DOCX 页数:16 大小:53.17KB
下载 相关 举报
嵌入式项目一引导文.docx_第1页
第1页 / 共16页
嵌入式项目一引导文.docx_第2页
第2页 / 共16页
嵌入式项目一引导文.docx_第3页
第3页 / 共16页
嵌入式项目一引导文.docx_第4页
第4页 / 共16页
嵌入式项目一引导文.docx_第5页
第5页 / 共16页
嵌入式项目一引导文.docx_第6页
第6页 / 共16页
嵌入式项目一引导文.docx_第7页
第7页 / 共16页
嵌入式项目一引导文.docx_第8页
第8页 / 共16页
嵌入式项目一引导文.docx_第9页
第9页 / 共16页
嵌入式项目一引导文.docx_第10页
第10页 / 共16页
嵌入式项目一引导文.docx_第11页
第11页 / 共16页
嵌入式项目一引导文.docx_第12页
第12页 / 共16页
嵌入式项目一引导文.docx_第13页
第13页 / 共16页
嵌入式项目一引导文.docx_第14页
第14页 / 共16页
嵌入式项目一引导文.docx_第15页
第15页 / 共16页
嵌入式项目一引导文.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

嵌入式项目一引导文.docx

《嵌入式项目一引导文.docx》由会员分享,可在线阅读,更多相关《嵌入式项目一引导文.docx(16页珍藏版)》请在冰点文库上搜索。

嵌入式项目一引导文.docx

嵌入式项目一引导文

1-1引导文

引导文1-1

任务一构建嵌入式最小系统

姓名

页数:

 

李兰兰

利用网络资源、图书馆资源等查询和讨论一下问题:

1.明确嵌入式系统的概念,列举生活中哪些设备是嵌入式设备。

嵌入式系统是用于控制,监视或者辅助装置,机器或者设备运行的装置。

从技术角度定义;以应用为中心,技术为基础,软件硬件可裁剪,适应应用系统对功能,可靠性,成本,体积,功耗严格要求的专用计算机系统。

从系统角度定义;嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。

术语嵌入式反映了这些系统通常是更大系统中的一个完整的部分,称为嵌入的系统。

嵌入的系统中可以共存多个嵌入式系统。

生活中的嵌入式设备;掌上PDA、移动计算设备、电视机顶盒、手机上网、数字电视、多媒体、汽车、微波炉、数字相机、家庭自动化系统、电梯、空调、安全系统、自动售货机、蜂窝式电话、消费电子设备、工业自动化仪表与医疗仪器等。

2.嵌入式系统的组成有哪些?

由硬件和软件两部分组成

嵌入式系统一般由嵌入式处理器、外围硬件设备、嵌入式操作系统(可选),以及用户的应用软件系统等四个部分组成。

(硬件包括;嵌入式处理器以及外围硬件设备;软件包括;嵌入式操作系统以及特定的应用程序;)

 

3.了解常用嵌入式处理器有哪些?

日常生活中哪些设备用到了?

你的手机用了什么处理器?

MPU嵌入式微处理器

MCU嵌入式微控制器又称单片机

DSPDSP处理器

SOC嵌入式片上系统

ARM7,ARM9,ARM11,Cortex-A8,Cortex-A9,还有以后的Cortex-A15

公交卡、上下楼乘坐的电梯、银行取款时使用的ATM机、KTV里的点唱机、家里使用的微波炉、全自动洗衣机、电视机顶盒、无线路由器……全部都是嵌入式应用。

4.了解常用嵌入式操作系统有哪些?

你的手机用的是什么操作系统?

Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-II、VxWorks、pSOS、Nucleus、ThreadX、Rtems、QNX、INTEGRITY、OSE、CExecutive

 

5.什么是嵌入式交叉开发?

与通用计算机程序开发有什么不同?

有目标机目标机资源有限和宿主机

答:

(1)嵌入式交叉开发平台有两种理解:

交叉编译环境和跨平台开发环境。

所谓交叉编译环境,指的是开发程序的宿主机和目标机为不同平台的开发环境。

(2)不同:

通用计算机程序的开发都是在一个平台上进行。

6.到三星处理器官网查询S3C2440处理器的文档资料,分析下2440处理器的体系结构。

三星244016/32-bitRISC微处理器.三星2440是一款专用的以手持设备为主而设计的芯片,其特点有低功耗,高速的处理计算能力.为了减少系统的耗费,2440使用了如下组件:

2440基于ARM920T内核的,0.13Umcmos标准单元和存储单元复合体.它功耗及小,简单,稳定的设计非常适合对电源要求较高的产品上.她采用了新的总线构架(AMBA).2440提供了杰出的特性,因为其内核为32bit的先进处理器。

Thearm920T实现了mmu,ambabus,and哈佛缓存体系构架通过分离的16kb指令缓存and16kbdatacaches(采用8-wordlinelength)!

7.嵌入式最小系统由那部分构成的?

哪些是必须的?

哪些是可选的?

为什么?

以ARM内核嵌入式微处理器为中心,由存储器系统,电源电路,时钟系统,复位信号电路,系统总线扩展五部分组成。

嵌入式微处理器,电源电路,时钟系统,复位信号电路是必须的。

调试测试接口和存储器系统是可选的,因为调试测试接口在样品阶段通常都会设计这部分电路,存储器系统是可选的是因为许多面向嵌入式领域的微控制器内部集成了程序和数据存储器(处理器内部具有存储功能)。

 

1-2引导文

引导文1-2

任务二构建宿主机交叉开发环境

姓名

页数:

 

李兰兰

利用网络资源、图书馆资源等查询和讨论一下问题:

1.软件开发的流程是什么样的?

嵌入式开发流程是怎样的?

软件开发的流程:

包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。

系统需求分析(要求有严格规范的技术要求),体系结构设计,软硬件及机械系统设计,系统集成,系统测试,最终得到最终产品

嵌入式开发流程:

需求分析阶段,设计阶段,生成代码阶段,固化阶段。

2.如何安装Vmware虚拟机?

虚拟机的作用是什么?

通过安装在系统上的专用软件模拟出基于底层硬件的与主机系统隔离的独立的系统运行环境,并可以在上面安装操作系统、软件等,虚拟系统的操作与真实系统无异,简单的来说就是一个软件,可以在上面装系统,操作起来跟真实系统一样,但是与真实系统又是隔离的,里面的操作不会影响到真实系统。

(答:

(1)第一步:

首先从网上下载一个Vmware软件包,双击打开软件包,然后点击Next;

(2)选择安装模式,一般选典型安装,点击Next;

(3)选择安装路径,点击Next;

(4)设置桌面快捷方式,点击Next;然后直接点击Continue;

(5)到此步骤需要等待一会,让系统完成配置;

(6)在弹出的对话框中要求输入序列号,输入完后,点击Next,这样虚拟机系统就安装完成了。

虚拟机作用:

简单的可以用来测试系统(镜像)、测试软件、文件共享等,复杂一点可以组建组建网络实验环境进行网络实验等等,特殊版本的虚拟机软件可以组建虚拟服务器。

虚拟机是一个抽象的计算机,和实际的计算机一样,具有一个指令集并使用不同的存储区域。

它负责执行指令,还要管理数据、内存和寄存器。

这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口。

 

3.如何获取Linux镜像?

如何安装Ubuntu等版本的操作系统?

fedora、Ubuntu、Redhat等之间的关系是怎样的?

获取linux镜像:

可以直接到官网linux.org获取

安装ubuntu;首先从网上下载一个Ubuntu软件包和iso镜像,分一个区,建议10G吧;其次解压镜像到任意位置,不要放在分出来的区里;最后找到解压出来的文件中有一个exe文件,双击安装即可,和装软件一样,按照按照提示,装好就可以了,现在都是图形化的安装界面。

三者之间的关系:

都是使用的linux的内核,fedora和redhat是一家,fedora是redhat的升级版,他们都用yum更新。

ubuntu基于debian,使用apt更新,

 

4.什么是交叉编译工具?

交叉工具链的作用是什么?

交叉编译:

是A机器上编译生成,运行在B机器上,两个机子有不同的机器指令。

工具链:

交叉工具链是用来完成交叉编译的工具包。

作用:

编译的程序才能在目标机上运行,用gcc编译的程序无法在目标机上运行。

 

5.查询常用Linux操作命令表。

pwd:

Printworkingdirectory  意思是密码。

su:

Swithuser 切换用户,切换到root用户

cd:

Changedirectory切换目录

ls:

Listfiles 列出目录下的文件

ps:

ProcessStatus 进程状态

mkdir:

Makedirectory 建立目录

[cal]显示日历[tar]压缩/解压缩文件

[clear]清屏[gcc编译C语言代码

[mdir]显示文件列表[mcd]改变当前目录

[mmd]新建目录[mrd]删除目录

[mdeltree]删除目录树[mcopy]复制文件

[mdel]删除文件[mmove]移动文件

[chmod]修改文件/目录的权限[rmdir]删除路径

[cp]复制文件/目录[mv]移动文件/目录,修改文件名

[rm]删除文件/目录[tree]显示目录树

[arch]显示机器的核心构架(如i386)#ubuntu中没有”arch”命令,可用”uname–m”替代。

 

1-3引导文

引导文1-3

任务三引导程序U-boot设计

姓名

页数:

 

李兰兰

利用网络资源、图书馆资源等查询和讨论一下问题:

1.什么是Bootloader?

它在嵌入式系统中的作用是什么?

简单地说,BootLoader就是在操作系统内核运行之前运行的一段小程序(启动加载程序)。

通过这段小程序,我们可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。

在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。

比如在一个基于ARM7TDMIcore的嵌入式系统中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。

2.常见的Bootloader有哪些?

如何获取U-boot源码?

Viviredbootu-bootBlobARMbootLilograb

3.分析U-boot工作流程,具体有哪些步骤?

Bootloader分为stage1和stage2两大部分。

stage1:

依赖于CPU体系结构的代码,例如设备初始化代码等,通常都放在stage1中,而且通常都用汇编语言来实现,以达到短小精悍的目的。

stage1通常包括以下步骤

(1)硬件设备初始化

(2)为加载Bootloader的stage2准备RAM空间

(3)拷贝Bootloader的stage2到RAM空间中

(4)设置堆栈

(5)跳转到stage2的C入口点

stage2:

则通常用C语言来实现,这样可以实现更复杂的功能,而且代码会具有更好的可读性和可移植性。

stage2通常包括以下步骤

(1)初始化本阶段要使用到的硬件设备

(2)检测系统内存映射(memorymap)

(3)将kernel映像和根文件系统映像从flash上读到RAM空间中

(4)为内核设置启动参数

(5)调用内核

4.阅读和分析U-boot的源码。

答:

对于ARM而言,主要的目录如下:

board平台依赖 存放电路板相关的目录文件,每一套板子对应一个目录。

如smdk2410(arm920t)

cpu平台依赖 存放CPU相关的目录文件,每一款CPU对应一个目录,例如:

arm920t、xscale、i386等目录

lib_arm平台依赖 存放对ARM体系结构通用的文件,主要用于实现ARM平台通用的函数,如软件浮点。

common通用通用的多功能函数实现,如环境,命令,控制台相关的函数实现。

include通用头文件和开发板配置文件,所有开发板的配置文件都在configs目录下

lib_generic通用通用库函数的实现

net通用存放网络协议的程序

drivers通用通用的设备驱动程序,主要有以太网接口的驱动,nand驱动。

5.自行设计U-boot的功能说明和结构框架。

答:

U-boot是常用的嵌入式操作系统启动程序。

著名的开源bootloader程序。

可以启动linux、android等系统。

作为bootloader它的最基本的作用为:

1、把操作系统镜像从介质如flash、nand、SD卡等加载到内存

2、在内存中把操作系统启动,启动时可以向操作系统传递启动配置信息。

当然它还有一个简单的控制台,利用串口与用户交互以提供一些额外的辅助功能,如在OS启动前查看内存、数据拷贝、查看OS镜像信息、检查坏块等。

6.如何配置、编译U-boot?

根据哪些硬件参数进行修改?

答:

(1)首先确定好交叉编译环境,然后解压U-Boot-1.1.1.6,进入U-Boot目录,修改Makefile(VimMakefile),把smdk2410改为TX2440;

(2)修改完Makefile后,在board目录下,新建自己的开发板目录TX2440,把smdk2410目录下的所有文件拷到TX2440,把smdk2410.c改为TX2440.c;

(3)修改该目录下的Makefile,然后进入到board目录下,把smdk2410.o改为TX2440.o;

(4)将board目录下所有文件夹全部删除,只留TX2440;

(5)在include/configs目录下创建板子的配置文件,把smdk2410.h改名为TX2440.h,再把所有文件夹全部删除,只留TX2440.h;

(6)测试能否编译成功:

执行makeTX2440_config;

(7)修改SDRAM配置,在board/TX2440/lowlevel_init.s中检查,其次再修改board/TX2440/TX2440.c中的board_init函数;

(8)测试能否编译成功:

执行makeTX2440_config;

(9)在cpu/arm920t/s3c24x0/speed.c中修改get_PLLCLK函数;

(10)重新执行makeTX2440_config,makeall生成u-boot.bin文件

7.如何移植U-boot到目标板?

tarjxvfu-boot-1.2.0.tar.bz2

cdu-boot-1.2.0

(2)-2编译u-boot

(2)-3烧写flash

(2)-4下载Linux内核。

有两种方法:

一种是usb手动的下载到开发板,上次我们用的superboot就可以用usb线下载u-boot镜像;另外一种是存储到SD卡上,采用SD卡启动

1-4引导文

引导文1-4

任务四嵌入式Linux操作系统移植

姓名

页数:

 

李兰兰

利用网络资源、图书馆资源等查询和讨论一下问题:

1.Linux2.6内核结构是怎样的?

Linux2.6操作系统由四部分组成:

1:

用户进程——用户应用程序是运行在Linux操作系统最高层的一个庞大的软件集合,当一个用户程序在操作系统之上运行时,它成为操作系统中的一个进程。

2:

系统调用接口—在应用程序中,可通过系统调用操作系统内核中特定的进程,以实现特定的服务。

例如,在程序中安排一条创建进程的系统调用,则操作系统内核便会为之创建一个新进程。

系统调用本身也是由若干条指令构成的进程。

但它与一般的过程不同,主要区别是:

系统调用是运行在内核态(或叫系统态),而一般过程是运行在用户态。

在Linux中,系统调用是内核代码的一部分。

3:

Linux内核—内核是操作系统的灵魂,它负责管理磁盘上的文件、内存,负责启动并运行程序,负责从网络上接收和发送数据包等。

简言之,内核实际上是抽象的资源操作具体硬件操作细节之间的接口。

4:

硬件—这个子系统包括了Linux安装是需要的所有可能的物理设备。

例如:

CPU、内存、硬盘、网络硬件等等。

答:

linux2.6内核主要由内存管理、虚拟文件系统、网络接口、进程间通讯、进程调度等几部分构成

2.DM9000网卡驱动框架是怎样的,网卡在嵌入式开发中的作用是什么?

Dm9000是嵌入式平台上常用的MAC+PHY芯片。

针对各种SoC,2.6内核引进了platform设备模型来封装相关驱动,Dm9000驱动就用platform改写了。

DM9000的驱动初始化基本是由probe函数进行。

网卡:

可以自主处理TCP/IP协议以及以太网协议,完全符合在线实时通讯或TCP/IP协议小数据量(一个数据报1470Byte)通讯方式,可以直接将只有串行接口的各种终端产品直接连接到局域网中,使服务器可以远程控制,方便用户布线连接,缩短底层和上层的软件的开发周期,节省通讯费用。

3.网卡驱动是如何实现的?

其过程分为哪些步骤?

.网卡初始化

设置一些有关发送数据的发送寄存器,然后,网卡才能正常发送数据。

发送长度要以四个字节对齐

 接收处理函数

4.如何获取网卡驱动源码?

如何修改网卡驱动并移植它?

从网卡驱动官网上获取

a)解压内核

b)修改顶层Makefile

c)拷贝配置文件

d)修改内核配置项

e)修改Makefile添加内核编译配置

f)添加地址映射定义

g)添加平台代码

h)配置内核,是指支持网卡

i)重新编译内核

j)拷贝zImage到目录下重新启动开发板

5.如何把网卡驱动加载到Linux内核?

加载到内核之后的效果如何?

答:

显卡安装:

(1)、下载驱动程序

首先要找到显卡forLinux的驱动程序。

现在绝大多数的3D显卡都已有了forLinux的驱动程序,可到各显卡厂商的主页或Linux的相关站点上去寻找。

在安装显卡时,服务器根据显卡的情况来加载不同的显示模块,如果显示模块加载不正确,显卡就不能正常显示。

(2)、装载磁盘驱动器

Linux需要装载磁盘驱动器才能读取文件。

启动Linux后,在字符界面下输入“mount-tvfat/dev/hda1/mnt/winc”命令,将C盘装载到Linux下。

需要注意的是,如果下载的是压缩文件,选择的是在Linux下解压,就得先进行装载磁盘驱动器这一步,再进行文件的解压缩。

(3)、拷贝文件

将XF86_SVGA文件拷贝到/usr/X11R6/bin目录下。

注意,这是针对RedHat版本来说,其它版本的路径不一定相同。

“cp/mnt/winc/win98/TEMP/XF86_SVGA/usr/X11R6/bin”(根据自己的情况灵活掌握,关键是路径一定要正确,还要分清字母的大小写)。

如果系统提示有同名文件,问是否覆盖,一定要选择“y”。

这些旧文件可能是以前安装显卡时加载的,没有实际用处。

在输入文件名的时候,输完XF86后按一下Tab键,再接着输SVGA,下划线_就可以出来了,按键盘上的下划线键是没用的,切记。

(4)、配置显卡

文件拷贝完成后,输入Xconfigurator,启动显卡配置程序。

我在显卡列表中仍然没有找到TridentBlade3D,于是选最后一个选项“Unlist”,然后选择加载的显示模块为SVGA,再选择显示器型号、显存大小、刷新频率

总结:

在Linux下安装显卡驱动程序,首先要下载显卡支持Linux的驱动程序,再将其拷贝到/usr/X11R6/bin目录下,然后启动显卡配置程序进行配置即可。

网卡、声卡等驱动安装可以依此类推

6.如何Linux内核剪裁、编译和移植?

答:

(1)首先下载linux-2.6.31软件包并在linux下解压;

(2)进入linux-2.6.31目录下,修改Makefile:

ARCH?

=arm

CROSS_COMPILE?

=arm-linux-

修改时钟:

arch/arm/mach-s3c2440/mach-smdk2440.c

修改机器码:

内核中:

arch/arm/tools/mach-types

uboot中:

include/asm-arm/mach-types.h

配置:

makemenuconfig

载入配置文件:

arch/arm/configs/s3c2410_defconfig

选择CPU类型SMDK2440

编译内核makezImage

3)内核移植分为三个步骤,首先,确定把自己开发的代码放入到内核中的位置;其次,把自己开发的功能增加到Linux内核的配置选项中使用户能够选择此功能;最后,构建目录Makefile,根据用户的选择,将相应的代码编译到最终生成的Linux内核中去。

1-5引导文

引导文1-5

任务五制作跟文件系统

姓名

页数:

 

李兰兰

利用网络资源、图书馆资源等查询和讨论一下问题:

1.常用根文件系统类型有哪些?

它们的作用是什么?

有何异同?

1:

extext是第一个专门为Linux的文件系统类型,叫做扩展文件系统.

:

2:

ext2ext2是为解决ext文件系统的缺陷而设计的可扩展的高性能的文件系统.又被称为二级扩展文件系统

:

3:

ext3ext3是由开放资源社区开发的日志文件系统,.ext3被设计成是ext2的升级版本。

:

4:

jsfjsf提供了基于日志的字节级文件系统,该文件系统是为面向事务的高性能系统而开发的。

:

5:

ReiserFSReiserFS基于平衡树结构的、ReiserFS文件系统在网上公布.ReiserFS3.6.x(作为Linux2.4一部分的版本),设计成员相信最好的文件系统是那些能够有助于创建独立的共享环境或者命名空间的文件系统。

:

6:

Xfsxfs是一种非常优秀的日志文件系统,它是SGI公司设计的.xfs被称为业界最先进的,最具可升级性的文件系统技术.它是一个全64位,快速,稳固的日志文件系统,

2.Linux文件系统结构。

各部分的作用是什么?

  1./bin目录

  /bin目录包含了引导启动所需的命令或普通用户可能用的命令(可能在引导启动后)。

这些命令都是二进制文件的可执行程序(bin是binary--二进制的简称),多是系统中重要的系统文件。

  2./sbin目录

  /sbin目录类似/bin,也用于存储二进制文件。

因为其中的大部分文件多是系统管理员使用的基本的系统程序,所以虽然普通用户必要且允许时可以使用,但一般不给普通用户使用。

  3./etc目录

  /etc目录存放着各种系统配置文件,其中包括了用户信息文件/etc/passwd,系统初始化文件/etc/rc等。

linux正是*这些文件才得以正常地运行。

  4./root目录

  /root目录是超级用户的目录。

  5./lib目录

  /lib目录是根文件系统上的程序所需的共享库,存放了根文件系统程序运行所需的共享文件。

这些文件包含了可被许多程序共享的代码,以避免每个程序都包含有相同的子程序的副本,故可以使得可执行文件变得更小,节省空间。

  6./lib/modules目录

  /lib/modules目录包含系统核心可加载各种模块,尤其是那些在恢复损坏的系统时重新引导系统所需的模块(例如网络和文件系统驱动)。

  7./dev目录

  /dev目录存放了设备文件,即设备驱动程序,用户通过这些文件访问外部设备。

比如,用户可以通过访问/dev/mouse来访问鼠标的输入,就像访问其他文件一样。

  8./tmp目录

  /tmp目录存放程序在运行时产生的信息和数据。

但在引导启动后,运行的程序最好使用/var/tmp来代替/tmp,因为前者可能拥有一个更大的磁盘空间。

  9./boot目录

  /boot目录存放引导加载器(bootstraploader)使用的文件,如lilo,核心映像也经常放在这里,而不是放在根目录中。

但是如果有许多核心映像,这个目录就可能变得很大,这时使用单独的文件系统会更好一些。

还有一点要注意的是,要确保核心映像必须在ide硬盘的前1024柱面内。

  10./mnt目录

  /mnt目录是系统管理员临时安装(mount)文件系统的安装点。

程序并不自动支持安装

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2