目前 , 在嵌入式系统里基于ARM核的嵌入式处理器已经成为市场主流。随着ARM技术的广泛应用 , 建立面向ARM构架的嵌入式操作系统也就成为当前研究的热点。S3C2410是SAMSUNG公司基于ARM920T处理器内核开发的一款16/32位嵌入式处理器,运行频率高达200多M,具有MMU和高速缓存等丰富片上资源,是目前基于ARM920T内核的出货量最大的一款芯片。目前嵌入式操作系统也较多,如 Tor2nado 的VxWork、微软的 Windows CE等等。大量开发人员选择的却都是Linux,这是因为它源代码开放,可以轻松修改移植到自己的目标平台系统里使用。并且事实证明,效果令人满意。两者的结合必将在嵌入式系统的世界里打出一片天地。
Linux 操作系统的移植
2.1移植的含义
要使得标准Linux能在ARM嵌入式处理器上运作,势必要经过移植 (porTIng) 的过程。所谓移植,就是让一套软件可以在一套选定硬件平台上正常运作,也就是要将平台相依 (platform dependent) 的部分做适当的修改。内核源码arch子目录包括了所有和平台体系结构相关的核心代码,它的每一个子目录都代表所支持的一种体系结构,arm就是关于我们所选处理器体系结构的子目录。我们的移植工作主要集中于此目录下。
2.2移植的具体实现
如果我们已经搭建起完整的交叉编译平台,移植工作便可开始了(以当前使用最广的linux-2.4为例,放于/usr/SRC/ linux-2.4.18之下)。
/ Makefile文件
一个工程往往包含很多的文件,按照一定的规则放在多个目录中。Makefile文件用来指定编译规则,例如哪些需要编译,哪些要先编译。在此处要做的是:
指定目标平台ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
设置为ARCH :=arm
指定交叉编译器CROSS_COMPILE =
设置为CROSS_COMPILE =arm-linux-
/arch/arm/Makefile
启动代码的产生要通过此一文件,由于2.4内核还没有对S3C2410的支持,自行加入如下代码
ifeq ((CONFIG_ARCH_ S3C2410),y)
TEXTADDR = xxx
MACHINE = s3c2410
Endif
TEXTADDR是内核的虚拟起始地址[6],也是内核最终运行地址,通常设为PAGE_OFFSET +0x8000,须根据实际情况相结合[2]。
/arch/arm/config.in
config.in是配置文件,决定了我们在配置菜单中看到的内容。自行加入$CONFIG_ARCH_S3C2410子选项[5]。
if [ “$CONFIG_ARCH_S3C2410” = “y” ]; then
comment‘Archimedes/A5000 ImplementaTIons’
dep_bool ‘SMDK (MERI TECH BOARD) ’
CONFIG _S3C2410_SMDK//
$CONFIG_ARCH_S3C2410
//其他
fi
在if [ “$CONFIG_FOOTBRIDGE_HOST” = “y” -o
……
“$CONFIG_ARCH_SA1100” = “y” ]; then
define_bool CONFIG_ISA y
else
define_bool CONFIG_ISA n
fi
中依样加入“$CONFIG_ARCH_s3c2410” = “y”-o。
/arch/arm/boot/Makefile
上一篇:数字信号处理架构下FPGA,ARM,DSP的对比
下一篇:基于CSMA/CA的MAC协议设计实现
推荐阅读最新更新时间:2024-11-03 11:42
设计资源 培训 开发板 精华推荐
- BD7682FJ-LB 300 至 900 VDC 输入准谐振辅助电源,具有替代启动电路 (ASC),1700V SiC MOSFET
- 使用 PCA9673 FM + 准双向 GPIO 控制 2 步进电机的应用电路
- REP019: 调谐于单一110MHz IF的双频前端CDMA IC
- 手机用usb手柄
- DC2239A,用于 LTC7860EMSE 开关浪涌抑制器的演示板,3.5V = VIN = 60V,3.5V = VOUT = 17.5V @ 5A
- 【训练营】物联网时钟
- LT3091IDE 低噪声单电感正负转换器的典型应用
- 【立创开发板】智能遥控小车
- LT1086CM-3.6 低压差负电源的典型应用
- CGD15FB45P1,适用于 1200V SiC MOSFET 功率模块的六通道栅极驱动器参考设计