[ARM嵌入式系统开发]第一章之嵌入式系统的软硬件
??? 本章的最后,通過描述ARM為核心的嵌入式系統,來介紹了嵌入式系統的軟件和硬件構成和結構。這里根據這部分的介紹以及其他的文章,描述下通用的嵌入式系統的軟件和硬件。
??? 首先來說下硬件,書中說,包含有處理器,控制器,外設和總線四個部分。這是一種比較籠統的說法,如果要更籠統點來說,應該是包含處理器,總線,外設三個部分。因為諸如存儲器,控制器,接口等都可以被歸納成外設。通常來說,嵌入式系統的廣義上的外設可以分為下面幾類:
??? 1。系統類:電源模塊,振蕩器模塊。
??? 2。存儲類:Cache,TCM,ROM,EPROM,EEPROM,SRAM,DRAM,SDRAM,Nor Flash,Nand Flash。(Cache是否為外設有待討論。軟盤,硬盤和光驅類的,應用比較少,在此不列出。)
??? 3。定時類:Timer,Watch Dog。
??? 4。中斷類:VIC或者通用的中斷控制器。
??? 5。接口類:I2C,SPI,UART,SDIO,PWM。
??? 6。多媒體接口類:I2S,ITU601,Lcd(Sys,RGB)。(區別于常用接口,單獨列出。)
??? 7。功能模塊類:藍牙,Wifi,FM,GPS,電視模塊等。這類外設和一些其他的專門模塊,因為通常用接口類外設去控制,所以在此不贅述了。
??? 文中在描述存儲器的時候,簡單描述了存儲器的性價比和系統設計時的關系。筆者描述下現在比較通用的存儲器使用結構。現今在嵌入式平臺上經常使用的存儲器有ROM,SRAM,SDRAM,Nor Flash,Nand Flash。ROM用來存儲程序,但是由于現在很多平臺要求程序的可Update,所以很多平臺在ROM中存放一小段Boot代碼,而把大部分代碼放置在Flash上。但是Flash由于讀寫方式和速度的關系,并不能滿足代碼的運行需求,因此大部分系統都在自身劃分出一段SRAM空間,用來Load代碼,然后在SRAM上運行。由此又產生了一個問題,SRAM的容量有限,通常只有幾十K到上百K,相對于代碼來說小了些,為了不浪費SRAM,又產生了Overlay技術,就是將程序劃分成模塊,運行的時候,只需要Load相應的模塊,不用Load所有模塊的代碼,這樣既可以高速的運行,又可以節省SRAM的空間。SRAM的另外一部分就用來存放數據,但是僅僅幾十K的空間,并不能滿足很多系統的需要,為此,SDRAM這種容量很大但是價格便宜的存儲器就很適合充當SRAM的補充。不過SDRAM有其固有的缺點,需要定時刷新,讀寫慢,所以比較適合大容量的數據Buffer,而不適用于運算過程。
??? 上面這段已經涉及到了一些嵌入式系統軟件的結構,下面就接著討論本章中描述的嵌入式系統的軟件。本章中對嵌入式軟件的討論主要是從操作系統的角度討論的,主要包括初始化程序(引導程序),操作系統,設備驅動和應用程序幾部分。但是現存的嵌入式軟件通常分為兩種,一種就是本章所描述的操作系統類型的,第二種就是通常所說的無系統架構(也可以稱為前后臺系統)。第一種通常應用在資源豐富,功能較多的系統上,而第二種相反,這種應用和這兩種架構的特點密不可分。帶有操作系統的的架構,程序設計模塊化比較容易,相對來說方便多人共同協作完成,但是由于Task的棧分離,以及操作系統的本身代碼和RAM需求等,對資源的要求較多。相反,前后臺系統,就沒有這些缺點,但是前后臺系統調度不容易,如果想讓功能穿插運行,對拆分代碼的要求很好,而且會因為設計調度,浪費很多時間。所以這兩種架構各有優缺點,具體該用哪種架構,要看具體的場合和具體的要求了。
總結
以上是生活随笔為你收集整理的[ARM嵌入式系统开发]第一章之嵌入式系统的软硬件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 联发科射频工程师题目_MTK联发科技面试
- 下一篇: 远程监控Swift生产服务器运行