ARMDSPIVOMAP35XX实验指导书

上传人:仙*** 文档编号:27753556 上传时间:2021-08-20 格式:DOC 页数:77 大小:4.05MB
返回 下载 相关 举报
ARMDSPIVOMAP35XX实验指导书_第1页
第1页 / 共77页
ARMDSPIVOMAP35XX实验指导书_第2页
第2页 / 共77页
ARMDSPIVOMAP35XX实验指导书_第3页
第3页 / 共77页
点击查看更多>>
资源描述
EL - ARM DSP-IV 实验指导书 1 目录 第 1 章 EL-ARM-DSP-IV 实验系统的资源介绍 .2 1EL-ARM-DSP-IV 实验箱硬件资源概述 .2 2实验箱底板 ARM 部分资源介绍 .3 3实验箱 E_Lab 总线的介绍 .5 4omap35xx CPU 板介绍说明 .6 第 2 章 LINUX 系统开发 .18 1开发环境搭建 .18 2x-load 编译 .20 3u-boot 编译 .21 4内核编译 .21 5文件系统建立 .22 6系统定制 .22 7LINUX 系统映象烧写 .23 第 3 章 LINUX 操作系统的驱动及应用程序编写实验 .33 1. LINUX 驱动程序编写 .33 2. LINUX 应用程序编写 .38 3. OMAP35XX 的 GPIO 输入驱动和应用程序编写 .40 4.扩展 74LS244、74LS273 驱动程序及应用程序编写 .45 5.HD7279 键盘驱动及应用程序编写 .49 6.Dome 应用程序编写 .53 7.SD 卡实验 .56 8.USB 实验 .58 9.MP3 和视频播放实验 .60 10利用实验箱上网实验 .61 附录 .63 附录一、TFTP 服务器搭建 .63 附录二、TechV-35xx 恢复到出厂设置 .64 EL - ARM DSP-IV 实验指导书 2 第 1 章 EL-ARM-DSP-IV 实验系统的资源介绍 1EL-ARM-DSP-IV 实验箱硬件资源概述 EL-ARM-DSP-IV 型教学实验系统属于一种综合的教学实验系统,该实验系统集成 ARM 和 DSP 的控制接口,实现了多模块多 CPU 协同工作的应用实验。它是集学习、应用 编程、开发研究于一体的 ARM 和 DSP 实验教学系统。用户可根据自己的需求选用不同 类型的 CPU 适配板,在不需要改变任何配置情况下,支持的 ARM 板卡有 EL-ARM9- S3C2410(ARM9) 、ARM10 和 OMAP3。支持的 DSP 板卡有: TECH_V2407、TECH_V2812、TECH_V5402、TECH_V5409、TECH_V5416 、TECH_V5 509、TECH_V6XXX 等,可完成 ARM9 和 DSP 的学习,同时,实验系统上的 Tech_V 总线 能够拓展较为丰富的实验接口板。用户在了解“E_LAB” ”标准后,能研发出不同用途的 实验接口板。除此之外,在实验板上有丰富的外围扩展资源(模拟信号发生器,数字量 IO 输入输出,语音编解码、人机接口等单元) ,可以完成 ARM 和 DSP 的基础实验、算法实 验和数据通信实验、扩展实验;还可以完成 ARM 操作系统下与 DSP 协同多 CPU 工作等。 综上所述,该实验系统可以满足广大用户的需求,是各类用户的理想选择。 下面给出该实验系统的基本框图,其中蓝色模块为 ARM 模块,粉色模块为 DSP 模 块,无色模块为 ARM 和 DSP 的共用模块。 ARM-DSP-IV结 构 框 图 ARM_CPU DSP_CUCPLDDRAMTF_LCDUSB2.0AudioE_lab扩 展 AD/USBAudioE_lab扩 展 Switch(共 用 ) 4Xkey(共 用 ) LED(共 用 ) 七 段 数 码 显示 (共 用 ) EL - ARM DSP-IV 实验指导书 3 1.1 实验箱 ARM 部分硬件组成 该实验系统硬件资源主要包括: 一组 CPU 板接口:支持 ARM 核心板; 一组 E_LAB 接口:扩展 E-LAB 模块; CPLD 单元:处理 ARM,DSP 的逻辑和时序; 语音处理单元:IIS 格式,芯片 UDA1341TS,采样频率最高 48KHz;(OMAP3 未用); LCD 液晶显示单元:8 寸 TFT 屏; 触摸屏单元: 四线电阻屏,8 寸; 键盘单元:4X4 键盘,带 8 位 LED 数码管;芯片 HD7279A; 数字量输入输出扩展单元; 一个 USB 扩展单元:USB2.0 ,芯片 CY7C68013A(OMAP3 未用); 2实验箱底板 ARM 部分资源介绍 2.1. 概述 实验箱底板上的资源丰富,具体的实验单元有:LCD 模块,触摸屏模块,语音单元模 块电源模块,模拟输入输出模块,键盘模块,CPLD 烧写模块,键盘数码管模块, E_LAB 总线接口等等。 实验箱上的底板详细具体资源见表 1-10。 单元名称 关键控制芯片 功能 备注 LCD 模块 Omap35xx 内置 LCD 控制器 液晶显示 8 寸 TFT 触摸屏模块 S3C2410 内置 完成触摸响应 语音模块 UDA1341TS 完成语音模拟信号的采集 采样率最高 48KHz; 键盘数码管模块 HD7279A 中断请求,数码管显示 4X4 键,8 位数码管 模拟输入输出模块 74LS273,244 完成数据锁存,数据发送 8 位数据 E_LAB 总线接口 扩展接口 信号源模块 产生模拟信号 EL - ARM DSP-IV 实验指导书 4 ARM USB2.0 CY7C68013A USB 数据传送 接下来详细介绍各模块单元。 2.2. 底板资源的具体介绍 2.2.1 模拟输入输出接口单元 8bit 的数字量输入(由八个单刀双掷开关产生) ,通过 74LS244 缓冲;8bit 的 数字量输出(通过八个 LED 灯显示) ,通过 74LS273 锁存。数字量的输入输出都映射 到 CPU 的 IO 空间。数字值的显示的通过八个 LED 灯和 LCD 屏,拨到开关,8 个开关 的开关状态,通过 LED 灯,和 LCD 的显示可以清楚的看到实验结果。 2.2.2 键盘数码管模块 键盘接口是由芯片 HD7279A 控制的,HD7279A 是一片具有串行接口的,可同时驱 动 8 位共阴式数码管或(64 只独立 LED)的智能显示驱动芯片,该芯片同时还可连 DSP E_LAB 接口 ARM E_LAB 接口 AD/DA 单元LCD、触摸 屏模块 LED 显示 单元 ARM 语音 单元 模拟信号源 单元 ARM USB2.0 单元 DSP AD/DA 接 口单元 DSP 语音 单元 ARM_CPU 单元 CPLD 设置 单元 电源 单元 4X4 键盘 单元 单刀双掷开关 单元 DSP_CPU 单元 DSP USB 单元 扩展接口 单元 EL - ARM DSP-IV 实验指导书 5 接多达 64 键的键盘矩阵,单片即可完成 LED 显示,键盘接口的全部功能。HD7279A 内 部含有译码器,可直接接受 BCD 码或 16 进制码,并同时具有 2 种译码方式。此外, 还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。HD7279A 具有片选信 号,可方便地实现多于 8 位的显示或多于 64 键的键盘接口。在该实验系统中,仅提 供了 16 个键。 2.2.3 音频模块(2410 专用) 语音的模拟信号的编解码采用了 UDA1341TS 芯片。该芯片有两个串行同步变换 通道、D/A 转换前的差补滤波器和 A/D 变换后的滤波器。其他部分提供片上时序和 控制功能。芯片的各种应用配置可以通过芯片的三根线,由串行通信编程来实现。 主要包括:复位、节电模式、通信协议、串行时钟速率、信号采样速率、增益控制 和测试模式、音质特性。最大采样速率 48kb/s。 语音处理单元由 UDA1341TS 模块、输出功率模块组成。语音的模拟信号经过偏 置和滤波处理后输入到语音的编解码芯 UDA1341TS 中,UDA1341TS 以 IIS 的语音格式 送入 S3C2410X 中,S3C2410X 可以处理该信号,或把它保存起来,也可用 DMA 控制而 不经过 CPU 处理,直接实时的采集,然后实时的播放出去。音频信号通过 D/A 转换 后接耳机输出。如图 1-3。 语音处理单元原理框图 图 1-3-1 语音处理单元接口说明: LINE_IN:音频输入端子,可输入 CD、声卡、MP3 等语音信号。 MIC_IN:音频输入端子,麦克风等语音信号。 音频输入 UDA134TS 音频输出 S3C2410 EL - ARM DSP-IV 实验指导书 6 Audio_OUT:音频输出端子,可接耳机、音箱。 2.2.4 LCD 模块 本实验系统选用了8寸TFT-LCD液晶显示屏,LCD的控制器使用OMAP3的内部集成 的控制器。电源操作范围宽(2.7V to 5.5V);低功耗设计可满足产品的省电要求。 “LCD_ON/OFF1”按键,控制着 LCD 屏的电源,是 LCD 电源的开关。 2.2.5 触摸屏模块 触摸屏模块,把采集到的电压信号经 A/D 转换成数字量给处理器。 2.2.6 CPLD 单元 由于实验箱上的资源众多,几乎每一个设备资源都要使用片选信号或中断信号 或一些串口的信号,以及一些寄存器的地址等等,因此该实验箱通过加入了一片 CPLD 芯 片,用来完成各资源所需的地址译码,片选信号,以及一些高低电平的模拟。OMAP35XX 的 CPLD 译码表如下表: 地 址 线 地 址 线 地 址 线 数 据 线 数 据 线 数 据 线 地址 A1 A2 A9 D2 D1 D0 基地址 1+0 x0004 LED 灯地址 1 0 0 X X X 基地址 1+0 x0004 电平开关地址 1 0 0 X X X 基地址 1+0 x0004 写 7279_clrcs1 1 1 1 0 0 0 基地址 1+0 x0004 读 7279_setcs1 1 1 1 X X X 基地址 1+0 x0004 写 7279_clrclk 0 0 1 0 0 0 基地址 1+0 x0004 读 7279_setclk 0 0 1 X X X 基地址 1+0 x0004 写 7279_clrdat 1 0 1 0 0 0 基地址 1+0 x0004 读 7279_setdat 1 0 1 X X X 基地址 1+0 x0004 写 HD7279_DAT 0 1 1 X X X 基地址 1+0 x0004 E_LAB_Ecs0 0 0 1 X X X 基地址 2+0 x0004 基地址 1:0 x2c00 0000 基地址 2:0 x2000 0000 表 1-11 CPLD 地址分配表 EL - ARM DSP-IV 实验指导书 1 2.2.7 扩展双口 RAM(OMAP35XX 未用) 该系统外扩一个 8K(芯片类型: 70V25)的双口 RAM,为用户预留了足够的扩展 空间,双口 RAM 提供两个端口独立控制,地址引脚和 I/O 引脚,可以独立地读或写;当 用户使用中断时:右边接口处理器“写”DRAM 地址“1FFE ”时,响应左边中断,在左 边处理器的中断里清除中断标志,并重新打开总中断;左边接口处理器“写”DRAM 地 址“1FFF ”时,响应右边中断,在右边处理器的中断里清除中断标志,并重新打开总中 断;此双口 RAM 的右边接 DSP 处理器,左边接 ARM 处理器。 实验箱 ARM 的双口 RAM 的片选地址为:基地址1FFFH ; 中断:EINT3 ; 实验箱 DSP 的双口 RAM 的片选地址为:基地址 2000h; 中断:XINT3; 其硬件扩展原理图如下: 2.2.8 USB2.0 单元(OMAP35XX 未用) 本系统扩展了一个USB2.0接口,芯片是Cypress的CY7C68013。Cypress公司的EZ- USBFX2系列芯片中的CY7C68013 ,这是一种带USB 接口的单片机芯片,虽然采用低价 的8051单片机,但仍然能获得很高的速度。它包括一个8051处理器、一个串行接口引擎 EL - ARM DSP-IV 实验指导书 2 (SIE),一个USB收发器、一个8.5kB片上RAM 、一个4 kB FIFO存储器及一个通用可编 程接口(GPIF) 。 2.2.9 实验系统开关及扩展孔 S4:拨码开关,ARM CPU 的 bank 选择;DSP CPU 的 IO 空间选择。 码位 功能 1-ON CS0 为 ON 片选为 NGCS0 2-ON CS1 为 ON 片选为 NGCS1 3-ON CS2 为 ON 片选为 NGCS2 4-ON CS3 为 ON 片选为 NGCS3 5-ON DCS0 有效:0000h1FFFh (DSP I/O 空间) 6-ON DCS1 有效:2000h3FFFh (DSP I/O 空间) 7-ON DCS2 有效:4000h7FFFh (DSP I/O 空间) 8-ON DCS3 有效:8000h7FFFh (DSP 数据空间) SW8:LED 显 示开关 SW9:LED 显 示开关 S5:7279 中 断选择 SW2:AD 选 择开关 SW10、SW11 语音选择开关 LCD 显示开 关 SW4:CPU 板 选择开关 S4:ARM、DSP 地址选择开 关 SW6:单刀双 掷选择开关 扩展 2 号孔 EL - ARM DSP-IV 实验指导书 3 SW4:拨码开关,ARM 和 DSP CPU 板选择 第 1 位 DSP1 第 2 位 DSP2 功能 OFF OFF 选择 5XXX 系列 DSP CPU ON OFF 选择 6XXX 系列 DSP CPU OFF ON 保留 ON ON 保留 第 3 位 ARM1 第 4 位 ARM2 功能 OFF OFF 选择 ARM9 CPU ON OFF 选择 ARM10 CPU OFF ON 选择 OMAP35XX CPU ON ON 保留 LCD 显示开关: LCD_SWITCH 是 LCD 开关,按下为开,弹起为关。 SW9、SW8:拨码开关 SW8 SW9 功能 OFF ON 选择 DSP 输出到 LED ON OFF 选择 ARM 输出到 LED S5:7279 中断选择 第 1 位 第 2 位 功能 ON OFF 7279 中断输出到 ARM OFF ON 7279 中断输出到 DSP SW2:拨码开关 SW2 的所有位拨到 ON, AD 开关选通。SW2 的所有位拨到 OFF,AD 开关断开。 EL - ARM DSP-IV 实验指导书 4 SW10、SW11:拨码开关 DSP 语音选通开关,SW10、SW11 的所有位拨到 ON,DSP 语音单元选通,所 有位 OFF,DSP 语音单元断开。 扩展 2 号孔:在实验箱的中部和左中部,有两个扩展二号孔单元,具体功能见下面表格: 标号 功能 BINT0 ARM 中断 0 BINT1 ARM 中断 1 BITN2 ARM 中断 2 DBINT2 DSP 中断 2 DBINT1 DSP 中断 1 DBINT0 DSP 中断 0 CLKOUT DSP 的 CLKOUT 引出 XF DSP 的 XF 脚引出 BIO DSP 的 BIO 脚引出 RESET DSP 的 RESET READY DSP 的 READY DGND 接地 IICSDA ARM 的 IICSDA IICSCL ARM 的 IICSCL GPIO0 ARM 的 GPH9 GPIO1 ARM 的 GPH1 GPIO2 ARM 的 TOUT3 GPIO3 ARM 的 TOUT1 CLK1-CLK4 经过 CPLD 分频输出的时钟 AIN0 ARM 的 AD0 通道 AIN2 ARM 的 AD2 通道 AIN3 ARM 的 AD3 通道 IN8-IN1 Switch 单元的引出对应 K1-K8 标号 功能 D_08-D_01 DSP 扩展 273 输出 A_08-A_01 ARM 扩展 273 输出 EL - ARM DSP-IV 实验指导书 5 3实验箱 E_Lab 总线的介绍 在实验箱的左下部,有一对扩展接口,JP2 和 JP4,称为 E_Lab 总线接口。在深入 掌握了 ARM 的系统之后,可以进一步开发属于自己的具体的开发板,现就 E_Lab 总 线的接口定义说明见表 1-28, 1-29。值得注意的是 E_Lab 总线接口使用双排插座,每 个插座并列的两个引脚的信号定义是相同的。 JP1:JP1 扩展信号是地址总线和读写、片选信号:见表 1-12 序号 代号 含义 IO 备注 1,2 MCCS0 O 片选信号 3,4 MCCS1 O 片选信号 5,6 MCCS2 O 片选信号 7,8 MCCS3 O 片选信号 9,10 A4 地址线 O 与 CPU 的 ADDR4 相连接 11,12 A5 地址线 O 与 CPU 的 ADDR5 相连接 13,14 A6 地址线 O 与 CPU 的 ADDR6 相连接 15,16 A7 地址线 O 与 CPU 的 ADDR7 相连接 17,18 A8 地址线 O 与 CPU 的 ADDR8 相连接 19,20 A9 地址线 O 与 CPU 的 ADDR9 相连接 21,22 A10 地址线 O 与 CPU 的 ADDR10 相连接 23,24 A11 地址线 O 与 CPU 的 ADDR11 相连接 25,26 ACS0 O 片选信号 27,28 ACS1 O 片选信号 29,30 ACS2 O 片选信号 31,32 ACS3 O 片选信号 表 1-12 底板 JP1 插座引脚信号 JP2:JP2 扩展信号是外设信号(数据)接口:见表 1-13。 序号 代号 含义 IO 备注 1,2,3,4 +5V 电源 5,6,7,8 GND 地 9,10 A0 地址线 O 与 CPU 的 ADDR0 相连接 11,12 A1 地址线 O 与 CPU 的 ADDR1 相连接 13,14 A2 地址线 O 与 CPU 的 ADDR2 相连接 15,16 A3 地址线 O 与 CPU 的 ADDR3 相连接 17,18 D0 数据线 IO 19,20 D1 数据线 IO EL - ARM DSP-IV 实验指导书 6 序号 代号 含义 IO 备注 21,22 D2 数据线 IO 23,24 D3 数据线 IO 25,26 D4 数据线 IO 27,28 D5 数据线 IO 29,30 D6 数据线 IO 31,32 D7 数据线 IO 33,34 ALE O 地址锁定使能 35,36 R/W O 读写使能 37,38 BRE O Busy/Ready 信号 39,40 ACS4 O 片选信号 41,42, 43,44 +12V 电源 45,46, 47,48 -12V 电源 表 1-13 底板 JP2 插座引脚信号 综上所述,本章介绍了该系统的硬件资源,看完本章内容,应该对实验系统有 一个基本的了解,在后面的几章中将会结合光盘资料给出的实验程序详细介绍每个 单元在实验中的具体应用。 4omap35xx CPU 板介绍说明 4.1omap35xx CPU 小板概况 4.1.1 板卡主要资源 存储器: 64K 内部 SRAM; 32 位宽度 DDR,容量为 128MB; 256MB 的 NAND FLASH; 功能扩展: 扩展了 USB 物理层接口,支持 USB 主、从工作模式; 外扩语音模块,一路语音输入,一路语音输出; 电源: 独立的电源解决方案,外部只需要输入 3.64.5V 直流电。 EL - ARM DSP-IV 实验指导书 7 4.1.2 板卡原理框图 o m a p 3 5 3 0 U S B P H Y 电源管理 语音 N A N D F L A S H D D R 扩展接口 扩展接口 Omap35xx CPU 板原理框图 4.2omap35xx cpu 小板扩展接口介绍 本设计方案采用的是“CPU 板+ 功能板”的设计。为了增强设计的可扩展性,在 CPU 小板上,尽可能的把信号引到了连接座上。这样在用户进行再次开发时,便可以根据自 己需要进行适当的扩展。 CPU 板和外部的连接采用了两个 100 引脚的连接座(如下所示) ,具体的可以参考原 理图部分。 EL - ARM DSP-IV 实验指导书 8 EL - ARM DSP-IV 实验指导书 9 4.3内存映射 EL - ARM DSP-IV 实验指导书 10 EL - ARM DSP-IV 实验指导书 11 GPMC 接口地址分配: 起始地址 结束地址 片选信号 设备 0 x00000000 0 x10000000 GPMC_CS0 NAND FLASH 未配置 GPMC_CS3 连接到大板扩展口 未配置 GPMC_CS4 连接到大板扩展口 0 x20000000 GPMC_CS5 连接到大板扩展口 0 x2c000000 GPMC_CS6 连接到大板扩展口 0 x38000000 GPMC_CS7 以太网接口芯片 注意: 对于GPMC CS0CS7 起地址段范围为0 x00000000 0 x3FFFFFFF,而且每一个片选区间 CSx(CS0CS7)的地址段可以单独进行配置,具体配置,请参照OMAP35x 的Technical Reference Manual 的Memory Subsystem的GMPC部分。 4.4启动设置说明 Omap35xx 可以很多种方式进行启动,这里只介绍本板卡应用过程中所用到的启动设 置(如下表所示): SW1.1 SW1.2 SW1.3 SW1.4 SW1.5 SW1.6 启动方式 OFF OFF ON OFF ON OFF UART3 ON OFF ON OFF ON OFF FLASH 说明: UART3 启动:该方式一般只在 FLASH 中没有烧写过 u-boot 时使用。通过设置为 UART3 启动,通过 PC 机把 u-boot 下载到目标板的 DDR 中,然后再利用 u-boot 的 tftp 功能把需要烧写的文件下载到 DDR 并烧写到 FLASH 中; FLASH 启动:大部分情况下板子设置在此模式下。在 FLASH 中已经烧写了 u-boot 后,如果需要再次更新 FLASH 中的内容,在 u-boot 起来后通过 tftp 功能更新即可; EL - ARM DSP-IV 实验指导书 12 4.5.omap35xx CPU 大板介绍说明 4.5.1omap35xx CPU 大板原理 Omap35xx 大板是为了配合 Omap35xxCPU 板与外设备的接口而设计的。其功能包括: 添加了各种接口端子(LCD、USB、UART 、语音、JTAG 等) ,实现了电平匹配,扩展了 输入按键,触摸屏接口,增加了网络接口。 下图所示,为板子器件分布示意图; 4.5.2、复位按键 RK1、RK2、RK3 RK1:系统总电源复位开关; RK2:系统复位开关; RK3:CPU 电源复位开关; 4.5.3按键接口介绍 为了简化,设计中直接使用 GPIO 口来读取按键状态(具体对应关系可查看原理图) 。 在驱动中,K1K8 对应的键值为 18; EL - ARM DSP-IV 实验指导书 13 4.5.4外接端口介绍 4.5.4.1 USB 端口介绍 USB 的功能模块全部集成在 omap35xx 小板上,大板只是增加了一个 USB-A 接口端 子,USB 主从工作模式由大板上的 R76 和 R77 来控制。 说明: 需要工作在主模式:R76 不焊;R77=1K 需要工作在从模式:R76=1K;R77 不焊 EL - ARM DSP-IV 实验指导书 14 4.5.4.2 MMC/SD 端口介绍 平时 MMC/SD 卡模块处于关闭状态,当有卡插入时系统会自动检测,然后给模块供 电,模块供电后,板子上的 LED2 会点亮。 4.5.4.3 语音端口介绍 语音模块的功能在 omap35xx 小板上,大板上只是把信号引到了端子上。其中 HEADOUT1 为音频输出, LINE1 为音频输入。 4.5.4.4 UART 端口介绍 omap35xx 大板上用 mini-USB 端子引出了两个 UART 接口,其中 P9 端子对应 EL - ARM DSP-IV 实验指导书 15 omap35xx 的 UART3,P3 端子对应 omap35xx 的 UART1。 说明: Omap35xx 可以从 UART3 启动。如果需要利用此启动方式把把 u-boot 下载到目标板, 需要使用公司提供的串口线把 P9(UART3 )和 PC 机串口连接起来。 调试时使用一根公司提供的串口线连接 P9(UART3)和 PC 机。 5.4.5 LCD 和触摸屏接口介绍 在大板上,H1(LCD 连线座)和 P8 引线座均引出了 LCD 和触摸屏的信号线,H1 和 P8 用于满足不同的场合。 LCD 数据线接口格式为 RGB565,使用 16bit 数据深度。 触摸屏使用了 TSC2046 作为 AD 转换控制芯片,它具备高达 12 位的转换精度。 EL - ARM DSP-IV 实验指导书 16 EL - ARM DSP-IV 实验指导书 17 4.5.4.6 以太网接口介绍 CPU 大板使用了 LAN9115 作为以太网的接口芯片,它兼容 10M 和 100M 以太网传输。 Omap3530 通过 GPMC 总线接口和 LAN9115 进行连接,以中断的方式来响应数据传输。 EL - ARM DSP-IV 实验指导书 18 第 2 章 Linux 系统开发 本章介绍如何利用Tecvh35xx BSP包搭建运行于Tecvh35xx硬件平台上的Linux系统 开发环境。具体内容包括交叉编译环境的搭建,系统映像的生成。 注意: 本文中使用的Linux发行版为Red Hat Enterprise Linux 5,下文中简称为 linux5。 1开发环境搭建 用户在使用Tecvh35xx进行开发前,必须先搭建好ARM Linux交叉开发环境。下面以 linux5操作系统为例(linux5请用户自己安装好, 可以参考光盘内的Linux 系统安装、配置 说明)介绍交叉开发环境的搭建,其它 Linux系统的操作与linux5系统类似。 交叉编译环境的安装 插入光盘,linux5默认把光盘挂载到 /media/cdrom目录下,找到arm-2007q3-51-arm- none-linux-gnueabi-i686.tar.bz这个文件。把这个文件复制到/opt下,然后在 linux下打开终端输入 : cd /opt tar xvjf arm-2007q3-51-arm-none-linux-gnueabi-i686.tar.bz2 添加环境变量 以上工具安装完成后,还需要使用如下命令把它们添加到环境变量中: export PATH=/opt/arm-2007q3/bin:/home/u-boot/tools:$PATH 注意: 用户可把它写入用户目录的 .barsrc文件中,那么系统启动的时候自动完成环境变量 的添加,查看路径可以使用echo $PATH命令。 NFS的设置 打开linux5的开始/管理/服务器 /NFS(注意:在安装LINUX时选择,安装包建议选择完全 安装) EL - ARM DSP-IV 实验指导书 19 先在linxu5下新建一个目录omap3evm_nfs,在弹出的窗口中点添加,然后在如下图的浏览 到这个目录,主机:输入*;基本权限选择读写。设完后点确定,NFS服务就设置完成了。 EL - ARM DSP-IV 实验指导书 20 2x-load 编译 说明: 找到光盘中的 x-load.tar.bz2,复制到 linux 下的/home 目录下,在终端下进入/home 目 录,输入:tar xvzf x-load.tar.bz2 在/opt 目录下建一个文件夹命名为 linux_host,然后找到光盘内的 signGP 复制进文件夹. 编译步骤: 在打开终端,进入/home/x-load 目录; 在终端依次输入下面的命令: make omap3evm_config make 等待编译结束,生成 x-load.bin; 注意: x-load.bin 不能够直接烧写到 FLASH 中,在烧写之前需要进行转化。 转化步骤: 把编译得到的 x-load.bin 拷贝到 Linux 的/opt/linux_host/ 目录下 EL - ARM DSP-IV 实验指导书 21 打开 Linux 下的终端,输入下面的指令: ./opt/linux_host/signGP /opt/linux_host/x-load.bin 执行完后在/opt/linux_host/目录下会生成 x-load.bin.ift; 说明:x-load.bin.ift 为烧写 FLASH 时需要的 x-load 文件; 3u-boot 编译 说明: 找到光盘中的 u-boot-1.3.3.tar.bz2,复制到 linux 下的/home 目录下,在终端下进入 /home 目录,输入:tar xvzf u-boot-1.3.3.tar.bz2 编译步骤: 在虚拟机里面打开终端,进入/home/u-boot 目录; 在终端依次输入下面的命令: make omap3techv35xx_config make 等待编译结束,编译结束后会在 u-boot 目录下生成一个 u-boot.bin 文件。 EL - ARM DSP-IV 实验指导书 22 4内核编译 说明: 找到光盘中的 linux-2.6.28-omap.tar.bz2,复制到 linux 下的/home 目录下,在终端下进 入/home 目录,输入:tar xvzf linux-2.6.28-omap.tar.bz2 编译步骤: 在虚拟机里面打开终端,进入/home/ linux-2.6.28-omap 目录; 在终端输入下面的命令: make omap3_techv35xx_defconfig #使用默认的配置编译, #如果需要选择编译选项,使用下面的命令 make menuconfig make uImage 等待编译结束,编译结束后会在 arch/arm/boot 目录下生成 uImage 5文件系统建立 说明: 在/home 目录下创建一个目录命名为 ubi,找到光盘内的 rootfs.tar.bz2, mkfs.ubifs, ubinize, ubinize 这四个文件复制到 ubi 目录下。 创建步骤: 在虚拟机里面打开终端,进入/home/bui 目录; 在终端输入下面的命令: ./mkfs.ubifs -r rootfs -m 2048 -e 129024 -c 812 -o ubifs.img ./ubinize -o ubi.img -m 2048 -p 128KiB -s 512 ubinize.cfg 等待一会,会建立好名为 ubi.img 的文件系统。 6系统定制 linux内核有很多内核配置选项,用户可以在默认配置的基于上,增加或裁减驱动和 一些内核特性,以更适合用户的需要。下面举例说明系统的定制的一般流程。 6.1 修改内核配置 出厂内核源码中提供有默认配置文件: linux-2.6.28-omap/arch/arm/configs/ omap3_techv35xx_defconfig 用户可在其基础上进行系统定制。 EL - ARM DSP-IV 实验指导书 23 在终端上输入如下命令: cd linux-2.6.28-omap cp arch/arm/configs/omap3_ techv35xx _defconfig .config make menuconfig 进入这个界面后,可以选译要编译的驱动或者模块。选择完成后,保存配置,执行以下 命令重新编译内核: make uImage 执行完以上操作后,arch/arm/boot目录下生成新的内核映像uImage,重新把uImae 烧写 进35xx板。 7LINUX 系统映象烧写 u-boot 的烧写方法有好几种,这里介绍我们可能会用到的两种方法。1、从 UART3 烧 写 u-boot 的方法;2、对已经烧写好了 u-boot 的目标板进行 u-boot 更新的方法。 7.1 通过 UART3 烧写 u-boot 烧写步骤: 7.1.1、断电,设置 omap3530 CPU 小板上的拨码开关 SW1 为: SW1.1 SW1.2 SW1.3 SW1.4 SW1.5 SW1.6 EL - ARM DSP-IV 实验指导书 24 OFF OFF ON OFF ON OFF 7.1.2、使用串口线一头连接板子的 P9 另一头连接 PC 机的串口 1;另一串口线一头连接 板子的 P3 另一头连接 PC 机的串口 2(串口号可以根据实际情况来更改) 。 使用一根交叉网线连接好板子和 PC 的网口; 7.1.3、打开超级终端,选择端口(和板子的 P3 端口相连的串口端口号,在这里是 com2) 设置相应的参数如下,点确定打开: EL - ARM DSP-IV 实验指导书 25 7.1.4、把光盘中,实验目录下的 UartBootTool 目录拷贝到电脑上,运行应用程序 /UartBootTool/Utilities/DownloadUtility.exe 如下图 在 Transport 栏选择使用的串口号(和板子的 P9 端口相连的串口端口号,在这里是 com1) 在 File 栏点击 open,选择。/UartBootTool/peripheral-boot-images/目录下的 u-boot.bin 文件 如下图: EL - ARM DSP-IV 实验指导书 26 点击 Download 按钮弹出下图所示的确定对话框。 7.1.5、点击确定按钮,同时板子上电; 如果正常,会看到下载进度条在变动。 EL - ARM DSP-IV 实验指导书 27 下载完后回弹出完成对话框。 7.1.6、u-boot.bin 下载完后会自动启动。在刚才打开的超级终端中可以看到 u-boot 启动后的信息。 EL - ARM DSP-IV 实验指导书 28 如果是新板子,系统没有配置过,会自动停止在命令行位置(如上图) ; 如果以前烧写过 u-boot,由于在 FLASH 中有配置信息,将会继续启动,需要立即 敲击键盘使 u-boot 停下来。 7.1.7、设置板子的参数:在超级终端下依次输入下面的指令 setenv ipaddr 192.168.3.157 (板子 IP,根据实际情况设) setenv serverip 192.168.3.166 (虚拟机的 IP,根据实际情况设) setenv netmask 255.255.255.0 setenv bootdelay 3 setenv ethaddr 00:50:c2:7e:8A:1D setenv gatewayip 192.168.3.1 (网关,根据实际情况设) setenv bootargs console=ttyS2,115200n8 ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs video=omapfb:mode:8inch_LCD setenv bootcmd nand read.i 80300000 280000 210000; bootm 80300000 saveenv (保存设置好的参数) 7.1.8、在 PC 机上打开虚拟机,运行。要求需要烧写的 x-load.bin.ift,u- boot.bin,uImage,ubi.img 已经拷贝到 linux5 的/tftpboot 目录下( 注意:LINUX 必 须先开 tftp 服务,如果没有开请自行查找资料或参考附录。) EL - ARM DSP-IV 实验指导书 29 7.1.9、烧写 u-boot 在超级终端下依次输入下面的指令 tftpboot 0 x81600000 u-boot.bin nand unlock nand erase 80000 160000 nand ecc sw nand write 0 x81600000 80000 160000 等待烧写完成,断电。 7.2 更新 u-boot 更新 u-boot,是指原来已经烧写过 u-boot,现在需要把修改过的 u-boot 烧写进去的 过程。 要求,板子还可以从 FLASH 启动,否则需要按照 7.1 介绍的方法进行烧写。 步骤: 7.2.1、设置 omap3530 CPU 小板上的拨码开关 SW1 为: SW1.1 SW1.2 SW1.3 SW1.4 SW1.5 SW1.6 ON OFF ON OFF ON OFF 7.2.2、使用串口线一头连接板子的 P9 另一头连接 PC 机的串口 2(串口号可以根 据实际情况来更改) 。使用一根交叉网线连接好板子和 PC 的网口; 7.2.3、打开超级终端,选择端口(和板子的 P9 端口相连的串口端口号,在这里是 com2) EL - ARM DSP-IV 实验指导书 30 设置相应的参数如下,点确定打开: 7.2.4、给板子上电,板子自动启动。按键盘使得板子进入 u-boot 的命令行,如下 图: EL - ARM DSP-IV 实验指导书 31 7.2.5、在 PC 机上打开虚拟机,运行。要求需要烧写的 x-load.bin.ift,u- boot.bin,uImage,ubi.img 已经拷贝到虚拟机的/tftpboot 目录下 7.2.6、设置板子参数(如果已设置好,跳过此步) 在超级终端下依次输入下面的指令 setenv ipaddr 192.168.3.157 (开发板子 IP,根据实际情况设) setenv serverip 192.168.3.158 (虚拟机的 IP,根据实际情况设) setenv netmask 255.255.255.0 setenv bootdelay 6 setenv ethaddr 00:50:c2:7e:8A:1D setenv gatewayip 192.168.3.1 (网关,根据实际情况设) EL - ARM DSP-IV 实验指导书 32 setenv bootargs console=ttyS2,115200n8 ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs video=omapfb:mode:8inch_LCD setenv bootcmd nand read.i 80300000 280000 210000; bootm 80300000 saveenv (保存设置好的参数) 7.2.7、在超级终端下依次输入下面的指令 tftpboot 0 x81600000 u-boot.bin nand unlock nand erase 80000 160000 nand ecc sw nand write.i 81600000 80000 $(filesize) 等待烧写完成,断电。 7.3 u-boot 启动模式设置 设置 8 寸屏从 FLASH 上启动,进入 U-boot 后输入: setenv bootargs console=ttyS2,115200n8 ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs video=omapfb:mode:8inch_LCD setenv bootcmd nand read.i 80300000 280000 210000; bootm 80300000 saveenv 设置 3.5 寸屏从 FLASH 上启动,进入 U-boot 后输入: setenv bootargs console=ttyS2,115200n8 ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs video=omapfb:mode:3.5inch_LCD setenv bootcmd nand read.i 80300000 280000 210000; bootm 80300000 saveenv 7.2x-load 烧写 新板子第一次烧写 u-boot 时已经把 x-load 烧写进了 FLASH,但是修改了 x-load 后 如果需要再次更新时,可以使用这种方法。 步骤: 1、同(7.2 更新 u-boot)的步骤 1 2、同(7.2 更新 u-boot)的步骤 2 3、同(7.2 更新 u-boot)的步骤 3 4、同(7.2 更新 u-boot)的步骤 4 5、同(7.2 更新 u-boot)的步骤 5 EL - ARM DSP-IV 实验指导书 33 6、同(7.2 更新 u-boot)的步骤 6 7、在超级终端下依次输入下面的指令 tftpboot 0 x81600000 x-load.bin.ift nand unlock nand erase 0 80000 nand ecc sw nand write.i 81600000 0 $(filesize) 等待烧写完成。 7.3内核烧写 步骤: 1、同(7.2 更新 u-boot)的步骤 1 2、同(7.2 更新 u-boot)的步骤 2 3、同(7.2 更新 u-boot)的步骤 3 4、同(7.2 更新 u-boot)的步骤 4 5、同(7.2 更新 u-boot)的步骤 5 6、同(7.2 更新 u-boot)的步骤 6 7、在超级终端下依次输入下面的指令 tftpboot 0 x81600000 uImage nand unlock nand erase 280000 210000 nand ecc sw nand write.i 81600000 280000 $(filesize) 等待烧写完成,断电。 7.4文件系统烧写 步骤: 1、同(7.2 更新 u-boot)的步骤 1 2、同(7.2 更新 u-boot)的步骤 2 3、同(7.2 更新 u-boot)的步骤 3 4、同(7.2 更新 u-boot)的步骤 4 5、同(7.2 更新 u-boot)的步骤 5 6、同(7.2 更新 u-boot)的步骤 6 7、在超级终端下依次输入下面的指令 tftpboot 0 x81000000 ubi.img nand unlock nand erase 680000 nand ecc sw EL - ARM DSP-IV 实验指导书 34 nand write.i 81000000 680000 $(filesize) 等待烧写完成,断电。 EL - ARM DSP-IV 实验指导书 35 第 3 章 Linux 操作系统的驱动及应用程序编写实验 1. LINUX 驱动程序编写 LINUX 系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系 统内核和机器硬件之间的接口.设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用 程序看来,硬件设备只是一个设备文件, 应用程序可以像操作普通文件一样对硬件设备 进行操作.设备驱动程序是内核的一部分,它完成以下的功能: 1) 、对设备初始化和释放. 2) 、把数据从内核传送到硬件和从硬件读取数据. 3) 、读取应用程序传送给设备文件的数据和回送应用程序请求的数据. 4) 、检测和处理设备出现的错误. 在 Linux 操作系统下有两类主要的设备文件类型,一种是字符设备,另一种是块设 备. 字符设备和块设备的主要区别是: 在对字符设备发出读/ 写请求时,实际的硬件 I/O 一 般就紧接着发生了,块设备则不然,它利用一块系统内存作缓冲区,当用户 进程对设备 请求能满足用户的要求,就返回请求的数据,如果不能,就调用请求函数来进行实际的 I/O 操作 .块设备是主要针对磁盘等慢速设备设计的,以免耗费 过多的 CPU 时间来等待. 用户进程是通过设备文件来与实际的硬件打交道.每个设备文件都都有其文件属性 (c/b),表示是字符设备还块设备。另外每个文件都有两个设备号,第一个是主设备号, 标识驱动程序,第二个是从设备号,标识使用同一个设备驱动程序的不同的硬件设备, 比如有两个软盘,就可以用从设备号来区分他们.(设备文件的的主设备号必须与设备驱 动程序在登记时申请的主设备号一致,否则用户进程将无法访问到驱动程序.) 在系统内部,I/O 设备的存/取通过一组固定的入口点来进行,这组入口点是由每个 设备的设备驱动程序提供的。具体到 Linux 系统,设备驱动程序所提供的这组入口点由 一个文件操作结构来向系统进行说明。file_operations 结构定义于 linux/fs.h 文件中,随着 内 struct file_operations struct module *owner; loff_t (*llseek) (struct file *, loff_t, int); ssize_t (*read) (struct file *, char _user *, size_t, loff_t *); ssize_t (*write) (struct file *, const char _user *, size_t, loff_t *); EL - ARM DSP-IV 实验指导书 36 ssize_t (*aio_read) (struct kiocb *, const struct iovec *, unsigned long, loff_t); ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t); int (*readdir) (struct file *, void *, filldir_t); unsigned int (*poll) (struct file *, struct poll_table_struct *); int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long); long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long); long (*compat_ioctl) (struct file *, unsigned int, unsigned long); int (*mmap) (struct file *, struct vm_area_struct *); int (*open) (struct inode *, struct file *); int (*flush) (struct file *, fl_owner_t id); int (*release) (struct inode *, struct file *); int (*fsync) (struct file *, struct dentry *, int datasync); int (*aio_fsync) (struct kiocb *, int datasync); int (*fasync) (int, struct file *, int); int (*lock) (struct file *, int, struct file_lock *); ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int); unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); int (*check_flags)(int); int (*dir_notify)(struct file *filp, unsigned long arg); int (*flock) (struct file *, int, struct file_lock *)
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸下载 > CAD图纸下载


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!