XilinxSDK⼯程编译、链接、调试注意事项
1、添加⼯程
启动SDK时选取workspace,如下图所⽰:
对应的workpace⽂件夹中会⽣成如下⼏个⽂件:
如果当前workspace是⾸次加载⼯程,SDK会进⼊启动界⾯
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的基址。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论