AT89S52到ARM的移植畢業(yè)論文_第1頁
AT89S52到ARM的移植畢業(yè)論文_第2頁
AT89S52到ARM的移植畢業(yè)論文_第3頁
AT89S52到ARM的移植畢業(yè)論文_第4頁
AT89S52到ARM的移植畢業(yè)論文_第5頁
已閱讀5頁,還剩66頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

AT89S52 到 ARM 的移植 報告項目名稱: 音樂流水燈 院 校: 漳州職業(yè)技術(shù)學(xué)院 系 別: 計算機工程系 班 級: 10 嵌入式 2 班 小組成員: 吳為超、林情、薛萌 日 期: 2012 年 12 月 1目錄第一章 緒論 .2第二章 ARM 和單片機的區(qū)別 .22.1、軟件方面 .22.2、硬件方面 .2第三章 8 位 MCU 如何升級至 32 位 MCU .5第四章 基本數(shù)據(jù)類型有關(guān)問題及回答 .84.1 數(shù)據(jù)類型的定義 .84.2 留心 double 和 long.8第五章 單片機與 ARM 的移植 .9第六章 總結(jié) .102第一章 緒論本論文是探究從單片機到 ARM 移植中會發(fā)生的問題,也就是 8 位機到 32 位機的移植中,會出現(xiàn)的問題,其中包括字節(jié)的變換,數(shù)據(jù)類型的不同,需要考慮的問題分析等等。第二章 ARM 和單片機的區(qū)別目前大量的中、低端嵌入式應(yīng)用,主要使用 8/16 位單片機。在國內(nèi),由于歷史的原因,主要是以 MCS51 核為主的許多不同型號單片機,主要廠商有Atmel、Philips、Winbond、宏晶等。還有一些近幾年發(fā)展較快的新型單片機,如 PIC、AVR、MSP430 系列等。這些單片機各有特點,但從目前的發(fā)展角度來看,單片機針對特定應(yīng)用領(lǐng)域的個性化發(fā)展愈發(fā)明顯。 2.1、軟件方面 這應(yīng)該是最大的區(qū)別了。引入了操作系統(tǒng)。為什么引入操作系統(tǒng)?有什么好處? 1)方便。主要體現(xiàn)在后期的開發(fā),即在操作系統(tǒng)上直接開發(fā)應(yīng)用程序。不像單片機一樣一切都要重新寫。前期的操作系統(tǒng)移植工作,還是要專業(yè)人士來做。 2)安全。這是 LINUX 的一個特點。LINUX 的內(nèi)核與用戶空間的內(nèi)存管理分開,不會因為用戶的單個程序錯誤而引起系統(tǒng)死掉。這在單片機的軟件開發(fā)中沒見到過。 3)高效。引入進(jìn)程的管理調(diào)度系統(tǒng),使系統(tǒng)運行更加高效。在傳統(tǒng)的單片機開發(fā)中大多是基于中斷的前后臺技術(shù),對多任務(wù)的管理有局限性。 2.2、硬件方面 現(xiàn)在的 8 位單片機技術(shù)硬件發(fā)展的也非常得快,也出現(xiàn)了許多功能非常強3大的單片機。但是與 32ARM 相比還是有些差距吧。 ARM 芯片大多把 SDRAM,LCD 等控制器集成到片子當(dāng)中。在 8 位機,大多要進(jìn)行外擴。 總的來說,單片機是個微控制器,ARM 顯然已經(jīng)是個微處理器了。 引入嵌入式操作系統(tǒng)之后,可以實現(xiàn)許多單片機系統(tǒng)不能完成的功能。比如:嵌入式 web 服務(wù)器,java 虛擬機等。也就是說,有很多免費的資源可以利用,上述兩種服務(wù)就是例子。如果在單片機上開發(fā)這些功能可以想象其中的難度。 ARM 處理器的優(yōu)勢詳解 對于如今大量出現(xiàn)的 32 位嵌入式應(yīng)用,以筆者之見,ARM 處理器的優(yōu)勢主要有以下幾個方面:高性能、低功耗、低價格。把 ARM 處理器的性能拿來和一些著名的通用處理器(如 Pentium)相比是不合適的,因為他們各自針對的應(yīng)用需求是不同的。Pentium 處理器采用多條指令流水線的超標(biāo)量結(jié)構(gòu),追求通用應(yīng)用目標(biāo)下的超強性能,功耗大,可以用散熱器加風(fēng)扇散熱。ARM 針對嵌入式應(yīng)用,在滿足性能要求的前提下,力求最低的功率消耗。ARM 結(jié)構(gòu)的優(yōu)點是能兼顧到性能、功耗、代碼密度、價格等幾個方面,而且做得比較均衡。在性能/功耗比(MIPS/W)方面,ARM 處理器具有業(yè)界領(lǐng)先的性能。基于 ARM 核的芯片價格也很低,目前 ARM CortexM 的芯片價格可低至 10 元人民幣左右。 豐富的可選擇芯片 ARM 只是一個核,ARM 公司自己不生產(chǎn)芯片,采用授權(quán)方式給半導(dǎo)體生產(chǎn)商。目前,全球幾乎所有的半導(dǎo)體廠家都向 ARM 公司購買了各種 ARM 核,配上多種不同的控制器(如 LCD 控制器、SDRAM 控制器、DMA 控制器等)和外設(shè)、接口,生產(chǎn)各種基于 ARM 核的芯片。目前,基于 ARM 核的各種處理器型號有好幾百種,在國內(nèi)市場上,常見的有ST、TI、NXP、Atmel、Samsung、OKI、Sharp、Hynix、Crystal 等廠家的芯片。用戶可以根據(jù)各自的應(yīng)用需求,從性能、功能等方面考察,在許多具體型號中選擇最合適的芯片來設(shè)計自己的應(yīng)用系統(tǒng)。由于 ARM 核采用向上兼容的指令系統(tǒng),用戶開發(fā)的軟件可以非常方便地移植到更高的 ARM 平臺。 4廣泛的第三方支持 以如今的技術(shù),設(shè)計一個處理器并非難事,但要使這個處理器得到大家認(rèn)可,并取得市場成功卻是非常困難的,其中涉及許多技術(shù)與非技術(shù)的因素和環(huán)節(jié),還包括時機、運氣。因為現(xiàn)在許多產(chǎn)品的開發(fā),不是一個簡單的處理器加幾百條指令、語句就可以解決的。要用到 32 位處理器,一般都要有編譯器、高效的開發(fā)工具(仿真器及調(diào)試環(huán)境) 、操作系統(tǒng)、協(xié)議棧等,這些東西都不是一個芯片生產(chǎn)商可以解決的,而需要許多第三方的支持。這就像一粒種子,需要土壤、空氣、水等環(huán)境才能發(fā)芽、成長。這也是我們的一些“中國芯”該反思之處。 ARM 通過近 20 年的培育、發(fā)展,得到了廣泛的第三方合作伙伴支持。目前,除通用編譯器 GCC,ARM 有自己的高效編譯、調(diào)試環(huán)境(MDK、Keil),全球約有50 家以上的實時操作系統(tǒng)(RTOS)軟件廠商和 30 家以上的 EDA 工具制造商,還有很多高效率的實時跟蹤調(diào)試工具的廠商,對 ARM 提供了很好的支持。用戶采用 ARM 處理器開發(fā)產(chǎn)品,既可以獲得廣泛的支持,也便于和同行交流,加快開發(fā)進(jìn)度,縮短產(chǎn)品的上市時間。 完整的產(chǎn)品線和發(fā)展規(guī)劃 ARM 核根據(jù)不同應(yīng)用需求對處理器的性能要求,有一個從 ARM7、ARM9 到ARM10、ARM11,以及新定義的 CortexM/R/A 系列完整的產(chǎn)品線。前幾年應(yīng)用較多的主要是基于 V4 架構(gòu)的 ARM7TDMI、ARM720T、ARM920T 核的一些處理器芯片,如 NXP 的 LPC2000 系列、ST 的 STR7/9 系列、Atmel 的 AT91 系列和 Samsung 的S3C 系列。近兩年,ARM Cortex 系列以更好的性能、更低的價格得到快速推廣,典型的就是基于 CortexM3 的 STM32 系列。 ARM CortexM/R/A 系列分別針對不同的應(yīng)用領(lǐng)域。M 系列主要面向傳統(tǒng)微控制器(MCU/單片機)應(yīng)用,這類應(yīng)用面很廣,要求處理器有豐富的外設(shè),并且各方面比較均衡;R 系列強調(diào)實時性,主要用于實時控制,如汽車引擎;A 系列面向高性能、低功耗應(yīng)用系統(tǒng),如智能手機。選用 ARM 處理器進(jìn)行開發(fā),技術(shù)積累性較強,生命周期長,設(shè)計重用度高,不易被淘汰。用戶在選擇 ARM 處理器時,可以針對應(yīng)用需求,從大量的 ARM 芯片中選用滿足性能、功能要求的產(chǎn)品,以獲得較好的性價比。 5ARM 處理器在便攜、手持式設(shè)備以及工業(yè)控制等應(yīng)用領(lǐng)域,在今后相當(dāng)長的時間內(nèi)是一個很好的選擇。當(dāng)然,沒有一種型號的處理器是可以覆蓋所有應(yīng)用的,也不是搬上一個嵌入式 OS,就可以很好地解決軟件問題的。 第三章 8 位 MCU 如何升級至 32 位 MCU首先,我們從 MCU 之間的轉(zhuǎn)變開始,循序漸進(jìn)。目前的 MCU 市場分為三個部分, 8 位、 16 位和 32 位內(nèi)核(4 位內(nèi)核 MCU 現(xiàn)在已相當(dāng)少用,故在本次比較中將其忽略) 。對于這三個部分中的每一個,其規(guī)模大體相同。傳統(tǒng)上 8 位內(nèi)核占最大的市場份額。根據(jù)一些分析人士報告,可能 32 位內(nèi)核市場占有率已經(jīng)超過了 8 位內(nèi)核。即使目前尚未超過,時間也不會太長。32 位內(nèi)核市場份額是迄今為止增長最快的。8 位內(nèi)核和 16 位內(nèi)核仍在增長,但在速度方面遠(yuǎn)不如 32位內(nèi)核(8 位內(nèi)核的增長速度仍快于 16 位內(nèi)核) 在很長的一段時間內(nèi), 很多人相信 16 位 MCU 可能會被 8 位 MCU 和 32 位MCU 取代。目前的 32 位 MCU 器件采用最新技術(shù)制造(與 8 位內(nèi)核和 16 為內(nèi)核相比) 。MCU 制造商能夠使用這些最新的技術(shù),使得 32 位 MCU 體積變得越來越小,因而變得越來越廉價。由于 32 位 MCU 所具有的價格和性能,很多分析人士相信,設(shè)計工程師將跳出 16 位領(lǐng)域, 直接轉(zhuǎn)向具有高性能的產(chǎn)品,保證其設(shè)計的未來。8 位 MCU 無論是在性能還是存儲處理能力方面均達(dá)到了其極限。這也是目前存在 16 位和 32 位 MCU 的原因之所在。隨著行業(yè)按照摩爾法則的軌跡發(fā)展, 32 位 MCU 變得越來越小和越來越廉價,以至于在傳統(tǒng)的 8 位和 16 位領(lǐng)域方面也具有了競爭力。與 8 位和 16 位 MCU 相比,這些新的 32 位 MCU 具有更高的處理能力。典型的 8 位 MCU 的速度在 1030MIPS 之間。16 位 MCU 介于 20 和 40 MIPS 之間。而新的 32 位 MCU 通常具有 80 100 MIPS 的處理能力!這是處理能力和速度方面的重大改進(jìn)。與 8 位和 16 位 MCU 相比,很多 32 位 MCU 具有更小的體積,通常具有更低6的 功耗。較小的體積通常意味著更好的功耗、更低的電流消耗和更低的有效輸入電壓。一些新產(chǎn)品的休眠電流幾乎無法測量,提供的輸入電壓低至 0.5V。這就為 32 位 MCU 提供了巨大優(yōu)勢。在當(dāng)今市場上,功率為王。即使某一應(yīng)用不是以電池為供電, 目前的設(shè)計人仍不得不考慮功耗。對于插入柵板的應(yīng)用,出于多種原因,仍必須是“綠色”的。某些頂級產(chǎn)品必須針對市場目的,或是因為政府命令和標(biāo)準(zhǔn)。例如,最新的消費電子器件目前均是兼容能源之星(Energy Star)的。如果你目前正在使用 8 位 MCU,你可能會在下一設(shè)計中考慮 32 位 MCU。即使下一代設(shè)計仍繼續(xù)使用 8 位 MCU,目前也有很多步驟方法可幫助你做好最終的移植備。今天做一些研究,并進(jìn)行正確決策,就能為明天的設(shè)計提供保證。當(dāng)你開始考慮轉(zhuǎn)移至 32 位 MCU 時,或許會認(rèn)為將遇到一些問題。例如,你認(rèn)為自己需要學(xué)習(xí)新的架構(gòu);你可能需要重寫自己的所有代碼,以便與新的內(nèi)核協(xié)調(diào)工作;或許你感覺 32 位 MCU 過于艱難和復(fù)雜,它們不是為了便于使用而設(shè)計的,而是為了性能設(shè)計的,這意味著,你將不得不考慮它們所擁有的數(shù)以千計的寄存器;或許你關(guān)心可能將不得不學(xué)習(xí)一整套新的軟件工具,你將需要熟悉全新的硬件工具;或許你還認(rèn)為,32 位 MCU 并不針對你的應(yīng)用,你無法為自己的設(shè)計找出正確的成套外圍器件。你可能會關(guān)心上述一種或多種問題, 但它們?nèi)际潜匾目紤]事項嗎?讓我們分別分析它們.大多數(shù)設(shè)計者認(rèn)為,當(dāng)他們從 8 位 MCU 轉(zhuǎn)移到 32 位 MCU 時,將不得不學(xué)習(xí)新的體系架構(gòu)。問題是大多數(shù)公司有自己的老式 8 位 MCU 產(chǎn)品系列和新的 32位 MCU 產(chǎn)品系列。 每年,他們可能仍會為 8 位產(chǎn)品系列推出少量新的產(chǎn)品,他們希望把握機會,從失誤中學(xué)習(xí),并在 32 位系列中更正錯誤。你或許無法在器件上發(fā)現(xiàn)相同的外圍部件。不同系列的代碼不兼容,或不具有管腳兼容性,因而你將不得不重新完成整個電路板。盡管真實的情形是這樣的,你無法在不改變設(shè)計核心的情況下實現(xiàn)移植,但你也希望無需再次學(xué)習(xí)所有的內(nèi)容。一些公司開始發(fā)布新的產(chǎn)品,在 8 位版本和 32 位版本之間具有完全相同的成套外圍組件。組件中唯一改變的是其內(nèi)核。其他部分,包括管腳布局位置,均保持不變。如果你目前使用的是 8 位 MCU,明天就能移植到該公司的 32 位 MCU 上,同時仍能使用相同的印刷電路板。這方7面的一個例子是 Cypress 半導(dǎo)體公司最近發(fā)布的 PSoC? 3 和 PSoC 5 架構(gòu)。這兩種架構(gòu)具有相同的外圍組件、封裝和管腳。PSoC 3 架構(gòu),采用了新的單周期/指令 8051,運行頻率高達(dá) 67 MHz,能夠方便地與 PSoC 5 版本兼容。PSoC 5 版本采用了 ARM Cortex-M0 處理器,運行頻率高達(dá) 80 MHz。這類產(chǎn)品使得從一種架構(gòu)到另一架構(gòu)的移植變得簡單易行。使用這些新工具,能夠按照你所希望的方式進(jìn)行設(shè)計。人們還認(rèn)為,你將不得不為新的 32 位產(chǎn)品重寫所有的代碼。情形并非總是如此。對于在 8 位和 32 位內(nèi)核之間具有匹配外圍組件的很多這類新產(chǎn)品,它們的固件也是兼容的。這些芯片采用高級語言(如 C 語言) ,能夠編寫一套代碼,可以選擇針對 8 位產(chǎn)品進(jìn)行編譯,或選擇 32 位產(chǎn)品并重新編譯。你可以采取略微復(fù)雜的方法,使用高級語言編寫代碼,仍調(diào)用針對特定內(nèi)核的寄存器如果你遵守高級編程的精神,移植仍相當(dāng)容易。你可能考慮工具會怎樣呢?與你正在使用的特定內(nèi)核相比,你可能更關(guān)注集成開發(fā)環(huán)境(IDE) 。一旦你掌握了它,你不會愿意學(xué)習(xí)新的。但是,如果你擁有一種可在兩種架構(gòu)上工作的 IDE,情況會怎樣呢?Cypress 公司新的 PSoC Creator?軟件就是這方面的一個例子。它是一種能與 8 位器件和 32 位器件一起工作的集成開發(fā)環(huán)境(IDE) 。保證設(shè)計未來前景的一種良好方式是,在今天就選擇相應(yīng)的產(chǎn)品(即使你仍與 8 位內(nèi)核打交道) ,通過該產(chǎn)品,能夠為 8 位設(shè)計和 32 位設(shè)計使用相同的工具。與軟件工具類似,硬件工具也出現(xiàn)在跨平臺應(yīng)用方面。一些公司已開發(fā)出了帶有硬件開發(fā)工具箱的模塊系統(tǒng)。這樣,你就能夠拔出 8 位模塊,并用 32 位模塊取而代之。板上的所有其他部分保持不變。它們通常采用相同的編程和調(diào)試工具。你真正能夠做到,學(xué)習(xí)一次,普遍適用。真正應(yīng)考慮的是,很多公司為銷售 8 位產(chǎn)品的不同市場開發(fā)了 32 位產(chǎn)品。這意味著你無法找到支持設(shè)計的正確的 32 位產(chǎn)品。因而,你不僅要為 32 位產(chǎn)品支付更多的成本,還需花費更多的成本購買外部分離器件。但是,如果你能設(shè)計自己的芯片會怎樣呢?類似于 FPGA 或 CPLD,但以更簡單的方式使用圖形環(huán)境會怎樣呢?如果你能在工具中實現(xiàn)自己的設(shè)計方案,創(chuàng)建它并將程序納入器件中,是否會很好呢?太好以至于似乎不真實,是嗎?當(dāng)然不。使用 PSoC 38和 PSoC 5,這是可能的。你現(xiàn)在可以圍繞 32 為內(nèi)核設(shè)計外圍器件,確保它們是適合于設(shè)計的正確器件。與以往相比,對于設(shè)計人員來說目前更重要的是靈活性。市場比以前變化得更快,競爭每天都在加劇,每個人都致力于更低的成本。今天選擇正確的 8位器件系列能夠保障你的明天。使用這些新的工具,能夠?qū)?8 位 MCU 進(jìn)行設(shè)計,或許它是貴公司產(chǎn)品組合的基本版本,隨后,你可以承擔(dān)你的任務(wù),使用相同的項目文件,并將其移植到 32 位內(nèi)核上?,F(xiàn)在你能夠增加更多性能。很快,它將成為貴公司的高端特色產(chǎn)品,從而獲得更高的利潤。 32 位 MCU 是嵌入式設(shè)計的下一代方向。何時采取行動取決于你?;蛟S是現(xiàn)在,或許是數(shù)年內(nèi),但在某一點上,你的 8 位 MCU 將耗盡其能力,無法滿足當(dāng)前市場始終變化的需求。大多數(shù)設(shè)計人員對該步驟感到恐懼。但它并不一定是痛苦的。我們考察了一些目前可以采取、使該轉(zhuǎn)變盡可能平穩(wěn)的行動。如果你目前仍在進(jìn)行 8 位內(nèi)核設(shè)計,請確保你所使用的產(chǎn)品系列具有 32 位的對應(yīng)產(chǎn)品。對于工具來說情況同樣。目前很多公司均提供能在不同架構(gòu)上使用的相同軟件和硬件工具。今天選擇正確的器件(8 位或 32 位)將能夠幫助你以及你的設(shè)計在明天獲得更大的成功。第四章 基本數(shù)據(jù)類型有關(guān)問題及回答4.1 數(shù)據(jù)類型的定義uint8_t, uint16_t, 和 uint32_t 不一定是 8 位,16 位和 32 位的,這些都是通過 typedef 定義的,在不同的位機上面是不一樣的,例如:typedef uint8_t unsigned char; typedef uint16_6 unsigned short int;typefef uint32_t unsigned int; 而在這個定義之下,及時換了平臺,也能保證位機,只需要修改 typedef 或 #define,如果跨平臺 onfig 的話,系統(tǒng)會根據(jù)你選的 BSP 編譯,你可以自己編寫一個 c 程序,用 sizeof 函數(shù)取得你想知道

溫馨提示

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

評論

0/150

提交評論