使用处理器系统设计嵌入式系统(3)---导入SDK并调试
0赞用PlanAhead打开上次建好的工程,首先创建一个顶层的HDL文件,如图1 所示。
图1 创建顶层HDL文件
然后选择File---Export---Export Hardware for SDK,并勾选launch SDK,则导入完成之后SDK被自动打开。之后,SDK会读取硬件的配置,并创建system_hw_platform,其配置信息都保存在system.xml文件中,其中描述了系统的内存映射,如图2所示。
图2 SDK中的信息
可以看到,SDK中还自动创建了.c,.h,.html和.tcl四个文件。.c和.h包含了PS系统以及DDR、时钟,PLL、MIO的初始化代码,即系统初始化时运行在PS上的程序。.tcl脚本文则是在使用JTAG时XMD用来配置PS的。
在系统配置好之后,接下来就是用C语言编写代码,然后编辑成程序运行在前面所配置好的处理器上面了,这接下来的步骤和以前基于MicroBlaze的操作基本一致,一般我们都会用”hello world”之类的跑一跑。当然,在我们强大的ZedBoard平台上,我们有了更多的选择:
图3 选择处理器与操作系统
因为ZedBoard上带有双核的ARM处理器硬核,我们可以选择是运行在ps7_cortexa9_0还是ps7_cortexa9_1上面。这两个硬核之间如何通过axi4总线进行协同处理的,以后有时间可以仔细研究研究。
还是简单提一下”hello world”的过程,因为ISE14.3菜单明显变多了。在SDK中点击File---New---Application Project,然后选择”Hello World”的模版,经过一段时间的编译,.elf就生成了。在EDK中点击运行配置,如图4所示。
图4 程序运行配置
在Xilinx C/C++ ELF上点击右键---NEW之后,会出现如下的配置对话框,如图5所示,分别配置程序的编译类型、初始化TCL脚本、STDIO(这个例子主要是UART)配置,其余的选项如性能、调试器等选择则暂时不需改动。
图5 程序配置
配置完成之后点击Run(已经连接JTAG和UART才能不报错),则PS里面的程序便通过UART发生”Hello World”。与MicroBlaze不同的时候,MicroBlaze是软核,需要把bit文件下载到FPGA中,而ZedBoard上的ARM是硬核,已经存在与FPGA之中了。
接下来就是添加IP核、通过SDK和ChipScopePro调试这些功能了。