`
zxxSsdsd
  • 浏览: 9712 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

自己基于ARM开发的操作系统

    博客分类:
  • os
 
阅读更多
该freele os操作系统由张同浩 muge0913 http://blog.csdn.net/muge0913 发布,仅供学习交流,请勿商业用途!!

最近很多公司发布了自己的操作系统,可见操作系统的重要性,于是本人打算写一个简单操作系统。写完该操作系统唯一的感受是:底层编程环境很恶劣,还是开发上层应用比较容易:)。现把源代码传到网上和大家分享,如有错误请大家指正:)或者您有好的建议请发送本人邮箱:

zth@pku.edu.cn or muge0913@sina.com

获取源码Github:https://github.com/muge0913/freele-os

博客地址:http://blog.csdn.net/muge0913/article/details/18713017

freele os介绍及使用说明pdf版:http://download.csdn.net/detail/muge0913/6878381

一、freele os开发环境

1. ubuntu 10.04

2. 开发工具:arm-linux-gcc-4.3.2、dnw、minicom

3. 开发板:tiny6410 RAM256MB ROM 2GB

二、freele os实现功能

1. K9K8G08U0A MLC2驱动

2. MMU内存重映射

3. Buddy + Slab + Malloc 内存管理机制

4. 系统时钟,系统定时器

5. 进程管理与调度(FCFS)

6. 存储设备驱动框架

7. 文件系统框架

8. ROMFS文件系统

我只是简单的实现了操作系统最重要的组成部分如内存管理、进程管理和文件系统部分。当然还有一些I/O操作J。内存管理使用的是buddy+ slab + malloc的方式。进程调度使用的FCFS方式。最后在整个文件系统框架下面添加一个romfs,当然在该文件系统框架下可以添加其他的文件系统。

我把系统定义支持3个进程(您可以通过修改一个宏定义来支持不同的进程数),其中程序1、2存放在romfs.img文件系统中,名字分别为task_ont.bin, task_two.bin。内核在启动的过程中会从romfs文件系统中读取程序1、2并加载到内存中然后调度程序分别对内核原进程和进程1、2进行调度。其中进程1只打印A字母,程序2只打印B字母,内核原进程控制流水灯的执行。

三、freele os目录结构

\

freeleos采用了和linux相似的目录管理。

boot:内核启动相关文:bootsect.Sclosck.S nand.c sdram.S

fs:和文件系统相关文件:fs_frame.cramfs.c romfs.c

include:系统使用的头文件:dr_frame.helf.h fs_frame.h irq.h sched.h string.h

init:系统主要初始化main.c

kernel:内核的主要功能实现代码:blk_drv块设备驱动文件夹,chr_drv字符设备驱动文件夹,

dr_frame.c exec.c irq_k1.c sched_test.csys_timer.c trap.S vsprintf.c

lib:程序库

mm:和内存管理相关:memory.cmmu.c

tools:存放生成romfs.img的工具。filesystemgenromfs.c task_one.c task_two.c

四、代码显示

\

五、如何运行freele os

1. 下载启动引导程序源码sys_bootsect-0.02.tar.gz

2. 下载内核源码freele-os-0.01.tar.gz

3. 下载文件系统romfs.img

4. tiny6410连接电脑

5. 打开ubuntu 终端运行以下命令打开minicom

$sudo minicom

6. tiny6410上电进入下载程序模式,如图

\

1. 选择v进入下载uboot模式

2. 编译下载的sys_bootsect-0.02.tar.gz并通过dnw下载开发板

$sudo dnw –f sys_bootsect.bin

3. 选择 k 进入下载kernel模式,但是此时我们下载时rom.img

$sudo dnw –f romfs.img

注意:romfs.img可以使用下载的,亦可以从freele-os源码中生成。

4. 让tiny6410从nand flash中启动。您会看到如下

\

1. 选择y 这样会把刚才下载的romfs.img搬到指定的地方。友善的开发板就是这么不好。很多程序也不开源,所以我只能这样才实现romfs.img的下载!!

2. 回到步骤6 编译下载freele-os-0.01.tar.gz编译后的程序

$sudo dnw –f freele_kernel.bin

3. 最后让tiny6410从nand flash启动,运行到10步骤的图示选择n。

4. 运行效果:第1图示进程1、2的效果。第2图示内核原进程效果(不清楚手机像素问题,其实就是个流水灯J)

\







\

PS:目前上传的源码只支持tiny6410,如果您要在其他平台上运行,您只需修改相应的驱动程序即可。
分享到:
评论

相关推荐

    基于ARM的嵌入式系统开发要点

    本文将深入探讨基于ARM的嵌入式系统开发的关键环节,包括硬件平台选择、操作系统移植、驱动程序开发、应用程序设计以及调试优化等方面。 1. 硬件平台选择:ARM提供多种内核系列,如Cortex-A、Cortex-R和Cortex-M,...

    嵌入式系统设计与实例开发-基于ARM微处理器与μC-OSⅡ实时操作系统

    本主题聚焦于基于ARM微处理器的嵌入式系统设计,并结合了μC-OSⅡ实时操作系统进行实例开发。ARM处理器因其高效能、低功耗的特性,在嵌入式领域广泛应用,从消费电子产品到工业自动化,都有其身影。 μC-OSⅡ...

    基于ARM内核微处理器操作系统的移植

    《基于ARM内核微处理器操作系统的移植》是一个深入探讨如何将RTOS操作系统移植到ARM架构上的技术主题。在本文中,我们将重点关注ARM内核的特点、RTOS操作系统的基本概念以及移植过程的关键要素。 ARM处理器以其高...

    基于ARM嵌入式系统开发

    【基于ARM嵌入式系统开发】的概述及关键知识点 ARM(Advanced RISC Machines)是一种广泛应用的微处理器架构,以其高性能、低成本和低能耗的特性,广泛渗透到嵌入式控制、消费电子、教育多媒体、数字信号处理(DSP...

    基于ARM内核的嵌入式系统开发

    基于ARM内核的嵌入式系统开发涉及多个关键步骤和技术,包括硬件选型、操作系统移植、驱动程序开发、应用程序编写以及系统集成。 一、硬件选型与平台搭建 在进行基于ARM的嵌入式系统开发时,首先需要选择合适的硬件...

    基于ARM的WinCE嵌入式系统开发.rar

    总之,基于ARM的WinCE嵌入式系统开发是一门综合性的技术,涵盖硬件、操作系统、应用程序等多个层面。通过深入学习和实践,开发者可以充分利用WinCE的优势,打造出满足特定需求的高性能嵌入式解决方案。

    ARM嵌入式Linux系统开发技术详解-基于ARM

    《ARM嵌入式Linux系统开发技术详解-基于ARM》是一本深入探讨ARM架构下嵌入式Linux系统开发的专业书籍。本书旨在为读者提供一个全面、深入的了解,如何在ARM处理器上构建和优化Linux系统,涵盖了从硬件接口到软件开发...

    基于ARM Linux嵌入式系统开发环境的快速构建方法.pdf

    "基于ARM Linux嵌入式系统开发环境的快速构建方法" 本文主要讲述了基于ARM Linux嵌入式系统开发环境的快速构建方法。文章首先介绍了嵌入式系统的应用领域和发展前景,然后详细介绍了构建嵌入式系统开发环境的步骤,...

    基于ARM的嵌入式系统开发与实例

    《基于ARM的嵌入式系统开发与实例》是一本深入探讨ARM架构下嵌入式系统设计与实现的专业书籍。ARM(Advanced RISC Machines)处理器以其高效能、低功耗的特性,广泛应用于移动设备、物联网、工业控制等多个领域。...

    三 基于ARM的嵌入式系统软件设计

    总的来说,《基于ARM的嵌入式系统软件设计》涵盖了从处理器理解、操作系统移植、驱动开发、系统优化、固件升级到安全性的全面知识,对于想要深入研究ARM嵌入式系统的开发者来说,是一部值得深入研读的经典之作。...

    基于ARM的嵌入式系统开发与应用

    3. **操作系统**:许多基于ARM的嵌入式系统采用实时操作系统(RTOS),如FreeRTOS、uCLinux等。 4. **社区支持**:ARM拥有庞大的开发者社区,可以获取丰富的文档、教程和论坛支持。 #### 六、结论 基于ARM的嵌入式...

    基于ARM的嵌入式系统软件设计

    本文将深入探讨基于ARM的嵌入式系统软件设计中的核心概念和技术,包括启动代码、实时操作系统(RTOS)以及链接定位和调试技术。 一、启动代码(Bootloader) 启动代码是系统上电或复位后执行的第一段程序,它负责...

    嵌入式系统设计与实例开发—基于ARM微处理器与μC/OS-II实时操作系统

    《嵌入式系统设计与实例开发—基于ARM微处理器与μC/OS-II实时操作系统》是一份关于嵌入式系统开发的教程,主要关注ARM架构的微处理器和μC/OS-II实时操作系统的应用。本教程的核心内容是阐述如何进行嵌入式系统的...

    嵌入式系统设计与实例开发—基于ARM微处理器与μC/OS-II实时操作系统-8

    《嵌入式系统设计与实例开发—基于ARM微处理器与μC/OS-II实时操作系统》这一主题涵盖了嵌入式系统设计的关键技术和实践应用。嵌入式系统是集成在硬件设备中的计算机系统,常用于特定任务,如自动化控制、通信、...

    基于ARM的银行排队系统的设计实现

    为了提高服务效率,基于ARM架构的银行排队系统应运而生,这种系统通常采用Qt进行图形界面设计,结合多线程多进程编程技术,确保在Linux操作系统下的稳定运行,并具备良好的可移植性,能够在各种硬件平台上部署,如...

    基于ARM的嵌入式Linux软件开发平台的搭建.pdf

    “基于ARM的嵌入式Linux软件开发平台的搭建” 本文主要介绍了基于ARM的嵌入式Linux软件开发平台的搭建,旨在解决嵌入式系统软件开发环境的搭建问题。文章首先对嵌入式系统的概念和嵌入式Linux的定义进行了概述,...

    ARM处理器开发详解(基于ARM Cortex-A8处理器的开发设计)

    总结,基于ARM Cortex-A8的处理器开发设计涵盖广泛的知识,包括处理器架构、操作系统定制、驱动开发、系统编程和调试技术。初学者应当从理解基本硬件结构开始,逐步深入到操作系统层和应用层,通过实践和学习相关...

    嵌入式Linux系统开发技术详解--基于ARM(完整版).pdf

    《嵌入式Linux系统开发技术详解--基于ARM》是一本深度探讨嵌入式系统开发的专业书籍,主要聚焦在使用Linux操作系统在ARM架构上的应用。ARM(Advanced RISC Machines)是广泛应用在嵌入式领域的处理器架构,以其高...

    基于ARM的嵌入式操作系统的移植

    基于ARM的嵌入式操作系统的移植,是一项涉及嵌入式系统、实时操作系统及微处理器架构的综合性技术。本文档详细探讨了将μCOS-II实时操作系统移植至基于ARM7TDMI-S内核的LPC2119处理器上的过程与挑战。 ### 1. 硬件...

Global site tag (gtag.js) - Google Analytics