#include "armfly_bsp.h"

void bsp_init(void)
{
    INT8U err;
    net_mutex  = OSMutexCreate(15, &err);
    uart1_mbox = OSMboxCreate(NULL);
    uart3_mbox = OSMboxCreate(NULL);
    ftp_mbox   = OSMboxCreate(NULL);
    sd_mutex   = OSMutexCreate(SD_MUTEX_PRIO, &err);

    InitQueue(&CanQueueCan1);
    InitQueue(&CanQueueCan2);

    // GPIO初始化
    gpio_clock_init();
    interface_init();
    ad7606_init();
    am2303_init();
    dwt_init();
    spi1_init();
    uart1_init();
    uart3_init();
    LCD_Init();
    key_init();
    nor_flash_init();
    ext_sram_init();

// 初始化USBH
#ifdef USE_USB_OTG_FS
    USBH_Init(&USB_OTG_Core,
              USB_OTG_FS_CORE_ID,
              &USB_Host,
              &USBH_MSC_cb,
              &USR_cb);
#else
    USBH_Init(&USB_OTG_Core,
              USB_OTG_HS_CORE_ID,
              &USB_Host,
              &USBH_MSC_cb,
              &USR_cb);
#endif
    fatfs_init();
    lwip_setup();
    // can初始化
    can_network_init();
    // iwdg_init();
}
