1.1 介紹
1.1.1 bootloader 的作用
bootloader 的終極功能就是為了啟動內核。
從上面可以知道最簡單的 uboot 編寫的步驟:
初始化硬件:關看門狗、設置時鐘、設置 SDRAM、初始化 nandflash
如果bootloadre 比較大,要把它重定位到 SDRAM
把內核從 nandflash 讀到 SDRAM
設置內核啟動參數(shù)
跳轉執(zhí)行內核
1.1.2 norflash 啟動
norflash 可以像內存那樣讀,但是不能像內存那樣寫。
1.1.3 nandflash 啟動
1.2 看門狗及時鐘設置
1.2.1 看門狗設置
2440 必須在啟動的時候關閉看門狗,不然就會隔一段時間重啟芯片。
看門狗定時器控制(WTCON)寄存器允許用戶使能或禁止看門狗定時器、從 4 個不同源選擇時鐘信號、使能或禁止中斷和使能或禁止看門狗定時器輸出。看門狗定時器是用于恢復 S3C2440 上電后若有故障重時新啟動;如果不希望控制器重新啟動,則應該禁止看門狗定時器。
如果用戶希望使用看門狗定時器作為普通定時器,則應使能中斷并且禁止看門狗定時器。
+ View Code
1.2.2 時鐘設置
S3C2440 中的時鐘控制邏輯可以產(chǎn)生必須的時鐘信號,包括 CPU 的 FCLK,AHB 總線外設的 HCLK 以及 APB 總線外設的 PCLK。S3C2440A 包含兩個鎖相環(huán)(PLL):一個提供給 FCLK、HCLK 和 PCLK,另一個專用于 USB 模塊(48MHz)。、
時鐘控制邏輯可以不使用 PLL 來減慢時鐘,并且可以由軟件連接或斷開各外設模塊的時鐘,以降低功耗。
時鐘源的選擇與啟動模式有關,引導啟動時,時鐘源的選擇如下:
FCLK,HCLK 和 PCLK
FCLK 是提供給 ARM920T 的時鐘。
HCLK 是提供給用于 ARM920T,存儲器控制器,中斷控制器,LCD 控制器,DMA 和 USB 主機模塊的 AHB 總線的時鐘。
PCLK 是提供給用于外設如 WDT,IIS,I2C,PWM 定時器,MMC/SD 接口,ADC,UART,GPIO,RTC 和 SPI 的 APB 總線的時鐘。
S3C2440 支持對 FCLK、HCLK 和 PCLK 之間分頻比例的選擇。該比例由 CLKDIVN 控制寄存器中的 HDIVN 和 PDIVN 所決定。
對于 S3C2440,芯片手冊有這一段需要注意的:
我們必須將 CPU 總線模式改變?yōu)?異步總線模式。
前面已經(jīng)說明,S3C2440A 包含兩個鎖相環(huán)(PLL):一個提供給 FCLK、HCLK 和 PCLK,另一個專用于 USB 模塊(48MHz)。
所以還必須要設置鎖相環(huán),來給 FCLK、HCLK 和 PCLK 來提供時鐘源:
UPLL 是提供給 USB 使用的,我們需要設置 MPLL,對于 MPLLCON,可以對應芯片手冊提供的表進行設置:
input frequence:輸入時鐘源,外部 12M 的晶振,原理圖設計的
output Frequence:輸出時鐘源,也就是 MDIV,選擇 400M,則 MDIV 值是 0x5c
1 #define CLKDIVN 0x4C000014 /** 時鐘分頻控制寄存器 */
2 #define MPLLCON 0x4c000004
3 #define S3C2440_MPLL_400MHZ ((0x5c<<12)|(0x01<<4)|(0x01)) /** 400M 時鐘源 */
4
5 /** 3. 芯片手冊上要求:
6 * 如果 HDIVN 非0, CPU 的總線模式應該從 fast bus mode 變?yōu)?asynchronous bus mode */
7 mrc p15, 0, r1, c1, c0, 0 /* 讀出控制寄存器 */
8 orr r1, r1, #0xc0000000 /* 設置為 asynchronous bus mode */
9 mcr p15, 0, r1, c1, c0, 0 /* 寫入控制寄存器 */
10
11 /** 4. 設置時鐘頻率 */
12 ldr r0, =MPLLCON
13 ldr r1, =S3C2440_MPLL_400MHZ
14 str r1, [r0]
15
16 /** 5. 初始化 SDRAM */
17 mov ip, lr /** 保存當前程序地址到 ip 寄存器 */
18 bl sdram_init /** 執(zhí)行 SDRAM 的初始化 */
19 mov lr, ip
上一篇:二、編寫 s3c24x0 的 bootloader——SDRAM 設置
下一篇:Linux移植之tag參數(shù)列表解析過程分析
推薦閱讀最新更新時間:2025-06-09 17:36






設計資源 培訓 開發(fā)板 精華推薦
- Microchip 升級數(shù)字信號控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領先的新器件
- 意法半導體STM32MP23x:突破成本限制的工業(yè)AI應用核心
- 意法半導體推出用于匹配遠距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設置字重-ESP32篇
- 使用樹莓派進行 ESP32 Jtag 調試
- ESP32怎么在SPIFFS里面存儲html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測試
- AM3GH-2403SZ 3.3V DC/DC轉換器典型應用
- LT3763IFE 3.3A、六節(jié) (36V) SLA 電池充電器的典型應用電路
- DER-427 - 用于T8燈管的33W調光LED驅動器
- AM30EW-240515TZ 5V 單路輸出 DC/DC 轉換器的典型應用
- 使用 Richtek Technology Corporation 的 RT8252A 的參考設計
- ADR292ERZ-REEL 4.096V便攜式設備穩(wěn)壓器典型應用電路
- ADR435A 5 Vout 超低噪聲 XFET 電壓基準的典型應用,具有灌電流和拉電流能力
- NVC-MDCS42A、ABBTM-NVC-MDCS42A 藍牙模塊參考設計
- 使用 Analog Devices 的 LTC2902 的參考設計
- ADR444B 4.096 Vout 超低噪聲、LDO XFET 電壓基準的典型應用,具有電流吸收器和電流源
- 小米MIUI新版相冊App解密:響應提升,高頻操作流暢
- 加大mini-LED投資 新款MacBook Pro將在9月發(fā)布
- 銷售超級周期來了 iPhone 12系列銷量超1億部
- OPPO Card商標申請曝光 功能類似Apple Card
- 蘋果發(fā) iOS/iPadOS 15 開發(fā)者 Beta 2 修正版
- 自動駕駛與5G并進,中國無人車今年將量產(chǎn)
- 邁向高端制造 深圳投1000億元加快“機器換人”
- 2017年中國工業(yè)機器人市場規(guī)模與企業(yè)市場份額
- 新型機械手拾取后可對物體進行識別分揀
- 因芯片漲價,銀河電子2017年凈利潤同比減少36.08%