嵌入式操作系统uClinux移植到ARM平台的经验总结
1. 简述
针对“如何在以S3C44B0X为核心的ARMSYS开发板上建立uClinux内核移植”的一个总结,其内容包括对Bootloader的功能分析和uClinux2.4.24发行版内核基础上针对S3C44B0X开发板进行修改的重点内容的逐一列举。
2. Bootloader
2.1 Bootloader概述
Boot Loader 就是在操作系统内核运行之前运行的一段程序。通过这段程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。因此,正确建立uClinux的移植的前提条件是具备一个与uClinux配套、易于使用的 Bootloader。
ARMSYS开发板提供了这样一个uClinux专用的Bootloader,该Bootloader程序烧录在系统的地址0x0处,每次上电即运行,能够正确完成硬件系统的初始化和uClinux的引导。
理论上,uClinux引导时并非一定需要一个独立于内核的Bootloader。然而,将Bootloader与内核分开设计能够使软件架构更加清晰,也有助于灵活地支持多种引导方式,实现一些有用的辅助功能。
ARMSYS提供的Bootloader的主要任务可以概括如下:
1.硬件初始化;
2.从主机下载新的内核映像和文件系统映像;
3.烧写NorFlash和Nandflash;
4.加载uClinux 内核映像并启动运行;
5.提供串行超级终端上的人机操作界面。
2.2 存储空间分布
Bootloader采用默认的存储空间分布地址来加载uClinux内核、文件系统,并按照正确引导uClinux的运行。在ARMSYS的Bootloader中,默认的存储空间分布如下表:
内容 起始地址 存储介质
Bootloader程序空间 0x00000000 Flash
压缩内核映像 0x00010000 Flash
ROM文件系统映像 0x000e0000 Flash
内核运行地址 0x0c008000 SDRAM
压缩内核解压地址 0x0c100000 SDRAM
文件系统加载 0x0c700000 SDRAM
这个存储空间的分配方式也不是固定不变的,可以通过修改Bootloader中的相关代码来改变。
2.3 Bootloader的工作
完整的Bootloader引导流程可描述如下:
硬件初始化阶段一
◎ 硬件初始化;
◎ 复制二级中断异常矢量表;
◎ 初始化各种处理器模式;
◎ 复制RO和RW,清零ZI (跳转到C代码入口函数)。
硬件初始化阶段二
◎ 初始化本阶段使用到的硬件设备;
◎ 建立人机界面;
◎ 实现映像文件的下载和烧录工具;
◎ 实现映像文件的加载和运行工具。
下面对上述各步骤进行逐一说明,并对与uClinux相关的内容详细加以说明。

图片新闻
最新活动更多
-
直播中立即进入>> 2019中国(合肥·肥东)AIoT产业发展论坛
-
即日-12.14立即下载>> 戴尔科技智能制造精准白皮书限时下载
-
即日-12.15立即下载>> 干货下载【是德科技白皮书】现成的信号分析仪测量应用软件为您节省宝贵时间
-
12月25日立即报名>> 【在线研讨会】智慧出行:亚马逊AWS赋能车联网行业
-
12月26日立即报名>> 2019深圳市生命健康行业年度发展论坛
-
即日-12.31立即下载>> NI院校科研技术白皮书限时下载
-
10 华为推进鸿蒙系统
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论