如下是ADS下的boot的MMU.c的MMU初始化代碼。在2440init.S中跳入Main,這個(gè)Main函數(shù)在U2440mom.c中實(shí)現(xiàn),這個(gè)Main函數(shù)包括了對(duì)端口,中斷服務(wù),MMU,VGA等的初始化函數(shù)的調(diào)用。MMU.c中進(jìn)行了MMU的初始化,其中調(diào)用了很多初始化函數(shù),使用匯編寫的,確切的說是用協(xié)處理指令寫的。這些函數(shù)的聲明部分在2440slib.h,實(shí)現(xiàn)在2440slib.c中。在MMU的初始化程序MMU_Init中,首先禁止了Dcache,Icache,清除了Dcache和Icache。禁止了MMU,TLB。然后對(duì)存儲(chǔ)系統(tǒng)進(jìn)行了虛擬地址到物理地址的映射。然后設(shè)置了轉(zhuǎn)化表的基地址,設(shè)置了域,開啟了MMU,Icache,Dcache。
void MMU_Init(void)
{
? ? int i,j;
? ? //========================== IMPORTANT NOTE =========================
? ? //The current stack and code area can't be re-mapped in this routine.
? ? //If you want memory map mapped freely, your own sophiscated MMU
? ? //initialization code is needed.
? ? //===================================================================
? ? MMU_DisableDCache();
? ? MMU_DisableICache();
? ? //If write-back is used,the DCache should be cleared.
? ? for(i=0;i<64;i++)
? ?? ?? ?? ?for(j=0;j<8;j++)
? ?? ?? ?? ?? ? MMU_CleanInvalidateDCacheIndex((i<<26)|(j<<5));
? ? MMU_InvalidateICache();
? ?
? ? #if 0
? ? //To complete MMU_Init() fast, Icache may be turned on here.
? ? MMU_EnableICache();
? ? #endif
? ?
? ? MMU_DisableMMU();
? ? MMU_InvalidateTLB();
? ? //MMU_SetMTT(int vaddrStart,int vaddrEnd,int paddrStart,int attr)
? ? //MMU_SetMTT(0x00000000,0x07f00000,0x00000000,RW_CNB);??//bank0
? ? if(rBWSCON&0x6)//nor啟動(dòng)
? ?? ?? ?? ?? ?? ? MMU_SetMTT(0x00000000,0x07f00000,0x00000000,RW_NCNB);? ?//bank0
? ?? ?? ???else//nand 啟動(dòng)
? ?? ?? ?? ?? ?? ? MMU_SetMTT(0x00000000,0x00001000,0/*(int)__ENTRY*/,RW_CB);? ?//bank0
? ? //MMU_SetMTT(0x04000000,0x07f00000,0,RW_NCNB);? ?? ?? ?? ?? ?? ?? ?? ???//bank0
? ? MMU_SetMTT(0x08000000,0x0ff00000,0x08000000,RW_NCNB);??//bank1
? ? MMU_SetMTT(0x10000000,0x17f00000,0x10000000,RW_NCNB); //bank2
? ? MMU_SetMTT(0x18000000,0x1ff00000,0x18000000,RW_NCNB); //bank3
? ? //MMU_SetMTT(0x20000000,0x27f00000,0x20000000,RW_CB); //bank4
? ? MMU_SetMTT(0x20000000,0x27f00000,0x20000000,RW_NCNB); //bank4 for STRATA Flash
? ? MMU_SetMTT(0x28000000,0x2ff00000,0x28000000,RW_NCNB); //bank5
? ? MMU_SetMTT(0x30000000,0x30100000,0x30000000,RW_CB);? ?? ?? ? //bank6-1? ?1
? ? MMU_SetMTT(0x30200000,0x33e00000,0x30200000,RW_NCNB); //bank6-2? ?? ?60
? ? //
? ? MMU_SetMTT(0x33f00000,0x33f00000,0x33f00000,RW_CB);? ?//bank6-3? ?? ???
? ? MMU_SetMTT(0x38000000,0x3ff00000,0x38000000,RW_NCNB); //bank7
? ?
? ? MMU_SetMTT(0x40000000,0x47f00000,0x40000000,RW_NCNB); //SFR? ?? ?? ???127
? ? MMU_SetMTT(0x48000000,0x5af00000,0x48000000,RW_NCNB); //SFR? ?? ?? ???303
? ? MMU_SetMTT(0x5b000000,0x5b000000,0x5b000000,RW_NCNB); //SFR
? ? MMU_SetMTT(0x5b100000,0xfff00000,0x5b100000,RW_FAULT);//not used
? ?
? ? MMU_SetTTBase(_MMUTT_STARTADDRESS);
? ? MMU_SetDomain(0x55555550|DOMAIN1_ATTR|DOMAIN0_ATTR);
? ?? ?? ?? ?//DOMAIN1: no_access, DOMAIN0,2"15=client(AP is checked)
? ? MMU_SetProcessId(0x0);
? ? MMU_EnableAlignFault();
? ?? ?? ?? ?
? ? MMU_EnableMMU();
? ? MMU_EnableICache();
? ? MMU_EnableDCache(); //DCache should be turned on after MMU is turned on.
}? ?
for(i=0;i<64;i++)
? ?? ?? ?? ?for(j=0;j<8;j++)
? ?? ?? ?? ?? ? MMU_CleanInvalidateDCacheIndex((i<<26)|(j<<5));
? ? MMU_InvalidateICache();
這里是因?yàn)?a target="_blank">ARM920T有64路,每路有8個(gè)組。所以。。。為什么要i<<26,j<<5呢,看下圖便知


