Xilinx SDK工程编译、链接、调试注意事项

 

1、添加工程

启动SDK时选取workspace,如下图所示:

Xilinx SDK工程编译、链接、调试注意事项_第1张图片

对应的workpace文件夹中会生成如下几个文件:

Xilinx SDK工程编译、链接、调试注意事项_第2张图片

如果当前workspace是首次加载工程,SDK会进入启动界面

Xilinx SDK工程编译、链接、调试注意事项_第3张图片

点击Import Project,导入已有工程

Xilinx SDK工程编译、链接、调试注意事项_第4张图片

点击Browse,添加工程路径,一个完整的工程包含一个bsp文件夹,一个HW文件夹,和一个src文件夹(添加C功能函数)

Xilinx SDK工程编译、链接、调试注意事项_第5张图片

点击Finish。

2、编译、链接

等待工程导入完成后,SDK操作界面,ctrl+B(或者project——Build All)对已有工程进行编译,编译时注意以下设置正确:

点击project——property

Xilinx SDK工程编译、链接、调试注意事项_第6张图片

图中编译相关的配置,ARM gcc compile——Inferred Options——Software Platform,设置编译时工程包含文件的路径,当前路径为debug下的Makefile文件的路径,每一个../表示相对当前路径的上一级路径,为便于工程的移植和拷贝,建议设置相对路径。

Xilinx SDK工程编译、链接、调试注意事项_第7张图片

图中链接相关的配置,ARM gcc linker——Inferred Options——Software Platform下是链接库的路径,同上,最好用相对路径。

Xilinx SDK工程编译、链接、调试注意事项_第8张图片

如果功能代码不在SDK工程目录下,可以通过添加虚拟文件或者链接路径的方式在SDK工程中调用对应的代码文件,如下图,右键project——New——folder

Xilinx SDK工程编译、链接、调试注意事项_第9张图片

Xilinx SDK工程编译、链接、调试注意事项_第10张图片

点击Advance,如下图,选择Folder is not located in the file system(Virtual Folder)则是在project目录下创建一个虚拟文件夹,选择Link to alternate location (Linked Folder)则是将对应的代码文件链接到当前工程目录下。

Xilinx SDK工程编译、链接、调试注意事项_第11张图片

3、debug

完成编译后,点击Run——Debug Configurations如下图配置

Xilinx SDK工程编译、链接、调试注意事项_第12张图片

Xilinx SDK工程编译、链接、调试注意事项_第13张图片

点击Apply,然后Debug可以执行debug操作,

其中如果图1中勾选program FPGA,则每次debug的时候都会烧写一次bit流文件,一般不勾选,bit流文件在debug前烧写一次即可;

4、打印

xilinx sdk自带有很多打印函数(xil_printf, printf等),所有的打印函数其实都是调用outbyte函数(xil_printf.c)来打印信息,outbyte函数其实是调用了ps侧的uart send byte函数。

如果ps侧有两个uart,outbyte如何进行选择输出呢?这个是在bsp中设置的,双击bsp下面的mss文件,然后选择modify this bsp setting,然后设置stdout和stdin,如果设置为psu_uart_0则通过uart0打印,如果选择psu_uart_1则通过uart1打印,另外如果pl侧有uart ip例如uart16550,那么也可以选择uart16550进行打印,这里设置不同的uart,则bsp中xparameters.h中对STDOUT_BASEADDRESS的定义就不一样,如果是uart0,那么定义为0xff000000,如果是uart1,那么定义为0xff010000,这两个地址可以在ug1087 ultrascale寄存器定义中查找到,0xff000000是UART0的基址,0xff010000是UART1的基址。

另外使用打印函数不同,编译出来的可执行文件大小可能相差很大,比如printf函数是标准c库中的重要函数(可以执行浮点打印等),但是fpga基本不用浮点打印,只需要xil_printf执行打印即可,所以printf和xil_printf编译后的可执行文件相差就比较大。
————————————————
本段链接:https://blog.csdn.net/carlsun80/article/details/78045776

你可能感兴趣的:(ZYNQ)