`
0769
  • 浏览: 83986 次
  • 性别: Icon_minigender_1
  • 来自: 东莞
社区版块
存档分类
最新评论

嵌入式系统开发:Arm与Linux的完美结合

阅读更多
嵌入式系统的定义应当是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

比如现在ATM取款机就是一个典型RTOS,embedded os主要包括两部分,一部分是处理器,比如ARM,POWERPC,MIPC,一部分是OS,比如linux,wince,vxworks,us/os,etc.我现在主要学习的路线是arm+linux,选择arm主要是因为arm技术已经比较成熟,选择linux是因为linux是开源的,免费的,另外如果学好了linux就算将来不搞嵌入式系统开发这块,也可以专供linux服务器这一方面。

学习嵌入式linux,主要做的就是四点,一点就是写bootloader,并移植到到nand flash上,第二点,编译kernel,并通过bootloader下载到nand flash上,第三点,在基于nand flash上建立文件系统,第四点,把写好的应用程序下载到target上。基本流程就是这么下来的,具体到开发板上时可能就有所差别了,下边就以深圳优龙公司的fs2410为目标板具体的上述一下开发的流程,以及在开发中应注意的问题。

 第一步:交叉编译环境的建立

A: 基于linux操作系统的应用开发环境一般是由目标系统硬件(开发板)和宿主pc机所构成。目标硬件开发板用于运行操作系统和系统应用软件。而目标板所用到的操作系统的内核编译、应用程序的开发和调试则需要通过宿主pc机来完成(所以称为交叉编译)。双方之间一般通过串口,并口或以太网接口建立连接关系。安装linux os,比如redhao linux 9.0,可以采用默认安装(但要包含ftp服务),将该linux服务器接入局域网,其他的pc机可以用windows,需要的软件工具包括。

(1)ftp客户端程序

(2)telnet工具

(3)移植到某一特定arm平台的linux操作系统内核源码

(4)gnu编译工具,可由相关网站下载

在某工作站pc上安装ftp客户端程序和telnet工具,linux os kernel的编译一般有一个比较固定的步骤,会根据Makefiel文件的不同而略有差异,可参考相关文档,按固定的步骤编译内核完成以后,会在相应目录生成可执行的二进制文件,通过ftp传到pc机上,热后通过串口或网络下载到开发板上。

B:(1) 创建编译环境,在这个过程中,将设置一些环境变量,创建安装目录,安装内核源代码和头文件等。

(2) 创建binutils.在这个过程结束后,会创建类似arm-linux-ld等工具。

(3) 创建一个交叉编译版本的gcc,注意:在这个过程中,只能编译c程序,而不能编译c++程序。

(4) 创建一个交叉编译版本的glibc,这里最容易出问题。

(5) 创建一个交叉编译版本的gdb。这个过程结束后,会创建arm-linux_gdb

(6) 重新创建gcc。前面创建gcc的过程没有编译c++编译器,现在glibc已经准备好了,所以这个步骤将完善gcc的交叉编译。

(7) 重新创建glibc.

如果在交叉编译过程中出现错误,那么请检查:

版本选择是否正确,以及是否安装了相应的补丁;

库文件路径设置是否正确;

系统环境变量是否设置正确。

第二步:编写bootloader并移植到开发板上

A:bootloader(引导加载程序)是系统加电后运行的第一段代码。嵌入式系统中的bootloader相当于pc机中的bios。大多数bootloader都包含两种不同的操作模式,一种是启动加载(bootloading)模式,在这种模式下,bootloader从目标机上的某个固态存储器设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。这种模式是bootloader的正常工作模式,另一种是下载(downloading)模式。在这种模式下,目标机上的bootloader将通过串口或网络等通信手段从开发主机(host)上下载内核映像和根文件系统映像等到RAM中。然后可以再被bootloader写到目标机上的固态存储介质上。

B:bootloader启动大多数都分为两个阶段

(1):基本的硬件初始化(屏蔽所有的中断,关闭处理器内部指令/数据cache等)。

为第二阶段准备RAM空间,如果是从某个固态存储媒质中,则复制bootlodaer的第二阶段代码到RAM。

设置堆栈。

跳转到第二阶段的C程序入口点。

(2):初始化本阶段要使用的硬件设备。

检查系统内存映射。

将内核映像和根文件系统映像从flash读到RAM。

为内核设置启动参数调用内核。
分享到:
评论

相关推荐

    嵌入式系统/ARM技术中的嵌入式系统开发:Arm与Linux的完美结合

    操作系统则包括Linux、Windows CE、VxWorks、uC/OS等,Linux由于其开源、免费的特性,以及强大的网络和多任务处理能力,成为了嵌入式开发的热门选择。 学习嵌入式系统开发,特别是ARM+Linux的结合,意味着你需要...

    嵌入式学习资料之ARM与Linux的完美结合PPT教案.pptx

    Linux作为开源且功能强大的操作系统,常与ARM结合,用于构建嵌入式系统。 学习嵌入式Linux开发,主要涉及四个关键步骤:首先,编写Bootloader并移植到NAND Flash中,Bootloader是系统启动后执行的第一段代码,负责...

    ARM嵌入式系统结构与编程部分完美版资料.pptx

    ARM嵌入式系统结构与编程是嵌入式技术学习中的重要组成部分,主要涉及微处理器、嵌入式操作系统、系统开发和编程等内容。ARM处理器作为现代嵌入式系统中广泛使用的微处理器架构,其低功耗、高性能的特点使其在各种...

    arm-linux-gcc-4.4.3

    《ARM-Linux-GCC-4.4.3:...无论是系统级的底层开发,还是用户界面的构建,这个工具都是确保软件与硬件完美结合的关键。通过熟练掌握和使用`arm-linux-gcc-4.4.3`,开发者可以更高效地推动嵌入式Linux项目的发展。

    ARM嵌入式系统教程 PPT

    这一章节中,编译工具链和调试工具的使用,以及嵌入式开发环境的搭建,都是构建完整嵌入式系统不可缺少的环节。掌握这些技能,可以让开发者深入理解软件与硬件之间的交互,为创造高性能的嵌入式应用奠定基础。 ...

    ATK-DLIMX93嵌入式Linux驱动开发指南

    该系列采用Arm Cortex-A53 应用处理器内核与 Arm Cortex-M7 实时处理器内核相结合的设计方案,实现了高性能处理与实时控制功能的完美融合。 - **高性能处理能力**:Arm Cortex-A53 内核支持高效的应用处理需求。 - ...

    基于armlinux驱动开发研究.pdf

    Linux 以其成本低、功能强大、源代码开放等特点完美地与嵌入式技术结合在一起,使得基于嵌入式 Linux 的产品在市场上具有很强的竞争力。 2. 嵌入式 Linux 驱动程序开发 设备驱动程序是底层和上层应用的桥梁,设备...

    基于ARM-Linux远程视频监控系统的设计.pdf

    总之,基于ARM-Linux的远程视频监控系统的设计,成功实现了嵌入式技术和网络技术的完美结合,其高效稳定的性能和广阔的应用前景,预示着这一技术在未来必将拥有更广阔的发展空间和应用价值。随着技术的不断成熟与...

    基于ARM的嵌入式视频监控系统的设计与实现.pdf

    总的来说,基于ARM的嵌入式视频监控系统是信息技术与传统监控的完美结合,不仅体现了嵌入式系统的优势,还展现了现代通信技术在视频监控领域的应用潜力。随着技术的不断进步,这种系统将在各种领域得到更广泛的应用...

    嵌入式linu学习规划

    ### 嵌入式Linux学习规划详述 #### 一、C语言——编程基础与硬件控制 **核心知识点**: ...通过以上详尽的学习规划,可以帮助初学者构建完整的嵌入式Linux知识体系,逐步成长为一名合格的嵌入式开发工程师。

    一个基于QT、ARM开发板、Linux系统并对接百度AI的停车管理系统.zip

    在此项目中,Linux作为底层操作系统,提供稳定的运行环境,支持各种服务和进程,与QT框架和ARM硬件完美结合。 4. **数据库**:停车管理系统需要存储大量的车辆信息、车位状态、用户数据等,因此必然涉及到数据库的...

    基于TCP_IP网络的嵌入式Linux智能系统研究.pdf

    首先,嵌入式Linux智能系统将嵌入式技术和Linux操作系统的优势完美结合,提供了一种低成本而性能卓越的解决方案。在现代家庭安全领域,如防盗报警和可视门铃系统中,这类系统尤为受欢迎。由于其在经济性和高效率上的...

    嵌入式系统/ARM技术中的小型计算机成为嵌入式系统的宝藏

    结合Linux操作系统,开发者可以获得强大的软件支持和丰富的开发工具,进一步加速项目的进展。此外,由于Waysmall支持开源社区,开发者可以利用现有的开源软件库和驱动程序,节省大量的时间和资源。 总之,Gumstix...

    ARM6818电子钢琴

    3. **用户界面**:项目提到“完美的界面”,这意味着开发团队可能采用了图形用户界面(GUI),如嵌入式Linux系统上的Qt或Android系统,来提供直观的操作体验。用户可以通过触摸屏或其他输入设备演奏和调整音色、音效...

    基于嵌入式Linux和GPRS远程心电监护的终端设计.pdf

    它不仅体现了现代科技与传统医疗的完美结合,也为我们展示了一个高效、智能化的医疗设备设计典范。随着技术的不断发展和更新,我们有理由相信,未来这样的医疗设备将更加普及,为人类的健康事业作出更大的贡献。

    嵌入式电子相册设计 电子爱好

    嵌入式电子相册设计是将传统的静态照片与现代电子技术结合的一种创新方式,它利用单片机技术、图形用户界面(GUI)和特定的操作系统,如μC/OS-II,来实现动态浏览、编辑和管理照片的功能。本文将深入探讨基于AMR9...

Global site tag (gtag.js) - Google Analytics