日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]ARM7在嵌入式應用中啟動程序技術難點分析

技術難點分析

⑴.MMU的使用

MMU是存儲器管理單元的縮寫,是用來管理虛擬內存系統(tǒng)的器件。MMU通常是CPU的一部分,本身有少量存儲空間存放從虛擬地址到物理地址的匹配表。此表稱作TLB(轉換旁置緩沖區(qū))。所有數(shù)據(jù)請求都送往MMU,由MMU決定數(shù)據(jù)是在RAM內還是在大容量存儲器設備內。如果數(shù)據(jù)不在存儲空間內,MMU將產(chǎn)生頁面錯誤中斷。

MMU的兩個主要功能是:

將虛地址轉換成物理地址。 

控制存儲器存取允許。MMU關掉時,虛地址直接輸出到物理地址總線。
 
在實踐中,使用MMU解決了如下幾個問題:

①使用DRAM作為大容量存儲器時,如果DRAM的行列是非平方的,會導致該DRAM的物理地址不連續(xù),這將給程序的編寫調試造成極大不便,而適當配置MMU可將其轉換成虛擬地址連續(xù)的空間。

ARM內核的中斷向量表要求放在0地址, 對于ROM在0地址的情況,無法調試中斷服務程序,所以在調試階段有必要將可讀寫的存儲器空間映射到0地址。

③系統(tǒng)的某些地址段是不允許被訪問的,否則會產(chǎn)生不可預料的后果,為了避免這類錯誤,可以通過MMU匹配表的設置將這些地址段設為用戶不可存取類型。

啟動程序中生成的匹配表中包含地址映射,存儲頁大小(1M,64K,或4K)以及是否允許存取等信息。

例如:目標板上的16兆DRAM的物理地址區(qū)間為0xc000,0000~0xc07f,ffff;0xc100,0000~0xc17f,ffff;16兆ROM的虛擬地址區(qū)間為:0x0000,0000~0x00ff,ffff。匹配表配置如下:

可以看到左邊是連續(xù)的虛擬地址空間,右邊是不連續(xù)的物理地址空間,而且將DRAM映射到了0地址區(qū)間。 MMU通過虛擬地址和頁面表位置信息,按照轉換邏輯獲得對應物理地址,輸出到地址總線上。

應注意到的是使能MMU后,程序繼續(xù)運行,但是對于程序員來說程序計數(shù)器的指針已經(jīng)改變,指向了ROM所對應的虛擬地址。

⑵目標文件的分布裝載分析

首先創(chuàng)建一個文本文件,稱為分布裝載描述文件。它為應用程序的各部分指定裝載區(qū)間和執(zhí)行區(qū)間。

舉例如下:

FLASH 0x01000000 0x011fffff ;2M FLASH

{

FLASH 0x01000000

{

boot.o(BOOT,+FIRst)

* (+RO)

}

DRAM 0x00000000

vector.0(VECTOR,+First) 

int_handler.o (+RO) 

* (+RW,+ZI)

}

ARM鏈接器的命令行里加入“-scov description-file –scf”或“-scatter description-file”,編譯鏈接后,將產(chǎn)生一個分布裝載文件。

鏈接器同時產(chǎn)生一組符號,給出每個分布描述文件中命名的區(qū)間的長度,裝載地址和執(zhí)行地址。由于鏈接器和C庫都沒有將代碼從它的裝載區(qū)間拷貝到執(zhí)行區(qū)間,或創(chuàng)建一個零初始化區(qū)域的功能,所以要由應用程序員利用這組符號產(chǎn)生的信息完成這項工作,這是在呼叫C程序之前必須完成的,舉例如下:

LDR r0, = |Load$$DRAM$$Base|

LDR r1, = |Image$$DRAM$$Base|

CMP r0, r1 ; 檢查裝載地址和執(zhí)行地址是否相同

BEQ do_zi_init ; 相同,則不拷貝該區(qū)間,初始化零數(shù)據(jù)區(qū)

