s3c44b0寄存器
- 格式:ppt
- 大小:956.50 KB
- 文档页数:80
S3C44B0的初始化程序的理解S3C44B0的初始化程序就是初始化各个关键的寄存器,建立中断向量,然后转移到主函数去执行程序。
不过S3C44B0不支持地址映射,所以程序不COPY到RAM种执行。
S3C44B0初始化对我们广大初学者来说,比较难理解的是中断的处理和一些少见的操作符号,S3C44B0的中断子程序地址存放在初始化程序最后就是HandleADC # 4HandleRTC # 4HandleUTXD1 # 4HandleUTXD0 # 4HandleSIO # 4HandleIIC # 4HandleURXD1 # 4HandleURXD0 # 4这一段,它的其实地址是ISR_STARTADDRESS,个人写中断程序的时候,子程序地址被编译器连放在相应的位置。
初始化完成后,程序转通过BL Main 转到用户定义的主程序上执行。
以下是我个人的一些理解,有错误的地方希望大家指出来。
GBLL THUMBCODE[ {CONFIG} = 16THUMBCODE SETL {TRUE}CODE32|THUMBCODE SETL {FALSE}][ THUMBCODECODE32 ;for start-up code for Thumb mode]×××××××××××&ti mes;××××××××××× ;其中[=IF ,|=ELSE ,]= ENDIF, CODE32 表明一下操作都在ARM状态。
ARM开发板S3C44B0使用指南
一、关于开发板
S3C44B0是一款功能齐全的高性能ARM处理器开发板,采用ARM9内核,主频为80MHz,具备有256KBROM、32KBIRAM、128KBSRAM,其中
32KBIRAM处理器内部维持缓存,128KBSRAM处理器外部维持缓存。
它可以
简化开发过程,使用户易于掌握和熟悉该处理器的硬件结构,支持快速实
现功能。
二、开发板资源
1、主要开发板资源:
1.1、主处理器:ARM9处理器,主频80MHz。
1.2、存储器:256KBROM,32KBIRAM,128KBSRAM。
1.3、外设接口:UART,SPI,I2C,ADC,PWM,GPIO。
1.4、数字I/O端口:2个数字I/O口。
1.5、系统接口:JTAG系统接口支持调试,主频输入/输出(SIO),
复位输入/输出(RST),电源输入/输出(VIN),使能输入/输出(EN)。
1.6、外设接口:摄像头接口,LCD接口,USB,PS/2,SD卡接口,串
口打印机接口,外部存储器接口,外部中断接口,外部接口
(EINT0/EINT1/I2S)。
2、典型应用:
2.1、工业控制:采用S3C44B0的工业控制系统,可方便地实现复杂
的控制逻辑,实现连续的控制,获得快速、可靠的控制效果;
2.2、消息控制:采用S3C44B0的消息控制系统,可实现信息的广播、多用户聊天等;
2.3、办公设备:采用S3C44B0的设备。
S3C44B0中文数据手册目录17.IIS (2)17.1概述 (2)17.2传输模式 (2)17.3音频串行接口格式 (3)17.4采集频率和主设备时钟 (4)17.5 IIS串行接口专用寄存器 (4)17.IIS17.1概述很多的数字音频系统进入了音频消费市场,包括音频压缩唱片,数字音频磁带,数字声音处理器,和数字声音TV。
S3C44B0X的IIS(内部声音集成电路)总线接口可以用来实现对外部8/16位立体声音频数字信号编解码器电路的接口功能,从而实现迷你型放音机和其它便携式的应用。
它支持IIS总线数据格式和MSB-justified数据格式。
IIS总线接口为FIFO 操作提供DMA传输模式,代替中断模式,它可以同时传送或接收数据。
特性:——兼容IIS,MSB-justified格式数据——每通道8/16位数据——每通道16,32,48fs(采样频率)串行位时钟——256,384fs主设备采样时钟频率——可编程的分频器提供给主设备时钟和编解码时钟——供给发送和接收用的32字节(2×16)的FIFO——普通传输模式和DMA传输模式17.2传输模式包括普通传输模式,和DMA传输模式。
普通传输模式IIS控制寄存器中有一个FIFO准备好标志位用于FIFO发送和接收。
当FIFO准备好发送数据,如果发送FIFO中不为空,FIFO准备好标志将被设置为1。
如果发送FIFO为空,FIFO准备好标志将被置0,当接收FIFO装满,接收FIFO准备好标志位被设置为0,这些标志可以决定CPU读写FIFO的时机。
串行数据就通过这种方式被发送或者接收的。
DMA传输模式在这个模式中,IIS的发送和接收FIFO操作都由DMA控制器来完成,在发送和接收模式中由FIFO准备好标志来自动产生DMA服务请求。
17.3音频串行接口格式IIS总线格式IIS总线具有4根信号线,包括串行数据输入(IISDI),串行数据输出(IISDO),左/右声道选择(IISLRCK),和串行数据时钟(IISCLK);产生IISLRCK和IISCLK的是主设备。
ARM7之S3C44B0X的电路设计初体验:关于其存储器控制器2009年04月19日星期日03:18 P.M.1.S3C44B0X地址空间划分其分为8个BANK,每一BANK最多有32MB空间。
为什么?S3C44B0X的地址总线范围为ADDR【24:0】,那就是说一共有25根地址线咯,这里的寻址范围就达到了32MB 空间,再加上S3C它自身有的片选信号线NGCS[7:0],那就是一共32MB*8=256MB空间。
2.S3C44B0X存储控制器功能大小端模式的选择:ENDIAN INPUT。
我们实验箱为小端模式。
Bank0总线宽度设置:主要还是取决于OM0和OM1,在我们实验箱的电路设计中已经固定好是1:0模式,即BANK0的总线宽度为16位。
本实验箱中的SDRAM的地址范围是存在于第7个BANK中。
3. S3C44B0X存储控制器寄存器BWSCON寄存器:决定每个BANK的总线宽度,决定每个BANK的等待时间,以及小端和大端模式选择。
BANKCON[5:0]寄存器:主要功能为时钟等待的选择。
需要特别注意BANKCON6和BANKCON7,他们的16.15位决定了存储器类型,REFRESH寄存器:决定是否启动自动重刷以及重刷时钟。
BANKSIZE寄存器:决定BANK6/7的大小。
MRSRB寄存器:决定SDRAM的模式。
4.S3C44B0X存储控制器寄存器初始化其对存储器的初始化时在文件“44binit.s”文件中,这是不是就是传说中的BOOTLOADER呢?探究中?看了看它对存储器初始化这一部分代码:设置寄存器#****************************************************#* Set memory control registers *#****************************************************ldr r0,=SMRDATAldmia r0,{r1-r13}ldr r0,=0x01c80000 /* BWSCON Address */stmia r0,{r1-r13}设置每个BANK的使用#bank0 16bit BOOT ROM#bank1 NandFlash(8bit)/IDE/USB/rtl8019as/LCD#bank2 No use#bank3 Keyboard#bank4 No use#bank5 No use#bank6 16bit SDRAM#bank7 No use.ifeq BUSWIDTH-16.long 0x11110102 /* Bank0=16bit BootRom(AT29C010A*2) :0x0 */.else.long 0x22222220 /* Bank0=OM[1:0], Bank1~Bank7=32bit */.endif.long((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+ (B0_PMC)) /* GCS0 */.long((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+ (B1_PMC)) /* GCS1 */.long((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+ (B2_PMC)) /* GCS2 */.long((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+ (B3_PMC)) /* GCS3 */.long((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+ (B4_PMC)) /* GCS4 */.long((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+ (B5_PMC)) /* GCS5 */.ifc "DRAM",BDRAMTYPE.long ((B6_MT<<15)+(B6_Trcd<<4)+(B6_Tcas<<3)+(B6_Tcp<<2)+(B6_CAN)) /* GCS6 check the MT value in parameter.a */.long ((B7_MT<<15)+(B7_Trcd<<4)+(B7_Tcas<<3)+(B7_Tcp<<2)+(B7_CAN)) /* GCS7 */.else.long ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN)) /* GCS6 */.long ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN)) /* GCS7 */.endif.long ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT) /* REFRESH RFEN=1, TREFMD=0, trp=3clk, trc=5clk, tchr=3clk,count=1019 */ .long 0x10 /* SCLK power down mode, BANKSIZE 32M/32M */.long 0x20 /* MRSR6 CL=2clk */.long 0x20 /* MRSR7虽然说的那么简单,认真看看上面的汇编还是不懂它每一行是什么意思。
S3C44B0 试验说明S3C44B0 学习板附带了以下的例程,这样大家可以快速的掌握S3C44B0 这款ARM 芯片以及如何开发基于ARM 的嵌入式程序。
本光盘中自带的例程都是在ADS1.2 集成开发环境下完成的。
ADS1.2 是Code Warriar 公司开发的一款ARM 嵌入式程序集成开发环境。
在使用光盘中的试验例程之前我们需要做以下的准备工作安装ADS1.2 安装调试代理将程序从光盘拷贝到硬盘中,并去掉文件的只读属性。
一、安装ADS1.2将安装包其解压后,双击setup.exe 开始安装,在拷贝文件结束后将出现ARM License Wizard界面,如下图,在这里需要安装license 文件。
点击下一步,选择Install License,点击下一步。
在这里选择安装目录下的Crack 下的license.dat 文件然后点击下一步完成认证。
认证过程也可以在软件安装完毕后选择License Installation Wizard 来重新认证。
二、安装H-JTAG 调试代理将光盘:\工具\JTAG 工具\H-JTAG+V0.7.0.rar 目录拷贝到硬盘,然后解压缩,安装解压目录下的可执行文件。
从开始菜单选择AXD Debugger,如图进入调试环境后,选择如下选项进入代理选择对话框,如下:选择Add按钮,找到H-JTAG的安装目录,添加调试代理的DLL库,如下选择确定后,选择Configure,出现如下界面,表示H-JTAG代理安装正确并作为缺省选择。
确定后,按OK键,如果JTAG调试器和开发板连接正确,会出现如下界面到这一部H-JTAG配置正确,可以直接从编译环境直接进入调试环境调试,如下图:三、试验在做以下试验的时候请注意,如果你的Memory 控制部分没有正常的初始化,在AXD 调入编译好的images 后,我们执行run 指令,程序会跑飞。
其原因就是因为Memory 控制没有正常的初始化,这是后我们有两种方法解决。
本文由我司收集整编,推荐下载,如有疑问,请与我司联系S3C44B0存储器的BANK设计和控制2008/01/21 336 S3C44B0有 6 个ROM/RAM空间和 2 个ROM/SRAM/FP/EDO/SDRAM空间,其中ROM0是专用的boot ROM。
S3C44B0的系统管理器通过S/W可以控制每个空间的访问时间和数据线宽度。
所有空间的访问时间可以通过各自的BANKCON0~7寄存器来设置。
bank6和bank7空间的类型必须是一样的(例如:rom/rom,sdram/sdram)。
每个空间的数据宽度是通过BWSCON控制寄存器来设置的。
BANK0是专用的启动BANK,因此,BANK0是通过H/W和OM[1:0]来控制的。
当系统复位后,可以通过LDMIA和STMIA命令来设置BWSCON,BANCON0-7,REFRESH,BANKSIZ,MRSRB6/7系统寄存器。
下面的描述的就是特殊寄存器配置的代码: LDR r0, =SMRDATA LDMIA r0, {r1-r13} LDR r0, =0x01c80000 ;BWSCON Address STMIA r0, {r1-r13} . . . . . . . . . . . . SMRDATA DCD 0x22221210 ;BWSCON DCD 0x00000600 ;GCS0 DCD 0x00000700 ;GCS1 DCD 0x00000700 ;GCS2 DCD 0x00000700 ;GCS3 DCD 0x00000700 ;GCS4 DCD 0x00000700 ;GCS5; DCD 0x0001002a ;GCS6 EDO DRAM(Trcd=3,Tcas=2,Tcp=1,CAN=10); DCD 0x0001002a ;GCS7 EDO DRAM(Trcd=3,Tcas=2,Tcp=1,CAN=10) DCD 0x00018000 ;GCS6 SDRAM(Trcd=2,SCAN=8) DCD 0x00018000 ;GCS7 SDRAM(Trcd=2,SCAN=8) DCD 0x00a60000+953 ;Refresh(REFEN=1,TREFMD=0,Trp=3.5(D)or 4(SD), ;Trc=5(S), Tchr=3(D),Ref CNT) DCD 0x0 ;Bank size, 32MB/32MB DCD 0x20 ;MRSR 6(CL=2) DCD 0x20 ;MRSR 7(CL=2) tips:感谢大家的阅读,本文由我司收集整编。