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

一、編寫 s3c24x0 的 bootloader——介紹、看門狗及時鐘設置

發布者:EternalWhisper最新更新時間:2024-08-26 來源: cnblogs關鍵字:s3c24x0  bootloader  看門狗  時鐘設置 手機看文章 掃描二維碼
隨時隨地手機看文章

1.1 介紹

1.1.1 bootloader 的作用

bootloader 的終極功能就是為了啟動內核。

  

  • 從上面可以知道最簡單的 uboot 編寫的步驟:

    • 初始化硬件:關看門狗、設置時鐘、設置 SDRAM、初始化 nandflash

    • 如果bootloadre 比較大,要把它重定位到 SDRAM

    • 把內核從 nandflash 讀到 SDRAM

    • 設置內核啟動參數

    • 跳轉執行內核

1.1.2 norflash 啟動

  norflash 可以像內存那樣讀,但是不能像內存那樣寫。

  

 

 

 1.1.3 nandflash 啟動

  

 

 

1.2 看門狗及時鐘設置

1.2.1 看門狗設置

2440 必須在啟動的時候關閉看門狗,不然就會隔一段時間重啟芯片。

看門狗定時器控制(WTCON)寄存器允許用戶使能或禁止看門狗定時器、從 4 個不同源選擇時鐘信號、使能或禁止中斷和使能或禁止看門狗定時器輸出。看門狗定時器是用于恢復 S3C2440 上電后若有故障重時新啟動;如果不希望控制器重新啟動,則應該禁止看門狗定時器。

如果用戶希望使用看門狗定時器作為普通定時器,則應使能中斷并且禁止看門狗定時器。

 

+ View Code

1.2.2 時鐘設置

