导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→定制你所需要的2410开发板,请到科因比特[denghongtian]

 *第38379篇: 定制你所需要的2410开发板,请到科因比特

  
楼 主:denghongtian 2006年3月10日13:56
 定制你所需要的2410开发板,请到科因比特
根据你所需要提供量身的开发平台,我们做得到!!科因比特 --2410飓风开发板
采用ARM9+FGPA 实现接口扩展。提供驱动程序和项目开发技术支持。

硬 件 部 件        功 能 描 述                              备 注
EMI                S3C2410外部总线接口,进行总线协议的转换  确保S3C2410对FPGA系统所有资源进行可靠访问。
EBI                外部SRAM、FLASH接口                      确保对SRAM和FLASH进行可靠快速访问
智能卡模块         对符合7816标准的各类智能卡、IC卡进行操作 
UART模块           符合RS232标准 
I2C模块            I2C主设备                                 支持高速400Kbps
红外模块           基于脉宽的红外接收 
计数器模块         2个32位计数器                             任意分频和前置置数可配
看门狗模块         32位定时器                                手动喂狗
Intc模块           中断控制模块,控制上述模块的中断输出      优先级可配
================================================================
===========================================================================================
扩展口资源
================================================================
硬 件 部 件           功 能 描 述                     备 注
LCD接口            液晶显示器驱动接口              最高支持16位TFT真彩色
触摸屏接口         支持4线触摸屏控制 
USB Host           支持USB主方式通信               1个USB Host接口(USB 1.1协议)
USB Device         支持USB从方式通信               1个USB Device接口(USB1.1协议)
网络接口           以太网连接                      10BASE-T标准
UART               高速串口传输                    2个串口连接器,多模块共享
SD卡接口           支持SD卡                        最大支持1G byte SD卡 
智能卡接口         符合7816标准 
AD输入接口         支持4路AD同时输入 10bit
红外接口           红外遥控信号接收 
I2C接口            访问EEPROM等器件 
音频I2S接口        音频输入输出 双声道输出,MIC输入
外部总线接口       20位地址线,16位数据线 支持中断访问
ATA接口            用于外接硬盘光驱等 和外部总线及智能卡接口复用
LED                8位LED 
DIP                8位DIP 
BUTTON             4位按键 另外还有一个全局复位按键
通用接口           39个 可以用于测试或者进一步的扩展
系统指示灯         6盏 指示网络、FPGA、红外及电源的工作状态。

软件配置   
 
 
    
 软 件 部 件          功 能 描 述                  备 注
JTAG烧写Flash    通过Jtag口烧写NOR Flash 主要烧写NOR Flash的bootloader

BootLoader       NOR Flash bootloader    对NOR Flash的二次烧写以及对Nand Flash的烧写
                 Nand Flash启动,Vivi Nand Flash分区,烧写等

Linux内核        Kernel 2.4.18            标准Linux内核或Mizi Linux内核
                各种常用文件系统          支持ROM/CRAM等文件系统

设备驱动程序    UART驱动                串口通信
                USB驱动                 USB主机OCHI驱动USB设备驱动
                音频驱动                音频输入输出
                以太网驱动              以太网通信

Ucos-II内核     Kernel 2.76          最新版Ucos-II内核
                示例Project          移植成功的Project示例代码

S3C2410测试程序 模块操作的示例代码 在三星源码的基础上针对本板作了重新移植

FPGA内部模块操作示例代码 FPGA模块操作的示范性代码 均经过完整长期的功能测试
 
 

