carloscn / blog

My blog
Apache License 2.0
132 stars 38 forks source link

01_RTOS_嵌入式操作系统概述 #112

Open carloscn opened 2 years ago

carloscn commented 2 years ago

01_RTOS_嵌入式操作系统概述

嵌入式系统一直都没有一个准确的定义。所以可以一直沿用其广义的概念,就是相对于通用计算机而言。在早期的嵌入式系统,以单芯片为核心可编程控制器件出现在工业领域,常常用于监测、伺服设备的功能,系统结构十分的简单,存储和性能相比于同期的通用计算机差了很多。接着嵌入式系统发展出以嵌入式处理器为核心的系统,这时候处理器种类繁多,通用性不好,但在一些高端领域已经出现对于实时性、兼容性和扩展性的处理器产品。随着时代的发展,嵌入式进入普及阶段,嵌入式处理器依旧保留可编程及控制、处理领域的“前后台系统”的用法,然而随着嵌入式处理器性能增强,嵌入式处理器开始支持移植小型内核的操作系统分支,这就出现了多任务、网络、接口的概念,为五花八门的嵌入式应用提供了基础,这些操作系统通常都需要IC厂来做支持和移植,而下游的开发者只需要基于操作系统开发应用即可;随着ARM的发展,越来越多的厂商开始根据自己的需求做SoC和流片,导致通用的嵌入式处理器芯片变成了专用的处理器芯片,移植主流的操作系统的工作也渐渐从芯片厂下沉到了OEM厂,这对于嵌入式工程师来说需要一只脚跨入SoC内部,另一只脚在操作系统中。对知识体系的掌握,也需要从板级电子与通用嵌入式处理器的理解提升到SoC芯片和操作系统的理解。根据需求嵌入式处理器在性能上也出现了性能梯度分水岭,高性能的芯片对于宏内核的操作系统支持十分友好,就导致整个计算机体系的知识都被纳入了嵌入式中,计算机科学与技术行业的人可以跨度到了嵌入式领域。

对于RTOS相比于non-real-time有以下的优势:

学习指引

对于RTOS系统,由于Cortex-M系列的ARM体系比较小,因此我们把ARM架构及RTOS操作系统放在一起讲解,通常设定第一节为涉及的架构及硬件知识的表述,第二节为配套实现的操作系统。

本系列以Cortex-M架构(不限于Cortex-M3/M4)和RTOS(不限于FreeRTOS或uc/cos),但以Cortex-M3和FreeRTOS为主,而M4架构及ucos为辅助性设计理解。

我们在架构设计上还会引用AARCH64执行模式的设计,进行对比理解。

我已经把环境搭好,源程序在:https://github.com/carloscn/freertos

Using qemu to run freertos on cortex-m3

Build:

git clone git@github.com:carloscn/freertos.git --depth=1
cd freertos
cd CORTEX_LM3S811_GCC
make

qemu-system-arm -M lm3s811evb -nographic -kernel gcc/RTOSDemo.bin 

use Ctrl-A+X to exit.