【SDK使用】sdk print方式

来源:互联网 发布:matlab for mac 2014b 编辑:程序博客网 时间:2024/06/05 20:18



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编译后的可执行文件相差就比较大。



原创粉丝点击