当前位置:首页 >> 信息与通信 >>

嵌入式系统DM370


Devkit8500D/A
LCD、USB、CCD/COMS、音频输入输出,S-video、以太网、串口、TF 卡接口一体 基于 32 位微控制器的 DM3730/AM3715 评估板

用户手册

版权
? Devkit8500D/A , CAM8000-A , CAM8000-D , GPRS8000-S , GP

S8000-S , WCDMA8000-U , CDMA8000-U , WF8000-U , CAM8100-U , VGA8000 由 深 圳市天漠科技有限公司授权。 ? ? ? AM3715,DM3730由德州仪器(TI)授权。 Sourcery G++ Lite for ARM GNU/Linux 由Codesourcery授权。 Microsoft , MS-DOS , Windows , Windows95 , Windows98 , Windows2000 , Windows embedded CE 6.0 由微软授权。

重要申明
Timll 拥有对该文档的所用权和使用权。 本文档上的信息受版权保护。除非经特别许可,否则未事先经过 Timl 的书面许可,不 得以任何方式或形式来修改、分发或复制本文档的任何部分。

第 2 页 / 共 153 页

版本更新记录:
版本 1.0 1.1 1.2 1.3 日期 2011.7.20 2011.8.11 2011.10.24 2012.6.13 描述 初始版本 修整了部分内容,避免出现歧义 原理图部分名称稍作改动 修改各操作系统启动步骤

第 3 页 / 共 153 页

联系方式:
如果您想订购天漠科技的产品,请与市场部联系: 电话:0755-25500944 / 25631357 / 25635656 传真:0755-25616057 邮箱:sales@timll.com

如果您想获得天漠科技的技术支持,请与技术支持联系: 电话:0755-25503401 邮箱:support@timll.com 网址:http://www.timll.com 地址:深圳市罗湖区太宁路 85 号罗湖科技大厦 405 室

第 4 页 / 共 153 页

目录
1 概述 ........................................................................................................................... 9 1.1 产品介绍 .............................................................................................................. 9 1.2 定义 .................................................................................................................. 10 1.3 特性 .................................................................................................................. 11 2 硬件系统 ................................................................................................................. 13 2.1 CPU ................................................................................................................... 13 2.1.1 CPU 介绍 ................................................................................................... 13 2.1.2 CPU 特性.................................................................................................... 13 2.2 外扩芯片介绍 .................................................................................................... 15 2.2.1 TPS65930 .................................................................................................. 15 2.2.2 MT29C4G96MAZAPCJA-5 ........................................................................ 16 2.2.3 DM9000 ...................................................................................................... 16 2.2.4 FE1.1 .......................................................................................................... 16 2.2.5 TFP410....................................................................................................... 16 2.2.6 MAX3232.................................................................................................... 17 2.3 硬件接口 ........................................................................................................... 17 2.3.1 电源输入接口 ............................................................................................. 17 2.3.2 电源输出接口 ............................................................................................. 18 2.3.3 电源开关 .................................................................................................... 18 2.3.4 S-Video 接口 .............................................................................................. 18 2.3.5 HDMI 接口 .................................................................................................. 19 2.3.6 TFT_LCD 接口 ........................................................................................... 20 2.3.7 音频输出接口 ............................................................................................. 22 2.3.8 摄像头接口................................................................................................. 22 2.3.9 音频输入接口 ............................................................................................. 23 2.3.10 矩阵键盘接口 ........................................................................................... 24 2.3.11 串口接口 .................................................................................................. 24

第 5 页 / 共 153 页

2.3.12 以太网络接口 ........................................................................................... 25 2.3.13 USB OTG 接口 ......................................................................................... 26 2.3.14 USB HOST 接口 ...................................................................................... 26 2.3.15 TF 卡接口 ................................................................................................. 26 2.3.16 JTAG 接口 ............................................................................................... 27 2.3.17 扩展接口 .................................................................................................. 28 2.3.18 按键 ......................................................................................................... 29 2.3.19 LED .......................................................................................................... 30 3 LINUX 操作系统 ...................................................................................................... 31 3.1 介绍 .................................................................................................................. 31 3.2 软件资源 ........................................................................................................... 31 3.3 软件特性 ........................................................................................................... 32 3.4 系统开发 ........................................................................................................... 33 3.4.1 开发环境搭建 ............................................................................................. 33 3.4.2 系统编译 .................................................................................................... 34 3.4.3 系统定制 .................................................................................................... 37 3.5 驱动介绍 ........................................................................................................... 39 3.5.1 NAND ......................................................................................................... 39 3.5.2 SD/MMC ..................................................................................................... 40 3.5.3 Display Sub-System ................................................................................... 41 3.5.4 Video capture ............................................................................................. 42 3.5.5 Audio in/out................................................................................................. 43 3.6 驱动开发 ........................................................................................................... 44 3.6.1 GPIO_keys 驱动 ......................................................................................... 44 3.6.2 GPIO_leds 驱动.......................................................................................... 50 3.7 系统更新 ........................................................................................................... 56 3.7.1 TF 卡系统映像更新 ..................................................................................... 56 3.7.2 NAND Flash 更新 ....................................................................................... 68 3.8 使用说明 ........................................................................................................... 70

第 6 页 / 共 153 页

3.8.1 显示方式选择 ............................................................................................. 70 3.8.2 测试 ........................................................................................................... 73 3.8.3 Demo .......................................................................................................... 82 3.9 上层开发 ........................................................................................................... 98 4 WINCE 操作系统 .................................................................................................. 101 4.1 介绍 ................................................................................................................ 101 4.2 软件资源 ......................................................................................................... 101 4.3 特性 ................................................................................................................ 102 4.4 系统开发 ......................................................................................................... 103 4.4.1 集成开发环境安装.................................................................................... 103 4.4.2 提取 BSP 及样例工程文件到集成开发环境 .............................................. 104 4.4.3 Sysgen & BSP 编译................................................................................. 104 4.4.4 驱动介绍 .................................................................................................. 105 4.5 系统更新 ......................................................................................................... 109 4.5.1 TF 卡更新 ................................................................................................. 109 4.5.2 NAND Flash 更新 ..................................................................................... 115 4.6 使用说明 .......................................................................................................... 116 4.6.1 如何使用 S-VIDEO ......................................................................................... 116 4.6.2 如何使用 openGL ES demo ..................................................................... 116 4.6.3 如何使用 CAM8000-A 模块 ...................................................................... 117 4.6.4 如何使用 CAM8000-D 模块 ...................................................................... 118 4.6.5 如何加入 DSP 硬件加速的 DirectShow filter 支持 ................................... 119 4.7 上层开发 ......................................................................................................... 120 4.7.1 应用程序接口与示例 ................................................................................ 120 4.7.2 GPIO 应用程序接口与示例 ....................................................................... 120 附录........................................................................................................................... 123 附录一 硬件尺寸图 ................................................................................................ 123 附录二 UBUNTU 安装 ............................................................................................. 124

第 7 页 / 共 153 页

附录三 LINUX USB ETHERNET/RNDIS GADGET 驱动安装 ...................................... 138 附录四 LINUX BOOT DISK FORMAT.......................................................................... 141 附录五 TFTP 服务器搭建...................................................................................... 148 附录六 WINCE 相关资源链接................................................................................ 150 附录七 FAQ 总结 .................................................................................................. 151 技术支持和保修服务 ................................................................................................. 152 技术支持服务 ........................................................................................................ 152 保修服务条款 ........................................................................................................ 152 液晶屏幕基本使用保养知识................................................................................... 153 增值服务 ................................................................................................................ 153

第 8 页 / 共 153 页

1 概述
1.1 产品介绍
DevKit8500D/A 评估套件是深圳市天漠科技有限公司推出的基于德州仪器( TI ) DM3730/AM3715 处理器的评估套件。处理器集成了高达 1GHz 的 ARM Cortex?-A8 内 核及高达 800MHz 的具有高级数字信号处理的 DSP 核(DM3730 only),并提供了丰富的 外设接口。DevKit8500 外扩了网口、S-VIDEO 接口、音频输入输出接口、USB、TF 接 口、串口、SPI 接口、IIC 接口、JTAG 接口、CAMERA 接口、TFT 屏接口、触摸屏接口、 键盘接口、HDMI 接口。 Devkit8500 的应用范围: ? ? ? ? ? ? ? ? ? ? 便携式数据终端 导航 自动化资讯娱乐 游戏 医用设备 家庭自动化 人机界面 工业控制 测试与测量仪器 单板计算机

第 9 页 / 共 153 页

Devkit8500 功能模块图:

图 1-1

1.2 定义
Devkit8500A:CPU 基于 AM3715,简称为“A”的 Devkit8500 评估板; Devkit8500D:CPU 基于 DM3730,简称为“D”的 Devkit8500 评估板;

AM3715 与 DM3730 相异的地方主要是 DSP,AM3715 不带 DSP,而 DM3730 带 DSP; 后面书面上会以“Devkit8500”介绍为主,若遇到有 D/A 区分的地方, 会以注意方式说明。

第 10 页 / 共 153 页

1.3 特性
Devkit8500 评估板是基于DM3715/DM3730 处理器,同时也是集成了此芯片所有功能 与特性的评估板,以下是板子的特性: 电气参数 ? ? ? ? 处理器 ? ? ? ? ? ? 存储器 ? ? ? 512MB 32 位 DDR SDRAM 512MB 16 位 NAND Flash 2GB 4 位 iNAND(可选配置,默认不焊接) 1GHz ARM Cortex?-A8 Core 800-MHz TMS320C64x+? DSP Core(DM3730 only) NEON? SIMD Coprocessor POWERVR SGX? Graphics Accelerator ARM: 32 KB I-Cache; 32 KB D-Cache; 256KB L2 Cache On Chip: 64KB RAM; 32KB ROM 工作温度:0℃ ~ 70℃ 环境湿度:20% ~ 90% ,非冷凝 机械尺寸:136.2mm x 105.3mm 电气指标:+5V 电源供电

音频/视频接口 ? ? ? ? 一个 S-VIDEO 接口 一个 HDMI(DVI-D)接口 一个音频 3.5mm 输入接口 一个双声道音频 3.5mm 输出接口

液晶触摸屏接口 ? ? ? 24 位真彩色 分辨率支持高达 2048x2048 4 线触摸屏

第 11 页 / 共 153 页

传输接口 ? 串口: ? ? ? ? UART1,5 线串口,TTL 电平 UART2,5 线串口,TTL 电平 UART3,5 线串口,RS232 电平

USB 接口: ? ? 1 x USB2.0 OTG, High-speed,480Mbps 4 x USB2.0 HOST, High-speed,480Mbps

? ? ? ? ? ?

TF 卡接口 10/100Mbps RJ45 网络接口 1 路 McSPI 接口(多通道 SPI 接口) 1 路 McBSP 接口(多功能串行接口) 1 路 I2C 接口 1 路 HDQ 接口(单总线接口)

输入接口 ? ? ? ? 1 路 CAMERA 接口 6 X 6 键盘接口 14 针标准 JTAG 接口 4 个按键(2 个用户按键,1 个复位按键,1 个休眠唤醒按键)

LED 指示灯 ? ? ? ? ? 1 个电源指示灯 2 个系统指示灯 2 个用户自定义灯 4 个 USB Host 指示灯 1 个 USB Hub 指示灯

第 12 页 / 共 153 页

2 硬件系统
2.1 CPU
2.1.1 CPU 介绍
DM37x/AM37x 是高性能、 增强型数字媒体的处理器, 使用 TI 45 纳米的先进工业技术, 而这种架构被设计用于 ARM 和图形演示的同时,也拥有低功耗的特点。

2.1.2 CPU 特性
时钟(clock) CPU 的时钟包括 sys_32k 、 sys_altclk 、 sys_clkout1 、 sys_clkout2 、 sys_xtalout 、 sys_xtalin 和 sys_clkreq。 sys_32k 32-kHz 时钟是用于低频率运算,该时钟通过管脚 sys_32k,可以唤醒低电模 式(off mode),其中 32-kHz 的频率是 TPS65930 电源管理芯片产生的。 sys_xtalin / sys_xtalout 系统输入时钟(26MHz)是用于产生设备的主时钟,提供给 DPLLs 以及其他模组。

复位(reset) 复位信号是通过 CPU 的 SYS_NRESPWRON 所决定的,低电平复位有效。

通用接口设备(General-Purpose Interface) 通用接口设备包括 6 组通用输入输出接口(GPIO),每一 GPIO 模组提供 32 个专用 的通用接口输入输出管脚,因此通用的 GPIO 可以高达 192 个(6x32)管脚。 上述管脚可以根据下面应用进行配置: ? 数据输入输出(驱动) ? 键盘接口 ? 中断控制

第 13 页 / 共 153 页

显示底层(Display Subsystem) 显示底层主要在 LCD 或者 TV 接口下提供存储帧缓存(SDRAM 或者 SRAM)的逻辑 视频图像,显示底层包括下列内容: ? ? ? ? ? 显示控制(DISPC)模组 远程帧缓冲接口(RFBI)模组 显示串行接口(DSI)的 I/ O 模块和 DSI 协议引擎 DSI PLL 控制器驱动(DSI PLL 和高速 HS 分频器) NTSC / PAL 视频编码

显示控制器和 DSI 协议引擎连接到 L3 和 L4 的内部总线上, 而 RFBI 与 TV 输出编码模 组是连接到 L4 内部总线。

2D/3D 图形加速 2D/3D 图形加速(SGX)的底层加快了 2D 和 3D 的图形应用速度,SGX 底层是基于 Imagination Technologies 公 司 的 POWERVR? SGX 核 , SGX 是 新 一 代 可 编 程 的 POWERVR 图形核,POWERVR SGX530 v1.2.5 的架构是可伸展性,可使用于各个细分市 场,从主流移动设备,至高端桌面图形处理,目标应用包括功能手机,PDA,和一些手持 游戏机等。

第 14 页 / 共 153 页

图 2-1 SGX 图形加速可以同时处理一下种类的数据: ? ? ? ? Pixel 数据 Vertex 数据 Video 数据 通用处理数据

它通过采用两级调度和数据分区来实现多线程任务切换的架构。

2.2 外扩芯片介绍
2.2.1 TPS65930
TPS65930 是用于 OMAP?系列的电源管理芯片,它包括电源管理控制器、USB 高速 传输控制、LED 驱动控制、模数转换(ADC)、实时时钟(RTC)和嵌入式时钟管理(EPC) 等,TPS65930 还包括完整的两路数模转换音频信号和两个 ADC 双语音频道、一路标准的 音频采样率(I2S? )/时分复用(TDM)接口,可以在立体声下行通道播放标准的音频。

第 15 页 / 共 153 页

TPS65930(U1)与 CPU 之间使用 I2C 协议通信,TPS65930 主要的作用是将 1.2V、 1.8V 提供给 CPU,让 CPU 正常运作,TPS65930 还有 Audio in、Audio out、OTG PHY、 Keyboard、ADC、GPIO 功能。

2.2.2 MT29C4G96MAZAPCJA-5
MT29C4G96MAZAPCJA-5 是 Devkit8500 的存储芯片,是 NAND Flash 与 SDRAM DDR 二合一的存储用芯片,大小各为 512MB,NAND Flash 是通过 GPMC 总线实现数据 访问,而 DDR 则是使用 SDRAM Controller(SDRC)实现数据访问。

2.2.3 DM9000
DM9000 是低功耗, 高度集成了快速以太网控制器与通用处理器的芯片, 其中包括一路 10/100M PHY 和 4K DWORD SRAM,该芯片支持 3.3V 与 5V 的 IO 接口。 DevKit8500 使用的是 DM9000 的 10/100M 自适应网络接口。其中 DM9000 内置的 10/100M Ethernet 模块,它兼容 IEEE 802.3 标准协议。网线接口为标准的 RJ45,并且带 有连接指示灯和传输指示灯。 DevKit8500 可通过直通网线连接到网络 hub 上,也可用交叉网线与电脑直接相连。

2.2.4 FE1.1
FE1.1 是 USB 2.0 高速 4 端口集线器的 USB 解决方案。FE1.1 是通过 USB3320 扩展 出 4 路 USB 接口, 方便扩展, 同时也支持高速 (480MHz) , 全速 (12MHz) , 和低速 (1.5MHz) 模式。

2.2.5 TFP410
TFP410 是德州仪器兼容 PanelBus 平板显示产品的终端至终端的 DVI1.0 解决方案, 面向于电脑行业与消费类电子行业。 TFP410 是用于图形控制,无胶合连接的通用接口,其接口的特性优势是可选择总线宽 度,可适应不同的电平信号和信号沿时序,适应 1.1V – 1.8V 范围内的数字电平 low-EMI, 高速总线宽度提供 12 位或者 24 位宽度选择,在 24 位真彩色格式的范围内,DVI 的显示分 辨率频率高达 165MHz。

第 16 页 / 共 153 页

2.2.6 MAX3232
MAX3232 的功能主要是将 TTL 电平转换为 RS232 电平, 以适应与 PC 的 RS232 串口 相互通信。 Devkit8500 使用的是 UART3 作调试串口,因 CPU 的 UART3 默认电压是 1.8V,需要 将电压转换为 3.3V,方可满足外部使用。

2.3 硬件接口

图 2-2

2.3.1 电源输入接口
表 2-1 电源输入接口 J1 管脚 信号 描述

第 17 页 / 共 153 页

1 2 3

GND +5V NC

GND Power supply (+5V) 2A (Type) NC

2.3.2 电源输出接口
表 2-2 电源输出接口 J4 管脚 1 2 3 4 5 信号 VDD50 NC VDD33 ADCIN GND 描述 5V output NC 3.3V output ADC input GND

2.3.3 电源开关
表 2-3 电源开关 SW1 管脚 1 2 3 信号 DC IN VDD50 NC 描述 VDD Input +5V NC

2.3.4 S-Video 接口
表 2-4 S-Video 接口 J10 管脚 1 2 3 信号 GND GND OUTPUT1 描述 GND GND VIDEO Y

第 18 页 / 共 153 页

4

OUTPUT2

VIDEO C

2.3.5 HDMI 接口
表 2-5 HDMI 接口 J12 管脚 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 信号 DAT2+ DAT2_S DAT2DAT1+ DAT1_S DAT1DAT0+ DAT0_S DAT0CLK+ CLK_S CLKCEC NC SCL SDA GND 5V HPLG 描述 TMDS data 2+ TMDS data 2 shield TMDS data 2TMDS data 1+ TMDS data 1 shield TMDS data 1TMDS data 0+ TMDS data 0 shield TMDS data 0TMDS data clock+ TMDS data clock shield TMDS data clockConsumer Electronics Control NC IIC master serial clock IIC serial bidirectional data GND 5V Hot plug and play detect

第 19 页 / 共 153 页

