第三章 ARM9芯片S3C2410片上资源
s3c2410ARM9启动代码分析
ADS下C语言的入口方式和ROM镜像文件的生成这部分介绍下ADS下如何生成可以运行的ROM镜像文件,我们知道当程序下载到flash中运行的时候,对于RW、ZI数据就存在着两个环境,一个load环境,一个是exec环境,有时候由于速度的需要RO数据也要重新加载,那么对RO数据也是有两个环境。
编译器产生ROM镜像文件时候,这三块数据的存放依次为RO、RW、ZI,并且地址空间时连续的。
但是到了运行的时候,RW数据必须被拷贝到SDRAM(SRAM)中以支持读写,这就是我们所谓的运行环境。
那么就要有一段代码去完成这个任务,在本章中我们介绍如何生成这段代码。
玩过2410的朋友都知道2410初始化代码中有一段搬运RW和ZI初始化的代码,没错,它确实能够在一定程度上完成上面所说的任务,只要我们在生成二进制可执行代码的时候在编译器链接项的地方填写正确的RO&RW地址,(比如RO = 0, RW = 0x30000000), 那么将程序下到NOR flash的零地址并从nor flash启动,启动代码会将RW&ZI数据弄到0x30000000,程序就能跑起来了。
但是各位有没有想过,怎么把RO代码弄到SDRAM中(有时候这是必须的,比方后面我将提到用nor flash的bootloader烧写nor flash)?如果直接设RO=0x30000000,那么这段代码下载到0地址肯定跑不起来,除非是ROPI,这个要求就高了。
这里我们有必要从介绍ADS 中规定的C语言入口开始,ADS中从初始化汇编代码跳到main函数有两种方式,main和__main:1,在__main入口的模式下,汇编代码的指令为b __main, 编译器在跳转到main之前还要作一系列的工作,这其中就包括对运行环境的初始化,在<ADS COMPILE GUIDE>中提到:copies nonroot(RO&RW) execution regions from load addr to exec addr, and Zeros ZI region. 借助编译器,我们就可以定义更为复杂的运行环境,这里要用到scatter文件(.scf),比如我们要的目标运行环境是:将启动代码以外的所有代码都拷贝到SDRAM的初始地址中运行,比且把RW段设在0x30800000,那么对应的scf文件如下:FLASH 0x0 0x200000{EXEC1 0x0 0x200000{2410init.o(Init, +First)__main.o(+RO) ; copy code* (Region$$Table) ; RO/RW addresses to copy* (ZISection$$Table) ; ZI addresses to zero}EXEC2 0x30000000 0x00800000{*(+RO)}SDRAM 0x30800000 0x00800000{*(+RW,+ZI)}};Sections named Region$$Table and ZISection$$Table which contain the addresses of the code/data to be copied.当然,在这种模式下,有些入口函数必须自己重定义,比如__user_initial_stackheap,具体参见ADS文档。
第3章ARM9芯片S3C2410片上资源
除用户模式以外,其余的所有6种模式特权模式。 每种工作模式下均有其附加的某些寄存器,因此,
即使有异常情况发生,异常模式下的处理程序也不 至于破坏用户模式的数据及状态。
ARM9处理器有两种工作状态:ARM状态和Thumb 状态。
3.0.3 I/O端口的访问方式
I/O端口的访问有两种方式,一种是端口地址 和存储器统一编址,即存储器映射方式;另一 种是I/O端口地址与存储器分开独立编址,即 I/O映射方式(独立编址)。
ARM9体系结构使用存储器映射方式实现I/O端 口的访问。由于存储器映射方式是为每个I/O 端口分配特定的存储器地址,当从这些地址读 出或向这些地址写入时,实际上就完成了I/O 功能。即从存储器映射的I/O加载即是输入, 而向存储器映射的I/O地址存储即是输出。
3.1.3 S3C2410处理器管理系统
支持大端(Big Endian)/小端(Little Endian)模式; 地址空间为每个内存块128MB(一共1CB),每个内存
块支持8/16/32位数据总线编程; 8个内存块,6个用于ROM、SRAM和其它,2个用于
ROM/SRAM/SDRAM; 1个起始地址和大小可编程的内存块 (Bank7); 7个起始地址固定的内存块(Bank0~Bank6); 所有内存块可编程寻址周期; 支持SDRAM自动刷新模式; 支持多种类型ROM启动,包括NOR/NAND Flash、
③ 分支指令:ARM9和ARM7的分支指令周期相同,没 有采用分支预测。
2.ARM9体系结构的五级流水线
(1)取指:从存储器中取出指令放入指令流水线 (fetch)。
ARM9S3C2410x中文datasheet资料(绝对完整版)03S3c2410中断异常处理概述
使用中断的步骤:1、当发生中断IRQ时,CPU进入“中断模式”,这时使用“中断模式”下的堆栈;当发生快中断FIQ时,CPU进入“快中断模式”,这时使用“快中断模式”下的堆栈。
所以在使用中断前,先设置好相应模式下的堆栈。
2、对于“Request sources(without sub -register)”中的中断,将INTSUBMSK寄存器中相应位设为03、将INTMSK寄存器中相应位设为04、确定使用此的方式:是FIQ还是IRQ。
a.如果是FIQ,则在INTMOD寄存器设置相应位为1b.如果是IRQ,则在RIORITY寄存器中设置优先级使用中断的步骤:5、准备好中断处理函数,a.中断向量:在中断向量设置好当FIQ或IRQ被触发时的跳转函数,IRQ、FIQ的中断向量地址分别为0x00000018、0x0000001c b.对于IRQ,在跳转函数中读取INTPND寄存器或INTOFFSET 寄存器的值来确定中断源,然后调用具体的处理函数c.对于FIQ,因为只有一个中断可以设为FIQ,无须判断中断源d.中断处理函数进入和返回6、设置CPSR寄存器中的F-bit(对于FIQ)或I-bit(对于IRQ)为0,开中断s3c2410 中断异常处理在进入正题之前,我想先把ARM920T的异常向量表(Exception Vectors)做一个简短的介绍。
:]ARM920T的异常向量表有两种存放方式,一种是低端存放(从0x00000000处开始存放),另一种是高端存放(从0xfff000000处开始存放)。
关于为什么要分两种方式进行存放这点我将在介绍MMU的文章中进行说明,本文采用低端模式。
ARM920T能处理有8个异常,他们分别是:Reset,Undefined instruction,Software Interrupt,Abort (prefetch),Abort (data),Reserved,IRQ,FIQ下面是某个采用低端模式的系统源码片段:/****************************************************** ***********************_start:b Handle_Resetb HandleUndefb HandleSWIb HandlePrefetchAbortb HandleDataAbortb HandleNotUsedb HandleIRQb HandleFIQ…..…..other codes…...******************************************************* **********************/上面这部分片段一般出现在一个名叫“head.s”的汇编文件的里,“b Handle_Reset”这条语句就是系统上电之后运行的第一条语句。
arm9 s3c2410实验环境搭建
实验1:arm9 s3c2410实验环境搭建实验目的:学会ADS 软件的安装,为后续试验提供软环境实验内容:1 安装ADS 软件软件安装结束,可以进行第二部分ADS 的应用练习。
第二部分:ADS应用1、通过桌面快捷方式或者开始菜单来打开软件了。
2.在ADS1.2的开发环境中,新建一个工程,此步骤有二种方法,一是点击工具栏中NEW 按钮,二是在FILE菜单中选择NEW菜单:在工程中为用户提供了七种工程模板,1.ARM Executable Image:用于由ARM指令的代码生成一个ELF格式的可执行映射文件2.ARM Object Library:用于由ARM指令的代码生成一个armar格式的目标文件库;3.Emety project:用于创建一个不包含任何库或源文件的工程;4.Makefile Importer Wizard:用于将Visual C的nmake或GUN make 文件转入到CodeWarrior IDE工程文件中;5.Thumb ARM Interworking Image:用于由ARM指令和Thumb指令的混合代码生成一个可执行的ELF映射文件;6.Thumb Executalbe Image:用于由Thumb指令的代码生成一个ELF格式的可执行代码;7.Thumb Object Library:用于由Thumb指令的代码生成一个armar格式的目标文件库;我选择了第一种工程模板,在Project Name中填写工程的名字,这里我填写了Holle,点击Location的文本框的SET按钮,我们可选择工程的保存路径,完成后点击确定,就会产生一个一个Holle.MCP文件的窗口。
Holle.MCP窗口有三个标签选项,分别是Files、Link Order、Targets,默认的是Files 标签,在此标签下点击右键就可添加源文件到工程中,如果没有源文件,我们可新建一个源文件,我们点击File菜单下的NEW菜单,就可以生成一个新的源文件的窗口,点击File标签,并在File name下面的文本框中填写文件名,我填写的是Holle.s(s为汇编程序的后缀)。
第3章 嵌入式硬件 S3C2410A
ARM920T采用了MMU,AMBA总线和Harvard高速缓存体系结构, 该结构具有独立的16KB指令Cache和16KB数据Cache,每个Cache 都是由8字长的行组成的。 S3C2410A提供一组完整的系统外围设备接口,从而大大减少了整 个系统的成本,省去了为系统配置额外器件的开销。S3C2410A集 成的片上功能包括: ● 内核电压1.8V/2.0V,存储器电压3.3V,外部I/O电压3.3V; ● 具有16KB的I-Cache和16KB的D-Cache以及MMU; ● 外部存储器控制器(SDRAM控制和片选逻辑); ● LCD控制器(最大支持4K彩色STN和256K彩色TFT)提供1通道 LCD专用DMA; ● 4通道DMA并有外部请求引脚端; ● 3通道UART(IrDAl.0,16字节Tx FIFO和16字节Rx FIFO)/2通 道SPI; ● 1通道多主设I2C总线和1通道I2S总线控制器; ● 版本1.0SD主接口和2.11兼容版MMC卡协议;
● 2个USB主设接口/1个USB从设接口(版本1.1); ● 4通道PWM定时器和1通道内部定时器; ● 看门狗定时器; ● 117位通用I/O口和24通道外部中断源; ● 电源控制模式有正常、慢速、空闲和电源关断4种模式; ● 8通道10位ADC和触摸屏接口; ● 具有日历功能的RTC; ● 使用PLL的片上时钟发生器。 S3C2410A的内部结构方框图如图3.1.1所示。
串行,每通道8/16位数据传输; ● 发送和接收(Tx/Rx)具备128字节FIFO(64字节发送FIFO+ 64字节接收FIFO); ● 支持I2S格式和MSB-justified数据格式。 18.USB主设备 ● 2个USB主设接口; ● 遵从OHCI Revl.0标准; ● 兼容USB Verl.1标准。 19.USB从设备 ● 1个USB从设接口; ● 具备5个USB设备端口; ● 兼容USB Verl.1标准。 20.SD主机接口 ● 兼容SD存储卡协议1.0版; ● 兼容SDIO卡协议1.0版;
ucos在s3c2410上运行过程整体剖析之基础知识- ARM9芯片知识
ucos 在s3c2410 上运行过程整体剖析之基础知识- ARM9芯片知识阅读这些内容前,希望你对计算机有了一点简单的概念,最好学习过计算机组成原理并知道一些最基本的概念。
如果你学习过51系列的单片机并且利用51系列的单片机做过一些开发,那看这些内容就很简单了。
如果你没这些知识也没关系,以我的学习经历来看,可以给大家一个学习计算机组成原理的建议。
你可以先大致学习一下计算机组成原理,学完之后一般会对计算机有一个大体的了解,计算机专业在开设这门课时一般会安排计算机组成原理实验,这个实验大家要好好去做,这样会打消你对计算机很神秘的认识。
有了这些基础之后,建议大家去学51系列的单片机,在这个小型计算机上做一些开发,这样你就会对计算机组成原理有了更真实更深刻的认识。
学习了51系列单片机后,你也对计算机语言有了进一步的认识。
好了,下面就介绍和运行UCOS有关的ARM9芯片知识。
一般一个单片机或者说是片上系统,我们要理解的重要知识点有:寄存器,和程序运行有最直接关系的东东。
主要包括CPU内部的通用寄存器和用于控制程序运行的控制寄存器,特殊功能寄存器。
存储体系,主要内容是如何存储程序和数据以及如何组织内存。
芯片的运行模式,这主要是从硬件上为程序运行提供不同的运行环境。
中断,异常系统,这是一个很重要的概念,中断是人和计算机进行交互的重要手段。
片上资源的使用,比如定时器,串口等等资源。
这些资源一般是可编程的,所谓可编程就是可以通过特殊概念寄存器对他们的工作方式和初始化环境进行设置。
当然这些硬件资源的使用不属于ARM9芯片本身的知识,对CPU来说。
S3C2440芯片内部结构
S3C2440芯片内部结构首先是ARM920T内核,它是S3C2440芯片的核心部分,负责执行指令和进行数据计算。
ARM920T是ARM9系列的一款高性能内核,具有5级流水线结构,支持高级数据处理指令和多种存储器接口。
它的内置缓存和分支预测机制可以提高执行效率,充分发挥芯片的计算能力。
其次是外设控制器,S3C2440芯片内置了多个外设控制器,包括UART串口、SPI、I2C总线、USB等接口,以及LCD控制器、触摸屏控制器、MMC/SD卡控制器等功能模块。
这些控制器可以与各种外部设备进行通信和数据交互,为系统提供了丰富的接口和功能。
存储器接口是S3C2440芯片与外部存储器之间的桥梁,它可以连接闪存、SDRAM、NAND Flash等不同类型的存储器。
通过存储器接口,芯片可以读写存储器中的数据,并进行程序的存储和执行。
S3C2440提供了高速的存储器控制器和多种存储器接口,可以满足不同应用场景的需求。
时钟和电源管理模块是S3C2440芯片的核心组成部分,它负责提供系统时钟和电源管理功能。
时钟管理模块可以根据需要设置系统的工作频率,提供外设时钟和CPU时钟等。
电源管理模块可以对芯片的功耗进行控制,实现节能和延长电池寿命。
除了上述主要模块外,S3C2440芯片还具有其他辅助功能,如中断管理、DMA控制、中央处理器监视器等。
中断管理模块可以对外部中断信号进行处理,实现系统的实时响应。
DMA控制模块可以实现高速数据传输,减轻CPU负担。
中央处理器监视器模块可以对系统进行监控和调试,提高系统的可靠性和稳定性。
总结起来,S3C2440芯片的内部结构包括ARM920T内核、外设控制器、存储器接口、时钟和电源管理等模块。
这些模块相互协作,共同完成系统的计算、通信、存储和控制等任务。
有了这些丰富的硬件资源和功能,S3C2440芯片可以满足不同应用领域的需求,为嵌入式系统的开发和应用提供了良好的支持。
第三部分ARM芯片S3C2410简介及硬件系统结构设计
8通道10位ADC;
实时时钟及看门狗定时器等。
两个USB主/一个USB从;
9
S3C2410A特性
内核:1.8V I/O及存储器 : 3.3V
电源管理模式: Normal、Slow、Idle、Power off 272-FBGA
10
本节提要
1 S3C2410A概述 2 3 4 最小系统
13
存储器系统的层次结构
寄存器 高速缓存 Cache
主存储器 SDRAM 本地存储器 Flash、 ROM、磁盘
0
时 钟 周 期
1—10 50—100 20000000
网络存储器 Flash、 ROM、磁盘
14
一个实验箱的存储系统
8M NAND FLASH
32M NOR FLASH
64M SDRAM
AHB
AHB主要用于高性能模块(如CPU、DMA和DSP等)之间的连接。 APB APB主要用于低带宽的周边外设之间的连接,例如UART等
6
总线和总线桥
CPU
低速设备
高速总线
桥
低速总线
存储器
高速设备
数据
低速设备
7
S3C2410A的内部结构
8
S3C2410A片上资源
ARM920T核、工作频率203MHz; 16KB 数据Cache, 16KB 指令Cache,MMU,外部存储器控制器; LCD控制器(支持黑白、灰度、Color STN、TFT屏),触摸屏接口; NAND FLASH控制器,SD/MMC接口支持,4个DMA通道; 3通道UART、1个多主I2C总线控制器、1个IIS总线控制器; 4通道PWM定时器及一个内部定时器; 117个通用I/O口; 24个外部中断源;
ARM9 S3C2410开发板简介
Page 1 of 13S3C2410开发板数据手册强烈推荐这款2410开发板 超值提供ARM9 2410开发板+全新三星原装3.5三星TFT 带驱动板和触摸 1400元 LCD 单卖 550元 全新三星原装3.5三星TFT 带驱动板和触摸 GPRS 模块单卖 400元LCD 简介:生产商: SamSung 型 号: L TV350 成 色: 全新原装特 性: 26万色TFT 、分辨率320*240、带触摸屏、LED 背光 接 口: RGB/CPU 总线可选, 直接接S3C2410 附 件: 电压驱动板,2.0mm 双排插引出接口ARM9 2410硬件平台综述ARM9 2410平台由核心板(Core-Board)和底板(Bottom-Board)以及3.5寸LCD(带触摸)组成。
如下图所示:板子背面示意图:● ARM2410 的主要特点1、Core-Board(核心板)CPU: Samsung的S3C2410x处理器,工作频率达203MHz;FLASH ROM: 64MB Nand Flash,可选配为各种容量8位的NANDFLASH;NOR FLASH(SST39VF1601)提供2MBNor Flash;SDRAM : 64M (Samsung K4S561632H-Tc75) 2片4Banks×4Mbits ×16bits SDRAMPC100/PC133兼容;RTC 实时时钟: 外接32.768KHz的晶振,带有备份电池,可保持时钟NAND FLASH --NOR FLASH 启动选择开关两个I/O 口连接两个LED,方便用户调试自己的程序2、Bottom-Board (底板)LCD 接口: 支持各种TFT LCD(50PIN2.0排针)触摸屏接口:可接四线电阻式触摸屏;串口:两个RS232串口;1路TTL电平接口GPRS/GSM接口: SIMCOM公司GSM/GPRS模块USB Device接口: 1个DEVICE接口(USB 1.1协议)SPI 接口IIC总线接口ADC模数转换接口: 4路10位AD两个USB HOST: 1个USB Host A型接口(USB1.1协议),1个USBHost B型接口(USB1.1协议);SD/MMC 接口: 支持SD卡、同时兼容MMC卡;JTAG接口:标准ARM 20针JTAG&&Wiggle&&ICE 接口;IIS :采用UDA1341TS IIS 接口(立体声输出,MIC 输入),外部中断接口: 8路外部中断输入网卡:提供10M Ethernet芯片CS8900A,采用集成隔离变压器的RJ45接口,并带有Page 2 of 13Page 3 of 13ACT 、 LINK 指示灯蜂鸣器: 带驱动电路。
chapt03----ARM9 S3C2410处理器及实验系统概述
ARM微处理器的选型原则2 ARM微处理器的选型原则2 微处理器的选型原则
--系统的工作频率 --系统的工作频率
系统的工作频率在很大程度上决定了ARM微处理器 的处理能力。ARM7系列微处理器的典型处理速度为 0.9MIPS/MHz,ARM9系列微处理器的典型处理速度为 1 . 1 MIPS/MHz, 常 见 的 ARM9 的 系 统 主 时 钟 频 率 为 100MHz-233MHz ARM10 100MHz-233MHz,ARM10最高可以达到700MHz。不 700MHz 同芯片对时钟的处理不同,有的芯片只需要一个主时 钟频率,有的芯片内部时钟控制器可以分别为ARM核 和USB、UART、DSP、音频等功能部件提供不同频率 的时钟。 后面我们所讨论的S3C2410时钟频率为200MHz以上, 若更换成兼容的S3C2440时钟频率最高可达到400MHz。
• • • •
教学实验系统组成2 教学实验系统组成
• • • • •
SD卡主机(MMC)接口 SMC卡(Smart media card)接口 JTAG 接口(MULTI-ICE兼容) 实时时钟(RTC)单元 IIC总线接口(板载IIC接口的EEPROM 24C16 和IIC接口的数码管 驱动ZLG7290) • ADC接口,芯片内部集成8通道10bit ADC,板载输入有:
• CPU S3C2410X:16-/32-bit RISC 微处理器,通过200P SODIMM •
ARM9S3C2410时钟和功率管理
ARM9S3C2410时钟和功率管理概述时钟与功率管理模块由三部分构成:时钟操纵,USB操纵与功率操纵。
S3C2410A的时钟操纵逻辑能够产生系统所需要的时钟,包含CPU的FCLK,AHB总线接口的HCLK,与APB总线接口的PCLK。
S3C2410A有两个PLL,一个用于FCLK,HCLK,PCLK,另一个用于USB模块(48MHZ)。
时钟操纵逻辑能够由软件操纵不将PLL连接到各接口模块以降低处理器时钟频率,从而降低功耗。
S3C2410A有各类针对不一致任务提供的最佳功率管理策略,功率管理模块能够使系统工作在如下4种模式:正常模式,低速模式,空闲模式与掉电模式。
正常模式:功率管理模块向CPU与所有外设提供时钟。
这种模式下,当所有外设都开启时,系统功耗将达到最大。
用户能够通过软件操纵各类外设的开关。
比如,假如不需要定时器,用户能够将定时器时钟断开以降低功耗。
低速模式:没有PLL的模式。
与正常模式不一致,低速模式直接使用外部时钟(XTIpll或者者EXTCLK)作为FCLK,这种模式下,功耗仅由外部时钟决定。
空闲模式:功率管理模块仅关掉FCLK,而继续提供时钟给其他外设。
空闲模式能够减少由于CPU核心产生的功耗。
任何中断请求都能够将CPU从中断模式唤醒。
掉电模式:功率管理模块断开内部电源。
因此CPU与除唤醒逻辑单元以外的外设都不可能产生功耗。
要执行掉电模式需要有两个独立的电源,其中一个给唤醒逻辑单元供电,另一个给包含CPU在内的其他模块供电。
在掉电模式下,第二个电源将被关掉。
掉电模式能够由外部中断EINT[15:0]或者RTC唤醒。
功能描述时钟结构图7-1描述了时钟架构的方块图。
主时钟源由一个外部晶振或者者外部时钟产生。
时钟发生器包含连接到一个外部晶振的振荡器与两个PLL(MPLL与UPLL)用于产生系统所需的高频时钟。
时钟源选择表7-1描述了模式操纵引脚(OM3与OM2)与选择时钟源之间的对应关系。
嵌入式课程设计基于ARM9的S3C2410微处理器的设计
基于ARM9的S3C2410微处理器的设计摘要嵌入式系统(Embedded System)是一种包括硬件和软件的完整的计算机系统,它的定义是:“嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可剪裁,适用于应用系统对功能、可靠性、成本、体积和功耗有严格要求的专用计算机系统。
”嵌入式系统所用的计算机是嵌入到被控对象中的专用微处理器,但是功能比通用计算机专门化,具有通用计算机所不能具备的针对某个方面特别设计的、合适的运算速度、高可靠性和较低比较成本的专用计算机系统。
嵌入式系统是以应用为中心,与计算机技术为基础,软硬件可配置,对功能、可靠性、成本、体积、功耗有严格约束的专用系统,所用的计算机称为嵌入式计算机。
传统的计算机分类是按照计算机的处理字长、体系结构、运算速度、结构规模、适用领域进行的,如通常所说的大型计算机、中型机、小型机和微型计算机,并以此标准来组织学科和产业分工。
关键词:嵌入式系统;嵌入式浏览器;微处理器;ARM9目录1嵌入式简介 (1)1.1嵌入式系统的概念 (1)1.2嵌入式系统的架构 (1)1.3嵌入式系统的发展历程及现状 (1)1.4嵌入式操作系统的特点 (2)1.5嵌入式系统的应用领域 (2)1.6嵌入式系统在机顶盒中的应用 (3)1.7嵌入式系统的发展趋势 (3)2 ARM处理器 (4)2.1ARM处理器特点 (4)2.2ARM体系结构的扩充 (4)3 RAM和ROM总线外接图 (5)4 ARM I/O结构 (5)5 S3C2410A提供一组完整的系统外围设备 (6)6 S3C2410的I/O口工作原理 (8)总结 (9)致谢 (10)参考文献 (11)1嵌入式简介1.1嵌入式系统的概念嵌入式系统(Embedded System)是一种包括硬件和软件的完整的计算机系统,它的定义是:“嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可剪裁,适用于应用系统对功能、可靠性、成本、体积和功耗有严格要求的专用计算机系统。
基于ARM9芯片S3C2410a的GPRS数据终端设计
随着科技的发展,人类生活节奏的加快,信息在生活中的地位日益重要,如何方便快捷并及时有效地获取信息成为现代信息处理中的关键问题。
在这种需求下,中国移动GPRS业务及时地投人运营,无线数据通信的应用越来越广泛。
相对原来GSM的拨号方式的电路交换数据传送方式.GPRS是分组交换技术,具有实时在线、按量计费、快捷登录,高速传输、自如切换的优点。
GPRS采用分组交换的技术,数据传输速率最高理论值能达171.2 kb/s。
电路交换数据业务速率为9.6 kb/s,因此GPRS在传输速度方面具有无与伦比的优势。
更由于其本身就是一个分组数据网,支持TCP/IP协议,无需经过PSTN等网络的转接,可直接与Internet 网络连接,因此GPRS在信息处理方面的优势是不可比拟的。
为了满足GPRS数据终端的低成本、小型化和移动灵活等要求,采用ARM9芯片S3c2410a对GPRS数据终端进行控制。
本文在S3C2410a中移植的是Linux 操作系统,通过Linux操作系统可方便快捷地进行数据的传输和网络终端的控制;同时改善了系统性能,提高了系统可靠性,并使系统的扩展和开发性能进一步得到提高。
1 GPRS技术1.1 GPRS工作原理GPRS的英文全称是General Packet Radio Service,译作“通用分组无线服务”,它是利用“包交换”(Packet-Switched)的概念发展起来的一套无线传输方式。
所谓“包交换”就是将Data封装成许多独立的封包,再将这些封包一一传送出去,形式上有点类似邮局中的寄包裹。
其作用在于只有当有资料需要传送时才会占用频宽,而且可以以传输的资料量计价,这对广大用户来说是较合理的计费方式,因为像Interact这类的数据传输大多数的时间频宽是闲置的。
GPRS网络是基于现有的GSM网络来实现的,在现有的GSM网络中需增加一些节点,如GGSN(Gateway GPRS Supporting Node,GPBS网关支持节点)和SGS(Serving GSN,GPRS服务支持节点),GSN是GPRS网络中最重要的网络节点。
基于S3C2410的系统硬件设计
基于S3C2410的系统硬件设计概述:S3C2410是一款由三星公司设计的嵌入式系统芯片,采用ARM9架构,主频为200MHz。
在嵌入式系统中,它被广泛应用于各种控制和通信设备。
在本文中,我们将介绍基于S3C2410的系统的硬件设计。
硬件设计:1.处理器:S3C2410芯片是嵌入式系统的核心,它具有强大的计算和控制能力。
在系统设计中,需要考虑处理器的供电和散热问题,以确保其稳定运行。
2.存储器:S3C2410芯片具有32KB的指令缓存和16KB的数据缓存,但通常还需要外部存储器来扩展系统的存储容量。
可以选择使用FLASH存储器作为程序和数据的存储介质。
3.外设接口:S3C2410芯片支持多种外设接口,包括UART、SPI、I2C、USB等。
在硬件设计中,需要根据应用需求选择合适的外设接口,并设计相应的接口电路。
4.显示屏:S3C2410芯片具有LCD控制器,可以驱动液晶显示屏。
在设计中,需要选择合适的显示屏,并设计相应的电路来连接S3C2410芯片和显示屏。
5.输入设备:系统通常需要一些输入设备,如按键、触摸屏等。
在硬件设计中,需要为这些输入设备设计相应的电路,并与S3C2410芯片进行连接。
6.时钟电路:S3C2410芯片需要外部时钟源来提供时钟信号。
在设计中,需要选择合适的时钟电路,并确保时钟信号的稳定性和准确性。
7.电源管理:S3C2410芯片需要稳定的供电电源。
在硬件设计中,需要设计相应的电源管理电路,以确保系统的正常运行。
8.其他外部接口:根据具体应用需求,可能还需要设计一些其他外设接口,如以太网接口、音频接口等。
总结:基于S3C2410的系统硬件设计需要考虑处理器、存储器、外设接口、显示屏、输入设备、时钟电路、电源管理等方面。
在设计过程中,需要充分考虑应用需求,选择合适的硬件组件,并设计相应的电路来连接这些组件。
通过合理的硬件设计,可以确保系统的稳定运行,并满足用户的需求。
第三章_ARM9_S3C2410片上资源.ppt
OM[1:0]=00 未用 SFR区 未用 SROM/SDRAM (nGCS7) SROM/SDRAM (nGCS6) SROM (nGCS5) SROM (nGCS4) SROM (nGCS3) SROM (nGCS2) SROM (nGCS1) 内部启动 SRAM(4KB) [使用NAND Flash作为ROM] 2MB/4MB/8MB/16MB /32MB/64MB/128MB 2MB/4MB/8MB/16MB /32MB/64MB/128MB 128MB 128MB 128MB 128MB 128MB 1GB HADDR[29:0] 可访问区域
3.1.4 S3C2410处理器存储器映射
S3C2410的存储空间映射如图3-2所示:
3.1.5 S3C2410处理器时钟和电源管理
1.时钟 S3C2410的主时钟由外部晶振或者外部时钟提供,选择后可 以产生3种时钟信号,分别是CPU使用的FCLK、AHB总线 使用的HCLK和APB总线使用的FCKL。时钟管理模块同时 拥有两个锁相环,一个称为MPLL,拥于FCLK、HCLK和 PCLK;另一个称为UPLL, 用于USB设备。 时钟源选择 对时钟的选择是通过S3C2410引脚上OM[3:2]实现的,JU具 体如表3-1所示。
// Memory control #define rBWSCON (*(volatile unsigned *)0x48000000) //Bus width & wait status #define rBANKCON0 (*(volatile unsigned *)0x48000004) //Boot ROM control #define rBANKCON1 (*(volatile unsigned *)0x48000008) //BANK1 control #define rBANKCON2 (*(volatile unsigned *)0x4800000c) //BANK2 cControl #define rBANKCON3 (*(volatile unsigned *)0x48000010) //BANK3 control #define rBANKCON4 (*(volatile unsigned *)0x48000014) //BANK4 control #define rBANKCON5 (*(volatile unsigned *)0x48000018) //BANK5 control #define rBANKCON6 (*(volatile unsigned *)0x4800001c) //BANK6 control
基于某ARM9芯片S3C2410异常中断程序设计
基于ARM9芯片S3C2410异常中断程序设计[日期:2008-1-16] 来源:微计算机信息作者:书瑞于明剑飞彦莽[字体:大中小]摘要:验证的代码详细分析了基于ARM嵌入式系统的异常处理流程。
然后阐明关键字“-irq”的作用,设计出中断处理函数。
最后,通过设置中断控制寄存器,设计外部中断EINT3的初始化程序,并给出主程序流程图。
实践证明程序运行稳定可靠。
关键字:S3C2410 异常–irq 中断引言计算机体系结构中,异常或者中断是处理系统中突发事件的一种机制,几乎所有的处理器都提供这种机制。
异常主要是从处理器被动接受的角度出发的一种描述,指意外操作引起的异常。
而中断则带有向处理器主动申请的意味。
但这两种情况具有一定的共性,都是请求处理器打断正常的程序执行流程,进入特定程序的一种机制。
若无特别说明,对“异常”和“中断”都不作严格的区分。
本文结合经过实际验证的代码对ARM9中断处理流程进行分析,并设计出基于S3C2410芯片的外部中断处理程序。
1.异常中断响应和返回系统运行时,异常可能会随时发生。
当一个异常出现以后,ARM微处理器会执行以下几步操作:1) 将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。
2) 将CPSR复制到相应的SPSR中。
3) 根据异常类型,强制设置CPSR的运行模式位。
4) 强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。
这些工作是由ARM 核完成的,不需要用户程序参与。
异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:1) 将连接寄存器LR的值减去相应的偏移量后送到PC中。
2) 将SPSR复制回CPSR中。
3) 若在进入异常处理时设置了中断禁止位,要在此清除。
这些工作必须由用户在中断处理函数中实现。
为保证在ARM处理器发生异常时不至于处于未知状态,在应用程序的设计中,首先要进行异常处理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
表3-1 时钟源选择
S3C2410引脚的OM[3:2]=00时,晶体为 MPLL CLK和UPLL CLK提供时钟源; OM[3:2]=01时,晶体为MPLL CLK提供时钟 源,EXTCLK为UPLL CLK提供时钟源; OM[32]=10时,EXTCLK为MPLL CLK提供 时钟源,晶体为UPLL CLK提供时钟源; OM[3:2]=11时,EXTCLK为MPLL CLK和 UPLL CLK提供时钟。
构
时钟发生器 (MPLL)
系统总线桥&DMA
框
图
UART0,1,2
I²C
USB设备
I²S
A
SDI/MMC
P
B
GPIO
看门狗
总
线
RTC
总线控制
ADC
SPI0,1
Timer/PWM 0~3,4
3.1.1 AMBA、AHB、APB 总线特点
AMBA规范主要包括AHB(Advanced High performance Bus)系统总线和 APB(Advanced Peripheral Bus)外围 总线。
(16KB)
处理协处 理器接口
写缓冲
AMBA 总线
I/F
WriteBack WBPA[31:0] PA Tag RAM
3-1 S3C2410X
LCD 控制
LCDSB主控制
H
中断控制
B
ExtMaster
总
线
电源管理
结
NAND控制
Memory CONT. SRAM/NOR/SDRAM
3.1.2 S3C2410处理器体系结构
. ARM920T核,16位/32位RISC结构和ARM 精简指令集;
. ARM MMU,支持Windows CE, Linux等操 作系统;
. 指令Cache、数据Cache、写缓冲; . 支持ARM调试结构,片上ICE支持JTAG调
试方式
(4KB)
SROM/SDRAM (nGCS7)
SROM/SDRAM (nGCS6)
SROM
0x28000000 0x20000000 0x18000000 0x10000000
(nGCS5)
SROM (nGCS4)
SROM (nGCS3)
SROM (nGCS2)
SROM
0x08000000 0x00000000
AMBA 2.0规范包括四个部分:AHB、ASB、 APB和Test Methodology。AHB的相互连 接采用了传统的带有主模块和从模块的共享 总线,接口与互连功能分离,这对芯片上模 块之间的互连具有重要意义。AMBA已不仅 是一种总线,更是一种带有接口模块的互连 体系。下面将简要介绍比较重要的AHB和 APB总线。
ARM920T
指令 MMU
IPA[31:0]
IV²A[31:1]
C13
JTAG
ARM9TDMI CPU核
(Internal Embedded ICE)
指令 Cache (16KB)
ID[31:0]
CP15 DD[31:0]
DV²A[31:0]
C13
DVA[31:0]
图
数据
指令 Cache
MMU
DPI[31:0]
第三章 ARM9芯片S3C2410 片上资源
主要内容:
3.1 S3C2410处理器介绍 3.2 S3C2410处理器片上资源的
定义和使用 3.3 参考软件项目2410test.mcp
3.1 S3C2410处理器介绍
本节介绍S3C2410处理器的体系结构、特点 和应用领域,AMBA、AHB、APB总线特点 和应用,存储器存储空间映射等。
S3C2410微处理器是一款由Samsung公司为手持 设备设计的低功耗、高度集成的基于ARM920T核
的微处理器。为了降低系统总成本和减少外围器件, 这款芯片中还集成了下列部件:16KB指令Cache、 16KB数据Cache、MMU、外部存储器控制器、 LCD控制器(STN和TFT)、NAND Flash控制器、4 个DMA通道、3个UART通道、1个I2C总线控制器、 1个I2S总线控制器,以及4个PWM定时器和一个内 部定时器、通用I/O口、实时时钟、8通道10位ADC 和触摸屏接口、USB主、USB从、SD/MMC卡接口 等。现在它广泛应用于PDA、移动通讯、路由器、 工业控制等领域,其内部结构如图3-1所示。
3.1.3 S3C2410处理器管理系统
. 支持大端(Big Endian)/小端(Little Endian)模式; . 地址空间为每个内存块128MB(一共1CB),每个
内存块支持8/16/32位数据总线编程; . 8个内存块,6个用于ROM、SRAM和其它,2个
用于ROM/SRAM/SDRAM; . 1个起始地址和大小可编程的内存块 (Bank7); . 7个起始地址固定的内存块(Bank0~Bank6); . 所有内存块可编程寻址周期; . 支持SDRAM自动刷新模式; . 支持多种类型ROM启动,包括NOR/NAND Flash、
[使用NAND Flash作为ROM]
3.1.5 S3C2410处理器时钟和电源管 理
1.时钟 S3C2410的主时钟由外部晶振或者外部时钟
提供,选择后可以提供3种时钟信号, 分别是CPU使用的FCLK、AHB总线使用的
HCLK和APB总线使用的PCLK。 2. 时钟源选择 对时钟源的选择是通过OM[1:2]实现的,如
EEPROM等。
3.1.4 S3C2410处理器存储器映射
S3C2410的存储空间映射如图3-2所示。
0xffffffff
OM[1:0]=01,10 未用
0x60000000
0x48000000 0x40000fff
SFR区 BootSRAM
0x40000000 0x38000000 0x30000000
SROM (nGCS2)
SROM (nGCS1)
2MB/4MB/8MB/16MB /32MB/64MB/128MB 2MB/4MB/8MB/16MB /32MB/64MB/128MB
128MB
128MB 128MB 128MB
1GB HADDR[29:0]
可访问区域
128MB
内部启动 SRAM(4KB)
(nGCS1)
SROM (nGCS0)
[不使用NAND Flash作为ROM]
OM[1:0]=00 未用 SFR区
图3-2 S3C2410存储区地址映射
未用
SROM/SDRAM (nGCS7)
SROM/SDRAM (nGCS6)
SROM (nGCS5)
SROM (nGCS4)
SROM (nGCS3)