Fork me on GitHub


一 前言
 
对于软件工程师来说,没什么比看到一个hello world的打印更让人感觉兴奋了。调试芯片,很多人都知道,hello world这个打印意味着什么。
 
二 软硬件准备
 
1 一个AMA3B的开发板,记得把GPIO22,GPIO23接到串口上,如下图所示:
2 准备好下载bin文件的工具JLINK,这个以前写过,这里就不做赘述了。
3 下载成功之后,打开串口工具,上电,即可看到如下的日志信息,说明系统已经完全起来了。
 
三 源码分析
 
1 串口的初始化,可以看出软硬件的映射关系
    //
    // Initialize the printf interface for UART output.
    //
    CHECK_ERRORS(am_hal_uart_initialize(0, &phUART));



    CHECK_ERRORS(am_hal_uart_power_control(phUART, AM_HAL_SYSCTRL_WAKE, false));


    am_hal_uart_clock_speed_e eUartClockSpeed = eUART_CLK_SPEED_DEFAULT ;
    CHECK_ERRORS(am_hal_uart_control(phUART, AM_HAL_UART_CONTROL_CLKSEL, &eUartClockSpeed));
    CHECK_ERRORS(am_hal_uart_configure(phUART, &g_sUartConfig));

    //
    // Enable the UART pins.
    //
    am_hal_gpio_pinconfig(AM_BSP_GPIO_COM_UART_TX, g_AM_BSP_GPIO_COM_UART_TX);
    am_hal_gpio_pinconfig(AM_BSP_GPIO_COM_UART_RX, g_AM_BSP_GPIO_COM_UART_RX);

 

2 串口打印函数
 
    while (1)
    {
        /* code */
        am_util_stdio_printf("Hello World! icnt:%d \n\r",icnt);
        am_util_delay_ms(1000);
        icnt++;
        if(icnt > 10)
        {
            break;
        }

    }

  

一个怕看不出来,所以多打印几个。
 
四 总结备忘
 
   芯片一旦hello world出来了,就如一个大厦地基已经打好了,具体要建什么样子的楼,就看实际的需求了。
顺便赞一个,这个芯片用起来非常丝滑。高手写的代码啊。

 

 
posted on 2022-04-01 11:55  虚生  阅读(336)  评论(0编辑  收藏  举报