2.3.6 TFT_LCD 接口
表 2-6 TFT_LCD 接口 J9 管脚 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 信号 DSS_D0 DSS_D1 DSS_D2 DSS_D3 DSS_D4 DSS_D5 DSS_D6 DSS_D7 GND DSS_D8 DSS_D9 DSS_D10 DSS_D11 DSS_D12 DSS_D13 DSS_D14 DSS_D15 GND DSS_D16 DSS_D17 DSS_D18 DSS_D19 DSS_D20 DSS_D21 DSS_D22 描述 LCD Pixel data bit 0 LCD Pixel data bit 1 LCD Pixel data bit 2 LCD Pixel data bit 3 LCD Pixel data bit 4 LCD Pixel data bit 5 LCD Pixel data bit 6 LCD Pixel data bit 7 GND LCD Pixel data bit 8 LCD Pixel data bit 9 LCD Pixel data bit 10 LCD Pixel data bit 11 LCD Pixel data bit 12 LCD Pixel data bit 13 LCD Pixel data bit 14 LCD Pixel data bit 15 GND LCD Pixel data bit 16 LCD Pixel data bit 17 LCD Pixel data bit 18 LCD Pixel data bit 19 LCD Pixel data bit 20 LCD Pixel data bit 21 LCD Pixel data bit 22

第 20 页 / 共 153 页

26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

DSS_D23 GND DEN HSYNC VSYNC GND CLK GND X+ XY+ YSPI_CLK SPI_MOSI SPI_MISO SPI_CS IIC_CLK IIC_SDA GND VDD18 VDD33 VDD50 VDD50 RESET PWREN

LCD Pixel data bit 23 GND AC bias control (STN) or pixel data enable (TFT) LCD Horizontal Synchronization LCD Vertical Synchronization GND LCD Pixel Clock GND X+ Position Input X- Position Input Y+ Position Input Y- Position Input SPI clock Slave data in, master data out Slave data out, master data in SPI enable IIC master serial clock IIC serial bidirectional data GND 1.8V 3.3V 5V 5V Reset Power on enable

第 21 页 / 共 153 页

2.3.7 音频输出接口
表 2-7 音频输出接口 J7 管脚 1 2 3 4 5 信号 GND NC Right NC Left 描述 GND NC Right output NC Left output

2.3.8 摄像头接口
摄像头接口 ISP (Camera Image Signal Processing) , 兼容 CCD 工业摄像头和 CMOS 数字摄像头,同时也支持 BT.601,BT.656 制式,我们有提供 CCD 和 CMOS 的摄像头与摄 像头模块,具体可以参考官方网站。 表 2-8 摄像头接口 J14 管脚 1 2 3 4 5 6 7 8 9 10 11 信号 GND D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 描述 GND Digital image data bit 0 Digital image data bit 1 Digital image data bit 2 Digital image data bit 3 Digital image data bit 4 Digital image data bit 5 Digital image data bit 6 Digital image data bit 7 Digital image data bit 8 Digital image data bit 9

第 22 页 / 共 153 页

12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

D10 D11 GND PCLK GND HS VDD50 VS VDD33 XCLKA XCLKB GND FLD WEN STROBE SDA SCL GND VDD18

Digital image data bit 10 Digital image data bit 11 GND Pixel clock GND Horizontal synchronization 5V Vertical synchronization 3.3V Clock output a Clock output b GND Field identification Write Enable Flash strobe control signal IIC master serial clock IIC serial bidirectional data GND 1.8V

2.3.9 音频输入接口
表 2-9 音频输入接口 J6 管脚 1 2 3 4 5 信号 GND NC MIC MAIN P NC MIC MAIN N 描述 GND NC Right input NC Left input

第 23 页 / 共 153 页

2.3.10 矩阵键盘接口
表 2-10 矩阵键盘接口 J5 管脚 1 2 3 4 5 6 7 8 9 10 11 12 13 14 信号 KC0 KR0 KC1 KR1 KC2 KR2 KC3 KR3 KC4 KR4 KC5 KR5 VDD18 GND 描述 Keypad matrix column 0 output Keypad matrix row 0 input Keypad matrix column 1 output Keypad matrix row 1 input Keypad matrix column 2 output Keypad matrix row 2 input Keypad matrix column 3 output Keypad matrix row 3 input Keypad matrix column 4 output Keypad matrix row 4 input Keypad matrix column 5 output Keypad matrix row 5 input 1.8V GND

2.3.11 串口接口
J15 是默认的调试串口,是通过 DM3730/AM3715 的 UART,由 MAX3232 将 TTL 电 平转换为 RS232,使之与电脑端握手。 表 2-11 串口接口 J15 管脚 1 2 3 4 信号 NC RXD TXD NC 描述 NC Receive data Transit data NC

第 24 页 / 共 153 页

5 6 7 8 9

GND NC RTS CTS NC

GND NC Request To Send Clear To Send NC

2.3.12 以太网络接口
表 2-12 以太网络接口 J13 管脚 1 2 3 4 5 6 7 8 9 10 11 12 信号 TX+ TXRX+ VDD25 VDD25 RXNC NC VDD LED1 LED2 VDD 描述 TX+ output TX- output RX+ input 2.5V Power for TX/RX 2.5V Power for TX/RX RX- input NC NC 3.3V Power for LED Speed LED Link LED 3.3V Power for LED

第 25 页 / 共 153 页

2.3.13 USB OTG 接口
表 2-13 USB OTG 接口 J16 管脚 1 2 3 4 5 信号 VBUS DN DP ID GND 描述 +5V USB DataUSB Data+ USB ID GND

2.3.14 USB HOST 接口
表 2-14 USB HOST 接口 J17 管脚 1 2 3 4 信号 VBUS DN DP ID 描述 +5V USB DataUSB Data+ USB ID

2.3.15 TF 卡接口
表 2-15 TF 卡 接口 J3 管脚 1 2 3 4 5 信号 DAT2 DAT3 CMD VDD CLK 描述 Card data 2 Card data 3 Command Signal VDD Clock

第 26 页 / 共 153 页

6 7 8 9

VSS DAT0 DAT1 CD

VSS Card data 0 Card data 1 Card detect

2.3.16 JTAG 接口
表 2-16 JTAG 接口 J2 管脚 1 2 3 4 5 6 7 8 9 10 11 12 13 14 信号 TMS NTRST TDI GND VIO NC TDO GND RTCK GND TCK GND EMU0 EMU1 描述 Test mode select Test system reset Test data input GND 1.8V NC Test data output GND Receive test clock GND Test clock GND Test emulation 0 Test emulation 1

第 27 页 / 共 153 页

2.3.17 扩展接口
J8 是 Devkit8500 的扩展接口,方便做扩展信号的调试。 表 2-17 扩展接口 J8 管脚 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 信号 GND BSP1_DX BSP1_DR BSP1_CLKR BSP1_FSX BSP1_CLKX BSP1_CLKS BSP1_FSR UART1_CTS UART1_RTS UART1_RX UART1_TX GND GPIO_136 GPIO_126 GPIO_137 GPIO_129 GPIO_138 GPIO_55 GPIO_139 GPIO_56 GPIO_61 GPIO_65 描述 GND Transmitted serial data 1 Received serial data 1 Received clock 1 Transmit frame synchronization 1 Transmit clock 1 External clock input 1 Receive frame synchronization 1 UART1 clear to send UART1 request to send UART1 receive data UART1 transmit data GND GPIO_136 GPIO_126 GPIO_137 GPIO_129 GPIO_138 GPIO_55 GPIO_139 GPIO_56 GPIO_61 GPIO_65

第 28 页 / 共 153 页

24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

BSP3_DX BSP3_DR BSP3_CLKX BSP3_FSX GND IIC3_SCL IIC3_SDA SPI1_SIMO SPI1_SOMI SPI1_CLK SPI1_CS0 SPI1_CS3 HDQ_SIO VDD33 VDD18 VDD50 GND

Transmitted serial data 3 Received serial data 3 Transmit clock 3 Transmit frame synchronization 3 GND IIC3 master serial clock IIC3 serial bidirectional data Slave data in, master data out Slave data out, master data in SPI1 clock SPI enable 0 SPI enable 3 Bidirectional HDQ 3.3V 1.8V 5V GND

2.3.18 按键
表 2-18 按键 SW2-5 名称 SW3 SW2 SW4 SW5 ON/OFF RESET USER1 USER2 描述 System ON/OFF key System reset key User-defined key 1 User-defined key 2

第 29 页 / 共 153 页

2.3.19 LED
表 2-19 LED LED 1-10 位号 LED1 LED 2 LED 3 LED 4 LED 5 LED 6 LED 7 LED 8 LED 9 LED 10 信号 3V3 SYS LEDB LED1 LED2 USB1 USB2 USB3 USB4 HUB 描述 3.3V power indicator System LED System LED User-defined key 1 User-defined key 2 USB indicator 1 USB indicator 2 USB indicator 3 USB indicator 4 USB HUB indicator

第 30 页 / 共 153 页

3 Linux 操作系统
3.1 介绍
此部分主要介绍 Devkit8500 linux 软件系统,内容如下: 1) 2) 3) 4) 5) 6) Devkit8500 提供的软件资源介绍; 软件的特性介绍; 开发环境搭建,系统开发,驱动原理以及驱动开发介绍; 系统更新介绍; 系统使用说明; 上层开发介绍。 此部分建议用户: 1) 2) 预先安装好 Ubuntu Linux 系统,具体可以参考附录二部分; 掌握相关的嵌入式 Linux 开发技术。

3.2 软件资源
DevKit8500 出厂时,NAND Flash已经烧写好Linux操作系统。嵌入式Linux系统由 x-loader、u-boot、kernel和rootfs四部分组成,系统结构如图所示:

图 3-1 系统各组成部分特性及作用介绍如下: 1) x-loader是一级引导程序,系统上电后由CPU内部ROM自动拷贝到内部RAM并执 行。主要作用为初始化CPU,拷贝u-boot到内存中,然后把控制权交给u-boot; 2) u-boot是二级引导程序,主要用于和用户进行交互,提供映像更新、引导内核等 功能; 3) kernel使用 2.6.32 内核,根据DevKit8500 的硬件进行内核定制;

第 31 页 / 共 153 页

4)

rootfs采用开源文件系统ubifs,特别适用于嵌入式系统。

3.3 软件特性
名称 备注 NAND / ONENAND x-loader MMC/SD FAT BIOS u-boot NAND / ONENAND MMC/SD FAT NET 支 Kernel Linux-2.6.x serial rtc net flash lcd touch screen mmc/sd Device Driver usb otg usb ehci dvi s-video audio camera keypad led Android Demo DVSDK 持 ROM/CRAM/EXT2/EXT3/FAT/NFS/

JFFS2/UBIFS等多种文件系统 串口驱动 硬件时钟驱动 10/100M以太网卡DM9000 驱动 nand flash驱动(支持nand boot) TFT LCD 驱动 触摸屏控制器ads7846 驱动 mmc/sd控制器驱动 usb otg 2.0 驱动(目前只支持usb device模式) usb ehci驱动 支持dvi-d信号输出 支持s-video信号输出 声卡驱动(支持录/放音) 摄像头驱动 6x6 矩阵键盘驱动 用户led灯驱动 android 2.2 系统 DVSDK 4_00_00_22 系统 表 3-1

第 32 页 / 共 153 页

3.4 系统开发
3.4.1 开发环境搭建
用户使用DevKit8500 进行软件开发之前,必须先搭建Linux交叉开发环境, 并安装到电 脑的linux系统。下面以Ubuntu操作系统为例,介绍如何搭建交叉开发环境。

3.4.1.1 交叉编译工具安装
插入光盘,Ubuntu默认把光盘挂载到/media/cdrom目录下,交叉编译工具就存放在 /media/cdrom/linux/tools目录下。 在Ubuntu终端执行下面指令,将交叉编译工具解压到$HOME目录下面: cd /media/cdrom/linux/tools tar xvf arm-eabi-4.4.0.tar.bz2 -C $HOME tar xvf arm-2007q3.tar.bz2 -C $HOME 源码编译中用到其它的一些工具,同样存放在光盘的 linux/tools 目录下,用户可执行 以下命令拷贝: mkdir $HOME/tools cp /media/cdrom/linux/tools/mkimage $HOME/tools cp /media/cdrom/linux/tools/signGP $HOME/tools cp /media/cdrom/linux/tools/mkfs.ubifs $HOME/tools cp /media/cdrom/linux/tools/ubinize $HOME/tools cp /media/cdrom/linux/tools/ubinize.cfg $HOME/tools

3.4.1.2 添加环境变量
以上工具安装完成后,还需要使用如下命令把它们添加到临时环境变量: export PATH=$HOME/arm-eabi-4.4.0/bin:$HOME/tools:$PATH

用户可把它写入用户目录的.bashrc 文件中,那么系统启动的时候自动 完成环境变量的添加,查看路径可以使用 echo $PATH 命令。

第 33 页 / 共 153 页

3.4.2 系统编译
3.4.2.1 准备
系统所有组成部分的源码位于光盘的 linux/source 目录下,用户在进行开发前需要把 它们解压至 Ubuntu 系统: mkdir $HOME/work cd $HOME/work tar xvf /media/cdrom/linux/source/x-loader-03.00.02.07.tar.bz2 tar xvf /media/cdrom/linux/source/u-boot-03.00.02.07.tar.bz2 tar xvf /media/cdrom/linux/source/linux-2.6.32-devkit8500.tar.bz2 tar xvf /media/cdrom/linux/demo/Android/source/rowboat-android-froyo-devkit8500.ta r.bz2 sudo tar xvf /media/cdrom/linux/source/rootfs.tar.bz2 执行完以上操作后,当前目录下会生成 x-loader-03.00.02.07、u-boot-03.00.02.07、 linux-2.6.32-devkit8500、rootfs、rowboat-android-froyo-devkit8500 目录。

3.4.2.2 一级启动代码编译
DevKit8500 支持 MMC/SD 启动与 NAND Flash 启动,根据不同的启动方式,x-loader 的映像文件有所不同。 下面分别介绍 x-loader 两种启动方式的映像文件生成方法: 1) 用于 SD 卡启动的 MLO

cd x-loader-03.00.02.07 make distclean make omap3devkit8500_config make signGP x-load.bin mv x-load.bin.ift MLO 执行完以上操作后,当前目录下会生成我们需要的 MLO 文件。 2) 用于 NAND Flash 启动的 x-load.bin.ift_for_NAND

第 34 页 / 共 153 页

修改 x-loader-03.00.02.07/include/configs/omap3devkit8500.h 文件, vi x-loader-03.00.02.07/include/configs/omap3devkit8500.h 注释以下行: // #define CONFIG_MMC 交叉编译: cd x-loader-03.00.02.07 make distclean make omap3devkit8500_config make signGP x-load.bin mv x-load.bin.ift x-load.bin.ift_for_NAND 执行完以上操作后,当前目录下会生成我们需要的 x-load.bin.ift_for_NAND 文件。 1

3.4.2.3 二级启动代码编译
cd u-boot-03.00.02.07 make distclean make omap3_devkit8500_config make 执行完以上操作后,当前目录下会生成我们需要的 u-boot.bin 文件。

3.4.2.4 内核编译
对于 Linux 系统,操作如下: cd linux-2.6.32-devkit8500 make distclean make omap3_devkit8500_defconfig make uImage 对于 Andorid 系统,输入操作如下: cd linux-2.6.32-devkit8500 make distclean make omap3_devkit8500_android_defconfig

第 35 页 / 共 153 页

make uImage 执行完以上操作后,arch/arm/boot 目录下会生成我们需要的 uImage 文件。

3.4.2.5 文件系统生成
1) Ramdisk 文件制作:

关于 Ramdisk 的制作,请参考 www.elinux.org/DevKit8600_FAQ 本文档不做详细支持。 2) UBI 文件制作:

cd $HOME/work sudo $HOME/tools/mkfs.ubifs -r rootfs -m 2048 -e 129024 -c 1996 -o ubifs.img sudo $HOME/tools/ubinize -o ubi.img -m 2048 -p 128KiB -s 512

$HOME/tools/ubinize.cfg 执行完以上操作后,当前目录下会生成我们需要的ubi.img文件。

3.4.2.6 Android 编译
1) 执行下面指令开始编译 Android:

cd rowboat-android-froyo-devkit8500 make 2) 修改 build_ubi.sh 脚本文件:

vi build_ubi.sh 将“/home/embest”修改为“$HOME” : MKFSUBI=/home/embest/tools/mkfs.ubifs MKFSUBI_ARG="-r ${ROOT_DIR} -m 2048 -e 129024 -c 4063 -o temp/ubifs.img" UBINIZE=/home/embest/tools/ubinize UBINIZECFG=/home/embest/tools/ubinize.cfg UBINIZE_ARG="-o ubi.img -m 2048 -p 128KiB -s 512 ${UBINIZECFG}" 修改为: MKFSUBI=$HOME/tools/mkfs.ubifs MKFSUBI_ARG="-r ${ROOT_DIR} -m 2048 -e 129024 -c 4063 -o temp/ubifs.img"

第 36 页 / 共 153 页

UBINIZE=$HOME/tools/ubinize UBINIZECFG=$HOME/tools/ubinize.cfg UBINIZE_ARG="-o ubi.img -m 2048 -p 128KiB -s 512 ${UBINIZECFG}" 3) 输入下述指令,开始制作 ubi 文件系统:

sudo ./build_ubi.sh 在temp/下即可找到ubi.img。

3.4.3 系统定制
linux内核有很多内核配置选项,用户可以在默认配置的基础上,增加或裁减驱动和一 些内核特性,以更适合用户的需要。下面举例说明系统定制的一般流程。

3.4.3.1 修改内核配置
出厂内核源码中提供有默认配置文件: linux-2.6.32-devkit8500/arch/arm/configs/omap3_devkit8500_defconfig 用户可在其基础上进行系统定制: cd linux-2.6.32-devkit8500 cp arch/arm/configs/omap3_devkit8500_defconfig .config make menuconfig

若输入 make menuconfig 系统出错,Ubuntu 系统是需要安装 ncurse, ncurses 库是字符图形库,用于 kernel 的 make menuconfig,具体的安装指 令: sudo apt-get install ncurses-dev

下面以 usb gadget 模拟 usb mass storage device 为例子,举例介绍系统的定制: Select the configuration below: -> Device Drivers -> USB support -> USB Gadget Support -> USB Gadget Drivers

第 37 页 / 共 153 页

图 3-2 选择 “File-backed Storage Gadget”为<M>,退出后选择保存重新编译内核即可。

3.4.3.2 编译
保存配置,执行以下命令重新编译内核: make uImage make modules 执 行 完 以 上 操 作 后 , arch/arm/boot 目 录 下 生 成 新 的 内 核 映 像 uImage , drivers/usb/gadget 目录下生成模块文件 g_file_storage.ko。

第 38 页 / 共 153 页