這是一個(gè)MMU的虛擬地址向物理地址映射的函數(shù)。通過上邊的調(diào)用可以看到物理地址和虛擬地址的地址是相同的,那為什么還要開MMU呢,不是多此一舉嗎,Dcache的開啟必須在MMU開啟后才能開啟,Icache不受MMU影響。開啟Cache對(duì)系統(tǒng)性能會(huì)有很大提升。所以,哈哈。這里_MMUTT_STARTADDRESS是轉(zhuǎn)換表的基址,因?yàn)闆]有使用復(fù)雜的操作系統(tǒng),所以只使用了一級(jí)頁表,每個(gè)頁表項(xiàng)對(duì)應(yīng)的是一個(gè)1MB的段。pTT=(U32 *)_MMUTT_STARTADDRESS+(vaddrStart>>20);相當(dāng)于獲得相應(yīng)的頁表項(xiàng)??匆幌孪聢D就會(huì)明白。nSec=(vaddrEnd>>20)-(vaddrStart>>20);這句是計(jì)算有幾個(gè)段。for(i=0;i<=nSec;i++)*pTT++=attr |(((paddrStart>>20)+i)<<20);分別映射每段。Attr是域。
void MMU_SetMTT(int vaddrStart,int vaddrEnd,int paddrStart,int attr)
{
? ? volatile U32 *pTT;
? ? volatile int i,nSec;
? ? pTT=(U32 *)_MMUTT_STARTADDRESS+(vaddrStart>>20);
? ? nSec=(vaddrEnd>>20)-(vaddrStart>>20);
? ? for(i=0;i<=nSec;i++)*pTT++=attr |(((paddrStart>>20)+i)<<20);
}


