`
ldb19890624
  • 浏览: 238528 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

嵌入式开发基础(1)

 
阅读更多

嵌入式开发基础(1)

LSB Linux Standard Base Linux标准库

LSB已经支持多种架构,包括IA32/64、PowerPC32/64、AMD64等等。LSB可分解成一个核心组件和单独的架构组件。
LSB规定了Linux发布包的公共属性,包括对象格式、标准库接口、命令和工具的最小集、文件系统布局、系统初始化等。
LSB是一种指导你如何为Linux编程的标准,但不一定要遵守它的准则,它只是提供好的建议。LSB的主要受益者是独立软件开发商,他们只要遵循这个标准就无需针对不同的发行版开发不同的产品,可大大减少成本,LSB就是为了避免重复的浪费的软件开发。
2008年10月,Linux Standard Base 4 即将发布,LSB 4 将包含一个全新应用程序检验器,新的Shell脚本检验器,还包含一个多版本的SDK,开发人员可以使用之前的LSB规则来编写程序而无需更改SDK。


OSDL Open Source Development Labs 开放源代码开发实验室
OSDL是由IBM、Intel以及美国计算机协会在2000年组成的非赢利组织,用以支持Linux的开发人员同用户。OSDL的目标是为Linux以及其他开源项目提供一个协同工作的空间,在这里大家可以共同制定标准,开发兼容Linux平台的应用程序。
OSDL在2002年建立了四个工作组:
* Mobile Linux Initiative (MLI)
* Carrier Grade Linux (CGL)
* Data Center Linux (DCL)
* Desktop Linux (DTL)
CGL是OSDL发布的电信级Linux的标准,其中明确规定了符合电信级客户需求的操作系统和应用的特性,包括系统可靠性、系统可用性、技术标准符合性、平台特性、调试和优化工具、系统性能、硬件兼容性、内核性能、可升级性、安全访问控制机制、保密和完整性机制、用户层完整性检测、日志安全性和保密性、信息完整性和来源可确认性、系统日志和事件日志机制等诸多方面。通过对Linux内核的优化处理,CGL既保留了Linux的灵活性,又支持WatchDog、应用监控、系统日志、主备用硬盘和流量监控等功能,充分满足作为电信级系统的高可用性和稳定性要求。

DTL旨在推进Linux企业级的桌面应用。该项目目前处于筹划期,对外发布的信息较少。受中国大力推进桌面Linux操作系统的影响,OSDL将加大与中国的合作力度,特别是在桌面Linux领域。

DCL致力于制订一个满足数据中心需要的Linux标准。它面向金融行业和制造业等运行关键性务系统。其特征是积极采用新技术,使大型系统能运行关键性业务并承担高风险和重负荷。


BIOS与Bootloader比较
BIOS即Basic Input/Output System 基本输入输出系统,它的全称应该是ROM-BIOS,意思是只读存储器基本输入输出系统。其实,它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机上电自检程序和系统启动自举程序。 BIOS的主要功能是为计算机提供最底层的、最直接的硬件设置和控制。BIOS设置程序是储存在BIOS芯片中的,只有在开机时才可以进行设置。CMOS主要用于存储BIOS设置程序所设置的参数与数据,而BIOS设置程序主要对计算机的基本输入输出系统进行管理和设置,使系统运行在最好状态下,使用BIOS设置程序还可以排除系统故障或者诊断系统问题。
BIOS也可存储在Flash存储器中,通过烧写BIOS程序进行升级。
BIOS是一套复杂的常规系统配置软件的集合。编写BIOS程序需要懂得底层硬件架构的细节知识。当桌面PC开启电源后,BIOS开始控制处理器,它的主要任务是初始化硬件、尤其是内存子系统,从PC机的硬盘载入操作系统。

而在嵌入式系统(假定是非x86架构),一般使用bootloader软件程序来执行BIOS同样的功能。如果是你自己定制的嵌入式系统,那么开发计划中必须包括开发板的bootloader的开发。幸运的是,有几个极好的开源bootloader,可以在项目中进行定制。
Bootloader在电源开启后执行如下主要任务:
· 初始化关键硬件组件,例如SDRAM控制器、I/O控制器和图形控制器等
· 初始化系统内存,为传递控制操作系统做准备
· 分配系统资源,如外设的内存和中断电路
· 提供一个定位和载入操作系统映像的机制
· 载入和传递控制操作系统,传递所需的启动信息,如总内存尺寸、时钟频率、串口速度和底层硬件指定的配置数据

上面只是Bootloader的概述,要记住:如果你的嵌入式系统建立在定制设计平台,作为系统设计者,你必须提供这些bootloader功能;但如果你的嵌入式系统基于商业成品平台,通常bootloader已经包括在开发板中。


Bootloader的启动方式

Bootloader的启动方式主要有网络启动方式、磁盘启动方式和Flash启动方式。


1、网络启动方式

此方式主要用于主机+开发板,他们之间通过网络来连接,首先开发板的DHCP/BIOS通过BOOTP服务来为Bootloader分配IP地址,配置网络参数,这样才能支持网络传输功能。STB225的U-Boot能够直接配置网络参数,因此可不使用DHCP的方式动态分配IP。接下来开发板的Bootloader通过TFTP服务将内核映像下载到开发板,然后通过网络文件系统来建立主机和开发板之间的文档通信过程(NFS服务),之后的系统更新通常也是使用Bootloader的这种工作模式。工作于此模式下的Bootloader通常都会向终端用户提供一个简单的命令行接口。


2、磁盘启动方式

此方式主要用于台式机+服务器,这些电脑都使用BIOS引导,并且使用磁盘作为存储介质,有两个重要的启动Linux的LILO和GRUB。


3、Flash启动方式
最常用的方式。Flash有NOR Flash和NAND Flash两种。NOR Flash能支持随机访问,故代码能够直接在Flash上执行,Bootloader一般存储在Flash芯片上。另外Flash还存储参数、内核映像和文件系统。这种启动方式和网络启动方式之间的不同之处在于:在网络启动方式中,内核映像和文件系统先放在主机上,然后经过网络传输下载到开发板,而Flash启动方式的内核映像和文件系统则直接放在Flash中。这两种方式在U-Boot的使用过程中都会用到。


分享到:
评论

相关推荐

    Java嵌入式开发基础教程

    在学习过程中,逐步掌握以上知识点,可以让你具备进行Java嵌入式开发的基本技能,为构建各种嵌入式系统打下坚实的基础。不过,具体的学习内容还需要根据"新建文件夹"中的具体文件来进一步确定。

    嵌入式开发基础+实践教程课

    本教程将带你深入理解嵌入式开发的基础和实践,让你具备设计和实施嵌入式解决方案的能力。 首先,我们来探讨嵌入式系统的基础知识。嵌入式系统的核心是微处理器,它是整个系统的大脑,负责执行指令和控制硬件。微...

    零基础学会ARM嵌入式开发

    零基础学会ARM嵌入式开发

    嵌入式开发零基础起步

    由于嵌入式开发即需要掌握一定的硬件知识,还需要掌握必要的软件编程知识,把许多初学挡在了门外,本文的目的就是通过使用一块小型嵌入式开发板,引导初读者对嵌入式开发有一个感性的认识,激发出学习热情,进而逐步...

    嵌入式开发入门 ppt

    对于嵌入式开发,动手设计和调试硬件电路是必不可少的技能,这部分内容将帮助读者建立硬件基础。 最后,“05第三章2前向通道.ppt”可能讲解嵌入式系统中的通信接口和协议,如UART、SPI、I2C等,以及如何实现数据...

    嵌入式开发详解

    嵌入式开发详解 知识点一:嵌入式系统的概念与特点 嵌入式系统是一种专用的计算机系统,它被嵌入到一个应用系统中,与该应用系统协同工作,完成特定功能。嵌入式系统有以下几个显著特点:实时性、专用性、可靠性、...

    嵌入式系统开发基础

    了解Linux的基本架构、文件系统、命令行接口以及进程管理对于嵌入式开发至关重要。例如,学会使用shell脚本自动化任务,理解和操作设备节点(/dev),以及理解Linux进程间通信(IPC)机制如管道、信号量和共享内存等...

    计算机三级嵌入式开发技术

    计算机三级嵌入式开发技术是全国计算机等级考试中的一项重要科目,主要针对对嵌入式系统有深入理解和应用能力的考生。2016年3月的考试资料为备考者提供了全面的学习资源,帮助他们掌握相关知识并应对考试。 首先,...

    Linux嵌入式开发基础

    总结来说,"Linux嵌入式开发基础"涵盖了从内核移植、根文件系统构建、驱动程序开发到应用编程的全过程,是深入理解和实践Linux在嵌入式系统中应用的基石。通过深入学习和实践,开发者可以为各种硬件平台打造出高效、...

    21天学通ARM嵌入式开发

    总之,《21天学通ARM嵌入式开发》教程覆盖了从基础理论到实践应用的广泛内容,是初学者进入ARM嵌入式世界的良好起点。通过系统地学习和实践,你将具备开发复杂嵌入式系统的技能,为未来的创新项目奠定坚实基础。

    嵌入式开发经典网页收藏.rar

    《嵌入式开发经典网页收藏》 嵌入式开发是一个涵盖广泛的领域,它涉及到硬件、软件、操作系统以及各种专用设备的交互。这个压缩包“嵌入式开发经典网页收藏.rar”显然是一份珍贵的资源,包含了多篇关于嵌入式开发的...

    嵌入式开发学习知识点梳理--思维导图.pdf

    嵌入式开发学习知识点梳理是指学习嵌入式开发相关的知识点,包括嵌入式应用领域、嵌入式方向、嵌入式相关岗位、嵌入式编程基础、嵌入式硬件基础、常见开发工具、嵌入式典型平台(ARM)、嵌入式应用层开发、嵌入式...

    ARM嵌入式系统基础教程习题答案

    本资源为 ARM 嵌入式系统基础教程习题答案,涵盖了嵌入式系统的基本概念、嵌入式处理器、嵌入式操作系统、项目开发生命周期、风险分析、系统规范、系统规划、项目讨论等方面的知识点。 一、嵌入式系统基本概念 * ...

    嵌入式 开发 书籍汇总

    1. **《Linux嵌入式开发》** 这本书可能主要关注于将Linux操作系统应用于嵌入式设备的技术。它可能涵盖了Linux内核裁剪、Bootloader的构建、设备驱动程序开发、以及在嵌入式平台上的应用程序设计。读者可能会学习...

    arm linux嵌入式开发电子书大全

    这些资源覆盖了嵌入式开发的基础知识到高级技术,对于希望深入了解ARM架构及Linux系统在嵌入式应用中的实现细节的学习者来说非常有价值。 #### 可能包含的书籍类型 - **基础入门类**:介绍ARM架构的基本概念、工作...

    嵌入式开发经典基础教程

    通过学习这个经典教程,你将能够建立起坚实的嵌入式Linux开发基础,从而能够设计和实现高效的、针对特定硬件平台的应用程序。《嵌入式Linux应用程序开发详解》这本书会详细讲解这些知识点,并通过实例帮助你巩固理论...

    嵌入式开发基础实验指导书.doc

    嵌入式开发基础实验指导书.doc

    嵌入式LINUX基础教程中文第2版 --百度网盘

    嵌入式LINUX基础教程中文第2版 高清带书签 本书是嵌入式Linux领域的名著。全面深入而又简明地阐述了构建嵌入式Linux系统的精髓。书中不仅剖析了嵌入式Linux系统,而且讲述了处理器、内核、引导加载程序、设备驱动...

Global site tag (gtag.js) - Google Analytics