FreeRtos的移植,以及一些嵌入式学习心得。

发布时间 2023-06-03 13:55:08作者: 一只小云安

不得不先提心得。

这不是第一次移植FreeRtos,至少是五六七八九次了,当然也不是最后一次。

但是每一次移植其实都差不多,并没有什么得心应手的感觉。原因就是学的东西太多,学的太杂。

我不得不承认,就算我天资聪慧,异于常人,记这么多知识是不可能的。人力有穷时。

尊重这个客观现实,但不放弃自己的情况下,我们就不得不做出一个改变。

游戏开始变了,从收集癖满世界收集知识变成了,背包问题,

我们在有限的资源的情况下,需要得到最有用的知识,三个方向努力。

一:抛弃一些几乎无意义的知识,那种一看就会,也不属于其他知识基石的经验。(freertos的移植就很明显是)

二:知识压缩,把学到的知识自己总结,精炼,让他成为类似应用编程的函数库一样,让你更容易获得,但效果不变。

ps:这两条很像图像的压缩,先有损压缩,再无损压缩。但是不得不提一嘴,其实压缩完了之后,你不得不需要另一个能力,解码能力(快速学习的能力)。

三:认知层次提升,把一些知识继续精练,不再是某方面的知识单独精炼,而是所有的知识一起精炼,一法通,万法通。最终的你的知识储备会完美的融入世界观,和谐归一。

 

我会以FreeRtos移植的例子来说明三个层次。

抛弃的无意义的知识:FreeRtos的移植,首先,它基本没什么理由,只是库作者创造的一种接口方式,并不会对其他方面有任何帮助。其次,随着FreeRtos的更新,它会一直改变,记住之后说不定又变了,学来干嘛?

压缩的知识:svc Pendsv的系统调度过程实现原理。

认知层次的知识:rtos的任务调度与linux的系统调度共同之处。

 

 

FreeRtos的移植:

  用git把仓库导入本地,然后把根目录上的七个.c文件放入FreeRtos/src文件夹,

  把include文件夹放入FreeRtos,然后在Portable文件夹里找到适合的移植文件。完事。

  关键是学会FreeRtos的函数用法,以及任务调度原理。