.. _AW30N 下载介绍说明:  

AW30N 下载介绍说明
=========================================

    | AW30N支持 USB强制下载工具下载,在v1.4.0版本(包括V1.4.0版本)后支持 USB下载 和 串口下载。
    | 下面介绍这三种下载方式如何操作。

USB强制下载工具
################################

    1. 用户通过USB强制下载工具,插入开发板,USB强制下载工具不需要拨任何按键;
    2. 插入开发板后,短按按键,绿灯灭,即进入下载模式
    3. 用户即可下载代码。

    .. image:: download_introduce/usb_burn_tool.png
        :alt: "USB强制下载工具下载介绍“
        :align: center
    .. centered:: USB强制下载工具下载介绍

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

USB下载
################################

    AW30N 支持USB下载,通过长按开发板顶板上的UPDATE按钮后,插入USB,即可进入下载模式。

    在v1.4.0版本(包括V1.4.0版本)后,支持在程序运行中进入USB下载。

    用户可以在程序运行时,运行以下代码 并且 把下载目录里的ini文件里的下载方式改为USB下载(见下图),当程序运行到该代码时,即可进入下载模式。

    USB下载代码 ::

        void reset2update()
        {
            /* 用户调用nvram_set_boot_state()函数后执行common_update_before_jump_reset_handle()可以直接复位进入maskrom进行 串口升级 或 USB升级 */
        #if 1
            /* 该demo通过识别到PA9低电平后,复位进入maskrom进行 串口升级 或 USB升级  */
            /* TIPS: */
            /* 芯片开机后几乎所有IO会被锁住,直到board_power_init()执行后IO才解锁能够正常使用 */
            /* 除了部分IO是在RAM中使用没有被锁可以正常使用,如:PA0,PA9,PA10,USBDP,USBDM */
            gpio_set_mode(IO_PORT_SPILT(IO_PORTA_09), PORT_INPUT_FLOATING); //设置PA9为输入
            if (!(gpio_read(IO_PORTA_09))) {
                extern void nvram_set_boot_state(UPGRADE_TYPE up_type);
                extern void chip_reset();
                /*nvram_set_boot_state(UPGRADE_UART_SOFT_KEY);        //进入rom的串口升级 */
                nvram_set_boot_state(UPGRADE_USB_SOFTKEY);       //进入rom的usb升级 
                common_update_before_jump_reset_handle();       //复位
            }
        #endif
        }

    .. image:: download_introduce/usb_burn_ini.png
        :alt: "USB下载ini文件修改“
        :align: center
    .. centered:: USB下载ini文件修改


    .. image:: download_introduce/usb_burn.png
        :alt: "USB下载介绍“
        :align: center
    .. centered:: USB下载介绍

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

串口下载
################################

    在v1.4.0版本(包括V1.4.0版本)后,支持串口下载(串口下载口为PA0)。

    用户也可以在程序运行时,运行以下代码 并且 把下载目录里的ini文件里的下载方式改为串口下载(见下图),当程序运行到该代码时,即可进入下载模式。

    串口下载代码 ::

        void reset2update()
        {
            /* 用户调用nvram_set_boot_state()函数后执行common_update_before_jump_reset_handle()可以直接复位进入maskrom进行 串口升级 或 USB升级 */
        #if 1
            /* 该demo通过识别到PA9低电平后,复位进入maskrom进行 串口升级 或 USB升级  */
            /* TIPS: */
            /* 芯片开机后几乎所有IO会被锁住,直到board_power_init()执行后IO才解锁能够正常使用 */
            /* 除了部分IO是在RAM中使用没有被锁可以正常使用,如:PA0,PA9,PA10,USBDP,USBDM */
            gpio_set_mode(IO_PORT_SPILT(IO_PORTA_09), PORT_INPUT_FLOATING); //设置PA9为输入
            if (!(gpio_read(IO_PORTA_09))) {
                extern void nvram_set_boot_state(UPGRADE_TYPE up_type);
                extern void chip_reset();
                nvram_set_boot_state(UPGRADE_UART_SOFT_KEY);        //进入rom的串口升级 
                /* nvram_set_boot_state(UPGRADE_USB_SOFTKEY);       //进入rom的usb升级  */
                common_update_before_jump_reset_handle();       //复位
            }
        #endif
        }

    .. image:: download_introduce/uart_burn_ini.png
        :alt: "串口下载ini文件修改“
        :align: center
    .. centered:: 串口下载ini文件修改

    .. image:: download_introduce/uart_burn.png
        :alt: "串口下载介绍“
        :align: center
    .. centered:: 串口下载介绍