【SDK使用】sdk print方式



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編譯後的可執行文件相差就比較大。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章