3.5 驱动介绍
3.5.1 NAND

App,System call

User

VFS

MTD user module JFFS2 JFFS Char device Block device

Memory technology device Generic NAND driver Kernel

MTD chip driver NAND flash chip driver CFI flash driver RAM,ROM Chips etc

GPMC module

NAND flash 图 3-3 Modular structure for NAND

Hardware

嵌入式系统中使用的固态存储器主要为 flash,在本系统中为 NAND Flash。 NAND Flash 作为块设备使用,其上建立有文件系统,用户与 NAND flash 的交互主要 通过具体的文件系统来完成。为了屏蔽不同 flash 存储器之间的差异,内核在文件系统与具 体的 flash 驱动之间插入了 MTD 子系统进行管理。 所以,用户访问 NAND Flash 经过以下流程: User->System Call->VFS->Block Device Driver->MTD->NAND Flash Driver->NAND Flash。 驱动参考文件:

第 39 页 / 共 153 页

linux-2.6.32-devkit8500/drivers/mtd/nand/ linux-2.6.32-devkit8500/drivers/mtd/nand/omap2.c

3.5.2 SD/MMC

App,System call

User

Kernel(Generic disk handler,File system)

BUFFER_CACHE Kernel MMC_QUEUE

MMC/SD CORE

MMC_BLOCK

MMC/SD CONTROLLER DRIVER

HARDWARE(MMC/SD/SDIO CONTROLLER)

Hardware

图 3-4 Modular structure for SD/MMC Linux 下 SD/MMC 卡驱动主要分为 SD/MMC core、 mmc_block、 mmc_queue、 SD/MMC driver 四大部分: 1) 2) 3) 4) SD/MMC core 实现 SD/MMC 卡操作中与结构无关的核心代码。 mmc_block 实现 SD/MMC 卡作为块设备使用时的驱动结构。 mmc_queue 实现请求队列的管理。 SD/MMC driver 实现具体的控制器驱动。

驱动参考文件: linux-2.6.32-devkit8500/drivers/mmc/ linux-2.6.32-devkit8500/drivers/mmc/host/omap_hsmmc.c

第 40 页 / 共 153 页

3.5.3 Display Sub-System
Control Application GUI Application Streamimg Application

User

sysfs Interface

/dev/fb0 FBDEV Driver

/dev/v4l2/video1 /dev/v4l2/video2 V4L2 Driver

Graphics overlay

Video1 overlay DSS Library LCD Manager TV Manager

Video2 overlay

Kernel

DSS Library LCD Control Video Encoder

Hardware

图 3-5 Modular structure for display 显示子系统硬件部分由一个 graphics 通道, 两个 video 通道和两个 overlay 管理单元所 组成,其中一个 overlay 管理单元负责数字接口,另一个 overlay 管理单元负责模拟接口。 数字接口负责管理 LCD 和 DVI 的输出,模拟接口负责管理 TV 输出。 Display 驱动的主要功能是提供上层应用层调用的接口,并管理显示子系统各个硬件部 分。 驱动参考文件: linux-2.6.32-devkit8500/drivers/video/omap2/ linux-2.6.32-devkit8500/drivers/video/omap2/omapfb/omapfb-main.c

第 41 页 / 共 153 页

3.5.4 Video capture

Video capture application

User

V4L2 LAYER

CAMERA DRIVER

Kernel

CCDC DRIVER

DECODER DRIVER

HARDWARE

Hardware

图 3-6 Modular structure for video capture V4L2 子系统(V4L2 Subsystem) Linux的V4L2子系统主要作为访问摄像头驱动的中间层支持。基于摄像头的上层应用可 以通过V4L2 的API去访问摄像头驱动。Linux 2.6 内核的V4L2子系统,就是基于V4L2规范 的标准进行设计的。 视频缓冲库(Video Buffer Library) Video Buffer Library 是 V4L2 自带的一部分,它提供辅助的功能,通过队列的方式,有 效的管理视频缓冲。 摄像头驱动(Camera Driver) 摄像头驱动允许通过外部解码器捕获视频。摄像头驱动作为master device的方式,注 册到V4L2层。任何作为slave device方式添加到V4L2层上的解码器驱动,通过新的V4L2 master-slave接口,与摄像头控制器驱动关联。目前驱动只实现一个摄像头控制器关联一个 解码器设备。 解码器驱动(Decoder Driver)

第 42 页 / 共 153 页

解码驱动必须遵循 V4L2 master-slave 接口,作为 slave device 方式注册到 V4L2 层。 更换解码器只需要重新编写解码器驱动, 而不需要修改摄像头驱动, 每一个解码驱动都会提 供一套 IOCTLs 接口,供摄像头驱动调用。 CCDC library CCDC作为数据输入的硬件模块。通过并行接口从sensor/decoder获取数据。CCDC library提供配置CCDC模组的API,供摄像头驱动调用。 驱动参考文件: linux-2.6.32-devkit8500/drivers/media/video/ linux-2.6.32-devkit8500/drivers/media/video/omap34xxcam.c linux-2.6.32-devkit8500/drivers/media/video/tvp514x-int.c

3.5.5 Audio in/out

Native ALSA application User ALSA LIBRARY

ALSA KERNEL API PCM CONTROL

Kernel ALSA SOC CORE

CODEC
DRIVER

MACHINE
DRIVER

PLATFORM
DRIVER

HARDWARE 图 3-7 Modular structure for Audio

Hardware

ASoC 嵌入式音频系统基本分割以下三部分: ? 编解码器驱动: 编解码器驱动是一个平台无关, 包括 audio controls, audio interface

第 43 页 / 共 153 页

capabilities, codec dapm definition and codec IO functions; ? 平台驱动: 平台驱动包括平台相关的 audio dma engine and audio interface drivers (e.g. I2S, AC97, PCM); ? Machine 驱动: Machine 驱动管理任何 machine 相关的 controls and audio events i.e. turning on an amp at start of playback; 驱动参考文件: linux-2.6.32-devkit8500/sound/soc/ linux-2.6.32-devkit8500/sound/soc/omap/omap3devkit8500.c linux-2.6.32-devkit8500/sound/soc/codecs/twl4030.c

3.6 驱动开发
3.6.1 GPIO_keys 驱动
1)设备定义 linux-2.6.32-devkit8500/arch/arm/mach-omap2/board-omap3devkit8500.c 配置 gpio 26 为”menu”键,返回键值”KEY_F1”,低电平触发;gpio 29 为”back”键,返 回键值”KEY_ESC”,低电平触发。 static struct gpio_keys_button gpio_buttons[] = { { .code .gpio .desc .active_low }, { .code .gpio .desc .active_low = KEY_ESC, = 29, = "back", = true, = KEY_F1, = 26, = "menu", = true,

第 44 页 / 共 153 页

}, }; static struct gpio_keys_platform_data gpio_key_info = { .buttons .nbuttons }; = gpio_buttons, = ARRAY_SIZE(gpio_buttons),

static struct platform_device keys_gpio = { .name .id .dev = "gpio-keys", = -1, ={ .platform_data = &gpio_key_info, }, }; 2)GPIO pinmux 配置 配置 GPIO 26、29 为 M4(gpio 模式)、IEN(允许输入) u-boot-03.00.02.07/board/timll/devkit8500/devkit8500.h /* * IEN - Input Enable * IDIS - Input Disable * PTD - Pull type Down * PTU - Pull type Up * DIS - Pull type selection is inactive * EN * M0 - Pull type selection is active - Mode 0

* The commented string gives the final mux configuration for that pin */ MUX_VAL(CP(ETK_D12_ES2), MUX_VAL(CP(ETK_D15_ES2), (IEN | PTU | DIS | M4)) /*GPIO_26*/\ (IEN | PTU | DIS | M4)) /*GPIO_29*/\

第 45 页 / 共 153 页

3)驱动设计 linux-2.6.32-devkit8500/drivers/input/keyboard/gpio_keys.c a) 调用 platform_driver_register 注册 gpio_keys 驱动

static struct platform_driver gpio_keys_device_driver = { .probe .remove .driver .name = gpio_keys_probe, = __devexit_p(gpio_keys_remove), ={ = "gpio-keys",

.owner = THIS_MODULE, #ifdef CONFIG_PM .pm #endif } }; = &gpio_keys_pm_ops,

static int __init gpio_keys_init(void) { return platform_driver_register(&gpio_keys_device_driver); }

static void __exit gpio_keys_exit(void) { platform_driver_unregister(&gpio_keys_device_driver); }

module_init(gpio_keys_init); module_exit(gpio_keys_exit);

MODULE_LICENSE("GPL");

第 46 页 / 共 153 页

MODULE_AUTHOR("Phil Blundell <pb@handhelds.org>"); MODULE_DESCRIPTION("Keyboard driver for CPU GPIOs"); MODULE_ALIAS("platform:gpio-keys"); b) 调用 input_register_device 注册 input 驱动

static int __devinit gpio_keys_probe(struct platform_device *pdev) { … input = input_allocate_device(); … for (i = 0; i < pdata->nbuttons; i++) { struct gpio_keys_button *button = &pdata->buttons[i]; struct gpio_button_data *bdata = &ddata->data[i]; unsigned int type = button->type ?: EV_KEY;

bdata->input = input; bdata->button = button;

error = gpio_keys_setup_key(dev, bdata, button); if (error) goto fail2;

if (button->wakeup) wakeup = 1;

input_set_capability(input, type, button->code); }

error = input_register_device(input); …

第 47 页 / 共 153 页

c)

申请 gpio,配置 gpio 为输入,注册 gpio 中断

static int __devinit gpio_keys_setup_key(struct device *dev, struct gpio_button_data *bdata, struct gpio_keys_button *button) { char *desc = button->desc ? button->desc : "gpio_keys"; int irq, error;

setup_timer(&bdata->timer, gpio_keys_timer, (unsigned long)bdata); INIT_WORK(&bdata->work, gpio_keys_work_func);

error = gpio_request(button->gpio, desc); if (error < 0) { dev_err(dev, "failed to request GPIO %d, error %d\n", button->gpio, error); goto fail2; }

error = gpio_direction_input(button->gpio); if (error < 0) { dev_err(dev, "failed to configure" " direction for GPIO %d, error %d\n", button->gpio, error); goto fail3; }

irq = gpio_to_irq(button->gpio); if (irq < 0) { error = irq;

第 48 页 / 共 153 页

dev_err(dev, "Unable to get irq number for GPIO %d, error %d\n", button->gpio, error); goto fail3; }

error = request_irq(irq, gpio_keys_isr, IRQF_SHARED | IRQF_TRIGGER_RISING IRQF_TRIGGER_FALLING, desc, bdata); if (error) { dev_err(dev, "Unable to claim irq %d; error %d\n", irq, error); goto fail3; } |

return 0;

fail3: gpio_free(button->gpio); fail2: return error; } d) 中断处理

按键被按下,产生中断,汇报键值: static irqreturn_t gpio_keys_isr(int irq, void *dev_id) { … schedule_work(&bdata->work);

第 49 页 / 共 153 页

… }

static void gpio_keys_work_func(struct work_struct *work) { … gpio_keys_report_event(bdata); … }

static void gpio_keys_report_event(struct gpio_button_data *bdata) { struct gpio_keys_button *button = bdata->button; struct input_dev *input = bdata->input; unsigned int type = button->type ?: EV_KEY; int state = (gpio_get_value(button->gpio) ? 1 : 0) ^ button->active_low;

input_event(input, type, button->code, !!state); input_sync(input); }

3.6.2 GPIO_leds 驱动
1)设备定义 linux-2.6.32-devkit8500/arch/arm/mach-omap2/board-omap3devkit8500.c 配置 GPIO 186 对应”sys_led” (系统心跳灯) 、twl4030 的 LEDB 为”user_ledb”, twl4030 的 gpio2 为”user_led1”、twl4030 的 gpio15 为”user_led2”,均为低电平有 效。 static struct gpio_led gpio_leds[] = { {

第 50 页 / 共 153 页

.name .default_trigger .gpio .active_low }, { .name .gpio .active_low }, { .name .gpio .active_low }, { .name .gpio .active_low },

= "sys_led", = "heartbeat", = 186, = true,

= "user_ledb", = -EINVAL, = true,

= "user_led1", = -EINVAL, = true,

= "user_led2", = -EINVAL, = true,

};

static struct gpio_led_platform_data gpio_led_info = { .leds .num_leds }; = gpio_leds, = ARRAY_SIZE(gpio_leds),

static struct platform_device leds_gpio = {

第 51 页 / 共 153 页

.name .id .dev

= "leds-gpio", = -1, ={ .platform_data = &gpio_led_info,

}, };

static int devkit8500_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) { … /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */ gpio_leds[1].gpio = gpio + TWL4030_GPIO_MAX + 1; gpio_leds[2].gpio = gpio + 2; gpio_leds[3].gpio = gpio + 15; … } 2)GPIO pinmux 配置 u-boot-03.00.02.07/board/timll/devkit8500/devkit8500.h 配置 GPIO 186 为 M4(gpio 模式)、IDIS(不允许输入) /* * IEN - Input Enable * IDIS - Input Disable * PTD - Pull type Down * PTU - Pull type Up * DIS - Pull type selection is inactive * EN * M0 - Pull type selection is active - Mode 0

* The commented string gives the final mux configuration for that pin

第 52 页 / 共 153 页

*/ MUX_VAL(CP(SYS_CLKOUT2), 3)驱动设计 linux-2.6.32-devkit8500/drivers/leds/leds-gpio.c a) 调用 platform_driver_register 注册 gpio_leds 驱动 (IDIS | PTU | EN | M4)) /*GPIO_186*/\

static struct platform_driver gpio_led_driver = { .probe .remove .driver .name = gpio_led_probe, = __devexit_p(gpio_led_remove), ={ = "leds-gpio",

.owner = THIS_MODULE, }, };

static int __init gpio_led_init(void) { int ret;

#ifdef CONFIG_LEDS_GPIO_PLATFORM ret = platform_driver_register(&gpio_led_driver); if (ret) return ret; #endif #ifdef CONFIG_LEDS_GPIO_OF ret = of_register_platform_driver(&of_gpio_leds_driver); #endif #ifdef CONFIG_LEDS_GPIO_PLATFORM if (ret) platform_driver_unregister(&gpio_led_driver);

第 53 页 / 共 153 页

#endif

return ret; }

static void __exit gpio_led_exit(void) { #ifdef CONFIG_LEDS_GPIO_PLATFORM platform_driver_unregister(&gpio_led_driver); #endif #ifdef CONFIG_LEDS_GPIO_OF of_unregister_platform_driver(&of_gpio_leds_driver); #endif }

module_init(gpio_led_init); module_exit(gpio_led_exit);

MODULE_AUTHOR("Raphael <tpiepho@freescale.com>");

Assenat

<raph@8d.com>,

Trent

Piepho

MODULE_DESCRIPTION("GPIO LED driver"); MODULE_LICENSE("GPL"); b) 申请 gpio,调用 led_classdev_register 注册 led_classdev 驱动

static int __devinit gpio_led_probe(struct platform_device *pdev) { … leds_data = kzalloc(sizeof(struct gpio_led_data) * pdata->num_leds, GFP_KERNEL); …

第 54 页 / 共 153 页

for (i = 0; i < pdata->num_leds; i++) { ret = create_gpio_led(&pdata->leds[i], &leds_data[i], &pdev->dev, pdata->gpio_blink_set); if (ret < 0) goto err; } … }

static int __devinit create_gpio_led(const struct gpio_led *template, struct gpio_led_data *led_dat, struct device *parent, int (*blink_set)(unsigned, unsigned long *, unsigned long *)) { … ret = gpio_request(template->gpio, template->name); … ret = gpio_direction_output(led_dat->gpio, led_dat->active_low ^ state); … ret = led_classdev_register(parent, &led_dat->cdev); … } c) 用户通过访问/sys/class/leds/xxx/brightness 文件,调用 gpio_led_set 函数, 控制 led 灯的状态 static void gpio_led_set(struct led_classdev *led_cdev, enum led_brightness value) { … gpio_set_value(led_dat->gpio, level); }

第 55 页 / 共 153 页

3.7 系统更新
3.7.1 TF 卡系统映像更新
1)TF 卡格式化 请使用 HP USB Disk Storage Format Tool 2.0.6 格式 TF 卡。 软件下载链接:http://www.embedinfo.com/english/download/SP27213.exe a) b) 把 MMC/SD 卡插入 PC 下读卡器中 打开 HP USB Disk Storage Format Tool,出现类似提示如下:

图 3-8 c) d) e) 选择”FAT32“系统格式 点击”Start” 等待格式化完成,点击”OK”

第 56 页 / 共 153 页

HP USB Disk Storage Format Tool 会将清除 TF 卡的分区。 若需要保留分区,请使用电脑系统自带的格式软件。 2)映像更新 拷贝 linux/image 目录下的所有文件拷贝到 TF 卡上, 将 TF 卡接入板子上电启动, 串口 信息显示如下: 默认 4.3 寸 LCD 显示。 如想使用其他的显示设备,在启动时进入 u-boot 设置显示方式, 再输入 boot 继续启动即可。 显示方式的设置方法请参考 【3.8.1 显示方式选择】。

60

Texas Instruments X-Loader 1.47 (Feb 17 2011 - 17:33:15) Devkit8500 xM Rev A Starting X-loader on MMC Reading boot sector

1154704 Bytes Read from MMC Starting OS Bootloader from MMC... Starting OS Bootloader...

U-Boot 2010.06-rc1-svn (Jun 06 2012 - 09:22:53)

OMAP3630-GP ES2.1, CPU-OPP2 L3-165MHz OMAP3 Devkit8500 board + LPDDR/NAND I2C: ready

DRAM: 512 MiB NAND: 512 MiB *** Warning - bad CRC or NAND, using default environment

第 57 页 / 共 153 页

In: Out: Err:

serial serial serial

Devkit8500 xM Rev A Die ID #4fd000029e3800000168682f0301d023 Net: dm9000

Hit any key to stop autoboot: 0 mmc1 is available reading boot.scr

** Unable to read "boot.scr" from mmc 0:1 ** reading uImage

2547104 bytes read reading ramdisk.gz

7686374 bytes read Booting from ramdisk ... ## Booting kernel from Legacy Image at 81000000 ... Image Name: Image Type: Data Size: Linux-2.6.32 ARM Linux Kernel Image (uncompressed) 2547040 Bytes = 2.4 MiB

Load Address: 80008000 Entry Point: 80008000 Verifying Checksum ... OK Loading Kernel Image ... OK OK

第 58 页 / 共 153 页

Starting kernel ...

