版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Arm Linux系统开发过程,1,目标硬件系统开发2,构建交叉编译工具3,启动加载程序开发4,Linux内核迁移5,文件系统开发6,相关硬件开发车手7,父应用程序开发8,启动加载程序刻录,内核,嵌入式交叉编译环境简介,交叉编译是在一个平台上在另一个平台上生成可执行代码。这里所说的平台是主机平台主机和目标平台目标。当我们将Linux移植到ARM平台上时,Host是通过串行端口或网络接口与Target通信的通用PC。Target是arm-Linux平台。其中arm表示平台使用的CPU是ARM9处理器,Linux表示运行的操作系统是Linux。我们在主机上开发程序,在牙齿平台上运行交叉编译器Cro
2、ss Complier,编译程序,在Cross Complier中生成的程序在目标上运行,需要交叉编译的原因:首先,由于在项目开始阶段尚未设置目标平台,因此需要交叉编译。第二,目标平台启动后,由于目标平台的资源限制,编译大型程序时可能需要交叉编译。建立交叉编译工具链的方法,建立交叉工具链的方法一般有三种。手动编译和安装一步式交叉编译工具链所需的库和源代码,最终生成交叉编译工具链。2通过脚本编译通过crosstool脚本工具进行一次编译生成交叉编译工具链3直接交叉编译工具链直接通过internet下载构建的交叉编译工具链。FTP:ARM . kernel . org . uk FTP 3360
3、kernel . org FTP 3360 GNU . org,Linux内核代码linux-2.6.10.tar.gz glibc库glibc-2.3.2.tar.gz实用程序如果使用串行1,请输入/dev/ttyS0。如果使用串行2,请输入/dev/ttyS1。4,按“e”进入“bps/par/Bits”设置界面,然后按“I”将波特率设置为115200并将设置保存到“/etc/minirc”CTR A SZ modern,NFS可以将远端档案系统载入本机档案系统。远程硬盘、目录和光驱都可以是本地主机目录树的子目录。加载后,像使用自己的档案系统一样使用即可。不仅方便,而且还可以节省重复存储文
4、件的空间、档案传输时间和网络带宽。、NFS功能和NFS系统也使用C/S体系结构。这意味着服务器端和客户端服务器端共享的档案系统。必须从客户端导出文件系统输出(export)。必须将档案系统加载到自己的系统中。要使用NFS,必须在服务器端设置输出,然后在客户端设置中加载。NFS服务器端配置(1)防火墙关闭(2)孔刘目录配置-客户端主机IP范围(3)主机IP (4)启动NFS服务,设置NFS客户端(1)客户端IP地址(2)孔刘目录装载特定配置步骤,服务器端1)主机:共享牙齿目录的主机名;权限选项:定义安全选项,权限选项1)ro:只读,只有客户端才能以只读模式装载牙齿档案系统。2)rw:明确指定孔刘
5、目录作为读/写权限。使用用户映像限制某些用户对NFS孔刘文件的权限。no_root_squash:其他安全选项1)Insecure:访问非安全端口。这意味着默认用户端口必须为1024或更高,NFS服务器的默认安全服务器端口必须小于1024。2)同步:按需同步。例如VI/etc/exports/home/ls 192 . 168 . 0 . 50(rw,insecure,no _ root _ squash),例如VI允许所有主机访问、读/写权限、引导加载程序是打开嵌入式系统电源后运行的第一个代码,与PC上的BIOS相对应。Bootloader位置:通常会硬化到硬件中的固态存储设备,打开电源后会
6、自动启动。基于ARM处理器核心的CPU在重置时通常从地址0x000000000发出第一个命令。牙齿地址上安排的就是启动加载程序。Bootloader是在操作系统运行之前运行的小程序。通过牙齿小程序,可以初始化硬件设备,创建内存空间的映像表,构建适当的系统硬件和软件环境,然后最终调用操作系统内核。3 Bootloader、几个茄子发布的Bootloader和Bootloader在实施时非常依赖硬件。每个体系结构的处理器都有不同的Bootloader。但是,Bootloader的发展现在倾向于支持比较成熟的vivi、RedBoot、U-Boot等多种体系结构。FTP :/FTP . denx .
7、de/pub/u-boot/,Bootloader操作模式,大多数bootloader都有两种茄子操作模式:引导加载模式和,差别对开发人员来说很有意义。从最终用户的角度来看,Bootloader的作用是加载引导加载模式和下载模式之间没有区别的操作系统。1、引导加载模式(Bootloader)将操作系统从目标系统的固态存储设备加载到RAM,从而无需用户干预即可运行整个过程。引导加载模式是Bootloader的正常操作模式,Bootloader在包含bootloader的产品发布时必须运行。2、下载模式下载方法:在牙齿模式下,目标系统上的Bootloader通过串行连接或网络连接等通信方式从主机下
8、载文件。下载内容和存储:主要下载内核图像和根文件系统图像等。从主机下载的文件通常由Bootloader存储在目标系统的RAM中,然后由Bootloader写入目标系统的FLASH类固态存储设备。下载模式应用程序节目:Bootloader的牙齿模式通常在首次安装内核和根档案系统时使用。此外,未来的系统更新也可以使用牙齿操作模式。用户应用程序节目介面:在牙齿模式下工作的Bootloader通常为最终用户提供简单的命令行界面。如果与U-BOOT相同,则出现“#”提示。Vivi下将显示“vivi”提示。下载模式示例,引导加载程序引导进程,大多数引导加载程序引导分为stage 1和stage 2。依赖于
9、处理器体系结构和板级初始化的代码通常放置在舞台1上,并以汇编语言实现,舞台2通常以C语言实现,从而实现更复杂的功能,并提高代码的可读性和可移植性。Boot Loader中的stage1通常包含硬件设备初始化阶段(执行优先级)。为加载引导加载程序的stage2准备RAM空间。将引导加载程序的舞台2复制到RAM空间。设置堆栈跳转到舞台2的C入口点。Stage1的主要任务是初始化硬件,准备C语言操作环境的第二阶段,关闭处理器内部命令/数据缓存等,设置CPU速度和时钟频率RAM初始化指示灯等。为了加快执行速度,通常将步骤2中的代码加载到RAM空间中并执行。RAM空间准备注意事项:步骤2代码大小、堆栈、
10、页面大小(4KB的倍数)、部署位置等,引导加载程序中的stage2通常包括以下步骤(执行优先级):初始化牙齿阶段要使用的硬件设备。检测“memory map(系统内存映射)”。将内核图像和根文件系统图像从flash读取到RAM空间。设定核心的启动参数。调用内核。Stage2中的代码通常用C语言实现,以实现更复杂的功能并提高代码的可读性和可移植性。与普通C语言应用程序不同,编译和链接boot loader等程序时,glibc库的支持函数不可用。Stage2的主要目的是在运行Linux内核之前完成硬件和内存初始化操作。Bootloader调用Linux内核的方法是直接进入内核的第一个命令。跳跃时为
11、1),设置CPU寄存器:R0=0;R1是系统类型id。R2是RAM中的起始参数,显示列表的起始主地址。2),CPU模式:CPU必须设置为SVC模式,并且必须禁止中断(IRQs和FIQs)。3)、MMU和缓存设置:必须关闭MMU;可以打开或关闭命令缓存。数据缓存必须关闭。vivi Bootloader源代码分析,vivi是韩国Mizi开发的Bootloader,适用于ARM9处理器。Vivi有两种茄子工作模式,启动时可以选择这两种模式。Vivi启动后,通过串行端口按press return to start the Linux now,any other key for vivi enter启动
12、Linux OS,然后按其他键进入vivi命令介面模式,您可以使用vivi提供的命令执行一些茄子操作。vivi源代码目录结构、vivi源代码包含10个目录(arch、Documentation、drivers、init、include、lib、scripts、test和util),每个目录的内容如下1、arch(体系结构)目录下的文件是与包含使用的启用vivi的CPU的CPU硬件相关的初始化代码。通常仅包含S3C2410 x的文件。2、Documentation目录下的文件是vivi使用手册。3、存储在车手目录中的内存技术设备内存技术设备(MTD)(数据存储介质)设备读写控制档案和串行端口操作档案;串行端口的xmodem和ymodem协议支持。4、include目录包含所有头文件,其中包括S3C2410微处理器和S3C2410开发版的头文件。、5、init目录牙齿目录下是vivi版本信息系统初始化档案main.c、version.c和vivi完整初始化结构main.c。6、在lib目录牙齿目录下,有时钟功能档案time.c、堆栈初始化档案heap.c等公共应用节目和介面代码。7、脚本目录牙齿目录包含系统配置所需的脚本档案(如menuconfig和configue档案)牙齿。8、CVS目录所有目录下都有CVS目录。牙齿目录存储
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海南湖职业技术学院《电子政务》2025-2026学年期末试卷
- 乌兰察布职业学院《物理治疗》2025-2026学年期末试卷
- 上海交通大学《电气控制》2025-2026学年期末试卷
- 绥化学院《旅游消费者行为学》2025-2026学年期末试卷
- 沈阳医学院《财经法规与会计职业道德》2025-2026学年期末试卷
- 上海视觉艺术学院《债权法》2025-2026学年期末试卷
- 上海戏剧学院《学前教育原理》2025-2026学年期末试卷
- 上海科技大学《税法》2025-2026学年期末试卷
- 上海海关学院《儿童发展》2025-2026学年期末试卷
- 沈阳建筑大学《古代文学复兴》2025-2026学年期末试卷
- 2026安徽辉隆集团农资连锁有限责任公司招聘1人笔试备考试题及答案解析
- 2026广东惠州市自然资源局招聘编外人员4人笔试参考题库及答案解析
- 中小学教师绩效工资分配激励研究-基于 2024 年中小学教师绩效工资实施办法
- DB42∕T 2523-2026 党政机关办公用房面积核定工作规范
- 2026南京六合科技创业投资发展有限公司招聘9人笔试备考试题及答案解析
- 推拿店岗位责任制度模板
- 2026年汕头市普通高考第一次模拟考试 英语+答案
- 2026年宝山区国有(集体)企业招聘笔试参考题库附带答案详解
- 成都合资公司管理手册模板
- 二类医疗器械零售经营备案质量管理制度
- 人教版2026春季新版八年级下册英语全册教案(单元整体教学设计)
评论
0/150
提交评论