版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于ARM11和MMS的遠(yuǎn)程監(jiān)控系統(tǒng)研究發(fā)布: 2011-6-27 09:36 | 作者: | 來源: 21IC | 查看: 101次 隨著國民經(jīng)濟(jì)的快速發(fā)展和人民生活水平的日益提高,各種監(jiān)控系統(tǒng)應(yīng)運(yùn)而生,廣泛應(yīng)用于銀行、鐵路、民航等重點(diǎn)領(lǐng)域,并逐步進(jìn)入到個(gè)人家居監(jiān)控應(yīng)用領(lǐng)域中。目前大多數(shù)監(jiān)控系統(tǒng)都是將現(xiàn)場信息發(fā)送到遠(yuǎn)程計(jì)算機(jī)上,但計(jì)算機(jī)攜帶不方便,不能滿足人們隨時(shí)隨地查看現(xiàn)場信息的需求。而手機(jī)相對(duì)計(jì)算機(jī)來說普及率高、成本低、攜帶輕便,尤其是近年來 HYPERLINK /info/tag-1491.html t _blank GPRS無線數(shù)字移動(dòng)通信網(wǎng)的快速發(fā)展,為手機(jī)終端提供了無線接入Int
2、ernet業(yè)務(wù),使得手機(jī)成為互聯(lián)網(wǎng)中最普遍的終端設(shè)備。多媒體消息服務(wù)(Multimedia Message Service,MMS)作為GPRS一項(xiàng)基本業(yè)務(wù),被廣大手機(jī)用戶所使用。它不僅實(shí)現(xiàn)了終端之間、終端和電子郵件之間的信息傳遞,還實(shí)現(xiàn)了內(nèi)容的多樣性,包括圖片、音頻、視頻、圖像、數(shù)據(jù)和文本的各種組合??梢?,利用GPRS和MMS技術(shù)可完全滿足遠(yuǎn)程監(jiān)控系統(tǒng)對(duì)距離、圖像、聲音、高實(shí)時(shí)性的要求,具有重要的研究意義和使用價(jià)值。本文利用S3C6410作為 HYPERLINK /info/tag-1697.html t _blank 微控制器,設(shè)計(jì)了一種基于ARM11和MMS技術(shù)的遠(yuǎn)程監(jiān)控系統(tǒng)。1 MMS
3、概述 MMS是由3(3PP(Third Generation Partnership Project,3G伙伴計(jì)劃)和WAP Forum(Wireless Application Protocol Forum,無線應(yīng)用協(xié)議論壇)制定的一種手機(jī)消息業(yè)務(wù),是短信業(yè)務(wù)和圖片信息的進(jìn)一步發(fā)展。MMS系統(tǒng)主要包括多媒體信息中心(MMSC)、WAP網(wǎng)關(guān)、數(shù)據(jù)庫服務(wù)器和增值服務(wù)系統(tǒng)等。它的實(shí)現(xiàn)方式有2種:基于WAP和基于IP。目前,GPRS網(wǎng)絡(luò)采用基于WAP的方式發(fā)送和接收MMS彩信,其具體實(shí)現(xiàn)方式如圖1所示。 從圖1中可以看出,MMS業(yè)務(wù)是以WAP為載體來傳送信息的,可見WAP技術(shù)在多媒體消息服務(wù)中扮演了
4、重要的角色。WAP(Wireless Applica-tion Protocol,無線應(yīng)用協(xié)議)是開發(fā) HYPERLINK /info/tag-1406.html t _blank 移動(dòng)網(wǎng)絡(luò)上類似Internet應(yīng)用的一系列協(xié)議的組合,實(shí)現(xiàn)了Internet和移動(dòng)通信網(wǎng)的互聯(lián)。在WAP體系結(jié)構(gòu)中,WTP協(xié)議與WSP協(xié)議起到核心作用。WSP協(xié)議層在會(huì)話服務(wù)中提供了一致的接口,并針對(duì)無線網(wǎng)絡(luò)通信進(jìn)行了優(yōu)化,而WTP協(xié)議為互動(dòng)式瀏覽(請(qǐng)求應(yīng)答)提供服務(wù)。 在GPRS網(wǎng)絡(luò)中,使用MMS PDU(協(xié)議數(shù)據(jù)單元)對(duì)MMS信息進(jìn)行發(fā)送和接收,并采用多媒體郵件擴(kuò)展(MIME)協(xié)議進(jìn)行打包。MMS PDU由MM
5、S Header和MMS Body兩部分組成。Header描述了PDU的特定信息。Body包括了SMIL表述,用來設(shè)定多媒體片段的位置、播放時(shí)間等。當(dāng)用戶終端發(fā)送MMS信息時(shí),會(huì)將MMS PDU作為WAP協(xié)議的數(shù)據(jù)單元進(jìn)行封裝,并在移動(dòng)網(wǎng)絡(luò)中尋址、存儲(chǔ)和轉(zhuǎn)發(fā),最終傳遞給接收用戶。2 系統(tǒng)總體架構(gòu) 為了全面、詳細(xì)地掌握現(xiàn)場情況,本系統(tǒng)所采集的信息包括溫度、濕度、煙霧濃度、圖像數(shù)據(jù),以滿足人們?cè)谏a(chǎn)和生活中的需求。系統(tǒng)的總體架構(gòu)如圖2所示。 由圖2可知,本系統(tǒng)主要包括控制模塊、傳感器模塊、圖像采集模塊、報(bào)警模塊、GPRS模塊以及 HYPERLINK /info/tag-8293.html t _b
6、lank 存儲(chǔ)器模塊等部分。各個(gè)模塊的主要功能如下: 控制模塊是整個(gè)系統(tǒng)的核心部分。運(yùn)行系統(tǒng)的主控程序,完成設(shè)備的初始化工作;通過對(duì)圖像采集模塊的控制,完成對(duì)圖像信息的采集、編碼以及存儲(chǔ)等工作;通過傳感器模塊,采集遠(yuǎn)程終端的溫度、濕度、煙霧濃度,并將這些信息轉(zhuǎn)換成ASCII碼;完成MMS信息的封裝、發(fā)送任務(wù)。 傳感器模塊主要完成對(duì)現(xiàn)場信息的采集,包括溫度、濕度、煙霧濃度,實(shí)現(xiàn)非電信號(hào)向電信號(hào)的轉(zhuǎn)換。 圖像采集模塊實(shí)現(xiàn)對(duì)原始圖像信息的采集、數(shù)據(jù)的傳送等功能。 GPRS模塊通過PPP協(xié)議連接到GPRS無線網(wǎng)絡(luò),可實(shí)現(xiàn)對(duì)MMS信息的發(fā)送,以及對(duì)來自終端用戶SMS(短信息)的接收。 存儲(chǔ)器模塊主要用于
7、存儲(chǔ)經(jīng)過編碼處理的圖像信息。 當(dāng)現(xiàn)場溫度、濕度或煙霧濃度超過預(yù)設(shè)報(bào)警值時(shí),報(bào)警模塊產(chǎn)生報(bào)警信號(hào),提示工作人員及時(shí)處理現(xiàn)場發(fā)生的事故。 監(jiān)控系統(tǒng)的工作原理:當(dāng)系統(tǒng)正常工作時(shí),微控制器模塊會(huì)定時(shí)采集現(xiàn)場的溫度和煙霧濃度,并與預(yù)設(shè)的報(bào)警值進(jìn)行對(duì)比。當(dāng)溫度或煙霧濃度高于此值時(shí),微控制器模塊將會(huì)控制圖像采集模塊采集現(xiàn)場圖像,并將采集到的數(shù)據(jù)進(jìn)行編碼和處理,作為MMS消息的圖片數(shù)據(jù)進(jìn)行存儲(chǔ);同時(shí),通過傳感器模塊采集現(xiàn)場的溫濕度、煙霧濃度,并作為MMS消息的文字部分進(jìn)行存儲(chǔ)。而后將這兩部分?jǐn)?shù)據(jù)進(jìn)行封裝,以MMS消息的形式傳遞到終端用戶。在完成發(fā)送任務(wù)的同時(shí),系統(tǒng)會(huì)驅(qū)動(dòng)報(bào)警模塊產(chǎn)生報(bào)警信號(hào),達(dá)到報(bào)警的目的。
8、用戶也可以通過向系統(tǒng)發(fā)送短信息(SMS)的形式,要求監(jiān)控終端發(fā)送現(xiàn)場的溫度、濕度、圖像等信息,以實(shí)現(xiàn)用戶對(duì)現(xiàn)場的遠(yuǎn)程監(jiān)控。3 系統(tǒng)硬件設(shè)計(jì)31 控制模塊的設(shè)計(jì) 為了使遠(yuǎn)程監(jiān)控系統(tǒng)可以穩(wěn)定、持續(xù)、高效地工作,并能對(duì)突發(fā)事件做出迅速反應(yīng),控制模塊采用嵌入式微處理器S3C6410。該處理器是基于1632位ARM11版本內(nèi)核的低成本、低功耗、高性能 HYPERLINK /info/tag-1275.html t _blank 微處理器,廣泛應(yīng)用于移動(dòng)電話和其他便攜式應(yīng)用。為了給25G和3G移動(dòng)通信業(yè)務(wù)提供最佳的硬件性能,S3C6410采用6432位內(nèi)部總線結(jié)構(gòu),內(nèi)部集成了多個(gè)功能強(qiáng)大的硬件加速器,如移
9、動(dòng)圖像處理、顯示控制和圖像縮放。其內(nèi)部集成的JPEG HYPERLINK /info/tag-2000.html t _blank 編解碼器,支持對(duì)YCbCr4:2:2YCbCr4:2:0格式的圖像進(jìn)行編碼,輸出的圖像文件尺寸可滿足MMS信息對(duì)圖片大小的要求。除此之外,S3C6410還具備相機(jī)接口,該接口支持ITU R BT-656601 8位模式,最大輸入尺寸可為40964096像素,支持YCbCr4:2:2格式的數(shù)據(jù)作為輸入,可生成RGB 161824位格式和YCbCr4:2:2YCbCr4:2:0格式的圖像,這一特點(diǎn)可降低系統(tǒng)對(duì)圖像采集模塊的要求。32 傳感器模塊的設(shè)計(jì) 系統(tǒng)的傳感器模塊
10、由兩部分組成,分別是溫濕度傳感器和煙霧濃度傳感器。溫濕度傳感器采用廣州奧松公司的高性能AM2301電容式數(shù)字溫濕度傳感器。該傳感器具有超快響應(yīng)、抗干擾能力強(qiáng)、性價(jià)比高、溫濕度測量范圍大、分辨率高等優(yōu)點(diǎn),可應(yīng)用于各類環(huán)境中,甚至在條件極為惡劣的場合也可正常工作。AM2301是一種單總線器件,其數(shù)據(jù)格式:40位數(shù)據(jù)=16位濕度數(shù)據(jù)+16位溫度數(shù)據(jù)+8位校驗(yàn)和。在本系統(tǒng)中,通過S3C6410的引腳GPE1并加上拉電阻與控制模塊進(jìn)行通信,使系統(tǒng)集成變得更為簡易快捷,節(jié)省了引線數(shù)量,降低了產(chǎn)品成本。 煙霧濃度傳感器采用MQ-2作為感應(yīng)器件。MQ-2是一種電阻性的傳感器,對(duì)天然氣、液化石油氣、氫氣等煙霧具
11、有很高的靈敏度,可長期穩(wěn)定地工作,抗干擾性強(qiáng)。通過測量其輸出電阻,可以檢測現(xiàn)場的煙霧濃度。33 圖像采集模塊的設(shè)計(jì) 圖像采集模塊采用美國Omnivision公司生產(chǎn)的OV7650。它是一款高集成度、高分辨率的 HYPERLINK /info/tag-1704.html t _blank CMOS圖像傳感器,支持YCbCr4:2:2數(shù)據(jù)輸出格式,可完全滿足系統(tǒng)的設(shè)計(jì)要求。其輸入輸出接口與S3C6410的相機(jī)接口具備良好的兼容性,為系統(tǒng)的開發(fā)提供極大的便利。34 GPRS模塊的設(shè)計(jì) 系統(tǒng)采用Simcom公司的SIM300z作為GPRS模塊。它利用GPRS技術(shù)與GSM移動(dòng)通信網(wǎng)絡(luò)作為傳輸介質(zhì),可為用
12、戶提供快速的無線GPRS連接以及較高的 HYPERLINK /info/tag-1884.html t _blank 數(shù)據(jù)傳輸速率。該模塊有較寬的工作溫度范圍,可滿足監(jiān)控系統(tǒng)對(duì)惡劣條件的要求。SIM300z與S3C6410通過串口通信,能及時(shí)處理S3C6410發(fā)出的AT指令。對(duì)于S3C6410傳遞的數(shù)據(jù),SIM300z也可及時(shí)轉(zhuǎn)發(fā),滿足監(jiān)控系統(tǒng)對(duì)數(shù)據(jù)傳送的要求。4 系統(tǒng)軟件設(shè)計(jì) 完成硬件的設(shè)計(jì)只是實(shí)現(xiàn)系統(tǒng)功能的第一步,良好的軟件設(shè)計(jì)才是系統(tǒng)能夠穩(wěn)定運(yùn)行的關(guān)鍵,下面將詳細(xì)介紹監(jiān)控系統(tǒng)的軟件結(jié)構(gòu)和重要的軟件模塊。41 嵌入式操作系統(tǒng)的移植 嵌入式操作系統(tǒng)是一種用途廣泛的系統(tǒng)軟件,負(fù)責(zé)遠(yuǎn)程監(jiān)控系統(tǒng)的
13、全部軟件硬件資源的分配、調(diào)度等工作,是整個(gè)系統(tǒng)的基礎(chǔ)。Linux因其內(nèi)核完全開放、可以靈活配置等特性,被選為本系統(tǒng)的操作系統(tǒng)。其移植過程如下: 在PC機(jī)上利用虛擬機(jī),建立交叉編譯環(huán)境GNU; 根據(jù)系統(tǒng)需要選擇TCPIP等模塊,編譯生成Linux內(nèi)核; 編譯生成根文件系統(tǒng)rootdisk; 向底層硬件下載Bootloader映像,Bootloader的主要作用是初始化硬件,引導(dǎo)Linux內(nèi)核啟動(dòng); 燒寫Linux內(nèi)核和rootdisk映像。42 GPRS連網(wǎng)模塊的設(shè)計(jì) 在Linux下通過GPRS上網(wǎng),必須使用PPP協(xié)議進(jìn)行撥號(hào),而移植到ARM中的Linux沒有提供PPP協(xié)議,需要在內(nèi)核編譯時(shí)配置
14、網(wǎng)絡(luò)設(shè)備支持PPP協(xié)議。在此基礎(chǔ)上,利用pppd源碼包,使用“ATD*99*1#”進(jìn)行撥號(hào)連接,即可登錄中國移動(dòng)的GPRS網(wǎng)絡(luò)。在撥號(hào)過程中,需要進(jìn)行如下設(shè)置: 設(shè)置串口速率為115 200 bps,校驗(yàn)位為NONE,數(shù)據(jù)位為8,停止位為1,并取消硬件流控制; 用戶名與密碼為空; 使用“AT+CGDCONT=1,“IP”,“CMNET”指令,設(shè)置接入點(diǎn)為CMNET。43 信息采集模塊的設(shè)計(jì) 信息的采集包括兩部分:一部分是圖像信息的采集,另一部分是溫濕度、煙霧濃度的采集。由于S3C6410具備相機(jī)接口和強(qiáng)大的JPEG編解碼器作為硬件支持,可直接調(diào)用Linux函數(shù)完成圖像的采集和編碼工作,極大地縮
15、短了開發(fā)周期。 溫濕度的采集通過AM2301模塊進(jìn)行,在其上電后,需等待1s以越過不穩(wěn)定狀態(tài),在此期間不能發(fā)送任何指令。AM2301與S3C6410之間采用單總線數(shù)據(jù)格式進(jìn)行通信和同步,一次通信時(shí)間大約5 ms。 微控制器S3C6410采集溫濕度流程如下:通信開始時(shí)S3C6410拉低總線DATA,500s后釋放總線,延時(shí)2040 s后S3C6410開始檢測AM230 1的響應(yīng)信號(hào)。AM2301的響應(yīng)信號(hào)是一個(gè)80s左右的低電平,隨后AM2301再拉高總線80s左右代表其即將進(jìn)入數(shù)據(jù)傳送狀態(tài)。而后AM2301傳遞40位的有效數(shù)據(jù),當(dāng)最后一位數(shù)據(jù)傳送完畢后,AM2301將再次拉低總線50s左右,最
16、后釋放總線,并由上拉電阻拉高。煙霧濃度的采集過程:感應(yīng)器件MQ-2將煙霧信息轉(zhuǎn)變成電信號(hào),經(jīng)放大電路后再進(jìn)行AD轉(zhuǎn)換,最終傳遞給S3C6410進(jìn)行存儲(chǔ)。44 MMS發(fā)送模塊的設(shè)計(jì) 當(dāng)系統(tǒng)成功連接到GPRS網(wǎng)絡(luò)后,需要通過WAP協(xié)議發(fā)送MMS信息。在此過程中,WAP網(wǎng)關(guān)的IP設(shè)置為1000172,端口為9201。發(fā)送MMS信息的具體過程如下: 微處理器向WAP網(wǎng)關(guān)發(fā)送會(huì)話建立連接請(qǐng)求,發(fā)送的數(shù)據(jù)為0E 00 00 12 01 10 00 00(8字節(jié))。前4字節(jié)為WTP invoke PDU,后4字節(jié)為WSP協(xié)議數(shù)據(jù)單元,代表WSP Connect PDU。 服務(wù)器返回連接確認(rèn),其數(shù)據(jù)為13 8
17、0 00 02 92 C7 59 0E(30字節(jié))。前3字節(jié)為WTP Result PDU,其余為WSP協(xié)議數(shù)據(jù)單元,代表WSP ConnectReply PDU。 微處理器發(fā)送WTP確認(rèn)(WTP Acknowledgement PDU),完成會(huì)話連接,發(fā)送的數(shù)據(jù)為18 00 00。 微處理器發(fā)送WTP、WSP和MMS包,主要包括WTP Invoke PDU、WSP Post PDU和M-sendreq PDU。 網(wǎng)關(guān)返回事務(wù)操作結(jié)果,微處理器發(fā)送WTP確認(rèn)(WTP Acknowledgement PDU)完成會(huì)話,發(fā)送的數(shù)據(jù):18 00 01。5 系統(tǒng)測試 經(jīng)過多次測試,由監(jiān)控終端發(fā)送的MM
18、S信息,其絕大部分都能在發(fā)送5 s后由終端接收,即使不發(fā)送WTP確認(rèn)也可以被接收,能夠滿足監(jiān)控系統(tǒng)對(duì)實(shí)時(shí)性的要求。系統(tǒng)測試如圖3所示。結(jié)語 本文詳細(xì)介紹了基于ARM11和MMS的遠(yuǎn)程監(jiān)控系統(tǒng)。系統(tǒng)具有較好的穩(wěn)定性,可以適應(yīng)不同的工作環(huán)境。所采用的MMS技術(shù)可以傳送圖片、聲音、文字和視頻等信息,通過該技術(shù)實(shí)現(xiàn)遠(yuǎn)程監(jiān)控已成為當(dāng)今的一大熱點(diǎn)。隨著嵌入式技術(shù)的不斷發(fā)展、GPRS網(wǎng)絡(luò)的逐步成熟,以及3G網(wǎng)絡(luò)的迅速發(fā)展,通過MMS的方式實(shí)現(xiàn)遠(yuǎn)程監(jiān)控必定成為流行趨勢(shì)。相信在不久的將來,人們不出家門,就可以實(shí)時(shí)對(duì)遠(yuǎn)程場景進(jìn)行監(jiān)控,及時(shí)處理突發(fā)事件。附錄資料:不需要的可以自行刪除ARM經(jīng)典40問答第1問:Q:請(qǐng)
19、問在初始化CPU堆棧的時(shí)候一開始在執(zhí)行mov r0, LR這句指令時(shí)處理器是什么模式A:復(fù)位后的模式,即管理模式。第2問: Q:請(qǐng)教:MOV中的8位圖立即數(shù),是怎么一回事 0 xF0000001是怎么來的 A:是循環(huán)右移,就是一個(gè)0255 之間的數(shù)左移或右移偶數(shù)位的來的,也就是這個(gè)數(shù)除以4一直除, 直到在0-255的范圍內(nèi)它是整數(shù)就說明是可以的! A:8位數(shù)(0-255)循環(huán)左移或循環(huán)右移偶數(shù)位得到的,F(xiàn)0000001既是0 x1F循環(huán)右移4位,符合規(guī)范,所以是正確的。這樣做是因?yàn)橹噶铋L度的限制,不可能把32位立即數(shù)放在32位的指令中。移位偶數(shù)也是這個(gè)原因??梢钥匆豢?HYPERLINK t
20、_blank arm體系結(jié)構(gòu)(ADS自帶的英文文檔)的相關(guān)部分。第3問: Q:請(qǐng)教: HYPERLINK t _blank arm微控制器基礎(chǔ)與實(shí)戰(zhàn)2.2.1節(jié)關(guān)于第2個(gè)操作數(shù)的描述中有這么一段:#inmed_8r常數(shù)表達(dá)式。該常數(shù)必須對(duì)應(yīng)8位位圖,即常熟是由一個(gè)8位的常數(shù)循環(huán)移位偶數(shù)位得到。 合法常量:0 x3FC,0,0 xF0000000,200,0 xF0000001. 非法常量:0 x1FE,511,0 xFFFF,0 x1010,0 xF0000010. 常數(shù)表達(dá)式應(yīng)用舉例: LDR R0,R1,#-4 ;讀取 R1 地址上的 HYPERLINK / t _blank 存儲(chǔ)器單元內(nèi)
21、容,且 R1 = R1-4 針對(duì)這一段,我的疑問: 1. 即常數(shù)是由一個(gè)8位的常數(shù)循環(huán)移位偶數(shù)位得到,這句話如何理解 2. 該常數(shù)必須對(duì)應(yīng)8位位圖,既然是8位位圖,那么取值為0-255,怎么0 x3FC這種超出255的數(shù)是合法常量呢 3. 所舉例子中,合法常量和非法常量是怎么區(qū)分的 如0 x3FC合法,而0 x1FE卻非法0 xF0000000,0 xF0000001都合法,而0 xF0000010又變成了非法 4. 對(duì)于匯編語句 LDR R0,R1,#-4,是先將R1的值減4結(jié)果存入R1,然后讀取R1所指單元的 值到R0,還是先讀取R1到R0,然后再將R1減4結(jié)果存入R1 A:提示,任何常數(shù)
22、都可用底數(shù)*2的n次冪 來表示。 1. HYPERLINK t _blank arm結(jié)構(gòu)中,只有8bits用來表示底數(shù),因此底數(shù)必須是8位位圖。 2. 8位位圖循環(huán)之后得到常數(shù),并非只能是8位。 3. 0 xF0000010底數(shù)是9位,不能表示。 4. LDR R0, R1, #-4 是后索引,即先讀,再減。 可以看一看 HYPERLINK t _blank arm體系結(jié)構(gòu)對(duì)相關(guān)尋址方式的說明。第4問: Q:在程序移植的過程中,什么代碼段處于什么樣的模式,這可真是一個(gè)困擾人的大難題,有沒有一種標(biāo)志或辦法能夠識(shí)別代碼段處于什么樣的模式 A:讀取 CPSR ,任何時(shí)候都是可以讀。第5問: Q:為什
23、么保護(hù)現(xiàn)場時(shí),總是保護(hù) R0-R3,R12,為什么不保護(hù)R4-R11A:請(qǐng)看一看 HYPERLINK t _blank arm-thumb過程調(diào)用標(biāo)準(zhǔn)這個(gè)文檔。第6問: Q:請(qǐng)問 mov R1,#0 x00003DD0 錯(cuò)誤: out of the range of operation是怎么回事情 我就是想IODIR=0 x00003dd0,匯編就是 LDR R0,=IODIR MOV R1,#0 x00003dd0 STR R1,R0 編譯時(shí)候說是超出操作范圍 A:使用ldr,mov的操作數(shù)為8位位圖數(shù)。第7問: Q:在 HYPERLINK t _blank arm7TDMI(-S)處理器內(nèi)
24、部有37個(gè)用戶可見的寄存器: 問題:用戶可見應(yīng)該怎樣理解 這37個(gè)寄存器是否是37個(gè)不同的物理寄存器, 例如R8與R8_fiq應(yīng)該是兩個(gè)不同的物理寄存器吧 A:用戶可見是指用戶可以通過程序操作的。R8與R8_fiq是兩個(gè)不同的寄存器。第8問: Q: USR模式,SVC模式,IRQ模式分別有哪些限制 A:對(duì)于外設(shè)操作限制與芯片設(shè)計(jì)有關(guān)。USR模式不能設(shè)置CPSR寄存器。 用戶模式下無SPSR寄存器,代碼可以為 HYPERLINK t _blank arm,Thumb.第9問: Q:請(qǐng)問在初始化堆棧時(shí)就決定了工作模式是什么意思 如何決定工作模式的 A:設(shè)置CPSR寄存器。第10問: Q:請(qǐng)問: H
25、YPERLINK t _blank arm匯編程序設(shè)計(jì)中所謂的文字池作何理解 A:可以理解為常量數(shù)組,文字池中保存的是常量,這些常量可以是正常的常量,也可以是地址。第11問: Q:為什么在中斷向量表中不直接LDR PC,異常地址.而是使用一個(gè)標(biāo)號(hào),然有再在后面使用DCD定義這個(gè)標(biāo)號(hào) A:因?yàn)長DR指令只能跳到當(dāng)前PC 4kB范圍內(nèi),而B指令能跳轉(zhuǎn)到32MB范圍,而現(xiàn)在這樣在LDR PC, xxxx這條指令不遠(yuǎn)處用xxxxDCD定義一個(gè)字,而這個(gè)字里面存放最終異常服務(wù)程序的地址,這樣可以實(shí)現(xiàn)4GB全范圍跳轉(zhuǎn)。 Q: LDR 不是可以全空間跳轉(zhuǎn)的嗎 HYPERLINK t _blank arm微控
26、制器基礎(chǔ)與實(shí)戰(zhàn)程序清單5.3. A: LDR偽指令通過設(shè)置指令緩沖池才能實(shí)現(xiàn)全范圍跳轉(zhuǎn),而LDR指令則只能實(shí)現(xiàn)4KB范圍跳轉(zhuǎn)。第12問: Q: ARM7TDMI-S和 HYPERLINK t _blank arm7TDMI有何區(qū)別 A: ARM7TDMI-S是ARM7TDMI的可綜合(synthesizable)版本(軟核)。 對(duì)應(yīng)用工程師來說,除非芯片生產(chǎn)廠商對(duì)ARM7TDMI-S進(jìn)行了裁減,否則ARM7TDMI-S與ARM7TDMI沒有太大的區(qū)別,其編程模型與 HYPERLINK t _blank arm7TDMI一致。第13問: Q: DCD偽指令的疑惑。 StackUsr DCD Us
27、rStackSpace + (USR_STACK_LEGTH - 1) * 4 這句話是什么意思 DCD后面的程序標(biāo)號(hào)或數(shù)字表達(dá)式是何意 A:它的內(nèi)容是初始化遞減堆棧的最高地址,看 HYPERLINK t _blank arm微控制器基礎(chǔ)與實(shí)戰(zhàn)2.3.2節(jié)。 第2章 編譯器與語言第14問: Q:00254: Unimplemented RDI message是什么錯(cuò)誤提示 我的設(shè)置連接都正常,是不是芯片燒了 A:是JTAG的問題??梢韵仁褂肐SP操作試試就知道了,如果能ISP,說明LPC2104沒有損壞,還能正常運(yùn)行程序。第15問: Q:請(qǐng)教:我在調(diào)試程序的時(shí)候在AXD中出現(xiàn)這樣的提示信息:
28、RDI Warning 00159:could not open specified device port. 我是根據(jù)配套教程的步驟設(shè)置的。 A:請(qǐng)按照光盤easy HYPERLINK t _blank arm_drivereadme.txt安裝驅(qū)動(dòng)程序。第16問: Q:我用實(shí)驗(yàn)程序運(yùn)行經(jīng)常出現(xiàn)下列信息! 程序不能 HYPERLINK / t _blank 下載到目標(biāo)板。 Warnning! interrupt vectors data is not correct! Program you downloaded can not run freely! A:1.仿真器配置一定要正確,即Eas
29、y HYPERLINK t _blank arm Configuration設(shè)置窗口中的FLASH項(xiàng)中選擇Erase Flash when need; 2.向量表累加和要為0; 3.可以先在RAM調(diào)試一個(gè)程序(運(yùn)行),然后STOP,再使用File-Load Image加載要 HYPERLINK / t _blank 下載到FLASH的調(diào)試文件。第17問: Q:在ADS中是否可以進(jìn)行軟件調(diào)試基于UCOS-II的程序 A:ADS軟件調(diào)試只能調(diào)試 HYPERLINK t _blank arm的內(nèi)核,不能調(diào)試外設(shè)。但是取消 PLL 鎖定檢測后,可以調(diào)試任務(wù)切換,最終到空閑任務(wù)上。開始移植時(shí)軟件仿真是最
30、好的工具。第18問: Q: HYPERLINK t _blank armulate軟件是干什么的 2104不是用EasyJTAG.dll來仿真嗎 A:軟件仿真只能仿真 HYPERLINK t _blank arm 核。第19問: Q:有關(guān)LPC2106.INC的問題。我無法在project引用lpc2106.inc文件,只能引用lpc2106.h文件, 這是什么原因 且當(dāng)我的主程序用匯編編寫時(shí),不能引用lpc2106.h,用lpc2106.inc則無法加入project,請(qǐng)問匯編器應(yīng)如何設(shè)置 A:不用加2106.inc只要該文件在你的工程文件夾中,就可以直接在匯編程序的開始處加 include
31、 2106.inc. 注意:該文件是匯編文件定義的頭文件,定義內(nèi)部寄存器。第20問: Q:入口點(diǎn)是什么意思 我在使用LPC2106上移植UCOS-II,每次MAKE時(shí)總是提示我 Image does not have an entry point,可是我是把光盤的vetctors.s 復(fù)制過來的,而且仔細(xì)看了看,已經(jīng)聲明了ENTERY,這是怎么回事A:需要在ADS中設(shè)置入口。第21問: Q:請(qǐng)教:如何定義不被初始化變量 A:讓編譯器不知道有這個(gè)內(nèi)存地址即可。 A:如用分散加載文件分配RAM故意預(yù)留一部分RAM不分配,用它來存您不需要初始化的東西?;蛘卟徽{(diào)用編譯器提供的啟動(dòng)代碼,不過這樣可能編程
32、會(huì)麻煩一些。第22問: Q:我直接通過JTAG口 HYPERLINK / t _blank 下載EasyArm板帶的Ext1_test程序到 HYPERLINK t _blank arm中,出現(xiàn)中斷向量的告警: interrupt vector is not correct HYPERLINK t _blank arm is not running freely. 果然復(fù)位后芯片不能運(yùn)行。但是我用串口 HYPERLINK / t _blank 下載后芯片能正常工作,中斷也行的。 并且我用JTAG仿真的話,芯片能正常工作,中斷也行的,唯獨(dú)JTAG口 HYPERLINK / t _blank 下載
33、不行。 不知道是什么原因 A:仿真器配置中要設(shè)置Erase Flash when need.也可以這樣試試: 1.可以先打開一個(gè)工程在RAM中調(diào)試運(yùn)行; 2.stop程序; 3.使用File-Load Image重新加載Ext1_test生成的*.axf文件。 Q:仿真器配置中我是設(shè)置了Erase Flash when need,但照你說的話,那不是在RAM下調(diào)試嗎 在RAM下調(diào)試我是可以的,但是下載后出現(xiàn)interrupt vector data is not correct. 我又看了幾篇文章,是不是跟中斷向量表的累加和不為零有關(guān)系啊 A:是的,是向量表的累加和不為零。 因?yàn)槿绻肐SP下
34、載能運(yùn)行,說明向量表的累加和已為零,而用JTAG下載不能運(yùn)行的情況可能是 沒有正常下載代碼。先在RAM中調(diào)試,目的是為了后面正確下載程序到FLASH.第23問: Q:用Scatter怎樣將某個(gè)函數(shù)或文件定位在Flash的某個(gè)位置 第24問: Q:我在仿真時(shí)遇到這樣的提示: Error, Flash is protected by user configation! 怎么寫到flash里面呢 A:看配套 HYPERLINK t _blank arm微控制器基礎(chǔ)與實(shí)戰(zhàn)附錄一。第25問: Q:我在移植實(shí)驗(yàn)中想到了兩個(gè)問題,如下: 1.Debug和Release以及DebugRel有什么不同,為什么在
35、作2104移植實(shí)驗(yàn)時(shí),要用Release 2.在Release中為什么要將RW Base設(shè)置為0 x40000040 我將其設(shè)置為0 x40003000, 為什么不能工作 A:都只是一個(gè)問題,內(nèi)存空間的使用,因?yàn)榕躉S要比較大的內(nèi)存空間,所以要騰出點(diǎn)地方。第26問: Q:請(qǐng)問沒有MMU的 HYPERLINK t _blank arm芯片是否支持使用malloc()函數(shù)動(dòng)態(tài)分配內(nèi)存 A:是否支持malloc()函數(shù)與芯片沒有多大關(guān)系,主要與編譯器有關(guān)。 Q:再問:如果沒有操作系統(tǒng)支持呢 A:也支持。第27問: Q:在I2C實(shí)驗(yàn)程序中,我想查看數(shù)據(jù)緩沖區(qū)DataBuf的值,怎么查看 A:watch
36、窗口或鼠標(biāo)停留在要查看的變量名上。 Q:我查詢的是寫入DataBuf緩沖區(qū)的值,鼠標(biāo)在上面根本就不會(huì)出現(xiàn)他的值,即使在watch中加入, 結(jié)果也是name not found. A:變量被優(yōu)化,調(diào)試時(shí)可以把該變量定義為全局變量查看。第28問: Q:仿真軟件和2104開發(fā)板連接不上 DBE Warning 00041: !An unspecified Debug Toolbox call failed 電源和開發(fā)板都連好,錯(cuò)誤和沒接開發(fā)板一樣,驅(qū)動(dòng)也安裝了,安裝時(shí)按確定鍵時(shí),軟件很長時(shí)間才有如上反應(yīng),請(qǐng)幫忙 A:1.并口是否正常 2.在其它操作系統(tǒng)(如98)下或其它臺(tái)式PC下試試。第29問: Q
37、:如何生成32位hex文件 我在Release Setting- HYPERLINK t _blank arm fromELF-Output Format中設(shè)置為Intel 32bit HEX,可是好像沒有生成hex文件 A:試試這種方法: Target-Target Setting- ost Link中選擇 HYPERLINK t _blank arm fromELF加上你上面設(shè)的應(yīng)該不成問題。第30問: Q:請(qǐng)問關(guān)于settings中r0 base rw base的意思 A:ro:read only,rw:read and write.第31問: Q:編譯成功后的信息第一行,code,R0
38、 data,RW data,ZI data,debug分別代表什么 A:R0 只讀段,即程序代碼空間; RW 可讀/寫段,即數(shù)據(jù)變量空間; ZI 清零變量段,即需要清零初始化的數(shù)據(jù)變量空間。第32問: Q:如何在ADS里面看任務(wù)執(zhí)行的一些情況 比如堆棧。 A:多任務(wù)環(huán)境下的堆棧,內(nèi)存等信息需要調(diào)試軟件的支持才可以實(shí)現(xiàn)。 ucos下有一個(gè)統(tǒng)計(jì)功能的模塊可以間接實(shí)現(xiàn)部分功能。第33問: Q:請(qǐng)問向flash燒數(shù)據(jù)時(shí)出現(xiàn):exceeds flash limitation 請(qǐng)予賜教! A:要寫入的flash地址超過了范圍。如果不是代碼太大的問題,可以檢查scf文件是否正確。第34問: Q:在LPC22
39、14之類的芯片中如何實(shí)現(xiàn)數(shù)組的絕對(duì)地址定位,比如51的_at_的用法。 A:*(char*)0 x40000300)類似訪問 Q:謝謝,但這樣做就無須定義數(shù)組變量,訪問也不便,還有高招嗎 A:可以使用分散加載。第35問: Q:請(qǐng)問 ADS編譯錯(cuò)誤L6221E:Execution region ER_RO overlays with Execution region ER_ZI 該如何解決 A:請(qǐng)用我們網(wǎng)站上的工程模板試一試,最大的可能是因?yàn)槟愕腞ELEASE或者DEBUG選項(xiàng)里面沒有正確設(shè)置,按照參考 HYPERLINK t _blank arm微控制器基礎(chǔ)與實(shí)戰(zhàn)上面的設(shè)置,是不會(huì)有這個(gè)問題的。第36問: Q:請(qǐng)教一下:將程序?qū)懭雈lash,再用從JTAG方式調(diào)試寫入之后再復(fù)位程序沒什么反映。 看了很多以前的帖子,說memmap寄存器要為1,我用的是一個(gè)很簡單的控制led的例子,改動(dòng)了參數(shù)之后寫入flash的。在這個(gè)程序的vectors中找不到關(guān)于memmap寄存器操作的部分啊,這是怎么回事,該怎么辦呢 A: HYPERLINK t _blank arm微控制器基
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《威海節(jié)日習(xí)俗》課件
- 《室內(nèi)設(shè)計(jì)課件》課件
- 單位管理制度集合大合集人力資源管理篇
- 單位管理制度合并選集【員工管理篇】十篇
- 單位管理制度分享匯編員工管理篇
- 單位管理制度分享大全人員管理篇十篇
- 《審計(jì)與管理》課件
- 《客房優(yōu)化方案》課件
- 《診斷思路》課件
- (高頻選擇題50題)第2單元 社會(huì)主義制度的建立與社會(huì)主義建設(shè)的探索(解析版)
- 2024年全國《國防和兵役》理論知識(shí)競賽試題庫與答案
- 企業(yè)知識(shí)產(chǎn)權(quán)保護(hù)策略及實(shí)施方法研究報(bào)告
- 2024年07月11026經(jīng)濟(jì)學(xué)(本)期末試題答案
- 2024年中小企業(yè)股權(quán)融資合同3篇
- 理想系列一體化速印機(jī)故障代碼
- 現(xiàn)代電路技術(shù)——故障檢測D算法
- 檢驗(yàn)科各專業(yè)組上崗輪崗培訓(xùn)考核制度全6頁
- 鈑金與成型 其它典型成形
- 工程停止點(diǎn)檢查管理(共17頁)
- 爬架安裝檢查驗(yàn)收記錄表1529
- 2021年全國煙草工作會(huì)議上的報(bào)告
評(píng)論
0/150
提交評(píng)論