S3C2440 中的時鐘控制邏輯可以產生必須的時鐘信號,包括 CPU 的 FCLK,AHB 總線外設的 HCLK 以及 APB 總線外設的 PCLK。S3C2440A 包含兩個鎖相環(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 總線模式改變為 異步總線模式。

前面已經說明,S3C2440A 包含兩個鎖相環(PLL):一個提供給 FCLK、HCLK 和 PCLK,另一個專用于 USB 模塊(48MHz)。

所以還必須要設置鎖相環,來給 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 變為 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       /** 執行 SDRAM 的初始化 */

19     mov    lr, ip


關鍵字:s3c24x0  bootloader  看門狗  時鐘設置 引用地址:一、編寫 s3c24x0 的 bootloader——介紹、看門狗及時鐘設置

上一篇:二、編寫 s3c24x0 的 bootloader——SDRAM 設置
下一篇:Linux移植之tag參數列表解析過程分析

推薦閱讀最新更新時間:2025-04-23 19:19

STM32F4設置系統時鐘源為內部HSI
最近項目需要在調試STM32時遇到外部晶振時鐘不穩定,查看RCC_CR寄存器的第17位始終處于0,表示外部晶振始終處于不穩定狀態: 當HSE開啟時,如果HSERDY一直處于0時,則芯片會啟動內部16Mhz晶振,但是此時PLL分頻無效,整個系統降到了16Mhz,無法忍受,立刻啟動內部時鐘源HSI為系統時鐘, 同時通過配置PLL,將系統時鐘配置到168Mhz, 由于系統設置時鐘源是在系統起來厚,main函數之前設置的,在SetSysClock(),首先需要自己設置HSI為系統時鐘源,代碼如下: /** * @brief Configures HSI as the System clock source **/ voi
[單片機]
STM32F4<font color='red'>設置</font>系統<font color='red'>時鐘</font>源為內部HSI
STM32F407時鐘設置
這里我們寫一個RCC配置函數來說明各函數的用途,其中HSE = 8MHz。 /** * @說明 配置STM32F407的時鐘系統 * @參數 無 * @返回 無 * @說明 void Clock_Config(void) 按如下表格配置時鐘 * *================================================================== * Supported STM32F4xx device revision | Rev A *------------------------------------------------------------------
[單片機]
LPC1788系統時鐘設置
LPC1788有3個獨立的振蕩器。他們是主振蕩器,內部RC振蕩器,RTC振蕩器。復位后,LPC1788將用內部的RC振蕩器運行,直到被軟件切換。這樣就能在沒有任何外部晶振的情況下運行。LPC1788的時鐘控制如圖1所示(英文手冊P35): 使用12M的晶振作為主振蕩器,它通過鎖相環PLL0來提高頻率提供CPU。由于芯片總是從內部的RC振蕩器開始工作,因此主振蕩器只會應軟件的請求而啟動。實現方法是設定SCS寄存器中的OSCEN位使能。主振蕩器提供一個狀態標志SCS寄存器的OSCSTAT位,這樣軟件就可以確定何時主振蕩器在運行穩定。此時,軟件可以控制切換到主振蕩器,使其作為時鐘源。在啟動以前,必須通過SCS的OSCRANG
[單片機]
LPC1788系統<font color='red'>時鐘</font>的<font color='red'>設置</font>
基于STM32F4和RT-Thread通用BootLoader使用經驗
硬件資源 正點原子stm32f407zgt6探索者開發板,片上Flash(ROM)大小為1024KB,RAM大小為192KB,板載一個SPI Flash W25Q128。 BootLoader配置 根據官方文檔: https://www.rt-thread.org/document/site/application-note/system/rtboot/an0028-rtboot/ (公號不支持外鏈接,請復制鏈接到瀏覽器打開) BootLoader的基本配置如下,加密壓縮的配置可以不選。 上述的分區表以及bootloader所占空間可以用下面的圖表示,偏移地址的概念為從0x08000000開始偏移。 flash空間的前12
[單片機]
基于STM32F4和RT-Thread通用<font color='red'>BootLoader</font>使用經驗
STM32看門狗WWDG和IWDG的區別是什么
STM32有2個看門狗:獨立看門狗和窗口看門狗。 獨立看門狗IWDG:獨立于系統之外,因為有獨立時鐘,所以不受系統影響的系統故障探測器,主要用于監視硬件錯誤。 窗口看門狗WWDG:系統內部的故障探測器,時鐘與系統相同。如果系統時鐘不走了,這個狗也就失去了作用了,主要用于監視軟件錯誤。 簡單的講,看門狗就是檢測系統故障的,如果因為系統故障而沒有及時喂狗,則引發復位重啟。 對于一般的獨立看門狗,程序可以在它產生復位前的任意時刻刷新看門狗,但是這樣有一個隱患,有可能程序跑亂了又跑回正常的地方,或者跑亂的程序正好執行了刷新看門狗操作,這樣的情況下一按的看門狗就檢測不出來故障了;但是如果使用窗口看門狗,程序員可以根據程序正常執行
[單片機]
STM32<font color='red'>看門狗</font>WWDG和IWDG的區別是什么
STM32獨立看門狗詳解
本文將介紹STM32的看門狗中的獨立看門狗,并通過實例來喂狗、體驗喂狗與不喂狗的區別。 ①STM32看門狗介紹之獨立看門狗 ②使用STM32CUBEMX來配置工程文件 ③代碼實現,按鍵按下喂狗、按鍵不按下不喂狗程序復位 ①STM32看門狗介紹之獨立看門狗 看門狗定時器本質上是一個計數器、給計數器一個數值,在程序 運行后計數器的值開始遞減,當計數器的值減到0是會將程序復位,若在減到0之前給計數器更新一下值“喂狗”則從最新的值開始遞減; 用途: 1、這樣做的好處就是程序跑飛、死機時,通過復位的方式使得程序又正常運行; 2、用于將系統從休眠或者空閑模式喚醒。 看門狗的種類: 獨立看門狗IWDG 特點:專用時鐘LSI、低功耗模式仍
[單片機]
STM32獨立<font color='red'>看門狗</font>詳解
多任務看門狗監控原理和實現
在嵌入式系統中為提高微型機系統的可靠性和安全性, 常用的方法就是使用“看門狗”。看門狗分硬件看門狗和軟件看門狗。硬件看門狗采用“看門狗”電路, 通過定時器, 對微型機任務即“喂狗”在運行時間上加以約束, 任務必須在最大指定時間范圍內完成, 否則重啟系統。軟件看門狗采用處理器內部定時器, 把任務的理論最大運行時間作為時間約束, 如果該任務超過了這個時間跨度, 則強制退出本次任務。上述看門狗采用的是單任務的順序機制, 容易實現。在多任務系統中情況稍為復雜, 如果每個任務都像單任務系統那樣,只要有一個任務正常工作并定期“喂狗”,看門狗定時器就不會溢出, 而只有所有任務都出現問題時, 定時器才會溢出。重慶師范大學葉幫利老師曾在Window
[單片機]
多任務<font color='red'>看門狗</font>監控原理和實現
STM8L自帶bootloader使用教程
筆者使用的單片機型號是:STM8L151C8T6,有64kFlash 本教程可能使用的文件下載地址: 官方固件及指導手冊:https://www.stmcu.com.cn/Index/search?search_keywords=UM0560 百度網盤鏈接:https://pan.baidu.com/s/1XyBWJIhHsuwWgwGNuHaULA 提取碼:9rgk CSDN下載鏈接(提供官方源地址,可免費下載):https://download.csdn.net/download/aaricyang/11199903 有讀者問軟件復位可不可以,答案是不行,軟件復位地址是0x8000,NRST引腳復位地址是0
[單片機]
STM8L自帶<font color='red'>bootloader</font>使用教程
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 镇安县| 喜德县| 广南县| 旬阳县| 明光市| 嘉定区| 东兰县| 容城县| 沂源县| 咸宁市| 双柏县| 桃园市| 崇阳县| 卫辉市| 青海省| 新乐市| 安达市| 宿迁市| 龙岩市| 临邑县| 宝丰县| 剑川县| 金沙县| 稻城县| 渝北区| 崇州市| 泉州市| 鄄城县| 石楼县| 武强县| 正定县| 离岛区| 拜城县| 拉萨市| 罗平县| 井研县| 芜湖县| 新巴尔虎右旗| 盐山县| 维西| 惠水县|