Uncompressing Linux..................................................................................................................................... ......................... done, booting the kernel. Linux version 2.6.32 (luofc@TIOP) (gcc version 4.4.0 (GCC) ) #1 Wed Jun 6 09:31:08 CST 2012 CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache Machine: OMAP3 DEVKIT8500 Board Memory policy: ECC disabled, Data cache writeback OMAP3630/DM3730 ES1.0 (l2cache iva sgx neon isp 192mhz_clk ) SRAM: Mapped pa 0x40200000 to va 0xfe400000 size: 0x100000 Reserving 12582912 bytes SDRAM for VRAM Built 1 zonelists in Zone order, mobility grouping on. Total pages: 130048 Kernel command line: console=ttyS2,115200n8 mpurate=1000 vram=12M rw

omapdss.def_disp=lcd

omapfb.mode=lcd:4.3inch_LCD

root=/dev/ram0

ramdisk_size=65536 initrd=0x81600000,64M rootfstype=ext2 PID hash table entries: 2048 (order: 1, 8192 bytes) Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) Memory: 256MB 256MB = 512MB total Memory: 436608KB available (4388K code, 377K data, 164K init, 0K highmem) Hierarchical RCU implementation. NR_IRQS:402 Clocking rate (Crystal/Core/MPU): 26.0/332/600 MHz Reprogramming SDRC clock to 332000000 Hz GPMC revision 5.0 IRQ: Found an INTC at 0xfa200000 (revision 4.0) with 96 interrupts

第 59 页 / 共 153 页

Total of 96 interrupts on 1 active controller OMAP GPIO hardware version 2.5 OMAP clockevent source: GPTIMER12 at 32768 Hz Console: colour dummy device 80x30 Calibrating delay loop... 508.37 BogoMIPS (lpj=1986560) Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok regulator: core version 0.5 NET: Registered protocol family 16 Found NAND on CS0 Registering NAND on CS0 Unable to get LCD PWREN GPIO Target VDD1 OPP = 4, VDD2 OPP = 2 OMAP DMA hardware revision 5.0 bio: create slab <bio-0> gistered new interface driver hub usbcore: registered new device driver usb i2c_omap i2c_omap.1: bus 1 rev4.0 at 2600 kHz twl4030: PIH (irq 7) chaining IRQs 368..375 twl4030: power (irq 373) chaining IRQs 376..383 twl4030: gpio (irq 368) chaining IRQs 384..401 regulator: VUSB1V5: 1500 mV normal standby regulator: VUSB1V8: 1800 mV normal standby regulator: VUSB3V1: 3100 mV normal standby twl4030_usb twl4030_usb: Initialized TWL4030 USB module regulator: VMMC1: 1850 <--> 3150 mV normal standby regulator: VDAC: 1800 mV normal standby regulator: VPLL2: 1800 mV normal standby regulator: VMMC2: 1850 <--> 3150 mV normal standby regulator: VSIM: 1800 <--> 3000 mV normal standby

第 60 页 / 共 153 页

i2c_omap i2c_omap.2: bus 2 rev4.0 at 400 kHz i2c_omap i2c_omap.3: bus 3 rev4.0 at 100 kHz Switching to clocksource 32k_counter musb_hdrc: version 6.0, musb-dma, otg (peripheral+host), debug=0 musb_hdrc: USB OTG mode controller at fa0ab000 using DMA, IRQ 92 NET: Registered protocol family 2 IP route cache hash table entries: 4096 (order: 2, 16384 bytes) TCP established hash table entries: 16384 (order: 5, 131072 bytes) TCP bind hash table entries: 16384 (order: 4, 65536 bytes) TCP: Hash tables configured (established 16384 bind 16384) TCP reno registered UDP hash table entries: 256 (order: 0, 4096 bytes) UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) NET: Registered protocol family 1 RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. Trying to unpack rootfs image as initramfs... rootfs image is not initramfs (no cpio magic); looks like an initrd Freeing initrd memory: 65536K omap-iommu omap-iommu.0: isp registered NetWinder Floating Point Emulator V0.97 (double precision) ashmem: initialized VFS: Disk quotas dquot_6.5.2 Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) msgmni has been set to 981 alg: No test for stdrng (krng) io scheduler noop registered io scheduler deadline registered

第 61 页 / 共 153 页

io scheduler cfq registered (default) OMAP DSS rev 2.0 OMAP DISPC rev 3.0 OMAP VENC rev 2 Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654 serial8250.1: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654 serial8250.2: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654 console [ttyS2] enabled brd: module loaded loop: module loaded omap2-nand driver initializing NAND device: Manufacturer ID: 0x2c, Chip ID: 0xbc (Micron NAND 512MiB 1,8V 16-bit) cmdlinepart partition parsing not available Creating 5 MTD partitions on "omap2-nand": 0x000000000000-0x000000080000 : "X-Loader" 0x000000080000-0x000000260000 : "U-Boot" 0x000000260000-0x000000280000 : "U-Boot Env" 0x000000280000-0x000000680000 : "Kernel" 0x000000680000-0x000020000000 : "File System" PPP generic driver version 2.4.2 PPP Deflate Compression module registered PPP BSD Compression module registered PPP MPPE Compression module registered NET: Registered protocol family 24 PPPoL2TP kernel driver, V1.0 dm9000 Ethernet Driver, V1.31 eth0: dm9000a at e0862000,e0866400 IRQ 185 MAC: 00:11:22:33:44:55 (chip)

第 62 页 / 共 153 页

usbcore: registered new interface driver asix usbcore: registered new interface driver cdc_ether usbcore: registered new interface driver cdc_eem usbcore: registered new interface driver dm9601 usbcore: registered new interface driver smsc95xx usbcore: registered new interface driver gl620a usbcore: registered new interface driver net1080 usbcore: registered new interface driver plusb usbcore: registered new interface driver rndis_host usbcore: registered new interface driver cdc_subset usbcore: registered new interface driver zaurus usbcore: registered new interface driver MOSCHIP usb-ethernet driver ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver ehci-omap ehci-omap.0: OMAP-EHCI Host Controller ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 1 ehci-omap ehci-omap.0: irq 77, io mem 0x48064800 ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00 hub 1-0:1.0: USB hub found hub 1-0:1.0: 3 ports detected Initializing USB Mass Storage driver... usbcore: registered new interface driver usb-storage USB Mass Storage support registered. g_ether gadget: using random self ethernet address g_ether gadget: using random host ethernet address usb0: MAC 56:a7:aa:41:c2:cb usb0: HOST MAC 2e:1d:74:e4:d5:71 g_ether gadget: Ethernet Gadget, version: Memorial Day 2008 g_ether gadget: g_ether ready musb_hdrc musb_hdrc: MUSB HDRC host driver

第 63 页 / 共 153 页

musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 2 hub 2-0:1.0: USB hub found hub 2-0:1.0: 1 port detected mice: PS/2 mouse device common for all mice input: gpio-keys as /devices/platform/gpio-keys/input/input0 input: TWL4030 Keypad as

/devices/platform/i2c_omap.1/i2c-1/1-004a/twl4030_keypad/input/input1 ads7846 spi2.0: touchscreen, irq 187 input: ADS7846 Touchscreen as

/devices/platform/omap2_mcspi.2/spi2.0/input/input2 using rtc device, twl_rtc, for alarms twl_rtc twl_rtc: rtc core: registered twl_rtc as rtc0 twl_rtc twl_rtc: Power up reset detected. twl_rtc twl_rtc: Enabling TWL-RTC. i2c /dev entries driver Linux video capture interface: v2.00 tvp514x 2-005d: Registered to v4l2 master omap34xxcam!! omap-iommu omap-iommu.0: isp: version 1.1 usbcore: registered new interface driver uvcvideo USB Video Class driver (v0.1.0) OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec Registered led device: sys_led Registered led device: user_ledb Registered led device: user_led1 Registered led device: user_led2 usbcore: registered new interface driver usbhid usbhid: USB HID core driver Advanced Linux Sound Architecture Driver Version 1.0.21. usb 1-1: new high speed USB device using ehci-omap and address 2

第 64 页 / 共 153 页

No device for DAI omap-mcbsp-dai-0 No device for DAI omap-mcbsp-dai-1 No device for DAI omap-mcbsp-dai-2 No device for DAI omap-mcbsp-dai-3 No device for DAI omap-mcbsp-dai-4 OMAP3 Devkit8500 SoC init asoc: twl4030 <-> omap-mcbsp-dai-0 mapping ok ALSA device list: #0: omap3devkit8500 (twl4030) TCP cubic registered NET: Registered protocol family 17 NET: Registered protocol family 15 Power Management for TI OMAP3. Unable to set L3 frequency (400000000) Switched to new clocking rate (Crystal/Core/MPU): 26.0/332/1000 MHz IVA2 clocking rate: 800 MHz SmartReflex driver initialized VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3 Console: switching to colour frame buffer device 60x34 regulator_init_complete: incomplete constraints, leaving VDVI on regulator_init_complete: incomplete constraints, leaving VDAC on twl_rtc twl_rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800) hub 1-1:1.0: USB hub found hub 1-1:1.0: 4 ports detected mmc0: host does not support reading read-only switch. assuming write-enable. mmc0: new high speed SD card at address c335 mmcblk0: mmc0:c335 SD02G 1.83 GiB mmcblk0: p1 tvp514x 2-005d: chip id mismatch msb:0x87 lsb:0x87

第 65 页 / 共 153 页

tvp514x 2-005d: Unable to detect decoder tvp514x 2-005d: chip id mismatch msb:0x87 lsb:0x87 tvp514x 2-005d: Unable to detect decoder tvp514x 2-005d: chip id mismatch msb:0x87 lsb:0x87 tvp514x 2-005d: Unable to detect decoder tvp514x 2-005d: chip id mismatch msb:0x87 lsb:0x87 tvp514x 2-005d: Unable to detect decoder omapdss DPI error: display already enabled omap_vout omap_vout: 'lcd' Display already enabled omapdss DPI error: display already enabled omap_vout omap_vout: 'lcd' Display already enabled omap_vout omap_vout: Buffer Size = 3686400 omap_vout omap_vout: : registered and initialized video device 0 omap_vout omap_vout: Buffer Size = 3686400 omap_vout omap_vout: : registered and initialized video device 1 RAMDISK: gzip image found at block 0 EXT2-fs (ram0): warning: mounting unchecked fs, running e2fsck is recommended VFS: Mounted root (ext2 filesystem) on device 1:0. Freeing init memory: 164K INIT: version 2.86 booting Starting udevtar: removing leading '/' from member names

Remounting root file system... mount: mounting /dev/root on / failed: Invalid argument mount: mounting /dev/root on / failed: Invalid argument root: mount: mounting rootfs on / failed: No such file or directory root: mount: mounting usbfs on /proc/bus/usb failed: No such file or directory Setting up IP spoofing protection: rp_filter. Configuring network interfaces... udhcpc (v1.11.3) started

第 66 页 / 共 153 页

Sending discover... udhcpc: sendto: Network is down Sending discover... udhcpc: sendto: Network is down Sending discover... udhcpc: sendto: Network is down No lease, failing done. Tue Jan 27 08:47:00 UTC 2009 INIT: Entering runlevel: 5 Starting syslogd/klogd: done

.-------. | | | | | | | |-----.-----.-----.| | | | | | | __ | .-. .----..-----.-----. ---'| '--.| .-'| | |

|--- || --'| | | ' | | | | '-----'-'-'-'

'---'---'--'--'--. |-----''----''--' -' | '---'

The Angstrom Distribution DevKit8500 ttyS2

Angstrom 2008.1-test-20090127 DevKit8500 ttyS2

DevKit8500 login: 超级终端显示上述信息,则代表已经成功从 TF 卡启动 Linux 系统。

第 67 页 / 共 153 页

3.7.2 NAND Flash 更新
Nand 启动映像的更新需要借助于 u-boot 来完成。不管 NAND Flash 是否有数据, 都可 以利用 TF 卡启动的 u-boot 对 NAND Flash 更新映像。 1)准备 a) 用 HP USB Disk Storage Format Tool 2.0.6 将 TF 卡格式化为 FAT 或 FAT32 文件系统 b) 将光盘里的 ML0, x-load.bin.ift_for_NAND, flash-uboot.bin, uImage, ubi.img 映像文件拷贝到 TF 卡中 2)更新 a) 将带有系统映象的 TF 卡插入开发板,上电启动,按照下面提示读秒处,按电 脑端键盘任意键进入 u-boot 60

Texas Instruments X-Loader 1.47 (Feb 17 2011 - 17:33:15) Devkit8500 xM Rev A Starting X-loader on MMC Reading boot sector

1154704 Bytes Read from MMC Starting OS Bootloader from MMC... Starting OS Bootloader...

U-Boot 2010.06-rc1-svn (Jun 06 2012 - 09:22:53)

OMAP3630-GP ES2.1, CPU-OPP2 L3-165MHz OMAP3 Devkit8500 board + LPDDR/NAND I2C: ready

DRAM: 512 MiB

第 68 页 / 共 153 页

NAND: 512 MiB *** Warning - bad CRC or NAND, using default environment

In: Out: Err:

serial serial serial

Devkit8500 xM Rev A Die ID #4fd000029e3800000168682f0301d023 Net: dm9000

Hit any key to stop autoboot: 0(在这里按任意键进入u-boot命令行) b) 进入 u-boot 命令行后,PC 键盘输入“run updatesys” ,开始自动更新系统

OMAP3 devkit8500 # run updatesys

NAND erase: device 0 whole chip Erasing at 0x1ffe0000 -- 100% complete. OK mmc1 is available reading x-load.bin.ift_for_NAND

11000 bytes read HW ECC selected

NAND write: device 0 offset 0x0, size 0x2af8 12288 bytes written: OK reading flash-uboot.bin

1154704 bytes read SW ECC selected

第 69 页 / 共 153 页

NAND write: device 0 offset 0x80000, size 0x119e90 1155072 bytes written: OK reading uImage

2547104 bytes read SW ECC selected

NAND write: device 0 offset 0x280000, size 0x26dda0 2547712 bytes written: OK reading ubi.img

12320768 bytes read SW ECC selected

NAND write: device 0 offset 0x680000, size 0xbc0000 12320768 bytes written: OK c) 此时板上的 LED 灯会闪烁,代表已经更新完成。

3)U-boot 参数设置 映像默认为 4.3 寸屏显示,如想使用其他显示设备,用户必须根据所使用的显示设备修 改 UBOOT 参数,具体方法可参考【3.8.1 显示方式选择】

3.8 使用说明
3.8.1 显示方式选择
系统支持多种显示输出模式,用户可通过配置启动参数的方法选择不同的显示输出模 式,操作方法如下: 上电启动,按照下面提示读秒处,按电脑端键盘任意键进入 u-boot 60

第 70 页 / 共 153 页

Texas Instruments X-Loader 1.47 (Feb 17 2011 - 17:33:15) Devkit8500 xM Rev A Starting X-loader on MMC Reading boot sector

1154704 Bytes Read from MMC Starting OS Bootloader from MMC... Starting OS Bootloader...

U-Boot 2010.06-rc1-svn (Jun 06 2012 - 09:22:53)

OMAP3630-GP ES2.1, CPU-OPP2 L3-165MHz OMAP3 Devkit8500 board + LPDDR/NAND I2C: ready

DRAM: 512 MiB NAND: 512 MiB *** Warning - bad CRC or NAND, using default environment

In: Out: Err:

serial serial serial

Devkit8500 xM Rev A Die ID #4fd000029e3800000168682f0301d023 Net: dm9000

Hit any key to stop autoboot: 0 (在这里按任意键进入u-boot命令行)

3.8.1.1 使用 4.3”LCD 显示
u-boot 下修改启动参数如下: OMAP3 devkit8500 # setenv defaultdisplay lcd

第 71 页 / 共 153 页

OMAP3 devkit8500 # setenv dispmode 4.3inch_LCD OMAP3 devkit8500 # saveenv

3.8.1.2 使用 7”LCD 显示
u-boot 下修改启动参数如下: OMAP3 devkit8500 # setenv defaultdisplay lcd OMAP3 devkit8500 # setenv dispmode 7inch_LCD OMAP3 devkit8500 # saveenv

3.8.1.3 使用 VGA 显示
u-boot 下修改启动参数如下: OMAP3 devkit8500 # setenv defaultdisplay lcd OMAP3 devkit8500 # setenv dispmode VGA OMAP3 devkit8500 # saveenv

3.8.1.4 使用 LVDS 显示
u-boot 下修改启动参数如下: OMAP3 devkit8500 # setenv defaultdisplay lcd OMAP3 devkit8500 # setenv dispmode LVDS OMAP3 devkit8500 # saveenv

3.8.1.5 使用 DVI 显示
u-boot下修改启动参数如下: OMAP3 devkit8500 #setenv defaultdisplay dvi OMAP3 devkit8500 #setenv dispmode 1280x720MR-16@60 OMAP3 devkit8500 # saveenv

3.8.1.6 使用 TV 显示
u-boot下修改启动参数如下: OMAP3 devkit8500 #setenv defaultdisplay tv OMAP3 devkit8500 #setenv dispmode ntsc/pal (根据 TV 的制式选择 ntsc 或 pal) OMAP3 devkit8500 # saveenv

第 72 页 / 共 153 页

3.8.2 测试
3.8.2.1 LED 测试
主板上的 LEDB、SYS、LED1、LED2 为用户 LED 灯。 以下操作在超级终端中进行: 1) 控制 sys:

root@DevKit8500:# echo 1 > /sys/class/leds/sys_led/brightness root@DevKit8500:# echo 0 > /sys/class/leds/sys_led/brightness 2) 控制 ledb:

root@DevKit8500:# echo 1 > /sys/class/leds/user_ledb/brightness root@DevKit8500:# echo 0 > /sys/class/leds/user_ledb/brightness 3) 控制 led1:

root@DevKit8500:# echo 1 > /sys/class/leds/user_led1/brightness root@DevKit8500:# echo 0 > /sys/class/leds/user_led1/brightness 4) 控制 led2:

root@DevKit8500:# echo 1 > /sys/class/leds/user_led2/brightness root@DevKit8500:# echo 0 > /sys/class/leds/user_led2/brightness LED 灯会随着用户的操作进行亮灭。

第 73 页 / 共 153 页

3.8.2.2 KEYPAD 测试
板子有两个用户键盘 USER1 和 USER2,用户可执行以下命令进行测试: root@DevKit8500:~# evtest /dev/input/event0 Input driver version is 1.0.0evdev.c(EVIOCGBIT): Suspicious buffer size 511, limiting output to 64 bytes. See http://userweb.kernel.org/~dtor/eviocgbit-bug.html

Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100 Input device name: "gpio-keys" Supported events: Event type 0 (Sync) Event type 1 (Key) Event code 1 (Esc) Event code 59 (F1) Testing ... (interrupt to exit) Event: time 44.232697, type 1 (Key), code 59 (F1), value 1 Event: time 44.232697, -------------- Report Sync -----------Event: time 44.396515, type 1 (Key), code 59 (F1), value 0 Event: time 44.396515, -------------- Report Sync -----------Event: time 45.219238, type 1 (Key), code 1 (Esc), value 1 Event: time 45.219268, -------------- Report Sync -----------Event: time 45.358306, type 1 (Key), code 1 (Esc), value 0 Event: time 45.358306, -------------- Report Sync ------------

