Professional Documents
Culture Documents
xlanchen@2007.5.28
μClinux
uClinux 是应用于嵌入式设备的最著名、应用
最广泛一个 Linux 发行版本,它也是一个开放
源码的项目, uClinux 的源代码和开发工具可
以免费从 http://www.uclinux.org 上下载得到
。
uClinux 的含义:
Micro-Control-Linux :专门针对微控制器领域
而设计的嵌入式 Linux 系统
uClinuc 的实时解决方案
uClinux 的内存管理
交叉编译环境
http: //www.uclinux.org/pub/.../arm-elf-tools/
交叉编译器、 Binutils 工具以及 Gdb 等
( 1 )地址转换表和其他内存管理相关的数据结构,
占用系统中的内存。
( 2 )地址转换增加了每一条指令的执行时间,而对
于有额外内存操作的指令会更严重。
( 3 )当进程访问不在内存的页面时,系统发生缺页
失效。系统处理失效极耗时间。
一个解决办法是
增加一个变量 addr ,用于存储 app_start 的实
际地址,并将上述语句改为:
movl addr, a0;
jsr (a0);
增加的变量 addr 将在数据段中占用一个 4 字
节的空间,链接器将 app_start 的绝对地址存
储到 addr 中。在可执行文件加载时,加载器
计算出 app_start 在内存中的实际位置,写入
addr 变量
xlanchen@2007.5.28 Embedded operating system
2 、 uClinux 对 NOMMU 的特殊
处理
uClinux
对在内存管理方面的减少使得对开发
人员提出了更高的要求
从编译内核开始,开发人员必须告诉系统这个开发
板上内存的容量
开发人员在开发应用程序时必须考虑内存的分配情
况并关注应用程序需要运行空间的大小
由于采用实存储器管理策略,用户程序同内核以及
其它用户程序在一个地址空间,程序开发时要保证
不侵犯其它程序的地址空间,以使得程序不至于破
坏系统的正常工作,或导致其它程序的运行异常
0
16M 字节 SDRAM
0x01000000
空余空间,可用作
外设芯片的片选空间
0x1000000
CPU 内部寄存器
0x01001800
空余空间,可用作
外设芯片的片选空间
0xFFC00000
4M 字节的 FLASH,因为存储
OS,所以定位到地址最高端
0xFFFFFFFF
xlanchen@2007.5.28 Embedded operating system
uClinux 源代码 目录 树
参见文件 uClinux-dist/SOURCE
找到缺省规则