基于ARM9的中央空調(diào)網(wǎng)絡(luò)集中控制器研究_第1頁
基于ARM9的中央空調(diào)網(wǎng)絡(luò)集中控制器研究_第2頁
基于ARM9的中央空調(diào)網(wǎng)絡(luò)集中控制器研究_第3頁
基于ARM9的中央空調(diào)網(wǎng)絡(luò)集中控制器研究_第4頁
基于ARM9的中央空調(diào)網(wǎng)絡(luò)集中控制器研究_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

以往我國的\o"中央空調(diào)"中央空調(diào)控制系統(tǒng)主要采用以單片機為控制核心的單機組控制器,即一個控制器只能控制一臺中央空調(diào)機組,這種控制方法控制簡單,但是在多層或者較大型的建筑中控制能力就顯得力不從心了。近年來也出現(xiàn)了采用ARM7處理器作為控制芯片的集中控制器,但是在此所采用的\o"ARM9"ARM9

處理器比ARM7處理器又有了許多優(yōu)點,如ARM9處理器采用5級流水線,在每一個時鐘周期內(nèi)可以同時執(zhí)行5條指令,這樣就大大提高了處理性能,在同樣的加工工藝下,ARM9處理器的時鐘頻率是ARM7的1.8~2.2倍;又如ARM9采用哈佛結(jié)構(gòu),具有分離的數(shù)據(jù)和程序空間及分離的訪問總線,所以在指令執(zhí)行時哈佛結(jié)構(gòu)的取址和取數(shù)可以并行,因此具有更高的執(zhí)行效率;再如擁有內(nèi)存管理單元(MMU),只有擁有了MMU才能真正實現(xiàn)內(nèi)存保護,通過內(nèi)存保護,一個進程的失敗并不會影響其他進程的運行,從而增強了系統(tǒng)的穩(wěn)定性。另外,ARM9可以內(nèi)嵌Linux操作系統(tǒng),Linux具有良好的網(wǎng)絡(luò)支持功能;Linux是首先實現(xiàn)TCP/IP協(xié)議棧的操作系統(tǒng),它的內(nèi)核結(jié)構(gòu)在網(wǎng)絡(luò)方面是非常完整的,并提供了對包括十兆位、百兆位及千兆位的以太網(wǎng),還有無線網(wǎng)絡(luò)等的支持;其次,Linux源碼開放、可定制內(nèi)核、性能優(yōu)異等也是選擇它相對于其他嵌入式操作系統(tǒng)的優(yōu)勢。在此設(shè)計的網(wǎng)絡(luò)集中控制器可與監(jiān)控軟件一起完成基于TCP/IP協(xié)議的網(wǎng)絡(luò)通信功能,并能通過RS485總線與自行設(shè)計的現(xiàn)場控制器進行通信。1

控制器設(shè)計方案網(wǎng)絡(luò)管理器的主要功能一方面是通過以太網(wǎng)與監(jiān)控軟件進行數(shù)據(jù)交換;另一方面是通過RS485總線網(wǎng)絡(luò)與分布在大廈各處的現(xiàn)場控制器通信。網(wǎng)絡(luò)管理器對現(xiàn)場控制器進行控制和管理,在現(xiàn)場控制器與中央操作站之間起數(shù)據(jù)緩存作用。1.1

控制器硬件設(shè)計處理器采用ATMEL公司的AT91RM9200,該處理器是ATMEL專門針對工業(yè)及以太網(wǎng)應(yīng)用領(lǐng)域推出的基于ARM920T內(nèi)核的新型微處理器,如圖1所示。(1)電源電路。主要作用是為控制器提供3.3V和1.8V的穩(wěn)定電壓。設(shè)計時利用LM1117低壓差線性調(diào)壓器來提供3.3V和1.8V的電壓。LM1117能夠提供1.8V,2.5V,2.85V,3.3V,5V的固定電壓和可調(diào)電壓型號,并能提供電流限制和熱保護。

圖1

