FreeRTOS已经听说过很久了,但一直也没有时间去玩,终于在最近项目上玩了一次。之前有玩过uCOS II,以及在本科毕业论文时自己为Cortex-M3弄了个“XOS”。本来之前的XOS要移植到MicroBlaze上应该不难,可是毕竟自己搞的小玩意,用在公司产品上可不行。第一功能上不够全,没有这么多事件机制,第二不通用,市面上这些开源的都搞得非常全,都直接支持几十种处理器。而且经过这几年的工作发现,有些东西不一定要自己搞,产品和功能实现是两个概念,太多时间都在“磨”设计,而市场要的是快速把功能转为产品。
废话半天,拿着板子,就如一堆破铜烂铁,就算芯片再贵,就算板子设计再好也只是一堆能上电的破铜烂铁。只有搞点代码才能让这堆破铜烂铁发挥出一点作用。首先我们得在Xilinx Platform Studio里建立一个可以运行FreeRTOS的MicroBlaze系统,我的ISE版本为14.7。这个系统里主要包括MicroBlaze,RAM,Timer,Interrupt,Clock,Reset,当然还有方便调试的UART。为什么要有Timer呢?应该这些嵌入式OS里需要有一个周期性的Tick,用于系统调度和计时。搭好MicroBlaze系统之后我们就可以综合编译导出到Xilinx SDK,开始我们的软件工作。
到了SDK环境,我们得先下个FreeRTOS,然后解压出里面的东西。我下的文件是FreeRTOSv8.0.1.exe,运行解压之后进入FreeRTOS\Demo\MicroBla