按 CONTROL+C 退出测试,后续测试同理。

第 74 页 / 共 153 页

3.8.2.3 触摸屏测试
此测试要求 Linux 从 NAND Flash 启动: 1) 输入以下指令执行触摸屏校准程序:

root@DevKit8500: # ts_calibrate 按照屏幕上提示,点击 “+” 图标 5 次完成校准。 2) 校准完成后,输入以下指令进行触摸屏测试:

root@DevKit8500: # ts_test 按照屏幕提示,可选择画点、画线测试。

3.8.2.4 RTC 测试
开发板带硬件时钟,用于保存并恢复系统时间,可参考如下方法进行测试: 1) 设置系统时间为 2011 年 8 月 8 日晚上 8 时正

root@DevKit8500: # date 080820002011 Mon Aug 8 20:00:00 UTC 2011 2) 把系统时钟写入 RTC

root@DevKit8500: # hwclock -w 3) 读取 RTC

root@DevKit8500: # hwclock Mon Aug 8 20:01:01 2011 0.000000 seconds 可以看到,硬件时钟 RTC 被设置成 2011 年 8 月 8 日,系统时钟被保存到硬件时钟里。 4) 重启系统,输入以下命令恢复系统时钟

root@DevKit8500: # hwclock -s root@DevKit8500: # date Mon Aug 8 20:01:20 UTC 2011 可以看到,系统时间被恢复为硬件时间。

开发板自身未带电池(型号 CR1220) ,用户需自行购买。

第 75 页 / 共 153 页

3.8.2.5 TF 卡测试
1) 接入 TF 卡后,系统会自动将 TF 卡的文件系统挂载到/media 目录下:

root@DevKit8500:~# cd /media/ root@DevKit8500:/media# ls card cf 2) hdd mmc1 mmcblk0p1 ram net realroot union

输入下述指令后,即可看到 TF 卡里面的内容:

root@DevKit8500:/media# ls mmcblk0p1/ flash-uboot.bin mlo ramdisk.gz u-boot.bin uImage ubi.img x-load.bin.ift_for_NAND

3.8.2.6 USB DEVICE 测试
USB DEVICE 测试主要是使用连接线连接开发板的 miniUSB 接口与电脑端的 USB 接 口,对于电脑端,开发板被识别成一个网络设备,实现两端 ping 通讯。 1) 系统起来后, 使用 USB mini B to USB A 转接线连接开发板 (J16 接口) 与电脑端, 其中 USB mini B 接口连接开发板,USB A 接口连接电脑端。此时电脑需要安装 Linux USB Ethernet 驱动,详细的安装方法请参考附录三。 2) 配置开发板的 IP 和 usb 虚拟网卡的 IP 地址在同一网段, 在超级终端输入以下命令, 例如: root@DevKit8500:~# ifconfig usb0 192.168.1.115 root@DevKit8500:~# ifconfig lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:26 errors:0 dropped:0 overruns:0 frame:0 TX packets:26 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2316 (2.2 KiB) TX bytes:2316 (2.2 KiB)

第 76 页 / 共 153 页

usb0

Link encap:Ethernet HWaddr 5E:C5:F6:D4:2B:91 inet addr:192.168.1.115 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:253 errors:0 dropped:0 overruns:0 frame:0 TX packets:43 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:35277 (34.4 KiB) TX bytes:10152 (9.9 KiB)

3)

配置好开发板,点击我的电脑-网上邻居-查看网络连接,PC 端会增加一个虚拟网 卡。

4)

在电脑端的右键单击虚拟网卡图标,左键单击“属性”,左键双击进入“Internet 协议(TCP/IP)”,配置虚拟网卡的 IP 地址:

图 3-9 5) 在超级终端中使用 ping 命令测试开发板是否设置成功:

root@DevKit8500:~# ping 192.168.1.15

第 77 页 / 共 153 页

PING 192.168.1.15 (192.168.1.15): 56 data bytes 64 bytes from 192.168.1.15: seq=0 ttl=128 time=0.885 ms 64 bytes from 192.168.1.15: seq=1 ttl=128 time=0.550 ms 6) 出现上述串口信息,代表测试成功。

OTG 配置的网卡 IP 地址不能与以太网接口的 IP 地址一样。

3.8.2.7 USB HOST 测试
1) 进入 Linux 系统,将 U 盘连接到板上的 J17 或者 J18 接口,系统会自动将 U 盘的 文件系统挂载到/media 目录下: root@DevKit8500:~# cd /media/ root@DevKit8500:/media# ls card cf 2) hdd mmc1 mmcblk0p1 ram net realroot union

输入下述指令后,即可看到 U 盘里面的内容:

root@DevKit8500:/media# ls sda1/ flash-uboot.bin mlo ramdisk.gz u-boot.bin uImage ubi.img x-load.bin.ift_for_NAND

3.8.2.8 AUDIO 测试
板上带音频输入、输出接口,支持录放音。文件系统内带 alsa-utils 音频播放、录制测 试工具,用户可使用如下命令进行测试: 1) 录音测试:

插上麦克风,即可进行录音测试。 root@DevKit8500:~# arecord -t wav -c 1 -r 44100 -f S16_LE -v k Recording WAVE 'k' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo Plug PCM: Hardware PCM card 0 'omap3evm' device 0 subdevice 0 Its setup is: stream : CAPTURE

第 78 页 / 共 153 页

access format subformat channels rate exact rate msbits

: RW_INTERLEAVED : S16_LE : STD :2 : 44100 : 44100 (44100/1) : 16

buffer_size : 22052 period_size : 5513 period_time : 125011 tstamp_mode : NONE period_step : 1 avail_min : 5513

period_event : 0 start_threshold : 1 stop_threshold : 22052

silence_threshold: 0 silence_size : 0 boundary appl_ptr hw_ptr 2) 放音测试: : 1445199872 :0 :0

插上耳机,执行以下操作,即可听刚才的录音内容。 root@DevKit8500:~# aplay -t wav -c 2 -r 44100 -f S16_LE -v k Playing WAVE 'k' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo Plug PCM: Hardware PCM card 0 'omap3evm' device 0 subdevice 0 Its setup is: stream access : PLAYBACK : RW_INTERLEAVED

第 79 页 / 共 153 页

format subformat channels rate exact rate msbits

: S16_LE : STD :2 : 44100 : 44100 (44100/1) : 16

buffer_size : 22052 period_size : 5513 period_time : 125011 tstamp_mode : NONE period_step : 1 avail_min : 5513

period_event : 0 start_threshold : 22052 stop_threshold : 22052

silence_threshold: 0 silence_size : 0 boundary appl_ptr hw_ptr : 1445199872 :0 :0

3.8.2.9 网络测试
1) 板上带 10/100M 自适应网卡 DM9000,用户可把开发板接入局域网,先接上网线,确 保板子的 IP 地址跟电脑端的 IP 地址在统一网段下,使用如下命令进行测试:

[root@DevKit8500 /]# ifconfig eth0 192.192.192.203 [root@DevKit8500 /]# ifconfig eth0 Link encap:Ethernet HWaddr 00:11:22:33:44:55 inet Mask:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 addr:192.192.192.203 Bcast:192.192.192.255

第 80 页 / 共 153 页

RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interrupt:185 Base address:0x2000

[root@DevKit8500 /]# ping 192.192.192.170 PING 192.192.192.170 (192.192.192.170): 56 data bytes 64 bytes from 192.192.192.170: seq=0 ttl=128 time=4.486 ms 64 bytes from 192.192.192.170: seq=1 ttl=128 time=0.336 ms 2) 出现上述串口信息,代表测试成功。

3.8.2.10 CAMERA 测试
1) 购买了 DevKit8500 配套 CAMERA 模块(CAM8000-A)的话,连接好 CAMERA 模 块以及 CCD 摄像头后,接上 LCD 屏幕,可执行以下命令进行测试: root@DevKit8500:~# saMmapLoopback tvp514x 2-005d: tvp5146m2 found at 0xba (OMAP I2C adapter)

Capture: Opened Channel Capture: Current Input: COMPOSITE Capture: Current standard: PAL Capture: Capable of streaming Capture: Number of requested buffers = 3 Capture: Init done successfully

Display: Opened Channel Display: Capable of streaming Display: Number of requested buffers = 3 Display: Init done successfully

第 81 页 / 共 153 页

Display: Stream on... Capture: Stream on... 2) 此时 LCD 显示屏会显示 CCD 摄像头所采集的图像。其它摄像头模块的测试方法 请参考其相关的用户手册

3.8.2.11 GPRS8000-S 模块
GPRS8000-S 模块属于可选配件,用户可以根据实际的需求选择购买。 模块资料下载: http://www.timll.com/chinese/uploadFile/GPRS8000.rar

3.8.2.12 GPS8000-S 模块
GPS8000-S 模块属于可选配件,用户可以根据实际的需求选择购买。 模块资料下载: http://www.timll.com/chinese/uploadFile/GPS8000.rar

3.8.2.13 CDMA8000-U 模块
CDMA8000-U 模块属于可选配件,用户可以根据实际的需求选择购买。 模块资料下载: http://www.timll.com/chinese/uploadFile/cdma8000.rar

3.8.2.14 WCDMA8000-U 模块
WCDMA8000-U 模块属于可选配件,用户可以根据实际的需求选择购买。 模块资料下载: http://www.timll.com/chinese/uploadFile/WCDMA8000.zip

3.8.3 Demo
3.8.3.1 Android 系统演示
DevKit 8500 提供 Android 系统演示,使用方法如下。 1)准备 a) 用 HP USB Disk Storage Format Tool 2.0.6 将 TF 卡格式化为 FAT 或 FAT32

第 82 页 / 共 153 页

文件系统 b) 2)更新 将带有系统映象的 TF 卡插入开发板,上电启动,系统将会自动更新,串口信息如下: 60 将光盘里的\linux\demo\image 目录下的所有映像文件拷贝到 TF 卡中

Texas Instruments X-Loader 1.47 (Feb 17 2011 - 17:33:15) Devkit8500 xM Rev A Starting X-loader on MMC Reading boot sector

1153616 Bytes Read from MMC Starting OS Bootloader from MMC... Starting OS Bootloader...

U-Boot 2010.06-rc1-svn ( 3 鏈?25 2011 - 10:44:09)

OMAP34xx/35xx-GP ES2.1, CPU-OPP2 L3-165MHz OMAP3 Devkit8500 board + LPDDR/NAND I2C: ready

DRAM: 512 MiB NAND: 512 MiB *** Warning - bad CRC or NAND, using default environment

In: Out: Err:

serial serial serial

Devkit8500 xM Rev A

第 83 页 / 共 153 页

Die ID #4fd000029e3800000168682f0301d023

NAND erase: device 0 whole chip Erasing at 0x1ffe0000 -- 100% complete. OK mmc1 is available reading x-load.bin.ift_for_NAND

11000 bytes read HW ECC selected

NAND write: device 0 offset 0x0, size 0x2af8 12288 bytes written: OK reading flash-uboot.bin

1154500 bytes read SW ECC selected

NAND write: device 0 offset 0x80000, size 0x119dc4 1155072 bytes written: OK reading uImage

2572628 bytes read SW ECC selected

NAND write: device 0 offset 0x280000, size 0x274154 2574336 bytes written: OK reading ubi.img

第 84 页 / 共 153 页

79036416 bytes read SW ECC selected

NAND write: device 0 offset 0x680000, size 0x4b60000 79036416 bytes written: OK 烧写完成后,板上 led 灯 sys 会闪烁提示,请拔掉 TF 卡。重新上电启动,即可进入 android 操作系统。 3)U-boot 参数设置 映像默认为 4.3 寸屏显示,如想使用其他显示设备,用户必须根据所使用的显示设备 修改 UBOOT 参数,具体方法可参考【3.8.1 显示方式选择】

3.8.3.1 DVSDK 系统演示
DVSDK(Digital Video Software Development Kit)是 TI 公司推出的一款软件, 作用是建 立 ARM 与 DSP 之间的联系。 应用程序运行在 ARM 端, 由 ARM 处理 IO 接口和应用程序。 ARM 使用由 Codec Engine 提供的 VISA APIs 接口来处理视频、图像、语音信号。Codec Engine 接着使用 DSP/BIOS Link 和 xDIAS 与 xDM 协议与在 DSP 端建立的 Codec Engine 服务器进行通信。由 DSP 处理这些信号,然后处理的结果放在与 ARM 共享的存储空间,ARM 端可以获得这些结果。

?

电脑端需要预装好 Linux 的操作系统,步骤一的指令是在 PC 下 完成的。

1)

将 TF 卡分为两个分区,具体的操作部分参考附录四,然后将 TF 卡接到 PC 上