網(wǎng)絡(luò)集中控制器硬件模塊示意圖(2)復位電路。主要完成系統(tǒng)的上電復位和系統(tǒng)在運行時用戶的按鍵復位功能,它由簡單的RC電路構(gòu)成,這種電路比較通用,其復位邏輯是可靠的。(3)存儲器系統(tǒng)設(shè)計。包括NorFlash接口、NandFLASH接口和SDRAM接口電路的設(shè)計。①NorFLASH存儲器內(nèi)部存放系統(tǒng)啟動代碼、Linux內(nèi)核和用戶程序等,存儲器芯片采用AT49BV322A,單片存儲容量為32Mb,工作電壓為2.65~3.6V,數(shù)據(jù)寬度為16b,并以16b(字模式)數(shù)據(jù)寬度的方式工作。②SDRAM存儲器作為程序的運行空間,如前所述,SDRAM的存儲單元可以理解為一個電容,總是傾向于放電,為避免數(shù)據(jù)丟失,必須定時刷新(充電)。由此可見,要在系統(tǒng)中使用SDRAM,就要求微處理器具有刷新控制邏輯,或在系統(tǒng)中另外加入刷新控制邏輯電路。本控制器采用的控制芯片具有用SDRAM刷新控的制邏輯,可以直接與SDRAM接口連接。SDRAM存儲器芯片采用HY57V281620HG,單片存儲容量為4組!32Mb,工作電壓為3.3V,數(shù)據(jù)寬度為16b。本控制器采用2片16b數(shù)據(jù)寬度的HY57V281620HG并聯(lián)為32b數(shù)據(jù)寬度的SDRAM存儲系統(tǒng)。③NandFLASH作為系統(tǒng)的數(shù)據(jù)存儲器,芯片采用K9F1208UOMYIB0,存儲容量為64MB,數(shù)據(jù)總線寬度為8位,工作電壓為2.7~3.6V。為了提高控制芯片的驅(qū)動能力,在這部分設(shè)計中加入了74HC245總線驅(qū)動器,74HC245提供雙向總線驅(qū)動,主要使用在數(shù)據(jù)的雙向緩沖。(4)串行接口電路。本控制器對控制芯片提供的4個串口中3個設(shè)計接口電路。一個串口用于軟件調(diào)試與系統(tǒng)開發(fā),另一個作為預留串口,可以在需要時與PC機進行通信。另外,還需要設(shè)計RS485串行通信接口電路,用于與現(xiàn)場控制器的通信。電平轉(zhuǎn)換芯片采用常用的MAX232;RS485電平轉(zhuǎn)換芯片采用MAX485。(5)網(wǎng)絡(luò)接口電路。AT91RM9200內(nèi)嵌入了10Mb/s/100Mb/s自適應(yīng)的以太網(wǎng)MAC控制器,但是這還不能直接用來進行以太網(wǎng)通信,片外還需要擴展以太網(wǎng)的物理層接口(PHY),這樣才能夠?qū)崿F(xiàn)高速的以太網(wǎng)通訊。物理層接口芯片選用DM9161。另外,設(shè)計中還用到了網(wǎng)絡(luò)隔離變壓器,它的主要作用是傳輸數(shù)據(jù),還有一個作用是隔離網(wǎng)線連接中不同網(wǎng)絡(luò)設(shè)備間的不同電平,以防止不同電壓通過網(wǎng)線傳輸損壞設(shè)備。1.2

控制器應(yīng)用程序開發(fā)控制器軟件部分的開發(fā)主要是在裁剪好的Linux內(nèi)核和驅(qū)動程序的基礎(chǔ)上開發(fā)適應(yīng)本系統(tǒng)的串口應(yīng)用程序和服務(wù)器應(yīng)用程序。Linux操作系統(tǒng)下串口應(yīng)用程序的開發(fā)步驟為:打開串口;設(shè)置串口屬性;讀寫串口;關(guān)閉串口。要分別編寫發(fā)送程序和接收程序,以便于發(fā)送和接收數(shù)據(jù)時可以分別調(diào)用兩個函數(shù)。程序中需要注意接收和發(fā)送程序中的buffer一定不要小于要接收數(shù)據(jù)的長度,否則接收或者發(fā)送的數(shù)據(jù)就會出錯。服務(wù)器應(yīng)用程序是將網(wǎng)絡(luò)集中控制器作為服務(wù)器端來編寫程序,使其能與作為客戶端的監(jiān)控軟件通過以太網(wǎng)通信。服務(wù)器程序的開發(fā)步驟為:生成套接口;綁定套接口地址;*連接請求;接收連接請求;與客戶程序進行通信;關(guān)閉套接口。由于網(wǎng)絡(luò)集中控制器在與監(jiān)控軟件通信時是作為服務(wù)器來運行的,因此需要使網(wǎng)絡(luò)控制器開機自運行,并等待監(jiān)控軟件(即客戶端)發(fā)送請求。那么設(shè)計時就需要讓該服務(wù)器程序一開機就自動運行,等待與客戶端的連接與通信。為此,設(shè)計中將服務(wù)器程序放在Linux的開機自啟動程序中,這樣就可以保證服務(wù)器程序的開機運行了。服務(wù)器程序和其中的通信過程流程圖分別如圖2、圖3所示。

圖2

服務(wù)器程序流程圖

圖3

通信過程流程圖1.3

控制器LCD開發(fā)網(wǎng)絡(luò)集中控制器作為用戶操作的主要對象,人機界面需要有很好的友好性。當不使用監(jiān)控軟件,或者無法使用監(jiān)控軟件來觀察數(shù)據(jù)時,網(wǎng)絡(luò)控制器可以使用液晶屏作為數(shù)據(jù)顯示界面。LCD液晶顯示模塊的主要核心元件是LCD控制器和LCD顯示器。LCD液晶顯示器選用了640×480的液晶屏,在LCD控制器方面選用了EPSON公司的S1D13506。開發(fā)內(nèi)容包括LCD的接口設(shè)計、LCD的驅(qū)動設(shè)計、MiniGUI的移植、實時數(shù)據(jù)顯示開發(fā)。最終的顯示界面如圖4所示。

圖4

實時數(shù)據(jù)顯示界面2

實驗結(jié)果本網(wǎng)絡(luò)集中控制器配以自行開發(fā)的監(jiān)控軟件和現(xiàn)場控制器,進行了網(wǎng)絡(luò)通信實驗和RS485通信實驗來測試系統(tǒng)的功能。網(wǎng)絡(luò)通信實驗是使網(wǎng)絡(luò)集中控制器和PC機都在同一局域網(wǎng)內(nèi),分別為其設(shè)置合法的IP地址后,將監(jiān)控軟件發(fā)送給網(wǎng)絡(luò)集中控制器的指令在secureCRT上打印出來。RS485通信實驗是將網(wǎng)絡(luò)集中控制器和現(xiàn)場控制器通過RS485網(wǎng)絡(luò)相連,將現(xiàn)場控制器收到指令后發(fā)送給網(wǎng)絡(luò)集中控制器的信息在secureCRT上打印出來。圖5和圖6為打印出來的測試結(jié)果。通過實驗證明,本控制器的軟硬件設(shè)計是合理的。

圖5

網(wǎng)絡(luò)通信實驗截圖

圖6

RS485通信實驗截圖3

結(jié)

語在此提出了基于ARM9處理器和Linux操作系統(tǒng)的中央空調(diào)網(wǎng)絡(luò)集中控制器設(shè)計方案。給出了控制器的硬件設(shè)計和控制器應(yīng)用程序開發(fā)和LCD開發(fā),系統(tǒng)硬件結(jié)構(gòu)的設(shè)計采用了模塊化設(shè)計方式,在硬件的選型和結(jié)構(gòu)設(shè)計的穩(wěn)定性、可靠性方面做了一定深入的研究。通過實驗證明,該控制器處理能力強,便于外擴存儲器,由于內(nèi)嵌了Linux操作系統(tǒng),使網(wǎng)絡(luò)功能強大?;贏RM7的中央空調(diào)網(wǎng)絡(luò)集中控制器能夠大大提高中央空調(diào)的使用效率,節(jié)約了能源,并且能夠顯著提高中央空調(diào)控制人員的工作效率。附錄資料:不需要的可以自行刪除ARM

經(jīng)典40問答第1問:Q:請問在初始化CPU堆棧的時候一開始在執(zhí)行movr0,LR這句指令時處理器是什么模式A:復位后的模式,即管理模式。第2問:

Q:請教:MOV中的8位圖立即數(shù),是怎么一回事0xF0000001是怎么來的

A:是循環(huán)右移,就是一個0—255之間的數(shù)左移或右移偶數(shù)位的來的,也就是這個數(shù)除以4一直除,直到在0-255的范圍內(nèi)它是整數(shù)就說明是可以的!

A:8位數(shù)(0-255)循環(huán)左移或循環(huán)右移偶數(shù)位得到的,F(xiàn)0000001既是0x1F循環(huán)右移4位,符合規(guī)范,所以是正確的。這樣做是因為指令長度的限制,不可能把32位立即數(shù)放在32位的指令中。移位偶數(shù)也是這個原因??梢钥匆豢碼rm體系結(jié)構(gòu)(ADS自帶的英文文檔)的相關(guān)部分。第3問:

Q:請教:《arm微控制器基礎(chǔ)與實戰(zhàn)》2.2.1節(jié)關(guān)于第2個操作數(shù)的描述中有這么一段:#inmed_8r常數(shù)表達式。該常數(shù)必須對應(yīng)8位位圖,即常熟是由一個8位的常數(shù)循環(huán)移位偶數(shù)位得到。

合法常量:0x3FC,0,0xF0000000,200,0xF0000001.

非法常量:0x1FE,511,0xFFFF,0x1010,0xF0000010.

常數(shù)表達式應(yīng)用舉例:

LDRR0,[R1],#-4;讀取R1地址上的存儲器單元內(nèi)容,且R1=R1-4

針對這一段,我的疑問:

1.即常數(shù)是由一個8位的常數(shù)循環(huán)移位偶數(shù)位得到,這句話如何理解

2.該常數(shù)必須對應(yīng)8位位圖,既然是8位位圖,那么取值為0-255,怎么0x3FC這種超出255的數(shù)是合法常量呢

3.所舉例子中,合法常量和非法常量是怎么區(qū)分的如0x3FC合法,而0x1FE卻非法0xF0000000,0xF0000001都合法,而0xF0000010又變成了非法

4.對于匯編語句LDRR0,[R1],#-4,是先將R1的值減4結(jié)果存入R1,然后讀取R1所指單元的值到R0,還是先讀取R1到R0,然后再將R1減4結(jié)果存入R1

A:提示,任何常數(shù)都可用底數(shù)*2的n次冪來表示。

1.arm結(jié)構(gòu)中,只有8bits用來表示底數(shù),因此底數(shù)必須是8位位圖。

2.8位位圖循環(huán)之后得到常數(shù),并非只能是8位。

3.0xF0000010底數(shù)是9位,不能表示。

4.LDRR0,[R1],#-4是后索引,即先讀,再減。

可以看一看arm體系結(jié)構(gòu)對相關(guān)尋址方式的說明。第4問:

Q:在程序移植的過程中,什么代碼段處于什么樣的模式,這可真是一個困擾人的大難題,有沒有一種標志或辦法能夠識別"代碼段處于什么樣的模式"

A:讀取CPSR,任何時候都是可以讀。第5問:

Q:為什么保護現(xiàn)場時,總是保護R0-R3,R12,為什么不保護R4-R11A:請看一看"arm-thumb過程調(diào)用標準"這個文檔。第6問:

Q:請問movR1,#0x00003DD0錯誤:

outoftherangeofoperation是怎么回事情我就是想IODIR=0x00003dd0,匯編就是

LDRR0,=IODIR

MOVR1,#0x00003dd0

STRR1,[R0]

編譯時候說是超出操作范圍

A:使用ldr,mov的操作數(shù)為8位位圖數(shù)。第7問:

Q:"在arm7TDMI(-S)處理器內(nèi)部有37個用戶可見的寄存器:"

問題:"用戶可見"應(yīng)該怎樣理解這37個寄存器是否是37個不同的物理寄存器,例如R8與R8_fiq應(yīng)該是兩個不同的物理寄存器吧

A:用戶可見是指用戶可以通過程序操作的。R8與R8_fiq是兩個不同的寄存器。第8問:

Q:USR模式,SVC模式,IRQ模式分別有哪些限制

A:對于外設(shè)操作限制與芯片設(shè)計有關(guān)。USR模式不能設(shè)置CPSR寄存器。用戶模式下無SPSR寄存器,代碼可以為arm,Thumb.第9問:

Q:請問"在初始化堆棧時就決定了工作模式"是什么意思如何決定工作模式的

A:設(shè)置CPSR寄存器。第10問:

Q:請問:arm匯編程序設(shè)計中所謂的"文字池"作何理解

A:可以理解為常量數(shù)組,文字池中保存的是常量,這些常量可以是正常的常量,也可以是地址。第11問:

Q:為什么在中斷向量表中不直接LDRPC,"異常地址".而是使用一個標號,然有再在后面使用DCD定義這個標號

A:因為LDR指令只能跳到當前PC4kB范圍內(nèi),而B指令能跳轉(zhuǎn)到32MB范圍,而現(xiàn)在這樣在LDRPC,"xxxx"這條指令不遠處用"xxxx"DCD定義一個字,而這個字里面存放最終異常服務(wù)程序的地址,這樣可以實現(xiàn)4GB全范圍跳轉(zhuǎn)。

Q:LDR不是可以全空間跳轉(zhuǎn)的嗎《arm微控制器基礎(chǔ)與實戰(zhàn)》程序清單5.3.

A:LDR偽指令通過設(shè)置指令緩沖池才能實現(xiàn)全范圍跳轉(zhuǎn),而LDR指令則只能實現(xiàn)4KB范圍跳轉(zhuǎn)。第12問:

Q:ARM7TDMI-S和arm7TDMI有何區(qū)別

A:ARM7TDMI-S是ARM7TDMI的可綜合(synthesizable)版本(軟核)。對應(yīng)用工程師來說,除非芯片生產(chǎn)廠商對ARM7TDMI-S進行了裁減,否則ARM7TDMI-S與ARM7TDMI沒有太大的區(qū)別,其編程模型與arm7TDMI一致。第13問:

Q:DCD偽指令的疑惑。

"StackUsrDCDUsrStackSpace+(USR_STACK_LEGTH-1)*4"

這句話是什么意思DCD后面的程序標號或數(shù)字表達式是何意

A:它的內(nèi)容是初始化遞減堆棧的最高地址,看《arm微控制器基礎(chǔ)與實戰(zhàn)》2.3.2節(jié)。

第2章編譯器與語言第14問:

Q:00254:UnimplementedRDImessage是什么錯誤提示我的設(shè)置連接都正常,是不是芯片燒了

A:是JTAG的問題??梢韵仁褂肐SP操作試試就知道了,如果能ISP,說明LPC2104沒有損壞,還能正常運行程序。第15問:

Q:請教:我在調(diào)試程序的時候在AXD中出現(xiàn)這樣的提示信息:

RDIWarning00159:couldnotopenspecifieddeviceport.

我是根據(jù)配套教程的步驟設(shè)置的。

A:請按照光盤\easyarm_drive\readme.txt安裝驅(qū)動程序。第16問:

Q:我用實驗程序運行經(jīng)常出現(xiàn)下列信息!程序不能下載到目標板。

Warnning!interruptvectorsdataisnotcorrect!

Programyoudownloadedcannotrunfreely!

A:1.仿真器配置一定要正確,即"EasyarmConfiguration"設(shè)置窗口中的"FLASH"項中選擇"EraseFlashwhenneed";

2.向量表累加和要為0;

3.可以先在RAM調(diào)試一個程序(運行),然后STOP,再使用File->LoadImage…加載要下載到FLASH的調(diào)試文件。第17問:

Q:在ADS中是否可以進行軟件調(diào)試基于UCOS-II的程序

A:ADS軟件調(diào)試只能調(diào)試arm的內(nèi)核,不能調(diào)試外設(shè)。但是取消PLL鎖定檢測后,可以調(diào)試任務(wù)切換,最終到空閑任務(wù)上。開始移植時軟件仿真是最好的工具。第18問:

Q:armulate軟件是干什么的2104不是用EasyJTAG.dll來仿真嗎

A:軟件仿真只能仿真arm核。第19問:

Q:有關(guān)LPC2106.INC的問題。我無法在project引用lpc2106.inc文件,只能引用lpc2106.h文件,這是什么原因且當我的主程序用匯編編寫時,不能引用lpc2106.h,用lpc2106.inc則無法加入project,請問匯編器應(yīng)如何設(shè)置

A:不用加2106.inc只要該文件在你的工程文件夾中,就可以直接在匯編程序的開始處加

"include2106.inc".

注意:該文件是匯編文件定義的頭文件,定義內(nèi)部寄存器。第20問:

Q:入口點是什么意思我在使用LPC2106上移植UCOS-II,每次MAKE時總是提示我Imagedoesnothaveanentrypoint,可是我是把光盤的vetctors.s復制過來的,而且仔細看了看,已經(jīng)聲明了ENTERY,這是怎么回事A:需要在ADS中設(shè)置入口。第21問:

Q:請教:如何定義不被初始化變量

A:讓編譯器不知道有這個內(nèi)存地址即可。

