|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
怪問題 |
| 作者:car2005 欄目:ARM技術(shù) |
我這邊有4塊自己做的2132的板子,有一塊板子可以正常的執(zhí)行我的3個進程,但是其他板子都只能在最開始的那個進程里跑,請問怎么回事?程序是一樣的,買的2132的板子也只能在一個進程中跑,不進行進程切換(買的時候是好的,可我現(xiàn)在下載以前的經(jīng)過驗證的程序后還是如此)。請指教。 |
| 2樓: | >>參與討論 |
| 作者: zlgARM 于 2005/9/15 18:21:00 發(fā)布:
RE: 首先我們沒有你的程序,不好解釋。 你如果在操作系統(tǒng)下寫程序,那么請慎重檢查任務(wù)堆棧 優(yōu)先級 任務(wù)創(chuàng)建的參數(shù),還有就是臨界函數(shù)的使用。 臨界函數(shù)最容易造成隱匿性錯誤,其錯誤現(xiàn)象和你描述的有些相似。 |
|
| 3樓: | >>參與討論 |
| 作者: car2005 于 2005/9/15 22:48:00 發(fā)布:
關(guān)鍵是一個板子可以,其他板子不行,買的你們的2132的板子都不行 主程序如下,功能函數(shù)基本屏蔽了都不行,程序如下,請zlg指教,如果三個任務(wù)都再main中產(chǎn)生的話,則一個任務(wù)都進不去,現(xiàn)在的程序只能進入第一個任務(wù),并能在第一個任務(wù)中正常循環(huán): #define TaskMain_StkLengh 256 //Define the Task stack length 定義用戶任務(wù)的堆棧長度 #define TaskComm_StkLengh 256 //Define the Task stack length 定義用戶任務(wù)的堆棧長度 #define TaskCan_StkLengh 256 //Define the Task stack length 定義用戶任務(wù)的堆棧長度 #define TaskMain_Prio 7 #define TaskComm_Prio 8 #define TaskCan_Prio 9 #define TaskMain_ID 0x0007 #define TaskComm_ID 0x0008 #define TaskCan_ID 0x0009 OS_STK TaskMainStk [TaskMain_StkLengh]; //Define the Task stack 定義用戶任務(wù)的堆棧 OS_STK TaskCommStk [TaskComm_StkLengh]; //Define the Task stack 定義用戶任務(wù)的堆棧 OS_STK TaskCanStk [TaskCan_StkLengh]; //Define the Task stack 定義用戶任務(wù)的堆棧 OS_STK_DATA TaskMainStk_Data; OS_STK_DATA TaskCommStk_Data; OS_STK_DATA TaskCanStk_Data; extern void USBProcess(void); void TaskMain(void *pdata); //Task1 任務(wù)1 -----------負責(zé) 的處理 void TaskComm(void *pdata); //Task2 任務(wù)2 -----------負責(zé)所有的通訊模塊以及系統(tǒng)監(jiān)視 void TaskCan(void *pdata); //Task3 任務(wù)3 -----------負責(zé) CAN的處理 int main (void) { OSInit (); TargetInit(); /* 目標板初始化 */ OSTaskCreateExt(TaskMain,(void *)0,&TaskMainStk[TaskMain_StkLengh-1],TaskMain_Prio,TaskMain_ID,&TaskMainStk[0],TaskMain_StkLengh,(void *)0,OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); OSStart (); return 0; } /********************************************************************************************************* ** Task0 任務(wù)0 ---> 紀錄數(shù)據(jù)的接收和處理 ********************************************************************************************************/ void TaskMain(void *pdata) { static uint8 last_second = 0xff; // 上次進入循環(huán)的秒數(shù) pdata = pdata; /* 避免編譯警告 */ // ----------------初始化程序---------------------------------------------------- OSTaskCreateExt(TaskComm,(void *)0,&TaskCommStk[TaskComm_StkLengh-1],TaskComm_Prio,TaskComm_ID,&TaskCommStk[0],TaskComm_StkLengh,(void *)0,OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); OSTaskCreateExt(TaskCan,(void *)0,&TaskCanStk[TaskCan_StkLengh-1],TaskCan_Prio,TaskCan_ID,&TaskCanStk[0],TaskCan_StkLengh,(void *)0,OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); // -------------- -------------- 檢查 堆棧的空間 ------------- -------------------------------- while (1) { // ------------------- 取得系統(tǒng)時間------------------------------------ // gettime(&now); // ------------------- 堆棧的占用情況---------------------------------- if(now.ti_sec != last_second) { last_second = now.ti_sec; //----每秒鐘統(tǒng)計一次------ // UART0Putch(0x99); // OSTaskStkChk(TaskMain_Prio,&TaskMainStk_Data); // UART0Putch(TaskMainStk_Data.OSFree); // IicProcess(); } // ---------------------串口的處理--------------------- //------------------IIC0 的讀寫控制------------------------------------------------------- // ---------IIC0 主要任務(wù): 1. 取得后輸入板的數(shù)據(jù)信息 //------------------Soft IIC 的讀寫控制------------------------------------------------------- // ---------Soft IIC 主要任務(wù): 1. 對 EEPROM CAT24C256的控制 //------------------Spi 的讀寫控制------------------------------------------------------- // ---------Spi 主要任務(wù): 1. 對 串行FLASH AT45DW041B 的控制 // //---------------------------------------------------------------------------------- OSTimeDly(100); } // --------------------------------------------------------------------------------------------- } /********************************************** |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |