FreeRTOS 缘起 Just for Fun

333 阅读3分钟

新闻缘起

缘起

2022年5月11日,微信上传来的一则信息,报道吸引了我,空闲的时候去查了一下汤恩智能科技公司的信息。大概浏览了一下,嗯,很新的一家企业,看上去比较厉害。

本来事情可能到此为止了,但神奇的大数据就神奇地让我看到了他家的招聘信息。 本来事情可能到此为止了,但鬼使神差的,招聘信息中出现了“FreeRTOS”,这个第一次出现在我面前的单词吸引了我,Google了FreeRTOS之后,我入迷了。

原来这是个嵌入式设备用即时操作系统核心,是开源的, 而且我们自己也有了开源嵌入式操作系统RT-Thread,这是多么美妙的事情啊。

FreeRTOS

RT-Thread

操作系统的愿望

一份留在心底的记忆慢慢浮现。 转眼已经多年过去,当年自己一个人照着《XX天自制操作系统》 《Orange‘s 一个操作系统的诞生》边啃书,边敲代码的日子还历历在目,心中一直有一个自制操作系统的愿望。

一直觉得一个人写一个的操作系统内核是一件很酷的事情。

茫茫然的我就这么闯进了那个大坑里,其中涉及历史遗留问题的bootloader的保护模式(上来就是大坑),GDT的用户态/内核态,中断回调...反复蹂躏着我。

这里面的代码结构是多少次迭代之后的最优解,逆向研究这些,有点反人类,尽管有书籍的帮助,但大概是限于篇幅吧,书上说明太简陋,并没有将关键知识点讲透,需要自己去补。

重新开始写汇编和C,重新开始用Vim,搞交叉编译。 也找了大量资料学习,虽然磕磕绊绊的,但也能走下去,就这么已经大概写到内存分配了。 不过因为工作的关系,项目也就搁置了。这个愿望也就变成遗憾留在了心底。

现在FreeRTOS 的发现,让这个愿望又有了实现的机会。 这是嵌入式系统上运行的系统,总不会比在x86系统更复杂吧! 在相对简单的硬件结构上建构起来的系统,又是对功耗有要求的运行环境下,这个操作系统必然是简洁高效的,而这不就是我心目中的那个优雅的操作系统吗?

FreeRTOS

“教练,我想学FreeRTOS!” 这个念头不经意间已经悄悄种在了心底并逐渐开始萌发。

查官网,找资料,读手册,看视频,搭建开发环境,写代码,Debug ... 又重新开始看汇编,写C语言,学嵌入式开发。

光模拟不行,得上硬件,查官网,找资料,看视频。 数电,模电,大学也学过的,还能看懂,觉得硬件也能自己搞定,是不是膨胀了。

劝自己要冷静,还是先买块开发板玩玩。

这些也不够,要上项目,让系统跑起来,查了资料,可以上,弄一个智能小车,还是行的。

智能小车 循迹

觉得自己也干了结构设计几年,小车自己造也不是不行。 是不是再弄个四轴飞行器? 能动的 Gundam 可不可能实现呢?

Just for Fun

嗯,我所学的知识此时不再是枯燥死板的信息,当知识在这里逐渐流动起来,当操作系统的进程在MCU里优美的运行起来。

我在这里的找到了乐趣。

于是写博客,让快乐也能流动起来。

Just for Fun —— Linus Torvalds