freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于arm的gpsgprs車(chē)載定位系統(tǒng)模型的設(shè)計(jì)與實(shí)現(xiàn)-資料下載頁(yè)

2025-06-22 04:05本頁(yè)面
  

【正文】 狀態(tài),OSIntExit()將返回調(diào)用者OSTickISR(),最后OSTickISR()的任務(wù)。OSTickISR()先關(guān)閉中斷,然后清除timer 0中斷標(biāo)記(只有清楚當(dāng)前中斷標(biāo)記才下一次中斷)。接著將調(diào)用IrqStart(),μC/OSII要求在中斷服務(wù)程序開(kāi)頭將記錄中數(shù)的全局變量OSIntNesting加1。隨后OSTickISR()調(diào)用OSTimeTick(),檢查所有處狀態(tài)的任務(wù),判斷是否有延時(shí)結(jié)束就緒的任務(wù)。然后調(diào)用IrqFinish()函數(shù),IrqFiniOSIntExit()函數(shù),如果在中斷中(或其他嵌套的中斷)有更高優(yōu)先級(jí)的任務(wù)就緒,并斷為中斷嵌套的最后一層,OSIntExit()將進(jìn)行任務(wù)調(diào)度,并在OSIntCtxSw()函數(shù)中設(shè)need_to_swap_context標(biāo)記為1。接下來(lái)OSTickISR()判斷need_to_swap_context標(biāo)1,如果為1則進(jìn)行任務(wù)調(diào)度,將不再返回被中斷的任務(wù),而是用新任務(wù)的堆棧中的寄恢復(fù)CPU現(xiàn)場(chǎng),然后實(shí)現(xiàn)任務(wù)切換。如果當(dāng)前中斷不是中斷嵌套的最后一層,或中斷任務(wù)的就緒狀態(tài),OSTickISR()將返回被中斷的任務(wù)。(2) 退出臨界區(qū)和進(jìn)入臨界區(qū)函數(shù)他們分別是退出臨界區(qū)和進(jìn)入臨界區(qū)的宏指令實(shí)現(xiàn)。主要用于在進(jìn)入臨界區(qū)之前關(guān)閉中斷,在退出臨界區(qū)的時(shí)候恢復(fù)原來(lái)的中斷狀態(tài)。它的實(shí)現(xiàn)如下所示。.GLOBAL ARMDisableIntARMDisableInt:STMDB sp!,{r0}MRS r0,CPSRORR r0,r0,NoIntMSR CPSR_cxsf,r0LDMIA sp!,{r0}MOV pc,lr.GLOBAL ARMEnableIntARMEnableInt:STMDB sp!,{r0}MRS r0,CPSRBIC r0,r0,NoIntMSR CPSR_cxsf,r0LDMIA sp!,{r0}MOV pc,lr(3) 任務(wù)級(jí)上下文切換函數(shù)任務(wù)級(jí)的上下文切換函數(shù)OS_TASK_SW(),它是當(dāng)任務(wù)因?yàn)楸蛔枞鲃?dòng)請(qǐng)求cpu調(diào)度時(shí)被執(zhí)行,由于此時(shí)的任務(wù)切換都是在非異常模式下進(jìn)行的,因此區(qū)別于中斷級(jí)別的任務(wù)切換。它的工作是先將當(dāng)前任務(wù)的cpu現(xiàn)場(chǎng)保存到該任務(wù)堆棧中,然后獲得最高優(yōu)先級(jí)任務(wù)的堆棧指針,從該堆棧中恢復(fù)此任務(wù)的cpu現(xiàn)場(chǎng),使之繼續(xù)執(zhí)行。這樣就完成了一次任務(wù)切換。軟件功能是系統(tǒng)開(kāi)始運(yùn)行后等待接收來(lái)自控制中心的請(qǐng)求信息,信息到達(dá)后進(jìn)行信息確認(rèn),若信息正確則把車(chē)載終端的GPS定位信息(包括車(chē)輛的地理信息及時(shí)間等)發(fā)送到指定手機(jī)。在μC/OSII中分成三個(gè)任務(wù),系統(tǒng)運(yùn)行的過(guò)程中有三個(gè)進(jìn)程進(jìn)行調(diào)度。TaskGPRSreceive() 任務(wù)的優(yōu)先級(jí)為5,功能為不斷等待接收控制中心的請(qǐng)求信息并進(jìn)慈寧宮驗(yàn)證。若正確則掛起自己。TaskGPSreceive()任務(wù)的優(yōu)先級(jí)為6,功能為接收GPS定位信息并把定位信息發(fā)送到消息郵箱。把信息發(fā)送郵箱后掛起自己。TaskGPRSsend()任務(wù)的優(yōu)先級(jí)為7,功能為等待消息郵箱中的消息,若消息為空則掛起自己,若獲得消息則提取定位信息通過(guò)GPRS模塊發(fā)送到指定手機(jī)。然后釋放兩個(gè)被掛起的任務(wù)。如下任務(wù)調(diào)度框圖圖表51:任務(wù)調(diào)度框圖任務(wù)名稱(chēng)為T(mén)askGPRSreceive,優(yōu)先級(jí)為5,優(yōu)先級(jí)最高,系統(tǒng)啟動(dòng)后先運(yùn)行此任務(wù)。任務(wù)功能為初始化GPRS模塊,并通過(guò)GPRS模塊接受信息,若收不到信息或接受信息錯(cuò)誤,任務(wù)一直運(yùn)行。直到收到的信息正確此任務(wù)會(huì)掛起自己,μC/OSII操作系統(tǒng)進(jìn)行任務(wù)調(diào)度運(yùn)行下一個(gè)就緒的任務(wù)。 圖表522:GPRS模塊接收信息流程圖int User_GPRSreceive(void){ char GPRS_cmd_recv_string[512]。 int GPRS_recv_msg_code。 int bexit = 0。 char GPRS_cmd_send_string[512]。 char *q。 GPRS_recv_cmd(GPRS_cmd_recv_string)。 GPRS_recv_msg_code= GPRS_analyze_msg(GPRS_cmd_recv_string)。 if(GPRS_recv_msg_code == AT_RECV_MSG_CMTI) { char *pDest。 // 收到短消息 TRACE(收到短消息\n)。 // 解析短消息 pDest = strstr(GPRS_cmd_recv_string, ,)。 if(pDest != 0) { SM_PARAM Msg。 pDest++。 // 閱讀短消息 sprintf(GPRS_cmd_send_string,AT+CMGR=%d\r,atoi(pDest)。 GPRS_send_cmd(GPRS_cmd_send_string)。 // receive message do { GPRS_recv_cmd(GPRS_cmd_recv_string)。 GPRS_recv_msg_code= GPRS_analyze_msg(GPRS_cmd_recv_string)。 if(GPRS_recv_msg_code == AT_RECV_MSG_CMGR) { SM_PARAM Msg。 GPRS_recv_cmd(GPRS_cmd_recv_string)。 GPRS_recv_cmd(GPRS_cmd_recv_string)。 GPRSDecodePdu(GPRS_cmd_recv_string, amp。Msg)。 q=amp。Msg。 if(strstr(q,state)!=0) return 1。 else return 0。 } } } }else return 0。 }任務(wù)名稱(chēng)為T(mén)askGPSreceive優(yōu)先級(jí)為6,功能為接收GPS定位信息并發(fā)送到消息郵箱。由于系統(tǒng)中就有三個(gè)應(yīng)用任務(wù),優(yōu)先級(jí)為5的任務(wù)運(yùn)行時(shí),該任務(wù)是處于就緒中優(yōu)先級(jí)最高的,所以在當(dāng)TaskGPRSreceive任務(wù)被掛起時(shí),得到運(yùn)行。運(yùn)行完畢后把指向GPS定位信息的指針發(fā)送到消息郵箱。成功后任務(wù)被掛起。 圖表523:接收GPS模塊信息流程圖char * User_GPSreceive(){ char cmd_str[1024]。 char *pstr。 char *p。 while (1) { GPSINFO info。 // GPS定位信息提取 GPS_recv_cmd(cmd_str)。 // GPS定位信息解析 GPSReceive(amp。info, cmd_str, strlen(cmd_str))。 if( ==1) //整合定位信息 p=TRACE_MSG(amp。info)。 SENDSMS(p)。 return p。 }}任務(wù)名稱(chēng)為T(mén)askGPRSsend,優(yōu)先級(jí)為7,功能為等待消息郵箱中的消息若消息為空則該任務(wù)被掛起,直到消息郵箱中有了消息則該任務(wù)提取GPS定位信息加以整合,形成人們通常使用的短信形式,通過(guò)GPRS模塊發(fā)送出去。然后釋放前面兩個(gè)被掛起的消息。系統(tǒng)轉(zhuǎn)而運(yùn)行優(yōu)先級(jí)最高的任務(wù)即接收信息任務(wù)。 圖表543:發(fā)送信息框圖void User_GPRSsend(char *p){ char GPRS_cmd_recv_string[512]。 int GPRS_recv_msg_code。 char GPRS_cmd_send_string[512]。 // 轉(zhuǎn)換到PDU模式 strcpy(GPRS_cmd_send_string, AT+CMGF=0\r)。 GPRS_send_cmd(GPRS_cmd_send_string)。 //設(shè)置參數(shù) strcpy(GPRS_cmd_send_string, AT+CNMI=2,1\r)。 GPRS_send_cmd(GPRS_cmd_send_string)。 // 設(shè)置服務(wù)中心號(hào)碼 strcpy(GPRS_cmd_send_string, AT+CSCA=\+8613800532500\\r)。 GPRS_send_cmd(GPRS_cmd_send_string)。 // 發(fā)送短信 SM_PARAM Src。 // 短消息服務(wù)中心號(hào)碼(SMSC地址) strcpy(, 8613800532500)。 strcpy(, 86)。 // 目標(biāo)號(hào)碼或回復(fù)號(hào)碼(TPDA或TPRA) strcat(, 13018907913)。 // 用戶(hù)信息協(xié)議標(biāo)識(shí)(TPPID) = 0。 // 用戶(hù)信息編碼方式(TPDCS) = 8。 // 服務(wù)時(shí)間戳字符串(TP_SCTS), 接收時(shí)用到 strcpy(, 04060308421002)。 // 原始用戶(hù)信息(編碼前或解碼后的TPUD) strcpy(, p)。 //發(fā)送信息 GPRSSendMessage(amp。Src)。}本文從當(dāng)今車(chē)載定位終端設(shè)備的特點(diǎn)和要求出發(fā),設(shè)計(jì)了基于ARM的車(chē)載GPS/GPRS系統(tǒng),主要完成以下幾項(xiàng)工作:(1) 根據(jù)現(xiàn)在市場(chǎng)上主流的方案,選擇合適的芯片、模塊、系統(tǒng)、開(kāi)發(fā)平臺(tái)等,完成總體設(shè)計(jì)方案.(2) 采用S3C2410X作為系統(tǒng)微處理器,設(shè)計(jì)了ARM嵌入式系統(tǒng)的外圍電路,結(jié)合GPS模塊和GPRS模塊電路,完成車(chē)載定位系統(tǒng)的硬件設(shè)計(jì)。(3) 采用嵌入式μC/OSII操作系統(tǒng),完成 GPS和GPRS應(yīng)用程序設(shè)計(jì)。(4) 建立交叉開(kāi)發(fā)平臺(tái),對(duì)系統(tǒng)的部分功能進(jìn)行測(cè)試。由于時(shí)間限制,本車(chē)載終端只是具備了基本的功能,還需要進(jìn)一步的實(shí)踐,并且還有很多方面需要完善,還有很多的工作需要去做:(1) 功能上還比較單一,應(yīng)根據(jù)市場(chǎng)的需求,添加更多實(shí)用的功能。比如:攝像功能。語(yǔ)音通信。建立數(shù)據(jù)庫(kù),能夠儲(chǔ)存和查詢(xún)行駛路線和數(shù)據(jù)。建立電子地圖,可加入溫度模塊和濕度模塊,在回復(fù)信息中加入溫度信息、濕度信息等;加入SD卡存儲(chǔ)模塊,每隔15分鐘采集一次信息存入到SD卡中,使其更具實(shí)用價(jià)值。(2) 由于本設(shè)計(jì)只是在實(shí)驗(yàn)室里進(jìn)行調(diào)試,還沒(méi)有進(jìn)行實(shí)際產(chǎn)品的生產(chǎn),因此對(duì)終端的抗干擾性和通信性能還需做進(jìn)一步的測(cè)試。致謝時(shí)間飛逝,四年的大學(xué)生活即將結(jié)束。從課題的選題、論證、設(shè)計(jì)和調(diào)試到現(xiàn)在,已經(jīng)有一個(gè)多月的時(shí)間了。在這段時(shí)間中,我的導(dǎo)師張德學(xué)副教授在課題的選定、課題的指導(dǎo)、論文的撰寫(xiě)、試驗(yàn)設(shè)備的保證和實(shí)驗(yàn)條件的提供等方面給予了全面的支持。在我做設(shè)計(jì)期間,導(dǎo)師在學(xué)習(xí)和工作方面對(duì)我嚴(yán)格要求,并且在實(shí)驗(yàn)方法的確立和一些技術(shù)細(xì)節(jié)、經(jīng)驗(yàn)等方面都給了我指導(dǎo)性的意見(jiàn)和建議,使我在完成學(xué)業(yè)的過(guò)程中受益匪淺。我更是從導(dǎo)師那兒學(xué)到了一絲不茍的科研態(tài)度,踏踏實(shí)實(shí)的工作作風(fēng)。在此,向張老師表達(dá)我最深的敬意和謝意。導(dǎo)師嚴(yán)謹(jǐn)、求實(shí)的治學(xué)精神,將成為我今后工作和學(xué)習(xí)的榜樣。另外,我也要衷心感謝實(shí)驗(yàn)室的任懷魯,桑勝峰,劉家良等師兄,在我遇到問(wèn)題的時(shí)候,是他們給予了我極大的幫助和鼓勵(lì)。在整個(gè)系統(tǒng)設(shè)計(jì)的功能和方向方面要感謝任懷魯師兄。ARM各個(gè)模塊的學(xué)習(xí)和操作系統(tǒng)的移植和燒寫(xiě),Bootloader的燒寫(xiě),要感謝桑勝峰師兄。實(shí)驗(yàn)設(shè)備的使用和維護(hù)要感謝劉家良師兄。最后車(chē)載終端軟件的編寫(xiě)還要感謝任懷魯學(xué)長(zhǎng)。由于實(shí)驗(yàn)設(shè)備等問(wèn)題最后的系統(tǒng)沒(méi)有在開(kāi)發(fā)板上得到預(yù)想中的效果,有點(diǎn)遺憾。但是整個(gè)設(shè)計(jì)下來(lái)讓我學(xué)到了很多很多東西。最后,要向遠(yuǎn)方默默支持、鼓勵(lì)和關(guān)懷我的父母道聲謝謝,他們無(wú)私的愛(ài)是我永久的動(dòng)力。參考文獻(xiàn)1. 田澤等.嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用教程.北京:北京航空航天大學(xué)出版社.2. 孫秋野.孫凱.馮?。粒遥颓度胧较到y(tǒng)開(kāi)發(fā)典型模塊.北京:人民郵電出版社.3. 徐華中.ARM9嵌入式技術(shù)及Linux高級(jí)實(shí)踐教程.北京:北京航空航天大學(xué)出版社. 4. μC/OSII,北京:5. :清華大學(xué)出版社,20036. :科學(xué)出版社,20037. 李洪濤等CPS應(yīng)用程序設(shè)計(jì),北京:科學(xué)出版社,19998. 林宇,:人民郵電出版社,20009. 范永開(kāi),:人民郵電出版社,200610. :北京航空航天大學(xué)出版社,200611. 張曉林,崔迎煒等,:北京航空航天大學(xué)出版杜,200612. ++語(yǔ)言程序設(shè)計(jì)案例教程,北京:清華大學(xué)出版社,200513. +:人民郵電出版社,200414. 鐘章隊(duì),蔣文怡,:人民郵電出版社,2002附錄附錄1:車(chē)載終端整體電路原理圖附錄2:外文翻譯CENTROL PROCESSINGUNIT DESIGNSABSTRACTThe CPU is the key ponent of a digital puter. Its p
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1