1.移植串口
(1)追踪串口打印函数
《kernel/liteos_a/platform》
LITE_OS_SEC_TEXT_INIT INT32 main(VOID)
{
...
PRINT_RELEASE("\nmain core booting up...\n");
...
(2)最终调用函数
《liteos_a\platform\uart\amba_pl011\amba_pl011.c》
VOID UartPuts(const CHAR *s, UINT32 len, BOOL isLock)
应当按照HISI这个文件中定义的函数接口进行移植形成NXPimx6ull的代码文件
《OpenharmonyFor6ull\vendor\nxp\imx6ull\driver\imx6ull-uart\uart_imx6ull.c》
->
STATIC INLINE UINTPTR uart_to_ptr(UINTPTR n)
{
(VOID)n;
return UART_REG_BASE;
}
(3)uart的基地址:此时已经启动MMU,应当为虚拟地址
《OpenharmonyFor6ull\vendor\nxp\imx6ull\board\include\uart.h》
#if (CONSOLE_UART == UART0)
#define TTY_DEVICE "/dev/uartdev-0"
#define UART_REG_BASE UART0_REG_BASE
#define NUM_HAL_INTERRUPT_UART NUM_HAL_INTERRUPT_UART0
#elif (CONSOLE_UART == UART1)
#define TTY_DEVICE "/dev/uartdev-1"
#define UART_REG_BASE UART1_REG_BASE
#define NUM_HAL_INTERRUPT_UART NUM_HAL_INTERRUPT_UART1
#elif (CONSOLE_UART == UART2)
#define TTY_DEVICE "/dev/uartdev-2"
#define UART_REG_BASE UART2_REG_BASE
#define NUM_HAL_INTERRUPT_UART NUM_HAL_INTERRUPT_UART2
#endif
《OpenharmonyFor6ull\vendor\nxp\imx6ull\board\include\asm\platform.h》