从0开始移植FreeRTOS个人见解:我接触STM32时间不长,当初学的时候没有跑过这些小的系统,后来转而去学arm9的1inux系统下面的驱动,进而接触到linux操作系统,觉得这些操作系统用起来确实很方便,比裸奔要好很多,多线程,虽然需要内存空间会大几K,基本不影响程序运行。学FreeRTOS,主要是公司要求,要使用免费的,所有老板都是这样,免费。 其实网上资料最多的是UCOS的系统,UCOS系统是很稳定,我也自己移植成功了,不过呢也就多学点东西,UCOS-II的移植,关键是不能用在商业上,商业上使用收费,虽然源码在你手上,但是这个确实也涉及到了侵权之类问题。UC0S-IIl更坑,不给源码了。
FreeRTOS属于免费系统,开源,研究的人会越来越多,两者的移植我都试过,其实也都是申请空间,申请优先级,可以说两者使用从大的方面说没有太大区别。学会一种,另外一种也容易入手。FreeRTOS关键就没有图形用户界面(GUI),比较弱势一点。
我在网上找了半天也没有看到像样的移植手册,对于刚刚入手FreeRTOS的人来说没有像样的例子,学起来就很坑。所以自己写了这个例程。
在STM32中移植FreeRTOS(纯净版).
FreeRTOS编程指南
作为一个轻量级的操作系统,FreeRTOS提供的功能包括:任务管理、时间管理、信号量、消
息队列、内存管理、记录功能等,可基本满足较小系统的需要。FreeRTOS内核支持优先级调度
算法,每个任务可根据重要程度的不同被赋予一定的优先级,CPU总是让处于就绪态的、优先级
最高的任务先运行。FreeRT0S内核同时支持轮换调度算法,系统允许不同的任务使用相同的优先
级,在没有更高优先级任务就绪的情况下,同一优先级的任务共享CPU的使用时间。
FreeRTOS的内核可根据用户需要设置为可剥夺型内核或不可剥夺型内核。当FreeRTOS被设
置为可剥夺型内核时,处于就绪态的高优先级任务能剥夺低优先级任务的CPU使用权,这样可保
证系统满足实时性的要求;当FreeRTOS被设置为不可剥夺型内核时,处于就绪态的高优先级任
务只有等当前运行任务主动释放CPU的使用权后才能获得运行,这样可提高CPU的运行效率
FreeRTOS对系统任务的数量没有限制。