发表于
2008-5-9 11:30:21
龙人教你动手做一个 简单的嵌入式操作系统
本文龙人教你怎样 实现一个什么都不能做的 嵌入式操作系统 。
龙人计算机 嵌入式研发中心 是国内最早进入嵌入式技术研发和应用推广的技术型企业之一 , 龙人嵌入式研发中心 自成立以来,专注于嵌入式底层应用技术的研究和开发 的同时为广大客户提供嵌入式系统开发技术、 嵌入式解决方案 和嵌入式产品(嵌入式开发板、ARM开发板、 ARM9开发板 、ARM开发工具、ARM仿真器和ARM工控板、ARM实验仪等)。
1. 首先确定CPU,在这里为了简单,就选用嵌入式的CPU,比如A RM系列, 之所以用RISC(简单指令集)类型的CPU,其方便之处是没有实模式与保护模式之分,采用线性的统一寻址,也就是不需要进行段页式内存管理,还有就是芯片内部集成了一些常用外设控制器,比如以太网卡,串口等等,不需要像在PC机的主板上那么多外设芯片 ;
嵌入式 嵌入式开发 嵌入式系统 嵌入式操作系统 嵌入式解决方案
2.确定要实现的模块和功能,为了简单,只实现多任务调度(但有限制,比如最多不超过10),实现中断处理(不支持中断优先级),不进行动态SHELL交互,不实现动态模块加载,不实现fork之类的动态进程派生和加载(也就是说要想在你的操作系统上加入用户程序,只能静态编译进内核中;不支持文件系统,不支持网络,不支持PCI,USB,磁盘等外设(除了支持串口,呵呵,串口最简单嘛),不支持虚拟内存管理(也就是说多任务中的每个进程都可以访问到任何地址,这样做的话,一个程序死了,那么这个操作系统也就玩完了)
3.确定要使用的编译器,这里采用GCC,文件采用ELF格式,当然,最终的文件就是BIN格式,GCC和LINUX有着紧密的联系,自己的操作系统,需要C库支持和系统调用支持,所以需要自己去裁剪C库,自己去实现系统调用
4.实现步骤:首先是CPU选型,交叉编译环境的建立,然后就是写BOOTLOADER,写操作系统
关于怎样实现 BOOTLOADER 请进 龙人嵌入式系统开发 的网站 http://www.armodm.com 查看“嵌入式操作系统开发实践之 如何实现BOOTLOADER ”这篇技术文章。