ARM 开发板用户手册
FLYSUN9200-DVK2.3
ARM开发板用户手册
北京飞旭科技有限公司
版权所有
版 本 1.0 1.1 1.2
日期 2005-1-18 2005-1-29 2006-7-8
说明
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
目 录
1 2
整体介绍.................................................................................................................................1 开发板核心处理器芯片说明.................................................................................................2 2.1 AT91RM9200芯片的特点.....................................................................................3
2.1.1 ARM9TDMI™ 基于ARM® v4T 架构........................................................3 2.1.2 集成了嵌入式内部电路仿真器.....................................................................4 2.1.3 引导程序.........................................................................................................4 2.1.4 嵌入式软件服务.............................................................................................4 2.1.5 复位控制器.....................................................................................................5 2.1.6 存储控制器.....................................................................................................5 2.1.7 外部总线接口.................................................................................................5 2.1.8 SDRAM 控制器.............................................................................................6 2.1.9 Burst Flash 控制器.........................................................................................7 2.1.10 外设数据控制器.............................................................................................7 2.1.11 增强的中断控制器.........................................................................................7 2.1.12 电源管理控制器.............................................................................................8 2.1.13 系统定时器.....................................................................................................8 2.1.14 调试单元.........................................................................................................8 2.1.15 PIO控制器......................................................................................................9 2.1.16 USB主机端口................................................................................................9 2.1.17 USB器件端口................................................................................................9 2.1.18 以太网MAC.................................................................................................10 2.1.19 串行外设接口...............................................................................................10 2.1.20 两线接口.......................................................................................................10 2.1.21 USART..........................................................................................................11 2.1.22 串行同步控制器...........................................................................................11 2.1.23 定时/ 计数器................................................................................................11 2.1.24 多媒体卡接口...............................................................................................12 2.1.25 引脚输出.......................................................................................................12
3 开发板硬件接口说明...........................................................................................................12
3.1 开发板接口分布图...............................................................................................13 3.2 开发板硬件说明...................................................................................................14 3.3 主板的外部总线接口...........................................................................................15
3.3.1 总线接口说明...............................................................................................15
4 Windows下核心板中的软件烧录方法...............................................................................16
4.1 网络环境配置.......................................................................................................16
4.1.1 配置PC计算机的网络IP地址...................................................................16 4.1.2 TFTP服务器的配置和启动.........................................................................18 4.2 使用U-BOOT烧录程序......................................................................................19 4.3 FLASH为空时的烧录方法..................................................................................20
4.3.1 超级终端软件的配置方法...........................................................................21 4.4 已有LOADER和U-BOOT的LINUX内核和RAMDISK的烧录方法..........27
2
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
5 Linux下开发环境的安装与配置.........................................................................................28
5.1 REDHAT LINUX 9.0的安装...............................................................................28 5.2 开发工具软件的安装...........................................................................................28 5.3 网络IP地址配置..................................................................................................29 5.4 配置NFS服务器..................................................................................................31 5.5 Linux下TFTP服务器的配置.............................................................................34 6 根文件系统的修改与制做方法...........................................................................................35
6.1 如何让用户自己的程序在开发板启动后自动运行............................................36 6.2 如何修改开发板启动后的IP地址......................................................................37 7 用户应用软件开发过程说明...............................................................................................37
7.1 Makefile的编写....................................................................................................37 7.2 应用软件调试过程...............................................................................................38
7.2.1 Linux上minicom的配置.............................................................................39 7.3 演示软件目录结构说明.......................................................................................42
3
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
1 整体介绍
FLYSUN9200-DVK2.3ARM开发板是由北京飞旭科技有限公司设计开发,主处理器基于Atmel公司的AT91RM9200 ARM处理器。AT91RM9200内嵌ARM920T核,带有全性能的MMU,具有高性能、低功耗、低成本、小体积等优点,广泛地应用在各种嵌入式系统中,如通信、军事、航空、航天、工业控制、交通等领域。
FLYSUN9200-DVK2.3ARM开发板是专门针对工业级嵌入式应用开发的一款ARM开发板,开发板的通讯接口比较丰富,非常方便用户进行工业级场合的数据采集通讯应用开发。系统由核心和主板组成,核心板带有CPU和32-128MB的SDRAM、4MB NorFlash,主板有1个32MB NandFLASH(可换16-64MB NandFLASH) ,1个10/100M以太网接口,1个USB Host,1个USB从接口,1个SD卡接口,1路CAN,1个irDA、 1个RS485、1个8X8 KEYB、1个240X128点阵LCD接口、RTC、1个JTAG接口和1个外部扩展总线,用户可以根据自己需要自由扩展。
1
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
2 开发板核心处理器芯片说明
AT91RM9200芯片内部结构图
2
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
2.1 AT91RM9200芯片的特点
2.1.1 ARM9TDMI™ 基于ARM® v4T 架构
• 两套指令集
– 32位高性能ARM® 指令集
– 16位高代码密度Thumb® 指令集 • 5级流水线结构: – 取指令(F) – 指令译码 (D) – 执行(E)
– 数据存储器(M) – 写寄存器(W)
• 16-K字节数据缓存, 16-K 字节指令缓存 – 虚拟地址的64路相关缓存 – 每线8 字
– 正向及反向写操作 – 伪随机或循环置换 – 低功耗CAM RAM设备 • 写缓冲器
– 16字的数据缓冲器 – 4地址的地址缓冲器 – 软件控制消耗
• 标准的ARMv4 存储器管理单元(MMU) – 区域访问许可
– 允许以1/4页面大小对页面进行访问 – 16个嵌入域
– 64个输入指令TLB及64 个输入数据TLB • 8位、16位、32位的指令总线与数据总线 调试与测试• 集成了嵌入式内部电路仿真器 • 调试单元
– 两引脚的UART – 调试信道
– 芯片 ID 寄存器
• 嵌入式追踪宏单元:ETM9 Rev2a – 中级实现 – 半速时钟模式 – 四对地址比较器 – 两个数据比较器
– 八个存储器映射解码器输入 – 两个计数器
– 一个序列发生器 – 一个18字节的FIFO
3
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
• 数字引脚通过IEEE1149.1 JTAG 边界扫描
2.1.2 集成了嵌入式内部电路仿真器
• 调试单元
– 两引脚的UART – 调试信道
– 芯片 ID 寄存器
• 嵌入式追踪宏单元:ETM9 Rev2a – 中级实现 – 半速时钟模式 – 四对地址比较器 – 两个数据比较器
– 八个存储器映射解码器输入 – 两个计数器
– 一个序列发生器 – 一个18字节的FIFO
• 数字引脚通过IEEE1149.1 JTAG 边界扫描
2.1.3 引导程序
引导程序默认存储在ROM 中
• 由外部存储器载入内部SRAM 中运行 • 下载代码大小由内部SRAM 大小决定 • 自动检测有效的应用程序
• 引导载入支持多数非易失性存储器 – 连接在SPI NPCS0上的SPI DataFlash® – 两线EEPROM
– 若器件集成了EBI,则在NCS0上提供8位并行存储器
• 提供支持多种通信介质的引导上传器(Boot Uploader)以防外部NVM 上未检测到有效程序
• DBGU (XModem协议) 上串行通信 • USB器件端口(DFU 协议)
2.1.4 嵌入式软件服务
• AINSI/ISO 标准C 适用
• 在ARM/Thumb 交互工作中编译 • ROM进入服务
• 提供Tempo、Xmodem 及DataFlash服务
4
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
• CRC及正弦表
2.1.5 复位控制器
提供两条复位输入线(NRST 与NTRST)
• 初始化用户接口寄存器(各个外设通过用户接口来定义) 且: – 在bootup 时对信号采样
– 强迫处理器读取零地址空间的下条指令 • 初始化嵌入式ICE TAP 控制器
2.1.6 存储控制器
– 内部总线由ARM920T、PDC、USB 主机端口与以太网MAC 主机共享 – 每个主机优先级在0 ~ 7之间分配 • 地址解码器提供如下选择:
– 八个256-M 字节外部存储器区域 – 四个1-M 字节内部存储器区域 – 一个256-M 字节嵌入式外设区域 • 引导模式选项:
– 非易失性引导存储器可为片内或片外的 – 由BMS 引脚在复位时的采样值选定 • 异常中断状态寄存器
– 保存所有引起发生异常中断的源、类型及访问参数 • 检测器失调
– 对所有数据访问进行校准检测 – 失调时产生中止 • 重新映射命令
– 对内部SRAM 提供重新映射以代替引导NVM
2.1.7 外部总线接口
集成了三个外部存储控制器: - 静态存储控制器 – SDRAM控制器
– Burst Flash控制器
• 额外的支持SmartMediaTM 及CompactFlashTM 的逻辑 • 优化外部总线: – 16或32位数据总线
– 26位地址总线,可对64-M字节空间进行寻址 – 8个片选信号,每个对应八个存储区域中的一个 – 优化引脚复用以减少外部存储器等待时间 • 可配置的片选:
5
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
– NCS0上Burst Flash 控制器或静态存储控制器 – NCS1上SDRAM 控制器或静态存储控制器 – NCS3上静态存储控制器,可选SmartMedia
– NCS4 - NCS6 上静态存储控制器,可选CompactFlash – NCS7上静态存储控制器
外部存储器有512-M 字节地址空间 • 8个片选口线
• 8位或16位数据总线 • 引导存储器的重新映射 • 支持多路访问模式 – 字节写或字节选择线
– 每个存储器区有两个不同的读协议 • 多设备适应性 – LCD模块适应
– 可编程启动定时读/ 写 – 可编程保持定时读/ 写 • 多等待状态管理
– 可编程等待状态产生 – 外部等待请求
– 可编程数据浮动时间
2.1.8 SDRAM 控制器
支持多种配置
– 2K、4K、8K 行地址存储部分 – 两个或四个内部SDRAM 区 – 16位或32位数据路径的SDRAM • 编程性能
– 字、半字、字节访问
– 到达存储器边界时自动分页 – 多组Ping-pong访问 – 软件确定定时参数
– 自动更新操作,可编程更新速率 • 节能能力
– 支持自更新与低功耗模式 • 错误检测
– 更新错误中断
• 软件上电初始化SDRAM
• 等待时间为两个时钟(CAS 等待时间为一个时钟,不支持三个时钟) • 未使用自动预充电命令
6
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
2.1.9 Burst Flash 控制器
支持多路访问模式
– 异步或Burst 模式字节,半字或字访问 – 异步模式半字写访问 • 可适应不同速率的器件
– 可编程Burst Flash时钟速率 – 可编程数据访问时间
– 可编程输出使能后的等待时间 • 可适应不同的访问协议及总线接口
– 两个Burst 读协议:时钟控制地址提前或信号控制地址提前 – 多路或独立的地址与数据总线 – 支持连续Burst 与页模式访问
2.1.10 外设数据控制器
通过诸如DBGU、USART、SSC、SPI 及MCI 等与外设进行数据传输 • 二十路通道
• 由存储器到外设传输需一个主机时钟周期 • 由外设到存储器传输需两个主机时钟周期
2.1.11 增强的中断控制器
控制ARM® 处理器中断线(nIRQ 与nFIQ) • 32个可独立屏蔽的中断源向量 – 中断源0为快速中断输入(FIQ)
– 中断源1为系统外设(ST、RTC、PMC、DBGU…)
– 中断源2 到中断源31 控制30个嵌入式外设中断或外部中断 – 可编程的边沿触发或电平敏感内部中断
– 可编程的正/ 负边沿触发或高/ 低电平敏感外部源 • 8级优先权控制器 – 驱动处理器正常中断
– 处理1 ~ 31 个中断源的优先级
– 高优先级中断可打断低优先级中断的执行 • 定向
– 优化中断服务程序分支与执行
– 每个中断源有一个32 位向量寄存器 – 中断向量寄存器读当前相应的中断向量 • 保护模式
– 禁止自动操作可简化调试 • 快速强制
– 允许通过处理器快速中断将正常中断源重定向
7
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
• 通用中断屏蔽
– 提供在不触发中断的情况下处理器与事件同步
2.1.12 电源管理控制器
优化整个系统功耗 • 嵌入与控制:
– 一个主振荡器与一个慢时钟振荡器(32.768Hz) – 两个锁相环(PLL)及分频器 – 时钟预分频 • 提供:
– 处理器时钟PCK – 主机时钟MCK
– USB时钟UHPCK 及UDPCK 分别对应USB 主机端口与USB 器件端口 – USB器件延迟情况下可编程将PLL 自动关闭 – 30个外设时钟
– 四个可编程时钟输出:PCK0 ~ PCK3 • 四种工作模式:
– 正常模式、空闲模式、慢时钟模式及待机模式
2.1.13 系统定时器
一个周期计时器, 16位可编程计数器 • 一个看门狗定时器, 16位可编程计数器 • 一个实时计时器, 20位自主运行计数器 • 事件中断
实时时钟• 低功耗
• 全异步设计 • 万年历
• 可编程周期中断
• 报警与更新同步下载
• 报警控制与定时/ 日历数据更新
2.1.14 调试单元
方便Atmel ARM® 系统调试的系统外设 • 有四个功能 – 两引脚UART
– 支持调试信道(DCC) – 芯片ID 寄存器 – 防止ICE 访问 • 两引脚UART
8
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
– 执行特征与标准Atmel USART 完全兼容
– 具有通用可编程波特率产生器的独立收发器 – 奇数、偶数、标志或空间奇偶发生器 – 奇偶、帧及超速错误检测
– 自动回复、本地回环及远程回环通道模式 – 中断产生器
– 支持与接收器与发送器连接的两个PDC 通道 • 调试信道支持
– 可见来自ARM处理器的COMMRX与COMMTX信号 – 中断产生器 • 芯片ID 寄存器
– 识别器件版本、嵌入式存储器大小及外设组。
2.1.15 PIO控制器
32个可编程I/O口线
• 通过置位/ 清零寄存器可完全编程 • 各 I/O 口线复用两个外设功能
• 各I/O 口线( 无论配置为外设还是作为通用功能 I/O 使用) – 输入变化中断 – 毛刺滤波器
– 多驱动选择使能开漏驱动 – 可编程I/O 口线上拉
– 引脚数据状态寄存器,随时提供引脚电平
• 同步输出,在单写操作中可对几个I/O 口线进行置位与清零
2.1.16 USB主机端口
开放的HCI Rev 1.0 标准适用 • USB V2.0 全速与低速标准适用
• 支持低速1.5 Mbps 与全速12 Mbps USB器件 • 主集线器集成两个下游USB 端口 • 两个内置USB 收发器 • 支持电源管理
• 作为存储控制器的一个主机操作
2.1.17 USB器件端口
USB V2.0 适用, 12 M比特/ 秒 • 内置USB V2.0 全速收发器 • 为终点内置双端口RAM • 延迟/ 恢复逻辑
9
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
• 同步与大量端点的Ping-pong模式(两个存储器组) • 6 个通用功能端点
– 端点0,端点 3: 8 字节,无ping-pong模式 – 端点1,端点2:64 字节, ping-pong模式 – 端点4,端点5: 256字节, ping-pong模式
2.1.18 以太网MAC
与IEEE 802.3标准兼容
• 每秒10 ~ 100 M比特的数据吞吐能力 • 全双工或半双工操作
• 与物理层接口为MII 或RMII
• 寄存器接口可由地址、状态与控制寄存器使用 • DMA接口,作为存储控制器的一个主机工作 • 信号接收与发送结束产生中断 • 28字节传输与28字节接收FIFO • 对传输帧自动填充并产生CRC
• 地址逻辑校验以识别四个48 位地址
• 当所有的有效帧拷贝到存储器中时支持混合模式
• 支持物理层管理,通过MDIO 接口控制报警与更新定时/ 日历数据
2.1.19 串行外设接口
支持与串行外设通信
– 外部解码器有四个片选位,最多支持与15个外设通信 – 串行存储器,如DataFlash 及三线EEPROM
– 串行外设,如ADC、DAC、LCD 控制器、CAN 控制器与传感器 – 外部协处理器
• 主机或从机外设总线接口
– 每个片选8 位到16位可编程数据长度 – 每个片选可编程相位与极性
– 每个片选有在连续传输和时钟与数据间可编程传输延时 – 连续传输间可编程延时 – 选择模式故障检测
• 通过连接PDC 通道优化数据传输 – 收发各一个通道 – 支持相邻缓冲
2.1.20 两线接口
与标准两线串行存储器兼容 • 从机地址为1、2、3个字节
10
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
• 连续读/ 写操作
2.1.21 USART
可编程波特率产生器
• 5~ 9位的全双工同步或异步串行通信
– 异步模式下1、1.5 或2 个停止位或同步模式下 1 或2 个停止位 – 奇偶校验位产生与错误检测 – 帧错误检测,超速错误检测 – MSB或LSB 在先
– 可选断点产生与检测
– 8或16 的过采样接收频率 – 可选硬件握手RTS-CTS
– 可选调制解调信号管理DTR-DSR-DCD-RI – 接收器停止与发送器时间防护
– 可选的地址产生与检测的Multi-drop 模式 • 有驱动器控制信号的RS485
• ISO7816, T = 0 或T = 1协议与智能卡的接口连接 – NACK处理,有循环与迭代限制的错误计数器 • IrDA调制与解调
– 通信速率达到115.2 Kbps • 测试模式
– 远程回送、本地回送及自动回复 • 两个外设数据控制器通道连接(PDC) – 不通过处理器的缓冲器传输
2.1.22 串行同步控制器
在音频与电信应用中使用串行同步通信链接
• 包含一个独立的接收器和发送器以及通用时钟分频器 • 与两个PDC 通道(DMA 访问) 连接以降低处理器开销 • 提供一个可配置的帧同步与数据长度
• 接收器与发送器可编程启动帧同步信号的自动检测方式或不同事件检测方式。 • 接收器与发送器包括一个数据信号、一个时钟信号及一个帧同步信号
2.1.23 定时/ 计数器
三个16位定时器计数器通道 • 功能包括: – 频率测量 – 事件计数 – 间隔测量
11
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
– 脉冲产生 – 延迟定时 – 脉宽调制
– 上加/ 下减能力
• 各个通道用户可配置,内容包括: – 三个外部时钟输入 – 武功内部时钟输入
– 两个多功能输入/ 输出信号 • 内部中断信号
• 两个作用于三个TC 通道的全局寄存器
2.1.24 多媒体卡接口
与多媒体卡标准V 2.2兼容
• 与SD 存储器卡标准V1.0 兼容
• 卡的时钟速率是主机时钟的2 倍分频
• 当未使用时内置的电源管理将时钟速率降低 • 支持两种插槽
– 一种是多媒体卡总线(可达30个卡),另一种是SD 存储器卡 • 支持数据流、块或多块数据的读写 • 与外设数据控制器通道连接
– 对大量缓冲器传输时最小化处理器干预
2.1.25 引脚输出
AT91RM9200有两种封装:
• 208引脚 PQFP, 31.2 x 31.2 mm,引脚间距0.5 mm。 • 256球状BGA, 15 x 15 mm,球间距0.8 mm。
3 开发板硬件接口说明
FLYSUN9200-DVK2.3开发板实现了AT91RM9200芯片的大部分外设接口,并扩展了CAN总线、8X8矩阵键盘、实时钟和LCM接口。
12
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
3.1 开发板接口分布图
矩阵键盘 RS485 CAN总线实时钟红外USB从接口 240X128LCD接口100M以太网 9200核心板 SD卡 5V 电源 扩展总线 串口2 调试串口
JTAG串口1 主USB图3.1-1 FLYSUN9200-DVK2.3开发板照片
13
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
3.2 开发板硬件说明
硬件部件 CPU
功 能 描 述 Atmel AT91RM9200
备 注
ARM920T内核,主频180MHz,速度为220MIPS。
工业级:-40℃ -85℃ 保存引导程序和操作系统。工业级。
应用程序或数据存储。(可选工业级)
板上焊接32MB,可选美光工业级芯片。 CPU内嵌
可支持U盘及USB鼠标键盘等. LINUX中尚不支持,可用ADS软件环境测试
2个3针RS-232接口 1个9针RS-232接口 与多媒体卡规范V 2.2兼容 与SD 存储卡规范V 1.0兼容 1通道接口RS485 与9200为SPI总线接口 内部实时钟不支持电池供电,在外部扩充DS1302可接电池. 收/发距离<5m 标准20针定义
支持用户自定义矩阵键盘. 单色LCD工业级屏,工作温度:-20度至+85度。支持所有使用T6963C控制器的单色屏。用户如使用其他单色屏,可以根据参考设计修改一下就可以应用到其他单色屏上。
扩展了ARM9的16位数据总线和8位地址总线及读写、复位、中断信号。 单位: 毫米
程序存储器 数据存储器 SDRAM 以太网 USB Host USB 从接口 UART SD卡接口 RS485 CAN RTC irDA JTAG接口 KEYB
4MB NorFLASH 32MB NandFLASH 32-128MB SDRAM
10/100Mbps自适应以太网接口 支持USB1.1/2.0通信 支持USB1.1/2.0通信 支持异步串行通信 支持SD卡读写 支持RS485方式通信 支持CAN2.0a/b
为系统提供实时时钟基准 支持红外数据发送、接收 支持JTAG调试与开发 支持1-64距阵键盘
LCD
240x128点阵,显示字符、图形、数据、汉字库、表格等
引脚扩展 主板尺寸
支持系统扩展 146 X 115
表3.2-1
14
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
3.3 主板的外部总线接口
图3.2-2
3.3.1 总线接口说明
信号
说明
读信号 写信号
负脉冲 负脉冲
信号要求
1 DB0-DB15 16位数据总线 TTL电平 2 /RD 3
/WR
4 AB0-AB7 8位地址总线 TTL电平 5 NRST 7 IRQ0 8 GND 系统复位信号 TTL电平 设备中断0 地
表3.3-1
6 CS4,CS7 片选信号 TTL电平
9 +3.3V +5V 电源
15
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
4 Windows下核心板中的软件烧录方法
将要烧录软件通过以太网烧写是最快速的方法,所以首先需要正确配置网络软硬件环境。
4.1 网络环境配置
4.1.1 配置PC计算机的网络IP地址
在桌面使用鼠标右键点击网上邻居,再点击属性,出现如下网络连接窗口:
图4.1-1
使用鼠标右键点击本地连接,再点击属性,出现如下连接属性窗口:
16
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
图4.1-2
双击其中的Internet协议,出现TCP/IP属性窗口,请按照下图的内容修改你的配置。
17
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
图4.1-3
4.1.2 TFTP服务器的配置和启动
由于烧录文件是使用TFTP协议通过以太网下载到开发板中的,所以除了配置好以太网外,还需要配置TFTP 服务器。
将开发光盘中的TFTP目录中的所有文件拷贝到PC计算机中的一个目录下,运行TFTPD.EXE程序。显示界面如下图:
18
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
图4.1-4
点击Configure菜单对TFTP服务器的参数进行配置,主要是设置其主目录(Home Directory )为你的当前目录,否则将无法发送文件。
图4.1-5
配置完成后点击Start菜单启动TFTP服务。
4.2 使用U-BOOT烧录程序
根据开发板特定的NOR-FLASH,我们在U-BOOT中增加了一个特定的烧录命令:
flash loader | u-boot | kernel | ramdisk
其中的loader | u-boot | kernel | ramdisk是参数,用于告诉U-BOOT烧录那一个文件。 在烧录之前要首先配置好网络环境,要求PC计算机必须有以太网接口,并且将IP地址配置为192.168.0.100, 当然也可以手动重新配置U-BOOT的环境变量,方法是: Uboot>setenv serverip xxx.xxx.xxx.xxx Uboot>setenv ipaddr xxx.xxx.xxx.xxx
其中的xxx.xxx.xxx.xxx为你需要修改设置的IP地址,这样你就不需要修改PC机的IP地址了,注意TFTP服务器IP地址与开发板的IP地址不能相同,但是必须保证开发板和PC机的IP地址是同一个网段的。例如: Uboot>setenv serverip 192.168.0.100 Uboot>setenv ipaddr 192.168.0.200
19
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
4.3 FLASH为空时的烧录方法
当新焊接核心板的NOR-FLASH时,其中没有任何内容,ARM9200 CPU是不能启动的,此时应将启动模式(BOOT MODE)跳线去掉,使用交叉通讯串口电缆连接开发板和计算机的串口。使用交叉以太网线连接计算机和开发板,或者直接使用直通网线连接交换机。在WINDOWS环境下,打开超级终端软件,用于和开发板进行交互通讯。
启动模式跳线
图4.2-1核心板结构图
20
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
4.3.1 超级终端软件的配置方法
图4.3-1
运行后显示如下图:
图4.3-2
可以输入一个连接名称,如ARM,并选择一个图标,之后显示如下界面:
21
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
图4.3-3
根据你实际连接的串口1还是串口2,选择COM1或COM2。点击确定之后显示如下界面。用于设置串口通讯参数。请按照图中显示的参数配置。
图4.3-4
设置完成后,重新复位开发板,在超级终端里应每隔一秒显示一个C,这表示AT91RM9200芯片内部的LOADER程序在等待用户下载软件到其内部的SRAM运行,此
22
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
时应将开发光盘中img目录中的loader.bin文件通过XMODEM协议发送到AT91RM9200内部的SRAM中。参见下图:
图4.3-5
图4.3-6
发送完毕后,显示如下界面,这时表示loader.bin在AT91RM9200中已经运行起来,并等待下载U-BOOT,和下载loader.bin 的过程一样,我们选择发送文件,使用XMODEM协议发送u-boot.bin文件,如下图显示:
23
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
图4.3-7
图4.3-8
发送u-boot.bin到AT91RM9200的SDRAM的过程
发送完毕后,会立即启动U-BOOT软件,它默认在3秒钟内自动装载LINUX内核和根文件系统,而此时还没有烧录LINUX内核和根文件系统(RAMDISK),所以应在3秒内按回车键,使U-BOOT进入人机交互的命令模式。
24
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
图4.3-9
U-BOOT启动后的显示界面
25
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
图4.3-10
输入?显示的命令帮助列表
4.3.1.1 烧录loader.bin
在Uboot>提示符下输入如下命令: Uboot>flash loader
使用TFTP协议下载服务器中的zou-loader文件到开发板的内存中,之后烧录到NOR-FLASH中。loader是复位时运行的第一个程序。
4.3.1.2 烧录u-boot
在Uboot>提示符下输入如下命令: Uboot>flash u-boot
使用TFTP协议下载服务器中的u-boot.bin文件到开发板的内存中,之后烧录到NOR-FLASH中。U-BOOT是bootloader的主要程序,主要功能是完成映象文件烧录和装载LINUX。
26
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
4.3.1.3 烧录AT91RM9200-LINUX内核
在Uboot>提示符下输入如下命令: Uboot>flash kernel
使用TFTP协议下载服务器中的zImage文件到开发板的内存中,之后烧录到NOR-FLASH中。zImage是LINUX的内核压缩映象文件,主要功能是完成所有硬件的驱动和操作系统调度。
4.3.1.4 烧录根文件系统
在Uboot>提示符下输入如下命令: Uboot>flash ramdisk
全部烧完后,插上启动模式的跳线,并重新复位开发板,系统应该能够启动LINUX,看到类似如下的显示信息,就表明烧录是成功的。
图4.3-11
4.4 已有LOADER和U-BOOT的LINUX内核和RAMDISK
的烧录方法
如果系统已经正常烧录,但是需要烧录新的LINUX内核和根文件系统,则不需要去掉
27
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
启动模式跳线,可以复位开发板直接启动U-BOOT,在U-BOOT启动LINUX的3秒内按回车键进入命令模式,烧录操作方法与3.1节中所述相同。
5 Linux下开发环境的安装与配置
开发板中运行的软件是针对AT91RM9200定制的arm-linux内核和根文件系统,开发光盘中提供的主要应用软件开发工具为ARM-LINUX编译器和ANJUTA和SourceNavigator编辑器。可以编译应用软件和Linux内核以及根文件系统。
将安装光盘放入计算机中,在REDHAT9.0中应可以自动挂装CDROM到/mnt/cdrom目录下,
5.1 REDHAT LINUX 9.0的安装
在一台PC 上安装RedHat LINUX9.0,选择Custom 定制安装,在选择软件Package 时最好将所有包都安装,需要空间约2.7G,如果选择最后一项:everything,即完全安装,将安装3张光盘的全部软件,需要磁盘空间大约5G。因此建议提前为REDHAT LINUX 的安装预留大约5-15G的空间,具体视用户的硬盘空间大小来确定,在安装完Redhat后还要安装uclinux的编译器和开发库以及uclinux的所有源代码,这些包安装后的总共需要空间大约为800M。
5.2 开发工具软件的安装
将我们公司提供的附带开发工具光盘插入CDROM,然后执行以下命令: mount -t iso9660 /dev/cdrom /mnt/cdrom
若系统不识别/dev/cdrom 的话,可以用如下命令,假设CDROM为从盘,即为/dev/hdb,则:
mount –t iso9660 /dev/hdb /mnt cd /mnt (进入mount 后的目录)
如果您的CDROM 已经在安装RedHat 的时候已经默认安装,以上命令请不要执行,请直接进入CDROM 所在目录(一般为/mnt/cdrom,Fedora 5默认挂载在media/disk下)。这种情况下则:
cd /mnt/cdrom(Fedora 5版本则执行cd /media/disk)
./install.sh (运行安装脚本,如权限不够,请执行命令sh ./install.sh)
安装脚本程序将自动建立/at91rm9200目录,并将所有开发软件包安装到/at91rm9200目录下,同时自动配置编译环境,建立合适的符号连接。
安装完成后的目录结构如下:
28
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
doc img
linux-2.4.19-rmk7 rootfs demos
相关文档 烧录映象文件
针对AT91RM9200移植后的LINUX内核源代码 根文件系统 所有功能演示源代码
交叉编译器自动安装在/usr/local/arm/2.4.1/bin目录下,
5.3 网络IP地址配置
配置网络,包括配置IP地址、NFS服务、防火墙。网络配置主要是要安装好以太网卡,对于一般常见的RTL8139 网卡,REDHAT9.0 可以自动识别并自动安装好,完全不要用户参与,因此建议使用该网卡。然后配置宿主机IP为192.168.0.121。如果是在有多台计算机使用的局域网环境使用此开发设备,IP地址可以根据具体情况设置。
图5.2-1
双击设备eth0的蓝色区域,进入以太网设置界面:
29
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
图5.2-2
30
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
图5.2-3
5.4 配置NFS服务器
对于REDHAT9.0,它默认的是打开了防火墙,因此对于外来的IP 访问它全部拒绝,这样其它网络设备根本无法访问它,即无法用NFS mount 它,许多网络功能都将无法使用。因此网络安装完毕后,应立即关闭防火墙。操作如下:点击红帽子开始菜单,选择安全级别设置,选中无防火墙。
图5.2-4
在系统设置菜单中选择服务器设置菜单,再选中服务菜单,将iptables服务的勾去掉,屏蔽这项服务,再将 nfs服务的勾打上,表示启动NFS服务器。
点击主菜单运行系统设置->服务器设置->NFS服务器(英文为:SETUP->SYSTEM SERVICE->NFS),点击增加出现如下在界面,在目录(Drictory):中填入需要共享的路径,在主机(Hosts):中填入允许进行连接的主机IP地址。并选择允许客户对共享目录的操作为只读(Read-only)或读写(Read/write)。
31
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
图5.2-5
在目录编辑框中输入/dvk2.3,将此目录共享给开发板使用。
下图是一些常规选项设置,可以保留默认值。
32
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
图5.2-6
下面是对客户端存取服务器的一些其他设置,一般不需要设置,取默认值。
33
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
图5.2-7
当将远程根用户当作本地根用户时, 对于操作比较方便,但是安全性较差。 最后退出时则完成NFS 配置。 配置好后,界面应显示如下:
图5.2-8
我们也可以手工编写/etc/exports文件,其格式如下:
共享目录 可以连接的主机(读写权限,其他参数)
例如:
/dvk2.3 192.168.0.*(rw,sync)
表示将本机的/dvk2.3目录共享给ip地址为192.168.0.1-192.168.0.254的所有计算机,可以读取和写入。
配置完成后,可用如下办法简单测试一下NFS 是否配置好了:在宿主机上自己mount 自己,看是否成功就可以判断NFS 是否配好了。例如在宿主机/目录下执行:
mount 192.168.0.100: /dvk2.3 /mnt
其中192.168.0.100应修改为用户自己主机的IP地址。
然后到/mnt/目录下看是否可以列出/at91rm9200目录下的所有文件和目录,可以则说明mount 成功,NFS 配置成功。
5.5 Linux下TFTP服务器的配置
将我们公司提供的附带开发工具光盘插入CDROM,在Linux下进入tools
34
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
目录,然后安装里面的RPM包文件,具体执行步骤如下:
cd /tools
rpm -i xinetd-2.3.13-6.2.1.i386.rpm rpm -i tftp-server-0.39-1.i386.rpm rpm -i tftp-0.39-1.i386.rpm
然后在/etc/xinetd.d目录下修改tftp文件,只需将disabled =yes 改为no即可,如本来就是no,则不需要修改。
对于REDHAT9.0,它默认的是打开了防火墙,因此对于外来的IP 访问它全部拒绝,这样其它网络设备根本无法访问它,即tftp没有权限,许多网络功能都将无法使用。因此网络安装完毕后,应立即关闭防火墙。操作如下:点击红帽子开始菜单,选择安全级别设置,将防火墙设为Disabled。(如为Fedora 5操作系统还要将SELinux设为Disabled)
在Fedora 5下,在系统设置菜单中选择服务器设置菜单,再选中服务菜单,在后台服务的选项中将xinetd选项的勾打上,表示启动这项服务,并点右键,选择重新启动;在按需服务的选项中将tftp勾打上,启动tftp服务。
如果想查看自己的tftp是否建好,可以在终端中输入whereis xinetd和whereis tftp来查看xinetd和tftp是否安装好。
也可以通过如下方式测试tftp是否在本机已配好。可以通过tftp将PC机上的tftpboot目录下的文件通过tftp发送到任一目录,即通过tftp传送文件的存放地址。
如我想将tftpboot目录下文件名为zImage的文件发到mnt目录,则需在mnt目录下输入如下命令:
tftp 127.0.0.1 get zImage
如tftp配置正确,则zImage就被发送到mnt目录了。 如配置正确,我们就可以用tftp在Linux下从PC机上下载程序了。先将PC机IP设置为192.168.0.100,即:
ifconfig eth0 192.168.0.100
在终端中输入minicom启动Linux下的超级终端,将将启动模式(BOOT MODE)跳线插上,它默认在3秒钟内自动装载LINUX内核和根文件系统,而此时还没有烧录LINUX内核和根文件系统(RAMDISK),所以应在3秒内按回车键,使U-BOOT进入人机交互的命令模式。
然后就可以象Window的环境一样来烧录loader.bin,u-boot ,kernel 和ramdisk了,方法同Windows中的操作基本相同。
6 根文件系统的修改与制做方法
由于根文件系统是在LINUX环境下开发的,所以首先需要安装linux及其ARM-LINUX开发环境。在正确安装好我们提供的光盘软件后,在 /at91rm9200目录下就会建立rootfs目录其中放置了根文件系统的所有文件,主要的程序来自于Busybox-1.00软件, 一般用户不需要修改,其目录结构如下图,其中bin目录为可执行程序目录,dev为设备文件目录,etc为系统配置和启动脚本目录host为挂装nfs网络文件系统时的默认目录,lib为系统中的动态链接库放置目录,mnt为挂装其他文件系统时的挂装目录,proc为系统内核信息目录,
35
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
root为根用户的home目录,sbin为系统程序目录,usr为用户程序目录,var为临时文件放置目录。
根文件系统目录结构
在根文件系统(RAMDISK)中添加自己的程序的方法是直接将编译好的可执行程序拷贝到rootfs/mnt/yaffs目录下,当然也可以拷贝到其他任何一个目录下,只要明白自己的程序的启动和运行过程,放在哪一个目录下无关紧要,但是根据LINUX的通常规则,用户程序最好不要放在系统目录下。
当用户的根文件系统建立好后,可以使用下面的脚本程序建立最后的压缩烧录映象文件,过程如下:
cd /dvk2.3/ #进入开发目录
sh ./mkramdisk.sh #自动将rootfs目录中的所有根文件系统文件打包压缩为ramdisk,并放置到/tftpboot目录下。以便于直接使用tftp服务烧录。
下面是建立RAMDISK的脚本mkramdisk.sh的源代码: umount /mnt dd if=/dev/zero of=/dev/ram bs=1k count=4096 mke2fs -vm0 /dev/ram 4096 mount -t ext2 /dev/ram /mnt echo \"create the ramdisk->/tftpboot\" echo \"coping rootfs/* to /mnt cp rootfs/* /mnt -raf sync dd if=/dev/ram bs=1k count=4096 | gzip -v9 > /tftpboot/ramdisk
umount /mnt
6.1 如何让用户自己的程序在开发板启动后自动运行
要让程序自动运行,通过修改/etc/profile文件,就可以编写脚本,控制启动过程。 举例如下:
# /etc/profile: executed by bash(1) for login shells.
HOME=/root
36
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
PS1=[\\\\w]
PATH=$PATH:./ cd /mnt/yaffs rmmod fifo insmod fifo.o server
上面的例子简单的演示让系统启动时自动启动/mnt/yaffs目录下的server程序。
6.2 如何修改开发板启动后的IP地址
开发板中的LINUX启动后对IP地址的设置是由/usr/etc/rc.local脚本控制的。用户可以直接修改其中的IP地址,修改其中的ifconfig eth0 [新的IP地址]。
/usr/etc/rc.local脚本源代码如下: #!/bin/sh
ifconfig lo 127.0.0.1
route add -net 127.0.0.0 netmask 255.0.0.0 lo ifconfig eth0 192.168.0.200
route add -net 192.168.0.0 netmask 255.255.255.0 eth0 portmap &
/sbin/getty -L ttyS0 115200 vt100
如果只是临时修改IP地址可以在命令行直接输入:ifconfig eth0 [新的IP地址],重新启动后又恢复原先的设置。
7 用户应用软件开发过程说明
用户的应用软件开发,可以使用标准的LINUX库函数进行开发,对于网络通讯的程序开发,可以支持SOCKET编程,开发光盘中有演示客户与服务器通过TCP以太网连接通讯的例子。对于串口编程,使用标准TTY编程接口函数,可以参考LINUX(UNIX)相关书籍中关于终端IO编程的例子。
7.1 Makefile的编写
对于编写具体的程序,可以参考其他相关书籍,在at91rm9200开发板上的开发主要考虑要使用ARM-LINUX编译器,所以需要修改makefile中对编译器的指定。参考Makefile如下:
#KERNELDIR = /usr/src/linux #使用X86的内核头文件 KERNELDIR = /at91rm9200/linux-2.4.19-rmk7 #使用AT91RM9200LINUX内核的头文件 INCLUDEDIR = $(KERNELDIR)/include
EXTRA_LIBS += -lpthread #使用线程库
37
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
CROSS_COMPILE=arm-linux- #指定交叉编译器
AS =$(CROSS_COMPILE)as LD =$(CROSS_COMPILE)ld CC =$(CROSS_COMPILE)gcc CPP =$(CC) -E
AR =$(CROSS_COMPILE)ar NM =$(CROSS_COMPILE)nm STRIP =$(CROSS_COMPILE)strip OBJCOPY =$(CROSS_COMPILE)objcopy OBJDUMP =$(CROSS_COMPILE)objdump
CFLAGS += -I..
CFLAGS += -Wall -O -D__KERNEL__ -DMODULE -I$(INCLUDEDIR) #编译标志
TARGET = fifo.o server client #目标程序列表 all: $(TARGET) #总入口,相当于c中的main函数入口
fifo.o: fifo-drv.c $(CC) -c $(CFLAGS) $^ -o $@
server: server.o $(CC) $(LDFLAGS) -o $@ $< $(EXTRA_LIBS)
client: client.c gcc $< $(LDFLAGS) -o $@ $(EXTRA_LIBS)
install: install -d $(INSTALLDIR) install -c $(TARGET).o $(INSTALLDIR)
clean: rm -f *.o *~ core .depend
7.2 应用软件调试过程
在配置好开发PC计算机的网络环境后,还需要配置PC机端运行minicom软件,其目的是用于监控开发板的运行。
38
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
7.2.1 Linux上minicom的配置
在windows平台下我们进行串口操作是通过超级终端,在Linux平台下我们则通过minicom。minicom是Linux自带的一个串口通讯工具。运行minicom之前我们要做相应配置。其基本步骤如下。
1)在linux平台的X Window界面下建立一个终端(右键点击屏幕——>新建终端),在终端的命令行提示符后键入minicom,回车,你就会看到minicom的启动画面(见图1)。若没有启动X Window则在命令行提示符后直接键入minicom。minicom的配置文件是/etc/minirc.df1中。如果键入minicom后出不来如图示配置画面,可键入minicom –s直接进行minicom配置。
图7.2-1
2)minicom启动后,先按Ctrl+A键,再按Z键(注意不是连续按,Ctrl+A松开后才按Z),进入配置界面(见图2)。按”O”进入配置界面(见图3),按上下键选择Serial port setup,进入端口设置界面,这里有几个重要选项改为如下值(见图4):
(在Change which setting后按哪个字母就进入哪项的配置,如按A进行端口号配置。) A————Serial Device :/dev/ttyS0 (端口号使用串口1) E————BPS/par/bits :/115200 8N1 (波特率) F,E硬件流,软件流都改为NO
若要使用PC 机的串口2 来接板子的串口1 做监控,改为:/dev/ttyS1即可。
39
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
3)选好后按ESC键退出到图3所示画面,选择Save setup as df1保存退出,以后只要启动minicom就是该配置,无需再做改动。
图7.2-2
40
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
图7.2-3
图7.2-4
minicom配置好后目标板与宿主机之间就可进行通讯了,我们要做的只是连接好各种线 其无非就是电源和串口线。根据我们对minicom的配置,我们应把串口线连在COM1上。如果不知道目标板上哪个是COM1,可以分别插上试试哪个通哪个就是了。建立好连接后,此后超级终端显示的信息就是目标板上的信息。在超级终端上的操作就是对目标板的操作。超级终端相当于目标板的显示器。 配置好minicom后,复位开发板,在minicom中我们可以看到开发板的启动过程,当ARM-LINUX启动完成后出现/root >提示符,我们就可以进行命令行操作了,在/root/bin目录下输入mntnfs.sh,此脚本将自动挂装nfs 网络文件系统,其源代码如下:
#!/bin/sh
if [ -z \"$1\" ]; then \\
mount -t nfs 192.168.0.100:/dvk2.3 /host ; \\ else \\
mount -t nfs 192.168.0.$1:/dvk2.3 /host ; \\ fi
如果开发PC计算机的IP地址不是192.168.0.100,比如是192.168.0.3,可以这样运行:
mntnfs.sh 3
41
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
如果运行后没有任何显示,则表示挂装成功。进入开发板的/host目录就进入了开发PC计算机的/dvk2.3目录。如果有错误信息,则检查以太网电缆是否接好,NFS服务器是否配置正确,PC计算机的IP地址是否是192.168.0.100。
进入/host/demos/bin目录运行编译好的程序,测试运行结果的正确与否,可以在程序中添加打印语句进行简单的调试。
由于LINUX的网络编程是完全基于TCP/IP协议,符合国际标准规范,所以在客户端的编程没有任何语言和开发环境的限制,可以使用WINDOWS环境下的任何语言,只要使用TCP/IP协议即可。
7.3 演示软件目录结构说明
光盘中的demos目录存放所有与开发硬件相关的演示程序的源代码,在LINUX下安装后的/dvk2.3目录下会自动建立demos目录,其目录结构如下图:
图7.3-1
1 01_lcd 图形与文字的液晶显示演示 2 02_keyboard 8x8 矩阵键盘读取演示 3 03_rtc 实时钟读写演示 4 04_serial RS232、RS485、红外通讯演示 5 05_io 288个IO端口读写演示 6 06_watchdog 看门狗应用演示 7 07_net TCP、UDP通讯演示 8 08_pthread 多线程应用演示 9 test_all 综合测试 10 bin 存放所有演示程序的可执行文件 11 include 应用开发库的头文件 12 lib 应用开发库
13 Makefile 编译所有演示程序的Makefile 14 Rules.mak 所有演示程序的公共编译规则文件
42
AT91RM9200-DVK2.3开发板使用说明书 飞旭科技
43
因篇幅问题不能全部显示,请点此查看更多更全内容