IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 嵌入式工程师实现一个简单的操作系统(引言) -> 正文阅读

[嵌入式]嵌入式工程师实现一个简单的操作系统(引言)

一、嵌入式工程师学习操作系统的准备之路

? 本人是从事嵌入式软件方面,日常的软件工作都会和具体的处理器,电路板相结合。所以在思考以及去做一个操作系统的时候,除了学习操作系统本身的算法或者逻辑之外,还需要耗费很大的精力去做一些硬件的准备工作。毕竟我也更喜欢实践,希望自己的逻辑可以跑起来,看看实际的效果。

1、准备一个合适的开发板

硬件的准备工作需要耗费很多的资源,首先你要购买开发板,还要购买下载器。开发板还有考虑使用什么性能的,是CONTEX-M3 这种单片机,还是CONTEX-A7等一些待遇MMU、CACHE等高级配置的处理器,亦或者是ARMV8架构,aarch64指令集的更高级的处理。当然,上述都仅限于arm架构,因为这里比较熟悉一些。

上面介绍的处理器根据性能,外设配置不同,对应的开发板的价格也有所不同

  • CONTEX-M3 一般100元以内可以搞定,但是这种基本是最小系统,引出串口和一些GPIO
  • CONTEX-A7 这个架构的可以称为应用处理器,价格应该要100元以上了,但是架构低的引出的接口也会相应比较少
  • ARMV8架构 这个类型的处理器一般可能有300元以上才能买到
处理器架构价格(基本是按照最低价估计,无上限)烧录调试功能其他
CONTEX-M3100元以内烧录和调试比较方便
可以购买下载器,价格20-100元都有
一般可以通过软件一键下载,操作简单
无MMU、CACHE
可以学习任务管理调度
可以学习内存分配管理
以及大部分操作系统特性
CONTEX-A7100元以上调试和下载需要看具体开发板设计,一般可能会需要配合硬件处理进行下载
调试功能应该不太贵
带MMU 可以了解学习虚拟地址、页表等
可以在内存管理中支持更多高级功能
ARMV8300元以上调试器比较贵,不适合个人使用带MMU 可以了解学习虚拟地址、页表等
可以在内存管理中支持更多高级功能

2、准备基础的软件功能


在正式开始编写操作系统的代码之前,还要去学习了解开发板的基础使用,然后做一些基础的软件准备工作

  • 一个可以正常编译的工程
  • 支持定时器中断功能 操作系统需要使用到
  • 支持串口输入输出,最好有printf支持 用于调试显示


满足了上面描述的几个条件,就可以进行操作系统的学习与开发了,这是我认为的一个操作系统最小系统,操作系统最基本的功能就是多任务,很多其他的功能也是依赖于任务的。所以我们第一步需要实现的就是任务的创建与调度功能
?

3、操作系统,第一步做什么

任务就是一个个无限循环的函数体,通过操作系统的调度,让这些任务在微观上分时执行,在宏观上并行运行。真正的操作系统需要去考虑任务调度的合理性,实时性等,我们先去实现任务的功能,调度策略可以使用最简单的轮流顺序调度。
?

思考一下,如何实现多个内部无线循环的函数提,不使用主动调用的方式,通过我们的操作系统实现切换执行。让每一个无限循环都可以有被cpu执行到。其实每一个循环体就是我们所说的任务了。
?

读到现在,是不是想跃跃欲试要去coding了,我要马上写一个任务切换出来,突然发现手上还没有一块称手的开发板,难道又要去淘宝网购,花钱事小,我不能马上实践,等待多么焦虑。
?

好吧,大家都是性情中人,给大家推荐一个资源,可以马上行动,还不花一分钱
https://github.com/jhbdream/armv8_os
这个仓库提供了使用qemu模拟器运行的软件代码,参考readme搭建环境就可以编译执行,还可以马上实现你的操作系统代码




  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-10-01 17:03:16  更:2021-10-01 17:03:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:21:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码