当前位置:首页 > 单片机 > 单片机
[导读]引言目前,嵌入式操作系统的种类很多,如VxWorks,Windows CE和Linux等。在这些操作系统中,Linux是发展最快,应用最广泛的。由于使用费用、开放源代码程度和使用习惯等各方面因素,Linux是得到较多推广的操作系统之

引言

目前,嵌入式操作系统的种类很多,如VxWorks,Windows CE和Linux等。在这些操作系统中,Linux是发展最快,应用最广泛的。由于使用费用、开放源代码程度和使用习惯等各方面因素,Linux是得到较多推广的操作系统之一。由于Linux支持从x86到嵌入式处理器的多种处理器,使得Linux桌面PC上开发的很多资源可以轻松的移植到各种嵌入式平台上,这种便利使得在嵌入式系统中使用Linux操作系统具有很大吸引力。

开发环境

硬件环境

本系统中使用目标平台S3C2410(SAM SUNG公司使用ARM920T处理器内核开发的一款嵌入式处理器)。ARM920T核由ARM9TDMI,存储管理单元(MMU)和高速缓存三部分组成。

S3C2410的资源还包括外围存储设备(SDRAM和NandFlash),外围显示设备(触摸屏和LCD)与外围接口设备(串口、网口与并口)。

软件平台

嵌入式Linux系统从软件系统的角度通常可以分为以下4个部分。
  ·引导加载程序。包括固化在固件中的启动代码(可选)和Bootloader。
  ·内核。特定于嵌入式板子的定制内核以及控制内核引导系统的参数。
  ·文件系统。包括根文件系统和建立于Flash内存设备之上的文件系统。它是提供管理系统的各种配置文件以及系统执行用户应用程序的良好的运行环境的载体。
  ·用户应用程序。特定于用户的应用程序。有时在用户应用程序和内核层之间可能还会有一个嵌入式图形用户界面。同时装有Bootloader、内核启动参数、内核映象和根文件系统。

嵌入式Linux系统移植的实现

引导加载程序

Boot Loader 是在操作系统内核运行之前运行的一段小程序。大多数 Boot Loader 都分为 stage1 和 stage2 两大部分。Stage1主要包含依赖于CPU的体系结构硬件初始化的代码,通常都用汇编语言来实现。这个阶段的任务有:(1)为基本的硬件设备初始化(屏蔽所有的中断、关闭处理器内部指令/数据cache等),(2)为第二阶段准备RAM空间(如果是从某个固态存储媒质中,则复制Bootloader的第二阶段的代码到RAM),(3)设置堆栈并跳转到第二阶段的C程序入口点。Stage2通常用C语言完成,以便实现更复杂的功能,也使程序有更好的可读性和可移植性。这个阶段的任务有:(1)初始化本阶段要使用到的硬件设备,检测系统内存映射。(2)将内核映像和根文件系统映像从Flash读到RAM。 (3)为内核设置启动参数,调用内核。

本系统中采用的BootLoader是韩国Mizi公司开发的vivi,适用于ARM9处理器。在配置编译之前,首先要建立交叉编译环境。把 cross-2.95.3.tar.bz2、arm-linux-gcc-3.4.1.tar.bz2软件包拷贝到/usr/local/arm目录下,分别解压这两个包以构成本系统的交叉编译环境。

编译Bootload vivi 主要步骤如下:

[1]解压vivi源文件 tar jxvf vivi.tar.bz2

[2]进入vivi目录 编译 makefile ,主要修改如下:
  LINUX_INCLUDE_DIR = /usr/local/arm/2.95.3/include
  CROSS_COMPILE = /usr/local/arm/2.95.3/bin/arm-linux-
  ARM_GCC_LIBS = /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3

[3]编译vivi/arch/s3c2410/smdk.c,根据实际板子的实际情况对NandFlash进行分区。需要注意的是要和下面Linux内核配置编译配合起来。本开发板提供的64M的NandFlash做为存储设备,其空间分配表如表1所示。

[4] make menuconfig

[5] make

至此,可以生成vivi的bin文件,通过开发板JTAG口和PC机并口建立连接,把vivi移植 到开发板上,重新加电,这样就可以引导内核。

Linux内核的移植

Linux的内核版本发行同Linux对嵌入式处理器支持程度的发展是不同步的。因此,需要对特定的处理器体系结构选择合适的核。本系统采用的是linux-2.6.14.1.tar.bz2的版本,与2.4的版本相比,2.6版本对资源的定义进行了分类,代码相当精练,可读性很好,条理清晰,修改起来容易。

而且支持标准的高级电源管理apm。事实上,Samsung S3C2410已经成为linux的一个标准支持平台。

编译配置内核主要步骤如下:

[1]进入内核源代码目录,修改Flash分区表部分的源码,与vivi对NandFlash的分区相匹配。即定义文件 arch/arm/mach-s3c2410/devs.c中的分区表结构体static struct mtd_partition partition_info[]中的分区名,偏移量和分区大小。同时加入NandFlash分区,即定义结构体struct s3c2410-nand-set nandset[]。与此同时,修改结构体struct s3c2410-platform-nandsupperlpplatform[]以建立对Nand Flash芯片的支持。

最后,加入Nand Flash芯片支持到Nand Flash驱动。

[2]对内核进行适当的配置。在本系统中,配置过程的关键在于是:在对MTD配置时,选择支持MTD驱动以及支持NAND FLASH驱动;选择支持要用到的各类文件选择支持要用到的各类文件系统。如果要建立及安装模块,则要在配置内核时选择模块的支持。选择交叉编译工具 arm-linux-gcc-3.4.1编译内核源码之后,会在kernel/arch/arm/boot/下生成名为zImage的内核映象。在 vivi的命令提示模式下使用下载命令完成内核加载到开发板的存储设备上。

