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

正文內(nèi)容

從51到arm的華麗轉(zhuǎn)身-展示頁

2025-06-05 23:39本頁面
  

【正文】 der燒寫內(nèi)核燒寫根文件系統(tǒng)燒寫應(yīng)用程序。debuggeramp。linkeramp。pileramp。硬件從最小系統(tǒng)開始軟件從bootloader開始開發(fā)軟件:即集成開發(fā)環(huán)境:asemmbleramp。軟件特點:采用交叉開發(fā)方式,系統(tǒng)軟件層次分明,操作系統(tǒng)為用戶程序提供標準API,提供圖形接口和文件系統(tǒng)。)硬件特點:通常由嵌入式處理器和嵌入式外圍設(shè)備組成,高度集成,常采用SOC設(shè)計方法,對功耗、體積等有嚴格要求,定制性決定了它的可裁剪性,沒有像計算機領(lǐng)域的壟斷,解決方案不唯一。外圍板一般是引腳的集合、電平轉(zhuǎn)換。學習它的API,學習它的運行原理、學習它的使用方法。手敲大批的代碼變得不可能也不必要,借鑒并修改程序是一種很重要的能力。任務(wù)式的驅(qū)動封裝,使得驅(qū)動的移植性增強,任務(wù)調(diào)度程序的作用減小了MCU中驅(qū)動和應(yīng)用程序代碼之間的復(fù)雜調(diào)用邏輯帶來的工作量,并將硬件的復(fù)雜驅(qū)動編程獨立出來。下面是設(shè)備驅(qū)動老師的一段話:操作系統(tǒng)引入之前,順序執(zhí)行的程式?jīng)Q定了驅(qū)動編程和應(yīng)用程序同等地位的表現(xiàn),兩者混合在一起,驅(qū)動編程占了總代碼量的二分之一甚至更多。操作系統(tǒng)向上提供更強大的開發(fā)平臺、更便捷和更美觀的人機交互界面、方式;向下制定更合理的硬件管理辦法、機制,讓硬件更高效地被使用。軟2:資源的爆棚和應(yīng)用的復(fù)雜性也導(dǎo)致了前后臺系統(tǒng)的崩潰,因為它牽一發(fā)而動全身,功能一多,把所有的任務(wù)都放進一個while(1)里,我是不放心,對程序的修改、維護什么的都是很大的問題。硬:因為管腳的爆棚,最小系統(tǒng)基本上不能自己焊了。畢竟ARM處理器提供的功能肯定是為了解決工控領(lǐng)域出現(xiàn)的問題,面向整個工控領(lǐng)域,初出茅廬的我們不可能完全搞明白,有時候也不必完全搞明白再動手,等你的項目經(jīng)驗多了,遇到的情況多了,許多難解的結(jié)自己也就化開了,就像STM32的定時器系統(tǒng),我相信沒幾個人能真正搞明白,但是你如果只用定時、計數(shù)功能的話,還是相當簡單的??傊Y(jié)構(gòu)相當復(fù)雜,你原先懂,現(xiàn)在未必懂,原先認為理所當然的,就坐等被狂虐吧。 結(jié)構(gòu)復(fù)雜度爆棚了:原來的電源系統(tǒng)、時鐘系統(tǒng)、中斷控制、定時器等等結(jié)構(gòu)優(yōu)化且復(fù)雜面向更寬廣的應(yīng)用。這樣程序猿對外設(shè)的編程操作,就變成了對片內(nèi)外設(shè)控制器的寄存器編程。IO/AD/UART/PWM/定時器等通用標準外設(shè)之外增加了IIC/IIS/SPI/USB/CAN/LCD/觸摸屏/以太網(wǎng)等專用外設(shè)控制器,專為嵌入式系統(tǒng)設(shè)計。裸機編程的風貌也已經(jīng)大大改變,更多的時候是利用層層封裝好的規(guī)范的驅(qū)動函數(shù)庫編程,屏蔽了底層的細節(jié)。傳統(tǒng)的寄存器編程已經(jīng)不再適用,就算是裸機開發(fā)也沒辦法把它當做單片機使用。 翻天覆地大事變 寄存器翻天了,32位。其實做這些東西,收獲最大的不是學到了多少技術(shù),而是對心態(tài)的歷練,還有在設(shè)計的過程中得到的感悟。基本模塊:紅外模塊(避障、循跡、光電管)、超聲波模塊、L298N電機驅(qū)動、DS1301602LCD、舵機、編碼器(碼盤)、熱電阻、水位計、GSM、紅外遙控、繼電器(固態(tài))、測速電機。在開始學習之前我整理了一下自己關(guān)于51都會些什么,以清清爽爽的姿態(tài)跨入ARM的大門。為了討論與51對比以及ARM處理器的開發(fā),不便屏蔽硬件的細節(jié),所以僅限于裸機開發(fā),涉及操作系統(tǒng)的地方,可忽略。但仔細研究的話,發(fā)現(xiàn)二者有那么多相似之處。其實想想真是,只顧用C語言寫程序,那區(qū)區(qū)的256字節(jié)的RAM不夠用了怎么辦?如何優(yōu)化程序?你真的懂整個開發(fā)、運行的流程嗎?從上電開始,內(nèi)部發(fā)生了些什么事情?你的程序是怎么被執(zhí)行到的?于是我吸取了教訓,端正了自己的學習的態(tài)度,進了實驗室之后,努力做項目,努力學習ARM,當然,也努力讓自己學會在壓力和指揮下伴著罵聲學習。但是一開口我就傻眼了,他問:8051的尋址空間?Idata、xdata、sdata?...好囧的。做51開發(fā)的時候,雖然對CPU于接口的互動、對寄存器編程等等都有比較深刻的認識,但也忽略了很多重要的知識,的底層匯編,頂多算是會用,不能算是懂,或者精。他講課就是“授道”、完全樸素的唯物主義,大白話、聲情并茂。而且整個嵌入式系統(tǒng),包括CPU在內(nèi)的芯片設(shè)計相當成熟了,重點在于模電接口設(shè)計。嵌入式系統(tǒng)設(shè)計的核心是軟件設(shè)計(占70%左右的工作量),單片機系統(tǒng)軟硬件設(shè)計所占比例基本相同。(字長即一次可處理的位數(shù),跟地址長度、尋址空間的概念無關(guān),這個一定要明確)。51與ARM之間不光是主頻、內(nèi)存等的不同,而是架構(gòu)就不一樣,8位的51和32位的ARM比起來,就像一個亞洲人、一個是歐洲人,一個是小瘦子,一個是大力士。STM32就是完整的,但依然被人稱為微處理器。那ARM就為難了,我們一般稱2410這樣的芯片叫做嵌入式微處理器,甚至明目張膽的叫做CPU,這讓ARM內(nèi)核情何以堪?再說了它明明是拿了ARM公司的CPU加上自己的外設(shè)控制器構(gòu)成的。這也是計算機的基本結(jié)構(gòu)。就是CPU、微處理器、計算機、單片機、微機系統(tǒng)。韓國三星涉獵的最為廣泛,而且市場覆蓋面很大,ARM7有S3C44B0、ARM9有S3C24242412450等,ARM11有S3C6410這一款,contexA8有S5PV210(這款內(nèi)核也是iphone的處理器)ST專注于做contexM3內(nèi)核的處理器,也就是STM32系列的,相當火的一款A(yù)RM處理器,ST為了推廣它,真實煞費苦心,提供了覆蓋所有功能的驅(qū)動函數(shù)庫,使開發(fā)變得相當簡單。ARM從底層搭起,做出一個通用CPU架構(gòu),工程的復(fù)雜度簡直無法想象。大家都知道ARM公司不做硬件,它們賣的是IP核,賣的是設(shè)計,靠產(chǎn)權(quán)賺錢。大陸最火的一家51單片機廠家莫過于STC了,它是深圳的一家設(shè)計公司,感興趣的去他的主頁上看看,或者打開它做的DATASheet,簡直是太坑爹了,山寨中的極品。我們平時說的51單片機泛指的是以英特爾8031為內(nèi)核的微處理器。個人認為在單片機爐火純青的情況下,對嵌入式開發(fā)有了比較深入的理解,再去學習ARM才事半功倍。從51到ARM的華麗轉(zhuǎn)身在開始構(gòu)思這篇文章的時候,我在考慮,是華麗的轉(zhuǎn)身還是艱難的轉(zhuǎn)身更合適一些,我覺得內(nèi)涵是一樣的,每次的華麗麗都伴隨著一段苦逼的艱難歲月,為了慶祝三觀的重新歸位,還是用“華麗”這個詞更喜慶一點。一、閑言ARM與51 1二、 翻天覆地大事變 5三、 真理只有一個,沒有本質(zhì)的區(qū)別 8四、 做一個合格的嵌入式工程師 15五、 最重要的小事 17六、 開發(fā)前的東風 27七、 從0到運行 30八、 ARM的心聲寄存器、工作模式、異常處理、匯編 31九、 責任細分:ARM?2410?編譯器?我? 41十、 一些知識點 44一、閑言ARM與51之前已經(jīng)學過,ARM7內(nèi)核的S3C44B0X,但由于那時51單片機都沒玩熟練,參照物不明顯,所以即使是成績很好,但卻不得其要領(lǐng)。在期盼了好久之后,由于項目需要和課程需要的雙重契機下,終于與ARM有了親密的接觸?,F(xiàn)在intel、ATMEL等廠家都在生產(chǎn),就像三星、ST都能拿ARM的內(nèi)核做微處理器道理一樣,授權(quán)生產(chǎn)。ARM其實有很多種含義,可以看做是英國ARM公司的名稱,也可以是他們公司設(shè)計的CPU的名稱,也可以是以這種CPU為內(nèi)核做出來的處理器的統(tǒng)稱。所謂的賣設(shè)計,差不多類似于咱們做課程設(shè)計時用VHDL寫了一個電子鐘,然后被人買去做成了實物。做ARM處理器做的比較好的公司有三星、ATMEL、ST(意法半導(dǎo)體)、TI等等,他們用ARM核加上自己設(shè)計的外設(shè)控制器,生產(chǎn)出一款嵌入式處理器。之前我糾結(jié)過一些概念問題,很多人可能沒有仔細思考過。你如果去查的話,概念是明確的:CPU是由ALU、譯碼邏輯、控制邏輯組成的中央處理單元,微機系統(tǒng)就是由CPU、存儲器、輸入輸出接口組成的。單片機也屬于這個范疇。那管它叫單片機?也不完全合適,因為像2410這樣的處理器,是沒有存儲器的,F(xiàn)LASH和SRAM都要在外邊接,它不是一個完整的計算機系統(tǒng)。其實也沒必要糾結(jié)于這個問題,你把它看成一個大單片機、小PC來學習,至于叫什么,心中有數(shù)就行了。但畢竟都是人,沒有本質(zhì)的區(qū)別。目前嵌入式系統(tǒng)的主流是以32位嵌入式微處理器為核心的硬件設(shè)計和基于實時操作系統(tǒng)(RTOS)的軟件設(shè)計,ARM已經(jīng)成為中國嵌入式設(shè)計應(yīng)用的首選。隨著配置的提高,嵌入式系統(tǒng)越來越PC化、軟件化。在學習ARM的時候幸得好導(dǎo)師一枚,無論是從課上還是項目上都給了我很大的影響,我非常能理解他的思想,講課的思路,他做學問的態(tài)度。雖然在面試的時候被他羞辱,在實驗室沒少被他罵,但是我還是相當敬佩他,也能跟他談到一塊去,良師益友,總之遇見他我很幸運,當然,能得到我這樣評價的老師,就他一個。導(dǎo)師面試的時候說看我做了很多單片機的項目,要問幾個問題,我心里很得意,隨你怎么問。做了幾年的單片機開發(fā),真的沒關(guān)注過這些,真的不能算是懂51,頂多算是知道開發(fā)流程、多了點項目經(jīng)驗,會用C語言寫寫程序而已,甚至指針、鏈表什么的還稀里糊涂的。從51到ARM很多地方難以接受,系統(tǒng)復(fù)雜度提高了很多倍,電源、時鐘、定時器、中斷等結(jié)構(gòu)都變得很復(fù)雜,而且還多了很多控制器,學習起來難度也比較大。殊途同歸的道理,畢竟不跑操作系統(tǒng)的話,二者沒有本質(zhì)的區(qū)別。關(guān)于嵌入式操作系統(tǒng),后續(xù)會有討論。編程環(huán)境KEIL、下載工具ISP、常用的工具如串口助手、單片機精靈最小系統(tǒng)及常用外圍接口(數(shù)碼管等)的焊制熟練使用IO口、中斷、定時、PWM、AD、串口。項目:freescale智能車、生產(chǎn)實習遙控車、畢設(shè)淋浴器、定時器等其他技術(shù):上位機控制、雙機通信等。技術(shù)都是先知道和后知道的區(qū)別,但是經(jīng)驗的積累才最重要。DATAsheet閱讀的難度很大。開發(fā)重點由寄存器編程到外設(shè)功能理解、外設(shè)寄存器了解。 外設(shè)爆棚了。外設(shè)的接口一般只需要集成和改變一下形態(tài),有時需要接上物理層電平轉(zhuǎn)換芯片(串口、CAN)。再也沒有了要用單片機模擬時序的尷尬。51單片機的最小系統(tǒng)中,直接用個5V的穩(wěn)壓芯片接上就行了,、各個部分需要的電壓不同,特別是時鐘系統(tǒng)變成了clock tree,不同總線的外設(shè)時鐘也是不同的,還有鎖相環(huán)倍頻,定時器不光有定時、計數(shù)的功能,看STM32F2的技術(shù)文檔,三種定時器加上systemtick、窗口看門狗、獨立看門狗,定時器數(shù)量達到了10幾個,而且有一堆亂七八糟的功能。 這就導(dǎo)致我們對待嵌入式開發(fā)的態(tài)度應(yīng)該發(fā)生改變,更應(yīng)該以應(yīng)用為目的去學習,就是邊做項目邊學習。 開發(fā)面貌改變了。軟1:因為硬件很靈活,很多都屬于定制的系統(tǒng),存儲器什么的都自己接,所以如果不是買核心板的話,bootloader()需要自己燒寫,甚至是編寫或是修改。多任務(wù)、實時性、硬件資源管理、產(chǎn)品開發(fā)效率瓶頸的要求導(dǎo)致了操作系統(tǒng)的引入,消耗了CPU資源,卻換來了開發(fā)效率,而且操作系統(tǒng)提供了大量的API函數(shù),方便了編程開發(fā)。軟3:設(shè)備驅(qū)動程序在51的前后臺系統(tǒng)中基本上跟應(yīng)用程序是不分的,在ARM裸機開發(fā)中,由于寄存器編程和外設(shè)時序的復(fù)雜性,驅(qū)動函數(shù)逐漸與用戶代碼分離,有了操作系統(tǒng)之后,設(shè)備驅(qū)動程序甚至單獨稱為了一個軟件層次。微內(nèi)核操作系統(tǒng)的引入和應(yīng)用,使得設(shè)備驅(qū)動得以第一次封裝,并和應(yīng)用程序任務(wù)處于同等優(yōu)先級的地位進行執(zhí)行。軟4:用戶程序不再需要自己一步一步搭建,龐大的工程,一般移植成熟的程序。 操作系統(tǒng)的引入,也導(dǎo)致了裸機開發(fā)的面貌的第二次改變,因為是在操作系統(tǒng)的平臺上編寫程序,在嵌入式操作系統(tǒng)中運行程序,所以學習操作系統(tǒng)是必然的,就像操作windows。 整個嵌入式系統(tǒng)軟硬件體系和開發(fā)流程發(fā)生改變:硬件層次 核心板+外圍板+外設(shè)(核心板:微控制器(CPU和外設(shè)控制器)、電源、時鐘、復(fù)位、ROM、RAM、flash。外圍設(shè)備。軟件層次:用戶程序操作系統(tǒng)驅(qū)動程序再底層是bootloader.(底層為上層提供服務(wù))。用戶調(diào)用系統(tǒng)服務(wù),系統(tǒng)調(diào)用設(shè)備驅(qū)動從而操縱硬件。amp。amp。amp。amp。訪問外設(shè)過程:用戶程序訪問(字符、塊、網(wǎng)絡(luò))設(shè)備文件調(diào)用設(shè)備驅(qū)動設(shè)備。 真理只有一個,沒有本質(zhì)的區(qū)別上邊說了從51到ARM之后發(fā)生巨大變化的地方,說到頭也只是鳥槍換炮,還有開發(fā)流程的變化,沒有本質(zhì)性的區(qū)別,都是嵌入式微處理器,CPU與外設(shè)控制器的,時序、寄存器編程、交叉開發(fā)方式是都適用的概念,就算功能結(jié)構(gòu)再復(fù)雜,裸機跑前后臺系統(tǒng)道理也是一樣的,先CPU初始化代碼,再跳轉(zhuǎn)到后臺while(1),前臺用中斷處理異步事件。CPU通過寄存器編程對外設(shè)控制器的工作模式進行設(shè)定,通過外設(shè)控制器產(chǎn)生時序與外設(shè)交互,CPU通過簡單讀寫寄存器的方式與外設(shè)控制器互動,以獲取外設(shè)信息或者像外設(shè)傳遞信息。這一過程也可以描述為:CPU是“大腦”,那么外設(shè)控制器(IO接口)就是它的“手足”。CPU通過給外設(shè)控制寄存器賦值可以控制外設(shè)寄存器的工作方式,通過對數(shù)據(jù)寄存器的讀寫掌控全局信息,體現(xiàn)自己“老大”的地位。CPU什么都不會,就只會尋址、傳送、計算,所以它要實現(xiàn)什么功能,一定是有若干級的控制器部件幫他做。比如一個擁有IIC接口的芯片,可以將壓力、溫度、時間等數(shù)據(jù)通過IIC發(fā)給CPU,這一類一般需要與外設(shè)芯片通過特定指令控制,就是說CPU要對它說點特別的話,就是需要驅(qū)動程序了(驅(qū)動程序是個大的概念,即實現(xiàn)操作對象的功能規(guī)約)。舉例說明,PCI可以看做CPU面向PCI設(shè)備的一個總線,內(nèi)部PCI控制器與CPU交互,CPU可以通過控制它產(chǎn)生時序與PCI設(shè)備進行通信。這個AD卡可以有自己的指令系統(tǒng)和通信規(guī)約,即收到什么做什么,發(fā)過去的數(shù)據(jù)那一部分是什么意思,CPU要想正確的通過PCI找到數(shù)據(jù),就得了解AD接口卡,就是需要設(shè)備驅(qū)動程序做解析。將圖畫、視頻編碼傳遞給GPU,它就能正確的顯示,不用CPU操心。 時序的概念當然外設(shè)控制器與外設(shè)的交互就是“對話”,就像兩個人一樣,要想溝通就得說一樣的“語言”,在通信中管它叫“通信協(xié)議
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1