arm9嵌入式系统设计-基于S3C2410与LINUX课件(参考书) 第7章_嵌入式Linux软件设计.ppt

arm9嵌入式系统设计-基于S3C2410与LINUX课件(参考书) 第7章_嵌入式Linux软件设计.ppt

ID:51965428

大小:119.50 KB

页数:19页

时间:2020-03-26

arm9嵌入式系统设计-基于S3C2410与LINUX课件(参考书) 第7章_嵌入式Linux软件设计.ppt_第1页
arm9嵌入式系统设计-基于S3C2410与LINUX课件(参考书) 第7章_嵌入式Linux软件设计.ppt_第2页
arm9嵌入式系统设计-基于S3C2410与LINUX课件(参考书) 第7章_嵌入式Linux软件设计.ppt_第3页
arm9嵌入式系统设计-基于S3C2410与LINUX课件(参考书) 第7章_嵌入式Linux软件设计.ppt_第4页
arm9嵌入式系统设计-基于S3C2410与LINUX课件(参考书) 第7章_嵌入式Linux软件设计.ppt_第5页
资源描述:

《arm9嵌入式系统设计-基于S3C2410与LINUX课件(参考书) 第7章_嵌入式Linux软件设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章嵌入式Linux软件设计主要内容1324Bootloader引导程序Linux的移植驱动程序开发应用程序开发7.1.1Bootloader的启动过程BootLoader的实现依赖于CPU的体系结构,因此大多数BootLoader都分为stage1和stage2两大部分。BootLoader的stage1通常包括以下步骤:硬件设备初始化。为加载BootLoader的stage2准备RAM空间。复制BootLoader的stage2到RAM空间中。设置好堆栈。跳转到stage2的入口点。BootLoader的stage2通

2、常包括以下步骤:初始化本阶段要使用的硬件设备。检测系统内存映射。将kernel映像和根文件系统映像从Flash读到RAM中。为内核设置启动参数。调用内核。7.1.2Bootloader之vivivivi是由韩国MIZI公司提供的一款针对S3C2410芯片的BootLoader。vivi的启动过程分为两个阶段:阶段1和阶段2。阶段1的主要工作是:硬件初始化;配置串口;复制自身到SDRAM中(跳转到C代码的入口函数)。阶段2的主要工作是:对硬件系统继续初始化;内存映射初始化,内存管理单元MMU初始化;初始化堆;初始化MTD设备,

3、MTD设备指具有闪存功能的设备,如闪存芯片、闪存卡等;初始化私有数据;初始化内置命令;启动vivi。主要内容1324Bootloader引导程序Linux的移植驱动程序开发应用程序开发7.2Linux的移植所谓Linux移植,就是针对具体的目标平台对Linux做必要的改写后,安装到该目标平台并使其正确运行的过程。基本内容包括:获取某一版本的Linux内核源码。根据具体的目标平台,对源码进行必要的改写(主要是修改有关体系结构的部分),然后添加一些驱动,打造一款适合目标平台的新的操作系统。对该系统进行针对目标平台的交叉编译,生成

4、一个内核映像文件。将该映像文件烧写、安装到目标平台中。7.2.1Linux内核的目录结构1./arch:其中的子目录包含了所有与硬件体系结构相关的内核移植代码。每一个目录都代表一种硬件平台,对于每种平台都应该包括:boot:包含启动内核所使用的部分或全部平台的相关代码。kernel:包含支持体系结构特有的特征代码。lib:包含存放体系结构特有的通用函数的实现代码。mm:包含存放体系结构特有的内存管理程序的实现。mach-xxx:包含存放该处理器的移植代码。2./Documentation:其中的子目录包含有关内核的许多非常详

5、细的文档。3./drivers:其中的子目录包含内核中所有的设备驱动程序。4./fs:其中的子目录包含了所有文件系统的代码。5./include:其中的子目录包含了建立内核代码时所需的大部分库文件的头文件,该模块利用其他模块重建内核。同时,包括不同平台需要的库文件。6./init:其中的子目录包含了内核的初始化代码,内核从此目录下开始工作。7./ipc:其中的子目录包含了内核的进程间通讯的代码。8./kernel:其中的子目录包含了主内核的代码,如进程调度等。9./lib:其中的子目录包含了通用的库函数代码等。10./mm:

6、其中的子目录包含了内核的内存管理代码。11./net:其中的子目录包含了内核的网络相关代码。12./scripts:其中的子目录包含了配置内核的一些脚本文件。7.2.2Linux内核源码通常对内核源码的改写难度较大,因为这不仅要求对内核结构非常熟悉,而且也要对目标平台的硬件结构相当了解。所以这部分工作主要由目标平台厂商提供,如对于ARM平台,对Linux内核源码的改写就是由英国ARM公司完成的。对于读者来说,只需从其网站上下载相关版本的Linux内核补丁,再安装补丁即可。7.2.3交叉编译环境的建立交叉编译指利用运行在机器上

7、的编译器编译某个源程序,生成在另一台机器上运行的目标代码的过程。对于Linux系统和ARM平台来讲,GCC交叉编译器能高效的完成移植,下面介绍生成GCC交叉编译器的一般过程。(1)下载源代码(2)编译binutils(3)配置Linux内核头文件(4)第一次编译gcc(5)交叉编译glibc(6)第二次编译gcc7.2.4修改Linux内核文件1.设置目标平台和指定交叉编译器2.修改arch/arm目录下Makefile文件3.修改arch/arm目录下config.in文件4.修改arch/arm/boot目录下Makef

8、ile文件5.修改arch/arm/boot/compressed目录下Makefile文件6.在arch/arm/boot/compressed目录下添加head-s3c2410.s文件,该文件主要用来初始化处理器。7.在arch/arm/def-configs目录下添加配置好的S3C2

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。