当前位置:文档之家› 从零开始学arm9

从零开始学arm9

引言快速入门

HFRK2410开发板是基于三星公司S3C2410X 高性能ARM 处理器的嵌入开发平台,旨在为用户提供完整的嵌入式解决方案。

S3C2410由ARM920T 内核(16-/32-bit RISC CPU)、独立的16KB 指令和16KB 数据cache、MMU 虚拟内存管理单元、LCD 控制器(支持STN 和TFT)、NAND Flash bootloader、系统管理单元(SDRAM 控制器等)、3 通道UART、4 通道DMA、4 通道具备PWM 功能的定时器、IO 口、RTC(实时时钟)、8 通道10bit 精度ADC 和触摸屏控制器、IIC 总线接口、IIS 数字音频总线接口、USB 主机、USB 设备、SD/MMC 卡控制器、2 通道SPI 和PLL 数字锁相环组成。

HFRK2410嵌入开发平台是针对S3C2410的一款高性能开发平台,硬件软件都可根据自己的需求定制,具有高性能、低功耗、接口丰富等特点,因此你可以在此基础上开发自己的产品;而又因为开发板布局合理,接口排列整齐,适合直接按装使用,所以HFRK2410开发板同样也可以作为您的最终产品的一部分,可以直接把开发板整合到您的产品中。

第一节硬件概述

HFRK2410硬件如下:

CPU:采用SAMSUNG S3C2410 ARM920t CPU, 集成有串口,SD卡控制器,USB Host 和USB device控制器,LCD控制器, Nand Flash控制器等

存储器:

1. 64M SDRAM

3. 64M Nand Flash 用于存放应用程序

4. 32M Intel StrataFlash 32M(默认不焊接)

5. SD卡

一个VGA(直接连接普通PC显示器)、一个TFT输出接口(可以选购3.5寸的夏普LCD)。 CS8900以太网控制器

IDE接口,直接连接硬盘

一个USB 主机接口

一个USB 设备接口(可以切换成第二主机,需要更改驱动)

一个总线扩展接口(包含16位数据,12位地址,两个片选,可以通过CPLD控制)。

2个串口输出

一个MIC输入接口

一个LINE音频输入接口。

一个耳机输出接口。

2个CPU可控LED等。

AD转换输入接口

SPI和IIC接口

JTAG调试接口

CPLD编程接口

扩展GPRS和CDMA专用接口(包含3.3V电平的串口,SPI口,IO引脚,电源等)

5个按键

- 1 -

- 2 -

第二节 刚拿到开发板,首先怎么做?

刚刚从我们这里拿到hfrk2410开发板,因该如何入手呢?首先检查配件是否齐全;我们的标准配件是:

a) 开发板一块 b) 5V 电源一个 c) 串口线一根 d) 并口线一根 e) USB 线一个 f)

交叉网线一根 g) CPLD 下载线一个 h) ARM_JTAG 下载线一个 i)

光盘2张

如果您的配件很全,(如果不全,赶快和我们联系啊)。首先连接电源(注意:请使用我们标配的电源,或者使用高质量的5V 开关电源,内正外负,可不要接错啊,否则开发板要冒烟了。)接下来怎么办呢?看你是否购置了我们配套的LCD ,如果有LCD ,就可以直接打开电源了,如果没有LCD ,您可以连接普通的PC 显示器到开发板的VGA 接口,不过您要注意如果你的显示器很老,开发板也可能不支持,最少你要保证你的显示器能在800X600的模式下,支持

75HZ 的刷新频率。

不管用什么显示方式,最终在显示器都会启动https://www.doczj.com/doc/4b5852648.html, 或者是Linux 。不过有一点需点需注意,我们的boot 同时程序支持LCD 和VGA 显示,如果使用LCD 显示需要在启动的时候按下UP (EINT0)键(要等到LCD 显示出蓝屏红字的时候,再放开这个按键),否则默认启动支持的是VGA

显示。您做得怎么样了?您看到显示的效果了吗?假如你已经启动了

- 3 -

https://www.doczj.com/doc/4b5852648.html, 或者linux !您的第一步就成功了!

第二节我该如何运行和烧写程序呢?

上面我们只是看到了开发板的运行效果,那么我们自己编译的程序因该如何在开发板上运行呢?wince 和linux 又如何烧写到开发板中呢?我们下面一步步解决这些问题!(我们在此假设你有一定的开发经验,懂得如何使用ARM 的编译器ADS1.2或者比较老的SDT2.5,如果你还不会,那因该看看书,或者在网上搜集点资料学一下!当然,我们在以后的章节中还会介绍这方面的内容)