详细资料请查登陆:[color=#8B0000]
此主题相关图片如下:
按此在新窗口浏览图片

  
2楼:denghongtian 2006年3月13日10:43
 核心板特点
S3C2410核心板的特点  
Core-Board(核心板) 
Samsung S3c2410x (ARM920T CORE,203MHz) 

FLASH ROM: 256Mbit NAND FLASH (Samsung K9F5608) 

2M NOR FLASH HY29LV160TT 

SDRAM : 64Mbyte HY57V561620BT-H 

RTC 实时时钟 

NAND FLASH --NOR FLASH 启动选择开关 

两个I/O 口连接两个LED,方便用户调试自己的程序 

ARM2410核心板的特点 

1、 采用核心板和底板分离的设计思想,用户可以方便的使用Core-Board进行二次开发 
核心板和底板采用稳固DIMM-144标准PCI插槽接口。 
2、 Core-Board 集成了ARM最小系统,包括 CPU、内存、NandFlash、NorFlash、RTC核心部件。特别是Nor Flash的集成使ARM最小系统进一步完整,这一点是别的公司没有做到的。Nor Flash的集成让用方便地调试Vxwork等软件 
如图所示 
Bottom-Board的把CPU的所有功能全部引出,方便用户使用,LED和按键的加入,可以方便用户调试程序。 
3、 Wiggle和JTAG二合一调试板内置 Wiggle和JTAG功能。使用Wiggle可以很快地把程序烧入Nor Flash,比如说写入三星测试程序utest (180K)只需要1分钟不到,而JTAG则需要半个小时之入。二者合一让用户方便地写和调试程序。 
4、 支持触摸屏,多种彩色液晶。 

 

此主题相关图片如下:
按此在新窗口浏览图片

  
3楼:denghongtian 2006年3月14日16:05
 S3C2410初始化代码分析

     S3C2410的初始化代码主要涉及到对系统主要模块的配置、运行环境的建立、系统时钟、MMU等模块的配置,下面按执行顺序依次都各个部分进行分析:

l        程序入口:(ResetHandler)

在程序一开始,首先进行的一些操作主要保证初始化程序能够顺利的运行,因此主要包括关闭WDT、中断,配置锁相环等。

l        配置memory接口

memory接口是确保数据访问正确的基本保障,此处主要配置SFR寄存器中0x48000000开始的memory接口寄存器组,确保每个bank的位宽、访问类型(waitable)以及时序参数正确。如果没有特别的要求,一般来说时序参数使用默认值即可。

l        初始化堆栈

ARM有6种运行模式,必须为每一种模式提供独立的堆栈空间,在堆栈设置之前是不能进行C函数的调用的。ARM的堆栈模式是从高地址递减的,我们可以将堆栈的首地址设在0x33ff8000处,往低依次为FIQ、IRQ、Abort、Undef、SVC,其中SVC和User模式不予区分。堆栈大小一般可在头文件或者当前文件中修改。

l        运行空间的初始化

这段代码主要完成两个功能,一是将RW数据搬运到RW空间(我们生成ROM镜像时,RW数据是跟在RO数据之后的),二是初始化ZI数据段。当然,这段代码存在的前提是代码的运行环境只是标准的两段式:一段RO空间和一段RW空间;并且在C程序入口时没有调用编译器的链接库(__main)。后者已经提供相应的功能,并且支持更加复杂的运行环境定义(使用SCF文件)。

l        __rt_lib_init

在ADS1.2的环境中,如果在C入口没有调用编译器的链接库(__main),那么在C程序一开始要调用该函数以初始化运行时的函数库,以保证对ADS提供的某些库函数能够正常调用。

l        MMU初始化

2410的MMU支持1级&2级地址映射,在我们目前的应用中均采用1级section模式的地址映射,一个section的大小为1M,也就是说从逻辑地址到物理地址的转变是这样的一个过程:一个32位的地址,高12位决定了该地址在页表中的index,这个index的内容决定了该逻辑section对应的物理section;低20位决定了该地址在section中的偏移(index)。

       因此从0x0~0xffffffff的地址空间总共可以分成0x1000(4K)个section,页表中每项的大小为32个bit,因此页表的大小为0x4000(16K)。所有示例程序的页表统一存放在地址0x33ff8000。

       每个页表项的内容如下:

31                          20 19        12 11   10  9 8      5  4  3  2  1  0

Section对应的物理地址
 NULL
 AP
 0
 Domain
 1
 C
 B
 1
 0
 

       注:最低两位(10)是section分页的标识。

AP:Access Permission,区分只读、读写、SVC&其它模式。

Domain:每个section都属于某个Domain,一个有16个Domain,每个Domain的属性由CP15的R3寄存器控制。在所有示例程序中,都只包含两个Domain,一个是SFR地址以下(包括SFR)的空间,可访问;另一个是SFR以上的空间,不可访问。

C、B:这两位决定了该section的cache&write buffer属性,这与该段的用途(RO or RW)有密切关系。不同的用途要做不同的设置。

 

   C
    B
 具体含义
 
   0
 0
 无cache,无写缓冲,任何对memory的读写都反映到ASB总线上。对memory的操作过程中CPU需要等待。
 
   0
 1
 无cache,有写缓冲,读操作直接反映到ASB总线上。写操作CPU将数据写入到写缓冲后继续运行,由写缓冲进行ASB操作。
 
   1
 0
 有cache,写通模式,读操作首先考虑cache hit;写操作时直接将数据写入写缓冲,如果同时出现cache hit,那么也更新cache。
 
1
 1
 有cache,写回模式,读操作首先考虑cache hit;写操作也首先考虑cache,如果hit,则只修改cache,并将cache对应半行的dirty比特置位;如果miss,则写入写缓冲,触发ASB总线操作。
 

虽然MMU只是使用了逻辑地址到物理地址的linear transfer(值不改变),但是由于MMU能够引入cache&write buffer,因此系统性能有很大的提高!

l        配置时钟比、重新设置PLL

2410内部有三个时钟:FCLK、HCLK、PCLK,分别供CPU、AHB总线和

APB总线使用,为了降低功耗,一般都选择周期比为1:2:4的合理配置。 同时将PLL配置为运行环境时钟,一般都达到最高202M。

l        IO初始化

将IO口配置为对应的功能选项,同时一般会点亮相应的LED灯。

l        中断初始化

2410的内存空间没有remap的机制,应该中断入口时钟位于零地址。因此中

断服务机制可以描述如下:

       首先,不管使用那种启动方式,必须确保一下代码段位于内存的0x0地址:

                            b     ResetHandler  

                            b     HandlerUndef       ;handler for Undefined mode

                            b     HandlerSWI  ;handler for SWI interrupt

                            b     HandlerPabort      ;handler for PAbort

                            b     HandlerDabort     ;handler for DAbort

                            b     .                    ;reserved

                            b     HandlerIRQ  ;handler for IRQ interrupt 

                            b     HandlerFIQ   ;handler for FIQ interrupt

       除ResetHandler外,其余各项都是由如下的宏定义的一段代码:

  HandlerFIQ   HANDLER  HandleFIQ

MACRO

$HandlerLabel  HANDLER  $HandleLabel

$HandlerLabel

       sub  sp,sp,#4                 ;decrement sp(to store jump address)

stmfd      sp!,{r0}        ;PUSH the work register to stack

       ldr     r0,=$HandleLabel  ;load the address of HandleXXX to r0

       ldr     r0,[r0]            ;load the contents

       str     r0,[sp,#4]     ;store the contents(ISR) of HandleXXX to stack

       ldmfd   sp!,{r0,pc}     ;POP the work register and pc(jump to ISR)

       MEND

   这段代码的含义是通过堆栈将中断向量表中的内容赋给PC指针(如HandleFIQ是存放着FIQ服务程序入口地址的地址),自然程序就跳到相应的入口地址。

   可见,中断向量表存放的是各个中断服务程序的入口地址,它是用来被加载的,而并不是可执行代码。为了统一,所有示例程序都将中断向量表放在0x33ffff00开始的地址,并根据入口地址依次排列。

       需要注意的是如果各种模式的服务程序用C语言定义,那么类型必须用__irq定义,以保证能够正确返回。

l        初始化串口

串口统一选用UART0,模式采用115200、1bit STOP、No Parity。

 

  
4楼:lalama 2006年3月16日15:58
 价格
能根据我的要求设计吗?
请与我联系
zhq@jstu.edu.cn

>>>>>>对该主题发表你的看法

本主题贴数4,分页: [第1页]