您的位置 首页 芯闻

对S3C2440特别功用寄存器地址的深化发掘

S3C2440集成了丰富了外设控制器(LCD控制器、USBDevice控制器、USBHost控制器、NANDFLASH控制器、I2C控制器、SPI控制器等)。要

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。下面这段话是摘自S3C2440芯片手册:

The S3C2440A holds 13 bus masters. They include DRAMrefresh controller, LCD_DMA, CAMIF DMA, DMA0,DMA1, DMA2, DMA3, USB_HOST_DMA,EXT_BUS_MASTER, Test interface controller (TIC) and ARM920T.

S3C2440A有13个主设备。当AHB总线上的主设备读写从设备时,宣布的地址经过AHB总线的译码器(经过内存映射表) 发生该地址所对应从设备的挑选信号,选中从设备;这样就可以对从设备进行读写啦。

图4 AHB译码器

图5 译码器的详细完结代码

译码器的内存映射表具有相对的独立性。假如AHB总线上的从设备发生了改变,有必要对内存映射表进行修改以保证每个地址都对应正确的从设备。下面是内存映射表的一个比如。

图6 内存映射表

使用了两种内存映射表:正常作业下的内存映射表和从头发动时的内存映射表。在正常作业时,微处理器的从设备包括内部RAM、外部RAM、外部ROM和AHB/APB桥;当体系从头发动时,体系的内存映射不包括内部RAM,而是将0x0000—0000至0x0000—03FF的内存地址段映射为nash。这个部分包括体系的发动和初始化代码。当体系发动完结初始化后,AMBA总线将发生一个Remap信号,送入译码器,将译码器的当时内存映射表改为正常作业状态下的内存映射表。

下面是S3C2440的地址映射

AHB Memory Map

Memory control 0x48000000 0x48000030

USB HOST 0x49000000 0x49000058

INTERRUPT 0x4a000000 0x4a00001c

DMA 0x4b000000 0x4b0000e0

CLOCK & POWER MANAGEMENT 0x4c000000 0x4c000018

*LCD CONTROLLER 0x4d000000 0x4d000060 0x4d000400(Palettestart address)

Nand Flash 0x4E000000 0x4E00003C

Camera Interface 0x4F000000 0x4F0000A0

APB Memory Map

UART0 0x50000000 0x50000028

UART1 0x50004000 0x50004028

UART2 0x50008000 0x50008028

PWM TIMER 0x51000000 0x51000040

USB DEVICE 0x52000140 0x5200026c

WATCH DOG TIMER 0x53000000 0x53000008

I%&&&&&% 0x54000000 0x54000010

IIS 0x55000000 0x55000010

AC97 0x5b000000 0x5b00001C

I/O PORT

    • A 0x560000000x56000004
    • B 0x560000040x56000018
    • C 0x560000200x56000028
    • D 0x560000300x56000038
    • E 0x560000400x56000048
    • F 0x560000500x56000058
    • G 0x560000600x56000068
    • H 0x560000700x56000078
    • J 0x560000d0 0x560000d8
    • other 0x56000080 0x560000cc

RTC 0x57000040 0x57000088

ADC 0x58000000 0x58000014

SPI 0x59000000 0x59000034

SD Interface 0x5a0000000x5a000040

总结:AHB总线上的译码器依据地址发生相应的片选信号,选中对应的设备。AHB总线上有一个AHB to APB 桥,桥是AHB总线的从设备,是APB总线上仅有的主设备。桥是一个协议转化器(AHB协议到APB协议的转化),它还要完结APB总线的地址译码作业。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/xinwen/262488.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部