上一篇,大致介绍了ThreadX和怎么获得它的源带码。这一篇,我想大致浏览一下源代码目录并找到一个合适的阅读切入点。
展开common\src目录,总共有185个文件,这可真够吓人的,要知道freeRTOS核心代码就那么4,5个文件。但不要被这个数量吓倒了,ThreadX采用一个API一个文件的形式对于源码进行组织,因此,每个文件都很小,只完成一个包含一个API的实现,从文件名上我们可以看到这一点。
ThreadX的文件名由三部分组成:
1. 固定头tx代表ThreadX;
2. 模块名,比如block_pool, byte_pool, mutex, queue, semaphore, thread等等;这些模块在freeRTOS中基本都能找到对应的概念,可见RTOS这个领域还是大量共同的地方;
3. API, 比如create,delete,change,activate等等。
现在要选一个API来作为我们的起点,我想选一个自己认为比较重要模块的一个基础API作为起点。我选择了Thread模块的create这个API,从名字上看,这个API应该是实现了线程创建的功能。线程应该就是FreeRTOS中Task的概念吧,但也不一定,需要深入代码去了解一下。下一篇我们就深入这个API,看看ThreadX到底有何高明之处。