
在ARM嵌入式系統中,由于硬件模塊的高度可配置性,軟件設置就需要進行初始化來應對硬件配置的改變。所以在正式運行開發者設計好的程序前,需要運行初始化代碼來進行初始化,本文就將針對存儲器系統的初始化進行介紹。
初始化存儲器系統
主要是對系統存儲器控制器(MMU)的初始化。由于存儲器控制器并不是ARM架構的一部分,不同芯片的實現方式各不相同。由于運算能力和尋址能力的強大,基于ARM內核的微處理器系統,一般都需要外擴展各種類型的存儲器。對于存儲器系統的初始化一般包括如下幾個方面:
--存儲器類型、時序和總線寬度的配置
--存儲器地址的配置
(1)存儲器類型
基于ARM微處理系統的存儲器一般有如下幾類:SARM、DRAM、Flah。同時,即使同類存儲器也有訪問速度上的不同。其中,SRAM和Flah屬于靜態存儲器,可以共用存儲器端口,而DRAM有動態刷新和地址復用等特征,需要專門的存儲器端口。
(2)時序
存儲器端口的接口時序優化對系統性能影響非常大,因為系統運行的速度瓶頸一般都存在于存儲器的訪問,因此希望存儲器的訪問盡可能快,但又要考慮由此帶來的系統穩定性問題。
(3)總線寬度
ARM微處理器架構支持8/16/32位的數據總線寬度訪問存儲器和外設,對于特定的存儲器來說,需要設定數據總線的寬度。
(4)存儲器地址的配置
ARM微處理器架構理論上可以支持4GB的地址空間,而對于一個實際的系統來說,配置的物理地址遠沒有這么多,因此,如何配置存儲器的地址,也是一個重要的問題。
(5)存儲器地址重映射
存儲器地址重映射就是可以通過軟件配置來改變一塊存儲器物理地址的方法,是當前許多先進控制器所具有的功能。
進行地址重映射的原因:提高系統的運行效率。
進行地址重映射的注意:保證程序流程的連續性。
有的ARM處理器不具有地址重映射的功能,可以采樣代碼搬移加跳轉的方式完成上述功能。
在針對存儲器進行初始化的過程中,要注意不同類型存儲器在訪問速度上的差異。此外,存儲器端口的接口時序優化也對整體性能的發揮有著非常重要的作用,需要特別進行注意。希望大家在閱讀過本文之后能夠對ARM嵌入式存儲系統初始化有進一步的了解。
聲明:本內容為作者獨立觀點,不代表電源網。本網站原創內容,如需轉載,請注明出處;本網站轉載的內容(文章、圖片、視頻)等資料版權歸原作者所有。如我們采用了您不宜公開的文章或圖片,未能及時和您確認,避免給雙方造成不必要的經濟損失,請電郵聯系我們,以便迅速采取適當處理措施;歡迎投稿,郵箱∶editor@netbroad.com。
微信關注 | ||
![]() |
技術專題 | 更多>> | |
![]() |
技術專題之EMC |
![]() |
技術專題之PCB |