首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

FreeRTOS STM32移植笔记(2)

FreeRTOS STM32移植笔记(2)

5.代码实现    经过了以上修改之后,就可以轻松实现基于FreeRTOS的呼吸灯了。代码如下:
[cpp] view plaincopy

  • /* Standard includes. */
  • #include <stdio.h>

  • /* Scheduler includes. */
  • #include "FreeRTOS.h"
  • #include "task.h"
  • #include "queue.h"

  • /* Library includes. */
  • #include "stm32f10x.h"

  • #define LED0_ON()   GPIO_SetBits(GPIOB,GPIO_Pin_0);
  • #define LED0_OFF()  GPIO_ResetBits(GPIOB,GPIO_Pin_0);

  • static
    void prvSetupHardware( void );  
  • static
    void vLEDTask( void *pvParameters );  
  • void vLedInit(void);  

  • int main( void )  
  • {  
  •   /* 初始化硬件平台 */
  •   prvSetupHardware();  
  •   /* 建立任务 */
  •   xTaskCreate( vLEDTask, ( signed portCHAR * ) "LED", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY+3, NULL );  
  •   /* 启动OS */
  •   vTaskStartScheduler();  

  •   return 0;  
  • }  
  • /*-----------------------------------------------------------*/
  • void vLEDTask( void *pvParameters )  
  • {  
  •   for( ;; )  
  •   {  
  •     LED0_ON();  
  •     vTaskDelay( 100/portTICK_RATE_MS );  
  •     LED0_OFF();  
  •     vTaskDelay( 100/portTICK_RATE_MS );  
  •   }  
  • }  

  • /*-----------------------------------------------------------*/
  • static
    void prvSetupHardware( void )  
  • {  
  •   vLedInit();  
  • }  
  • /*-----------------------------------------------------------*/
  • void vLedInit( void )  
  • {  
  •   GPIO_InitTypeDef GPIO_InitStructure;  
  •   RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE );  
  •   /*LED0 @ GPIOB.0*/
  •   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;  
  •   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
  •   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
  •   GPIO_Init( GPIOB, &GPIO_InitStructure );      
  • }  



6.总结    本人觉得FreeRTOS使用比uCOS简单,虽然FreeRTOS资料远没有uCOS多,但是毕竟uCOS是一个收费产品,而FreeRTOS是一个开源的产品。后面还将会整理一些FreeRTOS的范例代码,希望和大家一起推动FreeRTOS的使用。

代码链接
【版本信息】IAR 6.5

7.参考资料在STM32使用3.5函式庫移植FreeRTOS
MDK下基于STM32固件库V3.5.0的FreeRTOS移植笔记
继承事业,薪火相传
返回列表