文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发其他语言ARM的嵌入式Linux移植体验之操作系统
精品推荐
特别推荐
·控制面板知多少
·给你十条学习Ruby语言的理由
·分页管理机制
·Perl 语言的重要价值体现
·经验技巧:分享两条Delphi开发经验
·Java编程思想:面向对象的逻辑思维方法
·Samba系统简介
热点TOP10
·AIX 5L 学习大纲/简易教程(2)(未经许可,请勿COPY)
·DENX U-Boot及Linux使用手册
·EZ-USB 68013A开发指南
·图象处理中的边缘检测------canny算子
·Visual C++ ADO数据库编程入门
·利用 wordXP 实现自动排班
·UDT协议-基于UDP的可靠数据传输协议
·XPCOM--LINUX下的组件开发技术
·MyEclipse JSF 快速入门中文版(上)
·samba和openldap结合实战
·AIX 5L 学习大纲/简易教程(1)(未经许可,请勿COPY)
·Microsoft Windows XP Embedded 开发工具概述
·eMbedded Visual C++开发入门
·在VC6中创建wxWidgets项目[附图]
·数值计算程序大放送-线性代数方程组
·列表视图控件
·visual studio 2005 简体中文团队开发版 SQL server 2005简体中文版下载
·Visual Studio 2005:在 Visual C++ 中开发自定义的绘图控件
·多文档界面(MDI)
·汇编语言工具下载

ARM的嵌入式Linux移植体验之操作系统

日期:2008年5月10日 作者: 查看:[大字体 中字体 小字体]



  在笔者撰写的《C语言嵌入式系统编程修炼之道》一文中,主要陈诉的软件架构是单任务无操作系统平台的,而本文的侧重点则在于讲述操作系统嵌入的软件架构,二者的区别如下图:

ARM的嵌入式Linux移植体验之操作系统(图一)



  嵌入式操作系统并不总是必须的,因为程序完全可以在裸板上运行。尽管如此,但对于复杂的系统,为使其具有任务管理、定时器管理、存储器管理、资源管理、事件管理、系统管理、消息管理、队列管理和中断处理的能力,提供多任务处理,更好的分配系统资源的功能,很有必要针对特定的硬件平台和实际应用移植操作系统。鉴于Linux的源代码开放性,它成为嵌入式操作系统领域的很好选择。国内外许多知名大学、公司、研究机构都加入了嵌入式Linux的研究行列,推出了一些著名的版本:

  ·RT-Linux提供了一个精巧的实时内核,把标准的Linux核心作为实时核心的一个进程同用户的实时进程一起调度。RT-Linux已成功地应用于航天飞机的空间数据采集、科学仪器测控和电影特技图像处理等广泛的应用领域。如NASA(美国国家宇航局)将装有RT-Linux的设备放在飞机上,以测量Georage咫风的风速;

  ·uCLinux(Micro-Control-Linux,u表示Micro,C表示Control)去掉了MMU(内存管理)功能,应用于没有虚拟内存管理的微处理器/微控制器,它已经被成功地移植到了很多平台上。

  本章涉及的mizi-linux由韩国mizi公司根据Linux 2.4内核移植而来,支持S3C2410A处理器。

  1.Linux内核要点

  和其他操作系统一样,Linux包含进程调度与进程间通信(IPC)、内存管理(MMU)、虚拟文件系统(VFS)、网络接口等,下图给出了Linux的组成及其关系:

ARM的嵌入式Linux移植体验之操作系统(图二)

  Linux内核源代码包括多个目录:

  (1)arch:包括硬件特定的内核代码,如arm、mips、i386等;

  (2)drivers:包含硬件驱动代码,如char、cdrom、scsi、mtd等;

  (3)include:通用头文件及针对不同平台特定的头文件,如asm-i386、asm-arm等;

  (4)init:内核初始化代码;

  (5)ipc:进程间通信代码;

  (6)kernel:内核核心代码;

  (7)mm:内存管理代码;

  (8)net:与网络协议栈相关的代码,如ipv4、ipv6、ethernet等;

  (9)fs:文件系统相关代码,如nfs、vfat等;

  (10)lib:库文件,与平台无关的strlen、strcpy等,如在string.c中包含:

char * strcpy(char * dest,const char *src)
{
char *tmp = dest;
while ((*dest++ = *src++) != '\0')
/* nothing */;
return tmp;
}
  (11)Documentation:文档

  在Linux内核的实现中,有一些数据结构使用非常频繁,对研读内核的人来说至为关键,它们是:

  1.task_struct

  Linux内核利用task_struct数据结构代表一个进程,用task_struct指针形成一个task数组。当建立新进程的时候,Linux为新的进程分配一个task_struct结构,然后将指针保存在task数组中。调度程序维护current指针,它指向当前正在运行的进程。

  2.mm_struct

  每个进程的虚拟内存由mm_struct结构代表。该结构中包含了一组指向vm-area_struct结构的指针,vm-area_struct结构描述了虚拟内存的一个区域。

  3.inode

  Linux虚拟文件系统中的文件、目录等均由对应的索引节点(inode)代表。

  2.Linux移植项目

  mizi-linux已经根据Linux 2.4内核针对S3C2410A这一芯片进行了有针对性的移植工作,包括:

  (1)修改根目录下的Makefile文件

  a.指定目标平台为ARM:

#ARCH := $(shell uname -m sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
ARCH := arm
  b.指定交叉编译器:

CROSS_COMPILE = arm-linux-

  (2)修改arch目录中的文件

  根据本章第一节可知,Linux的arch目录存放硬件相关的内核代码,因此,在Linux内核中增加对S3C2410的支持,最主要就是要修改arch目录中的文件。

  a.在arch/arm/Makefile文件中加入:

[1] [2] [3] [4] [5] [6] 下一页 




上一篇:ARM的嵌入式Linux移植体验之BootLoader

下一篇:设计面向Pocket PC浏览器的Web站点

ARM的嵌入式Linux移植体验之操作系统 相关文章:
·苹果操作系统精选
·快马加鞭 20秒进入Win XP操作系统
·DENX U-Boot及Linux使用手册
·Linux常用命令详解
·Linux各种服务器的架设
·板载RAID功能制作磁盘阵列并安装操作系统
·linux知识大全
·如何卸载WindowsXP操作系统
·Windows XP操作系统中隐藏的20个秘密
·Linux文件和目录访问权限设置
ARM的嵌入式Linux移植体验之操作系统 相关软件:
·鸟哥的linux私房菜:基础学习篇
·红帽子Red Hat Linux 8.0(3G,5CD)
·中文操作系统windows XP
·嵌入式系统应用开发技术 wmv 视频教程
·Linux 系统命令及其使用详解(大全)
·DELL OEM winxp sp2 原版操作系统(dell oem winxp sp2 cn)
·linux操作系统视频教程
·微软MSDN版的windows操作系统大全 DVD 真正原版
·同花顺TopView(赢富)深度决策证券行情分析软件(T+1)体验版 V7.40.72
·楚广明24小时学通Linux RM 其他介绍

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.com All Rights Reserved. 鄂ICP备05000083号Powered by:vipcn