娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

三、編寫 s3c24x0 的 bootloader——重定位(一)

發(fā)布者:BlissfulMoments最新更新時間:2024-08-26 來源: cnblogs關(guān)鍵字:s3c24x0  bootloader  重定位 手機看文章 掃描二維碼
隨時隨地手機看文章

重定位之前,要將 flash 初始化,flash 的初始化分為 norflash 和 nandflash,norflash 不用初始化,所以不用做任何操作


3.1 nandflash 初始化


在 nandflash 初始化之前,需要設(shè)置棧:


1     /** 6. 重定位:把 bootloader 本身的代碼從flash 復(fù)制到它的鏈接地址中 */

2     /** copy_code_to_sdram 用 C語言寫,需要先設(shè)置棧 */

3     ldr sp, =0x34000000     /** 棧指向 SDRAM 的頂端 */

進(jìn)入初始化:


1     bl nand_init

nandflash 初始化需要注意兩個內(nèi)容,一個是 s3c2440 手冊的第 6 章 nandflash 控制器,一個是 nandflash 的芯片手冊。


3.1.1 寄存器 NFCONF

要注意兩個寄存器,是初始化需要操作的:

  

 

 注意圖中標(biāo)記的三個寄存器參數(shù),這三個參數(shù)與 nandflash 控制器的時序有關(guān):

發(fā)出 CLE/ALE 之后,一個寫信號 nWE 需要多久變?yōu)?a href="http://www.nncyjs.com/zhuanti/qXzvTS" style="color:#4595e6;" target="_blank">低電平,nWE 變?yōu)榈碗娖胶螅珻LE/ALE 又需要保存多長時間才能變?yōu)榈碗娖健?p>nWE 中的低電平為 /WE 中的 twp 處位置,為寫信號的脈沖寬度,最小為 12 ns,最小值都是通過 nandflash 手冊得到的,如下:

  

HCLK * (TWRPH0 + 1)  >= 12ns

自己設(shè)置的時鐘FCLK(CPU主頻是 400MHZ),分頻比是 FCLK: HCLK: PCLK = 1:4:8,那么 HCLK 是100MHZ,即為10ns;則 10 * (TWRPH0 + 1) >= 12,TWRPH0 >= 0.2,那么 TWRPH0 可以設(shè)置為 1。

發(fā)出 CLE 和 ALE 之后,過多少時間才能發(fā)出寫信號?time = tcls - twp >= 0,這里說明 CLE 信號和 WE 信號可以同時發(fā)出,那么可以將 TACLS 時間設(shè)置為 0,即發(fā)出 CLE 后,立即發(fā)出寫信號。

TWRPH1 表示寫信號變?yōu)?a href="http://www.nncyjs.com/zhuanti/qbnP0C" style="color:#4595e6;" target="_blank">高電平之后,CLE 和 ALE 還需要維持多長時間,從 nandflash 時序圖和手冊,可以知道 tclh >= 5ns,則 10 * (TWRPH1 + 1) >= 5,則 TWRPH1 >= 0。

3.1.2 寄存器 NFCONT

  

這個寄存器需要設(shè)置 MODE(NAND Flash 控制器運行模式),要使能 nandflash;Reg_nCE(NAND Flash 存儲器的 nFCE 信號控制),我們是引導(dǎo)期間,所以要使能片選;InitECC,雖然在引導(dǎo)期間不會使用 ECC,但是也要進(jìn)行 ECC 初始化。


3.1.3 初始化代碼

 1 void nand_init(void)

 2 {

 3 #define TACLS       0

 4 #define TWRPH0      1

 5 #define TWRPH1      0

 6 

 7     /** 設(shè)置時序 */

 8     NFCONF = (TACLS << 12) | (TWRPH0 << 8) | (TWRPH1 << 4);

 9     /** 使能 NND Flash 控制器, 初始化 ECC, 禁止片選 */

10     NFCONT = (1 << 4) | (1 << 1) | (1 << 0);

11 }


關(guān)鍵字:s3c24x0  bootloader  重定位 引用地址:三、編寫 s3c24x0 的 bootloader——重定位(一)

上一篇:GCC編譯器原理(一)------交叉編譯器制作和GCC組件及命令
下一篇:二、編寫 s3c24x0 的 bootloader——SDRAM 設(shè)置

推薦閱讀最新更新時間:2025-06-13 06:02

TQ2440 學(xué)習(xí)筆記—— 27、移植U-Boot【Bootloader 作用、工作流程】
一、Bootloader 簡介 1、系統(tǒng)上電之后,需要一段程序來進(jìn)行初始化:關(guān)閉WATCHDOG、改變系統(tǒng)時鐘、初始化存儲控制寄存器、將更多的代碼復(fù)制到內(nèi)存中等。如果它能將操作系統(tǒng)內(nèi)核復(fù)制到內(nèi)存中運行,無論從本地(比如Flash)還是從遠(yuǎn)端(比如通過網(wǎng)絡(luò)),就稱這段程序為Bootloader 。 簡單的說,Bootloader 就是這么一段小程序,它在系統(tǒng)上電時開始執(zhí)行,初始化硬件設(shè)備、準(zhǔn)備好軟件環(huán)境,最后調(diào)用操作系統(tǒng)內(nèi)核。 2、Bootloader 的啟動方式 CPU 上電后,會從某個地址開始執(zhí)行。比如MIPS 結(jié)構(gòu)的CPU 會從0xBFC00000取第一條指令,而ARM 結(jié)構(gòu)的CPU則從地址 0x0000000
[單片機]
TQ2440 學(xué)習(xí)筆記—— 27、移植U-Boot【<font color='red'>Bootloader</font> 作用、工作流程】
freescale飛思卡爾 HCS12 系列單片機bootloader詳解(一)
  最近在做freescale HCS12系列單片機的bootloader,畢竟是新手,對這方面的入門知識還是欠缺。盡管NXP官網(wǎng)已經(jīng)有了相當(dāng)豐富的文檔與例程,可是無奈例程太過復(fù)雜,不知道如何下手第一行代碼。這里先感謝經(jīng)驗豐富的某位高人醍醐灌頂?shù)闹笇?dǎo),為了讓再入門的新學(xué)者能夠有個參考,所以就將本次開發(fā)bootloader的過程學(xué)習(xí)過程記錄下來以其能夠?qū)Υ蠹矣兴鶈l(fā)。因為本人自己也是新學(xué)者,所以有問題可以留言討論。   這里單片機的bootloader與我們廣義的Linux以及windows的bootloader是不同的。這種大型操作系統(tǒng)的bootloader是為了做操作系統(tǒng)與硬件之間的橋梁:初始化硬件系統(tǒng)、為操作系統(tǒng)的引導(dǎo)做準(zhǔn)
