340 likes | 577 Views
Android 嵌入式系统软件开发. Android Embedded System Software Development 周 庆 国 ( zhouqg@lzu.edu.cn ) 兰 州 大 学. 第七章 基于 FPGA 的嵌入式硬件开发. 7.1 SOPC 技术及其开发流程. 7.2 硬件平台构建与系统移植测试. 7.3 实现 myled 设备硬件的添加. 7.1 SOPC 技术及其开发流程. SPOC 的设计与开发流程. 3. SOPC 技术及其开发流程. 开发平台
E N D
Android嵌入式系统软件开发 Android Embedded System Software Development 周 庆 国 (zhouqg@lzu.edu.cn) 兰 州 大 学
第七章 基于FPGA的嵌入式硬件开发 7.1 SOPC技术及其开发流程 7.2硬件平台构建与系统移植测试 7.3实现myled设备硬件的添加
7.1 SOPC技术及其开发流程 SPOC的设计与开发流程 3
SOPC技术及其开发流程 • 开发平台 • Spartan 3A DSP 1800A是XIlinx公司推出的Spartan3系列中性能最高的180万门级FPGA板子。此FPGA内部集成了高达1512Kb的Block-RAM和84个DSP处理模块等资源,因此非常适合应用在嵌入式和数字信号处理领域。 • 对于Spartan3A DSP 1800A板子,上面的FPGA逻辑资源只能配置出microblaze软核架构。 4
SOPC技术及其开发流程 • 开发工具EDK套件组件 • Embedded Development Kit(EDK)由:Xilinx Platform Studio(XPS)、Software Development Kit(SDK)、Xilinx Microprocessor Debug(XMD)及GNU工具链、ChipScope Pro等组成。 5
7.2 硬件平台构建与系统移植测试 • 基本硬件系统的搭建硬件平台搭建 • 这个硬件平台的搭建,主要用于嵌入式Linux系统的运行。主要工具为EDK与SDK。EDK创建一个基本的嵌入式硬件系统,SDK用于建立一个内存测试的应用程序。最后用于在FPGA板子上进行测试验证。 • 此次硬件开发和调试环境都在Ubuntu 10.04系统下,使用的是ISE_DS 13.4开发工具。 6
硬件平台构建与系统移植测试 • 基本硬件系统的搭建硬件平台搭建 • 选择File —>New BSB Project • 该嵌入式系统是基于PLB总线互连的。点击OK。 • 选择创建新的设计,点击Next。选择相应的开发板,这里选择的是Spartan3ADSP1800A,点击Next。 7
硬件平台构建与系统移植测试 • 基本硬件系统的搭建硬件平台搭建 • 选择File —>New BSB Project • 该嵌入式系统是基于PLB总线互连的。点击OK。 • 选择创建新的设计,点击Next。选择相应的开发板,这里选择的是Spartan3ADSP1800A,点击Next。 8
硬件平台构建与系统移植测试 • 基本硬件系统的搭建硬件平台搭建 • 选择Single-Processor System,点击Next。 9
硬件平台构建与系统移植测试 • 基本硬件系统的搭建硬件平台搭建 • 选择Processor型号,Spartan3ADSP只能选择Microblaze 10
硬件平台构建与系统移植测试 • 基本硬件系统的搭建硬件平台搭建 • 通过Add与Remove进行配置外设 11
硬件平台构建与系统移植测试 • 基本硬件系统的搭建硬件平台搭建 • 为提升系统运行性能,分别添加数据Cache和指令Cache 12
硬件平台构建与系统移植测试 • 基本硬件系统的搭建硬件平台搭建 • 罗列整个基本系统的参数以及相应文件的路径,点击 Finish 13
硬件平台构建与系统移植测试 • 基本硬件系统的搭建硬件平台搭建 • 对Microblaze进行MMU配置。在System Assembly View中,右击Bus Interfaces下的microblaze,选择config IP。Microblaze 配置成:允许 debug,使用 Cache 和使用 MMU,点击 Next。 14
硬件平台构建与系统移植测试 • 基本硬件系统的搭建硬件平台搭建 • 对Microblaze进行MMU配置。在System Assembly View中,右击Bus Interfaces下的microblaze,选择config IP。Microblaze 配置成:允许 debug,使用 Cache 和使用 MMU,点击 Next。 15
硬件平台构建与系统移植测试 • 基本硬件系统的搭建硬件平台搭建 • 在 Microblaze 中主要添加 barrel Shifter,32bit integer Multiplier,integer divider,additional machine status register instructions 和 pattern comparator 16
硬件平台构建与系统移植测试 • 基本硬件系统的搭建硬件平台搭建 • 对MMU进行配置 17
硬件平台构建与系统移植测试 • 基本硬件系统的搭建硬件平台搭建 • 点击Project—>Export Hardware Design to SDK...,然后点击Export & Launch SDK。进入SDK软件集成开发环境。 18
硬件平台构建与系统移植测试 • 基本硬件系统的搭建硬件平台搭建 • 点击菜单栏 File—>New—>Xilinx C Project。选择 Memory Tests,然后点击 Next。 19
硬件平台构建与系统移植测试 • 基本硬件系统的搭建硬件平台搭建 • 创建一个新的板级支持包(BSP)工程,点击 Finish,生成 Memory 测试工程。 20
硬件平台构建与系统移植测试 • 基本硬件系统的搭建硬件平台搭建 • 连接PC机与开发板,分别连接板上的端口,最后与笔记本的两个USB口相连。 • 在开启电源之前,需要先配置minicom。在终端中敲入:sudo minicom -s。向下选择Serial port setup,配置如图: • 配置完成后选择Exit退出进入Minicom,此时打开开发板电源。 21
硬件平台构建与系统移植测试 • 基本硬件系统的搭建硬件平台搭建 • 连接PC机与开发板,分别连接板上的端口,最后与笔记本的两个USB口相连。 • 在开启电源之前,需要先配置minicom。在终端中敲入:sudo minicom -s。向下选择Serial port setup,配置如图: • 配置完成后选择Exit退出进入Minicom,此时打开开发板电源。 22
硬件平台构建与系统移植测试 • 基本硬件系统的搭建硬件平台搭建 • 点击SDK工作界面工作栏中的Xilinx Tools下的Program FPGA,注意选择相应的下载流文件以及BMM文件。下方的Software Configuration可以指定至测试程序生成的memory_tests_0.elf。点击Program。 23
硬件平台构建与系统移植测试 • 基本硬件系统的搭建硬件平台搭建 • 点击SDK工作界面工作栏中的Xilinx Tools下的Program FPGA,注意选择相应的下载流文件以及BMM文件。下方的Software Configuration可以指定至测试程序生成的memory_tests_0.elf。点击Program。 24
硬件平台构建与系统移植测试 • 基本硬件系统的搭建硬件平台搭建 • 点击SDK工作界面工作栏中的Xilinx Tools下的Program FPGA,注意选择相应的下载流文件以及BMM文件。下方的Software Configuration可以指定至测试程序生成的memory_tests_0.elf。点击Program。 25
硬件平台构建与系统移植测试 • 交叉编译环境搭建 • 针对Xilinx公司推出的Microblaze内核,选择了两款不同的编译器,根据编译的是内核文件还是编译的是C文件进行选择,以确保结果的正确性。 • 因为所有工作都是在Ubuntu下进行,ISE 13.4软件已经安装,而基于Microblaze的交叉编译工具链已包含在ISE_DS安装包中,故这第一种交叉编译器就是EDK自带的工具链。 • 下载 • 设置环境变量。 26
硬件平台构建与系统移植测试 • 系统移植测试 • 编写测试程序(hello) • 加入文件系统 (cpio) • 内核编译 • 测试验证 27
7.3 实现myled设备硬件的添加 选择的外部设备是FPGA板子上的led灯。 • 添加Myled设备 28
实现myled设备硬件的添加 选择的外部设备是FPGA板子上的led灯。 • 添加Myled设备 • 控制LED需要8bit,因此在number of software accessible registers处选填1。一个寄存器是32bits,所以填1已经足够。 29
实现myled设备硬件的添加 选择的外部设备是FPGA板子上的led灯。 • 添加Myled设备 • 控制LED需要8bit,因此在number of software accessible registers处选填1。一个寄存器是32bits,所以填1已经足够。 30
实现myled设备硬件的添加 选择的外部设备是FPGA板子上的led灯。 • 添加Myled设备 • 修改LED IP CORE 相关VHDL代码 31
实现myled设备硬件的添加 选择的外部设备是FPGA板子上的led灯。 • 添加Myled设备 • 修改LED IP CORE 相关VHDL代码 32
实现myled设备硬件的添加 • 驱动测试 • 编写驱动 • 修改Kconfig和Makefile • 编译内核并测试 33
谢谢 34 34