歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 對S3C2440特殊功能寄存器地址的深入挖掘

對S3C2440特殊功能寄存器地址的深入挖掘

日期:2017/3/1 11:08:41   编辑:Linux編程
S3C2440集成了豐富了外設控制器(LCD控制器、USB Device控制器、USB Host控制器、NAND FLASH控制器、I2C控制器、SPI控制器等)。要控制這些外設就要設置相應控制器的寄存器以產生相應的驅動時序。學習S3C2440,主要是如何配置寄存器。

下面是S3C2440特殊功能寄存器地址:

#define rBANKCON0 (*(volatileunsigned *)0x48000004) //Boot ROM control

#define rBANKCON1 (*(volatileunsigned *)0x48000008) //BANK1 control

#define rBANKCON2 (*(volatileunsigned *)0x4800000c) //BANK2 cControl

……

在學習的過程我一直在想這些地址為什麼是這樣的,想起來一次就在網上找資料,但每次都沒有得到很好的結果。最近在學習AMBA(AdvancedMicrocontroller Bus Architecture)的時候終於解開這個謎團了,哈哈!!!

先看下面這個圖,看完後估計就知道了一半啦。

圖1 內存映射

下面就來詳細分析。

圖2 S3C2440結構框圖

先介紹一下AMBA。AMBA(Advanced Micro-Controller Bus Architecture)是由ARM Limited公司推出的On-Chip Bus片上總線規范,是目前芯片總線的主流標准。一開始AMBA 1.0只有ASB和APB,為了節省面積,這時候的總線協定都是采用3態的總線,到後來的AMBA 2.0版本,新增了AHB總線,共定義了3組總線:高性能總線(AdvancedHigh Performance Bus,AHB)、系統總線(AdvancedSystem Bus,ASB)和外設總線(Advanced PeripheralBus,APB)。

圖3 典型的基於AMBA總線的系統

關於AMBA總線的更多的內容可上網查看,中文的資料都有很多。由圖2可知AHB總線上掛載了LCD控制器、中斷控制器、USB Host控制器、電源管理、NAND控制器、Camera控制器、存儲器控制器以及AHB to APB橋和DMA控制器。APB總線上掛載了UART控制器、I2C控制器、USB Device控制器、I3S控制器SDI/MMC控制器、GPIO、Watchdog/定時器、RTC、ADC、SPI、AC97。

Copyright © Linux教程網 All Rights Reserved