久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

調用freertosAPI函數的一些注意事項 IAR

作者:未知   來源:布冬冬 的空間   點擊數:  更新時間:2014年08月16日   【字體:

 

 
 
1. 將啟動匯編文件中的      替換
 
        DCD     vPortSVCHandler  //內核SVC中斷
        DCD     DebugMon_Handler
       ;  DCD     SVC_Handler
       ; DCD     DebugMon_Handler
 
        DCD     xPortPendSVHandler   //內核PendSV中斷
        DCD     xPortSysTickHandler   //內核SysTick中斷
       ; DCD     PendSV_Handler
       ; DCD     SysTick_Handler
 
2. main函數中,在main函數的最后定義一個while(1);死循環。
 
   先是創建任務,然后是啟動任務調度函數。
 
   xTaskCreate( vIntegerGenerator, "IntGen", 200, NULL, 1, NULL);
   xTaskCreate( vStringPrinter, "String", 200, NULL, 2, NULL);
   vTaskStartScheduler();
 
3. 創建信號量時,首先應在main函數之前定義一下全局變量
 
xQueueHandle   xIntegerQueue;
xQueueHandle   xStringQueue;
 
4. 一些初始化的東西最好在main函數里面先初始化好,如GPIO的選擇、方向以及定時器的初始化。
 
   如果定時器的初始化放在任務里面,有可能導致定時器無法正常工作。因為任務在循環執行,可能定時器還沒到定時時間,就又被重新初始化了。
 
5. 加庫文件stdio.h,執行printf語句,可在IO終端里面查看。
 
6. 在任務函數里面,定義變量放在for循環外面,其他放在for循環里面。
 
 
static void vStringPrinter( void *pvParameters )
{
  char *pcString;
  for(;;)
  {
    xQueueReceive( xStringQueue, &pcString, portMAX_DELAY);
    printf(pcString);
  }
}
 
7. 如果任務遇到中斷,需要強制上下文切換。中斷里面用的上下文切換是taskYIELD();而不是vTaskSwitchContext 里面有了個PendSV中斷。
 
關閉窗口

相關文章

主站蜘蛛池模板: 日韩一区二区三区视频 | 久久人人国产 | 久久久久久亚洲精品 | 亚洲aⅴ| 久久精品综合网 | 成人精品视频99在线观看免费 | 天天操综合网 | 又爽又黄axxx片免费观看 | 欧美日韩一区在线观看 | 久久久女女女女999久久 | 精品视频在线播放 | 久久狼人天堂 | 91视频一区 | 成人午夜在线 | 久久精品国产一区二区三区 | 91在线精品秘密一区二区 | 久久小视频 | 久久精品在线 | 夜夜夜操 | 欧美一区二区三区大片 | 亚洲精品久久久久久久久久久久久 | 国产视频一二三区 | 91视视频在线观看入口直接观看 | 涩涩视频大全 | 国产午夜精品久久久久免费视高清 | 99视频久| 国产在线观看av | 久久久久国产精品一区 | 亚洲精品成人av | 亚洲免费在线观看 | 91在线视频国产 | 精品一区二区视频 | 一级黄色绿像片 | 久久伊人免费视频 | 亚洲视频中文字幕 | 欧美一区二区三区视频 | 爱爱爱av | 伊人av在线播放 | aa级毛片毛片免费观看久 | 国产亚洲一区二区三区在线观看 | www国产亚洲精品 |