A:如用分散加載文件分配RAM故意預留一部分RAM不分配,用它來存您不需要初始化的東西?;蛘卟徽{(diào)用編譯器提供的啟動代碼,不過這樣可能編程會麻煩一些。第22問:

Q:我直接通過JTAG口下載EasyArm板帶的Ext1_test程序到arm中,出現(xiàn)中斷向量的告警:

interruptvectorisnotcorrectarmisnotrunningfreely.

果然復位后芯片不能運行。但是我用串口下載后芯片能正常工作,中斷也行的。

并且我用JTAG仿真的話,芯片能正常工作,中斷也行的,唯獨JTAG口下載不行。

不知道是什么原因

A:仿真器配置中要設(shè)置EraseFlashwhenneed.也可以這樣試試:

1.可以先打開一個工程在RAM中調(diào)試運行;

2.stop程序;

3.使用File->LoadImage…重新加載Ext1_test生成的*.axf文件。

Q:仿真器配置中我是設(shè)置了EraseFlashwhenneed,但照你說的話,那不是在RAM下調(diào)試嗎

在RAM下調(diào)試我是可以的,但是下載后出現(xiàn)interruptvectordataisnotcorrect.

我又看了幾篇文章,是不是跟中斷向量表的累加和不為零有關(guān)系啊

A:是的,是向量表的累加和不為零。

因為如果用ISP下載能運行,說明向量表的累加和已為零,而用JTAG下載不能運行的情況可能是沒有正常下載代碼。先在RAM中調(diào)試,目的是為了后面正確下載程序到FLASH.第23問:

Q:用Scatter怎樣將某個函數(shù)或文件定位在Flash的某個位置

第24問:

Q:我在仿真時遇到這樣的提示:

Error,Flashisprotectedbyuserconfigation!

怎么寫到flash里面呢

A:看配套《arm微控制器基礎(chǔ)與實戰(zhàn)》附錄一。第25問:

Q:我在移植實驗中想到了兩個問題,如下:

1.Debug和Release以及DebugRel有什么不同,為什么在作2104移植實驗時,要用Release

2.在Release中為什么要將RWBase設(shè)置為0x40000040我將其設(shè)置為0x40003000,

為什么不能工作

A:都只是一個問題,內(nèi)存空間的使用,因為跑OS要比較大的內(nèi)存空間,所以要騰出點地方。第26問:

Q:請問沒有MMU的arm芯片是否支持使用malloc()函數(shù)動態(tài)分配內(nèi)存

A:是否支持malloc()函數(shù)與芯片沒有多大關(guān)系,主要與編譯器有關(guān)。

Q:再問:如果沒有操作系統(tǒng)支持呢

A:也支持。第27問:

Q:在I2C實驗程序中,我想查看數(shù)據(jù)緩沖區(qū)DataBuf的值,怎么查看

A:watch窗口或鼠標停留在要查看的變量名上。

Q:我查詢的是寫入DataBuf緩沖區(qū)的值,鼠標在上面根本就不會出現(xiàn)他的值,即使在watch中加入,結(jié)果也是"namenotfound".

A:變量被優(yōu)化,調(diào)試時可以把該變量定義為全局變量查看。第28問:

Q:仿真軟件和2104開發(fā)板連接不上

DBEWarning00041:

!AnunspecifiedDebugToolboxcallfailed

電源和開發(fā)板都連好,錯誤和沒接開發(fā)板一樣,驅(qū)動也安裝了,安裝時按確定鍵時,軟件很長時間才有如上反應(yīng),請幫忙

A:1.并口是否正常

2.在其它操作系統(tǒng)(如98)下或其它臺式PC下試試。第29問:

Q:如何生成32位hex文件

我在ReleaseSetting->armfromELF->OutputFormat中設(shè)置為Intel32bitHEX,可是好像沒有生成hex文件

A:試試這種方法:

Target-->TargetSetting-->ostLink中選擇"armfromELF"加上你上面設(shè)的應(yīng)該不成問題。第30問:

Q:請問關(guān)于settings中r0baserwbase的意思

A:ro:readonly,rw:readandwrite.第31問:

Q:編譯成功后的信息第一行,code,R0data,RWdata,ZIdata,debug分別代表什么

A:R0只讀段,即程序代碼空間;

RW可讀/寫段,即數(shù)據(jù)變量空間;

ZI清零變量段,即需要清零初始化的數(shù)據(jù)變量空間。第32問:

Q:如何在ADS里面看任務(wù)執(zhí)行的一些情況比如堆棧。

A:多任務(wù)環(huán)境下的堆棧,內(nèi)存等信息需要調(diào)試軟件的支持才可以實現(xiàn)。

ucos下有一個統(tǒng)計功能的模塊可以間接實現(xiàn)部分功能。第33問:

Q:請問向flash燒數(shù)據(jù)時出現(xiàn):exceedsflashlimitation請予賜教!

A:要寫入的flash地址超過了范圍。如果不是代碼太大的問題,可以檢查scf文件是否正確。第34問:

Q:在LPC2214之類的芯片中如何實現(xiàn)數(shù)組的絕對地址定位,比如51的_at_的用法。

A:*((char*)0x40000300)類似訪問

Q:謝謝,但這樣做就無須定義數(shù)組變量,訪問也不便,還有高招嗎

A:可以使用分散加載。第35問:

Q:請問ADS編譯錯誤"L6221E:ExecutionregionER_ROoverlayswithExecutionregion

ER_ZI"該如何解決

A:請用我們網(wǎng)站上的工程模板試一試,最大的可能是因為你的RELEASE或者DEBUG選項里面沒有正確設(shè)置,按照參考《arm微控制器基礎(chǔ)與實戰(zhàn)》上面的設(shè)置,是不會有這個問題的。第36問:

Q:請教一下:將程序?qū)懭雈lash,再用從JTAG方式調(diào)試寫入之后再復位程序沒什么反映??戳撕芏嘁郧暗奶?,說memmap寄存器要為1,我用的是一個很簡單的控制led的例子,改動了參數(shù)之后寫入flash的。在這個程序的vectors中找不到關(guān)于memmap寄存器操作的部分啊,這是怎么回事,該怎么辦呢

A:《arm微控制器基礎(chǔ)與實戰(zhàn)》上附錄有"常見問題",列舉了幾點程序?qū)懙紽LASH不能運行的原因。memmap操作可以在target.c中的TargetResetInit()函數(shù)內(nèi)添加。第37問:

Q:HEX文件。EASY2100配套《arm微控制器基礎(chǔ)與實戰(zhàn)》上講

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論