[單片機]
s3c2440的簡單BOOTLOADER
調(diào)試了很久終于成功啟動了板子,這個程序分兩個部分,一個是啟動代碼boot.s負(fù)責(zé)初始化硬件并拷貝前4k的程序到內(nèi)存中執(zhí)行。另外一個是主程序文件main.c,main設(shè)置UART并使用串口循環(huán)輸出打印一個類似于shell的界面,可以接收命令,但暫時沒做命令解釋,功能還不全,主要是為了看看能不能實現(xiàn)基本的BOOTLOADER功能。 mian.c #define BUF_SIZE 100 #define GPHCON (*(volatile unsigned long *)0x56000070) #define GPHUP (*(volatile unsigned long *)0x56000078) #define ULCON0
[單片機]
自制bootloader 之 文本代碼
想移植uboot1.4到板子上,搞了半天沒成功,決心弄明白uboot原理,大概流程,所以決定寫個簡單的bootloader來理順一下應(yīng)該做些什么,怎么做~~~~ 首先應(yīng)該描述一下該bootloader的基本功能:板子上電后能進(jìn)行LED流水燈(萬能的流水燈啊 )。實現(xiàn)該功能分兩步:第一步,真正的bootloader功能,即實現(xiàn)硬件的初始化以及將內(nèi)核程序(LED流水燈)從ROM(flash)搬移到RAM(sdram);第二步,內(nèi)核程序的實現(xiàn) 第一步也可分兩段:1,板子硬件初始化;2,內(nèi)核程序的搬移。代碼文件:boot.s 板子硬件初始化:1. 異常向量初始化        2. 初始化CPSR,包括關(guān)閉中斷
[單片機]
自制<font color='red'>bootloader</font> 之 文本代碼
WinCE系統(tǒng)下BootLoader的開發(fā)
摘要:介紹WinCE.NET系統(tǒng)的舊方法;說明板級支持包(BSP)的基本構(gòu)成;從開發(fā)實際出發(fā),詳細(xì)闡述如何開發(fā)BSP中的重要部件--BootLoader。 關(guān)鍵詞:WinCE.NET BSP BootLoader DOC 引言 Windows CE.NET是微軟公司向嵌入式領(lǐng)域推出的一款操作系統(tǒng)。它最大程度繼承了桌面版Windows操作系統(tǒng)的豐富功能,同時又副入了許多新特性,以適應(yīng)嵌入式領(lǐng)域的實際情況和要求。無論是商業(yè)應(yīng)用需求,還是人們的多媒體消費需求,都能被采用CE操作系統(tǒng)的設(shè)備很輕松的滿足。最新的.NET版本較之3.0版本,在實時性和穩(wěn)定性上有大幅度提高,開始廣泛地被平板電腦、數(shù)碼相機、彩屏手機、PDA等多種高性能產(chǎn)品
[應(yīng)用]
基于WinCE的嵌入式圖像采集系統(tǒng)設(shè)計
隨著我國科技進(jìn)步和社會的發(fā)展,數(shù)字視頻圖像的采集、存儲、處理及傳輸技術(shù)在最近幾年得到了廣泛的應(yīng)用和發(fā)展,各類圖像采集及處理系統(tǒng)已經(jīng)逐漸深入到人們生活的各個方面。與視頻采集卡等傳統(tǒng)圖像采集系統(tǒng)相比,嵌入式圖像采集系統(tǒng)具有體積小、成本低、可靠性高等優(yōu)點,在智能交通、遠(yuǎn)距離監(jiān)控、計算機視覺等領(lǐng)域應(yīng)用廣泛。本文介紹了一種應(yīng)用ARM微處理芯片和WinCE操作系統(tǒng)的圖像采集解決方案。 1 系統(tǒng)總體設(shè)計 該設(shè)計主要由3大部分組成,USB攝像頭通過USB接口與AMR開發(fā)板(下位機)相連,PC機(上位機)通過網(wǎng)絡(luò)接口(網(wǎng)卡)和以太網(wǎng)線與ARM開發(fā)板相連。攝像頭負(fù)責(zé)對圖像數(shù)據(jù)的采集,然后將數(shù)據(jù)傳送到運行在WinCE上的服務(wù)端程序,服務(wù)端程序負(fù)責(zé)將采
[單片機]
基于WinCE的嵌入式圖像采集系統(tǒng)設(shè)計
基于ARM-Linux嵌入式系統(tǒng)引導(dǎo)程序的設(shè)計
0.?概述   在專用的嵌入式開發(fā)板上運行操作系統(tǒng)(如Linux)已經(jīng)變得越來越流行,而Bootloader就是為引導(dǎo)操作系統(tǒng)內(nèi)核運行的一段代碼。通過它可以初始化硬件設(shè)備、建立或檢測內(nèi)存空間的映射,其功能有點類似于PC機的BIOS(基本輸入輸出系統(tǒng))程序。它的主要作用是為運行操作系統(tǒng)提供基本的運行環(huán)境,并操作系統(tǒng)的內(nèi)核裝載到存儲器(RAM)中的合適位置上去運行。本文將以Samsung公司的S3C2410開發(fā)板為開發(fā)平臺,具體闡述了Bootloader的運行原理與實現(xiàn)分析。   Bootloader程序與CPU芯片的內(nèi)核結(jié)構(gòu)、具體芯片和使用的操作系統(tǒng)等因素有著密切關(guān)系,因此要為所有類型的嵌入式開發(fā)板建立一個通用的Bootlo
[單片機]
基于ARM-Linux嵌入式系統(tǒng)引導(dǎo)程序的設(shè)計
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 榆社县| 遂川县| 尉氏县| 长汀县| 高尔夫| 临桂县| 浦县| 奉节县| 渝中区| 洮南市| 尼勒克县| 泰宁县| 台前县| 华坪县| 阳谷县| 莎车县| 永和县| 五莲县| 忻州市| 乌兰察布市| 汝阳县| 镇赉县| 自治县| 兴宁市| 双江| 益阳市| 平武县| 惠来县| 广宗县| 潍坊市| 灵宝市| 沾化县| 寿光市| 十堰市| 永德县| 于都县| 定南县| 平顶山市| 华容县| 灵宝市| 竹北市|