然后执行如下命令 cp /media/cdrom/linux/demo/dvsdk/image/MLO /media/LABEL1 cp /media/cdrom/linux/demo/dvsdk/image/u-boot.bin /media/LABEL1 cp /media/cdrom/linux/demo/dvsdk/image/uImage /media/LABEL1 rm -rf /media/LABEL2/* sudo tar xvf /media/cdrom/linux/demo/dvsdk/image/dvsdk-dm37x-evm-rootfs.tar.bz2 -C

第 85 页 / 共 153 页

/media/LABEL2 sync umount /media/LABEL1 umount /media/LABEL2 2) 准备好 TF 卡后,将 TF 卡插至开发板,打开电源开关,开机串口信息如下: (黑体 字为需要输入的字符内容) 60

Texas Instruments X-Loader 1.47 (Feb 17 2011 - 17:33:15) Devkit8500 xM Rev A Starting X-loader on MMC Reading boot sector

1154500 Bytes Read from MMC Starting OS Bootloader from MMC... Starting OS Bootloader...

U-Boot 2010.06-rc1-svn (Jun 06 2012 - 09:41:27)

OMAP3630-GP ES2.1, CPU-OPP2 L3-165MHz OMAP3 Devkit8500 board + LPDDR/NAND I2C: ready

DRAM: 512 MiB NAND: 512 MiB *** Warning - bad CRC or NAND, using default environment

In: Out:

serial serial

第 86 页 / 共 153 页

Err:

serial

Devkit8500 xM Rev A Die ID #4fd000029e3800000168682f0301d023 Net: dm9000

Hit any key to stop autoboot: 0 Booting dvsdk ... mmc1 is available reading uImage

2547104 bytes read ## Booting kernel from Legacy Image at 81000000 ... Image Name: Image Type: Data Size: Linux-2.6.32 ARM Linux Kernel Image (uncompressed) 2547040 Bytes = 2.4 MiB

Load Address: 80008000 Entry Point: 80008000 Verifying Checksum ... OK Loading Kernel Image ... OK OK

Starting kernel ...

Uncompressing Linux..................................................................................................................................... ......................... done, booting the kernel. Linux version 2.6.32 (luofc@TIOP) (gcc version 4.4.0 (GCC) ) #1 Wed Jun 6 09:31:08 CST 2012 CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache

第 87 页 / 共 153 页

Machine: OMAP3 DEVKIT8500 Board Memory policy: ECC disabled, Data cache writeback OMAP3630/DM3730 ES1.0 (l2cache iva sgx neon isp 192mhz_clk ) SRAM: Mapped pa 0x40200000 to va 0xfe400000 size: 0x100000 Reserving 4194304 bytes SDRAM for VRAM Built 1 zonelists in Zone order, mobility grouping on. Total pages: 57600 Kernel command line: console=ttyS2,115200n8 mpurate=1000 omapdss.def_disp=lcd omapfb.mode=lcd:4.3inch_LCD root=/dev/mmcblk0p2 rootfstype=ext3 rw rootwait mem=99M@0x80000000 mem=128M@0x88000000 omap_vout.vid1_static_vrfb_alloc=y omapfb.vram=0:3M PID hash table entries: 1024 (order: 0, 4096 bytes) Dentry cache hash table entries: 32768 (order: 5, 131072 bytes) Inode-cache hash table entries: 16384 (order: 4, 65536 bytes) Memory: 99MB 128MB = 227MB total Memory: 220920KB available (4388K code, 377K data, 164K init, 0K highmem) Hierarchical RCU implementation. NR_IRQS:402 Clocking rate (Crystal/Core/MPU): 26.0/332/600 MHz Reprogramming SDRC clock to 332000000 Hz GPMC revision 5.0 IRQ: Found an INTC at 0xfa200000 (revision 4.0) with 96 interrupts Total of 96 interrupts on 1 active controller OMAP GPIO hardware version 2.5 OMAP clockevent source: GPTIMER12 at 32768 Hz Console: colour dummy device 80x30 Calibrating delay loop... 507.32 BogoMIPS (lpj=1982464) Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok regulator: core version 0.5

第 88 页 / 共 153 页

NET: Registered protocol family 16 Found NAND on CS0 Registering NAND on CS0 Unable to get LCD PWREN GPIO Target VDD1 OPP = 4, VDD2 OPP = 2 OMAP DMA hardware revision 5.0 bio: create slab <bio-0> at 0 SCSI subsystem initialized usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb i2c_omap i2c_omap.1: bus 1 rev4.0 at 2600 kHz twl4030: PIH (irq 7) chaining IRQs 368..375 twl4030: power (irq 373) chaining IRQs 376..383 twl4030: gpio (irq 368) chaining IRQs 384..401 regulator: VUSB1V5: 1500 mV normal standby regulator: VUSB1V8: 1800 mV normal standby regulator: VUSB3V1: 3100 mV normal standby twl4030_usb twl4030_usb: Initialized TWL4030 USB module regulator: VMMC1: 1850 <--> 3150 mV normal standby regulator: VDAC: 1800 mV normal standby regulator: VPLL2: 1800 mV normal standby regulator: VMMC2: 1850 <--> 3150 mV normal standby regulator: VSIM: 1800 <--> 3000 mV normal standby i2c_omap i2c_omap.2: bus 2 rev4.0 at 400 kHz i2c_omap i2c_omap.3: bus 3 rev4.0 at 100 kHz Switching to clocksource 32k_counter musb_hdrc: version 6.0, musb-dma, otg (peripheral+host), debug=0 musb_hdrc: USB OTG mode controller at fa0ab000 using DMA, IRQ 92

第 89 页 / 共 153 页

NET: Registered protocol family 2 IP route cache hash table entries: 2048 (order: 1, 8192 bytes) TCP established hash table entries: 8192 (order: 4, 65536 bytes) TCP bind hash table entries: 8192 (order: 3, 32768 bytes) TCP: Hash tables configured (established 8192 bind 8192) TCP reno registered UDP hash table entries: 256 (order: 0, 4096 bytes) UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) NET: Registered protocol family 1 RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. omap-iommu omap-iommu.0: isp registered NetWinder Floating Point Emulator V0.97 (double precision) ashmem: initialized VFS: Disk quotas dquot_6.5.2 Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) msgmni has been set to 432 alg: No test for stdrng (krng) io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) OMAP DSS rev 2.0 OMAP DISPC rev 3.0 OMAP VENC rev 2 Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654 serial8250.1: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654 serial8250.2: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654

第 90 页 / 共 153 页

console [ttyS2] enabled brd: module loaded loop: module loaded omap2-nand driver initializing NAND device: Manufacturer ID: 0x2c, Chip ID: 0xbc (Micron NAND 512MiB 1,8V 16-bit) cmdlinepart partition parsing not available Creating 5 MTD partitions on "omap2-nand": 0x000000000000-0x000000080000 : "X-Loader" 0x000000080000-0x000000260000 : "U-Boot" 0x000000260000-0x000000280000 : "U-Boot Env" 0x000000280000-0x000000680000 : "Kernel" 0x000000680000-0x000020000000 : "File System" PPP generic driver version 2.4.2 PPP Deflate Compression module registered PPP BSD Compression module registered PPP MPPE Compression module registered NET: Registered protocol family 24 PPPoL2TP kernel driver, V1.0 dm9000 Ethernet Driver, V1.31 eth0: dm9000a at d0862000,d0866400 IRQ 185 MAC: 00:11:22:33:44:55 (chip) usbcore: registered new interface driver asix usbcore: registered new interface driver cdc_ether usbcore: registered new interface driver cdc_eem usbcore: registered new interface driver dm9601 usbcore: registered new interface driver smsc95xx usbcore: registered new interface driver gl620a usbcore: registered new interface driver net1080 usbcore: registered new interface driver plusb

第 91 页 / 共 153 页

usbcore: registered new interface driver rndis_host usbcore: registered new interface driver cdc_subset usbcore: registered new interface driver zaurus usbcore: registered new interface driver MOSCHIP usb-ethernet driver ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver ehci-omap ehci-omap.0: OMAP-EHCI Host Controller ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 1 ehci-omap ehci-omap.0: irq 77, io mem 0x48064800 ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00 hub 1-0:1.0: USB hub found hub 1-0:1.0: 3 ports detected Initializing USB Mass Storage driver... usbcore: registered new interface driver usb-storage USB Mass Storage support registered. g_ether gadget: using random self ethernet address g_ether gadget: using random host ethernet address usb0: MAC 0a:9f:cc:82:2f:59 usb0: HOST MAC 92:c8:5a:ab:b2:30 g_ether gadget: Ethernet Gadget, version: Memorial Day 2008 g_ether gadget: g_ether ready musb_hdrc musb_hdrc: MUSB HDRC host driver musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 2 hub 2-0:1.0: USB hub found hub 2-0:1.0: 1 port detected mice: PS/2 mouse device common for all mice input: gpio-keys as /devices/platform/gpio-keys/input/input0 input: TWL4030 Keypad as /devices/platform/i2c_omap.1/i2c-1/1-004a/twl4030_keypad/input/input1 ads7846 spi2.0: touchscreen, irq 187

第 92 页 / 共 153 页

input: ADS7846 Touchscreen as /devices/platform/omap2_mcspi.2/spi2.0/input/input2 using rtc device, twl_rtc, for alarms twl_rtc twl_rtc: rtc core: registered twl_rtc as rtc0 twl_rtc twl_rtc: Power up reset detected. twl_rtc twl_rtc: Enabling TWL-RTC. i2c /dev entries driver Linux video capture interface: v2.00 tvp514x 2-005d: Registered to v4l2 master omap34xxcam!! omap-iommu omap-iommu.0: isp: version 1.1 usbcore: registered new interface driver uvcvideo USB Video Class driver (v0.1.0) OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec Registered led device: sys_led Registered led device: user_ledb Registered led device: user_led1 Registered led device: user_led2 usbcore: registered new interface driver usbhid usbhid: USB HID core driver Advanced Linux Sound Architecture Driver Version 1.0.21. usb 1-1: new high speed USB device using ehci-omap and address 2 No device for DAI omap-mcbsp-dai-0 No device for DAI omap-mcbsp-dai-1 No device for DAI omap-mcbsp-dai-2 No device for DAI omap-mcbsp-dai-3 No device for DAI omap-mcbsp-dai-4 OMAP3 Devkit8500 SoC init asoc: twl4030 <-> omap-mcbsp-dai-0 mapping ok ALSA device list:

第 93 页 / 共 153 页

#0: omap3devkit8500 (twl4030) TCP cubic registered NET: Registered protocol family 17 NET: Registered protocol family 15 Power Management for TI OMAP3. Unable to set L3 frequency (400000000) Switched to new clocking rate (Crystal/Core/MPU): 26.0/332/1000 MHz IVA2 clocking rate: 800 MHz SmartReflex driver initialized VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3 hub 1-1:1.0: USB hub found hub 1-1:1.0: 4 ports detected Console: switching to colour frame buffer device 60x34 regulator_init_complete: incomplete constraints, leaving VDVI on regulator_init_complete: incomplete constraints, leaving VDAC on twl_rtc twl_rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800) mmc0: host does not support reading read-only switch. assuming write-enable. mmc0: new high speed SD card at address 0002 mmcblk0: mmc0:0002 00000 1.86 GiB mmcblk0: p1 p2 usb 1-1.3: new low speed USB device using ehci-omap and address 3 tvp514x 2-005d: chip id mismatch msb:0x87 lsb:0x87 tvp514x 2-005d: Unable to detect decoder input: USB Mouse as /devices/platform/ehci-omap.0/usb1/1-1/1-1.3/1-1.3:1.0/input/input3 generic-usb 0003:15D9:0A33.0001: input: USB HID v1.10 Mouse [USB Mouse] on usb-ehci-omap.0-1.3/input0 tvp514x 2-005d: chip id mismatch msb:0x87 lsb:0x87 tvp514x 2-005d: Unable to detect decoder

第 94 页 / 共 153 页

tvp514x 2-005d: chip id mismatch msb:0x87 lsb:0x87 tvp514x 2-005d: Unable to detect decoder tvp514x 2-005d: chip id mismatch msb:0x87 lsb:0x87 tvp514x 2-005d: Unable to detect decoder omapdss DPI error: display already enabled omap_vout omap_vout: 'lcd' Display already enabled omapdss DPI error: display already enabled omap_vout omap_vout: 'lcd' Display already enabled omap_vout omap_vout: Buffer Size = 3686400 omap_vout omap_vout: : registered and initialized video device 0 omap_vout omap_vout: Buffer Size = 3686400 omap_vout omap_vout: : registered and initialized video device 1 kjournald starting. Commit interval 5 seconds EXT3-fs (mmcblk0p2): using internal journal EXT3-fs (mmcblk0p2): recovery complete EXT3-fs (mmcblk0p2): mounted filesystem with writeback data mode VFS: Mounted root (ext3 filesystem) on device 179:2. Freeing init memory: 164K INIT: version 2.86 booting Please wait: booting... Starting udev udev: starting version 141 Remounting root file system... Caching udev devnodes Populating dev cache logger: mount: mount point /proc/bus/usb does not exist ALSA: Restoring mixer settings... Configuring network interfaces... No state is present for card omap3devkit8500 eth0: link down

第 95 页 / 共 153 页

Unknown hardware: "twl4030" "" "" "" "" Hardware is initialized using a guess method /usr/share/alsa/init/default:53: control element not found /usr/share/alsa/init/default:53: control element not found No state is present for card omap3devkit8500 udhcpc (v1.13.2) started Sending discover... Sending discover... Sending discover... No lease, forking to background done. Setting up IP spoofing protection: rp_filter. Thu Oct 14 15:51:00 UTC 2010 INIT: Entering runlevel: 5 Starting system message bus: dbus. Starting telnet daemon. Starting syslogd/klogd: done Starting thttpd. Starting PVR PVRSRV_PIXEL_FORMAT_ARGB8888 Loading kernel modules for gstreamer-ti... Running /usr/share/ti/gst/<platform>/loadmodule.sh done

_____ | _ |___ ___ ___ ___ | | _| .'| . | . | |

_____

_

_

| _ |___ ___ |_|___ ___| |_ __| _| . | | | -_| _| _|

|__|__|_| |__,|_ |___| |__| |_| |___|_| |___|___|_| |___| |___|

第 96 页 / 共 153 页

Arago Project http://arago-project.org dm37x-evm ttyS2

Arago 2010.07 dm37x-evm ttyS2

dm37x-evm login:root //输入用户名root进入系统 3) DVSDK 文件系统中带有一些预装的应用程序, 用户可以执行这些应用程序, 下面以 运行 GStreamer pipelines 的 This pipeline decodes H.264 为例: root@dm37x-evm:cd /usr/share/ti/gst/omap3530 root@dm37x-evm:/usr/share/ti/gst/omap3530# ./loadmodules.sh cmemk unregistered CMEMK module: built on Oct 14 2010 at 13:14:41 Reference Linux version 2.6.32 File /sdk/build/DVSDK_4_00/4_00_00_22/arago-install/arago-tmp/work/dm37x-evm-none-linu x-gnueabi/ti-linuxutils-1_2_25_05_11-r89d/linuxutils_2_25_05_11/packages/ti/sdo/linuxuti ls/cmem/src/module/cmemk.c allocated heap buffer 0xc9000000 of size 0x53d000 cmemk initialized DSPLINK Module (1.65.00.02) created on Date: Oct 14 2010 Time: 13:21:09 SDMAK module: built on Oct 14 2010 at 13:14:44 Reference Linux version 2.6.32 File /sdk/build/DVSDK_4_00/4_00_00_22/arago-install/arago-tmp/work/dm37x-evm-none-linu x-gnueabi/ti-linuxutils-1_2_25_05_11-r89d/linuxutils_2_25_05_11/packages/ti/sdo/linuxuti ls/sdma/src/module/sdmak.c root@dm37x-evm:/usr/share/ti/gst/omap3530# gst-launch filesrc

location=/usr/share/ti/data/videos/davincieffect_480p30.264 \! typefind ! TIViddec2 ! TIDmaiVideoSink -v Setting pipeline to PAUSED ...

第 97 页 / 共 153 页

/GstPipeline:pipeline0/GstTypeFindElement:typefindelement0.GstPad:src: caps = video/x-h264 Pipeline is PREROLLING ... /GstPipeline:pipeline0/GstTIViddec2:tividdec20.GstPad:sink: caps = video/x-h264 /GstPipeline:pipeline0/GstTIViddec2:tividdec20.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)UYVY, framerate=(fraction)30000/1001, width=(int)720, height=(int)576 /GstPipeline:pipeline0/GstTIViddec2:tividdec20.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)UYVY, framerate=(fraction)30000/1001, width=(int)720, height=(int)480 /GstPipeline:pipeline0/GstTIDmaiVideoSink:tidmaivideosink0.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)UYVY, framerate=(fraction)30000/1001, width=(int)720, height=(int)480 Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock 4) 此时屏幕会播放一段影片。

上述测试内容是针对 DM3730,假若使用 AM3715(无 DSP 核)需要参考其他测试程 序。 1) 对 于 DVSDK 的 详 细 资 料 请 参 考 TI 主 页 , 或 请 参 考 TMS320DM3730_Software_Developers_Guide.pdf 文档 2) 默认 4.3 寸 LCD 显示。如想使用其他的显示设备,请参考【3.8.1 显 示方式选择】设置显示方式。 3) 如果 NAND Flash 里有其他的操作系统, 请进入 UBOOT 并使用 “nand erase”命令擦除 NAND Flash 的内容。

3.9 上层开发
本节主要介绍应用程序的开发, 并通过实例来说明应用程序开发的一般流程。 上层应用 程序请使用 arm-2007q3 交叉编译工具进行编译。 LED 应用程序开发示例 1) 编写代码

第 98 页 / 共 153 页

led_acc.c 源码,控制开发板上的三个 led 灯按累加器的方式闪烁。 #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/ipc.h> #include <sys/ioctl.h> #include <fcntl.h>

#define LED1 "/sys/class/leds/user_ledb/brightness" #define LED2 "/sys/class/leds/user_led1/brightness" #define LED3 "/sys/class/leds/user_led2/brightness"

int main(int argc, char *argv[]) { int f_led1, f_led2, f_led3; unsigned char i = 0; unsigned char dat1, dat2, dat3; if((f_led1 = open(LED1, O_RDWR)) < 0){ printf("error in open %s",LED1); return -1; } if((f_led2 = open(LED2, O_RDWR)) < 0){ printf("error in open %s",LED2); return -1; } if((f_led3 = open(LED3, O_RDWR)) < 0){ printf("error in open %s",LED3); return -1; }

第 99 页 / 共 153 页

for(;;){ i++; dat1 = i&0x1 ? '1':'0'; dat2 = (i&0x2)>>1 ? '1':'0'; dat3 = (i&0x4)>>2 ? '1':'0'; write(f_led1, &dat1, sizeof(dat1)); write(f_led2, &dat2, sizeof(dat2)); write(f_led3, &dat3, sizeof(dat3)); usleep(300000); } } 2) 交叉编译

arm-none-linux-gnueabi-gcc led_acc.c -o led_acc 3) 下载运行

通过 TF 卡或 U 盘或网络下载到开发板系统,进入 led_acc 文件所在的目录,输入下面 命令回车 led_acc 即在后台运行。 ./led_acc &

第 100 页 / 共 153 页

4 WinCE 操作系统
4.1 介绍
此部分主要介绍 Windows Embedded CE 6.0 R3 下 Devkit8500 的系统与应用开发, 以及光盘中软件资源的提供情况, 软件特性, 开发环境搭建, 还有包括如何编译工程与 BSP (板级支持包)等

4.2 软件资源
BSP(板级支持包) CD\wince_6\BSP\DevKit8500.rar CD\wince_6\BSP\ COMMON_TI_V1.rar CD\ wince_6\PowerVR\wince_gfx_sgx_01_01_00_patch_01_setup.exe

Windows Embedded CE 6.0 R3 工程 CD\wince_6\prj\DevKit8500.rar

上层范例 CD\wince_6\app\GPIOAppDemo.rar

预编译映像 CD\wince_6\Image\ MLO Xldrnand.nb0 Ebootsd.nb0 Ebootnand.nb0 Nk.bin First bootloader for TF card boot First bootloader for nand boot Second bootloader for TF card boot Second bootloader for nand boot WinCE runtime image

第 101 页 / 共 153 页

4.3 特性
BSP 的资源提供情况: Source Catalog Item binary NAND X-Loader NOR (First boot loader) SD EBOOT (Second loader) boot NAND NOR SD KILT(USB RNDIS) REBOOT Watchdog OAL RTC System timer Interrupt controller Low power suspend NLED driver GPIO/I2C/SPI/MCBSP driver Serial port driver 6X6 keyboard driver Audio driver Driver NAND driver Display driver (LCD/HDMI/DVI/LVDS S Source -Video/Composite Video)/ TOUCH driver SD/MMC/SDIO driver SMSC9514 network card driver Source Binary Source Source Source Source Source Source Source Source Source Source Source Source Source Source Source Source Source source Source code /

第 102 页 / 共 153 页

USB OTG driver USB EHCI driver VRFB driver DSPLINKK/CMEMK driver AAC/MPEG2/MPEG4/H264 DSP Hardware

Source Source Source Binary Binary

decode fitler GPIO keyboard driver PWM(TPS65930)driver ADC(TPS65930)driver ONENAND driver Analog Camera driver Digital Camera driver DMA driver RTC driver Backlight driver Battery driver Sleep / wakeup button driver DVFS/Smart Reflex WGL7310(WL1273) wifi driver BT driver SDK powerVR DDK & SDK 表 4-1 Source Source Source Source Source Source Source Source Source Source Source Source Binary Source Binary & Source

4.4 系统开发
4.4.1 集成开发环境安装
请按照下面步骤将集成开发环境安装到 windows XP / Vista: 1)Visual Studio 2005 2)Visual Studio 2005 SP1

第 103 页 / 共 153 页

3)Visual Studio 2005 SP1 Update for Vista (vista system require) 4)Windows Embedded CE 6.0 Platform Builder 5)Windows Embedded CE 6.0 SP1 6)Windows Embedded CE 6.0 R2 7)Windows Embedded CE 6.0 Product Update Rollup 12/31/2008 8)Windows Embedded CE 6.0 R3 9)Windows Embedded CE 6.0 Product Update Rollup 12/31/2009 10)ActiveSync 4.5 11)Windows Mobile 6 Professional SDK

4.4.2 提取 BSP 及样例工程文件到集成开发环境
请按照下面步骤进行: 1) 2) 解压[CD\wince_6\bsp\DevKit8500.rar] 到 [C:\WINCE600\PLATFORM]目录下。 解 压 [CD\wince_6\bsp\COMMON_TI_V1.rar] 到

[C:\WINCE600\PLATFORM\COMMON\SRC\SOC]目录下。 (若没有此路径, 请自行建立) 3) 解 压 [CD\wince_6\bsp\dvsdk_wince_01_11_00_02.rar] 到

[C:\WINCE600\3rdParty\]目录下。 4) 双 击 [CD\wince_6\powerVR\wince_gfx_sgx_01_01_00_patch_01_setup.exe] 安 装 powerVR DDK 和 SDK , 默 认 , 安 需 拷 装 路 要 贝 径 为 将 到

[C:\TI\wince_gfx_sgx_01_01_00_patch_01]

[C:\TI\wince_gfx_sgx_01_01_00_patch_01\poweVR] [C:\WINCE600\PUBLIC]。 5)

将光盘下的[\wince_6\prj\DevKit8500]拷贝到[C:\WINCE600\OSDesigns]目录下。 本文的 Windows Embedded CE 6.0 编译工具的默认安装路径是 [C:\WINCE600]。

4.4.3 Sysgen & BSP 编译
1) 2) 打开[C:\WINCE600\OSDesigns\DevKit8500]下的工程文件 Devkit8500.sln。 在 vs2005 窗口选择[Build-> Build Solution] ,开始 sysgen 和 build BSP.。

第 104 页 / 共 153 页

3)

编译完成后,在 [C:\WINCE600\OSDesigns\DevKit8500\DevKit8500\RelDir\DevKit8500_ARMV4 I_Release]拷贝 MLO, EBOOTSD.nb0 and NK.bin 等映像文件到 TF 卡。

4) 5)

接入 TF 卡,启动 Devkit8500。 按空格键进入 eboot 菜单,键入[A]选择相应的显示输出,然后键入[0]启动系统。

4.4.4 驱动介绍
下图是介绍 Devkit8500 的 BSP 架构:

图 4-1

BSP 的所有驱动源码路径: NLED driver bsp\DevKit8500\SRC\DRIVERS\NLED

第 105 页 / 共 153 页

bsp\DevKit8500\SRC\DRIVERS\GPIO GPIO bsp\COMMON_TI_V1\COMMON_TI\GPIO bsp\COMMON_TI_V1\COMMON_TI\OAL\OMAP_OALI I2C 2C bsp\COMMON_TI_V1\COMMON_TI\CEDDK\I2C SPI bsp\COMMON_TI_V1\COMMON_TI\SPI bsp\COMMON_TI_V1\COMMON_TI\MCBSP MCBSP driver bsp\COMMON_TI_V1\OMAP3530\MCBSP Serial port driver bsp\COMMON_TI_V1\COMMON_TI\SERIAL bsp\COMMON_TI_V1\COMMON_TI\KEYPAD 6X6 keyboard driver bsp\DevKit8500\SRC\DRIVERS\TPS659XX_KEYPAD bsp\DevKit8500\SRC\DRIVERS\TPS659XX_WAVE Audio driver bsp\COMMON_TI_V1\TPS659XX\WAVE NAND driver Display driver(LCD/DVI/LVDS. S bsp\COMMON_TI_V1\COMMON_TI\BLOCK bsp\COMMON_TI_V1\COMMON_TI\DSS DevKit8500\SRC\BSP_COMMON\DISPLAY bsp\DevKit8500\SRC\DRIVERS\DISPLAY bsp\DevKit8500\SRC\DRIVERS\TOUCH bsp\DevKit8500\SRC\DRIVERS\SDBUS bsp\DevKit8500\SRC\DRIVERS\SDHC SD/MMC/SDIO driver bsp\DevKit8500\SRC\DRIVERS\SDMEMORY bsp\COMMON_TI_V1\COMMON_TI\SDHC SMSC9514 card driver network bsp\DevKit8500\SRC\DRIVERS\SMSC9514

-Video/Composite Video) TOUCH driver

第 106 页 / 共 153 页

bsp\DevKit8500\SRC\DRIVERS\MUSB USB OTG driver bsp\COMMON_TI_V1\OMAP3530\MUSB bsp\COMMON_TI_V1\TPS659XX\USBOTG bsp\ COMMON_TI_V1\COMMON_TI\USB USB EHCI driver bsp\ COMMON_TI_V1\OMAP3530\USB bsp\DevKit8500\SRC\DRIVERS\USBHS VRFB driver bsp\ COMMON_TI_V1\COMMON_TI\VRFB

DSPLINKK/CMEMK AAC/MPEG2/MPEG4 /H264 DSP

bsp\3rdParty\dvsdk_wince_01_11_00_02

bsp\3rdParty\dvsdk_wince_01_11_00_02 Hardware fitler bsp\COMMON_TI_V1\COMMON_TI\KEYPAD GPIO keyboard driver bsp\DevKit8500\SRC\DRIVERS\TPS659XX_KEYPAD PWM(TPS65930)driv bsp\ COMMON_TI_V1\TPS659XX\TLED er ADC(TPS65930)drive bsp\ COMMON_TI_V1\TPS659XX\MADC r bsp\DevKit8500\SRC\DRIVERS\CAMERA Camera driver bsp\DevKit8500\SRC\DRIVERS\CAMERA_Digital Backlight driver bsp\DevKit8500\SRC\DRIVERS\BACKLIGHT decode

Battery driver

bsp\DevKit8500\SRC\DRIVERS\BATTERY bsp\DevKit8500\SRC\DRIVERS\TPS659XX_PWRKEY

Sleep button driver

/

wake-up (knowing issue: can not wake up system from suspend when include the tps65930 otg driver)

第 107 页 / 共 153 页

bsp\ COMMON_TI_V1\COMMON_TI\PM DVFS/Smart Reflex bsp\DevKit8500\SRC\DRIVERS\PM DMA driver bsp\ COMMON_TI_V1\COMMON_TI\SDMA bsp\ COMMON_TI_V1\TPS659XX\OALRTC RTC driver bsp\DevKit8500\SRC\DRIVERS\TPS659XX_RTC Blue tooth bsp\DevKit8500\SRC\DRIVERS\bthci_7310

WG7310(WL1273) wifi

bsp\DevKit8500\FILES 表 4-2

假若用户想要参考更多的 WinCE 驱动开发,可以参考 Windows Embedded CE 6.0 编 译工具自带的参考文档,打开的方法如下:(在电脑端操作) 开始 -> 所有程序 –> MicroSoft Vistual Studio 2005-> MicroSoft Visual Studio Document-> Content(C)-> Windows Embedded CE 6.0-> Develop a Device Driver

第 108 页 / 共 153 页

4.5 系统更新
DevKit8500 支持 TF 卡与 NAND 启动, 本章会针对两种不同的系统更新方式进行介绍。

4.5.1 TF 卡更新
1) TF 卡格式化 请参考 3.7.1 TF 卡系统映像更新。 2) 拷贝映像文件 ? 定 位 到 光 盘 目 录 wince_6/image 目 录 下 , 将 文 件 夹 下 的 MLO 、 EBOOTSD.nb0、NK.bin 映像文件拷贝到 TF 卡中。 3) 启动系统

插入 TF 卡重新启动系统。这时系统从 TF 卡启动。按空格键进入 eboot 菜单,在主菜 单下,键入[A]选择 LCD/DVI/LVDS 输出模式(以下串口信息以 7 寸 LCD 屏为例) ,并分别 按下[2]、[3]选择从 TF 卡启动, [7]和[Y]保存设置。然后键入[0]启动系统。超级终端输出启 动打印信息如下: 60 Texas Instruments Windows CE SD X-Loader for EVM 3730 Built Jun 6 2012 at 11:24:58 Version BSP_WINCE_ARM_A8 1.01.00.03 open ebootsd.nb0 file Init HW: controller RST SDCARD: reqested speed 1000000, actual speed 1000000 SDCARD: reqested speed 25000000, actual speed 19200000 jumping to ebootsd image

Microsoft Windows CE Bootloader Common Library Version 1.4 Built Jun 6 2012 11:21:21

Texas Instruments Windows CE EBOOT for OMAP35xx/37xx, Built Jun 6 2012 at

第 109 页 / 共 153 页

13:06:09 EBOOT Version 0.0, BSP BSP_WINCE_ARM_A8 1.01.00.03

TI OMAP3730 Version 0x00000012 (ES1.2) TPS659XX Version 0x30 (ES1.3) System ready! Preparing for download... INFO: Predownload.... Checking bootloader blocks are marked as reserved (Num = 14) Skip bad block 4 Skip bad block 5 Skip bad block 8 Skip bad block 9 Skip bad block 11

INFO: Boot configuration found

>>> Forcing cold boot (non-persistent registry and other data will be wiped) <<< Hit space to enter configuration menu 5...(在此处按空格键进入EBOOT主菜单)

-------------------------------------------------------------------------------Main Menu -------------------------------------------------------------------------------[1] Show Current Settings [2] Select Boot Device [3] Select KITL (Debug) Device [4] Network Settings [5] SDCard Settings [6] Set Device ID

第 110 页 / 共 153 页

[7] Save Settings [8] Flash Management [9] Enable/Disable OAL Retail Messages [a] Select Display Resolution [0] Exit and Continue

Selection: a

-------------------------------------------------------------------------------Select Display Resolution -------------------------------------------------------------------------------[1] LCD 480x272 60Hz [2] LCD 640x480 60Hz [3] LCD 640x480 72Hz [4] LCD 800x480 60Hz [5] LVDS 800x600 60Hz [6] LVDS 1024x600 60Hz [7] VGA 1024x768 60Hz [8] DVI 1280x720 60Hz [0] Exit and Continue

Selection (actual LCD 800x480 60Hz): 4

-------------------------------------------------------------------------------Main Menu -------------------------------------------------------------------------------[1] Show Current Settings [2] Select Boot Device [3] Select KITL (Debug) Device

第 111 页 / 共 153 页

[4] Network Settings [5] SDCard Settings [6] Set Device ID [7] Save Settings [8] Flash Management [9] Enable/Disable OAL Retail Messages [a] Select Display Resolution [0] Exit and Continue

Selection: 2

-------------------------------------------------------------------------------Select Boot Device -------------------------------------------------------------------------------[1] LAN9115 MAC [2] USBFn RNDIS [3] NK from SDCard FILE [4] NK from NAND [0] Exit and Continue

Selection (actual NK from SDCard FILE ): 3 Boot device set to NK from SDCard FILE

-------------------------------------------------------------------------------Main Menu -------------------------------------------------------------------------------[1] Show Current Settings [2] Select Boot Device [3] Select KITL (Debug) Device

第 112 页 / 共 153 页

[4] Network Settings [5] SDCard Settings [6] Set Device ID [7] Save Settings [8] Flash Management [9] Enable/Disable OAL Retail Messages [a] Select Display Resolution [0] Exit and Continue

Selection: 7 Do you want save current settings [-/y]? y Current settings has been saved

-------------------------------------------------------------------------------Main Menu -------------------------------------------------------------------------------[1] Show Current Settings [2] Select Boot Device [3] Select KITL (Debug) Device [4] Network Settings [5] SDCard Settings [6] Set Device ID [7] Save Settings [8] Flash Management [9] Enable/Disable OAL Retail Messages [a] Select Display Resolution [0] Exit and Continue

Selection: 0

第 113 页 / 共 153 页

Init HW: controller RST SDCARD: reqested speed 1000000, actual speed 1000000 SDCARD: reqested speed 25000000, actual speed 19200000 BLSDCardReadLogo: cannot open Logo.bmp

BL_IMAGE_TYPE_BIN

Download file information: ----------------------------------------------------------[0]: Address=0x80002000 Length=0x01d96950 Save=0x80002000 ----------------------------------------------------------Download file type: 1 ....................................................................................................................................... ..........................................................................................rom_offset=0x0. ..ImageStart = 0x80002000, ImageLength = 0x1D96950, LaunchAddr = 0x80012218

Completed file(s): ------------------------------------------------------------------------------[0]: Address=0x80002000 Length=0x1D96950 Name="" Target=RAM ROMHDR at Address 80002044h Launch Windows CE image by jumping to 0x80012218...

Windows CE Kernel for ARM (Thumb Enabled) Built on Oct 20 2009 at 18:39:19 OAL: CPU revision 0x12:DM3730 OAL: CPU L2 Aux register 0x400042 ****Profiler Build**** ---High Performance Frequency is 25976839 hz--至此系统已经进入 WinCE 的校准界面,完成校准后,系统进入 WinCE 的桌面系统。

第 114 页 / 共 153 页

4.5.2 NAND Flash 更新
1) TF 卡格式化 请按照 3.7.1 TF 格式化部分进行。 2) 拷贝映像文件 ? 将 您 选 择 的 文 件 夹 下 的 MLO 、 EBOOTNAND.nb0 、 NK.bin 、 XLDRNAND.nb0、EBOOTSD.nb0 拷贝到 TF 卡并将 EBOOTNAND.nb0 重 命名为 EBOOTND.nb0。 3) 烧写映像文件 ? 插入 TF 卡重新启动系统。这时系统从 TF 卡启动。超级终端输出启动打印信 息,按[SPACE]进入 EBOOT 菜单。 ? ? ? 按[8]进入 Flash 管理菜单。 分别按[A]、[B]和[C],写 XLDR、EBOOT 和 NK 映像。 然后按[0]键回到主菜单,并分别按下[2]、[4]选择从 NAND Flash 启动,然后 键入[A]选择 LCD/DVI/LVDS 输出模式,[7]和[Y]保存设置。 拔除 TF 卡后重新启动系统。这时系统将从 NAND Flash 启动。

第 115 页 / 共 153 页

4.6 使用说明
4.6.1 如何使用 S-video
在 WinCE 的操作系统下: 1)打开 Start -> Program -> Command Prompt in windows ce 2)在 Command Prompt 下输入: do tvout on

4.6.2 如何使用 openGL ES demo
1) 在 vs2005 下的 catalog items view 里把 PowerVR 选上,如下图所示:

图 4-2 2) 在 vs2005 窗口选择[Build-> Build Solution],生成新的 NK.bin,用这个 NK.bin 替换 TF 卡的 NK.bin。 3) 拷贝 C:\TI\wince_gfx_sgx_01_01_00_patch_01\PowerVR-SDK\OGLES1.1\Binaries\ Demos 或 者 到

C:\WINCE600\PUBLIC\PowerVR\oak\target\Rev125\ARMV4I\retail\*.exe DEVKIT8500 的 WinCE 操作系统里,双击 demo 进行测试。

第 116 页 / 共 153 页

4.6.3 如何使用 CAM8000-A 模块
1) 修改 Devkit8500.bat:

set BSP_NODIGITALCAMERA=1 2) 确保 vs2005 的 catalog items view 里 dshow 的以下组件选上,如下图所示:

图 4-3 3) 选上 vs2005 的 catalog items view 的 Third Party->BSP-> Devkit8500:ARMV4I->drivers->camera 4) 5) 在 vs2005 窗口菜单栏选择[Build-> Rebuild Solution] 将更新后的映像,以及测试程序 (C:\WINCE600\platform\Devkit8500\files\CameraDshowApp_analog.exe)拷贝 到 TF 卡。 6) 确认模块与 Devkit8500 硬件连接正常,接入 TF 卡,启动系统,进入系统后打开 TF 卡的 CameraDshowApp_analog.exe

第 117 页 / 共 153 页

4.6.4 如何使用 CAM8000-D 模块
1) 修改 Devkit8500.bat:

set BSP_NODIGITALCAMERA= 2) 确保 vs2005 的 catalog items view 里 dshow 的以下组件选上,如下图所示:

图 4-4 3) 不要选上 vs2005 的 catalog items view 的 Third Party->BSP->DEVKIT8500:ARMV4I->drivers->camera 4) 5) 在 vs2005 窗口菜单栏选择[Build-> Rebuild Solution] 将更新后的映像、以及测试程序 (C:\WINCE600\platform\DEVKIT8500\files\CameraDshowApp_digital.exe) 拷贝 到 TF 卡。 6) 确认 CAM8000-D 模块与 DEVKIT8500 连接正常,接入 TF 卡,启动系统,进入 系统后打开 TF 卡的 CameraDshowApp_digital.exe CAM8000-D 在 CameraDshowApp_digital.exe 运行时如果选择了 still sink 的话,那么在 control pannel->system 里的应用程序内存里需确保有 170000KB 以上的内存才能让 DirecShow Graph 成功运行。

第 118 页 / 共 153 页

4.6.5 如何加入 DSP 硬件加速的 DirectShow filter 支持
1) 确保 vs2005 的 catalog items view 里 dshow 的以下组件选上,如下图所示:

图 4-5 2) 重新编译 BSP

将新生成的 nk.bin 替换卡上的 nk.bin( 。支持 avi 及 mp4 的文件格式, mpeg4 video ES, H.264 video ES,mpeg2 video ES)

第 119 页 / 共 153 页

4.7 上层开发
本章介绍如何在 DevKit8500 进行 Windows Embedded CE 6.0 应用程序开发。

在开始之前,需要安装 Windows Mobile 6 Professional SDK,下载路径请参考附录 六。

开发 Windows Embedded CE 6.0 操作系统应用程序需要搭建 Windows Embedded CE 6.0 开发平台。 本手册开发实例基于 Windows Mobile 6 Professional SDK 开发。

4.7.1 应用程序接口与示例
DevKit8500 应用程序开发所用到的 API 均采用微软 Windows Embedded CE 6.0 标准 应用程序接口定义,DevKit8500 仅在标准 API 基础上扩展了 GPIO 的接口定义, 通过 GPIO pin 来控制 LED 的状态的应用程序代表请参照 the CD\wince_6\app。 Windows Embedded CE 6.0 标 准应用程序 接口定义可 以查 看 MSDN Windows Embedded CE 6.0 API 相关帮助文档。

GPIO 应用程序开发实例章节有部分标准 API 的使用例程供用户参考。 部分驱动导出的接口仅供驱动使用,应用程序无权限调用。

4.7.2 GPIO 应用程序接口与示例
GPIO 设备名 L"GIO1:",扩展 DeviceIoControl 接口定义,对应 IOCTL 码包括: IOCTL 码 IOCTL_GPIO_SETBIT IOCTL_GPIO_CLRBIT IOCTL_GPIO_GETBIT IOCTL_GPIO_SETMODE 描述 GPIO 引脚置 1 GPIO 引脚清 0 读 GPIO 引脚状态 设置 GPIO 引脚工作模式

第 120 页 / 共 153 页

IOCTL_GPIO_GETMODE IOCTL_GPIO_GETIRQ 表 4-3 操作示例如下: 1) 打开 GPIO 设备

读 GPIO 引脚工作模式 读 GPIO 引脚对应的 IRQ 号

HANDLE hFile = CreateFile(_T("GIO1:"), (GENERIC_READ|GENERIC_WRITE), (FILE_SHARE_READ|FILE_SHARE_WRITE), 0, OPEN_EXISTING, 0, 0); 2) 设置读 GPIO 工作模式

DWORD id = 0, mode = 0; 设置 GPIO 工作模式: DWORD pInBuffer[2]; pInBuffer[0] = id; pInBuffer[1] = mode; DeviceIoControl(hFile, IOCTL_GPIO_SETMODE, pInBuffer, sizeof(pInBuffer), NULL, 0, NULL, NULL); 读 GPIO 工作模式: DeviceIoControl(hFile, IOCTL_GPIO_GETMODE, &id, sizeof(DWORD), &mode, sizeof(DWORD), NULL, NULL); "id"为 GPIO 引脚号,"mode"为 GPIO 模式定义,包括: 模式定义 GPIO_DIR_OUTPUT GPIO_DIR_INPUT GPIO_INT_LOW_HIGH GPIO_INT_HIGH_LOW GPIO_INT_LOW GPIO_INT_HIGH GPIO_DEBOUNCE_ENABLE 表 4-4 3) GPIO 引脚操作 描述 输出模式 输入模式 上升沿触发模式 下降沿触发模式 低电平触发模式 高电平触发模式 跳变触发使能

DWORD id = 0, pin = 0; 第 121 页 / 共 153 页

输出高电平: DeviceIoControl(hFile, IOCTL_GPIO_SETBIT, &id, sizeof(DWORD), NULL, 0, NULL, NULL); 输出低电平: DeviceIoControl(hFile, IOCTL_GPIO_CLRBIT, &id, sizeof(DWORD), NULL, 0, NULL, NULL); 读引脚状态: DeviceIoControl(hFile, IOCTL_GPIO_GETBIT, &id, sizeof(DWORD), &pin, sizeof(DWORD), NULL, NULL); "id"为 GPIO 引脚号,"pin"返回引脚状态。 4) 其它可选操作

读 GPIO 引脚对应的 IRQ 号: DWORD id = 0, irq = 0; DeviceIoControl(hFile, IOCTL_GPIO_GETIRQ, &id, sizeof(DWORD), &irq, sizeof(DWORD), NULL, NULL); "id"为 GPIO 引脚号,"irq"返回 IRQ 号。 5) 关闭 GPIO 设备

CloseHandle(hFile);

(1)GPIO 引脚定义:0~191 MPU Bank1~6 GPIO 引脚,192~209 TPS65930 GPIO 0~17。 (2)GPIO 引脚 0~191 必须在 xldr/platform.c 与 oalib/oem_pinmux.c 两文件下被设置为 GPIO。 (3)GPIO 中断模式仅供驱动使用,应用程序设置该模式无效。

第 122 页 / 共 153 页

附录
附录一 硬件尺寸图

附录 1-1 DevKit8500 硬件尺寸图

第 123 页 / 共 153 页

附录二 Ubuntu 安装
在 Windows 中使用 VirtualBox 安装 Ubuntu 本教程使用 Ubuntu 11.04 的截图,详细讲述了在 Windows 中使用 VirtualBox 安装 Ubuntu 的方法,此教程也适用于 Ubuntu 的 10.10、11.04 和任何未来的 Ubuntu 版本,大 部份的 Linux 发行版本均可使用此方法安装。 VirtualBox 可以让您在一个操作系统中运行另一个完整的操作系统,当然,您必须至 少有 512MB 的 RAM,建议 1GB 的 RAM 或更多。

安装步骤 1. 下载软件
首先您必须获得 VirtualBox 软件和 Ubuntu 磁盘映象(ISO 文件)。 在 VirtualB 下载页面可以获得 VirtualBox 程序 VirtualBox-4.0.10-72479-Win.exe。 在 Ubuntu 下载页面可以获得 Ubuntu 磁盘映象 ubuntu-11.04-desktop-i386.iso。

2. 创建虚拟机

附录 2-1 从开始菜单启动 VirtualBox 程序,单击“New”按钮建立新的虚拟机,当出现新建虚 拟机向导,单击“Next”。

第 124 页 / 共 153 页

附录 2-2 你可以给新虚拟机任意命名,你安装 Ubuntu,可以将虚拟机命名为“Ubuntu”,操 作系统为“Linux”

附录 2-3 此页面是 VirtaulBox 为虚拟机分配 RAM,如果你有 1GB 或更少的 RAM,建议选择默 认设置;如果你的 RAM 超过 1GB,分配给虚拟机 1/4 或更少,例如你的 PC RAM 为 2G,建议为虚拟机分配 512M 的 RAM。 单击“Next”。

第 125 页 / 共 153 页

附录 2-4 如果这是你第一次使用 VirtualBox,选择“Creat new hard disk”,然后单击 “Next”。

附录 2-5 单击“Next” 。

第 126 页 / 共 153 页

附录 2-6 从理论上讲,选择动态扩展的虚拟硬盘驱动器是最好的,因为它占用你实际硬盘的容 量为系统的实际大小。然而,奇怪的是,当虚拟的 Ubuntu 安装新软件时,只是填充硬盘驱 动器,而不是扩充虚拟硬盘驱动器的容量。 建议选择“Fixed-size storage”。

附录 2-7 选择存储硬盘数据的位置,设置 Ubuntu 的默认虚拟硬盘容量(至少 8GB)。

第 127 页 / 共 153 页

附录 2-8

附录 2-9 单击 Finish,等待创建虚拟硬盘驱动器。

第 128 页 / 共 153 页

附录 2-10 单击“Finish”,虚拟硬盘驱动器已经成功创建。

3.安装

Ubuntu

附录 2-11

第 129 页 / 共 153 页

附录 2-12 在虚拟机上安装 Ubuntu 前,首先要做的事情就是添加下载的 Ubuntu 的磁盘映像 (.ISO)到虚拟硬盘驱动器上,引导 Ubuntu 系统在虚拟机上启动。点击 “Setting?storage”。在 IED 控制器下显示为“empty”,选择“empty”后单击右边的 小光盘图标,打开“选择虚拟 CD/DVD 光盘文件”对话框,双击之前下载的 ISO 文件。

附录 2-13 选择了文件单击“OK”后返回到 Virtual 主界面。 然后,双击虚拟机启动它。

第 130 页 / 共 153 页

附录 2-14

附录 2-15 单击“OK”继续。

第 131 页 / 共 153 页

附录 2-16

附录 2-17 选择语言后单击“Install Ubuntu”按钮。

第 132 页 / 共 153 页

附录 2-18 在此页面会询问您是否要安装闭源代码的第三方软件如 MP3 播放器和 Flash,这是 Ubuntu11.04 和 Ubuntu10.10 安装程序的新选项,我强烈建议不要勾上此选项,除非你知 道 Richard Stallman 是谁。

附录 2-19 单击“Forward”。

第 133 页 / 共 153 页

附录 2-20 请注意,如果你按下按钮“Install Now”,你的虚拟硬盘驱动器将会被格式化,数据 无法还原,请在按下按钮前确定你已备份好数据。

附录 2-21 在 Ubuntu 准备复制安装时,它会问你一些问题,答案不言自明,这里就不赘述。

第 134 页 / 共 153 页

附录 2-22

附录 2-23

第 135 页 / 共 153 页

附录 2-24

附录 2-25

Ubuntu 在虚拟机上安装完成(整个过程大概花费 15 分钟至 1 个小时,具体的时间取 决于你电脑的速度)。

第 136 页 / 共 153 页

附录 2-26

附录 2-27 最后,为了使用你安装的虚拟机 (而不是不断的从 CD 启动) ,你必须再次将 CD/DVD 设备设为空。

第 137 页 / 共 153 页

附录三 Linux USB Ethernet/RNDIS Gadget 驱动安装
1、如果你还没安装 Linux USB Ethernet/RNDIS Gadget 驱动,PC 会提示发现新硬件 界面,选中“从列表或指定位置安装”,然后点击“下一步”。

附录 3-1 2. 指定 USB 驱动路径[光盘\linux\tools],然后点击“下一步”。

第 138 页 / 共 153 页

附录 3-2 3、出现以下提示时,选择继续安装

附录 3-3 4、等待驱动安装完毕

第 139 页 / 共 153 页

附录 3-4

第 140 页 / 共 153 页

附录四 Linux Boot Disk Format
How to create a dual-partition card for DevKit8500D/A to boot Linux from first partition and have root file system at second partition.

一、Introduction This guide is meant for those looking to create a dual-partition card, booting from a FAT partition that can be read by the OMAP3 ROM bootloader and Linux/Windows, then utilizing an ext3 partition for the Linux root file system.

二、Details
Text marked with [] shows user input.

1、Determine which device the TF Card Reader is on your system Plug the TF Card into the TF Card Reader and then plug the TF Card Reader into your system. After doing that, do the following to determine which device it is on your system.
$ [dmesg | tail] ... [ 6854.215650] sd 7:0:0:0: [sdc] Mode Sense: 0b 00 00 08 [ 6854.215653] sd 7:0:0:0: [sdc] Assuming drive cache: write through [ 6854.215659] sdc: sdc1

[ 6854.218079] sd 7:0:0:0: [sdc] Attached SCSI removable disk [ 6854.218135] sd 7:0:0:0: Attached scsi generic sg2 type 0 ...

In this case, it shows up as /dev/sdc (note sdc inside the square brackets above).

2、Check to see if the automounter has mounted the SD Card Note there may be more than one partition (only one shown in the example below).
$ [df -h]

第 141 页 / 共 153 页

Filesystem ... /dev/sdc1 ...

Size

Used Avail Use% Mounted on

400M

94M

307M

24% /media/disk

Note the "Mounted on" field in the above and use that name in the umount commands below.

3、If so, unmount it
$ [umount /media/disk]

4、Start fdisk
Be sure to choose the whole device (/dev/sdc), not a single partition (/dev/sdc1). $ [sudo fdisk /dev/sdc]

5、Print the partition record So you know your starting point. Make sure to write down the number of bytes on
the card (in this example, 2021654528). Command (m for help): [p]

Disk /dev/sdc: 2021 MB, 2021654528 bytes 255 heads, 63 sectors/track, 245 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot /dev/sdc1 * Start 1 End 246 Blocks 1974240+ Id c System W95 FAT32 (LBA)

Partition 1 has different physical/logical endings: phys=(244, 254, 63) logical=(245, 200, 19)

6、Delete any partitions that are there already
Command (m for help): [d]

第 142 页 / 共 153 页

Selected partition 1

7、Set the Geometry of the TF Card If the print out above does not show 255 heads, 63 sectors/track, then do the following expert mode steps to redo the TF Card:

1)Go into expert mode.
Command (m for help): [x]

2)Set the number of heads to 255.
Expert Command (m for help): [h] Number of heads (1-256, default xxx): [255]

3)Set the number of sectors to 63.
Expert Command (m for help): [s] Number of sectors (1-63, default xxx): [63]

4)Now Calculate the number of Cylinders for your TF Card.
#cylinders = FLOOR (the number of Bytes on the TF Card (from above) / 255 / 63 / 512 )

So for this example: truncate, don't round).

2021654528 / 255 / 63 / 512 = 245.79.

So we use 245 (i.e.

5)Set the number of cylinders to the number calculated.
Expert Command (m for help): [c] Number of cylinders (1-256, default xxx): [enter the number you calculated]

6)Return to Normal mode.
Expert Command (m for help): [r]

第 143 页 / 共 153 页

8、Print the partition record to check your work
Command (m for help): [p]

Disk /dev/sdc: 2021 MB, 2021654528 bytes 255 heads, 63 sectors/track, 245 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot

Start

End

Blocks

Id

System

9、Create the FAT32 partition for booting and transferring files from Windows
Command (m for help): [n] Command action e p [p] Partition number (1-4): [1] First cylinder (1-245, default 1): [(press Enter)] Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-61, default 61): [+5] extended primary partition (1-4)

Command (m for help): [t] Selected partition 1 Hex code (type L to list codes): [c] Changed system type of partition 1 to c (W95 FAT32 (LBA))

10、Mark it as bootable
Command (m for help): [a] Partition number (1-4): [1]

第 144 页 / 共 153 页

11、Create the Linux partition for the root file system
Command (m for help): [n] Command action e p [p] Partition number (1-4): [2] First cylinder (7-61, default 7): [(press Enter)] Using default value 52 Last cylinder or +size or +sizeM or +sizeK (7-61, default 61): [(press Enter)] Using default value 245 extended primary partition (1-4)

12、Print to Check Your Work
Command (m for help): [p]

Disk /dev/sdc: 2021 MB, 2021654528 bytes 255 heads, 63 sectors/track, 245 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot /dev/sdc1 /dev/sdc2 *

Start 1 7

End 6 61

Blocks 409626 1558305

Id c 83

System W95 FAT32 (LBA) Linux

13、Save the new partition records on the TF Card This is an important step. All the work up to now has been temporary.
Command (m for help): [w] The partition table has been altered!

第 145 页 / 共 153 页

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot.

WARNING: If you have created or modified any DOS 6.x partitions, please see the fdisk manual page for additional information. Syncing disks.

14、Format the partitions The two partitions are given the volume names LABEL1 and LABEL2 by these commands. You can substitute your own volume labels.
$ [sudo mkfs.msdos -F 32 /dev/sdc1 -n LABEL1] mkfs.msdos 2.11 (12 Mar 2005)

$ [sudo mkfs.ext3 -L LABEL2 /dev/sdc2] mke2fs 1.40-WIP (14-Nov-2006) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 195072 inodes, 389576 blocks 19478 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=402653184 12 block groups 32768 blocks per group, 32768 fragments per group

第 146 页 / 共 153 页

16256 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912

Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information:

在 ubuntu 下格式化好 FAT 和 EXT3 双分区后,FAT 分区需要在 window 下重新格式化一次,否则可能会出现无法从 TF 卡启动的 情况

第 147 页 / 共 153 页

附录五 TFTP 服务器搭建
1、安装客户端 $>sudo apt-get install tftp-hpa $>sudo apt-get install tftpd-hpa

2、安装 inet $>sudo apt-get install xinetd $>sudo apt-get install netkit-inetd

3、服务器配置 首先,在根目录下建一个 tftpboot, 并把属性改成任意用户可读写: $>cd / $>sudo mkdir tftpboot $>sudo chmod 777 tftpboot 其次,在/etc/inetd.conf 里添加: $>sudo vi /etc/inetd.conf //把下面的语句添加的此文件里

tftpd dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /tftpboot 然后,重新加载 inetd 进程: $>sudo /etc/init.d/inetd reload 最后,进入目录 /etc/xinetd.d/,并在其中新建文件 tftp,把指定的内容加入到 tftp 文件 中: $>cd /etc/xinetd.d/ $>sudo touch tftp $>sudo vi tftp service tftp { disable = no socket_type protocol wait user server = dgram = udp = yes = root = /usr/sbin/in.tftpd //进入目录 /etc/xinetd.d/ //新建文件 tftp //编辑文件 tftp,把下面内容加入 tftp 文件中

第 148 页 / 共 153 页

server_args per_source cps }

= -s /tftpboot -c = 11 = 100 2

4、重新启动服务: $>sudo /etc/init.d/xinetd restart $>sudo in.tftpd -l /tftpboot

5、测试服务器 测试一下,在/tftpboot 文件夹下新建立一个文件 $>touch abc 进入另外一个文件夹 $>tftp 192.168.1.15 (192.168.1.15 为本机 IP) $>tftp> get abc 如果可以下载说明服务器已经安装成功。

第 149 页 / 共 153 页

附录六 WinCE 相关资源链接
1. Visual Studio 2005 SP1 Update for Vista (if applicable) http://download.microsoft.com/download/c/7/d/c7d9b927-f4e6-4ab2-8399-79a2d5cdf ac9/VS80sp1-KB932232-X86-ENU.exe 2. Windows Embedded CE 6.0 Platform Builder Service Pack 1

http://www.microsoft.com/downloads/details.aspx?familyid=BF0DC0E3-8575-4860-A 8E3-290ADF242678&displaylang=en 3. Windows Embedded CE 6.0 R2

http://www.microsoft.com/downloads/details.aspx?FamilyID=f41fc7c1-f0f4-4fd6-9366 -b61e0ab59565&displaylang=en 4. Windows Embedded CE 6.0 R3

http://download.microsoft.com/download/F/5/2/F5296720-250A-4055-991C-0CEA5D E11436/CE6R3.iso 5. WinCEPB60-091231-Product-Update-Rollup-Armv4I.msi

http://download.microsoft.com/download/E/D/7/ED779010-1B2E-4ACA-BF9F-9F1D0 EF8052B/WinCEPB60-091231-Product-Update-Rollup-Armv4I.msi 6. Viewers for Windows Embedded CE 6.0 R3

http://download.microsoft.com/download/3/3/8/3383B6CE-F70A-4A2C-873A-8C67D 3CF55F6/WesttekFileViewers6.exe 7. Windows Mobile 6 Professional SDK Refresh.msi

http://download.microsoft.com/download/f/2/3/f232f773-7edc-4300-be07-d3b76a5b3 a91/Windows%20Mobile%206%20Professional%20SDK%20Refresh.msi 8. Windows Embedded CE 6.0 USB Camera Driver.msi

http://download.microsoft.com/download/f/a/1/fa1aaef1-6ae3-4cf3-ab95-b01d3e4284 03/Windows%20Embedded%20CE%206.0%20USB%20Camera%20Driver.msi

第 150 页 / 共 153 页

附录七 FAQ 总结
请访问:http://www.elinux.org/DevKit8500_FAQ

第 151 页 / 共 153 页

技术支持和保修服务
技术支持服务

天漠科技对所销售的产品提供一年的免费技术支持服务,技术支持服务范围:

天漠科技嵌入式平台产品的软硬件资源 帮助您正确地编译与运行我们提供的源代码 按我们提供的产品文档,操作天漠科技嵌入式软硬件平台出现异常问题的 判定是否存在产品故障

特别说明,以下情况不在我们的免费技术支持服务范围,我们将根据情况酌情处理:

用户自行开发中遇到的软硬件问题 用户自行裁减编译运行嵌入式操作系统遇到的问题 用户自己的应用程序 修改我们的软件代码遇到问题的

保修服务条款

1. 本产品自出售之日起,于正常使用状况下,实行以下联保期限: 印刷电路板卡:提供 12 个月免费保修服务; 2. 以下情况不属于免费服务范围,天漠科技将酌情收取服务费用: A. 无法提供产品有效购买凭证、产品识别标签撕毁或无法辨认,涂改标签或标签与 实际产品不符; B. 未按用户手册操作所致导致损坏产品的; C. 因天灾 (水灾、火灾、地震、雷击、台风等) 或零件之自然耗损或遇不可抗拒力导 致的产品外观及功能损坏;

第 152 页 / 共 153 页

D. 因供电、磕碰、房屋漏水、动物、潮湿、杂 / 异物进入板内等原因导致的产品外 观及功能损坏; E. 用户擅自拆焊零件或修改而导致不良或授权非天漠科技认可的人员及机构进行产 品的拆装、 维修, 变更产品出厂规格及配置或扩充非天漠科技公司销售或认可的配件及由此 引致的产品外观及功能损坏; F. 用户自行安装软件、系统或软件设定不当或由电脑病毒等造成的故障; G. 非经授权渠道购得此产品者。 H. 非天漠科技对用户做出的超出保修服务范围的承诺(包括口头及书面等)由承诺 方负责兑现,天漠科技恕不承担任何责任; 3. 保修期内由用户发到我们公司的运费由用户承担,由我们公司发给用户的运费由我 们承担;保修期外的全部运输费用由用户承担。 4. 若板卡需要维修,请联系技术支持服务部。

液晶屏幕基本使用保养知识

1. 请勿用手指甲及尖锐的物品(硬物)碰触液晶屏表面以免刮伤,否则恕不能享受上 述服务。 2. 液晶屏幕表面会因静电而吸附灰尘, 建议购买液晶屏幕专用擦拭布来清洁您的屏幕, 请勿用手指拍除以免留下指纹,并请轻轻擦拭。 3. 请勿使用化学清洁剂擦拭液晶表面,否则恕不能享受上述服务。

增值服务

天漠科技还为用户提供以下增值技术服务:

提供基于天漠科技嵌入式平台的驱动开发服务,如串口、USB 接口设备、LCD 液晶 屏 提供操作系统移植、BSP 驱动开发、应用软件开发等服务

第 153 页 / 共 153 页

其他增值服务,包括机箱、电源、LCD 配套等 其他 OEM/ODM 服务 技术培训

用户可以联络 Timll 直接获得技术支持: 支持热线:+86-755-25503401 传真号码:+86-755-25616057 售前咨询:sales@timll.com 售后支持:support@timll.com

第 154 页 / 共 153 页


相关文章:
更多相关标签: