基于S3C2410的嵌入式Linux系统构建工控技术应用于物品智能管理
在嵌入式系统领域,基于ARM微核的处理器已经成为主流选择。随着ARM技术的普及,建立面向ARM架构的嵌入式操作系统成为了研究热点。众多嵌入式操作系统中,Linux因其开源代码和免费使用而受开发者青睐。本文基于S3C2410这个32位ARM920T内核微处理器,构建并移植了一个Linux嵌入式操作系统,并进行了应用程序开发。
开发环境介绍
1.1 基于S3C2410 ARM920T的硬件平台
本项目使用深圳旋极公司提供的硬件平台,该平台核心为三星S3C2410 ARM920T芯片,并配备64M NAND FLASH、RAM外围存储芯片、串口、网口和USB接口、CSTN LCD与触摸屏显示设备以及UDAL34lTS音频设备。这些组件共同构成了基于ARM920T的开发板。
1.2 嵌入式Linux软件系统
该嵌入式Linux软件系统由引导加载程序vivi、Linux 2.6.14内核、YAFFS2文件系统以及用户程序组成。在通常布局中,本系统增加了一个启动参数区,用以存放启动参数,以便引导加载程序决定启动模式等。此外,本项目采用64M NAND FLASH作为存储设备,其布局如表所示。
嵌入式Linux系统设计与实现
2.1 引导加载程序vivi
vivi是韩国MIZIResearch公司为SMDK2410开发板编写的一款引导加载程序,由两部分组成:一部分是依赖CPU体系结构的初始化代码;另一部分是用C语言实现内存空间映射并从FLASH读取内核映像至RAM,以及设置启动参数后调用内核。Bootloader viva通过以下步骤移植:
(1)指定Makefile中的路径。
(2)修改smdk.C里的mtd-partition-t default-mtd-partitions[]分区内容。
(3)添加loadyaffs命令支持YAFFS2映像下载。
(4)执行make distclean和make menuconfig裁剪选项。
(5)JTAG烧写到目标板NAND FLASH零地址处。
2.2 Linux 2.6.14内核移植
由于$3C2410特定体系结构和硬件功能部件,本项目采用的是Linux 2.6.14版本,这个版本需要从网络上下载yaffs-20.tar.gz文件并打补丁使其支持YAFFS文件system.
在arch/arm/mach-s3c24/目录下对Makefile交义编译项进行修改,对devs.c加入静态分区信息,并建立Nand Flash分区表。此外,还需调整nandset定义以支持NAND Flash驱动,并在initdata中初始化nand信息以确保在启动时正确挂载/dev为devfs文件system.
通过以上步骤,我们成功地将vivi Bootloader移植至基于32位ARM920T内核的发展板,同时也成功地将Linux 2.6.14 内核移植至该硬件平台上,为进一步应用层面的工作奠定了基础。