首先我们要接上电源(您也可以连接LCD 或者显示器),把串口0和您PC 的串口用我们标配的串口线连接起来(我们的串口线是2-3转换的,市场上有两种标准的串口线,一种是一对一的,一种是

2-3转换的)!

现在打开串口调试软件dnw.exe (这个软件在光盘的“disk1\工具软件\dnw.exe ”),首先设置这个软件。选择[configuration options],如图:

- 4 -

屏幕显示如下;其中Band Rate 我们选择115200,com port 根据您的实际情况选择,在您的PC 机上您使用的那个串口,您就选择串口几(一般PC 有两个串口,即COM1或者COM2,如果您又按装了USB 转串口等设备,就有可能出现串口3或者4即COM3,COM4)。根据你的连接选择好

COM port 后,点击“OK”按钮。

- 5 -

接下来我们选择[serial port->Connect],如下图:

到此,我们设置完毕。

现在我们打开开发板的电源,在DNW 的窗口中将输出启动信息,如下图所示:

在打开电源的同时,按住开发板UP (EINT0)按键,将支持LCD 显示,否则支持VGA 显示,这时候屏幕显示蓝屏和红字即“北京恒丰锐科”。如果不做任何操作,几秒钟后,系统将自动引导操作系统。

我们是如何通过串口下载程序的呢?又如何烧写到flash 中的呢?下面我们来说明这2个过程。

我们现在PC键盘上输入1,屏幕显示如下:

选择Serial Port

Transmit,如下图所示:

接下来需要我们选择要下载的文件,在此假设下载的是boot程序,当然也可以是其它的.bin文件,然后点击打开按钮,如图:

- 6 -

这时将出现下载的进度提示,如下图所示:

下载完成以后将提示是否运行着个程序,输入Y,将运行着个程序,输入N,则不运行,退到开始的界面。如下图所示:

- 7 -

在此我们输入N,程序将退到如下界面:

现在我们把我们下载的程序烧写到falsh中,选择输入2,如下图所示,我们下载的这个文件因为是boot程序所以要烧写到0分区的位置(另外,如果是linux内核烧写到1,跟文件系统烧写到2,wince烧写到5)。

- 8 -

我们在此选择输入0,将显示

我们输入Y,我们下载的程序就被烧写到了falsh中,按复位,我们就重新更新了我们的boot程序。

- 9 -

我们用串口下载,如果文件很大,下载比较慢,我们可以选择USB下载,我们现在在以上界面的基础上输入0,显示如下图:

然后再连接usb线,(我们的配件中有USB线,注意USB线连接的是开发板的USB设备端口,PC端连接的是计算机的USB主机端口)。这时计算机会提示发现新硬件,我们安装驱动(驱动位于光盘的DISK2\USB驱动\bootusb目录下),安装完成以后,将显示如图:

- 10 -

然后我们就可以下载文件了,下载以前设置一下USB下载文件的地址,如图:

设置完成后,点击usb port- Transmit选择要下载的文件(下载地址于您的文件设置的有关系,如果你下载不运行您的程序,可以选择以上的地址)。

- 11 -

接下来的和串口下载基本相同,不多说了!

- 12 -

- 13 -

第三节我刚刚焊接完的产品,又因该如何烧写程序呢?

我们刚刚焊接完成的开发板因该如果烧写程序呢?这要借助我们的JTAG

接口和JTAG 下载线了

我们通过并口线把计算机的并口和JTAG 下载线连接,然后把JTAG 下载线和开发板的JTAG 接口连接,接下来我们安装驱动(DISK1\Flash 烧写工具\驱动\安装驱动.exe )然后执行DISK1\Flash 烧写工具“c.bat ”,接下来的怎么做呢?看一下\DISK1\Flash 烧写工具\演示.exe 吧!怎么样?很简单吧!您可能要问了“DISK1\Flash 烧写工具\sjf2410”目录下是什么呢?这就是我们这个烧写工具的源代码,即文件sjf2410.exe 的源代码,有兴趣可以看一看,如果您想编译它,可以用VC6.0,还要安装windows 的DDK 。如果您没有这些工具,你就不用管它了(补充一句,我们PC 端的驱动,都需要使用windows 的DDK 编译)。(在此您要注意的是:您的JTAG 要设置成wiggler 模式,否则程序会告诉你找不到CPU 的ID 号)。

