为什么xil_printf导致堆栈溢出而XUartLite_SendByte不会? 有谁能解释一下? 注释部分(XUartLite_SendByte)工作正常,但最终我想在i上调用一个函数并使用xil_printf返回结果。
代码如下所示。
使用xilinx sdk进行micrlaze
#include /*#include \"xparameters.h\" */ #include \"xil_cache.h\" /*#include \"uartlite_header.h\" #include \"xbasic_types.h\" #include \"xgpio.h\" #include \"gpio_header.h\" #include \"xspi.h\" #include \"spi_header.h\"*/ #include \"xparameters.h\" #include \"xutil.h\" #include \"xuartlite_i.h\" #define UART_ADDR 0x40600000 int main() { Xil_ICacheEnable(); Xil_DCacheEnable(); print(\"---Entering main---nr\"); Xuint16 i; while(1==1) { while(XUartLite_IsReceiveEmpty(UART_ADDR)); i = XUartLite_RecvByte(UART_ADDR); xil_printf(\"%c \", i); /*while(XUartLite_IsTransmitFull(UART_ADDR));*/ /*XUartLite_SendByte(UART_ADDR, i);*/ //} } print(\"---Exiting main---nr\"); Xil_DCacheDisable(); Xil_ICacheDisable(); return 0; }
您在Xilinx论坛上发布了相同的问题。 Xilinx回复了它:
XUartLite_RecvByte()返回一个u8(或unsigned char)。 不是Xuint16。 并且xil_printf%c不会期望Xuint16。
以上就是c/c++开发分享xil_printf和XUartLite_SendByte相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注(猴子技术宅)。