- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE
PAGE 7
嵌入式linux开发技术
摘 要:本文介绍了一种现在嵌入式linux环境下开发的通用方法,其硬件开发环境是基于ARM处理器。阐述了交叉编译工具搭建、系统移植、设备驱动移植、内核补丁、网络调试文件系统、根文件系统制作方法以及启动环境参数设置。
关键词:嵌入式;linux;移植;ARM
0 引 言
嵌入式 linux是将日益流行的Linux 操作系统进行裁剪修改,使之能在 嵌入式计算机系统上运行的一种操作系统。嵌入式linux既继承了Internet上 开放的源代码资源,又具有 嵌入式操作系统的特性。嵌入式Linux的特点是版权费免费,购买费用、媒介、成本、技术支持由全世界的自由 软件开发者提供,支持网络免费特性,而且性能优异,软件移植容易,代码开放,有许多 应用软件支持,应用产品开发周期短,新产品上市迅速,因为有许多公开的代码可以参考和移植,那么,如何真正移植和使用嵌入式linux?本文从实际角度阐述了一种现在通用的嵌入式linux开发环境的搭建方法。
1 系统总体框架
图1 系统总体框图
图1 系统总体框图
*指导教师:刘伟(19xx-),男,吉林xx人,吉林化工学院讲师,主要从事单片机应用、自动控制、信号检测等方面的研究.联系方式:0432-xxxxxxx.
系统总体框架如图1所示,嵌入式linux系统从软件的角度通常可以分为4个层次:
引导加载程序,包括固化在固件(firmware)中的boot代码(可选)和bootloader两部分组成。
Linux内核,特定于嵌入式板子的定制内核以及内核的启动参数,内核的启动参数可以使内核默认的,或是由bootloader传递给它的。
文件系统,包括根文件系统和建立于flash内存设备上的文件系统。包含了linux系统能够运行所必须的应用程序、库文件等,例如shell、glibc库等。
用户应用程序,特定于用户的应用程序,存储于文件系统中。嵌入式图形用户界面一般存在于用户应用程序和内核层之间,常用的GUI有Qt,miniGUI。
2 搭建交叉编译工具
登陆arm-linux-gcc官方网站 下载源码包,解压缩arm-linux-gcc源码包,放于系统中通过解压命令解压,然后可以通过两种方式配置环境变量,第一种是临时使用方法,即用export PATH将交叉编译器解压后的路径导入添加到环境变量中,第二种方法是永久使用方法,即编辑环境变量文件,将交叉编译器解压后的路径写入文件。
3 linux移植
3.1 获取内核源码
登陆linux内核的官方网站 /下载源码包,解压缩linux压缩包 。虽然内核文件数目总共3万多个,但是这些文件的组织结构并不复杂,而是分别为于顶层目录下的17个子目录。各个目录功能独立,各目录功能见表3-1。
表3-1 linux内核子目录结构
目录名
描述
arch
体系结构相关代码,每个架构的CPU均有
block
块设备的通用函数
crypto
常用加密和散列算法,例AES、SHA、CRC
drivers
设备驱动程序
fs
文件系统代码
include
内核头文件
init
内核的初始化代码
ipc
kernel
进程间通信的代码
内核管理的核心代码
lib
内核用到的一些库函数
mm
内存管理代码
net
网络支持代码
security
安全、密钥相关代码
sound
音频设备驱动程序
usr
用来制作压缩cpio归档文件(一般不用)
document
内核文档
Scripts
配置、编译内核的脚本文件
3.2 Makefile分析
通过顶层Makefile决定交叉编译工具,具体Makefile分类见表3-2。
表3-2 linux内核Makefile分类
文件名
描述
顶层Makefile
所有Makefile核心,总体控制内核编译、链接
.config
配置文件,所有Makefile文件根据.config决定使用
arch/$(ARCH)/Makefile
对应体系结构的Makefile
scripts/Makefile
Makefile的通用规则、脚本
kbuild Makefile
各级目录下的Makefile
3.3 确定机器ID
在uboot工程中搜索cmd_bootm.c文件,在文件中搜索bootm得到do_bootm函数调用处,进入do_bootm函数,根据 boot_fn = boot_os[images.os.os];语句进入boot_os结构体,得到#ifdef CONFIG_BOOTM_LINUX [IH_OS_LINUX]=do_bootm_linux,进入arch/arm/lib/bootm.c中do_bootm_linux函数,得到 boot_jump
您可能关注的文档
最近下载
- 工程材料基础 碳氮共渗 083 碳氮共渗.ppt VIP
- 2024年03月南昌市西湖区2024年度公开选调31名事业单位工作人员笔试历年典型考题及考点研判与答案详解-0.docx VIP
- 医院临床护理教学工作管理制度(三甲医院规范版).docx VIP
- 公司员工食堂餐厅天然气、煤气泄漏应急预案.docx VIP
- 2026-2030中国运动护腕行业市场现状分析及竞争格局与投资发展研究报告.docx
- 《智慧城市发展案例分析》课件.ppt VIP
- 高中历史《国家制度与社会治理》知识点总结.pdf VIP
- 人教版七年级上册数学3.4实际问题与一元一次方程(方案选择问题)同步练习.docx VIP
- DB33_T1197-2020《建筑地基基础工程施工质量验收检查用表标准》.docx VIP
- 最新评标专家考试题库 (共 200 题) 附答案.docx VIP
原创力文档


文档评论(0)