MOV r2, r1 ; 不相同,將裝載區(qū)拷貝到執(zhí)行區(qū) 

LDR r4, = |Image$$DRAM$$length|

ADD r2, r2, r4

BL copy

do_zi_init

LDR r1, = |Image$$DRAM$$ZI$$Base|

MOV r2, r1

LDR r4, = |Image$$DRAM$$ZI$$length|

ADD r2, r2, r4

MOV r3, #0

BL zi_init ; 調用零初始化子程序

結束語:

本文介紹的啟動程序已經(jīng)在以Cirrus Logic公司的EP7211和Ateml公司的AT91M40400開發(fā)的系統(tǒng)上運行并測試通過。今后可以在這一基礎上添加串行通信模塊和FLASH操作模塊,開發(fā)系統(tǒng)監(jiān)控程序,從而實現(xiàn)應用程序的在線升級。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

2025年8月4日 – 提供超豐富半導體和電子元器件?的業(yè)界知名新品引入 (NPI) 代理商貿(mào)澤電子 (Mouser Electronics) 即日起開售Altera?的Agilex? 3 FPGA C系列開發(fā)套件。此開...

關鍵字: FPGA 邊緣計算 嵌入式應用

我們討論了為嵌入式應用程序設置斷言通常需要的內容。我們還看到,根據(jù)所使用的工具鏈,它可能會略有不同。盡管存在這些較小的差異,但仍將斷言用于相同的目的:檢測開發(fā)人員對應用程序的假設何時在應用程序中的特定點不正確。

關鍵字: 實時斷言 嵌入式應用

自發(fā)布以來,這款由米爾首發(fā)的真工業(yè)級核心板-米爾基于全志T536核心板就獲得了廣大關注,現(xiàn)正式開售,核心板278元起、開發(fā)板750元起。米爾基于米爾全志T536核心板,配備四核Cortex-A55,擁有17路串口和4路C...

關鍵字: 開發(fā)板 核心板 嵌入式應用

嵌入式軟件開發(fā)團隊面臨的最大挑戰(zhàn)之一是他們花費太多時間調試軟件。當我在參加的各種會議上與世界各地的團隊和工程師交談時,很明顯,開發(fā)人員平均花費 40% 或更多的時間來調試他們的軟件。

關鍵字: 合同設計來 嵌入式應用

新微控制器 STM32C071擴大閃存和 RAM容量,增加USB控制器,支持 TouchGFX圖形軟件,讓終端產(chǎn)品變得更纖薄、小巧,更具競爭力

關鍵字: 微控制器 嵌入式應用

在現(xiàn)代計算機體系結構中,內存管理單元(Memory Management Unit, MMU)扮演著至關重要的角色,它是連接處理器與物理內存之間的橋梁,負責將處理器生成的虛擬地址(Virtual Address, VA)...

關鍵字: MMU 虛擬地址

SiFive 的解決方案正被加速采用,目前市場上已有超過 20 億顆基于 SiFive RISC-V 的芯片

關鍵字: 嵌入式應用 RISC-V 芯片

由于傳統(tǒng)嵌入式軟件升級存在成本高、便捷性差、實時性差等問題 , 空中下載技術(0ver-the-Air ,OTA)被用于嵌入 式軟件應用的敏捷在線升級。由于嵌入式0TA系統(tǒng)缺乏高效安全的加密和認證機制 ,升級包在傳輸過程...

關鍵字: 嵌入式應用 遠程升級 OTA系統(tǒng)

在許多領域和應用中,精確的定位變得日益重要。實時動態(tài) (RTK)技術的定位精度明顯高于傳統(tǒng)的多GNSS系統(tǒng),并且成本效益不斷提高。儒卓力系統(tǒng)解決方案 (Rutronik System Solutions) 的專家與儒卓力...

關鍵字: 適配器板 嵌入式應用
關閉