這里就不列出那些被調(diào)用的匯編代碼,這個(gè)是飛凌的boot,網(wǎng)上好多人說沒開MMU,真是誤人子弟啊。
ADS下bootloader之MMU研究
- ADS1220(126315)
- bootloader(47760)
- MMU(19133)
相關(guān)推薦
熱點(diǎn)推薦
對(duì)于系統(tǒng)啟動(dòng),bootloader的功能的簡單分析
(因?yàn)闆]有去映射,直接輸出到地址線上了),mmu可以當(dāng)坐中間的翻譯,系統(tǒng)上電后,cpu自然要從某一處讀指令,那么我們要做的就是把初始化系統(tǒng)的代碼(請(qǐng)?jiān)试S我叫他bootloader)放在那,
2018-02-05 10:23:23
11184
11184
嵌入式Linux啟動(dòng)時(shí)間優(yōu)化的秘密之五-Bootloader
本文主要講述嵌入式Linux啟動(dòng)時(shí)間優(yōu)化的秘密,我們繼續(xù)上篇沒有講完的嵌入式Linux啟動(dòng)時(shí)間優(yōu)化方法,本文主要會(huì)講Bootloader。想看上一篇的請(qǐng)查看本文結(jié)尾的鏈接。 Bootloader
2020-04-21 17:24:51
3358
3358
什么是Bootloader 淺談STM32中bootloader的內(nèi)存分配
1. 什么是Bootloader Bootloader是硬件啟動(dòng)的引導(dǎo)程序,是運(yùn)行操作系統(tǒng)的前提。在操作系統(tǒng)內(nèi)核或用戶應(yīng)用程序運(yùn)行之前運(yùn)行的一段小代碼。對(duì)硬件進(jìn)行相應(yīng)的初始化和設(shè)定,最終為操作系統(tǒng)
2021-02-15 06:10:00
18473
18473
STM32單片機(jī)Bootloader的實(shí)現(xiàn)
之前一篇的文章中,主要介紹了STM32的啟動(dòng)流程和內(nèi)存主要空間的分配,這篇文章將在上一篇文章的基礎(chǔ)上,來闡述一下STM32 Bootloader的實(shí)現(xiàn)。
2023-01-11 17:29:44
8028
8028
為什么沒有MMU就無法運(yùn)行Linux系統(tǒng)呢?
MMU(Memory Management Unit,內(nèi)存管理單元)是一種硬件模塊,用于在CPU和內(nèi)存之間實(shí)現(xiàn)虛擬內(nèi)存管理。
2023-08-03 10:05:00
1400
1400
ARM MMU/TLB的學(xué)習(xí)筆記和總結(jié)
Memory Management Unit (MMU)** 的**主要功能**就是 **能夠讓系統(tǒng)在執(zhí)行多任務(wù)時(shí),作為一個(gè)獨(dú)立的程序運(yùn)行它自己的虛擬地址空間中,它們無需知道真正的物理地址是什么** 。
2023-08-04 14:39:01
2590
2590
Bootloader驅(qū)動(dòng)相關(guān)代碼
S32K144提示:這里可以添加系列文章的所有文章的目錄,目錄需要自己手動(dòng)添加例如:第一章 Python 機(jī)器學(xué)習(xí)入門之pandas的使用提示:寫完文章后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助
2021-08-17 06:17:02
MMU的產(chǎn)生及MMU工作過程詳解
MMU的調(diào)度下是如何進(jìn)行映射的: 在這個(gè)例子中我們有一臺(tái)可以生成16位地址的機(jī)器,它的虛擬地址范圍從0x0000~0xFFFF(64K),而這臺(tái)機(jī)器只有32K的物理地址,因此他可以運(yùn)行64K的程序,但
2018-07-03 08:19:31
研究下stm32基于BootLoader的IAP功能
近期想研究下stm32基于BootLoader的IAP功能,要想實(shí)現(xiàn)這個(gè),必須先搞明白程序跳轉(zhuǎn),在真正開搞前折騰了半晚上,完成了程序跳轉(zhuǎn)的簡單測試。stm32代碼下載到0x8000000開始的地址
2021-12-21 06:44:10
AVR之BOOTLOADER技術(shù)詳解
本帖最后由 一只耳朵怪 于 2018-6-26 10:42 編輯
AVR之BOOTLOADER技術(shù)詳解 ATmega128具備引導(dǎo)加載支持的用戶程序自編程功能(In-System
2018-06-26 06:22:07
STM32F407的系統(tǒng)bootloader之串口IAP固件升級(jí)
STM32F407的系統(tǒng)bootloader之串口IAP固件升級(jí),STM32F407的系統(tǒng)bootloader之串口IAP固件升級(jí)本章節(jié)為大家講解使用系統(tǒng)bootloader做程序升級(jí)的方法,即使
2021-08-10 07:26:18
STM32H7的系統(tǒng)bootloader之串口IAP固件升級(jí)
第69章 STM32H7的系統(tǒng)bootloader之串口IAP固件升級(jí)本章節(jié)為大家講解使用系統(tǒng)bootloader做程序升級(jí)的方法,即使不依賴外部boot引腳也可以方便升級(jí)。IAP的全稱是In Application Programming...
2021-08-20 06:04:02
arm_mmu詳細(xì)圖解
arm_mmu詳細(xì)圖解arm_mmu詳細(xì)圖解arm_mmu詳細(xì)圖解arm_mmu詳細(xì)圖解arm_mmu詳細(xì)圖解arm_mmu詳細(xì)圖解arm_mmu詳細(xì)圖解arm_mmu詳細(xì)圖解arm_mmu詳細(xì)圖解
2009-11-21 23:58:12
【OK210試用體驗(yàn)】簡易Bootloader的實(shí)現(xiàn)
。us5pv210.icf,IAR下鏈接文件,指定板載內(nèi)存范圍,代碼以及RAM等布局。這里筆者說明一下,在建立c運(yùn)行環(huán)境之前的Bootloader代碼均是地址無關(guān)的,CPU上電后會(huì)加載部分的Bootloader代碼到內(nèi)部
2015-07-26 12:01:24
為什么mmu代碼改成在ADS環(huán)境下編譯并下載到nandFLASH中一直出不來效果?
我把書中光盤里hardware目錄中的mmu代碼改成在ADS環(huán)境下編譯并下載到nandFLASH中一直出不來效果,現(xiàn)在有兩個(gè)疑問!請(qǐng)大家伙幫個(gè)忙哈!感激涕零哈(1)編譯led.c的時(shí)候:總是在
2019-07-11 05:45:22
使用MMU進(jìn)行多用戶場景下的FLASH分區(qū)保護(hù)
或修改其它用戶區(qū)的FLASH內(nèi)容。我們可以使用國民技術(shù)MCU內(nèi)置的MMU,將FLASH主存儲(chǔ)區(qū)的區(qū)域進(jìn)行劃分和設(shè)置訪問權(quán)限,同時(shí)可保護(hù)各個(gè)應(yīng)用存儲(chǔ)區(qū)域內(nèi)的代碼與數(shù)據(jù)不被非法訪問及篡改,并指示出存儲(chǔ)器
2022-11-02 06:45:02
使用系統(tǒng)bootloader做程序升級(jí)的方法
第29章 STM32F407的系統(tǒng)bootloader之USB DFU方式固件升級(jí)本章節(jié)為大家講解使用系統(tǒng)bootloader做程序升級(jí)的方法,即使不依賴外部boot引腳也可以方便升級(jí)。DFU的全稱
2021-08-10 06:31:55
使用系統(tǒng)bootloader做程序升級(jí)的方法
第29章 STM32F429的系統(tǒng)bootloader之USB DFU方式固件升級(jí)本章節(jié)為大家講解使用系統(tǒng)bootloader做程序升級(jí)的方法,即使不依賴外部boot引腳也可以方便升級(jí)。DFU的全稱
2021-08-10 08:15:24
使用系統(tǒng)bootloader做程序升級(jí)的方法
第30章 STM32F429的系統(tǒng)bootloader之串口IAP固件升級(jí)本章節(jié)為大家講解使用系統(tǒng)bootloader做程序升級(jí)的方法,即使不依賴外部boot引腳也可以方便升級(jí)。IAP的全稱
2021-08-10 06:29:51
關(guān)于頁表和MMU的問題
剛開始學(xué),好多東西都云里霧里的TT為什么在bootloader里要進(jìn)行頁表初始化然后開啟MMU,然后在進(jìn)入內(nèi)核后還要?jiǎng)?chuàng)建頁表開啟MMU?這兩個(gè)有什么不一樣么?s3c2410,bootloader用的是vivi-0.1.4,kernel是linux-2.6.14望賜教。
2013-05-06 17:25:50
如何配置MMU page table walk的訪問屬性
的頁表項(xiàng)可以在cache中緩存如何配置MMU page table walk的訪問屬性如果需要在MMU enable的情況下,運(yùn)行時(shí)修改頁表項(xiàng)。如上所述,因?yàn)?b class="flag-6" style="color: red">MMU page table walk
2022-10-24 15:45:24
嵌入式Linux中的bootloader
一、bootloader: 它就是一個(gè)稍微復(fù)雜的裸板程序。但是要把這裸板程序看懂寫好一點(diǎn)都不容易。Windows下好用的工具弱化了我們的編程能力。很多人一玩嵌入式就用ADS、KEIL。你能回答這幾
2017-11-10 21:29:08
有對(duì)MMU比較了解的嗎?
我最近在寫一個(gè)MMU的裸機(jī)程序,但是無論怎么映射都不行,一旦開啟MMU,程序就會(huì)卡住。我想問的是寫MMU的程序?qū)︽溄幽_本和程序本身有什么特別的要求嗎?我的映射代碼如下(0~0x60000000全部
2014-01-10 21:43:32
WinCE系統(tǒng)下BootLoader 的開發(fā)
介紹WinCE.NET 系統(tǒng)的定制方法; 說明板級(jí)支持包(BSP)的基本構(gòu)成; 從開發(fā)實(shí)例出發(fā),詳細(xì)闡述如何開發(fā)BSP 中的重要部件—— BootLoader。
2009-04-15 11:16:44
45
45基于ARM核的Bootloader代碼的分析與設(shè)計(jì)
Bootloader 是系統(tǒng)上電或復(fù)位后首先運(yùn)行的一段代碼,Bootloader 代碼(即啟動(dòng)代碼)的好壞對(duì)整個(gè)系統(tǒng)的運(yùn)行效率有著重要的影響, 而Bootloader 代碼與芯片的特性有著緊密的聯(lián)系。本
2009-08-15 09:45:31
48
48ADS5525IRGZT:高性能模數(shù)轉(zhuǎn)換器的技術(shù)之巔
ADS5525IRGZT:高性能模數(shù)轉(zhuǎn)換器的技術(shù)之巔在數(shù)字信號(hào)處理的世界中,模數(shù)轉(zhuǎn)換器(ADC)扮演著至關(guān)重要的角色。它們是將連續(xù)的模擬信號(hào)轉(zhuǎn)換為離散的數(shù)字信號(hào)的關(guān)鍵組件。而ADS
2024-01-14 21:52:30
以智財(cái)單元為基系統(tǒng)晶片設(shè)計(jì)之測試技術(shù)研究
本計(jì)畫是在“以智財(cái)單元為基系統(tǒng)晶片設(shè)計(jì)之驗(yàn)證與測試技術(shù)開發(fā)研究”總計(jì)畫項(xiàng)下之一子計(jì)畫,目的是研究有關(guān)以智財(cái)單元為基之系統(tǒng)晶片於深次微米情況下之測試諸
2010-09-03 10:04:58
14
14S3C2410內(nèi)存管理單元MMU基礎(chǔ)實(shí)驗(yàn)
(11)實(shí)驗(yàn)十一:MMU 在理論上概括或解釋MMU,這不是我能勝任的。我僅基于為了理解本實(shí)驗(yàn)中操作MMU的代碼而對(duì)MMU做些說明,現(xiàn)在先簡單地描述虛擬地址(VA)、變換后的虛擬地址(MVA)、物理地址(PA) 之間的關(guān)系: 啟動(dòng)MMU后,S3C2410的CPU核看到的、用到的只是虛擬
2009-01-01 02:29:42
17
17BootLoader_BootLoader是什么
ARM實(shí)現(xiàn)手指靜脈識(shí)別系統(tǒng)_本文將從 BootLoader的概念、BootLoader 的框架結(jié)構(gòu)與安裝等四個(gè)方面來討論。
2011-11-30 10:32:31
3517
3517ARM的Bootloader啟動(dòng)流程研究
講述了基于ARM 處理器的嵌入式系統(tǒng)在上電啟動(dòng)后應(yīng)用程序或操作系統(tǒng)運(yùn)行前,對(duì)處理器及其內(nèi)部功能模塊進(jìn)行初始化的過程,并結(jié)合經(jīng)過實(shí)際驗(yàn)證的代碼詳細(xì)的分析了S3C44B0 Bootloader 的
2012-02-03 14:48:05
70
70解鎖BootLoader
BootLoader就是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段小程序。本內(nèi)容介紹了BootLoader是什么及解鎖Bootloader
2012-05-30 17:00:54
3931
3931德州儀器經(jīng)典模數(shù)轉(zhuǎn)換器講解之ADS805
德州儀器經(jīng)典模數(shù)轉(zhuǎn)換器講解之ADS805,ADS805它可以用在CCD成像、數(shù)字化基帶處理、復(fù)印機(jī)和測試儀器等等。
2012-11-30 09:56:04
7774
7774WinCE系統(tǒng)下BootLoader的開發(fā)
本文介紹WinCE.NET系統(tǒng)的定制方法;說明板級(jí)支持包(BSP)的基本構(gòu)成;從開發(fā)實(shí)例出發(fā),詳細(xì)闡述如何開發(fā)BSP中的重要部件—— BootLoader。
2016-04-18 10:02:17
1
1pic18單片機(jī)在BootLoader中的應(yīng)用
與之相關(guān)的內(nèi)容,如CONFIRM_DATA,可以使用任何特定的字符串來確認(rèn)是否需要進(jìn)入BootLoader狀態(tài),增加了BootLoader程序的安全性,避免受到干擾而誤進(jìn)入程序升級(jí)狀態(tài)。
2017-07-03 14:13:15
1163
1163Host端MSD類的Bootloader程序
研究了一下AN4368,該AplplicationNote講述了如何基于飛思卡爾支持USB功能的Coldfire和Kinetis芯片如何開發(fā)一個(gè)Host端MSD類的Bootloader程序,以及如何修改應(yīng)用程序配置。通俗來講就是完成了通過U盤更新芯片程序代碼。
2017-09-15 17:50:08
10
10ARM存儲(chǔ)管理單元MMU詳解
級(jí)的操作系統(tǒng)采用基于硬件的存儲(chǔ)管理單元MMU來實(shí)現(xiàn)上述操作。 MMU提供的一個(gè)關(guān)鍵服務(wù)是使各個(gè)任務(wù)作為各自獨(dú)立的程序在其自己的私有存儲(chǔ)空間中運(yùn)行。在帶MMU的操作系統(tǒng)控制下,運(yùn)行的任務(wù)無須知道其他與之無關(guān)的任務(wù)的存儲(chǔ)需求情況,這就簡化
2017-10-17 16:24:11
4
4PXA255處理器在WinCE系統(tǒng)下的BootLoader的設(shè)計(jì)與實(shí)現(xiàn)
PXA255處理器在WinCE系統(tǒng)下的BootLoader的設(shè)計(jì)與實(shí)現(xiàn)
2017-10-25 10:04:28
4
4bootloader如何更新
BootLoader就是單片機(jī)啟動(dòng)時(shí)候運(yùn)行的一段小程序,這段程序負(fù)責(zé)單片機(jī)固件的更新,也就是單片機(jī)選擇性的自己給自己下程序??梢愿?,也可以不更新,更新的話,BootLoader更新完程序后,跳轉(zhuǎn)到新程序運(yùn)行;不更新的話,BootLoader直接跳轉(zhuǎn)到原來的程序去運(yùn)行。
2017-11-10 08:22:53
8313
8313
對(duì)MMU和頁表工作機(jī)制的簡單評(píng)析
對(duì)于一個(gè)有MMU的CPU而言,MMU開啟后,CPU是這樣尋址的:CPU任何時(shí)候,一切時(shí)候,發(fā)出的地址都是虛擬地址,這個(gè)虛擬地址發(fā)給MMU后,MMU通過頁表來在頁表里面查出來這個(gè)虛擬地址對(duì)應(yīng)的物理地址是什么,從而去訪問外面的內(nèi)存條。MMU里面的頁表地址寄存器,記錄了頁表本身的存放位置。
2018-02-02 14:08:57
11718
11718
淺談ARM MMU工作原理和過程
在沒有使用虛擬存儲(chǔ)器的機(jī)器上,虛擬地址被直接送到內(nèi)存總線上,使具有相同地址的物理存儲(chǔ)器被讀寫。而在使用了虛擬存儲(chǔ)器的情況下,虛擬地址不是被直接送到內(nèi)存地址總線上,而是送到內(nèi)存管理單元——MMU(主角終于出現(xiàn)了)。
2018-03-12 09:17:00
4135
4135
AVR的bootloader的設(shè)置步驟教程及注意事項(xiàng)
熔絲位的燒寫:BOOTRST要進(jìn)行編程,這樣單片機(jī)在復(fù)位后自動(dòng)跳轉(zhuǎn)到bootloader區(qū)執(zhí)行bootloader的代碼,然后要根據(jù)自己bootloader的大小設(shè)置boot區(qū)的的熔絲位。
2018-05-20 09:46:00
7464
7464
如何ADC的內(nèi)置2X模式下使用ADS1605和ADS1606的詳細(xì)概述
該應(yīng)用報(bào)告討論了ADS1605和ADS1606 ADC的內(nèi)置2X模式。在這種模式下,數(shù)據(jù)被發(fā)送到10 MSPS。該報(bào)告簡要介紹,PIN配置,時(shí)序要求,關(guān)鍵性能的總結(jié),以及典型的特點(diǎn)。此外,還示出了數(shù)字抽取濾波器的穩(wěn)定時(shí)間、脈沖響應(yīng)和頻率響應(yīng)。
2018-05-25 08:48:54
10
10技術(shù)盛宴 | 淺析RDMA網(wǎng)絡(luò)下MMU水線設(shè)置
了廣泛應(yīng)用。為保障RDMA的穩(wěn)定運(yùn)行,基礎(chǔ)網(wǎng)絡(luò)需要提供端到端無損零丟包及超低延時(shí)的能力,這也催生了PFC、ECN等網(wǎng)絡(luò)流控技術(shù)在RDMA網(wǎng)絡(luò)中的部署。在RDMA網(wǎng)絡(luò)中,如何合理設(shè)置MMU(緩存管理單元
2018-11-22 12:44:01
1571
1571啟動(dòng)代碼與bootloader有什么區(qū)別
我主要遇到了這樣一個(gè)問題,啟動(dòng)代碼和Bootloader的區(qū)別以及它們在ARM上運(yùn)行操作系統(tǒng)和不運(yùn)行操作系統(tǒng)(只有用戶程序)的關(guān)系。啟動(dòng)代碼是Bootloader,但不能說Bootloader是啟動(dòng)代碼。當(dāng)然這也不是絕對(duì)的,只在某些情況下可以這么說。
2018-12-11 17:11:34
10
10Bootloader是什么Bootloader的介紹和過程詳細(xì)解
本文檔的主要內(nèi)容詳細(xì)介紹的是Bootloader是什么Bootloader的介紹和過程詳細(xì)解主要內(nèi)容包括了: 1. Bootloader簡介2.幾種發(fā)布的Bootloader
2018-12-11 17:33:20
49
49Bootloader的詳細(xì)資料分析免費(fèi)下載
本文檔的主要內(nèi)容詳細(xì)介紹的是Bootloader的詳細(xì)資料分析免費(fèi)下載。主要內(nèi)容包括了:熟悉BootLoader的實(shí)現(xiàn)原理,認(rèn)識(shí)Bootloader的主要任務(wù),熟悉BootLoader的結(jié)構(gòu)框架,I U-boot使用
2018-12-13 17:08:39
45
45詳談嵌入式之Bootloader
可以增強(qiáng) Bootloader 的功能,比如增加網(wǎng)絡(luò)功能、從 PC 上通過串口或網(wǎng)絡(luò)下載文件、 燒寫文件、將 Flash 上壓縮的文件解壓后再運(yùn)行等,這就是一個(gè)功能更為強(qiáng)大的 Bootloader, 也稱為 Monitor。實(shí)際上,在最終產(chǎn)品中用戶并不需要這些功能,他們只是為了方便開發(fā)。
2019-02-04 15:27:00
6715
6715STM32系統(tǒng)bootloader的應(yīng)用有哪些
嵌入式開發(fā)中,經(jīng)常需要bootloader進(jìn)行程序固件升級(jí)和系統(tǒng)維護(hù),所以bootloader是必不可少的功能。STM32系統(tǒng)自帶的系統(tǒng)bootloader很方便使用。大量減少了工程師開發(fā)bootloader的工作。
2020-10-22 12:19:45
6515
6515
如何編寫ARM處理器的Bootloader
作者 | strongerHuang 微信公眾號(hào) | strongerHuang 之前從應(yīng)用的角度給大家分享過Bootloader相關(guān)的文章,今天從底層原理來給大家描述ARM處理器如何編寫
2020-10-27 11:02:36
4772
4772
MMU的工作原理梳理
本文從內(nèi)存管理的發(fā)展歷程角度層層遞進(jìn),介紹 MMU 的誕生背景,工作機(jī)制。而忽略了具體處理器的具體實(shí)現(xiàn)細(xì)節(jié),將 MMU 的工作原理從概念上比較清晰的梳理了一遍。 MMU 誕生之前:在傳統(tǒng)的批處理
2020-12-17 16:13:56
14281
14281
ARM920T的MMU與Cache介紹
CPU通過地址來訪問內(nèi)存中的單元,地址有虛擬地址和物理地址之分,如果CPU沒有MMU(Memory Management Unit,內(nèi)存管理單元),或者有MMU但沒有啟用,CPU核在取指令或訪問內(nèi)存
2021-03-28 11:05:03
14
14剖析汽車ECU的bootloader程序
主要講述汽車bootloader程序的工作原理和設(shè)計(jì)方法。 01 bootloader的功能 BootLoader,通常是駐留在ECU非易失性存儲(chǔ)器(NVM,None Valitale Momory
2021-09-24 10:52:42
4602
4602
MPU和MMU、MPU和MCU的區(qū)別
一、MMU vs MPU內(nèi)存是現(xiàn)代計(jì)算機(jī)最重要的組件之一。因此,它的內(nèi)容不能被任何錯(cuò)誤的應(yīng)用所篡改。這個(gè)功能可以通過MMU(Memory Management Unit)或者M(jìn)PU(Memory
2021-10-26 16:36:23
4
4幾種MCU bootLoader的實(shí)現(xiàn)方案
幾種MCU bootLoader的實(shí)現(xiàn)方案 mcu bootLoader boot的方式可以是uart、spi、i2c、ethernet等,方式可以是多樣性,這里只介紹boot的架構(gòu)方式,以下是常用的boot分類: 1、boot + ap...
2021-10-28 10:36:01
18
18MCU Bootloader總結(jié)
Bootloader本文只探討MCU(單片機(jī))下的Bootloader,對(duì)ARM系列暫不做探討。(1)bootloader是弄啥的?(2)為什么要引入bootloader(也就是加入bootloader之后起什么作用)?(3)bootloader怎么根據(jù)自己的需求去設(shè)計(jì)流程?...
2021-11-05 15:51:03
33
33華大HC32F460 Bootloader及應(yīng)用程序的實(shí)現(xiàn)
在MCU市場缺貨的情況下,選擇一個(gè)合適的MCU有點(diǎn)困難。華大半導(dǎo)體的HC32F460具有較高的性價(jià)比,有辣么大的flash和ram,可以做很多事了。 先搞個(gè)bootloader吧,這個(gè)玩意用處多
2021-11-23 18:06:50
100
100STM32系統(tǒng)bootloader應(yīng)用
嵌入式開發(fā)中,經(jīng)常需要bootloader進(jìn)行程序固件升級(jí)和系統(tǒng)維護(hù),所以bootloader是必不可少的功能。STM32系統(tǒng)自帶的系統(tǒng)bootloader很方便使用。大量減少了工程師開...
2021-11-26 13:36:04
17
17stm32 IOT_STM32通用Bootloader——FOTA
bootloader 升級(jí)模式bootloader 的升級(jí)模式常見有以下兩種:bootloader 分區(qū) + app1 分區(qū) + app2 分區(qū)模式該模式下, bootloader 啟動(dòng)后,檢查 app1 和...
2021-11-30 19:21:12
23
23BootLoader啟動(dòng)過程的顯示策略研究與實(shí)現(xiàn)
在嵌入式操作系統(tǒng)中,BootLoader是嵌入式操作系統(tǒng)得以運(yùn)行的重要前提,因?yàn)樗梢猿跏蓟匾挠布O(shè)備,比如電源、存儲(chǔ)器等,從而可以完成上電、建立內(nèi)存空間映射圖,以便為接下來加載操作系統(tǒng)內(nèi)核
2022-04-02 17:14:45
1
1詳解MMU相關(guān)概念及工作原理
提到MMU就要提到一個(gè)概念,虛擬地址(Virtual Address)。前面的文章中反復(fù)提到過虛擬地址的概念。
2022-04-22 09:20:25
8812
8812為什么要用MMU?為什么要用虛擬地址?
既然MMU開啟后,硬件會(huì)自動(dòng)的將虛擬地址轉(zhuǎn)換成物理地址,那么還需要我們軟件做什么事情呢?即創(chuàng)建一個(gè)頁表翻譯都需要做哪些事情呢?或者說啟用一個(gè)MMU需要軟件做什么事情呢?
2022-04-26 14:37:31
5990
5990關(guān)于在Bootloader模式下的應(yīng)用程序下載
STM32 MCU 在 bootloader 模式下,可以通過多種可用外設(shè)(USART、CAN、USB、I2C、SPI等)將程序下載到內(nèi)部存儲(chǔ)器中,詳細(xì)內(nèi)容可參考應(yīng)用筆記 AN2606《STM32
2022-06-16 16:57:03
5309
5309一文解讀內(nèi)存管理單元 (MMU)
一般MMU會(huì)有一種disable的模式,即不使能MMU,所有虛擬地址都直接映射到相應(yīng)的物理地址,VA=PA。
2022-07-28 18:09:42
5785
5785
如何實(shí)現(xiàn)簡單的bootloader功能
考慮到瑞薩的MCUBoot的ROM占用和某些客戶的需求,本篇主要講述在不使用瑞薩MCUboot驅(qū)動(dòng)下,如何實(shí)現(xiàn)簡單的bootloader功能。
2022-09-06 13:13:39
3325
3325RTOS多線程必須要MMU才行?
前兩天看到有人說:計(jì)算機(jī)的多線程,必須要有MMU才行,否則系統(tǒng)不能正常運(yùn)行。 MMU:Memory Management Unit,即內(nèi)存管理單元,它是一個(gè)“好東西”,在大型的操作系統(tǒng)中,起到了關(guān)鍵
2022-10-11 18:56:28
3180
3180國民技術(shù)N32G4FR使用MMU進(jìn)行多用戶場景下的FLASH分區(qū)保護(hù)
使用MMU進(jìn)行多用戶場景下的FLASH分區(qū)保護(hù) ? ? 簡介 在嵌入式產(chǎn)品研發(fā)過程中,有時(shí)會(huì)存在單個(gè)MCU內(nèi)部需要多個(gè)用戶分階段進(jìn)行應(yīng)用軟件開發(fā)的場景,在此場 景中,各用戶的代碼及數(shù)據(jù)可能出于版權(quán)或
2022-11-07 11:35:46
9
9N32WB452系列使用MMU進(jìn)行多用戶場景下的FLASH分區(qū)保護(hù)
N32WB452系列使用MMU進(jìn)行多用戶場景下的FLASH分區(qū)保護(hù)
2022-11-10 19:51:10
0
0N32G4FR系列使用MMU進(jìn)行多用戶場景下的FLASH分區(qū)保護(hù)
N32G4FR系列使用MMU進(jìn)行多用戶場景下的FLASH分區(qū)保護(hù)
2022-11-10 19:51:11
1
1N32G457系列使用MMU進(jìn)行多用戶場景下的FLASH分區(qū)保護(hù)
N32G457系列使用MMU進(jìn)行多用戶場景下的FLASH分區(qū)保護(hù)
2022-11-10 19:51:12
0
0N32G455系列使用MMU進(jìn)行多用戶場景下的FLASH分區(qū)保護(hù)
N32G455系列使用MMU進(jìn)行多用戶場景下的FLASH分區(qū)保護(hù)
2022-11-10 19:51:13
1
1N32G452系列使用MMU進(jìn)行多用戶場景下的FLASH分區(qū)保護(hù)
N32G452系列使用MMU進(jìn)行多用戶場景下的FLASH分區(qū)保護(hù)
2022-11-10 19:51:14
0
0ADS使用記錄之功率放大器設(shè)計(jì)
14、ADS使用記錄之功率放大器設(shè)計(jì) 基于ADS2022 參考的書籍是盧益鋒老師的ADS射頻電路設(shè)計(jì)與仿真學(xué)習(xí)筆記 前置教程: 01、ADS使用記錄之新建工程 02、ADS使用記錄之導(dǎo)入各類仿真模型
2023-02-16 14:17:27
7
7CC2640R2:如何利使用芯片內(nèi)部Bootloader燒寫程序
我們來看一下CC2640R2的Bootloader是怎么Run的。CC13x0, CC26x0 SimpleLink Wireless MCU Technical Reference Manual
2023-04-04 10:10:47
2740
2740為什么沒有MMU就無法運(yùn)行Linux系統(tǒng)
MMU(Memory Management Unit,內(nèi)存管理單元)是一種硬件模塊,用于在CPU和內(nèi)存之間實(shí)現(xiàn)虛擬內(nèi)存管理。
2023-04-23 10:48:05
1342
1342
STM32H7實(shí)現(xiàn)BootLoader內(nèi)SDRAM的初始化注意事項(xiàng)
Function Implementation:在 ArtPi 的環(huán)境下,實(shí)現(xiàn)一個(gè)簡單的 BootLoader,該 BootLoader 實(shí)現(xiàn)了 QSPI 和 SDRAM 功能的初始化
2023-06-07 15:51:16
5417
5417
介紹一下CAN Bootloader的整個(gè)實(shí)現(xiàn)過程
對(duì)于大多數(shù)汽車軟件開發(fā)者來說,從客戶需求的角度,他們更多關(guān)心Bootloader的下載模式。
2023-06-29 11:13:38
2707
2707
MMU內(nèi)存管理單元的工作原理和作用
MMU(Memory Management Unit,內(nèi)存管理單元)是一種硬件模塊,用于在CPU和內(nèi)存之間實(shí)現(xiàn)虛擬內(nèi)存管理。
2023-08-03 10:03:42
4227
4227
什么是MMU?linux為什么需要MMU?
在內(nèi)存管理方面,MMU可以通過頁面表(Page Table)實(shí)現(xiàn)虛擬內(nèi)存管理。頁面表是一種數(shù)據(jù)結(jié)構(gòu),記錄了每個(gè)虛擬頁面和其對(duì)應(yīng)的物理頁面之間的映射關(guān)系。
2023-10-09 11:27:33
2561
2561
嵌入式Linux運(yùn)行一定需要MMU嗎?為什么需要MMU?
嵌入式Linux運(yùn)行一定需要MMU嗎?為什么需要MMU?? 嵌入式Linux運(yùn)行需要MMU,這是因?yàn)?b class="flag-6" style="color: red">MMU是嵌入式系統(tǒng)中最重要的子系統(tǒng)之一,它扮演著以硬件的方式隔離不同應(yīng)用程序,為操作系統(tǒng)提供
2023-10-29 16:28:35
1493
1493國民技術(shù)使用MMU進(jìn)行多用戶場景下的FLASH分區(qū)保護(hù)V1
國民技術(shù)AN_使用MMU進(jìn)行多用戶場景下的FLASH分區(qū)保護(hù)V1
2022-10-18 16:12:56
0
0MMU原理:CPU是如何訪問到內(nèi)存的?
當(dāng)CPU訪問虛擬地址0的時(shí)候,MMU會(huì)去查上面頁表的第0行,發(fā)現(xiàn)第0行沒有命中,于是無論以何種形式(R讀,W寫,X執(zhí)行)訪問,MMU都會(huì)給CPU發(fā)出page fault,CPU自動(dòng)跳到fault的代碼去處理fault。
2023-11-09 12:30:04
1920
1920
MMU內(nèi)存管理單元的宏觀理解
最近一直在學(xué)習(xí)內(nèi)存管理,也知道MMU是管理內(nèi)存的映射的邏輯IP,還知道里面有個(gè)TLB。 今天剛剛好看到了幾篇前輩的文章,很是不錯(cuò),于是這里來一起學(xué)習(xí)一下吧。 PART 一:MMU 架構(gòu)篇 MMU
2023-11-26 15:21:34
1205
1205
MMU中的頁命中、缺頁介紹
頁命中、缺頁 (1)頁命中 ? a) 處理器要對(duì)虛擬地址VA進(jìn)行訪問。 ? b) MMU的TLB沒有命中,通過TWU遍歷主存頁表中的PTEA(PTE地址)。 ? c) 主存向MMU返回PTE
2023-11-26 16:19:27
2033
2033
如何才能將Bootloader和Application關(guān)聯(lián)起來
接下來,我們要利用該Bootloader調(diào)試目標(biāo)Application Project,如何才能將Bootloader和Application關(guān)聯(lián)起來呢?就需要借助剛才提到的Bootloader Project Build所生成的***.bld文件。
2024-06-12 14:32:53
1871
1871
深入解析ADS7852:高性能12位8通道ADC的卓越之選
轉(zhuǎn)換器(ADC),憑借其出色的特性和廣泛的應(yīng)用場景,成為眾多工程師的理想之選。今天,我們就來深入探討一下ADS7852的相關(guān)特性、工作原理、應(yīng)用場景以及設(shè)計(jì)要點(diǎn)。 文件下載: ads
2025-12-09 13:58:07
444
444
深度剖析ADS1242和ADS1243:高精度ADC的卓越之選
深度剖析ADS1242和ADS1243:高精度ADC的卓越之選 在電子工程師的日常工作中,高精度模擬 - 數(shù)字轉(zhuǎn)換器(ADC)的選擇至關(guān)重要,它直接影響到系統(tǒng)的性能和精度。今天,我們就來深入探討
2025-12-10 10:00:06
310
310
電子發(fā)燒友App





評(píng)論