S3C2440時鐘體系

? ? S3C2440在默認情況下,整個系統全靠一個12MHz的外部晶振提供頻率來工作運行的,也就是說CPU、內存、UART、ADC等所有需要用到時鐘頻率的硬件都工作在12MHz下,但是通過查閱芯片手冊我們知道CPU時鐘最高可為400MHZ,那么怎么設置時鐘讓芯片工作在更高的時鐘頻率下呢?首先我們來看一下S3C2440的時鐘框架。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ?由圖可知S3C2440可以通過XTIpll、XTOpll引腳外接晶振(通常為12MHZ),也可以通過EXTCLK外接時鐘,我們一般選擇外接晶振。我們接入的時鐘才12M,而CPU時鐘卻可以高達400M,鎖相環(PLL)就是用來倍頻時鐘的,2440有MPLL和UPLL這兩個時鐘鎖相環,MPLL倍頻后的時鐘主要用于CPU和各種外設,而UPLL倍頻后的時鐘主要用于USB。我們可以通過OM[3:2]來控制這兩個鎖相環的時鐘源,因為通常我們是外接晶振,所以把OM3和OM2這兩個引腳接到GND

? ? ?MPLL倍頻后的時鐘為FCLK,而FCLK經過分頻又得到HCLK(掛載一些高速外設)和PCLK(掛載低速外設),我們可以把MDIV、PDIV、SDIV分別配置為92(0X5C),1,1,也就是把(92<<12)|(1<<4)|(1<<0)寫到0X4C000004地址得到400M的FCLK。

時鐘配置

?補充關于下圖的知識,一般我們系統上電后電壓不穩定,我們可通過外圍電路實現把nRESET拉低一段時間后再拉高,此時系統開始工作,FCLK還只是外接的晶振的頻率,OM[3:2]引腳電平鎖存后,PLL開始工作,經過一段鎖存時間后,FCLK變為穩定的倍頻時鐘用于系統工作,鎖存時間可通過設置LOCKTIME來改變,默認是設置為0XFFFFFFFF,一般我們不對其進行修改。

?

? ? 假如我們想通過400M的FCLK得到100M的HCLK和50M的PCLK,查閱下表我們知道可以往0X4C000014寫入0x5。

? ? ? ?但是這里我們需要注意一點:如果HDIV設置為非0,CPU的總線模式要進行改變,默認情況下FCLK = HCLK,CPU工作在fast bus mode快速總線模式下,HDIV設置為非0后, FCLK與HCLK不再相等,要將CPU改為asynchronous bus mod異步總線模式,可以通過下面的嵌入匯編代碼實現

        mrc p15,0,r0,c1,c0,0orr r0,r0,#0xc0000000   //R1_nF:OR:R1_iAmcr p15,0,r0,c1,c0,0

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/384550.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/384550.shtml
英文地址,請注明出處:http://en.pswp.cn/news/384550.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

關于MCU、CPU擴展SDRAM的一個小知識

像上圖這種硬件電路圖上的16個數據位和我們在初始化SDRAM的時候設置的16位數據位寬是指我們讀寫SDRAM的時候可以同時讀寫16個數據位&#xff0c;數據線越多肯定越快&#xff0c;但是數據線也不可能無限增加&#xff0c;我們在程序里是可以讀寫8位&#xff0c;16位&#xff0c;3…

S3C2440擴展SDRAM

本文主要目的是記錄一下S3C2440擴展SDRAM的一些知識&#xff0c;方便以后查閱。 通過查閱手冊我們知道&#xff0c;2440有8個可以用來擴展內存的BANK&#xff0c;其中第6和第7還可用來擴展SDRAM 下面我們來看一下2440擴展SDRAM需要設置哪些寄存器。 一、BWSCON寄存器 該寄存器…

匯編語言的相對跳轉和絕對跳轉以及反匯編代碼解析

上圖第一行的b1 main為相對跳轉&#xff0c;即跳轉到pcoffset,其中pc為當前pc值&#xff0c;offset可以理解為偏移地址&#xff0c;也就是根據當前所在地址加上偏移地址實現跳轉&#xff0c;為相對跳轉。 我們來看看它的反匯編代碼 上圖清除完bss區后使用b1指令跳轉到30000668…

韋東山嵌入式第一期14課第004節_und異常模示程序示例_P筆記

本節課的第一個程序韋老師是想讓大家見識一下未定義異常&#xff0c;而第二個程序是對第一個程序進行改進&#xff0c;防止在某些條件下執行不了&#xff0c;下面就來講一下第2個程序改進了哪些地方并且有什么用。 程序在此路徑中&#xff1a;源碼文檔圖片\源碼\源碼_20180321…

關于NOR FLASH地址左右移的問題

問題引入&#xff1a;不知道你會不會有這樣的疑問&#xff1a;為什么在發送解鎖命令時&#xff0c;我們不用右移一位&#xff0c;而發送扇區地址時卻要右移一位&#xff08;nor_cmd函數內部已經左移一位&#xff09;&#xff0c;這里先補充說明一下說明是cpu角度和nor角度&…

在linux下利用ls命令進行模糊查找

