有关LIteOS的移植,首先移植的是STM32L431RCLQFP100的芯片,按照实验例程一步步操作,在操作完成后,有个小问题就是有个文件没找到,然后我就加载那个文件,导致了一系列更多的问题,不知道为什么,过了一天又能正常运行了,后续查看一下为什么会出现这种情况。之前用Cube一直过FreeRTOS的操作系统,按照指定格式直接创建任务即可,先初始化函数,然后编写这个函数就可以了,直接在这个函数里面进行死循环就可,值得注意的是在起始的时候,会让你定义函数的栈大小和优先级,如果只有一个函数,优先级多少都无所谓,但是如果有多个就要进行划分了。还有一点就是如果操作系统里面的优先级是一样的,则操作系统会执行时间片轮询的方式来进行,一般都是10ms一次,这个时间也可以设置,当然,在哪里设置我也不太清除。特别是在操作系统里面,内存的分配也显得尤为重要,多任务的时候,会存在某个子任务提前释放,这样会导致中间的某一个内存存在空缺,这有涉及到内存池和内存拼接重组方面的东西,这个后续也要看一下。我之前还有一个问题就是,缓冲区的问题,有关串口的缓冲区,在HAL库里面是设置缓冲区,我们一般设置的是100的大小,然后循环缓冲区的话,后面再看。
前面说了很多我在之前注意到的问题,然后现在写LIteOS的移植过程,在华为的GitHub上面进行代码的下载,在按步骤移植就行。我用了一个STM32L431RC和一个STM32L431VC两个芯片,只是它们的管脚一个是60,一个是100,SYS(Serial Wire)和RCC(High Speed Clock为Crystal/Ceramic Resonator),以及串口等配置都是一样的,所以并没有什么差别,两个LiteOS之间的可以相互移植。