国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

單片機快速啟動的實現(xiàn)

發(fā)布時間:2010-9-3 14:06    發(fā)布者:techshare
關鍵詞: 快速啟動
嵌入式系統(tǒng)對功能、可靠性、成本、體積、功耗等均有嚴格要求,以ARM體系結構為基礎的各種RISC微處理器具有靈活的特性和強大的性能,在嵌入式系統(tǒng)中得到了廣泛的應用。---S3C2410是三星公司基于ARM920T設計的一款處理器,在開發(fā)基于S3C2410的系統(tǒng)的過程中,如何讓系統(tǒng)快速穩(wěn)定地啟動是一個重要問題。嵌入式系統(tǒng)的資源有限,程序通常都是固化在ROM中運行。但在實際應用中,為提高系統(tǒng)的實時性,加快代碼的執(zhí)行速度,系統(tǒng)啟動后程序往往要被搬移到RAM中,因為RAM的存取速度要比ROM快得多,這樣大大提升系統(tǒng)的性能。啟動程序要完成的任務包括:硬件初始化,系統(tǒng)存儲系統(tǒng)的配置,復制二級中斷向量表。

啟動程序過程

系統(tǒng)硬件初始化

系統(tǒng)上電或復位后,程序從位于地址0x0的Reset Exception Vec
tor處開始執(zhí)行,因此需要在這里放置Bootloader的第一條指令:b ResetHandler,跳轉到標號為ResetHandler處進行第一階段的硬件初始化,主要內容為:關看門狗定時器,關中斷,初始化PLL和時鐘,初始化存儲器系統(tǒng)。執(zhí)行完以上程序后,系統(tǒng)進行堆棧和存儲器的初始化。系統(tǒng)堆棧初始化取決于用戶使用了哪些中斷,以及系統(tǒng)需要處理哪些錯誤類型。一般情況下,管理者堆棧必須設置,如果使用了IRQ中斷,則IRQ堆棧也必須設置。如果系統(tǒng)使用了外設,則需要設置相關的寄存器,以確定其刷新頻率、總線寬度等信息。

代碼段復制到RAM中運行

因為嵌入式系統(tǒng)的代碼通常都是固化在ROM或者Flash中,上電后開始運行。由于ROM和Flash的讀取速度相對較慢,這樣無疑會降低代碼的執(zhí)行速度和系統(tǒng)的運行效率。為此,需要把系統(tǒng)的代碼復制到RAM中運行。使用SDT鏈接器ARMLink產生的定位信息,把RO的有效代碼和數(shù)據(jù)段到RAM中。ARMLink將編譯后的程序鏈接成ELF文件。映像文件內部共有三種輸出段:RO段、RW段和ZI段。這三種輸出段分別包含了只讀代碼及包含在代碼段中的少量數(shù)據(jù)、可讀寫的數(shù)據(jù)、初始化為0的數(shù)據(jù),ARMLink同時還產生了這三種輸出段的起始和終止定位信息:Image$$RO$$Base、Image$$RO$$Limit、Image$$RW$$Base、Image$$Limit、Image$$Linit和Image$$ZI$$Limit。可以在程序中使用這些定位信息。將ROM中的代碼和數(shù)據(jù)搬移到RAM中,具體程序如下。




BNE %B0 /*如果沒有復制完,跳轉到0標示符處的匯編語句,繼續(xù)復制,參見ARM指令幫助手冊

建立二級中斷向量表

在ARM系統(tǒng)中,中斷向量表位于0X0開始的地址處,意味著無論運行什么樣的上層軟件,一旦發(fā)生中斷,程序就得到Flash存儲器中的中斷向量表里去,降低系統(tǒng)的運行效率。因此在RAM中建立自己的二級中斷向量表,當中斷發(fā)生后,程序直接從RAM中取中斷向量進入中斷子程序。尤其是在中斷頻繁發(fā)生的系統(tǒng)里,這種方法可以大大提高系統(tǒng)的運行效率,具體的實現(xiàn)代碼如下





其中HANDLER是一個宏,用于查找中斷處理程序的入口地址。這些地址存放在由HandleXXX指向的表項中,該表定位在RAM高端,基地址為_ISR_STARTADDRESS





MMU的應用

MMU是存儲器管理單元的縮寫,是用來管理虛擬內存系統(tǒng)的器件。MMU通常是CPU的一部分,本身有少量存儲空間存放從虛擬地址到物理地址的匹配表,此表稱作TLB(轉換旁置緩沖區(qū))。所有數(shù)據(jù)請求都送往MMU,由MMU決定數(shù)據(jù)是在RAM內還是在大容量外部存儲器設備內。如果數(shù)據(jù)不在存儲空間內,MMU將產生頁面錯誤中斷。MMU存儲器系統(tǒng)的結構允許對存儲器系統(tǒng)的精細控制,大部分的控制細節(jié)由存在存儲器中的轉換表提供。這些表的入口定義了從1KB~1MB的各種存儲器區(qū)域的屬性。MMU完成的兩個主要功能是:將虛地址轉換成物理地址,控制存儲器存取允許。MMU關掉時,虛地址直接輸出到物理地址總線。

經過以上的分析可以發(fā)現(xiàn),系統(tǒng)啟動程序主要是完成了硬件的初始化,以及克服Flash或ROM讀取速度慢的弱點,提高指令和數(shù)據(jù)的讀取速度,實現(xiàn)系統(tǒng)的高速運行,并且通過MMU的應用,減少RAM的使用,降低系統(tǒng)成本。


參考文獻
1 S3C2410數(shù)據(jù)手冊
2 ARM920T數(shù)據(jù)手冊
3 王京林.ARM7在嵌入式應用中啟動程序的實現(xiàn)
本文地址:http://m.qingdxww.cn/thread-25523-1-1.html     【打印本頁】

本站部分文章為轉載或網友發(fā)布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據(jù)著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 利用SAM E54 Xplained Pro評估工具包演示CAN轉USB橋接器以及基于CAN的主機和自舉程序應用程序
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發(fā)培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 貿澤電子(Mouser)專區(qū)
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 影音先锋色先锋女同另类 | 国产成人亚洲影视在线 | 久久婷婷一区二区三区 | 国产欧美日韩灭亚洲精品 | 日韩欧美精品有码在线观看 | 青青久操| 春日迟迟再出发最新一期在线观看 | 免费看日本大片免费 | 美女被漫画 | 国产成人精品视频免费 | 久久99国产精品免费观看 | 亚州免费视频 | 日日干夜夜拍 | 欧美在线不卡视频 | 女人特黄大aaaaaa大片 | 日韩欧美中文字幕在线视频 | 久久免费视频精品 | 国产一级高清免费观看 | 久久国产精品高清一区二区三区 | 欧美在线一区二区三区不卡 | free俄罗斯性xxxx| 日本一区二区三区在线播放 | 无毒不卡在线播放 | 亚洲国产精 | 国产91在线播放动漫 | 无圣光私拍一区二区三区 | 操屁网| 日本色播 | 日韩精品欧美 | 韩国第一页 | 手机看片1204日韩一区二区 | 四虎免费久久影院 | 激情亚州| 亚洲一区欧美 | 91精品国产91热久久p | 亚洲成人免费网址 | 亚洲情a成黄在线观看动 | 欧美亚洲另类久久综合 | 欧美不卡激情三级在线观看 | 粉嫩在线| 失乐园日本电视剧第1集第8 |