如上圖&#xff0c;我們當前路徑下有三個文件&#xff0c;分別為helloworld.c以及helloworld和1.c&#xff0c;直接輸入命令ls則顯示所有文件&#xff0c;我們可以利用ls 加*的方向進行模糊查找。 輸入ls 目錄名 形式的命令行&#xff0c;則是對該目錄名下的文件全部進行顯示&a…

Makefile常見符號意思

Makefile里有許許多多的符號&#xff0c;對于新手而言如果沒有經常使用&#xff0c;就很容易忘記&#xff0c;所以我把常見符號的意義寫下&#xff0c;方便日后忘記查詢。本文章會持續更新... 1.$&#xff1a;代表目標&#xff1b;$^代表所有依賴&#xff0c;$^代表第一個依賴。…

Linux下串口通信詳解

https://blog.csdn.net/u010783226/article/details/73369097

fstat、stat和lstat 區別

nt fstat(int filedes, struct stat *buf); int stat(const char *path, struct stat *buf); int lstat(const char *path, struct stat *buf); 一眼就能看出來fstat的第一個參數是和另外兩個不一樣的&#xff0c;fstat區別于另外兩個系統調用的地方在于&#xff0c;fstat系…

Linux的幀緩沖設備

Linux的幀緩沖設備 幀緩沖&#xff08;framebuffer&#xff09;是 Linux 為顯示設備提供的一個接口&#xff0c;把顯存抽象后的一種設備&#xff0c;他允許上層應用程序在圖形模式下直接對顯示緩沖區進行讀寫操作。這種操作是抽象的&#xff0c;統一的。用戶不必關心物理顯存的…

Linux下沒有包含頭文件(不知是哪個)導致編譯無法通過的解決心得

最近寫程序的時候編譯出錯了&#xff0c;提示信息為&#xff1a;invalid use of undefined type fb_var_screeninfo。顯示根據英文知道是沒有定義 fb_var_screeninfo這個類型&#xff0c;明顯是缺少了某個頭文件&#xff0c;但是缺少哪個頭文件以及有什么又快又好的解決方法呢&…

gcc編譯缺少數學庫

Linux下編譯出現以下提示可以在編譯的后面加上-lm&#xff0c;例如&#xff0c;arm-none-linux-gnueabi-gcc -o example1 example1.c -lm&#xff0c;意思就是添加數學庫的意思&#xff0c;編譯就能通過了 example1.c:(.text0x3e8): undefined reference to cos example1.c:(.…

Linux編譯程序時加-I指定頭文件位置

Linux下編譯出現以下錯誤&#xff0c;錯誤的原因是在/usr/local/arm/arm-2009q3/bin/../arm-none-linux-gnueabi/libc/usr/include/freetype/config/下找不到ftheader.h&#xff0c;而我到該目錄下看&#xff0c;發現路徑是這樣的rootubuntu:/usr/local/arm/arm-2009q3/arm-non…

樹莓派遠程監控的實現

原文&#xff1a;https://blog.csdn.net/ayz123456/article/details/79252923 http://shumeipai.nxez.com/2016/09/01/raspberry-pi-motion-cameras-for-remote-monitoring.html https://blog.csdn.net/wto882dim/article/details/82195001 https://blog.csdn.net/qq_3950082…

公網訪問樹莓派

公網訪問樹莓派控制小車 上篇已經介紹了小車在局域網中的控制方法&#xff0c;比較簡單&#xff0c;既然是遠程遙控那就要能夠進行公網訪問&#xff0c;使得你的小車可以在任何有網絡的地方都能訪問到&#xff0c;并且后續還會加上攝像頭&#xff0c;進行實時監控&#xff0c;想…

關于對象的引用作為參數,可以直接訪問私有成員的問題

#include using namespace std; class CPoint { public:CPoint(int xx, int yy){x xx;y yy;}CPoint(const CPoint &p){x p.x;y p.y;} private:int x, y; };首先&#xff0c;我們來看一個例子&#xff0c;在CPoint這個類中定義了兩個構造函數&#xff0c;第一個為普通的…

僵死進程的產生以及解決辦法

本文參考自&#xff1a;https://baike.baidu.com/item/%E5%83%B5%E5%B0%B8%E8%BF%9B%E7%A8%8B/1036577?fraladdin 一個進程在調用exit命令結束自己的生命的時候&#xff0c;其實它并沒有真正的被銷毀&#xff0c;而是留下一個稱為僵尸進程&#xff08;Zombie&#xff09;的數據…

樹莓派第一次開機自動連接WIFI(不用顯示屏方法)

當我們把樹莓派系統鏡像燒錄到SD卡之后&#xff0c;我們在windows看到的TF卡變成了空間很小的名為boot的盤&#xff0c;我們在此目錄下新建一個名為wpa_supplicant.conf空白文件&#xff0c;并在其中加入以下代碼: countryGB ctrl_interfaceDIR/var/run/wpa_supplicant GROUPn…

樹莓派設置靜態IP的好處與壞處

網上后很多資源教初學者如何設置靜態IP&#xff0c;但我覺得設置靜態IP也有不好的地方&#xff1a; 首先&#xff0c;好處就是樹莓派的IP不會變&#xff0c;例如你設置了無線連接方式的靜態IP為192.168.1.110&#xff0c;那么無論你連接哪個路由器&#xff0c;或者連接同一個路…