根文件系统

Linux系统采用文件系统组织系统的文件与设备,为设备和用户程序提供统一的接口。文件系统的存在使得数据和设备可以被有效而透明地存取访问。

本系统使用CRAMFS格式的根文件系统,它是具备最基本特性的文件系统,主要用于嵌入式系统,优点是将文件数据以压缩形式存储,在需要运行的时候进行解压缩,具有很大的压缩比,可以做到高效的随机读取。

在本系统中,首先,在根文件目录rootfs下通过输入下面的命令:
  mkdir dev proc etc mnt bin sbin lib tmp

建立上述的目录。没有建立home目录是因为其内容只是针对工作站与服务器的设置有用,在嵌入式Linux中即使有也是空的。然后把所需要的配置文件,动态函数库放到相应的目录。

采用BusyBox是缩小根文件系统的一个好方法。BusyBox非常形象地称为嵌入式Linux系统的“瑞士军刀”,因为它将许多常用的 UNIX命令与工具结合到了一个单独的可执行程序中。虽然与相应的GNU工具比较起来,BusyBox所提供的功能和参数略少,但在嵌入式系统中,已经足够了。

将busybox -1.1.3 .tar.gz放到上述tmp目录下,进行解压:
  tar busybox -1.1.3 .tar.gz
  make distclean
  make menuconfig
  make  TARGET_ARCH=arm
      CROSS=arm-linux-
  PREFIX=/home/arm/dev_home/rootfs/my_rootfs/all install ,其中PREFIX指明了安装路径即我们根文件系统所在路径。

由于根文件系统采用的是CRAMFS格式,所以使用mkcramfs生成cramfs映象,具体的命令是:mkcramfs my_rootfs my_rootfs.cramfs。根文件系统映象文件就完成了。同内核加载一样,通过vivi命令提示把根文件系统映象加载到开发板上。

按照上面的安排,一个基本的嵌入式Linux系统构建完毕。其启动过程如图1所示。

结语

本工作对嵌入式Linux系统的启动加载程序bootloader进行配置,对Linux内核进行裁剪,完成对根文件系统的制作,将嵌入式 Linux移植到基于ARM920T处理器目标板,为开发者提供了在ARM9平台上构建嵌入式Linux系统的方法的参考。实验表明其系统具有很好的实时性、稳定性。
 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

领先的数据和AI平台SAS Viya运用大语言模型的可解释性和可集成性改善现有流程;SAS Data Maker将在保护敏感数据的同时解决关键挑战 北京2024年4月18日...

关键字: SAS VI 生成式AI MAKER

丹麦哥本哈根2023年9月21日  /美通社/ -- 作为客户体验、数据变现和云通信解决方案领域的全球领导者,Comviva 今日宣布与英国电信服务提供商 Leba...

关键字: COM 网络 VI BSP

上海2023年9月14日 /美通社/ -- 自CAR-T疗法在国内获批上市以来,上海嘉会国际肿瘤中心携手国内外合作伙伴,在临床经验分享、学术进展交流、血液肿瘤宣教等方面积极共建CAR-T国际诊疗平台;同时,嘉会...

关键字: IC 模拟 VI RS

北京2023年8月24日 /美通社/ -- 第三十届北京国际广播电影电视展览会(BIRTV2023),这个具有30余年举办历史的全球视听领域交流盛会,当下正在八月的北京如火如荼地进行中。 BIRTV现场 在展会上,成...

关键字: 齿轮 模型 VI 视频接口

上海2023年8月15日 /美通社/ -- 专注于泌尿生殖系统肿瘤的全球化创新药公司亚虹医药(股票代码:688176.SH)宣布,其代理的Uro-G及Uro-V一次性膀胱镜系统注册申请近日已获中国香港特别行政区政府卫生署...

关键字: 医疗器械 OV VI 内窥镜

上海2023年8月10日 /美通社/ -- 今日,Flexport 飞协博首次参加 2023 年越南国际物流展 (VILOG)。展会期间,Flexport 飞协博副总裁兼亚洲区负责人 Thomas Cassut...

关键字: FLEX 数字化 THOMAS VI

自然之趣与科技之力的融合 白山2023年8月8日 /美通社/ -- 2023年7月28日,吉林白山-长白山万达国际度假区迎来11岁的生日,也开启了重新定义度假的新篇章。为表达对大家一直以来的支持之情,长白山万达国际度假...

关键字: 无人机 美团 可持续发展 VI

刚入门嵌入式,选入门级RZ/G2L开发板,采用邮票孔形式封装了RZ/G2L核心板。

关键字: 开发板 嵌入式LINUX 嵌入式系统

全新创意空间彰显芬美意在香氛行业的持久领导力与深厚专业功底  上海2023年3月13日 /美通社/ -- 全球领先的香气与风味制造私营企业芬美意宣布和香研习所(Villa Harmony)在中国开幕,其用于创...

关键字: VI HARMONY AN RS

上海2023年3月10日 /美通社/ -- 2023年3月2日,由中国食品药品国际交流中心主办的第十三届中国医疗器械监督管理国际会议(CIMDR)在福州市开幕。丹纳赫全球质量法规事务副总裁Noreen Galvin,贝克...

关键字: 医疗器械 BSP 人工智能 VI
关闭
关闭