到此,你应该对开发板的使用有个基本的了解了吧?!关于boot 的其它选项我相信你看一下字面意思就明白了!只有字面的意思,不要想太多!开发板就这些了吗,复杂的在后面,在这里只是一个感性认识!!!

我们的手册主要包括4部分 第一部分: 主要讲述硬件部分,讲述硬件的设计原理 第二部分: 主要是脱离操作系统的一些实验程序,和功能操作 第三步分: 主要是讲述怎样建立linux 的操作平台 第四部分: 主要是讲怎样建立WINCE 的操作平台

我们的手册编写可能需要一段时间,如果您是我们的早期用户,您的光盘里可能只有手册的一部分,那怎么办呢?您可以随时关注我们的网站,我们的资料将在网上同步更新。如果您是个嵌入式的开发高手,哈哈

!我们的手册就是一箩筐废话了,你不用耽误精力看了!!!

第一部分硬件原理分析

第一章概述

Samsung公司推出的16/32位RISC处理器S3C2410A,为手持设备和一般类型应用提供了低价格、低功耗、高性能小型微控制器的解决方案。为了降低整个系统的成本,S3C2410A 提供了以下丰富的内部设备:分开的16KB的指令Cache和16KB数据Cache,MMU虚拟存储器管理,LCD控制器(支持STN&TFT),支持NAND Flash系统引导,系统管理器(片选逻辑和SDRAM控制器),3通道UART,4通道DMA,4通道PWM定时器,I/O端口,RTC,8通道10位ADC和触摸屏接口,IIC-BUS接口,llC-BUS接口,USB主机,USB设备,SD主卡&MMC卡接口,2通道的SPI以及内部PLL时钟倍频器。

S3C2410A采用了ARM920T内核,0.18urn工艺的CMOS标准宏单元和存储器单元。它的低功耗、精简和出色的全静态设计特别适用于对成本和功耗敏感的应用.同样它还采用了一种叫做Advanced Microcontroller Bus Architecture(AMBA)新型总线结构。

S3C2410A的显著特性是它的CPU核心,是一个由Advanced RISC Machines(ARM)

有限公司设计的16/32位ARM920T RISC处理器。ARM920T实现了MMU,AMBA BUS和Harvard高速缓冲体系结构。这一结构具有独立的16KB指令Cache和16KB数据Cache,每个都是由8字长的行(Line)构成。

通过提供一系列完整的系统外围设备,S3C2410A大大减少了整个系统的成本,消除了

为系统配置额外器件的需要。S3C2410A中集成的以下片上功能:

.1.8V/2.0V内核供电,3.3V存储器供电,3.3外部I/O供电;

.具备16KB的I-Cache和16KB的D-Cachh/MMU:

.外部存储控制器(SDRAM控制和片选逻辑)

.LCD控制器(最大支持4K色STN和256K色TFT)提供1通道LCD专用DMA。

.4通追DMA并有外部请求引脚。

.3通道UART(IRDA1.0,16字节TxFIFO,和16字节RxFIFO)/2通逍SPI

.1通道多主IICHUS/l通道IIS-BUS控制器。

.兼容SD主接口协议1.0版和MC卡协议2.11兼容版。

.2端口 USB主机/1端口USB设备(1.1版)

.4通道PWM定时器和1通逍内部定时器

.看门狗定时器

.117个通用I/O口和24通道外部中断源。

.功耗控制模式:具有普通,慢速,空闲和掉电模式。

.8通道10比特ADC和触摸屏接口

.具有日历功能的RTC

.具有PLL片上时钟发生器

体系结构

1.为手持设备和通用嵌入式应用提供片上集成系统解决方案

2.16/32位RISC体系结构和ARM920T内核强大的指令集

3.加强的ARM体系结构 MMU用于支持 WnCE,EPOC 32和 Linux等

4.指令高速存储缓冲器(I-Cache),数据高速存储缓冲器(D-Cache),写缓冲器和物理

- 14 -

地TAG RAM减少主存带宽和响应性带来的影响;

5.采用ARM920T CPU内核支持ARM调试体系结构

6.内部高级微控制总线(AMBA)体系结构(A BA2.0,AHB/APB)

第二章 SDRAM接口设计

