24小时热门版块排行榜    

查看: 487  |  回复: 1
当前主题已经存档。

wswswws

银虫 (正式写手)

[交流] 嵌入式Linux开发简介

嵌入式Linux开发简介


嵌入式系统是以应用为中心,以计算机技术为基础、软硬件均可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。其发展已有二十多年的历史,国际上也出现了一些著名的嵌入式操作系统,如VxWorks,Palm OS,Windows CE等等,但这些操作系统均属于商品化产品,价格昂贵且由于源代码不公开导致了诸如对设备的支持 ,应用软件的移植等一系列的问题。而Linux作为一种优秀的Free OS,近几年在嵌入式领域异军突起,成为了最有潜力的嵌入式操作系统。

  嵌入式Linux融合了嵌入式和Linux的特点,其开发与一般的应用程序开发相比有着自己的特点,下面简要的介绍一下嵌入式Linux开发的一般过程。

  了解硬件是首要的一步,这是嵌入式开发的特点决定的。了解硬件指的是了解整个硬件,判断硬件对于当前的应用来说是否合适。嵌入式系统中需要使用到CPU和各种外围设备,由此需要收集相关硬件的资料,包括CPU,芯片手册和各种外围设备的手册以及相关的各种电路图等,并对整体系统有较深入的了解。

  了解硬件后,下一步就该准备需要使用的Linux工具以及其他工具,这些工具包括:针对所用CPU的编译器/汇编器/连接器,相应的库工具,目标文件分析/管理工具,符号查看器等等。幸运的是,由于Linux的开放性,针对不同目标平台的Linux工具都可在网上免费得到,绝大部分的这些工具都由GNU提供。所需要的其他工具还包括硬件厂商提供给公司的工具,如编程器,下载工具和查错器等等。所有这些工具对以后的开发、调试等都可说是必不可少的。

  做好以上的准备工作后,就要进入实质性的工作阶段了。首先需要安排内存地址,如SDRAM的内存地址,Flash的内存地址等,这需要与实际应用和硬件状况相结合来考虑,要根据硬件的限制以及实际应用的需要对内存地址进行合理的安排,同时要注意内存地址的安排要具有一定的伸缩性,以便于将来需要改动时所做的变动达到最小。一般来说,嵌入式Linux的内存地址安排体现在连接脚本当中。

  接着就该进入编写启动代码和机器相关代码阶段了。各种不同目标系统,甚至相同目标系统的启动代码和机器相关代码也是不相同的。启动代码一般需要完成硬件初始化,装载内核及安装根文件系统以及开始内核执行的工作,不同目标平台的启动代码一般可通过参考Linux下已有的启动代码和相关CPU的手册进行编写。

  启动代码和机器相关代码编程完成并可以启动系统后,下一步就可以开始驱动程序的编写了。Linux编写驱动程序与一般情况下编写驱动程序并没有太大的区别,都需要对相关的硬件作出了解,同时需要遵循Linux编写驱动程序的一些规则进行,编写完一个驱动程序后,一般就写一个相应的测试程序已便随时进行测试。Linux下各种不同类型的设备都有相当多的驱动程序源码可以参考,因此实际编写时更多的时间是花在对特定硬件特性的熟悉上。

  除了以上提到的这些步骤外,进行实际开发时,很多时候还要进行库(这里所提到的库均指C库),GUI和系统程序的移植。这是因为嵌入式Linux中所用的库一般不能直接使用标准库,而需要进行精简,虽然已有些精简的C库如uClibc等可供使用,但还是需要经常对其进行修改。嵌入式Linux常用的GUI有Microwindows,MiniGUI,QT/Embedded,TinyX等等,各自均有其使用的场合,所针对的目标平台和应用层次也不一样,必须根据实际需要进行选择。系统程序如mount,ls等等有些是应用时所必须的,有些则是进行调试时所需要的,初始时则需要一些通用的系统程序即可。

[ Last edited by 幻影无痕 on 2006-11-18 at 07:42 ]
回复此楼

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
2楼2007-02-27 00:58:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
送鲜花一朵
3楼2011-08-24 21:49:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wswswws 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 材料学硕318求调剂 +5 February_Feb 2026-03-01 7/350 2026-03-01 15:21 by jxstnuZYX
[考研] 281求调剂 +4 2026计算机_诚心 2026-03-01 4/200 2026-03-01 15:21 by chemisry
[考研] 304求调剂 +6 曼殊2266 2026-02-28 7/350 2026-03-01 15:14 by wjLi2017
[考研] 298求调剂 +9 人间唯你是清欢 2026-02-28 12/600 2026-03-01 14:23 by Ducount.Y
[考研] 材料学调剂 +8 提神豆沙包 2026-02-28 10/500 2026-03-01 14:14 by peike
[考研] 材料284求调剂,一志愿郑州大学英一数二专硕 +10 想上岸的土拨鼠 2026-02-28 10/500 2026-03-01 14:12 by yc258
[考研] 0805总分292,求调剂 +3 幻想之殇 2026-03-01 3/150 2026-03-01 14:11 by yc258
[考研] 0856材料求调剂 +3 麻辣鱿鱼 2026-02-28 3/150 2026-03-01 14:06 by yc258
[考研] 290求调剂 +8 材料专硕调剂; 2026-02-28 9/450 2026-03-01 12:46 by 闭眼看蓝天
[考研] 0856化工专硕求调剂 +6 董boxing 2026-03-01 6/300 2026-03-01 12:45 by houyaoxu
[考研] 321求调剂一志愿东北林业大学材料与化工英二数二 +3 虫虫虫虫虫7 2026-03-01 6/300 2026-03-01 11:50 by gaoxiaoniuma
[考研] 调剂 +3 简木ChuFront 2026-02-28 3/150 2026-03-01 11:46 by 王伟要上岸啊
[硕博家园] 博士自荐 +6 科研狗111 2026-02-26 10/500 2026-03-01 10:02 by 科研狗111
[论文投稿] 求助coordination chemistry reviews 的写作模板 10+3 ljplijiapeng 2026-02-27 4/200 2026-03-01 09:07 by babero
[论文投稿] Optics letters投稿被拒求助 30+3 luckyry 2026-02-26 4/200 2026-03-01 09:06 by babero
[考研] 298求调剂 +5 axyz3 2026-02-28 5/250 2026-03-01 06:45 by 刘兵
[考研] 285求调剂 +6 满头大汗的学生 2026-02-28 6/300 2026-03-01 06:29 by Trying]
[考研] 化工专硕348,一志愿985求调剂 +4 弗格个 2026-02-28 6/300 2026-02-28 22:00 by wang_dand
[考研] 276求调剂 +3 路lyh123 2026-02-28 4/200 2026-02-28 19:45 by 路lyh123
[硕博家园] 【博士招生】太原理工大学2026化工博士 +4 N1ce_try 2026-02-24 8/400 2026-02-26 08:40 by N1ce_try
信息提示
请填处理意见