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

 

1、添加工程

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

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

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

点击Import Project,导入已有工程

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

点击Finish。

2、编译、链接

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

点击project——property

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

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

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

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

3、debug

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

点击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

以下是一些关于Xilinx SDK使用的教程和解决方案: 1. 如何打开Xilinx SDK项目: - 打开Xilinx SDK。 - 在“File”菜单中选择“Open Projects from File System”选项。 - 在弹出的对话框中选择“Directory”选项,并浏览到您的项目文件夹。 - 单击“Finish”按钮以打开项目。 2. 如何设置保存代码自动编译: - 在Xilinx SDK中,选择“Project”菜单,然后选择“Properties”选项。 - 在弹出的对话框中,选择“C/C++ Build”选项。 - 在右侧的选项卡中选择“Behavior”选项。 - 在“Build (Incremental Build)”部分,勾选“Build Automatically”选项。 - 单击“Apply”按钮以保存更改。 3. 如何链接库: - 在Xilinx SDK中,选择“Project”菜单,然后选择“Properties”选项。 - 在弹出的对话框中,选择“C/C++ Build”选项。 - 在右侧的选项卡中选择“Settings”选项。 - 在左侧的列表中选择“Tool Settings”下的“Libraries”选项。 - 在右侧的“Libraries”部分,单击“Add”按钮并选择要链接的库文件。 - 单击“Apply”按钮以保存更改。 4. 如何设置编译的.elf文件为release或debug版: - 在Xilinx SDK中,选择“Project”菜单,然后选择“Properties”选项。 - 在弹出的对话框中,选择“C/C++ Build”选项。 - 在右侧的选项卡中选择“Behavior”选项。 - 在“Build (Incremental Build)”部分,选择“Release”或“Debug”选项。 - 单击“Apply”按钮以保存更改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值