SDRAM具有容量大,存取速度快,成本低的特点,因而广泛应用到微机处理系统中。SDRAM主要用来存放执行代码和变量,是系统启动之后主要进行存取操作的存储器。由于SDRAM需要定时刷新以保持住存储的数据,因而要求微处理器具有刷新控制逻辑,或在系统中另外加入刷新控制逻辑电路。S3C2410及其他的一些ARM芯片在片内具有独立的SDRAM 刷新控制逻辑,可以方便地与SDRAM接口。

目前常用的SDRAM为8位/16位的数据宽度,我们可以根据系统需求构建16位或者32位的SDRAM存储系统。本例中使用两片三星的K4S561632E-TC75芯片构建32位的SDRAM 存储器系统。每片K4S561632E的存储容量为16组X16M位(32M字节),工作电压是3.3V,常见的封装为54脚TSOP,兼容LVTTL接口,支持自动刷新(Auto-Refresh)和自刷新(Self-Refresh),16位数据宽度。

下面是K4S561632E-TC75的引脚说明:

引脚描述功能

SCLK 时钟芯片时钟输入

SCKE 时钟使能片内时钟信号控制

nSCS 片选禁止或使能除CLK,CKE和DQM外的所有输入信号

BA0,BA1 块地址选择用于片内4个组的选择

A12---A0 地址总线行地址:A12-A0,列地址:CA8-CA0,自动预充电

标志:A10

nSRAS 行地址锁存用于行地址锁存

nSCAS 列地址锁存用于列地址锁存

nWE 写使能用于写使能

LDQM/UDQM 数据I/O屏蔽在读模式下控制输出缓冲:在写模式下屏蔽输入数据

DQ15---DQ0 数据总线数据输入/输出引脚

VDD/VSS 电源/地内部电路及输入缓冲电源/地

VDDQ/VSSQ 电源/地输出缓冲电源/地

- 15 -

- 16 -

第三章Flash接口设计

Flash存储器是一种可在系统进行电擦写,掉电后信息不丢失的存储器。它具有低功耗,大容量,擦写速度快,可整片或分扇区在系统烧写擦除等特点。,并且可由内部嵌入的算法完成对芯片的操作,因而在各种嵌入式系统中得到了广泛的应用。作为一种非易失性存储器,flash 在系统中通常用于存放程序代码,常量表以及一些在系统掉电后需要保存的用户数据等。

现在市场上主要的2种非易失闪存技术是NOR和NAND。Intel于1988年首先开发NOR Flash技术,彻底改变了原来由EPROM和EEPROM一统天下的局面。1989年东芝公司发表了NAND FLASH结构,强调降低每比特的成本,提高性能,并且像磁盘一样可以通过接口轻松升级。

NOR的特定是程序可以在芯片内执行,这样应用程序可以直接在flash中运行,不必再把代码读到RAM中。

NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度都很快,应用NAND的困难在于FLASH的管理和需要特殊的系统接口。

两者的特点是:

1.NOR的读速度比NAND稍快一些

2.NAND的写入速度比NOR快很多

3.NAND的4ms擦除速度远比NOR的5S快

4.大多数写入操作需要先进行擦除操作

5.NAND的擦除单元更小,相应的擦除电路等少

下面是这

2种FLASH的原理图:

- 17 -

- 18 -

- 19 -

第四章USB 接口设计

S3C2410提供了USB1.1接口,片内包括2个USB 控制器,可设置2个主机或者1个主机与1个设备。

我们可发板采用J10来切换主机和设备,原理图如下:

第二USB 主机接口原理图

第二

USB 主机接口和USB 设备接口切换插座

USB 设备接口原理图

第二部分实验程序和功能模块

第一章如何使用调试环境

第一节概述

ARM Developer Suite是ARM 公司最新的ARM 集成开发工具,简称ADS。目前ADS 的最新版本是1.2,它取代了早期的ADS1.1 和A DS1.0。ADS1.2支持Windows XP 和Windows2000 操作系统。

第二节使用ADS1.2如何建立自己的工程文件

我们通过具体实例来介绍如何使用该集成开发环境,在此介绍如何建立自己的工程文件,并学会如何进行编译链接,生成包含调试信息的映像文件和可以直接烧写的FLASH 中的.bin 格式的二进制可执行文件。

我们启动ADS1.2 CodeWarrior for ARM Developer Suite,点击[File] [New],显示如下图所示:

现在我们以在D:\tmp建立个名称为test的工程文件为例来说明,点击[set….],找到D:\tmp目录下,在文件名里输入test,点击保存按钮,如下图所示。

- 20 -

相关主题
文本预览
相关文档 最新文档