音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(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
RE:
首先我們沒有你的程序,不好解釋。

你如果在操作系統(tǒng)下寫程序,那么請慎重檢查任務(wù)堆棧 優(yōu)先級 任務(wù)創(chuàng)建的參數(shù),還有就是臨界函數(shù)的使用。

臨界函數(shù)最容易造成隱匿性錯誤,其錯誤現(xiàn)象和你描述的有些相似。



3樓: >>參與討論
car2005
關(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);
         }
// ---------------------------------------------------------------------------------------------
}


/**********************************************
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
關(guān)于網(wǎng)絡(luò)接口電路圖
請問zlg:easyarm2200的數(shù)字地和模擬地沒有隔離
如何用FLASH來存儲運行中的數(shù)據(jù)修改?
uCGUI
請問ads1.2中是否能直接將字符串作為參數(shù)傳遞給液晶顯示函數(shù)?
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號