Open carloscn opened 2 years ago
嵌入式系统一直都没有一个准确的定义。所以可以一直沿用其广义的概念,就是相对于通用计算机而言。在早期的嵌入式系统,以单芯片为核心可编程控制器件出现在工业领域,常常用于监测、伺服设备的功能,系统结构十分的简单,存储和性能相比于同期的通用计算机差了很多。接着嵌入式系统发展出以嵌入式处理器为核心的系统,这时候处理器种类繁多,通用性不好,但在一些高端领域已经出现对于实时性、兼容性和扩展性的处理器产品。随着时代的发展,嵌入式进入普及阶段,嵌入式处理器依旧保留可编程及控制、处理领域的“前后台系统”的用法,然而随着嵌入式处理器性能增强,嵌入式处理器开始支持移植小型内核的操作系统分支,这就出现了多任务、网络、接口的概念,为五花八门的嵌入式应用提供了基础,这些操作系统通常都需要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.
Ctrl-A+X
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:
qemu-system-arm -M lm3s811evb -nographic -kernel gcc/RTOSDemo.bin
use
Ctrl-A+X
to exit.