通过PS端的MIO接口连接uart,直接打印出hello world,以下为SDK代码部分解释:
int main()
{
//对平台进行初始化,
init_platform();
//初始化完成之后,直接使用函数printf就可以把字符打印到串口上显示,
print("Hello World\n\r");
//对平台进行清除,主要是对寄存器进行清除
cleanup_platform();
return 0;
}
void
init_platform()
{
//对寄存器进行初始化,
enable_caches();
//对uart进行初始化
init_uart();
}
//使用#ifdef在编译的时候就已经确定好使用哪一个cache的初始化
void
enable_caches()
{
#ifdef __PPC__
Xil_ICacheEnableRegion(CACHEABLE_REGION_MASK);
Xil_DCacheEnableRegion(CACHEABLE_REGION_MASK);
#elif __MICROBLAZE__
#ifdef XPAR_MICROBLAZE_USE_ICACHE
//Enable the instruction cache.
Xil_ICacheEnable();
#endif
#ifdef XPAR_MICROBLAZE_USE_DCACHE
//Enable the Data cache.
Xil_DCacheEnable();
#endif
#endif
}
//使用#ifdef在编译的时候就已经对uart初始化完成
void
init_uart()
{
#ifdef STDOUT_IS_16550
//对uart的波特率进行设置,
XUartNs550_SetBaud(STDOUT_BASEADDR, XPAR_XUARTNS550_CLOCK_HZ, UART_BAUD);
//对uart的control register进行设置
XUartNs550_SetLineControlReg(STDOUT_BASEADDR, XUN_LCR_8_DATA_BITS);
#endif
/* Bootrom/BSP configures PS7/PSU UART to 115200 bps */
}
欢迎大家留言提问!