Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RTOS
内核
技术研究
操作系统内核技术研究 :开篇
发布于 2021-07-22 22:38:12 浏览:1899
订阅该版
[tocm] [入门学习笔记 - 目录](https://club.rt-thread.org/ask/article/3420.html) [内核技术研究:开篇](https://club.rt-thread.org/ask/article/2905.html) [内核技术研究:环境搭建](https://club.rt-thread.org/ask/article/2906.html) [内核技术研究:ARM汇编指令](https://club.rt-thread.org/ask/article/2913.html) [内核技术研究:STMFD与LDMFD的使用](https://club.rt-thread.org/ask/article/2914.html) [内核技术研究:任务上下文切换](https://club.rt-thread.org/ask/article/2918.html) [内核技术研究:线程切换与运行](https://club.rt-thread.org/ask/article/2919.html) ## 感想 - 最近使用了几个RTOS内核,慢慢发现大部分开源的RTOS,内核部分没有0.01版本。 - 也就是说没有初版内核,这些RTOS在github上开源时,其内核Kernel部分基本成熟,后来的开发大部分都是修修补补,主要是BSP部分开发与适配。 - RTOS内核部分文档较少,大部分都是讲解如何使用内核,如何移植内核,如何基于内核开发驱动与应用,重要的,大部分的核心开发框架都已就位。 - 真正想掌握RTOS内核的开发技术,从零开始深入研究内核技术的实现方法,需要自己去阅读大量的内核源码,不断研究与总结。 - 去伪存真,需要真正掌握内核开发技术。 ## 造轮子 - 为什么我们从小去学校?学校老师学会了,帮你学会了,为什么还要自己上学? - 大家在开发软件时,估计都听过【重复造轮子】 - 别人造的轮子,你却不会造,所以很有必要自己去研究如何造轮子 - 核心技术的掌握,造轮子的技术,还是要自己掌握起来,我们需要轮子,自己的轮子。 - 【自己的轮子,自己造】,实际动手搭建开发学习环境,掌握操作系统内核开发的相关技术。 ## 学习计划 - 如何去掌握内核的开发技术呢? - 带着问题去学习,深入学习操作系统与内核相关的关键技术,甚至自己写出一个精简实用的内核来 - 没有计划,容易半途而废。只有计划,没有行动,也做不成事情。不为失败找借口,只为成功想办法。 ## 硬件开发平台 - 软件是调试出来的,技术与经验是实践出来的。 - RTOS的内核开发,离不开硬件。这里使用STM32F103VET6开发板,基于STM32 ARM系列 ## 软件调试环境 - 开发RTOS内核,使用成熟的Keil MDK5开发编译环境,会比较高效。 - 可以使用VS Code等代码工具提高代码阅读与编写的效率。 ## 代码管理 - 使用git,使用Gitee管理,github很不稳定。 ## 学习路线图 - RTOS是实时操作系统的英文缩写:Real Time Operating System。 - RTOS的主要特点就是实时性、多任务。 - 掌握内核开发技术,必须系统的掌握操作系统、软件工程相关的【基础】技术。 - 需要或多或少的懂些【算法】,学习技术是为了高效地解决问题。 ## 学习汇编 - 熟悉基本的汇编操作指令,熟悉ARM内核的寄存器的操作。 - 动手编写汇编函数,如内核移植相关的任务上下文切换、开关中断等汇编程序。 ## 相关知识点 - 熟悉基本的操作系统的知识 - CPU架构、堆与栈 - 任务的切换,优先级调度 - 内存管理 - 任务间同步与通信、信号量、消息队列等等基础知识 - 链表、数据结构、函数指针、指针函数、结构体数组。 - 面向对象的编程思想,架构思想,都要慢慢的掌握起来。 ## 小结 - 先快速搭建一个基础的开发调试环境。 - 毕竟,万事开头难,千里之行,始于足下。 ## 相关工具书 - 软件工程 - 现代操作系统 - 算法导论 - 深入理解计算机系统 ![book_20210722223651.jpg](https://oss-club.rt-thread.org/uploads/20210722/0f46a42eac2e55b572d8b24c21cfc6de.jpg.webp)
2
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
张世争
学以致用
文章
131
回答
809
被采纳
175
关注TA
发私信
相关文章
1
rt-thread的学习疑惑
2
基于stm32的RTT在RTT Studio IDE环境中的启动顺序求解
3
关于 rt_object_detach 脱离内核对象函数的作用求解
4
RT-Thread内核什么时候考虑加入MPU功能?
5
rt_hw_board_init中开中断后,触发SysTick_Handler
6
Cortex-M0在bootloader环境下的上下文切换问题?
7
关于ART-PI的bootloader是怎么烧写进去的
8
为什么内核代码和bootloader的代码一样的
9
线程对象结构体为什么不直接选择继承内核对象?
10
使用rt_memset给线程栈初始化,为什么选择字符‘#’,而不是‘\0’?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
a1012112796
10
个答案
1
次被采纳
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
YZRD
2
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部