單片機型號:STM32F091RCT6
在使用FreeRTOS進行程序設計時,遇到任務不能運行的問題,具體程序如下:
DebugOutput("啟動USB通訊線程...rnrn");
osThreadDef(usbTask, StartUsbTask, osPriorityNormal, 0, 128);
usbTaskHandle = osThreadCreate(osThread(usbTask), NULL);
DebugOutput("啟動雷達紅外通訊線程...rnrn");
osThreadDef(irdaTask, StartIrdaTask, osPriorityNormal, 0, 128);
irdaTaskHandle = osThreadCreate(osThread(irdaTask), NULL);
DebugOutput("啟動GPRS通訊線程...rnrn");
osThreadDef(gprsTask, StartGprsTask, osPriorityNormal, 0, 128);
gprsTaskHandle = osThreadCreate(osThread(gprsTask), NULL);
程序創建了3個線程,但是第3個任務不能正常運行。嘗試多種方法解決,最后發現問題在于任務的堆棧的分配上,減小任務分配的堆棧大小,3個線程可以正常運行。
我現在使用的是STM32F091RCT6單片機,RAM為32K,所以確認不是硬件問題,應該和FreeRTOS的配置有關。
通過FreeRTOS的官方手冊,最后確認到配置的參數為configTOTAL_HEAP_SIZE,其解釋為靜態分配內存的大小,其在FreeRTOSConfig.h中,增大其值后程序正常運行。
#define configUSE_PREEMPTION 1
#define configSUPPORT_STATIC_ALLOCATION 0
#define configSUPPORT_DYNAMIC_ALLOCATION 1
#define configUSE_IDLE_HOOK 0
#define configUSE_TICK_HOOK 0
#define configCPU_CLOCK_HZ ( SystemCoreClock )
#define configTICK_RATE_HZ ((TickType_t)1000)
#define configMAX_PRIORITIES ( 7 )
#define configMINIMAL_STACK_SIZE ((uint16_t)128)
#define configTOTAL_HEAP_SIZE ((size_t)4 * 1024)
#define configMAX_TASK_NAME_LEN ( 16 )
#define configUSE_16_BIT_TICKS 0
#define configUSE_MUTEXES 1
#define configQUEUE_REGISTRY_SIZE 8
上一篇:STM32開發筆記72: 使用命名空間解決類名沖突問題
下一篇:STM32開發筆記70: 傳遞參數對套接字地址進行強制類型轉換
推薦閱讀
史海拾趣
用.net SDK1.1開發的應用程序能有辦法在WinCE.NET中使用嗎? 如題:用.net SDK1.1開發的應用程序能有辦法在WinCE.NET中使用嗎? 即我的應用程序是用Visual Studio .NET 2003開發的,現在想做成嵌入式應用,這個程序能在WinCE.NET中使用嗎?還是我必須另外寫程序 希望高手指點!… 查看全部問答∨ |
|
Packet = PacketArray; NdisQueryPacket(Packet,NULL,&BufLength,&pBuffer,&PacketSize); if(!BufLength) ...… 查看全部問答∨ |
|
D類音頻功率放大器具有效率高、功耗低的優點,采用D類音頻功率放大器的設備能夠提高電池的壽命,它特別適合應用于無線和手持通信設備,主要應用在PDA、移動電話和類似的手持移動通信工具的設計和產品中。而大功率輸出的音頻設備具有很大 ...… 查看全部問答∨ |
|
【TIVA C launchpad 學習筆記一】 LCD12864顯示,可顯示ASCII,中文,描點繪圖 /******************************************* 開發壞境:CCSv5 程序功能:LCD12864顯示,可描點繪圖,顯示漢字,ASCII 程序說明:并行模式,PA2,PA3,PA4分別對應RS,RW,E,PB0-PB7對應數據口 PSB接高電平 編程者: ...… 查看全部問答∨ |
|
設計資源 培訓 開發板 精華推薦
- Hercules :安全MCU 初體驗
- 學知識,贏好禮|泰克半導體材料與器件測試技術電源特性篇!
- 深入東芝參考設計庫:夯實您的設計庫,讓您的設計更出彩
- 1月22日下午14:00Mouser攜手Maxim邀您觀看有獎直播:深入淺出可穿戴健康監測
- 有獎直播|羅徹斯特電子半導體全周期解決方案 助您應對供應鏈中斷和元器件停產的挑戰
- 答題抽獎:Mentor Tessent Automotive相關測試解決方案(獎品池還剩不少獎品喲)
- 國產芯4月:開啟ADC和DAC之旅,曬一曬你用過哪個段位的ADC/DAC~
- 2021 Digi‑Key KOL 視頻系列:新型智能曝光算法在人臉識別中的應用
- TI單芯片毫米波傳感器產品組合新品發布會,誠邀參與,預注冊贏好禮
- EEWORLD2018開年送禮,答題贏紅包