/*Modified at 2023-12-24 17:14:56*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end

#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG        //打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10      //定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512      //
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8   //用完会自动扩充
#define CFG_HANDLE_LIMIT        8   //用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false       //
#define CFG_START_APP_IS_VERIFICATION      true       //
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN     //CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行
#define  CFG_APP_VERIFICATION   VERIFICATION_NULL   //
#define CFG_IBOOT_VERSION_SMALL       00        //xx.xx.__APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00        //xx.__.xxAPP忽略
#define CFG_IBOOT_VERSION_LARGE       01        //__.xx.xxAPP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"           //
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"            //
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40      //定义锁的数量包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10      //
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000      //
#define CFG_ADD_ROUTINE_SHELL      true        //
#define CFG_ADD_EXPAND_SHELL       true        //
#define CFG_ADD_GLOBAL_FUN         false       //
#define CFG_SHOW_ADD_SHEELL        true        //
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             128                //
#define CFG_SPI_DMA_BUF_LEN         128                //
#define CFG_SPI1_ENABLE             false              //
#define CFG_SPI2_ENABLE             false              //
#define CFG_SPI3_ENABLE             false              //
#define CFG_SPI4_ENABLE             false              //
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       32      //
#define CFG_UART1_RECVBUF_LEN       32      //
#define CFG_UART1_DMABUF_LEN        32      //
#define CFG_UART2_SENDBUF_LEN       32      //
#define CFG_UART2_RECVBUF_LEN       32      //
#define CFG_UART2_DMABUF_LEN        32      //
#define CFG_UART3_SENDBUF_LEN       32      //
#define CFG_UART3_RECVBUF_LEN       32      //
#define CFG_UART3_DMABUF_LEN        32      //
#define CFG_UART4_SENDBUF_LEN       32      //
#define CFG_UART4_RECVBUF_LEN       32      //
#define CFG_UART4_DMABUF_LEN        32      //
#define CFG_UART5_SENDBUF_LEN       32      //
#define CFG_UART5_RECVBUF_LEN       32      //
#define CFG_UART5_DMABUF_LEN        32      //
#define CFG_UART6_SENDBUF_LEN       32      //
#define CFG_UART6_RECVBUF_LEN       32      //
#define CFG_UART6_DMABUF_LEN        32      //
#define CFG_UART7_SENDBUF_LEN       32      //
#define CFG_UART7_RECVBUF_LEN       32      //
#define CFG_UART7_DMABUF_LEN        32      //
#define CFG_UART8_SENDBUF_LEN       32      //
#define CFG_UART8_RECVBUF_LEN       32      //
#define CFG_UART8_DMABUF_LEN        32      //
#define CFG_UART1_ENABLE           true        //
#define CFG_UART2_ENABLE           false       //
#define CFG_UART3_ENABLE           false       //
#define CFG_UART4_ENABLE           false       //
#define CFG_UART5_ENABLE           false       //
#define CFG_UART6_ENABLE           false       //
#define CFG_UART7_ENABLE           false       //
#define CFG_UART8_ENABLE           false       //
#define CFG_UART1_TX_DMA_CHANNEL       DMA_NONUSE   //串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA_NONUSE   //串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA_NONUSE   //串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA_NONUSE   //串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA_NONUSE   //串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA_NONUSE   //串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE   //串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE   //串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE   //串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE   //串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE   //串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE   //串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE   //串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE   //串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE   //串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE   //串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250     //这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true  //即使选false也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096    //定义初始化过程使用的栈空间一般按默认值就可以了
#define CFG_EVENT_LIMIT         15      //事件数量
#define CFG_EVENT_TYPE_LIMIT    15      //事件类型数
#define CFG_IDLESTACK_LIMIT     1024    //IDLE事件处理函数运行的栈尺寸一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30      //监视IDLE事件持续低于1/16 CPU占比的时间秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     4096    //main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false   //IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false   //true=用于资源紧缺的场合内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false   //在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"        //
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5       //可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true    //选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000  //
#define     CFG_TPL_PROTONUM            5       //占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true    //资源充足才打开
#define     CFG_TCP_CCBNUM              10      //占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5       //占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10      //用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            false   //
#define     CFG_FTPC_ENABLE            true    //
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure tftp  ******************************************//
#define     CFG_TFTP_PATHDEFAULT       "/"   //TFTP默认工作目录
#define    CFG_MODULE_ENABLE_TFTP          true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true    //
#define     CFG_TELNETC_ENABLE          false   //
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10      //占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false   //
#define     CFG_DHCPC_ENABLE            true    //
#define     CFG_DHCP_RENEWTIME          3600    //秒数
#define     CFG_DHCP_REBINDTIME         3600    //秒数
#define     CFG_DHCP_LEASETIME          3600    //秒数
#define     CFG_DHCPD_IPNUM             0x40    //64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"    //
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"  //
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"  //
#define     CFG_DHCPD_NETIP             "255.255.255.0"  //
#define     CFG_DHCPD_DNS               "192.168.0.253"  //
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"  //
#define     CFG_DHCPD_DOMAINNAME       "domain"        //
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32      //占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8      //北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10      //占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4       //占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472       //udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000     //8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"   //
#define CFG_ETH_LOOP_CYCLE      1000         //中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true            //
#define CFG_ETH_HARD_MAC_ADDR   true            //
#define CFG_ETH_MAC_ADDR0      00           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06           //若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false      //"分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false      //
#define CFG_W25QXX_BYTES_PAGE               256        //
#define CFG_W25QXX_PAGES_SECTOR             16         //
#define CFG_W25QXX_SECTORS_BLOCK            16         //
#define CFG_W25QXX_SECTORS_NUM              2048       //
#define CFG_W25QXX_CHIP_ID                  0xEF18     //
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"      //需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1        //-1表示最后一块起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false      //"分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true         //
#define CFG_STDIO_STDOUT_FOLLOW    true         //
#define CFG_STDIO_STDERR_FOLLOW    true         //
#define CFG_STDIO_FLOAT_PRINT      true         //
#define CFG_STDIO_STDIOFILE        true         //
#define CFG_STDIO_IN_NAME              "/dev/UART1"    //
#define CFG_STDIO_OUT_NAME             "/dev/UART1"    //
#define CFG_STDIO_ERR_NAME             "/dev/UART1"    //
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       true            //
#define CFG_SELECT_NETCARD  "AT32F437_ETH"   //必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100" //
#define CFG_MY_SUBMASK      "255.255.255.0" //
#define CFG_MY_GATWAY       "192.168.8.1"   //
#define CFG_MY_DNS          "192.168.8.1"   //
#define CFG_MY_DNSBAK       "192.168.8.1"   //
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure modbus  ******************************************//
#define CFG_MB_ASCII_TIMEOUT_SEC                    1       //"从机用ASCII时，通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define CFG_MB_FUNC_HANDLERS_MAX                    16      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF           32      //这个数字限制了从机ID数据的最大大小。
#define CFG_MB_MASTER_DELAY_MS_CONVERT              200     //主站发送一个广播帧后主站等待延迟时间，时间到后才主站才可以发送其他帧
#define CFG_MB_MASTER_TIMEOUT_MS_RESPOND            100     //
#define CFG_MB_MASTER_TOTAL_SLAVE_NUM               16      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED       true    // "是否启用请求从机ID功能"
#define CFG_MB_FUNC_READ_INPUT_ENABLED              true    // "是否启用读输入寄存器功能"
#define CFG_MB_FUNC_READ_HOLDING_ENABLED            true    // "是否启用读保持寄存器功能"
#define CFG_MB_FUNC_WRITE_HOLDING_ENABLED           true    // "是否启用写单个寄存器功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true    // "是否启用写多个寄存器功能"
#define CFG_MB_FUNC_READ_COILS_ENABLED              true    // "是否启用读线圈功能"
#define CFG_MB_FUNC_WRITE_COIL_ENABLED              true    // "是否启用写线圈功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED    true    // "是否启用写多个线圈功能"
#define CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED    true    // "是否启用读离散输入功能"
#define CFG_MB_FUNC_READWRITE_HOLDING_ENABLED       true    // "是否启用读写多个寄存器功能"
#define CFG_MB_MASTER_ENABLED                       false    // "主机使能开关"
    #define CFG_MB_MASTER_RTU_ENABLED                   false    // "主机RTU使能开关"
    #define CFG_MB_M_DISCRETE_INPUT_START               1        //
    #define CFG_MB_M_DISCRETE_INPUT_NDISCRETES          10       //
    #define CFG_MB_M_COIL_START                         11       //
    #define CFG_MB_M_COIL_NCOILS                        10       //
    #define CFG_MB_M_REG_INPUT_START                    21       //
    #define CFG_MB_M_REG_INPUT_NREGS                    10       //
    #define CFG_MB_M_REG_HOLDING_START                  31       //
    #define CFG_MB_M_REG_HOLDING_NREGS                  10       //
    #define CFG_MB_M_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"
    #define CFG_MB_M_PORT_BAUDRATE                      115200    // "串口波特率"
    #define CFG_MB_M_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
#define CFG_MB_SLAVE_ENABLED                       false    // "从机使能开关"
    #define CFG_MB_SLAVE_ASCII_ENABLED                  false    // "从机ASCII使能开关"
    #define CFG_MB_SLAVE_RTU_ENABLED                    false    // "从机RTU使能开关"
    #define CFG_MB_SLAVE_TCP_ENABLED                    false    // "从机TCP使能开关"
    #define CFG_MB_S_DISCRETE_INPUT_START               1        //
    #define CFG_MB_S_DISCRETE_INPUT_NDISCRETES          10       //
    #define CFG_MB_S_COIL_START                         11       //
    #define CFG_MB_S_COIL_NCOILS                        10       //
    #define CFG_MB_S_REG_INPUT_START                    21       //
    #define CFG_MB_S_REG_INPUT_NREGS                    10       //
    #define CFG_MB_S_REG_HOLDING_START                  31       //
    #define CFG_MB_S_REG_HOLDING_NREGS                  10       //
    #define CFG_MB_S_ADDR                               2        //
    #define CFG_MB_S_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
    #define CFG_MB_S_TCP_PORT_NUM                       0        //"使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
    #define CFG_MB_S_PORT_BAUDRATE                      115200    // "串口波特率"
    #define CFG_MB_S_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
    #define CFG_MB_S_TRANSFER_MODE                      MB_RTU_MODE    // "通信方式"
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           1                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

/*Modified at 2023-12-24 19:24:12*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end


#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32      //占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false      //分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512         //"片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4           //
#define CFG_EFLASH_BLOCK_SECT_NUM           32          //
#define CFG_EFLASH_PLANE1_SECT_NUM          256         //
#define CFG_EFLASH_PLANE2_SECT_NUM          256         //
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8           //
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8           //
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"   //
#define CFG_ETH_LOOP_CYCLE      1000         //中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true            //
#define CFG_ETH_HARD_MAC_ADDR   true            //
#define CFG_ETH_MAC_ADDR0      00           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06           //若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             128                //
#define CFG_SPI_DMA_BUF_LEN         128                //
#define CFG_SPI1_ENABLE             false              //
#define CFG_SPI2_ENABLE             false              //
#define CFG_SPI3_ENABLE             false              //
#define CFG_SPI4_ENABLE             false              //
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250     //这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       32      //
#define CFG_UART1_RECVBUF_LEN       32      //
#define CFG_UART1_DMABUF_LEN        32      //
#define CFG_UART2_SENDBUF_LEN       32      //
#define CFG_UART2_RECVBUF_LEN       32      //
#define CFG_UART2_DMABUF_LEN        32      //
#define CFG_UART3_SENDBUF_LEN       32      //
#define CFG_UART3_RECVBUF_LEN       32      //
#define CFG_UART3_DMABUF_LEN        32      //
#define CFG_UART4_SENDBUF_LEN       32      //
#define CFG_UART4_RECVBUF_LEN       32      //
#define CFG_UART4_DMABUF_LEN        32      //
#define CFG_UART5_SENDBUF_LEN       32      //
#define CFG_UART5_RECVBUF_LEN       32      //
#define CFG_UART5_DMABUF_LEN        32      //
#define CFG_UART6_SENDBUF_LEN       32      //
#define CFG_UART6_RECVBUF_LEN       32      //
#define CFG_UART6_DMABUF_LEN        32      //
#define CFG_UART7_SENDBUF_LEN       32      //
#define CFG_UART7_RECVBUF_LEN       32      //
#define CFG_UART7_DMABUF_LEN        32      //
#define CFG_UART8_SENDBUF_LEN       32      //
#define CFG_UART8_RECVBUF_LEN       32      //
#define CFG_UART8_DMABUF_LEN        32      //
#define CFG_UART1_ENABLE           true        //
#define CFG_UART2_ENABLE           false       //
#define CFG_UART3_ENABLE           false       //
#define CFG_UART4_ENABLE           false       //
#define CFG_UART5_ENABLE           false       //
#define CFG_UART6_ENABLE           false       //
#define CFG_UART7_ENABLE           false       //
#define CFG_UART8_ENABLE           false       //
#define CFG_UART1_TX_DMA_CHANNEL       DMA_NONUSE   //串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA_NONUSE   //串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA_NONUSE   //串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA_NONUSE   //串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA_NONUSE   //串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA_NONUSE   //串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE   //串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE   //串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE   //串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE   //串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE   //串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE   //串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE   //串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE   //串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE   //串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE   //串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG        //打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10      //定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false   //
#define     CFG_DHCPC_ENABLE            true    //
#define     CFG_DHCP_RENEWTIME          3600    //秒数
#define     CFG_DHCP_REBINDTIME         3600    //秒数
#define     CFG_DHCP_LEASETIME          3600    //秒数
#define     CFG_DHCPD_IPNUM             0x40    //64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"    //
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"  //
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"  //
#define     CFG_DHCPD_NETIP             "255.255.255.0"  //
#define     CFG_DHCPD_DNS               "192.168.0.253"  //
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"  //
#define     CFG_DHCPD_DOMAINNAME       "domain"        //
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      2          //分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        -1         //分区结束，-1表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false      //分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"    //需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512      //
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            false   //
#define     CFG_FTPC_ENABLE            true    //
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true  //即使选false也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096    //定义初始化过程使用的栈空间一般按默认值就可以了
#define CFG_EVENT_LIMIT         15      //事件数量
#define CFG_EVENT_TYPE_LIMIT    15      //事件类型数
#define CFG_IDLESTACK_LIMIT     1024    //IDLE事件处理函数运行的栈尺寸一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30      //监视IDLE事件持续低于1/16 CPU占比的时间秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     4096    //main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false   //IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false   //true=用于资源紧缺的场合内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false   //在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8   //用完会自动扩充
#define CFG_HANDLE_LIMIT        8   //用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false       //
#define CFG_START_APP_IS_VERIFICATION      true       //
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN     //CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行
#define  CFG_APP_VERIFICATION   VERIFICATION_NULL   //
#define CFG_IBOOT_VERSION_SMALL       00        //xx.xx.__APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00        //xx.__.xxAPP忽略
#define CFG_IBOOT_VERSION_LARGE       01        //__.xx.xxAPP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"           //
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"            //
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40      //定义锁的数量包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10      //
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure modbus  ******************************************//
#define CFG_MB_ASCII_TIMEOUT_SEC                    1       //"从机用ASCII时，通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define CFG_MB_FUNC_HANDLERS_MAX                    16      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF           32      //这个数字限制了从机ID数据的最大大小。
#define CFG_MB_MASTER_DELAY_MS_CONVERT              200     //主站发送一个广播帧后主站等待延迟时间，时间到后才主站才可以发送其他帧
#define CFG_MB_MASTER_TIMEOUT_MS_RESPOND            100     //
#define CFG_MB_MASTER_TOTAL_SLAVE_NUM               16      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED       true    // "是否启用请求从机ID功能"
#define CFG_MB_FUNC_READ_INPUT_ENABLED              true    // "是否启用读输入寄存器功能"
#define CFG_MB_FUNC_READ_HOLDING_ENABLED            true    // "是否启用读保持寄存器功能"
#define CFG_MB_FUNC_WRITE_HOLDING_ENABLED           true    // "是否启用写单个寄存器功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true    // "是否启用写多个寄存器功能"
#define CFG_MB_FUNC_READ_COILS_ENABLED              true    // "是否启用读线圈功能"
#define CFG_MB_FUNC_WRITE_COIL_ENABLED              true    // "是否启用写线圈功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED    true    // "是否启用写多个线圈功能"
#define CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED    true    // "是否启用读离散输入功能"
#define CFG_MB_FUNC_READWRITE_HOLDING_ENABLED       true    // "是否启用读写多个寄存器功能"
#define CFG_MB_MASTER_ENABLED                       false    // "主机使能开关"
    #define CFG_MB_MASTER_RTU_ENABLED                   false    // "主机RTU使能开关"
    #define CFG_MB_M_DISCRETE_INPUT_START               1        //
    #define CFG_MB_M_DISCRETE_INPUT_NDISCRETES          10       //
    #define CFG_MB_M_COIL_START                         11       //
    #define CFG_MB_M_COIL_NCOILS                        10       //
    #define CFG_MB_M_REG_INPUT_START                    21       //
    #define CFG_MB_M_REG_INPUT_NREGS                    10       //
    #define CFG_MB_M_REG_HOLDING_START                  31       //
    #define CFG_MB_M_REG_HOLDING_NREGS                  10       //
    #define CFG_MB_M_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"
    #define CFG_MB_M_PORT_BAUDRATE                      115200    // "串口波特率"
    #define CFG_MB_M_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
#define CFG_MB_SLAVE_ENABLED                       false    // "从机使能开关"
    #define CFG_MB_SLAVE_ASCII_ENABLED                  false    // "从机ASCII使能开关"
    #define CFG_MB_SLAVE_RTU_ENABLED                    false    // "从机RTU使能开关"
    #define CFG_MB_SLAVE_TCP_ENABLED                    false    // "从机TCP使能开关"
    #define CFG_MB_S_DISCRETE_INPUT_START               1        //
    #define CFG_MB_S_DISCRETE_INPUT_NDISCRETES          10       //
    #define CFG_MB_S_COIL_START                         11       //
    #define CFG_MB_S_COIL_NCOILS                        10       //
    #define CFG_MB_S_REG_INPUT_START                    21       //
    #define CFG_MB_S_REG_INPUT_NREGS                    10       //
    #define CFG_MB_S_REG_HOLDING_START                  31       //
    #define CFG_MB_S_REG_HOLDING_NREGS                  10       //
    #define CFG_MB_S_ADDR                               2        //
    #define CFG_MB_S_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
    #define CFG_MB_S_TCP_PORT_NUM                       0        //"使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
    #define CFG_MB_S_PORT_BAUDRATE                      115200    // "串口波特率"
    #define CFG_MB_S_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
    #define CFG_MB_S_TRANSFER_MODE                      MB_RTU_MODE    // "通信方式"
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       true            //
#define CFG_SELECT_NETCARD  "AT32F437_ETH"   //必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100" //
#define CFG_MY_SUBMASK      "255.255.255.0" //
#define CFG_MY_GATWAY       "192.168.8.1"   //
#define CFG_MY_DNS          "192.168.8.1"   //
#define CFG_MY_DNSBAK       "192.168.8.1"   //
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"        //
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000      //
#define CFG_ADD_ROUTINE_SHELL      true        //
#define CFG_ADD_EXPAND_SHELL       true        //
#define CFG_ADD_GLOBAL_FUN         false       //
#define CFG_SHOW_ADD_SHEELL        true        //
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10      //占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5       //可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true    //选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true         //
#define CFG_STDIO_STDOUT_FOLLOW    true         //
#define CFG_STDIO_STDERR_FOLLOW    true         //
#define CFG_STDIO_FLOAT_PRINT      true         //
#define CFG_STDIO_STDIOFILE        true         //
#define CFG_STDIO_IN_NAME              "/dev/UART1"    //
#define CFG_STDIO_OUT_NAME             "/dev/UART1"    //
#define CFG_STDIO_ERR_NAME             "/dev/UART1"    //
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true    //资源充足才打开
#define     CFG_TCP_CCBNUM              10      //占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5       //占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10      //用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000  //
#define     CFG_TPL_PROTONUM            5       //占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true    //
#define     CFG_TELNETC_ENABLE          false   //
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure tftp  ******************************************//
#define     CFG_TFTP_PATHDEFAULT       "/"   //TFTP默认工作目录
#define    CFG_MODULE_ENABLE_TFTP          true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8      //北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10      //占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4       //占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472       //udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000     //8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"      //需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1        //-1表示最后一块起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false      //"分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false      //"分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false      //
#define CFG_W25QXX_BYTES_PAGE               256        //
#define CFG_W25QXX_PAGES_SECTOR             16         //
#define CFG_W25QXX_SECTORS_BLOCK            16         //
#define CFG_W25QXX_SECTORS_NUM              2048       //
#define CFG_W25QXX_CHIP_ID                  0xEF18     //
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           1                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

/*Modified at 2023-12-24 19:24:21*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end


#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG         //  打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10       //  "设备数量",定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512       //  "C库文件用户态缓冲区尺寸"
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8    //  "对象数初始值"，用完会自动扩充
#define CFG_HANDLE_LIMIT        8    //  "句柄数初始值"，用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define    CFG_UPDATEIBOOT_EN              false             //
#define    CFG_START_APP_IS_VERIFICATION   true              //
#define    CFG_APP_RUNMODE                 CN_DIRECT_RUN     //CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行
#define    CFG_APP_VERIFICATION            VERIFICATION_CRC  //
#define    CFG_IBOOT_VERSION_SMALL         00                //xx.xx.__APP忽略
#define    CFG_IBOOT_VERSION_MEDIUM        00                //xx.__.xxAPP忽略
#define    CFG_IBOOT_VERSION_LARGE         01                //__.xx.xxAPP忽略
#define    CFG_IBOOT_UPDATE_NAME           "/yaf2/iboot.bin" //  
#define    CFG_APP_UPDATE_NAME             "/yaf2/app.bin"   //  
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40       //  "锁的数量",定义锁的数量，包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10       //  "内存池数量限值",
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000       //  "执行shell命令的栈尺寸",
#define CFG_ADD_ROUTINE_SHELL      true         //  "是否添加常规shell命令",
#define CFG_ADD_EXPAND_SHELL       true         //  "是否添加拓展shell命令",
#define CFG_ADD_GLOBAL_FUN         false        //  "添加全局函数到shell",
#define CFG_SHOW_ADD_SHEELL        true         //  "编译时显示shell命令",
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define    CFG_SPI_BUF_LEN                 256               //
#define    CFG_SPI_DMA_BUF_LEN             256               //
#define    CFG_SPI1_ENABLE                 true              //
#define    CFG_SPI2_ENABLE                 false             //
#define    CFG_SPI3_ENABLE                 false             //
#define    CFG_SPI4_ENABLE                 false             //
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define    CFG_UART1_SENDBUF_LEN           512               //
#define    CFG_UART1_RECVBUF_LEN           512               //
#define    CFG_UART1_DMABUF_LEN            512               //
#define    CFG_UART2_SENDBUF_LEN           512               //
#define    CFG_UART2_RECVBUF_LEN           512               //
#define    CFG_UART2_DMABUF_LEN            512               //
#define    CFG_UART3_SENDBUF_LEN           512               //
#define    CFG_UART3_RECVBUF_LEN           512               //
#define    CFG_UART3_DMABUF_LEN            512               //
#define    CFG_UART4_SENDBUF_LEN           32                //
#define    CFG_UART4_RECVBUF_LEN           32                //
#define    CFG_UART4_DMABUF_LEN            32                //
#define    CFG_UART5_SENDBUF_LEN           32                //
#define    CFG_UART5_RECVBUF_LEN           32                //
#define    CFG_UART5_DMABUF_LEN            32                //
#define    CFG_UART6_SENDBUF_LEN           32                //
#define    CFG_UART6_RECVBUF_LEN           32                //
#define    CFG_UART6_DMABUF_LEN            32                //
#define    CFG_UART7_SENDBUF_LEN           32                //
#define    CFG_UART7_RECVBUF_LEN           32                //
#define    CFG_UART7_DMABUF_LEN            32                //
#define    CFG_UART8_SENDBUF_LEN           32                //
#define    CFG_UART8_RECVBUF_LEN           32                //
#define    CFG_UART8_DMABUF_LEN            32                //
#define    CFG_UART1_ENABLE                true              //
#define    CFG_UART2_ENABLE                false             //
#define    CFG_UART3_ENABLE                false             //
#define    CFG_UART4_ENABLE                false             //
#define    CFG_UART5_ENABLE                false             //
#define    CFG_UART6_ENABLE                false             //
#define    CFG_UART7_ENABLE                false             //
#define    CFG_UART8_ENABLE                false             //
#define    CFG_UART1_TX_DMA_CHANNEL        DMA_NONUSE        //   串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART1_RX_DMA_CHANNEL        DMA_NONUSE        //   串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART2_TX_DMA_CHANNEL        DMA_NONUSE        //   串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART2_RX_DMA_CHANNEL        DMA_NONUSE        //   串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART3_TX_DMA_CHANNEL        DMA_NONUSE        //   串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART3_RX_DMA_CHANNEL        DMA_NONUSE        //   串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART4_TX_DMA_CHANNEL        DMA_NONUSE        //   串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART4_RX_DMA_CHANNEL        DMA_NONUSE        //   串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART5_TX_DMA_CHANNEL        DMA_NONUSE        //   串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART5_RX_DMA_CHANNEL        DMA_NONUSE        //   串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART6_TX_DMA_CHANNEL        DMA_NONUSE        //   串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART6_RX_DMA_CHANNEL        DMA_NONUSE        //   串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART7_TX_DMA_CHANNEL        DMA_NONUSE        //   串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART7_RX_DMA_CHANNEL        DMA_NONUSE        //   串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART8_TX_DMA_CHANNEL        DMA_NONUSE        //   串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART8_RX_DMA_CHANNEL        DMA_NONUSE        //   串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250      //   这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false       //  分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512          //  "片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4            //  "片内flash的扇区中有多少页"
#define CFG_EFLASH_BLOCK_SECT_NUM           32           //  "片内flash的块中有多少扇区"
#define CFG_EFLASH_PLANE1_SECT_NUM          256          //  "片1一共有多少扇区"
#define CFG_EFLASH_PLANE2_SECT_NUM          256          //  "片2一共有多少扇区"
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8            //  "片1一共有多少块"
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8            //  "片2一共有多少块"
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure emflash insatall xip  ******************************************//
#define    CFG_EFLASH_XIP_PART_START       0                 //  分区起始，填写块号，块号从0开始计算
#define    CFG_EFLASH_XIP_PART_END         4                 //  分区结束，-1表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define    CFG_EFLASH_XIP_PART_FORMAT      false             //  分区选项,是否需要格式化该分区。
#define    CFG_EFLASH_XIPFSMOUNT_NAME      "xip-app"         //  需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true   //  "全功能动态分配",即使选false，也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define    CFG_INIT_STACK_SIZE             4096              //定义初始化过程使用的栈空间一般按默认值就可以了
#define    CFG_EVENT_LIMIT                 22                //事件数量
#define    CFG_EVENT_TYPE_LIMIT            22                //事件类型数
#define    CFG_IDLESTACK_LIMIT             1024              //IDLE事件处理函数运行的栈尺寸一般按默认值就可以了
#define    CFG_IDLE_MONITOR_CYCLE          30                //监视IDLE事件持续低于1/16 CPU占比的时间秒数，0=不监视
#define    CFG_MAINSTACK_LIMIT             40960             //main函数运行所需的栈尺寸
#define    CFG_IDLE_WDT_RESET              false             //IDLE事件监视狗叫时是否复位
#define    CFG_OS_TINY                     false             //true=用于资源紧缺的场合内核会裁剪掉：事件类型名字，事件处理时间统计。
#define    CFG_IDLE_CHECK_STACK            false             //在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"         //  "本地字符集",
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5        //  "定时器数量",可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true     //  "硬件定时器提供时钟源",选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000   //  "数据包缓冲区尺寸"
#define     CFG_TPL_PROTONUM            5        //  "支持的传输协议数"，占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true     //  "TCP乱序重组使能",资源充足才打开
#define     CFG_TCP_CCBNUM              10       //  "tcp 客户端数限值"，占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5        //  "tcp 服务器数限值"，占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10       //  "tcp socket hashtable长度"，用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure ftp  ******************************************//
#define    CFG_FTPD_ENABLE                 true              //  
#define    CFG_FTPC_ENABLE                 true              //  
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true     //  "telnet 服务器使能"
#define     CFG_TELNETC_ENABLE          false    //  "telnet 客户端使能"
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10       //  "socket数限值"，占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false    //  "DHCP 服务器使能"
#define     CFG_DHCPC_ENABLE            true     //  "DHCP 客户端使能"
#define     CFG_DHCP_RENEWTIME          3600     //  "renew timer",秒数
#define     CFG_DHCP_REBINDTIME         3600     //  "rebind timer",秒数
#define     CFG_DHCP_LEASETIME          3600     //  "lease timer",秒数
#define     CFG_DHCPD_IPNUM             0x40     //  "IP池尺寸",64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"     //  "DHCP起始IP",
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"   //  "DHCP SERVER IP"
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"   //  "DHCP ROUTER SERVER IP"
#define     CFG_DHCPD_NETIP             "255.255.255.0"   //  "DHCP MASK IP"
#define     CFG_DHCPD_DNS               "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DOMAINNAME       "domain"         //  "DHCP domain name"
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32       //  "ARP哈希表长度"，占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8       //  "时区",北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10       //  "UDP socket数限值"，占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4        //  "udp socket 哈希表长度"，占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472        //  udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000      //  8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"    //   "网卡名称",
#define CFG_ETH_LOOP_CYCLE      1000          //   "网卡轮询周期(uS)",中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true             //   "网卡接收是否轮询",
#define CFG_ETH_HARD_MAC_ADDR   true             //   "硬件生成Mac地址",
#define CFG_ETH_MAC_ADDR0      00            //   "MAC ADDR0",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02            //   "MAC ADDR1",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03            //   "MAC ADDR2",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04            //   "MAC ADDR3",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05            //   "MAC ADDR4",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06            //   "MAC ADDR5",若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false       //  "分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false       //  "是否使用QSPI模式"
#define CFG_W25QXX_BYTES_PAGE               256         //  "每页的字节数"
#define CFG_W25QXX_PAGES_SECTOR             16          //  "每个扇区有多少页"
#define CFG_W25QXX_SECTORS_BLOCK            16          //  "每个块有多少扇区"
#define CFG_W25QXX_SECTORS_NUM              2048        //  "总的扇区数"
#define CFG_W25QXX_CHIP_ID                  0xEF18      //  "芯片ID"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"       //  "文件系统mount点名字",需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1         //  "分区结束"，-1表示最后一块,起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false       //  "分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true          //  "是否支持多种输入设备",
#define CFG_STDIO_STDOUT_FOLLOW    true          //  "stdout是否跟随stdin",
#define CFG_STDIO_STDERR_FOLLOW    true          //  "stderr是否跟随stdin",
#define CFG_STDIO_FLOAT_PRINT      true          //  "支持浮点打印"
#define CFG_STDIO_STDIOFILE        true          //  "支持标准IO文件"
#define CFG_STDIO_IN_NAME              "/dev/UART1"     //  "标准输入设备名",
#define CFG_STDIO_OUT_NAME             "/dev/UART1"     //  "标准输出设备名",
#define CFG_STDIO_ERR_NAME             "/dev/UART1"     //  "标准err输出设备名",
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure ntp  ******************************************//
#define    CFG_MODULE_ENABLE_NTP           true
//*******************************  Configure modbus  ******************************************//
#define    CFG_MB_ASCII_TIMEOUT_SEC        100               //"从机用ASCII时，通信的超时时间",通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define    CFG_MB_FUNC_HANDLERS_MAX        16                //  
#define    CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF  32                //这个数字限制了从机ID数据的最大大小。
#define    CFG_MB_MASTER_DELAY_MS_CONVERT  200               //主站发送一个广播帧后主站等待延迟时间，时间到后才主站才可以发送其他帧
#define    CFG_MB_MASTER_TIMEOUT_MS_RESPOND  500               //  
#define    CFG_MB_MASTER_TOTAL_SLAVE_NUM   1                 //  
#define    CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_INPUT_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_HOLDING_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_HOLDING_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_COILS_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_COIL_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED  true              //   
#define    CFG_MB_FUNC_READWRITE_HOLDING_ENABLED  true              //   
#define    CFG_MB_MASTER_ENABLED           true              //   
#define    CFG_MB_MASTER_RTU_ENABLED       true              //   
#define    CFG_MB_M_DISCRETE_INPUT_START   1                 //  
#define    CFG_MB_M_DISCRETE_INPUT_NDISCRETES  0                 //  
#define    CFG_MB_M_COIL_START             0                 //  
#define    CFG_MB_M_COIL_NCOILS            0                 //  
#define    CFG_MB_M_REG_INPUT_START        0                 //  
#define    CFG_MB_M_REG_INPUT_NREGS        0                 //  
#define    CFG_MB_M_REG_HOLDING_START      0                 //  
#define    CFG_MB_M_REG_HOLDING_NREGS      65000             //  
#define    CFG_MB_M_PORT_NUM               2                 //"串口的端口号，例如要用/dev/UART2，就填2",例如要用/dev/UART2，就填2"
#define    CFG_MB_M_PORT_BAUDRATE          38400             //   
#define    CFG_MB_M_PORT_PARITY            MB_PAR_NONE       //   
#define    CFG_MB_SLAVE_ENABLED            false             //   
#define    CFG_MB_SLAVE_ASCII_ENABLED      false             //   
#define    CFG_MB_SLAVE_RTU_ENABLED        false             //   
#define    CFG_MB_SLAVE_TCP_ENABLED        false             //   
#define    CFG_MB_S_DISCRETE_INPUT_START   1                 //  
#define    CFG_MB_S_DISCRETE_INPUT_NDISCRETES  10                //  
#define    CFG_MB_S_COIL_START             11                //  
#define    CFG_MB_S_COIL_NCOILS            10                //  
#define    CFG_MB_S_REG_INPUT_START        21                //  
#define    CFG_MB_S_REG_INPUT_NREGS        10                //  
#define    CFG_MB_S_REG_HOLDING_START      31                //  
#define    CFG_MB_S_REG_HOLDING_NREGS      10                //  
#define    CFG_MB_S_ADDR                   2                 //  
#define    CFG_MB_S_PORT_NUM               2                 //"串口的端口号，例如要用/dev/UART2，就填2",例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
#define    CFG_MB_S_TCP_PORT_NUM           0                 //"使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效",使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
#define    CFG_MB_S_PORT_BAUDRATE          115200            //   
#define    CFG_MB_S_PORT_PARITY            MB_PAR_NONE       //   
#define    CFG_MB_S_TRANSFER_MODE          MB_RTU_MODE       //   
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Configure network config  ******************************************//
#define    CFG_STATIC_IP                   false             //
#define    CFG_SELECT_NETCARD              "AT32F437_ETH"    //必须与选中的网卡驱动中配置的名称相同
#define    CFG_MY_IPV4                     "192.168.8.100"   //
#define    CFG_MY_SUBMASK                  "255.255.255.0"   //
#define    CFG_MY_GATWAY                   "192.168.8.1"     //
#define    CFG_MY_DNS                      "192.168.8.1"     //
#define    CFG_MY_DNSBAK                   "192.168.8.1"     //
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           1                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

/*Modified at 2023-12-24 19:43:52*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end


#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32      //占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false      //分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512         //"片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4           //
#define CFG_EFLASH_BLOCK_SECT_NUM           32          //
#define CFG_EFLASH_PLANE1_SECT_NUM          256         //
#define CFG_EFLASH_PLANE2_SECT_NUM          256         //
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8           //
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8           //
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"   //
#define CFG_ETH_LOOP_CYCLE      1000         //中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true            //
#define CFG_ETH_HARD_MAC_ADDR   true            //
#define CFG_ETH_MAC_ADDR0      00           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06           //若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                //
#define CFG_SPI_DMA_BUF_LEN         256                //
#define CFG_SPI1_ENABLE             true              //
#define CFG_SPI2_ENABLE             false              //
#define CFG_SPI3_ENABLE             false              //
#define CFG_SPI4_ENABLE             false              //
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250     //这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       512      //
#define CFG_UART1_RECVBUF_LEN       512      //
#define CFG_UART1_DMABUF_LEN        512      //
#define CFG_UART2_SENDBUF_LEN       512      //
#define CFG_UART2_RECVBUF_LEN       512      //
#define CFG_UART2_DMABUF_LEN        512      //
#define CFG_UART3_SENDBUF_LEN       512      //
#define CFG_UART3_RECVBUF_LEN       512      //
#define CFG_UART3_DMABUF_LEN        512      //
#define CFG_UART4_SENDBUF_LEN       32      //
#define CFG_UART4_RECVBUF_LEN       32      //
#define CFG_UART4_DMABUF_LEN        32      //
#define CFG_UART5_SENDBUF_LEN       32      //
#define CFG_UART5_RECVBUF_LEN       32      //
#define CFG_UART5_DMABUF_LEN        32      //
#define CFG_UART6_SENDBUF_LEN       32      //
#define CFG_UART6_RECVBUF_LEN       32      //
#define CFG_UART6_DMABUF_LEN        32      //
#define CFG_UART7_SENDBUF_LEN       32      //
#define CFG_UART7_RECVBUF_LEN       32      //
#define CFG_UART7_DMABUF_LEN        32      //
#define CFG_UART8_SENDBUF_LEN       32      //
#define CFG_UART8_RECVBUF_LEN       32      //
#define CFG_UART8_DMABUF_LEN        32      //
#define CFG_UART1_ENABLE           true        //
#define CFG_UART2_ENABLE           false       //
#define CFG_UART3_ENABLE           false       //
#define CFG_UART4_ENABLE           false       //
#define CFG_UART5_ENABLE           false       //
#define CFG_UART6_ENABLE           false       //
#define CFG_UART7_ENABLE           false       //
#define CFG_UART8_ENABLE           false       //
#define CFG_UART1_TX_DMA_CHANNEL       DMA_NONUSE   //串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA_NONUSE   //串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA_NONUSE   //串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA_NONUSE   //串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA_NONUSE   //串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA_NONUSE   //串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE   //串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE   //串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE   //串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE   //串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE   //串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE   //串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE   //串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE   //串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE   //串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE   //串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG        //打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10      //定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false   //
#define     CFG_DHCPC_ENABLE            true    //
#define     CFG_DHCP_RENEWTIME          3600    //秒数
#define     CFG_DHCP_REBINDTIME         3600    //秒数
#define     CFG_DHCP_LEASETIME          3600    //秒数
#define     CFG_DHCPD_IPNUM             0x40    //64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"    //
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"  //
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"  //
#define     CFG_DHCPD_NETIP             "255.255.255.0"  //
#define     CFG_DHCPD_DNS               "192.168.0.253"  //
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"  //
#define     CFG_DHCPD_DOMAINNAME       "domain"        //
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0          //分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4         //分区结束，4表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false      //分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"    //需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512      //
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true   //
#define     CFG_FTPC_ENABLE            true    //
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true  //即使选false也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096    //定义初始化过程使用的栈空间一般按默认值就可以了
#define CFG_EVENT_LIMIT         22      //事件数量
#define CFG_EVENT_TYPE_LIMIT    22      //事件类型数
#define CFG_IDLESTACK_LIMIT     1024    //IDLE事件处理函数运行的栈尺寸一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30      //监视IDLE事件持续低于1/16 CPU占比的时间秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960    //main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false   //IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false   //true=用于资源紧缺的场合内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false   //在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8   //用完会自动扩充
#define CFG_HANDLE_LIMIT        8   //用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false       //
#define CFG_START_APP_IS_VERIFICATION      true       //
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN     //CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC   //
#define CFG_IBOOT_VERSION_SMALL       00        //xx.xx.__APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00        //xx.__.xxAPP忽略
#define CFG_IBOOT_VERSION_LARGE       01        //__.xx.xxAPP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"           //
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"            //
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40      //定义锁的数量包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10      //
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure modbus  ******************************************//
#define CFG_MB_ASCII_TIMEOUT_SEC                    100       //"从机用ASCII时，通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define CFG_MB_FUNC_HANDLERS_MAX                    16      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF           32      //这个数字限制了从机ID数据的最大大小。
#define CFG_MB_MASTER_DELAY_MS_CONVERT              200     //主站发送一个广播帧后主站等待延迟时间，时间到后才主站才可以发送其他帧
#define CFG_MB_MASTER_TIMEOUT_MS_RESPOND            500     //
#define CFG_MB_MASTER_TOTAL_SLAVE_NUM               1      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED       true    // "是否启用请求从机ID功能"
#define CFG_MB_FUNC_READ_INPUT_ENABLED              true    // "是否启用读输入寄存器功能"
#define CFG_MB_FUNC_READ_HOLDING_ENABLED            true    // "是否启用读保持寄存器功能"
#define CFG_MB_FUNC_WRITE_HOLDING_ENABLED           true    // "是否启用写单个寄存器功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true    // "是否启用写多个寄存器功能"
#define CFG_MB_FUNC_READ_COILS_ENABLED              true    // "是否启用读线圈功能"
#define CFG_MB_FUNC_WRITE_COIL_ENABLED              true    // "是否启用写线圈功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED    true    // "是否启用写多个线圈功能"
#define CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED    true    // "是否启用读离散输入功能"
#define CFG_MB_FUNC_READWRITE_HOLDING_ENABLED       true    // "是否启用读写多个寄存器功能"
#define CFG_MB_MASTER_ENABLED                       true    // "主机使能开关"
    #define CFG_MB_MASTER_RTU_ENABLED                   true    // "主机RTU使能开关"
    #define CFG_MB_M_DISCRETE_INPUT_START               1        //
    #define CFG_MB_M_DISCRETE_INPUT_NDISCRETES          0       //
    #define CFG_MB_M_COIL_START                         0       //
    #define CFG_MB_M_COIL_NCOILS                        0       //
    #define CFG_MB_M_REG_INPUT_START                    0       //
    #define CFG_MB_M_REG_INPUT_NREGS                    0       //
    #define CFG_MB_M_REG_HOLDING_START                  0       //
    #define CFG_MB_M_REG_HOLDING_NREGS                  65000       //
    #define CFG_MB_M_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"
    #define CFG_MB_M_PORT_BAUDRATE                      38400    // "串口波特率"
    #define CFG_MB_M_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
#define CFG_MB_SLAVE_ENABLED                       false    // "从机使能开关"
    #define CFG_MB_SLAVE_ASCII_ENABLED                  false    // "从机ASCII使能开关"
    #define CFG_MB_SLAVE_RTU_ENABLED                    false    // "从机RTU使能开关"
    #define CFG_MB_SLAVE_TCP_ENABLED                    false    // "从机TCP使能开关"
    #define CFG_MB_S_DISCRETE_INPUT_START               1        //
    #define CFG_MB_S_DISCRETE_INPUT_NDISCRETES          10       //
    #define CFG_MB_S_COIL_START                         11       //
    #define CFG_MB_S_COIL_NCOILS                        10       //
    #define CFG_MB_S_REG_INPUT_START                    21       //
    #define CFG_MB_S_REG_INPUT_NREGS                    10       //
    #define CFG_MB_S_REG_HOLDING_START                  31       //
    #define CFG_MB_S_REG_HOLDING_NREGS                  10       //
    #define CFG_MB_S_ADDR                               2        //
    #define CFG_MB_S_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
    #define CFG_MB_S_TCP_PORT_NUM                       0        //"使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
    #define CFG_MB_S_PORT_BAUDRATE                      115200    // "串口波特率"
    #define CFG_MB_S_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
    #define CFG_MB_S_TRANSFER_MODE                      MB_RTU_MODE    // "通信方式"
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false            //
#define CFG_SELECT_NETCARD  "AT32F437_ETH"   //必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100" //
#define CFG_MY_SUBMASK      "255.255.255.0" //
#define CFG_MY_GATWAY       "192.168.8.1"   //
#define CFG_MY_DNS          "192.168.8.1"   //
#define CFG_MY_DNSBAK       "192.168.8.1"   //
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"        //
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure ntp  ******************************************//
#define    CFG_MODULE_ENABLE_NTP           true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000      //
#define CFG_ADD_ROUTINE_SHELL      true        //
#define CFG_ADD_EXPAND_SHELL       true        //
#define CFG_ADD_GLOBAL_FUN         false       //
#define CFG_SHOW_ADD_SHEELL        true        //
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10      //占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5       //可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true    //选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true         //
#define CFG_STDIO_STDOUT_FOLLOW    true         //
#define CFG_STDIO_STDERR_FOLLOW    true         //
#define CFG_STDIO_FLOAT_PRINT      true         //
#define CFG_STDIO_STDIOFILE        true         //
#define CFG_STDIO_IN_NAME              "/dev/UART1"    //
#define CFG_STDIO_OUT_NAME             "/dev/UART1"    //
#define CFG_STDIO_ERR_NAME             "/dev/UART1"    //
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true    //资源充足才打开
#define     CFG_TCP_CCBNUM              10      //占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5       //占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10      //用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000  //
#define     CFG_TPL_PROTONUM            5       //占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true    //
#define     CFG_TELNETC_ENABLE          false   //
#define    CFG_MODULE_ENABLE_TELNET        false
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8      //北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10      //占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4       //占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472       //udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000     //8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"      //需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1        //-1表示最后一块起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false      //"分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false      //"分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false      //
#define CFG_W25QXX_BYTES_PAGE               256        //
#define CFG_W25QXX_PAGES_SECTOR             16         //
#define CFG_W25QXX_SECTORS_BLOCK            16         //
#define CFG_W25QXX_SECTORS_NUM              2048       //
#define CFG_W25QXX_CHIP_ID                  0xEF18     //
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           1                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

/*Modified at 2023-12-24 19:43:56*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end


#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32      //占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false      //分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512         //"片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4           //
#define CFG_EFLASH_BLOCK_SECT_NUM           32          //
#define CFG_EFLASH_PLANE1_SECT_NUM          256         //
#define CFG_EFLASH_PLANE2_SECT_NUM          256         //
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8           //
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8           //
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"   //
#define CFG_ETH_LOOP_CYCLE      1000         //中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true            //
#define CFG_ETH_HARD_MAC_ADDR   true            //
#define CFG_ETH_MAC_ADDR0      00           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06           //若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                //
#define CFG_SPI_DMA_BUF_LEN         256                //
#define CFG_SPI1_ENABLE             true              //
#define CFG_SPI2_ENABLE             false              //
#define CFG_SPI3_ENABLE             false              //
#define CFG_SPI4_ENABLE             false              //
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250     //这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       512      //
#define CFG_UART1_RECVBUF_LEN       512      //
#define CFG_UART1_DMABUF_LEN        512      //
#define CFG_UART2_SENDBUF_LEN       512      //
#define CFG_UART2_RECVBUF_LEN       512      //
#define CFG_UART2_DMABUF_LEN        512      //
#define CFG_UART3_SENDBUF_LEN       512      //
#define CFG_UART3_RECVBUF_LEN       512      //
#define CFG_UART3_DMABUF_LEN        512      //
#define CFG_UART4_SENDBUF_LEN       32      //
#define CFG_UART4_RECVBUF_LEN       32      //
#define CFG_UART4_DMABUF_LEN        32      //
#define CFG_UART5_SENDBUF_LEN       32      //
#define CFG_UART5_RECVBUF_LEN       32      //
#define CFG_UART5_DMABUF_LEN        32      //
#define CFG_UART6_SENDBUF_LEN       32      //
#define CFG_UART6_RECVBUF_LEN       32      //
#define CFG_UART6_DMABUF_LEN        32      //
#define CFG_UART7_SENDBUF_LEN       32      //
#define CFG_UART7_RECVBUF_LEN       32      //
#define CFG_UART7_DMABUF_LEN        32      //
#define CFG_UART8_SENDBUF_LEN       32      //
#define CFG_UART8_RECVBUF_LEN       32      //
#define CFG_UART8_DMABUF_LEN        32      //
#define CFG_UART1_ENABLE           true        //
#define CFG_UART2_ENABLE           false       //
#define CFG_UART3_ENABLE           false       //
#define CFG_UART4_ENABLE           false       //
#define CFG_UART5_ENABLE           false       //
#define CFG_UART6_ENABLE           false       //
#define CFG_UART7_ENABLE           false       //
#define CFG_UART8_ENABLE           false       //
#define CFG_UART1_TX_DMA_CHANNEL       DMA_NONUSE   //串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA_NONUSE   //串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA_NONUSE   //串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA_NONUSE   //串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA_NONUSE   //串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA_NONUSE   //串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE   //串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE   //串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE   //串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE   //串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE   //串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE   //串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE   //串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE   //串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE   //串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE   //串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG        //打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10      //定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false   //
#define     CFG_DHCPC_ENABLE            true    //
#define     CFG_DHCP_RENEWTIME          3600    //秒数
#define     CFG_DHCP_REBINDTIME         3600    //秒数
#define     CFG_DHCP_LEASETIME          3600    //秒数
#define     CFG_DHCPD_IPNUM             0x40    //64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"    //
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"  //
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"  //
#define     CFG_DHCPD_NETIP             "255.255.255.0"  //
#define     CFG_DHCPD_DNS               "192.168.0.253"  //
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"  //
#define     CFG_DHCPD_DOMAINNAME       "domain"        //
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0          //分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4         //分区结束，4表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false      //分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"    //需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512      //
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true   //
#define     CFG_FTPC_ENABLE            true    //
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true  //即使选false也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096    //定义初始化过程使用的栈空间一般按默认值就可以了
#define CFG_EVENT_LIMIT         22      //事件数量
#define CFG_EVENT_TYPE_LIMIT    22      //事件类型数
#define CFG_IDLESTACK_LIMIT     1024    //IDLE事件处理函数运行的栈尺寸一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30      //监视IDLE事件持续低于1/16 CPU占比的时间秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960    //main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false   //IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false   //true=用于资源紧缺的场合内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false   //在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8   //用完会自动扩充
#define CFG_HANDLE_LIMIT        8   //用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false       //
#define CFG_START_APP_IS_VERIFICATION      true       //
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN     //CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC   //
#define CFG_IBOOT_VERSION_SMALL       00        //xx.xx.__APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00        //xx.__.xxAPP忽略
#define CFG_IBOOT_VERSION_LARGE       01        //__.xx.xxAPP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"           //
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"            //
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40      //定义锁的数量包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10      //
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure modbus  ******************************************//
#define CFG_MB_ASCII_TIMEOUT_SEC                    100       //"从机用ASCII时，通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define CFG_MB_FUNC_HANDLERS_MAX                    16      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF           32      //这个数字限制了从机ID数据的最大大小。
#define CFG_MB_MASTER_DELAY_MS_CONVERT              200     //主站发送一个广播帧后主站等待延迟时间，时间到后才主站才可以发送其他帧
#define CFG_MB_MASTER_TIMEOUT_MS_RESPOND            500     //
#define CFG_MB_MASTER_TOTAL_SLAVE_NUM               1      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED       true    // "是否启用请求从机ID功能"
#define CFG_MB_FUNC_READ_INPUT_ENABLED              true    // "是否启用读输入寄存器功能"
#define CFG_MB_FUNC_READ_HOLDING_ENABLED            true    // "是否启用读保持寄存器功能"
#define CFG_MB_FUNC_WRITE_HOLDING_ENABLED           true    // "是否启用写单个寄存器功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true    // "是否启用写多个寄存器功能"
#define CFG_MB_FUNC_READ_COILS_ENABLED              true    // "是否启用读线圈功能"
#define CFG_MB_FUNC_WRITE_COIL_ENABLED              true    // "是否启用写线圈功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED    true    // "是否启用写多个线圈功能"
#define CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED    true    // "是否启用读离散输入功能"
#define CFG_MB_FUNC_READWRITE_HOLDING_ENABLED       true    // "是否启用读写多个寄存器功能"
#define CFG_MB_MASTER_ENABLED                       true    // "主机使能开关"
    #define CFG_MB_MASTER_RTU_ENABLED                   true    // "主机RTU使能开关"
    #define CFG_MB_M_DISCRETE_INPUT_START               1        //
    #define CFG_MB_M_DISCRETE_INPUT_NDISCRETES          0       //
    #define CFG_MB_M_COIL_START                         0       //
    #define CFG_MB_M_COIL_NCOILS                        0       //
    #define CFG_MB_M_REG_INPUT_START                    0       //
    #define CFG_MB_M_REG_INPUT_NREGS                    0       //
    #define CFG_MB_M_REG_HOLDING_START                  0       //
    #define CFG_MB_M_REG_HOLDING_NREGS                  65000       //
    #define CFG_MB_M_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"
    #define CFG_MB_M_PORT_BAUDRATE                      38400    // "串口波特率"
    #define CFG_MB_M_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
#define CFG_MB_SLAVE_ENABLED                       false    // "从机使能开关"
    #define CFG_MB_SLAVE_ASCII_ENABLED                  false    // "从机ASCII使能开关"
    #define CFG_MB_SLAVE_RTU_ENABLED                    false    // "从机RTU使能开关"
    #define CFG_MB_SLAVE_TCP_ENABLED                    false    // "从机TCP使能开关"
    #define CFG_MB_S_DISCRETE_INPUT_START               1        //
    #define CFG_MB_S_DISCRETE_INPUT_NDISCRETES          10       //
    #define CFG_MB_S_COIL_START                         11       //
    #define CFG_MB_S_COIL_NCOILS                        10       //
    #define CFG_MB_S_REG_INPUT_START                    21       //
    #define CFG_MB_S_REG_INPUT_NREGS                    10       //
    #define CFG_MB_S_REG_HOLDING_START                  31       //
    #define CFG_MB_S_REG_HOLDING_NREGS                  10       //
    #define CFG_MB_S_ADDR                               2        //
    #define CFG_MB_S_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
    #define CFG_MB_S_TCP_PORT_NUM                       0        //"使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
    #define CFG_MB_S_PORT_BAUDRATE                      115200    // "串口波特率"
    #define CFG_MB_S_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
    #define CFG_MB_S_TRANSFER_MODE                      MB_RTU_MODE    // "通信方式"
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false            //
#define CFG_SELECT_NETCARD  "AT32F437_ETH"   //必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100" //
#define CFG_MY_SUBMASK      "255.255.255.0" //
#define CFG_MY_GATWAY       "192.168.8.1"   //
#define CFG_MY_DNS          "192.168.8.1"   //
#define CFG_MY_DNSBAK       "192.168.8.1"   //
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"        //
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure ntp  ******************************************//
#define    CFG_MODULE_ENABLE_NTP           true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000      //
#define CFG_ADD_ROUTINE_SHELL      true        //
#define CFG_ADD_EXPAND_SHELL       true        //
#define CFG_ADD_GLOBAL_FUN         false       //
#define CFG_SHOW_ADD_SHEELL        true        //
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10      //占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5       //可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true    //选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true         //
#define CFG_STDIO_STDOUT_FOLLOW    true         //
#define CFG_STDIO_STDERR_FOLLOW    true         //
#define CFG_STDIO_FLOAT_PRINT      true         //
#define CFG_STDIO_STDIOFILE        true         //
#define CFG_STDIO_IN_NAME              "/dev/UART1"    //
#define CFG_STDIO_OUT_NAME             "/dev/UART1"    //
#define CFG_STDIO_ERR_NAME             "/dev/UART1"    //
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true    //资源充足才打开
#define     CFG_TCP_CCBNUM              10      //占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5       //占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10      //用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000  //
#define     CFG_TPL_PROTONUM            5       //占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true    //
#define     CFG_TELNETC_ENABLE          false   //
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8      //北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10      //占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4       //占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472       //udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000     //8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"      //需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1        //-1表示最后一块起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false      //"分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false      //"分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false      //
#define CFG_W25QXX_BYTES_PAGE               256        //
#define CFG_W25QXX_PAGES_SECTOR             16         //
#define CFG_W25QXX_SECTORS_BLOCK            16         //
#define CFG_W25QXX_SECTORS_NUM              2048       //
#define CFG_W25QXX_CHIP_ID                  0xEF18     //
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           1                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

/*Modified at 2023-12-24 19:44:00*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end


#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG         //  打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10       //  "设备数量",定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512       //  "C库文件用户态缓冲区尺寸"
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8    //  "对象数初始值"，用完会自动扩充
#define CFG_HANDLE_LIMIT        8    //  "句柄数初始值"，用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false        //  "是否支持在线更新Iboot"，
#define CFG_START_APP_IS_VERIFICATION      true        //  "启动app时是否执行校验功能"，
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN      //  "APP运行模式",CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行，
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC    //  "APP校验方法",
#define CFG_IBOOT_VERSION_SMALL       00         //  "Iboot版本号:低",xx.xx.__，APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00         //  "Iboot版本号:中",xx.__.xx，APP忽略
#define CFG_IBOOT_VERSION_LARGE       01         //  "Iboot版本号:高",__.xx.xx，APP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"            //  "待升级iboot默认存储路径"
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"             //  "待升级app默认存储路径"
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40       //  "锁的数量",定义锁的数量，包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10       //  "内存池数量限值",
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000       //  "执行shell命令的栈尺寸",
#define CFG_ADD_ROUTINE_SHELL      true         //  "是否添加常规shell命令",
#define CFG_ADD_EXPAND_SHELL       true         //  "是否添加拓展shell命令",
#define CFG_ADD_GLOBAL_FUN         false        //  "添加全局函数到shell",
#define CFG_SHOW_ADD_SHEELL        true         //  "编译时显示shell命令",
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                 //   "SPI缓冲区大小",
#define CFG_SPI_DMA_BUF_LEN         256                 //   "SPI DMA缓冲区大小",
#define CFG_SPI1_ENABLE             true               //   "是否配置使用SPI1",
#define CFG_SPI2_ENABLE             false               //   "是否配置使用SPI2",
#define CFG_SPI3_ENABLE             false               //   "是否配置使用SPI3",
#define CFG_SPI4_ENABLE             false               //   "是否配置使用SPI4",
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       512       //   "UART1发送环形缓冲区大小",
#define CFG_UART1_RECVBUF_LEN       512       //   "UART1接收环形缓冲区大小",
#define CFG_UART1_DMABUF_LEN        512       //   "UART1 DMA环形缓冲区大小",
#define CFG_UART2_SENDBUF_LEN       512       //   "UART2发送环形缓冲区大小",
#define CFG_UART2_RECVBUF_LEN       512       //   "UART2接收环形缓冲区大小",
#define CFG_UART2_DMABUF_LEN        512       //   "UART2 DMA环形缓冲区大小",
#define CFG_UART3_SENDBUF_LEN       512       //   "UART3发送环形缓冲区大小",
#define CFG_UART3_RECVBUF_LEN       512       //   "UART3接收环形缓冲区大小",
#define CFG_UART3_DMABUF_LEN        512       //   "UART3 DMA环形缓冲区大小",
#define CFG_UART4_SENDBUF_LEN       32       //   "UART4发送环形缓冲区大小",
#define CFG_UART4_RECVBUF_LEN       32       //   "UART4接收环形缓冲区大小",
#define CFG_UART4_DMABUF_LEN        32       //   "UART4 DMA环形缓冲区大小",
#define CFG_UART5_SENDBUF_LEN       32       //   "UART5发送环形缓冲区大小",
#define CFG_UART5_RECVBUF_LEN       32       //   "UART5接收环形缓冲区大小",
#define CFG_UART5_DMABUF_LEN        32       //   "UART5 DMA环形缓冲区大小",
#define CFG_UART6_SENDBUF_LEN       32       //   "UART6发送环形缓冲区大小",
#define CFG_UART6_RECVBUF_LEN       32       //   "UART6接收环形缓冲区大小",
#define CFG_UART6_DMABUF_LEN        32       //   "UART6 DMA环形缓冲区大小",
#define CFG_UART7_SENDBUF_LEN       32       //   "UART7发送环形缓冲区大小",
#define CFG_UART7_RECVBUF_LEN       32       //   "UART7接收环形缓冲区大小",
#define CFG_UART7_DMABUF_LEN        32       //   "UART7 DMA环形缓冲区大小",
#define CFG_UART8_SENDBUF_LEN       32       //   "UART8发送环形缓冲区大小",
#define CFG_UART8_RECVBUF_LEN       32       //   "UART8接收环形缓冲区大小",
#define CFG_UART8_DMABUF_LEN        32       //   "UART8 DMA环形缓冲区大小",
#define CFG_UART1_ENABLE           true         //   "是否使用UART1",
#define CFG_UART2_ENABLE           false        //   "是否使用UART2",
#define CFG_UART3_ENABLE           false        //   "是否使用UART3",
#define CFG_UART4_ENABLE           false        //   "是否使用UART4",
#define CFG_UART5_ENABLE           false        //   "是否使用UART5",
#define CFG_UART6_ENABLE           false        //   "是否使用UART6",
#define CFG_UART7_ENABLE           false        //   "是否使用UART7",
#define CFG_UART8_ENABLE           false        //   "是否使用UART8",
#define CFG_UART1_TX_DMA_CHANNEL       DMA_NONUSE    //   串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA_NONUSE    //   串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA_NONUSE    //   串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA_NONUSE    //   串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA_NONUSE    //   串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA_NONUSE    //   串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE    //   串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE    //   串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE    //   串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE    //   串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE    //   串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE    //   串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE    //   串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE    //   串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE    //   串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE    //   串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250      //   这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false       //  分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512          //  "片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4            //  "片内flash的扇区中有多少页"
#define CFG_EFLASH_BLOCK_SECT_NUM           32           //  "片内flash的块中有多少扇区"
#define CFG_EFLASH_PLANE1_SECT_NUM          256          //  "片1一共有多少扇区"
#define CFG_EFLASH_PLANE2_SECT_NUM          256          //  "片2一共有多少扇区"
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8            //  "片1一共有多少块"
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8            //  "片2一共有多少块"
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0           //  分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4          //  分区结束，-1表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false       //  分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"     //  需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true   //  "全功能动态分配",即使选false，也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096     //  "初始化栈空间",定义初始化过程使用的栈空间，一般按默认值就可以了
#define CFG_EVENT_LIMIT         22       //  "事件数量限值",事件数量
#define CFG_EVENT_TYPE_LIMIT    22       //  "事件类型数限值",事件类型数
#define CFG_IDLESTACK_LIMIT     1024     //  "IDLE事件栈尺寸",IDLE事件处理函数运行的栈尺寸，一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30       //  "IDLE监视周期",监视IDLE事件持续低于1/16 CPU占比的时间，秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960     //  "main函数栈尺寸",main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false    //  "IDLE监视狗叫复位使能"，IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false    //  "tiny版内核",true=用于资源紧缺的场合，内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false    //  "IDLE检查栈",在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"         //  "本地字符集",
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5        //  "定时器数量",可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true     //  "硬件定时器提供时钟源",选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000   //  "数据包缓冲区尺寸"
#define     CFG_TPL_PROTONUM            5        //  "支持的传输协议数"，占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true     //  "TCP乱序重组使能",资源充足才打开
#define     CFG_TCP_CCBNUM              10       //  "tcp 客户端数限值"，占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5        //  "tcp 服务器数限值"，占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10       //  "tcp socket hashtable长度"，用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true    //  "ftp 服务器使能"
#define     CFG_FTPC_ENABLE            true     //  "ftp 客户端使能"
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true     //  "telnet 服务器使能"
#define     CFG_TELNETC_ENABLE          false    //  "telnet 客户端使能"
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10       //  "socket数限值"，占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false    //  "DHCP 服务器使能"
#define     CFG_DHCPC_ENABLE            true     //  "DHCP 客户端使能"
#define     CFG_DHCP_RENEWTIME          3600     //  "renew timer",秒数
#define     CFG_DHCP_REBINDTIME         3600     //  "rebind timer",秒数
#define     CFG_DHCP_LEASETIME          3600     //  "lease timer",秒数
#define     CFG_DHCPD_IPNUM             0x40     //  "IP池尺寸",64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"     //  "DHCP起始IP",
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"   //  "DHCP SERVER IP"
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"   //  "DHCP ROUTER SERVER IP"
#define     CFG_DHCPD_NETIP             "255.255.255.0"   //  "DHCP MASK IP"
#define     CFG_DHCPD_DNS               "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DOMAINNAME       "domain"         //  "DHCP domain name"
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32       //  "ARP哈希表长度"，占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10       //  "UDP socket数限值"，占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4        //  "udp socket 哈希表长度"，占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472        //  udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000      //  8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"    //   "网卡名称",
#define CFG_ETH_LOOP_CYCLE      1000          //   "网卡轮询周期(uS)",中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true             //   "网卡接收是否轮询",
#define CFG_ETH_HARD_MAC_ADDR   true             //   "硬件生成Mac地址",
#define CFG_ETH_MAC_ADDR0      00            //   "MAC ADDR0",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02            //   "MAC ADDR1",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03            //   "MAC ADDR2",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04            //   "MAC ADDR3",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05            //   "MAC ADDR4",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06            //   "MAC ADDR5",若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false       //  "分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false       //  "是否使用QSPI模式"
#define CFG_W25QXX_BYTES_PAGE               256         //  "每页的字节数"
#define CFG_W25QXX_PAGES_SECTOR             16          //  "每个扇区有多少页"
#define CFG_W25QXX_SECTORS_BLOCK            16          //  "每个块有多少扇区"
#define CFG_W25QXX_SECTORS_NUM              2048        //  "总的扇区数"
#define CFG_W25QXX_CHIP_ID                  0xEF18      //  "芯片ID"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"       //  "文件系统mount点名字",需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1         //  "分区结束"，-1表示最后一块,起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false       //  "分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8       //  "时区",北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure ntp  ******************************************//
#define    CFG_MODULE_ENABLE_NTP           true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true          //  "是否支持多种输入设备",
#define CFG_STDIO_STDOUT_FOLLOW    true          //  "stdout是否跟随stdin",
#define CFG_STDIO_STDERR_FOLLOW    true          //  "stderr是否跟随stdin",
#define CFG_STDIO_FLOAT_PRINT      true          //  "支持浮点打印"
#define CFG_STDIO_STDIOFILE        true          //  "支持标准IO文件"
#define CFG_STDIO_IN_NAME              "/dev/UART1"     //  "标准输入设备名",
#define CFG_STDIO_OUT_NAME             "/dev/UART1"     //  "标准输出设备名",
#define CFG_STDIO_ERR_NAME             "/dev/UART1"     //  "标准err输出设备名",
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false             //   "使用静态IP?",
#define CFG_SELECT_NETCARD  "AT32F437_ETH"    //   "网卡名称",必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100"  //   "静态IP",
#define CFG_MY_SUBMASK      "255.255.255.0"  //   "子网掩码",
#define CFG_MY_GATWAY       "192.168.8.1"    //   "网关",
#define CFG_MY_DNS          "192.168.8.1"    //   "首选DNS",
#define CFG_MY_DNSBAK       "192.168.8.1"    //   "备用DNS",
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure modbus  ******************************************//
#define CFG_MB_ASCII_TIMEOUT_SEC                    100        //  "从机用ASCII时，通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define CFG_MB_FUNC_HANDLERS_MAX                    16       //  "协议栈应该支持的Modbus功能码的最大数量"
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF           32       //  "从机ID数据长度",这个数字限制了从机ID数据的最大大小。
#define CFG_MB_MASTER_DELAY_MS_CONVERT              200      //  "等待延迟时间",主站发送一个广播帧后，主站等待延迟时间，时间到后才主站才可以发送其他帧
#define CFG_MB_MASTER_TIMEOUT_MS_RESPOND            500      //  "从机响应超时时间"
#define CFG_MB_MASTER_TOTAL_SLAVE_NUM               1       //  "从机总数"
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED       true     //   "是否启用请求从机ID功能"
#define CFG_MB_FUNC_READ_INPUT_ENABLED              true     //   "是否启用读输入寄存器功能"
#define CFG_MB_FUNC_READ_HOLDING_ENABLED            true     //   "是否启用读保持寄存器功能"
#define CFG_MB_FUNC_WRITE_HOLDING_ENABLED           true     //   "是否启用写单个寄存器功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true     //   "是否启用写多个寄存器功能"
#define CFG_MB_FUNC_READ_COILS_ENABLED              true     //   "是否启用读线圈功能"
#define CFG_MB_FUNC_WRITE_COIL_ENABLED              true     //   "是否启用写线圈功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED    true     //   "是否启用写多个线圈功能"
#define CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED    true     //   "是否启用读离散输入功能"
#define CFG_MB_FUNC_READWRITE_HOLDING_ENABLED       true     //   "是否启用读写多个寄存器功能"
#define CFG_MB_MASTER_ENABLED                       true     //   "主机使能开关"
    #define CFG_MB_MASTER_RTU_ENABLED                   true     //   "主机RTU使能开关"
    #define CFG_MB_M_DISCRETE_INPUT_START               1         //  "主机离散量输入的起始地址"
    #define CFG_MB_M_DISCRETE_INPUT_NDISCRETES          0        //  "主机离散量输入的数量"
    #define CFG_MB_M_COIL_START                         0        //  "主机线圈的起始地址"
    #define CFG_MB_M_COIL_NCOILS                        0        //  "主机线圈的数量"
    #define CFG_MB_M_REG_INPUT_START                    0        //  "主机输入寄存器的起始地址"
    #define CFG_MB_M_REG_INPUT_NREGS                    0        //  "主机输入寄存器的数量"
    #define CFG_MB_M_REG_HOLDING_START                  0        //  "主机保持寄存器的起始地址"
    #define CFG_MB_M_REG_HOLDING_NREGS                  65000        //  "主机保持寄存器的数量"
    #define CFG_MB_M_PORT_NUM                           2         //  "串口的端口号，例如要用/dev/UART2，就填2"
    #define CFG_MB_M_PORT_BAUDRATE                      38400     //   "串口波特率"
    #define CFG_MB_M_PORT_PARITY                        MB_PAR_NONE     //   "校验方式"
#define CFG_MB_SLAVE_ENABLED                       false     //   "从机使能开关"
    #define CFG_MB_SLAVE_ASCII_ENABLED                  false     //   "从机ASCII使能开关"
    #define CFG_MB_SLAVE_RTU_ENABLED                    false     //   "从机RTU使能开关"
    #define CFG_MB_SLAVE_TCP_ENABLED                    false     //   "从机TCP使能开关"
    #define CFG_MB_S_DISCRETE_INPUT_START               1         //  "从机离散量输入的起始地址"
    #define CFG_MB_S_DISCRETE_INPUT_NDISCRETES          10        //  "从机离散量输入的数量"
    #define CFG_MB_S_COIL_START                         11        //  "从机线圈的起始地址。"
    #define CFG_MB_S_COIL_NCOILS                        10        //  "从机线圈的数量"
    #define CFG_MB_S_REG_INPUT_START                    21        //  "从机输入寄存器的起始地址"
    #define CFG_MB_S_REG_INPUT_NREGS                    10        //  "从机输入寄存器的数量"
    #define CFG_MB_S_REG_HOLDING_START                  31        //  "从机保持寄存器的起始地址"
    #define CFG_MB_S_REG_HOLDING_NREGS                  10        //  "从机保持寄存器的数量"
    #define CFG_MB_S_ADDR                               2         //  "从机地址"
    #define CFG_MB_S_PORT_NUM                           2         //  "串口的端口号，例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
    #define CFG_MB_S_TCP_PORT_NUM                       0         //  "使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
    #define CFG_MB_S_PORT_BAUDRATE                      115200     //   "串口波特率"
    #define CFG_MB_S_PORT_PARITY                        MB_PAR_NONE     //   "校验方式"
    #define CFG_MB_S_TRANSFER_MODE                      MB_RTU_MODE     //   "通信方式"
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           1                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

/*Modified at 2023-12-24 19:48:37*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end


#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32      //占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false      //分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512         //"片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4           //
#define CFG_EFLASH_BLOCK_SECT_NUM           32          //
#define CFG_EFLASH_PLANE1_SECT_NUM          256         //
#define CFG_EFLASH_PLANE2_SECT_NUM          256         //
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8           //
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8           //
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"   //
#define CFG_ETH_LOOP_CYCLE      1000         //中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true            //
#define CFG_ETH_HARD_MAC_ADDR   true            //
#define CFG_ETH_MAC_ADDR0      00           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06           //若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                //
#define CFG_SPI_DMA_BUF_LEN         256                //
#define CFG_SPI1_ENABLE             true              //
#define CFG_SPI2_ENABLE             false              //
#define CFG_SPI3_ENABLE             false              //
#define CFG_SPI4_ENABLE             false              //
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250     //这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       512      //
#define CFG_UART1_RECVBUF_LEN       512      //
#define CFG_UART1_DMABUF_LEN        512      //
#define CFG_UART2_SENDBUF_LEN       512      //
#define CFG_UART2_RECVBUF_LEN       512      //
#define CFG_UART2_DMABUF_LEN        512      //
#define CFG_UART3_SENDBUF_LEN       512      //
#define CFG_UART3_RECVBUF_LEN       512      //
#define CFG_UART3_DMABUF_LEN        512      //
#define CFG_UART4_SENDBUF_LEN       32      //
#define CFG_UART4_RECVBUF_LEN       32      //
#define CFG_UART4_DMABUF_LEN        32      //
#define CFG_UART5_SENDBUF_LEN       32      //
#define CFG_UART5_RECVBUF_LEN       32      //
#define CFG_UART5_DMABUF_LEN        32      //
#define CFG_UART6_SENDBUF_LEN       32      //
#define CFG_UART6_RECVBUF_LEN       32      //
#define CFG_UART6_DMABUF_LEN        32      //
#define CFG_UART7_SENDBUF_LEN       32      //
#define CFG_UART7_RECVBUF_LEN       32      //
#define CFG_UART7_DMABUF_LEN        32      //
#define CFG_UART8_SENDBUF_LEN       32      //
#define CFG_UART8_RECVBUF_LEN       32      //
#define CFG_UART8_DMABUF_LEN        32      //
#define CFG_UART1_ENABLE           true        //
#define CFG_UART2_ENABLE           false       //
#define CFG_UART3_ENABLE           false       //
#define CFG_UART4_ENABLE           false       //
#define CFG_UART5_ENABLE           false       //
#define CFG_UART6_ENABLE           false       //
#define CFG_UART7_ENABLE           false       //
#define CFG_UART8_ENABLE           false       //
#define CFG_UART1_TX_DMA_CHANNEL       DMA_NONUSE   //串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA_NONUSE   //串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA_NONUSE   //串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA_NONUSE   //串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA_NONUSE   //串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA_NONUSE   //串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE   //串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE   //串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE   //串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE   //串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE   //串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE   //串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE   //串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE   //串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE   //串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE   //串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG        //打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10      //定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false   //
#define     CFG_DHCPC_ENABLE            true    //
#define     CFG_DHCP_RENEWTIME          3600    //秒数
#define     CFG_DHCP_REBINDTIME         3600    //秒数
#define     CFG_DHCP_LEASETIME          3600    //秒数
#define     CFG_DHCPD_IPNUM             0x40    //64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"    //
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"  //
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"  //
#define     CFG_DHCPD_NETIP             "255.255.255.0"  //
#define     CFG_DHCPD_DNS               "192.168.0.253"  //
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"  //
#define     CFG_DHCPD_DOMAINNAME       "domain"        //
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0          //分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4         //分区结束，4表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false      //分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"    //需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512      //
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true   //
#define     CFG_FTPC_ENABLE            true    //
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true  //即使选false也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096    //定义初始化过程使用的栈空间一般按默认值就可以了
#define CFG_EVENT_LIMIT         22      //事件数量
#define CFG_EVENT_TYPE_LIMIT    22      //事件类型数
#define CFG_IDLESTACK_LIMIT     1024    //IDLE事件处理函数运行的栈尺寸一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30      //监视IDLE事件持续低于1/16 CPU占比的时间秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960    //main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false   //IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false   //true=用于资源紧缺的场合内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false   //在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8   //用完会自动扩充
#define CFG_HANDLE_LIMIT        8   //用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false       //
#define CFG_START_APP_IS_VERIFICATION      true       //
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN     //CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC   //
#define CFG_IBOOT_VERSION_SMALL       00        //xx.xx.__APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00        //xx.__.xxAPP忽略
#define CFG_IBOOT_VERSION_LARGE       01        //__.xx.xxAPP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"           //
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"            //
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40      //定义锁的数量包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10      //
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure modbus  ******************************************//
#define CFG_MB_ASCII_TIMEOUT_SEC                    100       //"从机用ASCII时，通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define CFG_MB_FUNC_HANDLERS_MAX                    16      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF           32      //这个数字限制了从机ID数据的最大大小。
#define CFG_MB_MASTER_DELAY_MS_CONVERT              200     //主站发送一个广播帧后主站等待延迟时间，时间到后才主站才可以发送其他帧
#define CFG_MB_MASTER_TIMEOUT_MS_RESPOND            500     //
#define CFG_MB_MASTER_TOTAL_SLAVE_NUM               1      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED       true    // "是否启用请求从机ID功能"
#define CFG_MB_FUNC_READ_INPUT_ENABLED              true    // "是否启用读输入寄存器功能"
#define CFG_MB_FUNC_READ_HOLDING_ENABLED            true    // "是否启用读保持寄存器功能"
#define CFG_MB_FUNC_WRITE_HOLDING_ENABLED           true    // "是否启用写单个寄存器功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true    // "是否启用写多个寄存器功能"
#define CFG_MB_FUNC_READ_COILS_ENABLED              true    // "是否启用读线圈功能"
#define CFG_MB_FUNC_WRITE_COIL_ENABLED              true    // "是否启用写线圈功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED    true    // "是否启用写多个线圈功能"
#define CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED    true    // "是否启用读离散输入功能"
#define CFG_MB_FUNC_READWRITE_HOLDING_ENABLED       true    // "是否启用读写多个寄存器功能"
#define CFG_MB_MASTER_ENABLED                       true    // "主机使能开关"
    #define CFG_MB_MASTER_RTU_ENABLED                   true    // "主机RTU使能开关"
    #define CFG_MB_M_DISCRETE_INPUT_START               1        //
    #define CFG_MB_M_DISCRETE_INPUT_NDISCRETES          0       //
    #define CFG_MB_M_COIL_START                         0       //
    #define CFG_MB_M_COIL_NCOILS                        0       //
    #define CFG_MB_M_REG_INPUT_START                    0       //
    #define CFG_MB_M_REG_INPUT_NREGS                    0       //
    #define CFG_MB_M_REG_HOLDING_START                  0       //
    #define CFG_MB_M_REG_HOLDING_NREGS                  65000       //
    #define CFG_MB_M_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"
    #define CFG_MB_M_PORT_BAUDRATE                      38400    // "串口波特率"
    #define CFG_MB_M_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
#define CFG_MB_SLAVE_ENABLED                       false    // "从机使能开关"
    #define CFG_MB_SLAVE_ASCII_ENABLED                  false    // "从机ASCII使能开关"
    #define CFG_MB_SLAVE_RTU_ENABLED                    false    // "从机RTU使能开关"
    #define CFG_MB_SLAVE_TCP_ENABLED                    false    // "从机TCP使能开关"
    #define CFG_MB_S_DISCRETE_INPUT_START               1        //
    #define CFG_MB_S_DISCRETE_INPUT_NDISCRETES          10       //
    #define CFG_MB_S_COIL_START                         11       //
    #define CFG_MB_S_COIL_NCOILS                        10       //
    #define CFG_MB_S_REG_INPUT_START                    21       //
    #define CFG_MB_S_REG_INPUT_NREGS                    10       //
    #define CFG_MB_S_REG_HOLDING_START                  31       //
    #define CFG_MB_S_REG_HOLDING_NREGS                  10       //
    #define CFG_MB_S_ADDR                               2        //
    #define CFG_MB_S_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
    #define CFG_MB_S_TCP_PORT_NUM                       0        //"使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
    #define CFG_MB_S_PORT_BAUDRATE                      115200    // "串口波特率"
    #define CFG_MB_S_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
    #define CFG_MB_S_TRANSFER_MODE                      MB_RTU_MODE    // "通信方式"
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false            //
#define CFG_SELECT_NETCARD  "AT32F437_ETH"   //必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100" //
#define CFG_MY_SUBMASK      "255.255.255.0" //
#define CFG_MY_GATWAY       "192.168.8.1"   //
#define CFG_MY_DNS          "192.168.8.1"   //
#define CFG_MY_DNSBAK       "192.168.8.1"   //
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"        //
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure ntp  ******************************************//
#define    CFG_MODULE_ENABLE_NTP           true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000      //
#define CFG_ADD_ROUTINE_SHELL      true        //
#define CFG_ADD_EXPAND_SHELL       true        //
#define CFG_ADD_GLOBAL_FUN         false       //
#define CFG_SHOW_ADD_SHEELL        true        //
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10      //占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5       //可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true    //选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true         //
#define CFG_STDIO_STDOUT_FOLLOW    true         //
#define CFG_STDIO_STDERR_FOLLOW    true         //
#define CFG_STDIO_FLOAT_PRINT      true         //
#define CFG_STDIO_STDIOFILE        true         //
#define CFG_STDIO_IN_NAME              "/dev/UART1"    //
#define CFG_STDIO_OUT_NAME             "/dev/UART1"    //
#define CFG_STDIO_ERR_NAME             "/dev/UART1"    //
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true    //资源充足才打开
#define     CFG_TCP_CCBNUM              10      //占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5       //占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10      //用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000  //
#define     CFG_TPL_PROTONUM            5       //占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true    //
#define     CFG_TELNETC_ENABLE          false   //
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8      //北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10      //占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4       //占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472       //udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000     //8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"      //需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1        //-1表示最后一块起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false      //"分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false      //"分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false      //
#define CFG_W25QXX_BYTES_PAGE               256        //
#define CFG_W25QXX_PAGES_SECTOR             16         //
#define CFG_W25QXX_SECTORS_BLOCK            16         //
#define CFG_W25QXX_SECTORS_NUM              2048       //
#define CFG_W25QXX_CHIP_ID                  0xEF18     //
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           1                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

/*Modified at 2023-12-24 19:48:41*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end


#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG         //  打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10       //  "设备数量",定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512       //  "C库文件用户态缓冲区尺寸"
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8    //  "对象数初始值"，用完会自动扩充
#define CFG_HANDLE_LIMIT        8    //  "句柄数初始值"，用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false        //  "是否支持在线更新Iboot"，
#define CFG_START_APP_IS_VERIFICATION      true        //  "启动app时是否执行校验功能"，
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN      //  "APP运行模式",CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行，
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC    //  "APP校验方法",
#define CFG_IBOOT_VERSION_SMALL       00         //  "Iboot版本号:低",xx.xx.__，APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00         //  "Iboot版本号:中",xx.__.xx，APP忽略
#define CFG_IBOOT_VERSION_LARGE       01         //  "Iboot版本号:高",__.xx.xx，APP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"            //  "待升级iboot默认存储路径"
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"             //  "待升级app默认存储路径"
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40       //  "锁的数量",定义锁的数量，包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10       //  "内存池数量限值",
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000       //  "执行shell命令的栈尺寸",
#define CFG_ADD_ROUTINE_SHELL      true         //  "是否添加常规shell命令",
#define CFG_ADD_EXPAND_SHELL       true         //  "是否添加拓展shell命令",
#define CFG_ADD_GLOBAL_FUN         false        //  "添加全局函数到shell",
#define CFG_SHOW_ADD_SHEELL        true         //  "编译时显示shell命令",
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                 //   "SPI缓冲区大小",
#define CFG_SPI_DMA_BUF_LEN         256                 //   "SPI DMA缓冲区大小",
#define CFG_SPI1_ENABLE             true               //   "是否配置使用SPI1",
#define CFG_SPI2_ENABLE             false               //   "是否配置使用SPI2",
#define CFG_SPI3_ENABLE             false               //   "是否配置使用SPI3",
#define CFG_SPI4_ENABLE             false               //   "是否配置使用SPI4",
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       512       //   "UART1发送环形缓冲区大小",
#define CFG_UART1_RECVBUF_LEN       512       //   "UART1接收环形缓冲区大小",
#define CFG_UART1_DMABUF_LEN        512       //   "UART1 DMA环形缓冲区大小",
#define CFG_UART2_SENDBUF_LEN       512       //   "UART2发送环形缓冲区大小",
#define CFG_UART2_RECVBUF_LEN       512       //   "UART2接收环形缓冲区大小",
#define CFG_UART2_DMABUF_LEN        512       //   "UART2 DMA环形缓冲区大小",
#define CFG_UART3_SENDBUF_LEN       512       //   "UART3发送环形缓冲区大小",
#define CFG_UART3_RECVBUF_LEN       512       //   "UART3接收环形缓冲区大小",
#define CFG_UART3_DMABUF_LEN        512       //   "UART3 DMA环形缓冲区大小",
#define CFG_UART4_SENDBUF_LEN       32       //   "UART4发送环形缓冲区大小",
#define CFG_UART4_RECVBUF_LEN       32       //   "UART4接收环形缓冲区大小",
#define CFG_UART4_DMABUF_LEN        32       //   "UART4 DMA环形缓冲区大小",
#define CFG_UART5_SENDBUF_LEN       32       //   "UART5发送环形缓冲区大小",
#define CFG_UART5_RECVBUF_LEN       32       //   "UART5接收环形缓冲区大小",
#define CFG_UART5_DMABUF_LEN        32       //   "UART5 DMA环形缓冲区大小",
#define CFG_UART6_SENDBUF_LEN       32       //   "UART6发送环形缓冲区大小",
#define CFG_UART6_RECVBUF_LEN       32       //   "UART6接收环形缓冲区大小",
#define CFG_UART6_DMABUF_LEN        32       //   "UART6 DMA环形缓冲区大小",
#define CFG_UART7_SENDBUF_LEN       32       //   "UART7发送环形缓冲区大小",
#define CFG_UART7_RECVBUF_LEN       32       //   "UART7接收环形缓冲区大小",
#define CFG_UART7_DMABUF_LEN        32       //   "UART7 DMA环形缓冲区大小",
#define CFG_UART8_SENDBUF_LEN       32       //   "UART8发送环形缓冲区大小",
#define CFG_UART8_RECVBUF_LEN       32       //   "UART8接收环形缓冲区大小",
#define CFG_UART8_DMABUF_LEN        32       //   "UART8 DMA环形缓冲区大小",
#define CFG_UART1_ENABLE           true         //   "是否使用UART1",
#define CFG_UART2_ENABLE           false        //   "是否使用UART2",
#define CFG_UART3_ENABLE           false        //   "是否使用UART3",
#define CFG_UART4_ENABLE           false        //   "是否使用UART4",
#define CFG_UART5_ENABLE           false        //   "是否使用UART5",
#define CFG_UART6_ENABLE           false        //   "是否使用UART6",
#define CFG_UART7_ENABLE           false        //   "是否使用UART7",
#define CFG_UART8_ENABLE           false        //   "是否使用UART8",
#define CFG_UART1_TX_DMA_CHANNEL       DMA_NONUSE    //   串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA_NONUSE    //   串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA_NONUSE    //   串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA_NONUSE    //   串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA_NONUSE    //   串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA_NONUSE    //   串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE    //   串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE    //   串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE    //   串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE    //   串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE    //   串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE    //   串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE    //   串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE    //   串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE    //   串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE    //   串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250      //   这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false       //  分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512          //  "片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4            //  "片内flash的扇区中有多少页"
#define CFG_EFLASH_BLOCK_SECT_NUM           32           //  "片内flash的块中有多少扇区"
#define CFG_EFLASH_PLANE1_SECT_NUM          256          //  "片1一共有多少扇区"
#define CFG_EFLASH_PLANE2_SECT_NUM          256          //  "片2一共有多少扇区"
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8            //  "片1一共有多少块"
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8            //  "片2一共有多少块"
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0           //  分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4          //  分区结束，-1表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false       //  分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"     //  需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true   //  "全功能动态分配",即使选false，也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096     //  "初始化栈空间",定义初始化过程使用的栈空间，一般按默认值就可以了
#define CFG_EVENT_LIMIT         22       //  "事件数量限值",事件数量
#define CFG_EVENT_TYPE_LIMIT    22       //  "事件类型数限值",事件类型数
#define CFG_IDLESTACK_LIMIT     1024     //  "IDLE事件栈尺寸",IDLE事件处理函数运行的栈尺寸，一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30       //  "IDLE监视周期",监视IDLE事件持续低于1/16 CPU占比的时间，秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960     //  "main函数栈尺寸",main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false    //  "IDLE监视狗叫复位使能"，IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false    //  "tiny版内核",true=用于资源紧缺的场合，内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false    //  "IDLE检查栈",在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"         //  "本地字符集",
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5        //  "定时器数量",可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true     //  "硬件定时器提供时钟源",选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000   //  "数据包缓冲区尺寸"
#define     CFG_TPL_PROTONUM            5        //  "支持的传输协议数"，占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true     //  "TCP乱序重组使能",资源充足才打开
#define     CFG_TCP_CCBNUM              10       //  "tcp 客户端数限值"，占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5        //  "tcp 服务器数限值"，占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10       //  "tcp socket hashtable长度"，用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true    //  "ftp 服务器使能"
#define     CFG_FTPC_ENABLE            true     //  "ftp 客户端使能"
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true     //  "telnet 服务器使能"
#define     CFG_TELNETC_ENABLE          false    //  "telnet 客户端使能"
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10       //  "socket数限值"，占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false    //  "DHCP 服务器使能"
#define     CFG_DHCPC_ENABLE            true     //  "DHCP 客户端使能"
#define     CFG_DHCP_RENEWTIME          3600     //  "renew timer",秒数
#define     CFG_DHCP_REBINDTIME         3600     //  "rebind timer",秒数
#define     CFG_DHCP_LEASETIME          3600     //  "lease timer",秒数
#define     CFG_DHCPD_IPNUM             0x40     //  "IP池尺寸",64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"     //  "DHCP起始IP",
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"   //  "DHCP SERVER IP"
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"   //  "DHCP ROUTER SERVER IP"
#define     CFG_DHCPD_NETIP             "255.255.255.0"   //  "DHCP MASK IP"
#define     CFG_DHCPD_DNS               "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DOMAINNAME       "domain"         //  "DHCP domain name"
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32       //  "ARP哈希表长度"，占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10       //  "UDP socket数限值"，占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4        //  "udp socket 哈希表长度"，占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472        //  udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000      //  8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"    //   "网卡名称",
#define CFG_ETH_LOOP_CYCLE      1000          //   "网卡轮询周期(uS)",中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true             //   "网卡接收是否轮询",
#define CFG_ETH_HARD_MAC_ADDR   true             //   "硬件生成Mac地址",
#define CFG_ETH_MAC_ADDR0      00            //   "MAC ADDR0",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02            //   "MAC ADDR1",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03            //   "MAC ADDR2",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04            //   "MAC ADDR3",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05            //   "MAC ADDR4",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06            //   "MAC ADDR5",若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false       //  "分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false       //  "是否使用QSPI模式"
#define CFG_W25QXX_BYTES_PAGE               256         //  "每页的字节数"
#define CFG_W25QXX_PAGES_SECTOR             16          //  "每个扇区有多少页"
#define CFG_W25QXX_SECTORS_BLOCK            16          //  "每个块有多少扇区"
#define CFG_W25QXX_SECTORS_NUM              2048        //  "总的扇区数"
#define CFG_W25QXX_CHIP_ID                  0xEF18      //  "芯片ID"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"       //  "文件系统mount点名字",需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1         //  "分区结束"，-1表示最后一块,起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false       //  "分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8       //  "时区",北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true          //  "是否支持多种输入设备",
#define CFG_STDIO_STDOUT_FOLLOW    true          //  "stdout是否跟随stdin",
#define CFG_STDIO_STDERR_FOLLOW    true          //  "stderr是否跟随stdin",
#define CFG_STDIO_FLOAT_PRINT      true          //  "支持浮点打印"
#define CFG_STDIO_STDIOFILE        true          //  "支持标准IO文件"
#define CFG_STDIO_IN_NAME              "/dev/UART1"     //  "标准输入设备名",
#define CFG_STDIO_OUT_NAME             "/dev/UART1"     //  "标准输出设备名",
#define CFG_STDIO_ERR_NAME             "/dev/UART1"     //  "标准err输出设备名",
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false             //   "使用静态IP?",
#define CFG_SELECT_NETCARD  "AT32F437_ETH"    //   "网卡名称",必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100"  //   "静态IP",
#define CFG_MY_SUBMASK      "255.255.255.0"  //   "子网掩码",
#define CFG_MY_GATWAY       "192.168.8.1"    //   "网关",
#define CFG_MY_DNS          "192.168.8.1"    //   "首选DNS",
#define CFG_MY_DNSBAK       "192.168.8.1"    //   "备用DNS",
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure modbus  ******************************************//
#define CFG_MB_ASCII_TIMEOUT_SEC                    100        //  "从机用ASCII时，通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define CFG_MB_FUNC_HANDLERS_MAX                    16       //  "协议栈应该支持的Modbus功能码的最大数量"
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF           32       //  "从机ID数据长度",这个数字限制了从机ID数据的最大大小。
#define CFG_MB_MASTER_DELAY_MS_CONVERT              200      //  "等待延迟时间",主站发送一个广播帧后，主站等待延迟时间，时间到后才主站才可以发送其他帧
#define CFG_MB_MASTER_TIMEOUT_MS_RESPOND            500      //  "从机响应超时时间"
#define CFG_MB_MASTER_TOTAL_SLAVE_NUM               1       //  "从机总数"
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED       true     //   "是否启用请求从机ID功能"
#define CFG_MB_FUNC_READ_INPUT_ENABLED              true     //   "是否启用读输入寄存器功能"
#define CFG_MB_FUNC_READ_HOLDING_ENABLED            true     //   "是否启用读保持寄存器功能"
#define CFG_MB_FUNC_WRITE_HOLDING_ENABLED           true     //   "是否启用写单个寄存器功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true     //   "是否启用写多个寄存器功能"
#define CFG_MB_FUNC_READ_COILS_ENABLED              true     //   "是否启用读线圈功能"
#define CFG_MB_FUNC_WRITE_COIL_ENABLED              true     //   "是否启用写线圈功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED    true     //   "是否启用写多个线圈功能"
#define CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED    true     //   "是否启用读离散输入功能"
#define CFG_MB_FUNC_READWRITE_HOLDING_ENABLED       true     //   "是否启用读写多个寄存器功能"
#define CFG_MB_MASTER_ENABLED                       true     //   "主机使能开关"
    #define CFG_MB_MASTER_RTU_ENABLED                   true     //   "主机RTU使能开关"
    #define CFG_MB_M_DISCRETE_INPUT_START               1         //  "主机离散量输入的起始地址"
    #define CFG_MB_M_DISCRETE_INPUT_NDISCRETES          0        //  "主机离散量输入的数量"
    #define CFG_MB_M_COIL_START                         0        //  "主机线圈的起始地址"
    #define CFG_MB_M_COIL_NCOILS                        0        //  "主机线圈的数量"
    #define CFG_MB_M_REG_INPUT_START                    0        //  "主机输入寄存器的起始地址"
    #define CFG_MB_M_REG_INPUT_NREGS                    0        //  "主机输入寄存器的数量"
    #define CFG_MB_M_REG_HOLDING_START                  0        //  "主机保持寄存器的起始地址"
    #define CFG_MB_M_REG_HOLDING_NREGS                  65000        //  "主机保持寄存器的数量"
    #define CFG_MB_M_PORT_NUM                           2         //  "串口的端口号，例如要用/dev/UART2，就填2"
    #define CFG_MB_M_PORT_BAUDRATE                      38400     //   "串口波特率"
    #define CFG_MB_M_PORT_PARITY                        MB_PAR_NONE     //   "校验方式"
#define CFG_MB_SLAVE_ENABLED                       false     //   "从机使能开关"
    #define CFG_MB_SLAVE_ASCII_ENABLED                  false     //   "从机ASCII使能开关"
    #define CFG_MB_SLAVE_RTU_ENABLED                    false     //   "从机RTU使能开关"
    #define CFG_MB_SLAVE_TCP_ENABLED                    false     //   "从机TCP使能开关"
    #define CFG_MB_S_DISCRETE_INPUT_START               1         //  "从机离散量输入的起始地址"
    #define CFG_MB_S_DISCRETE_INPUT_NDISCRETES          10        //  "从机离散量输入的数量"
    #define CFG_MB_S_COIL_START                         11        //  "从机线圈的起始地址。"
    #define CFG_MB_S_COIL_NCOILS                        10        //  "从机线圈的数量"
    #define CFG_MB_S_REG_INPUT_START                    21        //  "从机输入寄存器的起始地址"
    #define CFG_MB_S_REG_INPUT_NREGS                    10        //  "从机输入寄存器的数量"
    #define CFG_MB_S_REG_HOLDING_START                  31        //  "从机保持寄存器的起始地址"
    #define CFG_MB_S_REG_HOLDING_NREGS                  10        //  "从机保持寄存器的数量"
    #define CFG_MB_S_ADDR                               2         //  "从机地址"
    #define CFG_MB_S_PORT_NUM                           2         //  "串口的端口号，例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
    #define CFG_MB_S_TCP_PORT_NUM                       0         //  "使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
    #define CFG_MB_S_PORT_BAUDRATE                      115200     //   "串口波特率"
    #define CFG_MB_S_PORT_PARITY                        MB_PAR_NONE     //   "校验方式"
    #define CFG_MB_S_TRANSFER_MODE                      MB_RTU_MODE     //   "通信方式"
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           1                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

/*Modified at 2023-12-24 19:55:39*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end


#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32      //占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false      //分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512         //"片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4           //
#define CFG_EFLASH_BLOCK_SECT_NUM           32          //
#define CFG_EFLASH_PLANE1_SECT_NUM          256         //
#define CFG_EFLASH_PLANE2_SECT_NUM          256         //
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8           //
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8           //
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"   //
#define CFG_ETH_LOOP_CYCLE      1000         //中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true            //
#define CFG_ETH_HARD_MAC_ADDR   true            //
#define CFG_ETH_MAC_ADDR0      00           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06           //若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                //
#define CFG_SPI_DMA_BUF_LEN         256                //
#define CFG_SPI1_ENABLE             true              //
#define CFG_SPI2_ENABLE             false              //
#define CFG_SPI3_ENABLE             false              //
#define CFG_SPI4_ENABLE             false              //
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250     //这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       512      //
#define CFG_UART1_RECVBUF_LEN       512      //
#define CFG_UART1_DMABUF_LEN        512      //
#define CFG_UART2_SENDBUF_LEN       512      //
#define CFG_UART2_RECVBUF_LEN       512      //
#define CFG_UART2_DMABUF_LEN        512      //
#define CFG_UART3_SENDBUF_LEN       512      //
#define CFG_UART3_RECVBUF_LEN       512      //
#define CFG_UART3_DMABUF_LEN        512      //
#define CFG_UART4_SENDBUF_LEN       32      //
#define CFG_UART4_RECVBUF_LEN       32      //
#define CFG_UART4_DMABUF_LEN        32      //
#define CFG_UART5_SENDBUF_LEN       32      //
#define CFG_UART5_RECVBUF_LEN       32      //
#define CFG_UART5_DMABUF_LEN        32      //
#define CFG_UART6_SENDBUF_LEN       32      //
#define CFG_UART6_RECVBUF_LEN       32      //
#define CFG_UART6_DMABUF_LEN        32      //
#define CFG_UART7_SENDBUF_LEN       32      //
#define CFG_UART7_RECVBUF_LEN       32      //
#define CFG_UART7_DMABUF_LEN        32      //
#define CFG_UART8_SENDBUF_LEN       32      //
#define CFG_UART8_RECVBUF_LEN       32      //
#define CFG_UART8_DMABUF_LEN        32      //
#define CFG_UART1_ENABLE           true        //
#define CFG_UART2_ENABLE           false       //
#define CFG_UART3_ENABLE           false       //
#define CFG_UART4_ENABLE           false       //
#define CFG_UART5_ENABLE           false       //
#define CFG_UART6_ENABLE           false       //
#define CFG_UART7_ENABLE           false       //
#define CFG_UART8_ENABLE           false       //
#define CFG_UART1_TX_DMA_CHANNEL       DMA_NONUSE   //串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA_NONUSE   //串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA_NONUSE   //串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA_NONUSE   //串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA_NONUSE   //串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA_NONUSE   //串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE   //串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE   //串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE   //串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE   //串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE   //串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE   //串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE   //串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE   //串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE   //串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE   //串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG        //打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10      //定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false   //
#define     CFG_DHCPC_ENABLE            true    //
#define     CFG_DHCP_RENEWTIME          3600    //秒数
#define     CFG_DHCP_REBINDTIME         3600    //秒数
#define     CFG_DHCP_LEASETIME          3600    //秒数
#define     CFG_DHCPD_IPNUM             0x40    //64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"    //
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"  //
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"  //
#define     CFG_DHCPD_NETIP             "255.255.255.0"  //
#define     CFG_DHCPD_DNS               "192.168.0.253"  //
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"  //
#define     CFG_DHCPD_DOMAINNAME       "domain"        //
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0          //分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4         //分区结束，4表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false      //分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"    //需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512      //
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true   //
#define     CFG_FTPC_ENABLE            true    //
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true  //即使选false也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096    //定义初始化过程使用的栈空间一般按默认值就可以了
#define CFG_EVENT_LIMIT         22      //事件数量
#define CFG_EVENT_TYPE_LIMIT    22      //事件类型数
#define CFG_IDLESTACK_LIMIT     1024    //IDLE事件处理函数运行的栈尺寸一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30      //监视IDLE事件持续低于1/16 CPU占比的时间秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960    //main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false   //IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false   //true=用于资源紧缺的场合内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false   //在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8   //用完会自动扩充
#define CFG_HANDLE_LIMIT        8   //用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false       //
#define CFG_START_APP_IS_VERIFICATION      true       //
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN     //CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC   //
#define CFG_IBOOT_VERSION_SMALL       00        //xx.xx.__APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00        //xx.__.xxAPP忽略
#define CFG_IBOOT_VERSION_LARGE       01        //__.xx.xxAPP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"           //
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"            //
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40      //定义锁的数量包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10      //
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure modbus  ******************************************//
#define CFG_MB_ASCII_TIMEOUT_SEC                    100       //"从机用ASCII时，通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define CFG_MB_FUNC_HANDLERS_MAX                    16      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF           32      //这个数字限制了从机ID数据的最大大小。
#define CFG_MB_MASTER_DELAY_MS_CONVERT              200     //主站发送一个广播帧后主站等待延迟时间，时间到后才主站才可以发送其他帧
#define CFG_MB_MASTER_TIMEOUT_MS_RESPOND            500     //
#define CFG_MB_MASTER_TOTAL_SLAVE_NUM               1      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED       true    // "是否启用请求从机ID功能"
#define CFG_MB_FUNC_READ_INPUT_ENABLED              true    // "是否启用读输入寄存器功能"
#define CFG_MB_FUNC_READ_HOLDING_ENABLED            true    // "是否启用读保持寄存器功能"
#define CFG_MB_FUNC_WRITE_HOLDING_ENABLED           true    // "是否启用写单个寄存器功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true    // "是否启用写多个寄存器功能"
#define CFG_MB_FUNC_READ_COILS_ENABLED              true    // "是否启用读线圈功能"
#define CFG_MB_FUNC_WRITE_COIL_ENABLED              true    // "是否启用写线圈功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED    true    // "是否启用写多个线圈功能"
#define CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED    true    // "是否启用读离散输入功能"
#define CFG_MB_FUNC_READWRITE_HOLDING_ENABLED       true    // "是否启用读写多个寄存器功能"
#define CFG_MB_MASTER_ENABLED                       true    // "主机使能开关"
    #define CFG_MB_MASTER_RTU_ENABLED                   true    // "主机RTU使能开关"
    #define CFG_MB_M_DISCRETE_INPUT_START               1        //
    #define CFG_MB_M_DISCRETE_INPUT_NDISCRETES          0       //
    #define CFG_MB_M_COIL_START                         0       //
    #define CFG_MB_M_COIL_NCOILS                        0       //
    #define CFG_MB_M_REG_INPUT_START                    0       //
    #define CFG_MB_M_REG_INPUT_NREGS                    0       //
    #define CFG_MB_M_REG_HOLDING_START                  0       //
    #define CFG_MB_M_REG_HOLDING_NREGS                  65000       //
    #define CFG_MB_M_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"
    #define CFG_MB_M_PORT_BAUDRATE                      38400    // "串口波特率"
    #define CFG_MB_M_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
#define CFG_MB_SLAVE_ENABLED                       false    // "从机使能开关"
    #define CFG_MB_SLAVE_ASCII_ENABLED                  false    // "从机ASCII使能开关"
    #define CFG_MB_SLAVE_RTU_ENABLED                    false    // "从机RTU使能开关"
    #define CFG_MB_SLAVE_TCP_ENABLED                    false    // "从机TCP使能开关"
    #define CFG_MB_S_DISCRETE_INPUT_START               1        //
    #define CFG_MB_S_DISCRETE_INPUT_NDISCRETES          10       //
    #define CFG_MB_S_COIL_START                         11       //
    #define CFG_MB_S_COIL_NCOILS                        10       //
    #define CFG_MB_S_REG_INPUT_START                    21       //
    #define CFG_MB_S_REG_INPUT_NREGS                    10       //
    #define CFG_MB_S_REG_HOLDING_START                  31       //
    #define CFG_MB_S_REG_HOLDING_NREGS                  10       //
    #define CFG_MB_S_ADDR                               2        //
    #define CFG_MB_S_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
    #define CFG_MB_S_TCP_PORT_NUM                       0        //"使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
    #define CFG_MB_S_PORT_BAUDRATE                      115200    // "串口波特率"
    #define CFG_MB_S_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
    #define CFG_MB_S_TRANSFER_MODE                      MB_RTU_MODE    // "通信方式"
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false            //
#define CFG_SELECT_NETCARD  "AT32F437_ETH"   //必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100" //
#define CFG_MY_SUBMASK      "255.255.255.0" //
#define CFG_MY_GATWAY       "192.168.8.1"   //
#define CFG_MY_DNS          "192.168.8.1"   //
#define CFG_MY_DNSBAK       "192.168.8.1"   //
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"        //
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000      //
#define CFG_ADD_ROUTINE_SHELL      true        //
#define CFG_ADD_EXPAND_SHELL       true        //
#define CFG_ADD_GLOBAL_FUN         false       //
#define CFG_SHOW_ADD_SHEELL        true        //
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10      //占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5       //可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true    //选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true         //
#define CFG_STDIO_STDOUT_FOLLOW    true         //
#define CFG_STDIO_STDERR_FOLLOW    true         //
#define CFG_STDIO_FLOAT_PRINT      true         //
#define CFG_STDIO_STDIOFILE        true         //
#define CFG_STDIO_IN_NAME              "/dev/UART1"    //
#define CFG_STDIO_OUT_NAME             "/dev/UART1"    //
#define CFG_STDIO_ERR_NAME             "/dev/UART1"    //
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true    //资源充足才打开
#define     CFG_TCP_CCBNUM              10      //占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5       //占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10      //用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000  //
#define     CFG_TPL_PROTONUM            5       //占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true    //
#define     CFG_TELNETC_ENABLE          false   //
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8      //北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10      //占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4       //占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472       //udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000     //8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"      //需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1        //-1表示最后一块起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false      //"分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false      //"分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false      //
#define CFG_W25QXX_BYTES_PAGE               256        //
#define CFG_W25QXX_PAGES_SECTOR             16         //
#define CFG_W25QXX_SECTORS_BLOCK            16         //
#define CFG_W25QXX_SECTORS_NUM              2048       //
#define CFG_W25QXX_CHIP_ID                  0xEF18     //
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           1                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

/*Modified at 2023-12-24 19:55:43*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end


#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG         //  打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10       //  "设备数量",定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512       //  "C库文件用户态缓冲区尺寸"
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8    //  "对象数初始值"，用完会自动扩充
#define CFG_HANDLE_LIMIT        8    //  "句柄数初始值"，用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false        //  "是否支持在线更新Iboot"，
#define CFG_START_APP_IS_VERIFICATION      true        //  "启动app时是否执行校验功能"，
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN      //  "APP运行模式",CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行，
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC    //  "APP校验方法",
#define CFG_IBOOT_VERSION_SMALL       00         //  "Iboot版本号:低",xx.xx.__，APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00         //  "Iboot版本号:中",xx.__.xx，APP忽略
#define CFG_IBOOT_VERSION_LARGE       01         //  "Iboot版本号:高",__.xx.xx，APP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"            //  "待升级iboot默认存储路径"
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"             //  "待升级app默认存储路径"
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40       //  "锁的数量",定义锁的数量，包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10       //  "内存池数量限值",
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000       //  "执行shell命令的栈尺寸",
#define CFG_ADD_ROUTINE_SHELL      true         //  "是否添加常规shell命令",
#define CFG_ADD_EXPAND_SHELL       true         //  "是否添加拓展shell命令",
#define CFG_ADD_GLOBAL_FUN         false        //  "添加全局函数到shell",
#define CFG_SHOW_ADD_SHEELL        true         //  "编译时显示shell命令",
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                 //   "SPI缓冲区大小",
#define CFG_SPI_DMA_BUF_LEN         256                 //   "SPI DMA缓冲区大小",
#define CFG_SPI1_ENABLE             true               //   "是否配置使用SPI1",
#define CFG_SPI2_ENABLE             false               //   "是否配置使用SPI2",
#define CFG_SPI3_ENABLE             false               //   "是否配置使用SPI3",
#define CFG_SPI4_ENABLE             false               //   "是否配置使用SPI4",
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define    CFG_UART1_SENDBUF_LEN           512               //
#define    CFG_UART1_RECVBUF_LEN           512               //
#define    CFG_UART1_DMABUF_LEN            512               //
#define    CFG_UART2_SENDBUF_LEN           512               //
#define    CFG_UART2_RECVBUF_LEN           512               //
#define    CFG_UART2_DMABUF_LEN            512               //
#define    CFG_UART3_SENDBUF_LEN           512               //
#define    CFG_UART3_RECVBUF_LEN           512               //
#define    CFG_UART3_DMABUF_LEN            512               //
#define    CFG_UART4_SENDBUF_LEN           32                //
#define    CFG_UART4_RECVBUF_LEN           32                //
#define    CFG_UART4_DMABUF_LEN            32                //
#define    CFG_UART5_SENDBUF_LEN           32                //
#define    CFG_UART5_RECVBUF_LEN           32                //
#define    CFG_UART5_DMABUF_LEN            32                //
#define    CFG_UART6_SENDBUF_LEN           32                //
#define    CFG_UART6_RECVBUF_LEN           32                //
#define    CFG_UART6_DMABUF_LEN            32                //
#define    CFG_UART7_SENDBUF_LEN           32                //
#define    CFG_UART7_RECVBUF_LEN           32                //
#define    CFG_UART7_DMABUF_LEN            32                //
#define    CFG_UART8_SENDBUF_LEN           32                //
#define    CFG_UART8_RECVBUF_LEN           32                //
#define    CFG_UART8_DMABUF_LEN            32                //
#define    CFG_UART1_ENABLE                true              //
#define    CFG_UART2_ENABLE                true              //
#define    CFG_UART3_ENABLE                true              //
#define    CFG_UART4_ENABLE                false             //
#define    CFG_UART5_ENABLE                false             //
#define    CFG_UART6_ENABLE                false             //
#define    CFG_UART7_ENABLE                false             //
#define    CFG_UART8_ENABLE                false             //
#define    CFG_UART1_TX_DMA_CHANNEL        DMA1_C1           //   串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART1_RX_DMA_CHANNEL        DMA1_C2           //   串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART2_TX_DMA_CHANNEL        DMA1_C3           //   串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART2_RX_DMA_CHANNEL        DMA1_C4           //   串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART3_TX_DMA_CHANNEL        DMA1_C5           //   串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART3_RX_DMA_CHANNEL        DMA1_C6           //   串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART4_TX_DMA_CHANNEL        DMA_NONUSE        //   串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART4_RX_DMA_CHANNEL        DMA_NONUSE        //   串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART5_TX_DMA_CHANNEL        DMA_NONUSE        //   串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART5_RX_DMA_CHANNEL        DMA_NONUSE        //   串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART6_TX_DMA_CHANNEL        DMA_NONUSE        //   串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART6_RX_DMA_CHANNEL        DMA_NONUSE        //   串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART7_TX_DMA_CHANNEL        DMA_NONUSE        //   串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART7_RX_DMA_CHANNEL        DMA_NONUSE        //   串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART8_TX_DMA_CHANNEL        DMA_NONUSE        //   串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART8_RX_DMA_CHANNEL        DMA_NONUSE        //   串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250      //   这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false       //  分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512          //  "片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4            //  "片内flash的扇区中有多少页"
#define CFG_EFLASH_BLOCK_SECT_NUM           32           //  "片内flash的块中有多少扇区"
#define CFG_EFLASH_PLANE1_SECT_NUM          256          //  "片1一共有多少扇区"
#define CFG_EFLASH_PLANE2_SECT_NUM          256          //  "片2一共有多少扇区"
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8            //  "片1一共有多少块"
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8            //  "片2一共有多少块"
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0           //  分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4          //  分区结束，-1表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false       //  分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"     //  需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true   //  "全功能动态分配",即使选false，也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096     //  "初始化栈空间",定义初始化过程使用的栈空间，一般按默认值就可以了
#define CFG_EVENT_LIMIT         22       //  "事件数量限值",事件数量
#define CFG_EVENT_TYPE_LIMIT    22       //  "事件类型数限值",事件类型数
#define CFG_IDLESTACK_LIMIT     1024     //  "IDLE事件栈尺寸",IDLE事件处理函数运行的栈尺寸，一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30       //  "IDLE监视周期",监视IDLE事件持续低于1/16 CPU占比的时间，秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960     //  "main函数栈尺寸",main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false    //  "IDLE监视狗叫复位使能"，IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false    //  "tiny版内核",true=用于资源紧缺的场合，内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false    //  "IDLE检查栈",在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"         //  "本地字符集",
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5        //  "定时器数量",可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true     //  "硬件定时器提供时钟源",选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000   //  "数据包缓冲区尺寸"
#define     CFG_TPL_PROTONUM            5        //  "支持的传输协议数"，占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true     //  "TCP乱序重组使能",资源充足才打开
#define     CFG_TCP_CCBNUM              10       //  "tcp 客户端数限值"，占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5        //  "tcp 服务器数限值"，占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10       //  "tcp socket hashtable长度"，用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true    //  "ftp 服务器使能"
#define     CFG_FTPC_ENABLE            true     //  "ftp 客户端使能"
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true     //  "telnet 服务器使能"
#define     CFG_TELNETC_ENABLE          false    //  "telnet 客户端使能"
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10       //  "socket数限值"，占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false    //  "DHCP 服务器使能"
#define     CFG_DHCPC_ENABLE            true     //  "DHCP 客户端使能"
#define     CFG_DHCP_RENEWTIME          3600     //  "renew timer",秒数
#define     CFG_DHCP_REBINDTIME         3600     //  "rebind timer",秒数
#define     CFG_DHCP_LEASETIME          3600     //  "lease timer",秒数
#define     CFG_DHCPD_IPNUM             0x40     //  "IP池尺寸",64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"     //  "DHCP起始IP",
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"   //  "DHCP SERVER IP"
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"   //  "DHCP ROUTER SERVER IP"
#define     CFG_DHCPD_NETIP             "255.255.255.0"   //  "DHCP MASK IP"
#define     CFG_DHCPD_DNS               "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DOMAINNAME       "domain"         //  "DHCP domain name"
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32       //  "ARP哈希表长度"，占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10       //  "UDP socket数限值"，占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4        //  "udp socket 哈希表长度"，占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472        //  udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000      //  8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"    //   "网卡名称",
#define CFG_ETH_LOOP_CYCLE      1000          //   "网卡轮询周期(uS)",中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true             //   "网卡接收是否轮询",
#define CFG_ETH_HARD_MAC_ADDR   true             //   "硬件生成Mac地址",
#define CFG_ETH_MAC_ADDR0      00            //   "MAC ADDR0",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02            //   "MAC ADDR1",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03            //   "MAC ADDR2",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04            //   "MAC ADDR3",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05            //   "MAC ADDR4",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06            //   "MAC ADDR5",若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false       //  "分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false       //  "是否使用QSPI模式"
#define CFG_W25QXX_BYTES_PAGE               256         //  "每页的字节数"
#define CFG_W25QXX_PAGES_SECTOR             16          //  "每个扇区有多少页"
#define CFG_W25QXX_SECTORS_BLOCK            16          //  "每个块有多少扇区"
#define CFG_W25QXX_SECTORS_NUM              2048        //  "总的扇区数"
#define CFG_W25QXX_CHIP_ID                  0xEF18      //  "芯片ID"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"       //  "文件系统mount点名字",需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1         //  "分区结束"，-1表示最后一块,起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false       //  "分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8       //  "时区",北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true          //  "是否支持多种输入设备",
#define CFG_STDIO_STDOUT_FOLLOW    true          //  "stdout是否跟随stdin",
#define CFG_STDIO_STDERR_FOLLOW    true          //  "stderr是否跟随stdin",
#define CFG_STDIO_FLOAT_PRINT      true          //  "支持浮点打印"
#define CFG_STDIO_STDIOFILE        true          //  "支持标准IO文件"
#define CFG_STDIO_IN_NAME              "/dev/UART1"     //  "标准输入设备名",
#define CFG_STDIO_OUT_NAME             "/dev/UART1"     //  "标准输出设备名",
#define CFG_STDIO_ERR_NAME             "/dev/UART1"     //  "标准err输出设备名",
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false             //   "使用静态IP?",
#define CFG_SELECT_NETCARD  "AT32F437_ETH"    //   "网卡名称",必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100"  //   "静态IP",
#define CFG_MY_SUBMASK      "255.255.255.0"  //   "子网掩码",
#define CFG_MY_GATWAY       "192.168.8.1"    //   "网关",
#define CFG_MY_DNS          "192.168.8.1"    //   "首选DNS",
#define CFG_MY_DNSBAK       "192.168.8.1"    //   "备用DNS",
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure modbus  ******************************************//
#define    CFG_MB_ASCII_TIMEOUT_SEC        100               //"从机用ASCII时，通信的超时时间",通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define    CFG_MB_FUNC_HANDLERS_MAX        16                //  
#define    CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF  32                //这个数字限制了从机ID数据的最大大小。
#define    CFG_MB_MASTER_DELAY_MS_CONVERT  200               //主站发送一个广播帧后主站等待延迟时间，时间到后才主站才可以发送其他帧
#define    CFG_MB_MASTER_TIMEOUT_MS_RESPOND  500               //  
#define    CFG_MB_MASTER_TOTAL_SLAVE_NUM   1                 //  
#define    CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_INPUT_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_HOLDING_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_HOLDING_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_COILS_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_COIL_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED  true              //   
#define    CFG_MB_FUNC_READWRITE_HOLDING_ENABLED  true              //   
#define    CFG_MB_MASTER_ENABLED           true              //   
#define    CFG_MB_MASTER_RTU_ENABLED       true              //   
#define    CFG_MB_M_DISCRETE_INPUT_START   1                 //  
#define    CFG_MB_M_DISCRETE_INPUT_NDISCRETES  0                 //  
#define    CFG_MB_M_COIL_START             0                 //  
#define    CFG_MB_M_COIL_NCOILS            0                 //  
#define    CFG_MB_M_REG_INPUT_START        0                 //  
#define    CFG_MB_M_REG_INPUT_NREGS        0                 //  
#define    CFG_MB_M_REG_HOLDING_START      0                 //  
#define    CFG_MB_M_REG_HOLDING_NREGS      65000             //  
#define    CFG_MB_M_PORT_NUM               2                 //"串口的端口号，例如要用/dev/UART2，就填2",例如要用/dev/UART2，就填2"
#define    CFG_MB_M_PORT_BAUDRATE          9600              //   
#define    CFG_MB_M_PORT_PARITY            MB_PAR_NONE       //   
#define    CFG_MB_SLAVE_ENABLED            false             //   
#define    CFG_MB_SLAVE_ASCII_ENABLED      false             //   
#define    CFG_MB_SLAVE_RTU_ENABLED        false             //   
#define    CFG_MB_SLAVE_TCP_ENABLED        false             //   
#define    CFG_MB_S_DISCRETE_INPUT_START   1                 //  
#define    CFG_MB_S_DISCRETE_INPUT_NDISCRETES  10                //  
#define    CFG_MB_S_COIL_START             11                //  
#define    CFG_MB_S_COIL_NCOILS            10                //  
#define    CFG_MB_S_REG_INPUT_START        21                //  
#define    CFG_MB_S_REG_INPUT_NREGS        10                //  
#define    CFG_MB_S_REG_HOLDING_START      31                //  
#define    CFG_MB_S_REG_HOLDING_NREGS      10                //  
#define    CFG_MB_S_ADDR                   2                 //  
#define    CFG_MB_S_PORT_NUM               2                 //"串口的端口号，例如要用/dev/UART2，就填2",例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
#define    CFG_MB_S_TCP_PORT_NUM           0                 //"使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效",使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
#define    CFG_MB_S_PORT_BAUDRATE          115200            //   
#define    CFG_MB_S_PORT_PARITY            MB_PAR_NONE       //   
#define    CFG_MB_S_TRANSFER_MODE          MB_RTU_MODE       //   
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           1                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

/*Modified at 2023-12-24 19:55:50*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end


#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32      //占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false      //分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512         //"片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4           //
#define CFG_EFLASH_BLOCK_SECT_NUM           32          //
#define CFG_EFLASH_PLANE1_SECT_NUM          256         //
#define CFG_EFLASH_PLANE2_SECT_NUM          256         //
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8           //
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8           //
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"   //
#define CFG_ETH_LOOP_CYCLE      1000         //中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true            //
#define CFG_ETH_HARD_MAC_ADDR   true            //
#define CFG_ETH_MAC_ADDR0      00           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06           //若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                //
#define CFG_SPI_DMA_BUF_LEN         256                //
#define CFG_SPI1_ENABLE             true              //
#define CFG_SPI2_ENABLE             false              //
#define CFG_SPI3_ENABLE             false              //
#define CFG_SPI4_ENABLE             false              //
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250     //这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       512      //
#define CFG_UART1_RECVBUF_LEN       512      //
#define CFG_UART1_DMABUF_LEN        512      //
#define CFG_UART2_SENDBUF_LEN       512      //
#define CFG_UART2_RECVBUF_LEN       512      //
#define CFG_UART2_DMABUF_LEN        512      //
#define CFG_UART3_SENDBUF_LEN       512      //
#define CFG_UART3_RECVBUF_LEN       512      //
#define CFG_UART3_DMABUF_LEN        512      //
#define CFG_UART4_SENDBUF_LEN       32      //
#define CFG_UART4_RECVBUF_LEN       32      //
#define CFG_UART4_DMABUF_LEN        32      //
#define CFG_UART5_SENDBUF_LEN       32      //
#define CFG_UART5_RECVBUF_LEN       32      //
#define CFG_UART5_DMABUF_LEN        32      //
#define CFG_UART6_SENDBUF_LEN       32      //
#define CFG_UART6_RECVBUF_LEN       32      //
#define CFG_UART6_DMABUF_LEN        32      //
#define CFG_UART7_SENDBUF_LEN       32      //
#define CFG_UART7_RECVBUF_LEN       32      //
#define CFG_UART7_DMABUF_LEN        32      //
#define CFG_UART8_SENDBUF_LEN       32      //
#define CFG_UART8_RECVBUF_LEN       32      //
#define CFG_UART8_DMABUF_LEN        32      //
#define CFG_UART1_ENABLE           true        //
#define CFG_UART2_ENABLE           true       //
#define CFG_UART3_ENABLE           true       //
#define CFG_UART4_ENABLE           false       //
#define CFG_UART5_ENABLE           false       //
#define CFG_UART6_ENABLE           false       //
#define CFG_UART7_ENABLE           false       //
#define CFG_UART8_ENABLE           false       //
#define CFG_UART1_TX_DMA_CHANNEL       DMA1_C1   //串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA1_C2   //串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA1_C3   //串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA1_C4   //串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA1_C5   //串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA1_C6   //串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE   //串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE   //串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE   //串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE   //串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE   //串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE   //串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE   //串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE   //串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE   //串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE   //串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG        //打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10      //定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false   //
#define     CFG_DHCPC_ENABLE            true    //
#define     CFG_DHCP_RENEWTIME          3600    //秒数
#define     CFG_DHCP_REBINDTIME         3600    //秒数
#define     CFG_DHCP_LEASETIME          3600    //秒数
#define     CFG_DHCPD_IPNUM             0x40    //64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"    //
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"  //
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"  //
#define     CFG_DHCPD_NETIP             "255.255.255.0"  //
#define     CFG_DHCPD_DNS               "192.168.0.253"  //
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"  //
#define     CFG_DHCPD_DOMAINNAME       "domain"        //
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0          //分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4         //分区结束，4表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false      //分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"    //需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512      //
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true   //
#define     CFG_FTPC_ENABLE            true    //
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true  //即使选false也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096    //定义初始化过程使用的栈空间一般按默认值就可以了
#define CFG_EVENT_LIMIT         22      //事件数量
#define CFG_EVENT_TYPE_LIMIT    22      //事件类型数
#define CFG_IDLESTACK_LIMIT     1024    //IDLE事件处理函数运行的栈尺寸一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30      //监视IDLE事件持续低于1/16 CPU占比的时间秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960    //main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false   //IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false   //true=用于资源紧缺的场合内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false   //在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8   //用完会自动扩充
#define CFG_HANDLE_LIMIT        8   //用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false       //
#define CFG_START_APP_IS_VERIFICATION      true       //
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN     //CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC   //
#define CFG_IBOOT_VERSION_SMALL       00        //xx.xx.__APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00        //xx.__.xxAPP忽略
#define CFG_IBOOT_VERSION_LARGE       01        //__.xx.xxAPP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"           //
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"            //
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40      //定义锁的数量包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10      //
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure modbus  ******************************************//
#define CFG_MB_ASCII_TIMEOUT_SEC                    100       //"从机用ASCII时，通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define CFG_MB_FUNC_HANDLERS_MAX                    16      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF           32      //这个数字限制了从机ID数据的最大大小。
#define CFG_MB_MASTER_DELAY_MS_CONVERT              200     //主站发送一个广播帧后主站等待延迟时间，时间到后才主站才可以发送其他帧
#define CFG_MB_MASTER_TIMEOUT_MS_RESPOND            500     //
#define CFG_MB_MASTER_TOTAL_SLAVE_NUM               1      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED       true    // "是否启用请求从机ID功能"
#define CFG_MB_FUNC_READ_INPUT_ENABLED              true    // "是否启用读输入寄存器功能"
#define CFG_MB_FUNC_READ_HOLDING_ENABLED            true    // "是否启用读保持寄存器功能"
#define CFG_MB_FUNC_WRITE_HOLDING_ENABLED           true    // "是否启用写单个寄存器功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true    // "是否启用写多个寄存器功能"
#define CFG_MB_FUNC_READ_COILS_ENABLED              true    // "是否启用读线圈功能"
#define CFG_MB_FUNC_WRITE_COIL_ENABLED              true    // "是否启用写线圈功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED    true    // "是否启用写多个线圈功能"
#define CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED    true    // "是否启用读离散输入功能"
#define CFG_MB_FUNC_READWRITE_HOLDING_ENABLED       true    // "是否启用读写多个寄存器功能"
#define CFG_MB_MASTER_ENABLED                       true    // "主机使能开关"
    #define CFG_MB_MASTER_RTU_ENABLED                   true    // "主机RTU使能开关"
    #define CFG_MB_M_DISCRETE_INPUT_START               1        //
    #define CFG_MB_M_DISCRETE_INPUT_NDISCRETES          0       //
    #define CFG_MB_M_COIL_START                         0       //
    #define CFG_MB_M_COIL_NCOILS                        0       //
    #define CFG_MB_M_REG_INPUT_START                    0       //
    #define CFG_MB_M_REG_INPUT_NREGS                    0       //
    #define CFG_MB_M_REG_HOLDING_START                  0       //
    #define CFG_MB_M_REG_HOLDING_NREGS                  65000       //
    #define CFG_MB_M_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"
    #define CFG_MB_M_PORT_BAUDRATE                      9600    // "串口波特率"
    #define CFG_MB_M_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
#define CFG_MB_SLAVE_ENABLED                       false    // "从机使能开关"
    #define CFG_MB_SLAVE_ASCII_ENABLED                  false    // "从机ASCII使能开关"
    #define CFG_MB_SLAVE_RTU_ENABLED                    false    // "从机RTU使能开关"
    #define CFG_MB_SLAVE_TCP_ENABLED                    false    // "从机TCP使能开关"
    #define CFG_MB_S_DISCRETE_INPUT_START               1        //
    #define CFG_MB_S_DISCRETE_INPUT_NDISCRETES          10       //
    #define CFG_MB_S_COIL_START                         11       //
    #define CFG_MB_S_COIL_NCOILS                        10       //
    #define CFG_MB_S_REG_INPUT_START                    21       //
    #define CFG_MB_S_REG_INPUT_NREGS                    10       //
    #define CFG_MB_S_REG_HOLDING_START                  31       //
    #define CFG_MB_S_REG_HOLDING_NREGS                  10       //
    #define CFG_MB_S_ADDR                               2        //
    #define CFG_MB_S_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
    #define CFG_MB_S_TCP_PORT_NUM                       0        //"使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
    #define CFG_MB_S_PORT_BAUDRATE                      115200    // "串口波特率"
    #define CFG_MB_S_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
    #define CFG_MB_S_TRANSFER_MODE                      MB_RTU_MODE    // "通信方式"
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false            //
#define CFG_SELECT_NETCARD  "AT32F437_ETH"   //必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100" //
#define CFG_MY_SUBMASK      "255.255.255.0" //
#define CFG_MY_GATWAY       "192.168.8.1"   //
#define CFG_MY_DNS          "192.168.8.1"   //
#define CFG_MY_DNSBAK       "192.168.8.1"   //
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"        //
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000      //
#define CFG_ADD_ROUTINE_SHELL      true        //
#define CFG_ADD_EXPAND_SHELL       true        //
#define CFG_ADD_GLOBAL_FUN         false       //
#define CFG_SHOW_ADD_SHEELL        true        //
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10      //占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5       //可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true    //选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true         //
#define CFG_STDIO_STDOUT_FOLLOW    true         //
#define CFG_STDIO_STDERR_FOLLOW    true         //
#define CFG_STDIO_FLOAT_PRINT      true         //
#define CFG_STDIO_STDIOFILE        true         //
#define CFG_STDIO_IN_NAME              "/dev/UART1"    //
#define CFG_STDIO_OUT_NAME             "/dev/UART1"    //
#define CFG_STDIO_ERR_NAME             "/dev/UART1"    //
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true    //资源充足才打开
#define     CFG_TCP_CCBNUM              10      //占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5       //占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10      //用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000  //
#define     CFG_TPL_PROTONUM            5       //占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true    //
#define     CFG_TELNETC_ENABLE          false   //
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8      //北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10      //占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4       //占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472       //udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000     //8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"      //需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1        //-1表示最后一块起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false      //"分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false      //"分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false      //
#define CFG_W25QXX_BYTES_PAGE               256        //
#define CFG_W25QXX_PAGES_SECTOR             16         //
#define CFG_W25QXX_SECTORS_BLOCK            16         //
#define CFG_W25QXX_SECTORS_NUM              2048       //
#define CFG_W25QXX_CHIP_ID                  0xEF18     //
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           1                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

/*Modified at 2023-12-24 19:55:54*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end


#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG         //  打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10       //  "设备数量",定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512       //  "C库文件用户态缓冲区尺寸"
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8    //  "对象数初始值"，用完会自动扩充
#define CFG_HANDLE_LIMIT        8    //  "句柄数初始值"，用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false        //  "是否支持在线更新Iboot"，
#define CFG_START_APP_IS_VERIFICATION      true        //  "启动app时是否执行校验功能"，
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN      //  "APP运行模式",CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行，
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC    //  "APP校验方法",
#define CFG_IBOOT_VERSION_SMALL       00         //  "Iboot版本号:低",xx.xx.__，APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00         //  "Iboot版本号:中",xx.__.xx，APP忽略
#define CFG_IBOOT_VERSION_LARGE       01         //  "Iboot版本号:高",__.xx.xx，APP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"            //  "待升级iboot默认存储路径"
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"             //  "待升级app默认存储路径"
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40       //  "锁的数量",定义锁的数量，包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10       //  "内存池数量限值",
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000       //  "执行shell命令的栈尺寸",
#define CFG_ADD_ROUTINE_SHELL      true         //  "是否添加常规shell命令",
#define CFG_ADD_EXPAND_SHELL       true         //  "是否添加拓展shell命令",
#define CFG_ADD_GLOBAL_FUN         false        //  "添加全局函数到shell",
#define CFG_SHOW_ADD_SHEELL        true         //  "编译时显示shell命令",
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                 //   "SPI缓冲区大小",
#define CFG_SPI_DMA_BUF_LEN         256                 //   "SPI DMA缓冲区大小",
#define CFG_SPI1_ENABLE             true               //   "是否配置使用SPI1",
#define CFG_SPI2_ENABLE             false               //   "是否配置使用SPI2",
#define CFG_SPI3_ENABLE             false               //   "是否配置使用SPI3",
#define CFG_SPI4_ENABLE             false               //   "是否配置使用SPI4",
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define    CFG_UART1_SENDBUF_LEN           512               //
#define    CFG_UART1_RECVBUF_LEN           512               //
#define    CFG_UART1_DMABUF_LEN            512               //
#define    CFG_UART2_SENDBUF_LEN           512               //
#define    CFG_UART2_RECVBUF_LEN           512               //
#define    CFG_UART2_DMABUF_LEN            512               //
#define    CFG_UART3_SENDBUF_LEN           512               //
#define    CFG_UART3_RECVBUF_LEN           512               //
#define    CFG_UART3_DMABUF_LEN            512               //
#define    CFG_UART4_SENDBUF_LEN           32                //
#define    CFG_UART4_RECVBUF_LEN           32                //
#define    CFG_UART4_DMABUF_LEN            32                //
#define    CFG_UART5_SENDBUF_LEN           32                //
#define    CFG_UART5_RECVBUF_LEN           32                //
#define    CFG_UART5_DMABUF_LEN            32                //
#define    CFG_UART6_SENDBUF_LEN           32                //
#define    CFG_UART6_RECVBUF_LEN           32                //
#define    CFG_UART6_DMABUF_LEN            32                //
#define    CFG_UART7_SENDBUF_LEN           32                //
#define    CFG_UART7_RECVBUF_LEN           32                //
#define    CFG_UART7_DMABUF_LEN            32                //
#define    CFG_UART8_SENDBUF_LEN           32                //
#define    CFG_UART8_RECVBUF_LEN           32                //
#define    CFG_UART8_DMABUF_LEN            32                //
#define    CFG_UART1_ENABLE                true              //
#define    CFG_UART2_ENABLE                true              //
#define    CFG_UART3_ENABLE                true              //
#define    CFG_UART4_ENABLE                false             //
#define    CFG_UART5_ENABLE                false             //
#define    CFG_UART6_ENABLE                false             //
#define    CFG_UART7_ENABLE                false             //
#define    CFG_UART8_ENABLE                false             //
#define    CFG_UART1_TX_DMA_CHANNEL        DMA1_C1           //   串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART1_RX_DMA_CHANNEL        DMA1_C2           //   串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART2_TX_DMA_CHANNEL        DMA1_C3           //   串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART2_RX_DMA_CHANNEL        DMA1_C4           //   串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART3_TX_DMA_CHANNEL        DMA1_C5           //   串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART3_RX_DMA_CHANNEL        DMA1_C6           //   串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART4_TX_DMA_CHANNEL        DMA_NONUSE        //   串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART4_RX_DMA_CHANNEL        DMA_NONUSE        //   串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART5_TX_DMA_CHANNEL        DMA_NONUSE        //   串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART5_RX_DMA_CHANNEL        DMA_NONUSE        //   串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART6_TX_DMA_CHANNEL        DMA_NONUSE        //   串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART6_RX_DMA_CHANNEL        DMA_NONUSE        //   串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART7_TX_DMA_CHANNEL        DMA_NONUSE        //   串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART7_RX_DMA_CHANNEL        DMA_NONUSE        //   串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART8_TX_DMA_CHANNEL        DMA_NONUSE        //   串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART8_RX_DMA_CHANNEL        DMA_NONUSE        //   串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250      //   这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false       //  分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512          //  "片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4            //  "片内flash的扇区中有多少页"
#define CFG_EFLASH_BLOCK_SECT_NUM           32           //  "片内flash的块中有多少扇区"
#define CFG_EFLASH_PLANE1_SECT_NUM          256          //  "片1一共有多少扇区"
#define CFG_EFLASH_PLANE2_SECT_NUM          256          //  "片2一共有多少扇区"
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8            //  "片1一共有多少块"
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8            //  "片2一共有多少块"
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0           //  分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4          //  分区结束，-1表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false       //  分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"     //  需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true   //  "全功能动态分配",即使选false，也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096     //  "初始化栈空间",定义初始化过程使用的栈空间，一般按默认值就可以了
#define CFG_EVENT_LIMIT         22       //  "事件数量限值",事件数量
#define CFG_EVENT_TYPE_LIMIT    22       //  "事件类型数限值",事件类型数
#define CFG_IDLESTACK_LIMIT     1024     //  "IDLE事件栈尺寸",IDLE事件处理函数运行的栈尺寸，一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30       //  "IDLE监视周期",监视IDLE事件持续低于1/16 CPU占比的时间，秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960     //  "main函数栈尺寸",main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false    //  "IDLE监视狗叫复位使能"，IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false    //  "tiny版内核",true=用于资源紧缺的场合，内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false    //  "IDLE检查栈",在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"         //  "本地字符集",
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5        //  "定时器数量",可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true     //  "硬件定时器提供时钟源",选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000   //  "数据包缓冲区尺寸"
#define     CFG_TPL_PROTONUM            5        //  "支持的传输协议数"，占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true     //  "TCP乱序重组使能",资源充足才打开
#define     CFG_TCP_CCBNUM              10       //  "tcp 客户端数限值"，占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5        //  "tcp 服务器数限值"，占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10       //  "tcp socket hashtable长度"，用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true    //  "ftp 服务器使能"
#define     CFG_FTPC_ENABLE            true     //  "ftp 客户端使能"
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true     //  "telnet 服务器使能"
#define     CFG_TELNETC_ENABLE          false    //  "telnet 客户端使能"
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10       //  "socket数限值"，占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false    //  "DHCP 服务器使能"
#define     CFG_DHCPC_ENABLE            true     //  "DHCP 客户端使能"
#define     CFG_DHCP_RENEWTIME          3600     //  "renew timer",秒数
#define     CFG_DHCP_REBINDTIME         3600     //  "rebind timer",秒数
#define     CFG_DHCP_LEASETIME          3600     //  "lease timer",秒数
#define     CFG_DHCPD_IPNUM             0x40     //  "IP池尺寸",64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"     //  "DHCP起始IP",
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"   //  "DHCP SERVER IP"
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"   //  "DHCP ROUTER SERVER IP"
#define     CFG_DHCPD_NETIP             "255.255.255.0"   //  "DHCP MASK IP"
#define     CFG_DHCPD_DNS               "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DOMAINNAME       "domain"         //  "DHCP domain name"
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32       //  "ARP哈希表长度"，占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10       //  "UDP socket数限值"，占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4        //  "udp socket 哈希表长度"，占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472        //  udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000      //  8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"    //   "网卡名称",
#define CFG_ETH_LOOP_CYCLE      1000          //   "网卡轮询周期(uS)",中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true             //   "网卡接收是否轮询",
#define CFG_ETH_HARD_MAC_ADDR   true             //   "硬件生成Mac地址",
#define CFG_ETH_MAC_ADDR0      00            //   "MAC ADDR0",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02            //   "MAC ADDR1",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03            //   "MAC ADDR2",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04            //   "MAC ADDR3",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05            //   "MAC ADDR4",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06            //   "MAC ADDR5",若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false       //  "分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false       //  "是否使用QSPI模式"
#define CFG_W25QXX_BYTES_PAGE               256         //  "每页的字节数"
#define CFG_W25QXX_PAGES_SECTOR             16          //  "每个扇区有多少页"
#define CFG_W25QXX_SECTORS_BLOCK            16          //  "每个块有多少扇区"
#define CFG_W25QXX_SECTORS_NUM              2048        //  "总的扇区数"
#define CFG_W25QXX_CHIP_ID                  0xEF18      //  "芯片ID"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"       //  "文件系统mount点名字",需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1         //  "分区结束"，-1表示最后一块,起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false       //  "分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8       //  "时区",北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true          //  "是否支持多种输入设备",
#define CFG_STDIO_STDOUT_FOLLOW    true          //  "stdout是否跟随stdin",
#define CFG_STDIO_STDERR_FOLLOW    true          //  "stderr是否跟随stdin",
#define CFG_STDIO_FLOAT_PRINT      true          //  "支持浮点打印"
#define CFG_STDIO_STDIOFILE        true          //  "支持标准IO文件"
#define CFG_STDIO_IN_NAME              "/dev/UART1"     //  "标准输入设备名",
#define CFG_STDIO_OUT_NAME             "/dev/UART1"     //  "标准输出设备名",
#define CFG_STDIO_ERR_NAME             "/dev/UART1"     //  "标准err输出设备名",
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false             //   "使用静态IP?",
#define CFG_SELECT_NETCARD  "AT32F437_ETH"    //   "网卡名称",必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100"  //   "静态IP",
#define CFG_MY_SUBMASK      "255.255.255.0"  //   "子网掩码",
#define CFG_MY_GATWAY       "192.168.8.1"    //   "网关",
#define CFG_MY_DNS          "192.168.8.1"    //   "首选DNS",
#define CFG_MY_DNSBAK       "192.168.8.1"    //   "备用DNS",
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure modbus  ******************************************//
#define    CFG_MB_ASCII_TIMEOUT_SEC        100               //"从机用ASCII时，通信的超时时间",通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define    CFG_MB_FUNC_HANDLERS_MAX        16                //  
#define    CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF  32                //这个数字限制了从机ID数据的最大大小。
#define    CFG_MB_MASTER_DELAY_MS_CONVERT  200               //主站发送一个广播帧后主站等待延迟时间，时间到后才主站才可以发送其他帧
#define    CFG_MB_MASTER_TIMEOUT_MS_RESPOND  500               //  
#define    CFG_MB_MASTER_TOTAL_SLAVE_NUM   1                 //  
#define    CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_INPUT_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_HOLDING_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_HOLDING_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_COILS_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_COIL_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED  true              //   
#define    CFG_MB_FUNC_READWRITE_HOLDING_ENABLED  true              //   
#define    CFG_MB_MASTER_ENABLED           true              //   
#define    CFG_MB_MASTER_RTU_ENABLED       true              //   
#define    CFG_MB_M_DISCRETE_INPUT_START   1                 //  
#define    CFG_MB_M_DISCRETE_INPUT_NDISCRETES  0                 //  
#define    CFG_MB_M_COIL_START             0                 //  
#define    CFG_MB_M_COIL_NCOILS            0                 //  
#define    CFG_MB_M_REG_INPUT_START        0                 //  
#define    CFG_MB_M_REG_INPUT_NREGS        0                 //  
#define    CFG_MB_M_REG_HOLDING_START      0                 //  
#define    CFG_MB_M_REG_HOLDING_NREGS      65000             //  
#define    CFG_MB_M_PORT_NUM               2                 //"串口的端口号，例如要用/dev/UART2，就填2",例如要用/dev/UART2，就填2"
#define    CFG_MB_M_PORT_BAUDRATE          9600              //   
#define    CFG_MB_M_PORT_PARITY            MB_PAR_NONE       //   
#define    CFG_MB_SLAVE_ENABLED            false             //   
#define    CFG_MB_SLAVE_ASCII_ENABLED      false             //   
#define    CFG_MB_SLAVE_RTU_ENABLED        false             //   
#define    CFG_MB_SLAVE_TCP_ENABLED        false             //   
#define    CFG_MB_S_DISCRETE_INPUT_START   1                 //  
#define    CFG_MB_S_DISCRETE_INPUT_NDISCRETES  10                //  
#define    CFG_MB_S_COIL_START             11                //  
#define    CFG_MB_S_COIL_NCOILS            10                //  
#define    CFG_MB_S_REG_INPUT_START        21                //  
#define    CFG_MB_S_REG_INPUT_NREGS        10                //  
#define    CFG_MB_S_REG_HOLDING_START      31                //  
#define    CFG_MB_S_REG_HOLDING_NREGS      10                //  
#define    CFG_MB_S_ADDR                   2                 //  
#define    CFG_MB_S_PORT_NUM               2                 //"串口的端口号，例如要用/dev/UART2，就填2",例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
#define    CFG_MB_S_TCP_PORT_NUM           0                 //"使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效",使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
#define    CFG_MB_S_PORT_BAUDRATE          115200            //   
#define    CFG_MB_S_PORT_PARITY            MB_PAR_NONE       //   
#define    CFG_MB_S_TRANSFER_MODE          MB_RTU_MODE       //   
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG         //  打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10       //  "设备数量",定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512       //  "C库文件用户态缓冲区尺寸"
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8    //  "对象数初始值"，用完会自动扩充
#define CFG_HANDLE_LIMIT        8    //  "句柄数初始值"，用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false        //  "是否支持在线更新Iboot"，
#define CFG_START_APP_IS_VERIFICATION      true        //  "启动app时是否执行校验功能"，
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN      //  "APP运行模式",CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行，
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC    //  "APP校验方法",
#define CFG_IBOOT_VERSION_SMALL       00         //  "Iboot版本号:低",xx.xx.__，APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00         //  "Iboot版本号:中",xx.__.xx，APP忽略
#define CFG_IBOOT_VERSION_LARGE       01         //  "Iboot版本号:高",__.xx.xx，APP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"            //  "待升级iboot默认存储路径"
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"             //  "待升级app默认存储路径"
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40       //  "锁的数量",定义锁的数量，包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10       //  "内存池数量限值",
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000       //  "执行shell命令的栈尺寸",
#define CFG_ADD_ROUTINE_SHELL      true         //  "是否添加常规shell命令",
#define CFG_ADD_EXPAND_SHELL       true         //  "是否添加拓展shell命令",
#define CFG_ADD_GLOBAL_FUN         false        //  "添加全局函数到shell",
#define CFG_SHOW_ADD_SHEELL        true         //  "编译时显示shell命令",
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                 //   "SPI缓冲区大小",
#define CFG_SPI_DMA_BUF_LEN         256                 //   "SPI DMA缓冲区大小",
#define CFG_SPI1_ENABLE             true               //   "是否配置使用SPI1",
#define CFG_SPI2_ENABLE             false               //   "是否配置使用SPI2",
#define CFG_SPI3_ENABLE             false               //   "是否配置使用SPI3",
#define CFG_SPI4_ENABLE             false               //   "是否配置使用SPI4",
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define    CFG_UART1_SENDBUF_LEN           512               //
#define    CFG_UART1_RECVBUF_LEN           512               //
#define    CFG_UART1_DMABUF_LEN            512               //
#define    CFG_UART2_SENDBUF_LEN           512               //
#define    CFG_UART2_RECVBUF_LEN           512               //
#define    CFG_UART2_DMABUF_LEN            512               //
#define    CFG_UART3_SENDBUF_LEN           512               //
#define    CFG_UART3_RECVBUF_LEN           512               //
#define    CFG_UART3_DMABUF_LEN            512               //
#define    CFG_UART4_SENDBUF_LEN           32                //
#define    CFG_UART4_RECVBUF_LEN           32                //
#define    CFG_UART4_DMABUF_LEN            32                //
#define    CFG_UART5_SENDBUF_LEN           32                //
#define    CFG_UART5_RECVBUF_LEN           32                //
#define    CFG_UART5_DMABUF_LEN            32                //
#define    CFG_UART6_SENDBUF_LEN           32                //
#define    CFG_UART6_RECVBUF_LEN           32                //
#define    CFG_UART6_DMABUF_LEN            32                //
#define    CFG_UART7_SENDBUF_LEN           32                //
#define    CFG_UART7_RECVBUF_LEN           32                //
#define    CFG_UART7_DMABUF_LEN            32                //
#define    CFG_UART8_SENDBUF_LEN           32                //
#define    CFG_UART8_RECVBUF_LEN           32                //
#define    CFG_UART8_DMABUF_LEN            32                //
#define    CFG_UART1_ENABLE                true              //
#define    CFG_UART2_ENABLE                true              //
#define    CFG_UART3_ENABLE                true              //
#define    CFG_UART4_ENABLE                false             //
#define    CFG_UART5_ENABLE                false             //
#define    CFG_UART6_ENABLE                false             //
#define    CFG_UART7_ENABLE                false             //
#define    CFG_UART8_ENABLE                false             //
#define    CFG_UART1_TX_DMA_CHANNEL        DMA1_C1           //   串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART1_RX_DMA_CHANNEL        DMA1_C2           //   串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART2_TX_DMA_CHANNEL        DMA1_C3           //   串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART2_RX_DMA_CHANNEL        DMA1_C4           //   串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART3_TX_DMA_CHANNEL        DMA1_C5           //   串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART3_RX_DMA_CHANNEL        DMA1_C6           //   串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART4_TX_DMA_CHANNEL        DMA_NONUSE        //   串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART4_RX_DMA_CHANNEL        DMA_NONUSE        //   串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART5_TX_DMA_CHANNEL        DMA_NONUSE        //   串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART5_RX_DMA_CHANNEL        DMA_NONUSE        //   串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART6_TX_DMA_CHANNEL        DMA_NONUSE        //   串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART6_RX_DMA_CHANNEL        DMA_NONUSE        //   串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART7_TX_DMA_CHANNEL        DMA_NONUSE        //   串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART7_RX_DMA_CHANNEL        DMA_NONUSE        //   串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART8_TX_DMA_CHANNEL        DMA_NONUSE        //   串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_UART8_RX_DMA_CHANNEL        DMA_NONUSE        //   串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250      //   这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false       //  分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512          //  "片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4            //  "片内flash的扇区中有多少页"
#define CFG_EFLASH_BLOCK_SECT_NUM           32           //  "片内flash的块中有多少扇区"
#define CFG_EFLASH_PLANE1_SECT_NUM          256          //  "片1一共有多少扇区"
#define CFG_EFLASH_PLANE2_SECT_NUM          256          //  "片2一共有多少扇区"
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8            //  "片1一共有多少块"
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8            //  "片2一共有多少块"
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0           //  分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4          //  分区结束，-1表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false       //  分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"     //  需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true   //  "全功能动态分配",即使选false，也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096     //  "初始化栈空间",定义初始化过程使用的栈空间，一般按默认值就可以了
#define CFG_EVENT_LIMIT         22       //  "事件数量限值",事件数量
#define CFG_EVENT_TYPE_LIMIT    22       //  "事件类型数限值",事件类型数
#define CFG_IDLESTACK_LIMIT     1024     //  "IDLE事件栈尺寸",IDLE事件处理函数运行的栈尺寸，一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30       //  "IDLE监视周期",监视IDLE事件持续低于1/16 CPU占比的时间，秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960     //  "main函数栈尺寸",main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false    //  "IDLE监视狗叫复位使能"，IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false    //  "tiny版内核",true=用于资源紧缺的场合，内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false    //  "IDLE检查栈",在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"         //  "本地字符集",
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5        //  "定时器数量",可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true     //  "硬件定时器提供时钟源",选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000   //  "数据包缓冲区尺寸"
#define     CFG_TPL_PROTONUM            5        //  "支持的传输协议数"，占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true     //  "TCP乱序重组使能",资源充足才打开
#define     CFG_TCP_CCBNUM              10       //  "tcp 客户端数限值"，占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5        //  "tcp 服务器数限值"，占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10       //  "tcp socket hashtable长度"，用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true    //  "ftp 服务器使能"
#define     CFG_FTPC_ENABLE            true     //  "ftp 客户端使能"
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true     //  "telnet 服务器使能"
#define     CFG_TELNETC_ENABLE          false    //  "telnet 客户端使能"
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10       //  "socket数限值"，占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false    //  "DHCP 服务器使能"
#define     CFG_DHCPC_ENABLE            true     //  "DHCP 客户端使能"
#define     CFG_DHCP_RENEWTIME          3600     //  "renew timer",秒数
#define     CFG_DHCP_REBINDTIME         3600     //  "rebind timer",秒数
#define     CFG_DHCP_LEASETIME          3600     //  "lease timer",秒数
#define     CFG_DHCPD_IPNUM             0x40     //  "IP池尺寸",64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"     //  "DHCP起始IP",
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"   //  "DHCP SERVER IP"
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"   //  "DHCP ROUTER SERVER IP"
#define     CFG_DHCPD_NETIP             "255.255.255.0"   //  "DHCP MASK IP"
#define     CFG_DHCPD_DNS               "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DOMAINNAME       "domain"         //  "DHCP domain name"
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32       //  "ARP哈希表长度"，占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10       //  "UDP socket数限值"，占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4        //  "udp socket 哈希表长度"，占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472        //  udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000      //  8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"    //   "网卡名称",
#define CFG_ETH_LOOP_CYCLE      1000          //   "网卡轮询周期(uS)",中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true             //   "网卡接收是否轮询",
#define CFG_ETH_HARD_MAC_ADDR   true             //   "硬件生成Mac地址",
#define CFG_ETH_MAC_ADDR0      00            //   "MAC ADDR0",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02            //   "MAC ADDR1",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03            //   "MAC ADDR2",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04            //   "MAC ADDR3",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05            //   "MAC ADDR4",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06            //   "MAC ADDR5",若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false       //  "分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false       //  "是否使用QSPI模式"
#define CFG_W25QXX_BYTES_PAGE               256         //  "每页的字节数"
#define CFG_W25QXX_PAGES_SECTOR             16          //  "每个扇区有多少页"
#define CFG_W25QXX_SECTORS_BLOCK            16          //  "每个块有多少扇区"
#define CFG_W25QXX_SECTORS_NUM              2048        //  "总的扇区数"
#define CFG_W25QXX_CHIP_ID                  0xEF18      //  "芯片ID"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"       //  "文件系统mount点名字",需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1         //  "分区结束"，-1表示最后一块,起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false       //  "分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8       //  "时区",北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true          //  "是否支持多种输入设备",
#define CFG_STDIO_STDOUT_FOLLOW    true          //  "stdout是否跟随stdin",
#define CFG_STDIO_STDERR_FOLLOW    true          //  "stderr是否跟随stdin",
#define CFG_STDIO_FLOAT_PRINT      true          //  "支持浮点打印"
#define CFG_STDIO_STDIOFILE        true          //  "支持标准IO文件"
#define CFG_STDIO_IN_NAME              "/dev/UART1"     //  "标准输入设备名",
#define CFG_STDIO_OUT_NAME             "/dev/UART1"     //  "标准输出设备名",
#define CFG_STDIO_ERR_NAME             "/dev/UART1"     //  "标准err输出设备名",
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false             //   "使用静态IP?",
#define CFG_SELECT_NETCARD  "AT32F437_ETH"    //   "网卡名称",必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100"  //   "静态IP",
#define CFG_MY_SUBMASK      "255.255.255.0"  //   "子网掩码",
#define CFG_MY_GATWAY       "192.168.8.1"    //   "网关",
#define CFG_MY_DNS          "192.168.8.1"    //   "首选DNS",
#define CFG_MY_DNSBAK       "192.168.8.1"    //   "备用DNS",
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure modbus  ******************************************//
#define    CFG_MB_ASCII_TIMEOUT_SEC        100               //"从机用ASCII时，通信的超时时间",通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define    CFG_MB_FUNC_HANDLERS_MAX        16                //  
#define    CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF  32                //这个数字限制了从机ID数据的最大大小。
#define    CFG_MB_MASTER_DELAY_MS_CONVERT  200               //主站发送一个广播帧后主站等待延迟时间，时间到后才主站才可以发送其他帧
#define    CFG_MB_MASTER_TIMEOUT_MS_RESPOND  500               //  
#define    CFG_MB_MASTER_TOTAL_SLAVE_NUM   1                 //  
#define    CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_INPUT_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_HOLDING_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_HOLDING_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_COILS_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_COIL_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED  true              //   
#define    CFG_MB_FUNC_READWRITE_HOLDING_ENABLED  true              //   
#define    CFG_MB_MASTER_ENABLED           true              //   
#define    CFG_MB_MASTER_RTU_ENABLED       true              //   
#define    CFG_MB_M_DISCRETE_INPUT_START   1                 //  
#define    CFG_MB_M_DISCRETE_INPUT_NDISCRETES  0                 //  
#define    CFG_MB_M_COIL_START             0                 //  
#define    CFG_MB_M_COIL_NCOILS            0                 //  
#define    CFG_MB_M_REG_INPUT_START        0                 //  
#define    CFG_MB_M_REG_INPUT_NREGS        0                 //  
#define    CFG_MB_M_REG_HOLDING_START      0                 //  
#define    CFG_MB_M_REG_HOLDING_NREGS      65000             //  
#define    CFG_MB_M_PORT_NUM               2                 //"串口的端口号，例如要用/dev/UART2，就填2",例如要用/dev/UART2，就填2"
#define    CFG_MB_M_PORT_BAUDRATE          9600              //   
#define    CFG_MB_M_PORT_PARITY            MB_PAR_NONE       //   
#define    CFG_MB_SLAVE_ENABLED            false             //   
#define    CFG_MB_SLAVE_ASCII_ENABLED      false             //   
#define    CFG_MB_SLAVE_RTU_ENABLED        false             //   
#define    CFG_MB_SLAVE_TCP_ENABLED        false             //   
#define    CFG_MB_S_DISCRETE_INPUT_START   1                 //  
#define    CFG_MB_S_DISCRETE_INPUT_NDISCRETES  10                //  
#define    CFG_MB_S_COIL_START             11                //  
#define    CFG_MB_S_COIL_NCOILS            10                //  
#define    CFG_MB_S_REG_INPUT_START        21                //  
#define    CFG_MB_S_REG_INPUT_NREGS        10                //  
#define    CFG_MB_S_REG_HOLDING_START      31                //  
#define    CFG_MB_S_REG_HOLDING_NREGS      10                //  
#define    CFG_MB_S_ADDR                   2                 //  
#define    CFG_MB_S_PORT_NUM               2                 //"串口的端口号，例如要用/dev/UART2，就填2",例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
#define    CFG_MB_S_TCP_PORT_NUM           0                 //"使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效",使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
#define    CFG_MB_S_PORT_BAUDRATE          115200            //   
#define    CFG_MB_S_PORT_PARITY            MB_PAR_NONE       //   
#define    CFG_MB_S_TRANSFER_MODE          MB_RTU_MODE       //   
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           1                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

/*Modified at 2023-12-24 19:58:31*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end


#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32      //占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false      //分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512         //"片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4           //
#define CFG_EFLASH_BLOCK_SECT_NUM           32          //
#define CFG_EFLASH_PLANE1_SECT_NUM          256         //
#define CFG_EFLASH_PLANE2_SECT_NUM          256         //
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8           //
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8           //
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"   //
#define CFG_ETH_LOOP_CYCLE      1000         //中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true            //
#define CFG_ETH_HARD_MAC_ADDR   true            //
#define CFG_ETH_MAC_ADDR0      00           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06           //若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                //
#define CFG_SPI_DMA_BUF_LEN         256                //
#define CFG_SPI1_ENABLE             true              //
#define CFG_SPI2_ENABLE             false              //
#define CFG_SPI3_ENABLE             false              //
#define CFG_SPI4_ENABLE             false              //
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250     //这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       512      //
#define CFG_UART1_RECVBUF_LEN       512      //
#define CFG_UART1_DMABUF_LEN        512      //
#define CFG_UART2_SENDBUF_LEN       512      //
#define CFG_UART2_RECVBUF_LEN       512      //
#define CFG_UART2_DMABUF_LEN        512      //
#define CFG_UART3_SENDBUF_LEN       512      //
#define CFG_UART3_RECVBUF_LEN       512      //
#define CFG_UART3_DMABUF_LEN        512      //
#define CFG_UART4_SENDBUF_LEN       32      //
#define CFG_UART4_RECVBUF_LEN       32      //
#define CFG_UART4_DMABUF_LEN        32      //
#define CFG_UART5_SENDBUF_LEN       32      //
#define CFG_UART5_RECVBUF_LEN       32      //
#define CFG_UART5_DMABUF_LEN        32      //
#define CFG_UART6_SENDBUF_LEN       32      //
#define CFG_UART6_RECVBUF_LEN       32      //
#define CFG_UART6_DMABUF_LEN        32      //
#define CFG_UART7_SENDBUF_LEN       32      //
#define CFG_UART7_RECVBUF_LEN       32      //
#define CFG_UART7_DMABUF_LEN        32      //
#define CFG_UART8_SENDBUF_LEN       32      //
#define CFG_UART8_RECVBUF_LEN       32      //
#define CFG_UART8_DMABUF_LEN        32      //
#define CFG_UART1_ENABLE           true        //
#define CFG_UART2_ENABLE           true       //
#define CFG_UART3_ENABLE           true       //
#define CFG_UART4_ENABLE           false       //
#define CFG_UART5_ENABLE           false       //
#define CFG_UART6_ENABLE           false       //
#define CFG_UART7_ENABLE           false       //
#define CFG_UART8_ENABLE           false       //
#define CFG_UART1_TX_DMA_CHANNEL       DMA1_C1   //串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA1_C2   //串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA1_C3   //串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA1_C4   //串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA1_C5   //串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA1_C6   //串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE   //串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE   //串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE   //串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE   //串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE   //串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE   //串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE   //串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE   //串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE   //串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE   //串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG        //打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10      //定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false   //
#define     CFG_DHCPC_ENABLE            true    //
#define     CFG_DHCP_RENEWTIME          3600    //秒数
#define     CFG_DHCP_REBINDTIME         3600    //秒数
#define     CFG_DHCP_LEASETIME          3600    //秒数
#define     CFG_DHCPD_IPNUM             0x40    //64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"    //
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"  //
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"  //
#define     CFG_DHCPD_NETIP             "255.255.255.0"  //
#define     CFG_DHCPD_DNS               "192.168.0.253"  //
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"  //
#define     CFG_DHCPD_DOMAINNAME       "domain"        //
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0          //分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4         //分区结束，4表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false      //分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"    //需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512      //
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true   //
#define     CFG_FTPC_ENABLE            true    //
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true  //即使选false也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096    //定义初始化过程使用的栈空间一般按默认值就可以了
#define CFG_EVENT_LIMIT         22      //事件数量
#define CFG_EVENT_TYPE_LIMIT    22      //事件类型数
#define CFG_IDLESTACK_LIMIT     1024    //IDLE事件处理函数运行的栈尺寸一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30      //监视IDLE事件持续低于1/16 CPU占比的时间秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960    //main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false   //IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false   //true=用于资源紧缺的场合内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false   //在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8   //用完会自动扩充
#define CFG_HANDLE_LIMIT        8   //用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false       //
#define CFG_START_APP_IS_VERIFICATION      true       //
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN     //CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC   //
#define CFG_IBOOT_VERSION_SMALL       00        //xx.xx.__APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00        //xx.__.xxAPP忽略
#define CFG_IBOOT_VERSION_LARGE       01        //__.xx.xxAPP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"           //
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"            //
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40      //定义锁的数量包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10      //
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure modbus  ******************************************//
#define CFG_MB_ASCII_TIMEOUT_SEC                    100       //"从机用ASCII时，通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define CFG_MB_FUNC_HANDLERS_MAX                    16      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF           32      //这个数字限制了从机ID数据的最大大小。
#define CFG_MB_MASTER_DELAY_MS_CONVERT              200     //主站发送一个广播帧后主站等待延迟时间，时间到后才主站才可以发送其他帧
#define CFG_MB_MASTER_TIMEOUT_MS_RESPOND            500     //
#define CFG_MB_MASTER_TOTAL_SLAVE_NUM               1      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED       true    // "是否启用请求从机ID功能"
#define CFG_MB_FUNC_READ_INPUT_ENABLED              true    // "是否启用读输入寄存器功能"
#define CFG_MB_FUNC_READ_HOLDING_ENABLED            true    // "是否启用读保持寄存器功能"
#define CFG_MB_FUNC_WRITE_HOLDING_ENABLED           true    // "是否启用写单个寄存器功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true    // "是否启用写多个寄存器功能"
#define CFG_MB_FUNC_READ_COILS_ENABLED              true    // "是否启用读线圈功能"
#define CFG_MB_FUNC_WRITE_COIL_ENABLED              true    // "是否启用写线圈功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED    true    // "是否启用写多个线圈功能"
#define CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED    true    // "是否启用读离散输入功能"
#define CFG_MB_FUNC_READWRITE_HOLDING_ENABLED       true    // "是否启用读写多个寄存器功能"
#define CFG_MB_MASTER_ENABLED                       true    // "主机使能开关"
    #define CFG_MB_MASTER_RTU_ENABLED                   true    // "主机RTU使能开关"
    #define CFG_MB_M_DISCRETE_INPUT_START               1        //
    #define CFG_MB_M_DISCRETE_INPUT_NDISCRETES          0       //
    #define CFG_MB_M_COIL_START                         0       //
    #define CFG_MB_M_COIL_NCOILS                        0       //
    #define CFG_MB_M_REG_INPUT_START                    0       //
    #define CFG_MB_M_REG_INPUT_NREGS                    0       //
    #define CFG_MB_M_REG_HOLDING_START                  0       //
    #define CFG_MB_M_REG_HOLDING_NREGS                  65000       //
    #define CFG_MB_M_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"
    #define CFG_MB_M_PORT_BAUDRATE                      9600    // "串口波特率"
    #define CFG_MB_M_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
#define CFG_MB_SLAVE_ENABLED                       false    // "从机使能开关"
    #define CFG_MB_SLAVE_ASCII_ENABLED                  false    // "从机ASCII使能开关"
    #define CFG_MB_SLAVE_RTU_ENABLED                    false    // "从机RTU使能开关"
    #define CFG_MB_SLAVE_TCP_ENABLED                    false    // "从机TCP使能开关"
    #define CFG_MB_S_DISCRETE_INPUT_START               1        //
    #define CFG_MB_S_DISCRETE_INPUT_NDISCRETES          10       //
    #define CFG_MB_S_COIL_START                         11       //
    #define CFG_MB_S_COIL_NCOILS                        10       //
    #define CFG_MB_S_REG_INPUT_START                    21       //
    #define CFG_MB_S_REG_INPUT_NREGS                    10       //
    #define CFG_MB_S_REG_HOLDING_START                  31       //
    #define CFG_MB_S_REG_HOLDING_NREGS                  10       //
    #define CFG_MB_S_ADDR                               2        //
    #define CFG_MB_S_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
    #define CFG_MB_S_TCP_PORT_NUM                       0        //"使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
    #define CFG_MB_S_PORT_BAUDRATE                      115200    // "串口波特率"
    #define CFG_MB_S_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
    #define CFG_MB_S_TRANSFER_MODE                      MB_RTU_MODE    // "通信方式"
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false            //
#define CFG_SELECT_NETCARD  "AT32F437_ETH"   //必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100" //
#define CFG_MY_SUBMASK      "255.255.255.0" //
#define CFG_MY_GATWAY       "192.168.8.1"   //
#define CFG_MY_DNS          "192.168.8.1"   //
#define CFG_MY_DNSBAK       "192.168.8.1"   //
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"        //
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000      //
#define CFG_ADD_ROUTINE_SHELL      true        //
#define CFG_ADD_EXPAND_SHELL       true        //
#define CFG_ADD_GLOBAL_FUN         false       //
#define CFG_SHOW_ADD_SHEELL        true        //
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10      //占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5       //可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true    //选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true         //
#define CFG_STDIO_STDOUT_FOLLOW    true         //
#define CFG_STDIO_STDERR_FOLLOW    true         //
#define CFG_STDIO_FLOAT_PRINT      true         //
#define CFG_STDIO_STDIOFILE        true         //
#define CFG_STDIO_IN_NAME              "/dev/UART1"    //
#define CFG_STDIO_OUT_NAME             "/dev/UART1"    //
#define CFG_STDIO_ERR_NAME             "/dev/UART1"    //
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true    //资源充足才打开
#define     CFG_TCP_CCBNUM              10      //占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5       //占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10      //用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000  //
#define     CFG_TPL_PROTONUM            5       //占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true    //
#define     CFG_TELNETC_ENABLE          false   //
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8      //北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10      //占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4       //占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472       //udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000     //8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"      //需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1        //-1表示最后一块起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false      //"分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false      //"分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false      //
#define CFG_W25QXX_BYTES_PAGE               256        //
#define CFG_W25QXX_PAGES_SECTOR             16         //
#define CFG_W25QXX_SECTORS_BLOCK            16         //
#define CFG_W25QXX_SECTORS_NUM              2048       //
#define CFG_W25QXX_CHIP_ID                  0xEF18     //
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           1                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

/*Modified at 2023-12-24 19:58:35*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end


#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG         //  打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10       //  "设备数量",定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512       //  "C库文件用户态缓冲区尺寸"
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8    //  "对象数初始值"，用完会自动扩充
#define CFG_HANDLE_LIMIT        8    //  "句柄数初始值"，用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false        //  "是否支持在线更新Iboot"，
#define CFG_START_APP_IS_VERIFICATION      true        //  "启动app时是否执行校验功能"，
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN      //  "APP运行模式",CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行，
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC    //  "APP校验方法",
#define CFG_IBOOT_VERSION_SMALL       00         //  "Iboot版本号:低",xx.xx.__，APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00         //  "Iboot版本号:中",xx.__.xx，APP忽略
#define CFG_IBOOT_VERSION_LARGE       01         //  "Iboot版本号:高",__.xx.xx，APP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"            //  "待升级iboot默认存储路径"
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"             //  "待升级app默认存储路径"
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40       //  "锁的数量",定义锁的数量，包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10       //  "内存池数量限值",
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000       //  "执行shell命令的栈尺寸",
#define CFG_ADD_ROUTINE_SHELL      true         //  "是否添加常规shell命令",
#define CFG_ADD_EXPAND_SHELL       true         //  "是否添加拓展shell命令",
#define CFG_ADD_GLOBAL_FUN         false        //  "添加全局函数到shell",
#define CFG_SHOW_ADD_SHEELL        true         //  "编译时显示shell命令",
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                 //   "SPI缓冲区大小",
#define CFG_SPI_DMA_BUF_LEN         256                 //   "SPI DMA缓冲区大小",
#define CFG_SPI1_ENABLE             true               //   "是否配置使用SPI1",
#define CFG_SPI2_ENABLE             false               //   "是否配置使用SPI2",
#define CFG_SPI3_ENABLE             false               //   "是否配置使用SPI3",
#define CFG_SPI4_ENABLE             false               //   "是否配置使用SPI4",
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250      //   这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false       //  分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512          //  "片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4            //  "片内flash的扇区中有多少页"
#define CFG_EFLASH_BLOCK_SECT_NUM           32           //  "片内flash的块中有多少扇区"
#define CFG_EFLASH_PLANE1_SECT_NUM          256          //  "片1一共有多少扇区"
#define CFG_EFLASH_PLANE2_SECT_NUM          256          //  "片2一共有多少扇区"
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8            //  "片1一共有多少块"
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8            //  "片2一共有多少块"
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0           //  分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4          //  分区结束，-1表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false       //  分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"     //  需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       512       //   "UART1发送环形缓冲区大小",
#define CFG_UART1_RECVBUF_LEN       512       //   "UART1接收环形缓冲区大小",
#define CFG_UART1_DMABUF_LEN        512       //   "UART1 DMA环形缓冲区大小",
#define CFG_UART2_SENDBUF_LEN       512       //   "UART2发送环形缓冲区大小",
#define CFG_UART2_RECVBUF_LEN       512       //   "UART2接收环形缓冲区大小",
#define CFG_UART2_DMABUF_LEN        512       //   "UART2 DMA环形缓冲区大小",
#define CFG_UART3_SENDBUF_LEN       512       //   "UART3发送环形缓冲区大小",
#define CFG_UART3_RECVBUF_LEN       512       //   "UART3接收环形缓冲区大小",
#define CFG_UART3_DMABUF_LEN        512       //   "UART3 DMA环形缓冲区大小",
#define CFG_UART4_SENDBUF_LEN       32       //   "UART4发送环形缓冲区大小",
#define CFG_UART4_RECVBUF_LEN       32       //   "UART4接收环形缓冲区大小",
#define CFG_UART4_DMABUF_LEN        32       //   "UART4 DMA环形缓冲区大小",
#define CFG_UART5_SENDBUF_LEN       32       //   "UART5发送环形缓冲区大小",
#define CFG_UART5_RECVBUF_LEN       32       //   "UART5接收环形缓冲区大小",
#define CFG_UART5_DMABUF_LEN        32       //   "UART5 DMA环形缓冲区大小",
#define CFG_UART6_SENDBUF_LEN       32       //   "UART6发送环形缓冲区大小",
#define CFG_UART6_RECVBUF_LEN       32       //   "UART6接收环形缓冲区大小",
#define CFG_UART6_DMABUF_LEN        32       //   "UART6 DMA环形缓冲区大小",
#define CFG_UART7_SENDBUF_LEN       32       //   "UART7发送环形缓冲区大小",
#define CFG_UART7_RECVBUF_LEN       32       //   "UART7接收环形缓冲区大小",
#define CFG_UART7_DMABUF_LEN        32       //   "UART7 DMA环形缓冲区大小",
#define CFG_UART8_SENDBUF_LEN       32       //   "UART8发送环形缓冲区大小",
#define CFG_UART8_RECVBUF_LEN       32       //   "UART8接收环形缓冲区大小",
#define CFG_UART8_DMABUF_LEN        32       //   "UART8 DMA环形缓冲区大小",
#define CFG_UART1_ENABLE           true         //   "是否使用UART1",
#define CFG_UART2_ENABLE           true        //   "是否使用UART2",
#define CFG_UART3_ENABLE           true        //   "是否使用UART3",
#define CFG_UART4_ENABLE           false        //   "是否使用UART4",
#define CFG_UART5_ENABLE           false        //   "是否使用UART5",
#define CFG_UART6_ENABLE           false        //   "是否使用UART6",
#define CFG_UART7_ENABLE           false        //   "是否使用UART7",
#define CFG_UART8_ENABLE           false        //   "是否使用UART8",
#define CFG_UART1_TX_DMA_CHANNEL       DMA1_C1    //   串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA1_C2    //   串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA1_C3    //   串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA1_C4    //   串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA1_C5    //   串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA1_C6    //   串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE    //   串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE    //   串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE    //   串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE    //   串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE    //   串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE    //   串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE    //   串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE    //   串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE    //   串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE    //   串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true   //  "全功能动态分配",即使选false，也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096     //  "初始化栈空间",定义初始化过程使用的栈空间，一般按默认值就可以了
#define CFG_EVENT_LIMIT         22       //  "事件数量限值",事件数量
#define CFG_EVENT_TYPE_LIMIT    22       //  "事件类型数限值",事件类型数
#define CFG_IDLESTACK_LIMIT     1024     //  "IDLE事件栈尺寸",IDLE事件处理函数运行的栈尺寸，一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30       //  "IDLE监视周期",监视IDLE事件持续低于1/16 CPU占比的时间，秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960     //  "main函数栈尺寸",main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false    //  "IDLE监视狗叫复位使能"，IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false    //  "tiny版内核",true=用于资源紧缺的场合，内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false    //  "IDLE检查栈",在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"         //  "本地字符集",
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5        //  "定时器数量",可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true     //  "硬件定时器提供时钟源",选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000   //  "数据包缓冲区尺寸"
#define     CFG_TPL_PROTONUM            5        //  "支持的传输协议数"，占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true     //  "TCP乱序重组使能",资源充足才打开
#define     CFG_TCP_CCBNUM              10       //  "tcp 客户端数限值"，占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5        //  "tcp 服务器数限值"，占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10       //  "tcp socket hashtable长度"，用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true    //  "ftp 服务器使能"
#define     CFG_FTPC_ENABLE            true     //  "ftp 客户端使能"
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true     //  "telnet 服务器使能"
#define     CFG_TELNETC_ENABLE          false    //  "telnet 客户端使能"
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10       //  "socket数限值"，占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false    //  "DHCP 服务器使能"
#define     CFG_DHCPC_ENABLE            true     //  "DHCP 客户端使能"
#define     CFG_DHCP_RENEWTIME          3600     //  "renew timer",秒数
#define     CFG_DHCP_REBINDTIME         3600     //  "rebind timer",秒数
#define     CFG_DHCP_LEASETIME          3600     //  "lease timer",秒数
#define     CFG_DHCPD_IPNUM             0x40     //  "IP池尺寸",64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"     //  "DHCP起始IP",
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"   //  "DHCP SERVER IP"
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"   //  "DHCP ROUTER SERVER IP"
#define     CFG_DHCPD_NETIP             "255.255.255.0"   //  "DHCP MASK IP"
#define     CFG_DHCPD_DNS               "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DOMAINNAME       "domain"         //  "DHCP domain name"
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32       //  "ARP哈希表长度"，占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10       //  "UDP socket数限值"，占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4        //  "udp socket 哈希表长度"，占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472        //  udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000      //  8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"    //   "网卡名称",
#define CFG_ETH_LOOP_CYCLE      1000          //   "网卡轮询周期(uS)",中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true             //   "网卡接收是否轮询",
#define CFG_ETH_HARD_MAC_ADDR   true             //   "硬件生成Mac地址",
#define CFG_ETH_MAC_ADDR0      00            //   "MAC ADDR0",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02            //   "MAC ADDR1",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03            //   "MAC ADDR2",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04            //   "MAC ADDR3",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05            //   "MAC ADDR4",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06            //   "MAC ADDR5",若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false       //  "分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false       //  "是否使用QSPI模式"
#define CFG_W25QXX_BYTES_PAGE               256         //  "每页的字节数"
#define CFG_W25QXX_PAGES_SECTOR             16          //  "每个扇区有多少页"
#define CFG_W25QXX_SECTORS_BLOCK            16          //  "每个块有多少扇区"
#define CFG_W25QXX_SECTORS_NUM              2048        //  "总的扇区数"
#define CFG_W25QXX_CHIP_ID                  0xEF18      //  "芯片ID"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"       //  "文件系统mount点名字",需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1         //  "分区结束"，-1表示最后一块,起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false       //  "分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8       //  "时区",北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true          //  "是否支持多种输入设备",
#define CFG_STDIO_STDOUT_FOLLOW    true          //  "stdout是否跟随stdin",
#define CFG_STDIO_STDERR_FOLLOW    true          //  "stderr是否跟随stdin",
#define CFG_STDIO_FLOAT_PRINT      true          //  "支持浮点打印"
#define CFG_STDIO_STDIOFILE        true          //  "支持标准IO文件"
#define CFG_STDIO_IN_NAME              "/dev/UART1"     //  "标准输入设备名",
#define CFG_STDIO_OUT_NAME             "/dev/UART1"     //  "标准输出设备名",
#define CFG_STDIO_ERR_NAME             "/dev/UART1"     //  "标准err输出设备名",
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false             //   "使用静态IP?",
#define CFG_SELECT_NETCARD  "AT32F437_ETH"    //   "网卡名称",必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100"  //   "静态IP",
#define CFG_MY_SUBMASK      "255.255.255.0"  //   "子网掩码",
#define CFG_MY_GATWAY       "192.168.8.1"    //   "网关",
#define CFG_MY_DNS          "192.168.8.1"    //   "首选DNS",
#define CFG_MY_DNSBAK       "192.168.8.1"    //   "备用DNS",
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure modbus  ******************************************//
#define    CFG_MB_ASCII_TIMEOUT_SEC        100               //"从机用ASCII时，通信的超时时间",通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define    CFG_MB_FUNC_HANDLERS_MAX        16                //  
#define    CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF  32                //这个数字限制了从机ID数据的最大大小。
#define    CFG_MB_MASTER_DELAY_MS_CONVERT  200               //主站发送一个广播帧后主站等待延迟时间，时间到后才主站才可以发送其他帧
#define    CFG_MB_MASTER_TIMEOUT_MS_RESPOND  500               //  
#define    CFG_MB_MASTER_TOTAL_SLAVE_NUM   1                 //  
#define    CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_INPUT_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_HOLDING_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_HOLDING_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_COILS_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_COIL_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED  true              //   
#define    CFG_MB_FUNC_READWRITE_HOLDING_ENABLED  true              //   
#define    CFG_MB_MASTER_ENABLED           true              //   
#define    CFG_MB_MASTER_RTU_ENABLED       true              //   
#define    CFG_MB_M_DISCRETE_INPUT_START   0                 //  
#define    CFG_MB_M_DISCRETE_INPUT_NDISCRETES  0                 //  
#define    CFG_MB_M_COIL_START             0                 //  
#define    CFG_MB_M_COIL_NCOILS            0                 //  
#define    CFG_MB_M_REG_INPUT_START        0                 //  
#define    CFG_MB_M_REG_INPUT_NREGS        0                 //  
#define    CFG_MB_M_REG_HOLDING_START      0                 //  
#define    CFG_MB_M_REG_HOLDING_NREGS      65000             //  
#define    CFG_MB_M_PORT_NUM               2                 //"串口的端口号，例如要用/dev/UART2，就填2",例如要用/dev/UART2，就填2"
#define    CFG_MB_M_PORT_BAUDRATE          9600              //   
#define    CFG_MB_M_PORT_PARITY            MB_PAR_NONE       //   
#define    CFG_MB_SLAVE_ENABLED            false             //   
#define    CFG_MB_SLAVE_ASCII_ENABLED      false             //   
#define    CFG_MB_SLAVE_RTU_ENABLED        false             //   
#define    CFG_MB_SLAVE_TCP_ENABLED        false             //   
#define    CFG_MB_S_DISCRETE_INPUT_START   1                 //  
#define    CFG_MB_S_DISCRETE_INPUT_NDISCRETES  10                //  
#define    CFG_MB_S_COIL_START             11                //  
#define    CFG_MB_S_COIL_NCOILS            10                //  
#define    CFG_MB_S_REG_INPUT_START        21                //  
#define    CFG_MB_S_REG_INPUT_NREGS        10                //  
#define    CFG_MB_S_REG_HOLDING_START      31                //  
#define    CFG_MB_S_REG_HOLDING_NREGS      10                //  
#define    CFG_MB_S_ADDR                   2                 //  
#define    CFG_MB_S_PORT_NUM               2                 //"串口的端口号，例如要用/dev/UART2，就填2",例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
#define    CFG_MB_S_TCP_PORT_NUM           0                 //"使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效",使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
#define    CFG_MB_S_PORT_BAUDRATE          115200            //   
#define    CFG_MB_S_PORT_PARITY            MB_PAR_NONE       //   
#define    CFG_MB_S_TRANSFER_MODE          MB_RTU_MODE       //   
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           1                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

/*Modified at 2023-12-24 19:58:39*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end


#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32      //占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false      //分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512         //"片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4           //
#define CFG_EFLASH_BLOCK_SECT_NUM           32          //
#define CFG_EFLASH_PLANE1_SECT_NUM          256         //
#define CFG_EFLASH_PLANE2_SECT_NUM          256         //
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8           //
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8           //
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"   //
#define CFG_ETH_LOOP_CYCLE      1000         //中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true            //
#define CFG_ETH_HARD_MAC_ADDR   true            //
#define CFG_ETH_MAC_ADDR0      00           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06           //若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                //
#define CFG_SPI_DMA_BUF_LEN         256                //
#define CFG_SPI1_ENABLE             true              //
#define CFG_SPI2_ENABLE             false              //
#define CFG_SPI3_ENABLE             false              //
#define CFG_SPI4_ENABLE             false              //
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250     //这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       512      //
#define CFG_UART1_RECVBUF_LEN       512      //
#define CFG_UART1_DMABUF_LEN        512      //
#define CFG_UART2_SENDBUF_LEN       512      //
#define CFG_UART2_RECVBUF_LEN       512      //
#define CFG_UART2_DMABUF_LEN        512      //
#define CFG_UART3_SENDBUF_LEN       512      //
#define CFG_UART3_RECVBUF_LEN       512      //
#define CFG_UART3_DMABUF_LEN        512      //
#define CFG_UART4_SENDBUF_LEN       32      //
#define CFG_UART4_RECVBUF_LEN       32      //
#define CFG_UART4_DMABUF_LEN        32      //
#define CFG_UART5_SENDBUF_LEN       32      //
#define CFG_UART5_RECVBUF_LEN       32      //
#define CFG_UART5_DMABUF_LEN        32      //
#define CFG_UART6_SENDBUF_LEN       32      //
#define CFG_UART6_RECVBUF_LEN       32      //
#define CFG_UART6_DMABUF_LEN        32      //
#define CFG_UART7_SENDBUF_LEN       32      //
#define CFG_UART7_RECVBUF_LEN       32      //
#define CFG_UART7_DMABUF_LEN        32      //
#define CFG_UART8_SENDBUF_LEN       32      //
#define CFG_UART8_RECVBUF_LEN       32      //
#define CFG_UART8_DMABUF_LEN        32      //
#define CFG_UART1_ENABLE           true        //
#define CFG_UART2_ENABLE           true       //
#define CFG_UART3_ENABLE           true       //
#define CFG_UART4_ENABLE           false       //
#define CFG_UART5_ENABLE           false       //
#define CFG_UART6_ENABLE           false       //
#define CFG_UART7_ENABLE           false       //
#define CFG_UART8_ENABLE           false       //
#define CFG_UART1_TX_DMA_CHANNEL       DMA1_C1   //串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA1_C2   //串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA1_C3   //串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA1_C4   //串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA1_C5   //串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA1_C6   //串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE   //串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE   //串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE   //串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE   //串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE   //串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE   //串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE   //串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE   //串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE   //串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE   //串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG        //打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10      //定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false   //
#define     CFG_DHCPC_ENABLE            true    //
#define     CFG_DHCP_RENEWTIME          3600    //秒数
#define     CFG_DHCP_REBINDTIME         3600    //秒数
#define     CFG_DHCP_LEASETIME          3600    //秒数
#define     CFG_DHCPD_IPNUM             0x40    //64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"    //
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"  //
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"  //
#define     CFG_DHCPD_NETIP             "255.255.255.0"  //
#define     CFG_DHCPD_DNS               "192.168.0.253"  //
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"  //
#define     CFG_DHCPD_DOMAINNAME       "domain"        //
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0          //分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4         //分区结束，4表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false      //分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"    //需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512      //
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true   //
#define     CFG_FTPC_ENABLE            true    //
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true  //即使选false也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096    //定义初始化过程使用的栈空间一般按默认值就可以了
#define CFG_EVENT_LIMIT         22      //事件数量
#define CFG_EVENT_TYPE_LIMIT    22      //事件类型数
#define CFG_IDLESTACK_LIMIT     1024    //IDLE事件处理函数运行的栈尺寸一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30      //监视IDLE事件持续低于1/16 CPU占比的时间秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960    //main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false   //IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false   //true=用于资源紧缺的场合内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false   //在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8   //用完会自动扩充
#define CFG_HANDLE_LIMIT        8   //用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false       //
#define CFG_START_APP_IS_VERIFICATION      true       //
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN     //CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC   //
#define CFG_IBOOT_VERSION_SMALL       00        //xx.xx.__APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00        //xx.__.xxAPP忽略
#define CFG_IBOOT_VERSION_LARGE       01        //__.xx.xxAPP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"           //
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"            //
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40      //定义锁的数量包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10      //
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure modbus  ******************************************//
#define CFG_MB_ASCII_TIMEOUT_SEC                    100       //"从机用ASCII时，通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define CFG_MB_FUNC_HANDLERS_MAX                    16      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF           32      //这个数字限制了从机ID数据的最大大小。
#define CFG_MB_MASTER_DELAY_MS_CONVERT              200     //主站发送一个广播帧后主站等待延迟时间，时间到后才主站才可以发送其他帧
#define CFG_MB_MASTER_TIMEOUT_MS_RESPOND            500     //
#define CFG_MB_MASTER_TOTAL_SLAVE_NUM               1      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED       true    // "是否启用请求从机ID功能"
#define CFG_MB_FUNC_READ_INPUT_ENABLED              true    // "是否启用读输入寄存器功能"
#define CFG_MB_FUNC_READ_HOLDING_ENABLED            true    // "是否启用读保持寄存器功能"
#define CFG_MB_FUNC_WRITE_HOLDING_ENABLED           true    // "是否启用写单个寄存器功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true    // "是否启用写多个寄存器功能"
#define CFG_MB_FUNC_READ_COILS_ENABLED              true    // "是否启用读线圈功能"
#define CFG_MB_FUNC_WRITE_COIL_ENABLED              true    // "是否启用写线圈功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED    true    // "是否启用写多个线圈功能"
#define CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED    true    // "是否启用读离散输入功能"
#define CFG_MB_FUNC_READWRITE_HOLDING_ENABLED       true    // "是否启用读写多个寄存器功能"
#define CFG_MB_MASTER_ENABLED                       true    // "主机使能开关"
    #define CFG_MB_MASTER_RTU_ENABLED                   true    // "主机RTU使能开关"
    #define CFG_MB_M_DISCRETE_INPUT_START               0        //
    #define CFG_MB_M_DISCRETE_INPUT_NDISCRETES          0       //
    #define CFG_MB_M_COIL_START                         0       //
    #define CFG_MB_M_COIL_NCOILS                        0       //
    #define CFG_MB_M_REG_INPUT_START                    0       //
    #define CFG_MB_M_REG_INPUT_NREGS                    0       //
    #define CFG_MB_M_REG_HOLDING_START                  0       //
    #define CFG_MB_M_REG_HOLDING_NREGS                  65000       //
    #define CFG_MB_M_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"
    #define CFG_MB_M_PORT_BAUDRATE                      9600    // "串口波特率"
    #define CFG_MB_M_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
#define CFG_MB_SLAVE_ENABLED                       false    // "从机使能开关"
    #define CFG_MB_SLAVE_ASCII_ENABLED                  false    // "从机ASCII使能开关"
    #define CFG_MB_SLAVE_RTU_ENABLED                    false    // "从机RTU使能开关"
    #define CFG_MB_SLAVE_TCP_ENABLED                    false    // "从机TCP使能开关"
    #define CFG_MB_S_DISCRETE_INPUT_START               1        //
    #define CFG_MB_S_DISCRETE_INPUT_NDISCRETES          10       //
    #define CFG_MB_S_COIL_START                         11       //
    #define CFG_MB_S_COIL_NCOILS                        10       //
    #define CFG_MB_S_REG_INPUT_START                    21       //
    #define CFG_MB_S_REG_INPUT_NREGS                    10       //
    #define CFG_MB_S_REG_HOLDING_START                  31       //
    #define CFG_MB_S_REG_HOLDING_NREGS                  10       //
    #define CFG_MB_S_ADDR                               2        //
    #define CFG_MB_S_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
    #define CFG_MB_S_TCP_PORT_NUM                       0        //"使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
    #define CFG_MB_S_PORT_BAUDRATE                      115200    // "串口波特率"
    #define CFG_MB_S_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
    #define CFG_MB_S_TRANSFER_MODE                      MB_RTU_MODE    // "通信方式"
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false            //
#define CFG_SELECT_NETCARD  "AT32F437_ETH"   //必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100" //
#define CFG_MY_SUBMASK      "255.255.255.0" //
#define CFG_MY_GATWAY       "192.168.8.1"   //
#define CFG_MY_DNS          "192.168.8.1"   //
#define CFG_MY_DNSBAK       "192.168.8.1"   //
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"        //
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000      //
#define CFG_ADD_ROUTINE_SHELL      true        //
#define CFG_ADD_EXPAND_SHELL       true        //
#define CFG_ADD_GLOBAL_FUN         false       //
#define CFG_SHOW_ADD_SHEELL        true        //
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10      //占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5       //可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true    //选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true         //
#define CFG_STDIO_STDOUT_FOLLOW    true         //
#define CFG_STDIO_STDERR_FOLLOW    true         //
#define CFG_STDIO_FLOAT_PRINT      true         //
#define CFG_STDIO_STDIOFILE        true         //
#define CFG_STDIO_IN_NAME              "/dev/UART1"    //
#define CFG_STDIO_OUT_NAME             "/dev/UART1"    //
#define CFG_STDIO_ERR_NAME             "/dev/UART1"    //
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true    //资源充足才打开
#define     CFG_TCP_CCBNUM              10      //占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5       //占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10      //用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000  //
#define     CFG_TPL_PROTONUM            5       //占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true    //
#define     CFG_TELNETC_ENABLE          false   //
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8      //北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10      //占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4       //占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472       //udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000     //8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"      //需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1        //-1表示最后一块起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false      //"分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false      //"分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false      //
#define CFG_W25QXX_BYTES_PAGE               256        //
#define CFG_W25QXX_PAGES_SECTOR             16         //
#define CFG_W25QXX_SECTORS_BLOCK            16         //
#define CFG_W25QXX_SECTORS_NUM              2048       //
#define CFG_W25QXX_CHIP_ID                  0xEF18     //
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           1                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

/*Modified at 2023-12-24 19:58:44*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end


#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG         //  打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10       //  "设备数量",定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512       //  "C库文件用户态缓冲区尺寸"
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8    //  "对象数初始值"，用完会自动扩充
#define CFG_HANDLE_LIMIT        8    //  "句柄数初始值"，用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false        //  "是否支持在线更新Iboot"，
#define CFG_START_APP_IS_VERIFICATION      true        //  "启动app时是否执行校验功能"，
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN      //  "APP运行模式",CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行，
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC    //  "APP校验方法",
#define CFG_IBOOT_VERSION_SMALL       00         //  "Iboot版本号:低",xx.xx.__，APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00         //  "Iboot版本号:中",xx.__.xx，APP忽略
#define CFG_IBOOT_VERSION_LARGE       01         //  "Iboot版本号:高",__.xx.xx，APP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"            //  "待升级iboot默认存储路径"
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"             //  "待升级app默认存储路径"
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40       //  "锁的数量",定义锁的数量，包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10       //  "内存池数量限值",
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000       //  "执行shell命令的栈尺寸",
#define CFG_ADD_ROUTINE_SHELL      true         //  "是否添加常规shell命令",
#define CFG_ADD_EXPAND_SHELL       true         //  "是否添加拓展shell命令",
#define CFG_ADD_GLOBAL_FUN         false        //  "添加全局函数到shell",
#define CFG_SHOW_ADD_SHEELL        true         //  "编译时显示shell命令",
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                 //   "SPI缓冲区大小",
#define CFG_SPI_DMA_BUF_LEN         256                 //   "SPI DMA缓冲区大小",
#define CFG_SPI1_ENABLE             true               //   "是否配置使用SPI1",
#define CFG_SPI2_ENABLE             false               //   "是否配置使用SPI2",
#define CFG_SPI3_ENABLE             false               //   "是否配置使用SPI3",
#define CFG_SPI4_ENABLE             false               //   "是否配置使用SPI4",
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250      //   这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false       //  分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512          //  "片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4            //  "片内flash的扇区中有多少页"
#define CFG_EFLASH_BLOCK_SECT_NUM           32           //  "片内flash的块中有多少扇区"
#define CFG_EFLASH_PLANE1_SECT_NUM          256          //  "片1一共有多少扇区"
#define CFG_EFLASH_PLANE2_SECT_NUM          256          //  "片2一共有多少扇区"
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8            //  "片1一共有多少块"
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8            //  "片2一共有多少块"
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0           //  分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4          //  分区结束，-1表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false       //  分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"     //  需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       512       //   "UART1发送环形缓冲区大小",
#define CFG_UART1_RECVBUF_LEN       512       //   "UART1接收环形缓冲区大小",
#define CFG_UART1_DMABUF_LEN        512       //   "UART1 DMA环形缓冲区大小",
#define CFG_UART2_SENDBUF_LEN       512       //   "UART2发送环形缓冲区大小",
#define CFG_UART2_RECVBUF_LEN       512       //   "UART2接收环形缓冲区大小",
#define CFG_UART2_DMABUF_LEN        512       //   "UART2 DMA环形缓冲区大小",
#define CFG_UART3_SENDBUF_LEN       512       //   "UART3发送环形缓冲区大小",
#define CFG_UART3_RECVBUF_LEN       512       //   "UART3接收环形缓冲区大小",
#define CFG_UART3_DMABUF_LEN        512       //   "UART3 DMA环形缓冲区大小",
#define CFG_UART4_SENDBUF_LEN       32       //   "UART4发送环形缓冲区大小",
#define CFG_UART4_RECVBUF_LEN       32       //   "UART4接收环形缓冲区大小",
#define CFG_UART4_DMABUF_LEN        32       //   "UART4 DMA环形缓冲区大小",
#define CFG_UART5_SENDBUF_LEN       32       //   "UART5发送环形缓冲区大小",
#define CFG_UART5_RECVBUF_LEN       32       //   "UART5接收环形缓冲区大小",
#define CFG_UART5_DMABUF_LEN        32       //   "UART5 DMA环形缓冲区大小",
#define CFG_UART6_SENDBUF_LEN       32       //   "UART6发送环形缓冲区大小",
#define CFG_UART6_RECVBUF_LEN       32       //   "UART6接收环形缓冲区大小",
#define CFG_UART6_DMABUF_LEN        32       //   "UART6 DMA环形缓冲区大小",
#define CFG_UART7_SENDBUF_LEN       32       //   "UART7发送环形缓冲区大小",
#define CFG_UART7_RECVBUF_LEN       32       //   "UART7接收环形缓冲区大小",
#define CFG_UART7_DMABUF_LEN        32       //   "UART7 DMA环形缓冲区大小",
#define CFG_UART8_SENDBUF_LEN       32       //   "UART8发送环形缓冲区大小",
#define CFG_UART8_RECVBUF_LEN       32       //   "UART8接收环形缓冲区大小",
#define CFG_UART8_DMABUF_LEN        32       //   "UART8 DMA环形缓冲区大小",
#define CFG_UART1_ENABLE           true         //   "是否使用UART1",
#define CFG_UART2_ENABLE           true        //   "是否使用UART2",
#define CFG_UART3_ENABLE           true        //   "是否使用UART3",
#define CFG_UART4_ENABLE           false        //   "是否使用UART4",
#define CFG_UART5_ENABLE           false        //   "是否使用UART5",
#define CFG_UART6_ENABLE           false        //   "是否使用UART6",
#define CFG_UART7_ENABLE           false        //   "是否使用UART7",
#define CFG_UART8_ENABLE           false        //   "是否使用UART8",
#define CFG_UART1_TX_DMA_CHANNEL       DMA1_C1    //   串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA1_C2    //   串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA1_C3    //   串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA1_C4    //   串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA1_C5    //   串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA1_C6    //   串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE    //   串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE    //   串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE    //   串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE    //   串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE    //   串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE    //   串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE    //   串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE    //   串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE    //   串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE    //   串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true   //  "全功能动态分配",即使选false，也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096     //  "初始化栈空间",定义初始化过程使用的栈空间，一般按默认值就可以了
#define CFG_EVENT_LIMIT         22       //  "事件数量限值",事件数量
#define CFG_EVENT_TYPE_LIMIT    22       //  "事件类型数限值",事件类型数
#define CFG_IDLESTACK_LIMIT     1024     //  "IDLE事件栈尺寸",IDLE事件处理函数运行的栈尺寸，一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30       //  "IDLE监视周期",监视IDLE事件持续低于1/16 CPU占比的时间，秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960     //  "main函数栈尺寸",main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false    //  "IDLE监视狗叫复位使能"，IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false    //  "tiny版内核",true=用于资源紧缺的场合，内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false    //  "IDLE检查栈",在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"         //  "本地字符集",
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5        //  "定时器数量",可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true     //  "硬件定时器提供时钟源",选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000   //  "数据包缓冲区尺寸"
#define     CFG_TPL_PROTONUM            5        //  "支持的传输协议数"，占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true     //  "TCP乱序重组使能",资源充足才打开
#define     CFG_TCP_CCBNUM              10       //  "tcp 客户端数限值"，占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5        //  "tcp 服务器数限值"，占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10       //  "tcp socket hashtable长度"，用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true    //  "ftp 服务器使能"
#define     CFG_FTPC_ENABLE            true     //  "ftp 客户端使能"
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true     //  "telnet 服务器使能"
#define     CFG_TELNETC_ENABLE          false    //  "telnet 客户端使能"
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10       //  "socket数限值"，占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false    //  "DHCP 服务器使能"
#define     CFG_DHCPC_ENABLE            true     //  "DHCP 客户端使能"
#define     CFG_DHCP_RENEWTIME          3600     //  "renew timer",秒数
#define     CFG_DHCP_REBINDTIME         3600     //  "rebind timer",秒数
#define     CFG_DHCP_LEASETIME          3600     //  "lease timer",秒数
#define     CFG_DHCPD_IPNUM             0x40     //  "IP池尺寸",64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"     //  "DHCP起始IP",
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"   //  "DHCP SERVER IP"
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"   //  "DHCP ROUTER SERVER IP"
#define     CFG_DHCPD_NETIP             "255.255.255.0"   //  "DHCP MASK IP"
#define     CFG_DHCPD_DNS               "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DOMAINNAME       "domain"         //  "DHCP domain name"
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32       //  "ARP哈希表长度"，占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10       //  "UDP socket数限值"，占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4        //  "udp socket 哈希表长度"，占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472        //  udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000      //  8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"    //   "网卡名称",
#define CFG_ETH_LOOP_CYCLE      1000          //   "网卡轮询周期(uS)",中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true             //   "网卡接收是否轮询",
#define CFG_ETH_HARD_MAC_ADDR   true             //   "硬件生成Mac地址",
#define CFG_ETH_MAC_ADDR0      00            //   "MAC ADDR0",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02            //   "MAC ADDR1",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03            //   "MAC ADDR2",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04            //   "MAC ADDR3",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05            //   "MAC ADDR4",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06            //   "MAC ADDR5",若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false       //  "分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false       //  "是否使用QSPI模式"
#define CFG_W25QXX_BYTES_PAGE               256         //  "每页的字节数"
#define CFG_W25QXX_PAGES_SECTOR             16          //  "每个扇区有多少页"
#define CFG_W25QXX_SECTORS_BLOCK            16          //  "每个块有多少扇区"
#define CFG_W25QXX_SECTORS_NUM              2048        //  "总的扇区数"
#define CFG_W25QXX_CHIP_ID                  0xEF18      //  "芯片ID"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"       //  "文件系统mount点名字",需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1         //  "分区结束"，-1表示最后一块,起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false       //  "分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8       //  "时区",北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true          //  "是否支持多种输入设备",
#define CFG_STDIO_STDOUT_FOLLOW    true          //  "stdout是否跟随stdin",
#define CFG_STDIO_STDERR_FOLLOW    true          //  "stderr是否跟随stdin",
#define CFG_STDIO_FLOAT_PRINT      true          //  "支持浮点打印"
#define CFG_STDIO_STDIOFILE        true          //  "支持标准IO文件"
#define CFG_STDIO_IN_NAME              "/dev/UART1"     //  "标准输入设备名",
#define CFG_STDIO_OUT_NAME             "/dev/UART1"     //  "标准输出设备名",
#define CFG_STDIO_ERR_NAME             "/dev/UART1"     //  "标准err输出设备名",
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false             //   "使用静态IP?",
#define CFG_SELECT_NETCARD  "AT32F437_ETH"    //   "网卡名称",必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100"  //   "静态IP",
#define CFG_MY_SUBMASK      "255.255.255.0"  //   "子网掩码",
#define CFG_MY_GATWAY       "192.168.8.1"    //   "网关",
#define CFG_MY_DNS          "192.168.8.1"    //   "首选DNS",
#define CFG_MY_DNSBAK       "192.168.8.1"    //   "备用DNS",
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure modbus  ******************************************//
#define    CFG_MB_ASCII_TIMEOUT_SEC        100               //"从机用ASCII时，通信的超时时间",通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define    CFG_MB_FUNC_HANDLERS_MAX        16                //  
#define    CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF  32                //这个数字限制了从机ID数据的最大大小。
#define    CFG_MB_MASTER_DELAY_MS_CONVERT  200               //主站发送一个广播帧后主站等待延迟时间，时间到后才主站才可以发送其他帧
#define    CFG_MB_MASTER_TIMEOUT_MS_RESPOND  500               //  
#define    CFG_MB_MASTER_TOTAL_SLAVE_NUM   1                 //  
#define    CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_INPUT_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_HOLDING_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_HOLDING_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_COILS_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_COIL_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED  true              //   
#define    CFG_MB_FUNC_READWRITE_HOLDING_ENABLED  true              //   
#define    CFG_MB_MASTER_ENABLED           true              //   
#define    CFG_MB_MASTER_RTU_ENABLED       true              //   
#define    CFG_MB_M_DISCRETE_INPUT_START   0                 //  
#define    CFG_MB_M_DISCRETE_INPUT_NDISCRETES  0                 //  
#define    CFG_MB_M_COIL_START             0                 //  
#define    CFG_MB_M_COIL_NCOILS            0                 //  
#define    CFG_MB_M_REG_INPUT_START        0                 //  
#define    CFG_MB_M_REG_INPUT_NREGS        0                 //  
#define    CFG_MB_M_REG_HOLDING_START      0                 //  
#define    CFG_MB_M_REG_HOLDING_NREGS      65000             //  
#define    CFG_MB_M_PORT_NUM               2                 //"串口的端口号，例如要用/dev/UART2，就填2",例如要用/dev/UART2，就填2"
#define    CFG_MB_M_PORT_BAUDRATE          9600              //   
#define    CFG_MB_M_PORT_PARITY            MB_PAR_NONE       //   
#define    CFG_MB_SLAVE_ENABLED            false             //   
#define    CFG_MB_SLAVE_ASCII_ENABLED      false             //   
#define    CFG_MB_SLAVE_RTU_ENABLED        false             //   
#define    CFG_MB_SLAVE_TCP_ENABLED        false             //   
#define    CFG_MB_S_DISCRETE_INPUT_START   1                 //  
#define    CFG_MB_S_DISCRETE_INPUT_NDISCRETES  10                //  
#define    CFG_MB_S_COIL_START             11                //  
#define    CFG_MB_S_COIL_NCOILS            10                //  
#define    CFG_MB_S_REG_INPUT_START        21                //  
#define    CFG_MB_S_REG_INPUT_NREGS        10                //  
#define    CFG_MB_S_REG_HOLDING_START      31                //  
#define    CFG_MB_S_REG_HOLDING_NREGS      10                //  
#define    CFG_MB_S_ADDR                   2                 //  
#define    CFG_MB_S_PORT_NUM               2                 //"串口的端口号，例如要用/dev/UART2，就填2",例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
#define    CFG_MB_S_TCP_PORT_NUM           0                 //"使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效",使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
#define    CFG_MB_S_PORT_BAUDRATE          115200            //   
#define    CFG_MB_S_PORT_PARITY            MB_PAR_NONE       //   
#define    CFG_MB_S_TRANSFER_MODE          MB_RTU_MODE       //   
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG         //  打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10       //  "设备数量",定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512       //  "C库文件用户态缓冲区尺寸"
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8    //  "对象数初始值"，用完会自动扩充
#define CFG_HANDLE_LIMIT        8    //  "句柄数初始值"，用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false        //  "是否支持在线更新Iboot"，
#define CFG_START_APP_IS_VERIFICATION      true        //  "启动app时是否执行校验功能"，
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN      //  "APP运行模式",CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行，
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC    //  "APP校验方法",
#define CFG_IBOOT_VERSION_SMALL       00         //  "Iboot版本号:低",xx.xx.__，APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00         //  "Iboot版本号:中",xx.__.xx，APP忽略
#define CFG_IBOOT_VERSION_LARGE       01         //  "Iboot版本号:高",__.xx.xx，APP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"            //  "待升级iboot默认存储路径"
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"             //  "待升级app默认存储路径"
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40       //  "锁的数量",定义锁的数量，包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10       //  "内存池数量限值",
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000       //  "执行shell命令的栈尺寸",
#define CFG_ADD_ROUTINE_SHELL      true         //  "是否添加常规shell命令",
#define CFG_ADD_EXPAND_SHELL       true         //  "是否添加拓展shell命令",
#define CFG_ADD_GLOBAL_FUN         false        //  "添加全局函数到shell",
#define CFG_SHOW_ADD_SHEELL        true         //  "编译时显示shell命令",
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                 //   "SPI缓冲区大小",
#define CFG_SPI_DMA_BUF_LEN         256                 //   "SPI DMA缓冲区大小",
#define CFG_SPI1_ENABLE             true               //   "是否配置使用SPI1",
#define CFG_SPI2_ENABLE             false               //   "是否配置使用SPI2",
#define CFG_SPI3_ENABLE             false               //   "是否配置使用SPI3",
#define CFG_SPI4_ENABLE             false               //   "是否配置使用SPI4",
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250      //   这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false       //  分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512          //  "片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4            //  "片内flash的扇区中有多少页"
#define CFG_EFLASH_BLOCK_SECT_NUM           32           //  "片内flash的块中有多少扇区"
#define CFG_EFLASH_PLANE1_SECT_NUM          256          //  "片1一共有多少扇区"
#define CFG_EFLASH_PLANE2_SECT_NUM          256          //  "片2一共有多少扇区"
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8            //  "片1一共有多少块"
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8            //  "片2一共有多少块"
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0           //  分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4          //  分区结束，-1表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false       //  分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"     //  需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       512       //   "UART1发送环形缓冲区大小",
#define CFG_UART1_RECVBUF_LEN       512       //   "UART1接收环形缓冲区大小",
#define CFG_UART1_DMABUF_LEN        512       //   "UART1 DMA环形缓冲区大小",
#define CFG_UART2_SENDBUF_LEN       512       //   "UART2发送环形缓冲区大小",
#define CFG_UART2_RECVBUF_LEN       512       //   "UART2接收环形缓冲区大小",
#define CFG_UART2_DMABUF_LEN        512       //   "UART2 DMA环形缓冲区大小",
#define CFG_UART3_SENDBUF_LEN       512       //   "UART3发送环形缓冲区大小",
#define CFG_UART3_RECVBUF_LEN       512       //   "UART3接收环形缓冲区大小",
#define CFG_UART3_DMABUF_LEN        512       //   "UART3 DMA环形缓冲区大小",
#define CFG_UART4_SENDBUF_LEN       32       //   "UART4发送环形缓冲区大小",
#define CFG_UART4_RECVBUF_LEN       32       //   "UART4接收环形缓冲区大小",
#define CFG_UART4_DMABUF_LEN        32       //   "UART4 DMA环形缓冲区大小",
#define CFG_UART5_SENDBUF_LEN       32       //   "UART5发送环形缓冲区大小",
#define CFG_UART5_RECVBUF_LEN       32       //   "UART5接收环形缓冲区大小",
#define CFG_UART5_DMABUF_LEN        32       //   "UART5 DMA环形缓冲区大小",
#define CFG_UART6_SENDBUF_LEN       32       //   "UART6发送环形缓冲区大小",
#define CFG_UART6_RECVBUF_LEN       32       //   "UART6接收环形缓冲区大小",
#define CFG_UART6_DMABUF_LEN        32       //   "UART6 DMA环形缓冲区大小",
#define CFG_UART7_SENDBUF_LEN       32       //   "UART7发送环形缓冲区大小",
#define CFG_UART7_RECVBUF_LEN       32       //   "UART7接收环形缓冲区大小",
#define CFG_UART7_DMABUF_LEN        32       //   "UART7 DMA环形缓冲区大小",
#define CFG_UART8_SENDBUF_LEN       32       //   "UART8发送环形缓冲区大小",
#define CFG_UART8_RECVBUF_LEN       32       //   "UART8接收环形缓冲区大小",
#define CFG_UART8_DMABUF_LEN        32       //   "UART8 DMA环形缓冲区大小",
#define CFG_UART1_ENABLE           true         //   "是否使用UART1",
#define CFG_UART2_ENABLE           true        //   "是否使用UART2",
#define CFG_UART3_ENABLE           true        //   "是否使用UART3",
#define CFG_UART4_ENABLE           false        //   "是否使用UART4",
#define CFG_UART5_ENABLE           false        //   "是否使用UART5",
#define CFG_UART6_ENABLE           false        //   "是否使用UART6",
#define CFG_UART7_ENABLE           false        //   "是否使用UART7",
#define CFG_UART8_ENABLE           false        //   "是否使用UART8",
#define CFG_UART1_TX_DMA_CHANNEL       DMA1_C1    //   串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA1_C2    //   串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA1_C3    //   串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA1_C4    //   串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA1_C5    //   串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA1_C6    //   串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE    //   串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE    //   串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE    //   串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE    //   串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE    //   串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE    //   串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE    //   串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE    //   串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE    //   串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE    //   串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true   //  "全功能动态分配",即使选false，也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096     //  "初始化栈空间",定义初始化过程使用的栈空间，一般按默认值就可以了
#define CFG_EVENT_LIMIT         22       //  "事件数量限值",事件数量
#define CFG_EVENT_TYPE_LIMIT    22       //  "事件类型数限值",事件类型数
#define CFG_IDLESTACK_LIMIT     1024     //  "IDLE事件栈尺寸",IDLE事件处理函数运行的栈尺寸，一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30       //  "IDLE监视周期",监视IDLE事件持续低于1/16 CPU占比的时间，秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960     //  "main函数栈尺寸",main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false    //  "IDLE监视狗叫复位使能"，IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false    //  "tiny版内核",true=用于资源紧缺的场合，内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false    //  "IDLE检查栈",在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"         //  "本地字符集",
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5        //  "定时器数量",可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true     //  "硬件定时器提供时钟源",选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000   //  "数据包缓冲区尺寸"
#define     CFG_TPL_PROTONUM            5        //  "支持的传输协议数"，占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true     //  "TCP乱序重组使能",资源充足才打开
#define     CFG_TCP_CCBNUM              10       //  "tcp 客户端数限值"，占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5        //  "tcp 服务器数限值"，占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10       //  "tcp socket hashtable长度"，用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true    //  "ftp 服务器使能"
#define     CFG_FTPC_ENABLE            true     //  "ftp 客户端使能"
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true     //  "telnet 服务器使能"
#define     CFG_TELNETC_ENABLE          false    //  "telnet 客户端使能"
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10       //  "socket数限值"，占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false    //  "DHCP 服务器使能"
#define     CFG_DHCPC_ENABLE            true     //  "DHCP 客户端使能"
#define     CFG_DHCP_RENEWTIME          3600     //  "renew timer",秒数
#define     CFG_DHCP_REBINDTIME         3600     //  "rebind timer",秒数
#define     CFG_DHCP_LEASETIME          3600     //  "lease timer",秒数
#define     CFG_DHCPD_IPNUM             0x40     //  "IP池尺寸",64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"     //  "DHCP起始IP",
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"   //  "DHCP SERVER IP"
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"   //  "DHCP ROUTER SERVER IP"
#define     CFG_DHCPD_NETIP             "255.255.255.0"   //  "DHCP MASK IP"
#define     CFG_DHCPD_DNS               "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DOMAINNAME       "domain"         //  "DHCP domain name"
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32       //  "ARP哈希表长度"，占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10       //  "UDP socket数限值"，占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4        //  "udp socket 哈希表长度"，占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472        //  udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000      //  8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"    //   "网卡名称",
#define CFG_ETH_LOOP_CYCLE      1000          //   "网卡轮询周期(uS)",中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true             //   "网卡接收是否轮询",
#define CFG_ETH_HARD_MAC_ADDR   true             //   "硬件生成Mac地址",
#define CFG_ETH_MAC_ADDR0      00            //   "MAC ADDR0",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02            //   "MAC ADDR1",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03            //   "MAC ADDR2",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04            //   "MAC ADDR3",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05            //   "MAC ADDR4",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06            //   "MAC ADDR5",若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false       //  "分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false       //  "是否使用QSPI模式"
#define CFG_W25QXX_BYTES_PAGE               256         //  "每页的字节数"
#define CFG_W25QXX_PAGES_SECTOR             16          //  "每个扇区有多少页"
#define CFG_W25QXX_SECTORS_BLOCK            16          //  "每个块有多少扇区"
#define CFG_W25QXX_SECTORS_NUM              2048        //  "总的扇区数"
#define CFG_W25QXX_CHIP_ID                  0xEF18      //  "芯片ID"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"       //  "文件系统mount点名字",需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1         //  "分区结束"，-1表示最后一块,起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false       //  "分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8       //  "时区",北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true          //  "是否支持多种输入设备",
#define CFG_STDIO_STDOUT_FOLLOW    true          //  "stdout是否跟随stdin",
#define CFG_STDIO_STDERR_FOLLOW    true          //  "stderr是否跟随stdin",
#define CFG_STDIO_FLOAT_PRINT      true          //  "支持浮点打印"
#define CFG_STDIO_STDIOFILE        true          //  "支持标准IO文件"
#define CFG_STDIO_IN_NAME              "/dev/UART1"     //  "标准输入设备名",
#define CFG_STDIO_OUT_NAME             "/dev/UART1"     //  "标准输出设备名",
#define CFG_STDIO_ERR_NAME             "/dev/UART1"     //  "标准err输出设备名",
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false             //   "使用静态IP?",
#define CFG_SELECT_NETCARD  "AT32F437_ETH"    //   "网卡名称",必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100"  //   "静态IP",
#define CFG_MY_SUBMASK      "255.255.255.0"  //   "子网掩码",
#define CFG_MY_GATWAY       "192.168.8.1"    //   "网关",
#define CFG_MY_DNS          "192.168.8.1"    //   "首选DNS",
#define CFG_MY_DNSBAK       "192.168.8.1"    //   "备用DNS",
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure modbus  ******************************************//
#define    CFG_MB_ASCII_TIMEOUT_SEC        100               //"从机用ASCII时，通信的超时时间",通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define    CFG_MB_FUNC_HANDLERS_MAX        16                //  
#define    CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF  32                //这个数字限制了从机ID数据的最大大小。
#define    CFG_MB_MASTER_DELAY_MS_CONVERT  200               //主站发送一个广播帧后主站等待延迟时间，时间到后才主站才可以发送其他帧
#define    CFG_MB_MASTER_TIMEOUT_MS_RESPOND  500               //  
#define    CFG_MB_MASTER_TOTAL_SLAVE_NUM   1                 //  
#define    CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_INPUT_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_HOLDING_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_HOLDING_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_COILS_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_COIL_ENABLED  true              //   
#define    CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED  true              //   
#define    CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED  true              //   
#define    CFG_MB_FUNC_READWRITE_HOLDING_ENABLED  true              //   
#define    CFG_MB_MASTER_ENABLED           true              //   
#define    CFG_MB_MASTER_RTU_ENABLED       true              //   
#define    CFG_MB_M_DISCRETE_INPUT_START   0                 //  
#define    CFG_MB_M_DISCRETE_INPUT_NDISCRETES  0                 //  
#define    CFG_MB_M_COIL_START             0                 //  
#define    CFG_MB_M_COIL_NCOILS            0                 //  
#define    CFG_MB_M_REG_INPUT_START        0                 //  
#define    CFG_MB_M_REG_INPUT_NREGS        0                 //  
#define    CFG_MB_M_REG_HOLDING_START      0                 //  
#define    CFG_MB_M_REG_HOLDING_NREGS      65000             //  
#define    CFG_MB_M_PORT_NUM               2                 //"串口的端口号，例如要用/dev/UART2，就填2",例如要用/dev/UART2，就填2"
#define    CFG_MB_M_PORT_BAUDRATE          9600              //   
#define    CFG_MB_M_PORT_PARITY            MB_PAR_NONE       //   
#define    CFG_MB_SLAVE_ENABLED            false             //   
#define    CFG_MB_SLAVE_ASCII_ENABLED      false             //   
#define    CFG_MB_SLAVE_RTU_ENABLED        false             //   
#define    CFG_MB_SLAVE_TCP_ENABLED        false             //   
#define    CFG_MB_S_DISCRETE_INPUT_START   1                 //  
#define    CFG_MB_S_DISCRETE_INPUT_NDISCRETES  10                //  
#define    CFG_MB_S_COIL_START             11                //  
#define    CFG_MB_S_COIL_NCOILS            10                //  
#define    CFG_MB_S_REG_INPUT_START        21                //  
#define    CFG_MB_S_REG_INPUT_NREGS        10                //  
#define    CFG_MB_S_REG_HOLDING_START      31                //  
#define    CFG_MB_S_REG_HOLDING_NREGS      10                //  
#define    CFG_MB_S_ADDR                   2                 //  
#define    CFG_MB_S_PORT_NUM               2                 //"串口的端口号，例如要用/dev/UART2，就填2",例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
#define    CFG_MB_S_TCP_PORT_NUM           0                 //"使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效",使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
#define    CFG_MB_S_PORT_BAUDRATE          115200            //   
#define    CFG_MB_S_PORT_PARITY            MB_PAR_NONE       //   
#define    CFG_MB_S_TRANSFER_MODE          MB_RTU_MODE       //   
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           1                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

/*Modified at 2023-12-28 19:50:08*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end


#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32      //占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false      //分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512         //"片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4           //
#define CFG_EFLASH_BLOCK_SECT_NUM           32          //
#define CFG_EFLASH_PLANE1_SECT_NUM          256         //
#define CFG_EFLASH_PLANE2_SECT_NUM          256         //
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8           //
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8           //
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"   //
#define CFG_ETH_LOOP_CYCLE      1000         //中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true            //
#define CFG_ETH_HARD_MAC_ADDR   true            //
#define CFG_ETH_MAC_ADDR0      00           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06           //若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                //
#define CFG_SPI_DMA_BUF_LEN         256                //
#define CFG_SPI1_ENABLE             true              //
#define CFG_SPI2_ENABLE             false              //
#define CFG_SPI3_ENABLE             false              //
#define CFG_SPI4_ENABLE             false              //
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250     //这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       512      //
#define CFG_UART1_RECVBUF_LEN       512      //
#define CFG_UART1_DMABUF_LEN        512      //
#define CFG_UART2_SENDBUF_LEN       512      //
#define CFG_UART2_RECVBUF_LEN       512      //
#define CFG_UART2_DMABUF_LEN        512      //
#define CFG_UART3_SENDBUF_LEN       512      //
#define CFG_UART3_RECVBUF_LEN       512      //
#define CFG_UART3_DMABUF_LEN        512      //
#define CFG_UART4_SENDBUF_LEN       32      //
#define CFG_UART4_RECVBUF_LEN       32      //
#define CFG_UART4_DMABUF_LEN        32      //
#define CFG_UART5_SENDBUF_LEN       32      //
#define CFG_UART5_RECVBUF_LEN       32      //
#define CFG_UART5_DMABUF_LEN        32      //
#define CFG_UART6_SENDBUF_LEN       32      //
#define CFG_UART6_RECVBUF_LEN       32      //
#define CFG_UART6_DMABUF_LEN        32      //
#define CFG_UART7_SENDBUF_LEN       32      //
#define CFG_UART7_RECVBUF_LEN       32      //
#define CFG_UART7_DMABUF_LEN        32      //
#define CFG_UART8_SENDBUF_LEN       32      //
#define CFG_UART8_RECVBUF_LEN       32      //
#define CFG_UART8_DMABUF_LEN        32      //
#define CFG_UART1_ENABLE           true        //
#define CFG_UART2_ENABLE           true       //
#define CFG_UART3_ENABLE           true       //
#define CFG_UART4_ENABLE           false       //
#define CFG_UART5_ENABLE           false       //
#define CFG_UART6_ENABLE           false       //
#define CFG_UART7_ENABLE           false       //
#define CFG_UART8_ENABLE           false       //
#define CFG_UART1_TX_DMA_CHANNEL       DMA1_C1   //串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA1_C2   //串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA1_C3   //串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA1_C4   //串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA1_C5   //串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA1_C6   //串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE   //串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE   //串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE   //串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE   //串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE   //串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE   //串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE   //串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE   //串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE   //串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE   //串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG        //打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10      //定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false   //
#define     CFG_DHCPC_ENABLE            true    //
#define     CFG_DHCP_RENEWTIME          3600    //秒数
#define     CFG_DHCP_REBINDTIME         3600    //秒数
#define     CFG_DHCP_LEASETIME          3600    //秒数
#define     CFG_DHCPD_IPNUM             0x40    //64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"    //
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"  //
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"  //
#define     CFG_DHCPD_NETIP             "255.255.255.0"  //
#define     CFG_DHCPD_DNS               "192.168.0.253"  //
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"  //
#define     CFG_DHCPD_DOMAINNAME       "domain"        //
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0          //分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4         //分区结束，4表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false      //分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"    //需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512      //
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true   //
#define     CFG_FTPC_ENABLE            true    //
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true  //即使选false也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096    //定义初始化过程使用的栈空间一般按默认值就可以了
#define CFG_EVENT_LIMIT         22      //事件数量
#define CFG_EVENT_TYPE_LIMIT    22      //事件类型数
#define CFG_IDLESTACK_LIMIT     1024    //IDLE事件处理函数运行的栈尺寸一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30      //监视IDLE事件持续低于1/16 CPU占比的时间秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960    //main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false   //IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false   //true=用于资源紧缺的场合内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false   //在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8   //用完会自动扩充
#define CFG_HANDLE_LIMIT        8   //用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false       //
#define CFG_START_APP_IS_VERIFICATION      true       //
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN     //CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC   //
#define CFG_IBOOT_VERSION_SMALL       00        //xx.xx.__APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00        //xx.__.xxAPP忽略
#define CFG_IBOOT_VERSION_LARGE       01        //__.xx.xxAPP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"           //
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"            //
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40      //定义锁的数量包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10      //
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure modbus  ******************************************//
#define CFG_MB_ASCII_TIMEOUT_SEC                    100       //"从机用ASCII时，通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define CFG_MB_FUNC_HANDLERS_MAX                    16      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF           32      //这个数字限制了从机ID数据的最大大小。
#define CFG_MB_MASTER_DELAY_MS_CONVERT              200     //主站发送一个广播帧后主站等待延迟时间，时间到后才主站才可以发送其他帧
#define CFG_MB_MASTER_TIMEOUT_MS_RESPOND            500     //
#define CFG_MB_MASTER_TOTAL_SLAVE_NUM               1      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED       true    // "是否启用请求从机ID功能"
#define CFG_MB_FUNC_READ_INPUT_ENABLED              true    // "是否启用读输入寄存器功能"
#define CFG_MB_FUNC_READ_HOLDING_ENABLED            true    // "是否启用读保持寄存器功能"
#define CFG_MB_FUNC_WRITE_HOLDING_ENABLED           true    // "是否启用写单个寄存器功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true    // "是否启用写多个寄存器功能"
#define CFG_MB_FUNC_READ_COILS_ENABLED              true    // "是否启用读线圈功能"
#define CFG_MB_FUNC_WRITE_COIL_ENABLED              true    // "是否启用写线圈功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED    true    // "是否启用写多个线圈功能"
#define CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED    true    // "是否启用读离散输入功能"
#define CFG_MB_FUNC_READWRITE_HOLDING_ENABLED       true    // "是否启用读写多个寄存器功能"
#define CFG_MB_MASTER_ENABLED                       true    // "主机使能开关"
    #define CFG_MB_MASTER_RTU_ENABLED                   true    // "主机RTU使能开关"
    #define CFG_MB_M_DISCRETE_INPUT_START               0        //
    #define CFG_MB_M_DISCRETE_INPUT_NDISCRETES          0       //
    #define CFG_MB_M_COIL_START                         0       //
    #define CFG_MB_M_COIL_NCOILS                        0       //
    #define CFG_MB_M_REG_INPUT_START                    0       //
    #define CFG_MB_M_REG_INPUT_NREGS                    0       //
    #define CFG_MB_M_REG_HOLDING_START                  0       //
    #define CFG_MB_M_REG_HOLDING_NREGS                  65000       //
    #define CFG_MB_M_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"
    #define CFG_MB_M_PORT_BAUDRATE                      9600    // "串口波特率"
    #define CFG_MB_M_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
#define CFG_MB_SLAVE_ENABLED                       false    // "从机使能开关"
    #define CFG_MB_SLAVE_ASCII_ENABLED                  false    // "从机ASCII使能开关"
    #define CFG_MB_SLAVE_RTU_ENABLED                    false    // "从机RTU使能开关"
    #define CFG_MB_SLAVE_TCP_ENABLED                    false    // "从机TCP使能开关"
    #define CFG_MB_S_DISCRETE_INPUT_START               1        //
    #define CFG_MB_S_DISCRETE_INPUT_NDISCRETES          10       //
    #define CFG_MB_S_COIL_START                         11       //
    #define CFG_MB_S_COIL_NCOILS                        10       //
    #define CFG_MB_S_REG_INPUT_START                    21       //
    #define CFG_MB_S_REG_INPUT_NREGS                    10       //
    #define CFG_MB_S_REG_HOLDING_START                  31       //
    #define CFG_MB_S_REG_HOLDING_NREGS                  10       //
    #define CFG_MB_S_ADDR                               2        //
    #define CFG_MB_S_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
    #define CFG_MB_S_TCP_PORT_NUM                       0        //"使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
    #define CFG_MB_S_PORT_BAUDRATE                      115200    // "串口波特率"
    #define CFG_MB_S_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
    #define CFG_MB_S_TRANSFER_MODE                      MB_RTU_MODE    // "通信方式"
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false            //
#define CFG_SELECT_NETCARD  "AT32F437_ETH"   //必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100" //
#define CFG_MY_SUBMASK      "255.255.255.0" //
#define CFG_MY_GATWAY       "192.168.8.1"   //
#define CFG_MY_DNS          "192.168.8.1"   //
#define CFG_MY_DNSBAK       "192.168.8.1"   //
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"        //
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000      //
#define CFG_ADD_ROUTINE_SHELL      true        //
#define CFG_ADD_EXPAND_SHELL       true        //
#define CFG_ADD_GLOBAL_FUN         false       //
#define CFG_SHOW_ADD_SHEELL        true        //
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10      //占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5       //可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true    //选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true         //
#define CFG_STDIO_STDOUT_FOLLOW    true         //
#define CFG_STDIO_STDERR_FOLLOW    true         //
#define CFG_STDIO_FLOAT_PRINT      true         //
#define CFG_STDIO_STDIOFILE        true         //
#define CFG_STDIO_IN_NAME              "/dev/UART1"    //
#define CFG_STDIO_OUT_NAME             "/dev/UART1"    //
#define CFG_STDIO_ERR_NAME             "/dev/UART1"    //
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true    //资源充足才打开
#define     CFG_TCP_CCBNUM              10      //占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5       //占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10      //用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000  //
#define     CFG_TPL_PROTONUM            5       //占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true    //
#define     CFG_TELNETC_ENABLE          false   //
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8      //北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10      //占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4       //占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472       //udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000     //8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"      //需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1        //-1表示最后一块起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false      //"分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false      //"分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false      //
#define CFG_W25QXX_BYTES_PAGE               256        //
#define CFG_W25QXX_PAGES_SECTOR             16         //
#define CFG_W25QXX_SECTORS_BLOCK            16         //
#define CFG_W25QXX_SECTORS_NUM              2048       //
#define CFG_W25QXX_CHIP_ID                  0xEF18     //
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           1                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

/*Modified at 2023-12-28 19:50:14*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end


#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG         //  打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10       //  "设备数量",定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512       //  "C库文件用户态缓冲区尺寸"
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8    //  "对象数初始值"，用完会自动扩充
#define CFG_HANDLE_LIMIT        8    //  "句柄数初始值"，用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false        //  "是否支持在线更新Iboot"，
#define CFG_START_APP_IS_VERIFICATION      true        //  "启动app时是否执行校验功能"，
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN      //  "APP运行模式",CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行，
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC    //  "APP校验方法",
#define CFG_IBOOT_VERSION_SMALL       00         //  "Iboot版本号:低",xx.xx.__，APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00         //  "Iboot版本号:中",xx.__.xx，APP忽略
#define CFG_IBOOT_VERSION_LARGE       01         //  "Iboot版本号:高",__.xx.xx，APP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"            //  "待升级iboot默认存储路径"
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"             //  "待升级app默认存储路径"
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40       //  "锁的数量",定义锁的数量，包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10       //  "内存池数量限值",
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000       //  "执行shell命令的栈尺寸",
#define CFG_ADD_ROUTINE_SHELL      true         //  "是否添加常规shell命令",
#define CFG_ADD_EXPAND_SHELL       true         //  "是否添加拓展shell命令",
#define CFG_ADD_GLOBAL_FUN         false        //  "添加全局函数到shell",
#define CFG_SHOW_ADD_SHEELL        true         //  "编译时显示shell命令",
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                 //   "SPI缓冲区大小",
#define CFG_SPI_DMA_BUF_LEN         256                 //   "SPI DMA缓冲区大小",
#define CFG_SPI1_ENABLE             true               //   "是否配置使用SPI1",
#define CFG_SPI2_ENABLE             false               //   "是否配置使用SPI2",
#define CFG_SPI3_ENABLE             false               //   "是否配置使用SPI3",
#define CFG_SPI4_ENABLE             false               //   "是否配置使用SPI4",
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       512       //   "UART1发送环形缓冲区大小",
#define CFG_UART1_RECVBUF_LEN       512       //   "UART1接收环形缓冲区大小",
#define CFG_UART1_DMABUF_LEN        512       //   "UART1 DMA环形缓冲区大小",
#define CFG_UART2_SENDBUF_LEN       512       //   "UART2发送环形缓冲区大小",
#define CFG_UART2_RECVBUF_LEN       512       //   "UART2接收环形缓冲区大小",
#define CFG_UART2_DMABUF_LEN        512       //   "UART2 DMA环形缓冲区大小",
#define CFG_UART3_SENDBUF_LEN       512       //   "UART3发送环形缓冲区大小",
#define CFG_UART3_RECVBUF_LEN       512       //   "UART3接收环形缓冲区大小",
#define CFG_UART3_DMABUF_LEN        512       //   "UART3 DMA环形缓冲区大小",
#define CFG_UART4_SENDBUF_LEN       32       //   "UART4发送环形缓冲区大小",
#define CFG_UART4_RECVBUF_LEN       32       //   "UART4接收环形缓冲区大小",
#define CFG_UART4_DMABUF_LEN        32       //   "UART4 DMA环形缓冲区大小",
#define CFG_UART5_SENDBUF_LEN       32       //   "UART5发送环形缓冲区大小",
#define CFG_UART5_RECVBUF_LEN       32       //   "UART5接收环形缓冲区大小",
#define CFG_UART5_DMABUF_LEN        32       //   "UART5 DMA环形缓冲区大小",
#define CFG_UART6_SENDBUF_LEN       32       //   "UART6发送环形缓冲区大小",
#define CFG_UART6_RECVBUF_LEN       32       //   "UART6接收环形缓冲区大小",
#define CFG_UART6_DMABUF_LEN        32       //   "UART6 DMA环形缓冲区大小",
#define CFG_UART7_SENDBUF_LEN       32       //   "UART7发送环形缓冲区大小",
#define CFG_UART7_RECVBUF_LEN       32       //   "UART7接收环形缓冲区大小",
#define CFG_UART7_DMABUF_LEN        32       //   "UART7 DMA环形缓冲区大小",
#define CFG_UART8_SENDBUF_LEN       32       //   "UART8发送环形缓冲区大小",
#define CFG_UART8_RECVBUF_LEN       32       //   "UART8接收环形缓冲区大小",
#define CFG_UART8_DMABUF_LEN        32       //   "UART8 DMA环形缓冲区大小",
#define CFG_UART1_ENABLE           true         //   "是否使用UART1",
#define CFG_UART2_ENABLE           true        //   "是否使用UART2",
#define CFG_UART3_ENABLE           true        //   "是否使用UART3",
#define CFG_UART4_ENABLE           false        //   "是否使用UART4",
#define CFG_UART5_ENABLE           false        //   "是否使用UART5",
#define CFG_UART6_ENABLE           false        //   "是否使用UART6",
#define CFG_UART7_ENABLE           false        //   "是否使用UART7",
#define CFG_UART8_ENABLE           false        //   "是否使用UART8",
#define CFG_UART1_TX_DMA_CHANNEL       DMA1_C1    //   串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA1_C2    //   串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA1_C3    //   串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA1_C4    //   串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA1_C5    //   串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA1_C6    //   串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE    //   串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE    //   串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE    //   串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE    //   串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE    //   串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE    //   串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE    //   串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE    //   串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE    //   串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE    //   串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250      //   这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false       //  分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512          //  "片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4            //  "片内flash的扇区中有多少页"
#define CFG_EFLASH_BLOCK_SECT_NUM           32           //  "片内flash的块中有多少扇区"
#define CFG_EFLASH_PLANE1_SECT_NUM          256          //  "片1一共有多少扇区"
#define CFG_EFLASH_PLANE2_SECT_NUM          256          //  "片2一共有多少扇区"
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8            //  "片1一共有多少块"
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8            //  "片2一共有多少块"
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0           //  分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4          //  分区结束，-1表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false       //  分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"     //  需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true   //  "全功能动态分配",即使选false，也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096     //  "初始化栈空间",定义初始化过程使用的栈空间，一般按默认值就可以了
#define CFG_EVENT_LIMIT         22       //  "事件数量限值",事件数量
#define CFG_EVENT_TYPE_LIMIT    22       //  "事件类型数限值",事件类型数
#define CFG_IDLESTACK_LIMIT     1024     //  "IDLE事件栈尺寸",IDLE事件处理函数运行的栈尺寸，一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30       //  "IDLE监视周期",监视IDLE事件持续低于1/16 CPU占比的时间，秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960     //  "main函数栈尺寸",main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false    //  "IDLE监视狗叫复位使能"，IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false    //  "tiny版内核",true=用于资源紧缺的场合，内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false    //  "IDLE检查栈",在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"         //  "本地字符集",
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5        //  "定时器数量",可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true     //  "硬件定时器提供时钟源",选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000   //  "数据包缓冲区尺寸"
#define     CFG_TPL_PROTONUM            5        //  "支持的传输协议数"，占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true     //  "TCP乱序重组使能",资源充足才打开
#define     CFG_TCP_CCBNUM              10       //  "tcp 客户端数限值"，占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5        //  "tcp 服务器数限值"，占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10       //  "tcp socket hashtable长度"，用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true    //  "ftp 服务器使能"
#define     CFG_FTPC_ENABLE            true     //  "ftp 客户端使能"
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true     //  "telnet 服务器使能"
#define     CFG_TELNETC_ENABLE          false    //  "telnet 客户端使能"
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10       //  "socket数限值"，占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false    //  "DHCP 服务器使能"
#define     CFG_DHCPC_ENABLE            true     //  "DHCP 客户端使能"
#define     CFG_DHCP_RENEWTIME          3600     //  "renew timer",秒数
#define     CFG_DHCP_REBINDTIME         3600     //  "rebind timer",秒数
#define     CFG_DHCP_LEASETIME          3600     //  "lease timer",秒数
#define     CFG_DHCPD_IPNUM             0x40     //  "IP池尺寸",64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"     //  "DHCP起始IP",
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"   //  "DHCP SERVER IP"
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"   //  "DHCP ROUTER SERVER IP"
#define     CFG_DHCPD_NETIP             "255.255.255.0"   //  "DHCP MASK IP"
#define     CFG_DHCPD_DNS               "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DOMAINNAME       "domain"         //  "DHCP domain name"
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32       //  "ARP哈希表长度"，占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10       //  "UDP socket数限值"，占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4        //  "udp socket 哈希表长度"，占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472        //  udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000      //  8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"    //   "网卡名称",
#define CFG_ETH_LOOP_CYCLE      1000          //   "网卡轮询周期(uS)",中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true             //   "网卡接收是否轮询",
#define CFG_ETH_HARD_MAC_ADDR   true             //   "硬件生成Mac地址",
#define CFG_ETH_MAC_ADDR0      00            //   "MAC ADDR0",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02            //   "MAC ADDR1",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03            //   "MAC ADDR2",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04            //   "MAC ADDR3",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05            //   "MAC ADDR4",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06            //   "MAC ADDR5",若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false       //  "分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false       //  "是否使用QSPI模式"
#define CFG_W25QXX_BYTES_PAGE               256         //  "每页的字节数"
#define CFG_W25QXX_PAGES_SECTOR             16          //  "每个扇区有多少页"
#define CFG_W25QXX_SECTORS_BLOCK            16          //  "每个块有多少扇区"
#define CFG_W25QXX_SECTORS_NUM              2048        //  "总的扇区数"
#define CFG_W25QXX_CHIP_ID                  0xEF18      //  "芯片ID"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"       //  "文件系统mount点名字",需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1         //  "分区结束"，-1表示最后一块,起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false       //  "分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8       //  "时区",北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true          //  "是否支持多种输入设备",
#define CFG_STDIO_STDOUT_FOLLOW    true          //  "stdout是否跟随stdin",
#define CFG_STDIO_STDERR_FOLLOW    true          //  "stderr是否跟随stdin",
#define CFG_STDIO_FLOAT_PRINT      true          //  "支持浮点打印"
#define CFG_STDIO_STDIOFILE        true          //  "支持标准IO文件"
#define CFG_STDIO_IN_NAME              "/dev/UART1"     //  "标准输入设备名",
#define CFG_STDIO_OUT_NAME             "/dev/UART1"     //  "标准输出设备名",
#define CFG_STDIO_ERR_NAME             "/dev/UART1"     //  "标准err输出设备名",
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false             //   "使用静态IP?",
#define CFG_SELECT_NETCARD  "AT32F437_ETH"    //   "网卡名称",必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100"  //   "静态IP",
#define CFG_MY_SUBMASK      "255.255.255.0"  //   "子网掩码",
#define CFG_MY_GATWAY       "192.168.8.1"    //   "网关",
#define CFG_MY_DNS          "192.168.8.1"    //   "首选DNS",
#define CFG_MY_DNSBAK       "192.168.8.1"    //   "备用DNS",
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure modbus  ******************************************//
#define CFG_MB_ASCII_TIMEOUT_SEC                    100        //  "从机用ASCII时，通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define CFG_MB_FUNC_HANDLERS_MAX                    16       //  "协议栈应该支持的Modbus功能码的最大数量"
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF           32       //  "从机ID数据长度",这个数字限制了从机ID数据的最大大小。
#define CFG_MB_MASTER_DELAY_MS_CONVERT              200      //  "等待延迟时间",主站发送一个广播帧后，主站等待延迟时间，时间到后才主站才可以发送其他帧
#define CFG_MB_MASTER_TIMEOUT_MS_RESPOND            500      //  "从机响应超时时间"
#define CFG_MB_MASTER_TOTAL_SLAVE_NUM               1       //  "从机总数"
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED       true     //   "是否启用请求从机ID功能"
#define CFG_MB_FUNC_READ_INPUT_ENABLED              true     //   "是否启用读输入寄存器功能"
#define CFG_MB_FUNC_READ_HOLDING_ENABLED            true     //   "是否启用读保持寄存器功能"
#define CFG_MB_FUNC_WRITE_HOLDING_ENABLED           true     //   "是否启用写单个寄存器功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true     //   "是否启用写多个寄存器功能"
#define CFG_MB_FUNC_READ_COILS_ENABLED              true     //   "是否启用读线圈功能"
#define CFG_MB_FUNC_WRITE_COIL_ENABLED              true     //   "是否启用写线圈功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED    true     //   "是否启用写多个线圈功能"
#define CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED    true     //   "是否启用读离散输入功能"
#define CFG_MB_FUNC_READWRITE_HOLDING_ENABLED       true     //   "是否启用读写多个寄存器功能"
#define CFG_MB_MASTER_ENABLED                       true     //   "主机使能开关"
    #define CFG_MB_MASTER_RTU_ENABLED                   true     //   "主机RTU使能开关"
    #define CFG_MB_M_DISCRETE_INPUT_START               0         //  "主机离散量输入的起始地址"
    #define CFG_MB_M_DISCRETE_INPUT_NDISCRETES          0        //  "主机离散量输入的数量"
    #define CFG_MB_M_COIL_START                         0        //  "主机线圈的起始地址"
    #define CFG_MB_M_COIL_NCOILS                        0        //  "主机线圈的数量"
    #define CFG_MB_M_REG_INPUT_START                    0        //  "主机输入寄存器的起始地址"
    #define CFG_MB_M_REG_INPUT_NREGS                    0        //  "主机输入寄存器的数量"
    #define CFG_MB_M_REG_HOLDING_START                  0        //  "主机保持寄存器的起始地址"
    #define CFG_MB_M_REG_HOLDING_NREGS                  65000        //  "主机保持寄存器的数量"
    #define CFG_MB_M_PORT_NUM                           2         //  "串口的端口号，例如要用/dev/UART2，就填2"
    #define CFG_MB_M_PORT_BAUDRATE                      9600     //   "串口波特率"
    #define CFG_MB_M_PORT_PARITY                        MB_PAR_NONE     //   "校验方式"
#define CFG_MB_SLAVE_ENABLED                       false     //   "从机使能开关"
    #define CFG_MB_SLAVE_ASCII_ENABLED                  false     //   "从机ASCII使能开关"
    #define CFG_MB_SLAVE_RTU_ENABLED                    false     //   "从机RTU使能开关"
    #define CFG_MB_SLAVE_TCP_ENABLED                    false     //   "从机TCP使能开关"
    #define CFG_MB_S_DISCRETE_INPUT_START               1         //  "从机离散量输入的起始地址"
    #define CFG_MB_S_DISCRETE_INPUT_NDISCRETES          10        //  "从机离散量输入的数量"
    #define CFG_MB_S_COIL_START                         11        //  "从机线圈的起始地址。"
    #define CFG_MB_S_COIL_NCOILS                        10        //  "从机线圈的数量"
    #define CFG_MB_S_REG_INPUT_START                    21        //  "从机输入寄存器的起始地址"
    #define CFG_MB_S_REG_INPUT_NREGS                    10        //  "从机输入寄存器的数量"
    #define CFG_MB_S_REG_HOLDING_START                  31        //  "从机保持寄存器的起始地址"
    #define CFG_MB_S_REG_HOLDING_NREGS                  10        //  "从机保持寄存器的数量"
    #define CFG_MB_S_ADDR                               2         //  "从机地址"
    #define CFG_MB_S_PORT_NUM                           2         //  "串口的端口号，例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
    #define CFG_MB_S_TCP_PORT_NUM                       0         //  "使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
    #define CFG_MB_S_PORT_BAUDRATE                      115200     //   "串口波特率"
    #define CFG_MB_S_PORT_PARITY                        MB_PAR_NONE     //   "校验方式"
    #define CFG_MB_S_TRANSFER_MODE                      MB_RTU_MODE     //   "通信方式"
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           1                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

/*Modified at 2023-12-28 19:50:39*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end


#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32      //占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false      //分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512         //"片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4           //
#define CFG_EFLASH_BLOCK_SECT_NUM           32          //
#define CFG_EFLASH_PLANE1_SECT_NUM          256         //
#define CFG_EFLASH_PLANE2_SECT_NUM          256         //
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8           //
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8           //
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"   //
#define CFG_ETH_LOOP_CYCLE      1000         //中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true            //
#define CFG_ETH_HARD_MAC_ADDR   true            //
#define CFG_ETH_MAC_ADDR0      00           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06           //若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                //
#define CFG_SPI_DMA_BUF_LEN         256                //
#define CFG_SPI1_ENABLE             true              //
#define CFG_SPI2_ENABLE             false              //
#define CFG_SPI3_ENABLE             false              //
#define CFG_SPI4_ENABLE             false              //
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250     //这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       512      //
#define CFG_UART1_RECVBUF_LEN       512      //
#define CFG_UART1_DMABUF_LEN        512      //
#define CFG_UART2_SENDBUF_LEN       512      //
#define CFG_UART2_RECVBUF_LEN       512      //
#define CFG_UART2_DMABUF_LEN        512      //
#define CFG_UART3_SENDBUF_LEN       512      //
#define CFG_UART3_RECVBUF_LEN       512      //
#define CFG_UART3_DMABUF_LEN        512      //
#define CFG_UART4_SENDBUF_LEN       32      //
#define CFG_UART4_RECVBUF_LEN       32      //
#define CFG_UART4_DMABUF_LEN        32      //
#define CFG_UART5_SENDBUF_LEN       32      //
#define CFG_UART5_RECVBUF_LEN       32      //
#define CFG_UART5_DMABUF_LEN        32      //
#define CFG_UART6_SENDBUF_LEN       32      //
#define CFG_UART6_RECVBUF_LEN       32      //
#define CFG_UART6_DMABUF_LEN        32      //
#define CFG_UART7_SENDBUF_LEN       32      //
#define CFG_UART7_RECVBUF_LEN       32      //
#define CFG_UART7_DMABUF_LEN        32      //
#define CFG_UART8_SENDBUF_LEN       32      //
#define CFG_UART8_RECVBUF_LEN       32      //
#define CFG_UART8_DMABUF_LEN        32      //
#define CFG_UART1_ENABLE           true        //
#define CFG_UART2_ENABLE           true       //
#define CFG_UART3_ENABLE           true       //
#define CFG_UART4_ENABLE           false       //
#define CFG_UART5_ENABLE           false       //
#define CFG_UART6_ENABLE           false       //
#define CFG_UART7_ENABLE           false       //
#define CFG_UART8_ENABLE           false       //
#define CFG_UART1_TX_DMA_CHANNEL       DMA1_C1   //串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA1_C2   //串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA1_C3   //串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA1_C4   //串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA1_C5   //串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA1_C6   //串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE   //串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE   //串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE   //串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE   //串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE   //串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE   //串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE   //串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE   //串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE   //串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE   //串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG        //打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10      //定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false   //
#define     CFG_DHCPC_ENABLE            true    //
#define     CFG_DHCP_RENEWTIME          3600    //秒数
#define     CFG_DHCP_REBINDTIME         3600    //秒数
#define     CFG_DHCP_LEASETIME          3600    //秒数
#define     CFG_DHCPD_IPNUM             0x40    //64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"    //
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"  //
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"  //
#define     CFG_DHCPD_NETIP             "255.255.255.0"  //
#define     CFG_DHCPD_DNS               "192.168.0.253"  //
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"  //
#define     CFG_DHCPD_DOMAINNAME       "domain"        //
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0          //分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4         //分区结束，4表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false      //分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"    //需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512      //
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true   //
#define     CFG_FTPC_ENABLE            true    //
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true  //即使选false也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096    //定义初始化过程使用的栈空间一般按默认值就可以了
#define CFG_EVENT_LIMIT         22      //事件数量
#define CFG_EVENT_TYPE_LIMIT    22      //事件类型数
#define CFG_IDLESTACK_LIMIT     1024    //IDLE事件处理函数运行的栈尺寸一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30      //监视IDLE事件持续低于1/16 CPU占比的时间秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960    //main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false   //IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false   //true=用于资源紧缺的场合内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false   //在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8   //用完会自动扩充
#define CFG_HANDLE_LIMIT        8   //用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false       //
#define CFG_START_APP_IS_VERIFICATION      true       //
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN     //CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC   //
#define CFG_IBOOT_VERSION_SMALL       00        //xx.xx.__APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00        //xx.__.xxAPP忽略
#define CFG_IBOOT_VERSION_LARGE       01        //__.xx.xxAPP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"           //
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"            //
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40      //定义锁的数量包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10      //
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure modbus  ******************************************//
#define CFG_MB_ASCII_TIMEOUT_SEC                    100       //"从机用ASCII时，通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define CFG_MB_FUNC_HANDLERS_MAX                    16      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF           32      //这个数字限制了从机ID数据的最大大小。
#define CFG_MB_MASTER_DELAY_MS_CONVERT              200     //主站发送一个广播帧后主站等待延迟时间，时间到后才主站才可以发送其他帧
#define CFG_MB_MASTER_TIMEOUT_MS_RESPOND            500     //
#define CFG_MB_MASTER_TOTAL_SLAVE_NUM               1      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED       true    // "是否启用请求从机ID功能"
#define CFG_MB_FUNC_READ_INPUT_ENABLED              true    // "是否启用读输入寄存器功能"
#define CFG_MB_FUNC_READ_HOLDING_ENABLED            true    // "是否启用读保持寄存器功能"
#define CFG_MB_FUNC_WRITE_HOLDING_ENABLED           true    // "是否启用写单个寄存器功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true    // "是否启用写多个寄存器功能"
#define CFG_MB_FUNC_READ_COILS_ENABLED              true    // "是否启用读线圈功能"
#define CFG_MB_FUNC_WRITE_COIL_ENABLED              true    // "是否启用写线圈功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED    true    // "是否启用写多个线圈功能"
#define CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED    true    // "是否启用读离散输入功能"
#define CFG_MB_FUNC_READWRITE_HOLDING_ENABLED       true    // "是否启用读写多个寄存器功能"
#define CFG_MB_MASTER_ENABLED                       true    // "主机使能开关"
    #define CFG_MB_MASTER_RTU_ENABLED                   true    // "主机RTU使能开关"
    #define CFG_MB_M_DISCRETE_INPUT_START               0        //
    #define CFG_MB_M_DISCRETE_INPUT_NDISCRETES          0       //
    #define CFG_MB_M_COIL_START                         0       //
    #define CFG_MB_M_COIL_NCOILS                        0       //
    #define CFG_MB_M_REG_INPUT_START                    0       //
    #define CFG_MB_M_REG_INPUT_NREGS                    0       //
    #define CFG_MB_M_REG_HOLDING_START                  0       //
    #define CFG_MB_M_REG_HOLDING_NREGS                  65000       //
    #define CFG_MB_M_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"
    #define CFG_MB_M_PORT_BAUDRATE                      9600    // "串口波特率"
    #define CFG_MB_M_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
#define CFG_MB_SLAVE_ENABLED                       false    // "从机使能开关"
    #define CFG_MB_SLAVE_ASCII_ENABLED                  false    // "从机ASCII使能开关"
    #define CFG_MB_SLAVE_RTU_ENABLED                    false    // "从机RTU使能开关"
    #define CFG_MB_SLAVE_TCP_ENABLED                    false    // "从机TCP使能开关"
    #define CFG_MB_S_DISCRETE_INPUT_START               1        //
    #define CFG_MB_S_DISCRETE_INPUT_NDISCRETES          10       //
    #define CFG_MB_S_COIL_START                         11       //
    #define CFG_MB_S_COIL_NCOILS                        10       //
    #define CFG_MB_S_REG_INPUT_START                    21       //
    #define CFG_MB_S_REG_INPUT_NREGS                    10       //
    #define CFG_MB_S_REG_HOLDING_START                  31       //
    #define CFG_MB_S_REG_HOLDING_NREGS                  10       //
    #define CFG_MB_S_ADDR                               2        //
    #define CFG_MB_S_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
    #define CFG_MB_S_TCP_PORT_NUM                       0        //"使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
    #define CFG_MB_S_PORT_BAUDRATE                      115200    // "串口波特率"
    #define CFG_MB_S_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
    #define CFG_MB_S_TRANSFER_MODE                      MB_RTU_MODE    // "通信方式"
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false            //
#define CFG_SELECT_NETCARD  "AT32F437_ETH"   //必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100" //
#define CFG_MY_SUBMASK      "255.255.255.0" //
#define CFG_MY_GATWAY       "192.168.8.1"   //
#define CFG_MY_DNS          "192.168.8.1"   //
#define CFG_MY_DNSBAK       "192.168.8.1"   //
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"        //
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000      //
#define CFG_ADD_ROUTINE_SHELL      true        //
#define CFG_ADD_EXPAND_SHELL       true        //
#define CFG_ADD_GLOBAL_FUN         false       //
#define CFG_SHOW_ADD_SHEELL        true        //
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10      //占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5       //可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true    //选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true         //
#define CFG_STDIO_STDOUT_FOLLOW    true         //
#define CFG_STDIO_STDERR_FOLLOW    true         //
#define CFG_STDIO_FLOAT_PRINT      true         //
#define CFG_STDIO_STDIOFILE        true         //
#define CFG_STDIO_IN_NAME              "/dev/UART1"    //
#define CFG_STDIO_OUT_NAME             "/dev/UART1"    //
#define CFG_STDIO_ERR_NAME             "/dev/UART1"    //
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true    //资源充足才打开
#define     CFG_TCP_CCBNUM              10      //占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5       //占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10      //用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000  //
#define     CFG_TPL_PROTONUM            5       //占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true    //
#define     CFG_TELNETC_ENABLE          false   //
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8      //北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10      //占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4       //占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472       //udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000     //8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"      //需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1        //-1表示最后一块起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false      //"分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false      //"分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false      //
#define CFG_W25QXX_BYTES_PAGE               256        //
#define CFG_W25QXX_PAGES_SECTOR             16         //
#define CFG_W25QXX_SECTORS_BLOCK            16         //
#define CFG_W25QXX_SECTORS_NUM              2048       //
#define CFG_W25QXX_CHIP_ID                  0xEF18     //
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           1                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

/*Modified at 2023-12-28 19:50:43*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end


#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG         //  打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10       //  "设备数量",定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512       //  "C库文件用户态缓冲区尺寸"
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8    //  "对象数初始值"，用完会自动扩充
#define CFG_HANDLE_LIMIT        8    //  "句柄数初始值"，用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false        //  "是否支持在线更新Iboot"，
#define CFG_START_APP_IS_VERIFICATION      true        //  "启动app时是否执行校验功能"，
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN      //  "APP运行模式",CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行，
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC    //  "APP校验方法",
#define CFG_IBOOT_VERSION_SMALL       00         //  "Iboot版本号:低",xx.xx.__，APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00         //  "Iboot版本号:中",xx.__.xx，APP忽略
#define CFG_IBOOT_VERSION_LARGE       01         //  "Iboot版本号:高",__.xx.xx，APP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"            //  "待升级iboot默认存储路径"
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"             //  "待升级app默认存储路径"
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40       //  "锁的数量",定义锁的数量，包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10       //  "内存池数量限值",
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000       //  "执行shell命令的栈尺寸",
#define CFG_ADD_ROUTINE_SHELL      true         //  "是否添加常规shell命令",
#define CFG_ADD_EXPAND_SHELL       true         //  "是否添加拓展shell命令",
#define CFG_ADD_GLOBAL_FUN         false        //  "添加全局函数到shell",
#define CFG_SHOW_ADD_SHEELL        true         //  "编译时显示shell命令",
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                 //   "SPI缓冲区大小",
#define CFG_SPI_DMA_BUF_LEN         256                 //   "SPI DMA缓冲区大小",
#define CFG_SPI1_ENABLE             true               //   "是否配置使用SPI1",
#define CFG_SPI2_ENABLE             false               //   "是否配置使用SPI2",
#define CFG_SPI3_ENABLE             false               //   "是否配置使用SPI3",
#define CFG_SPI4_ENABLE             false               //   "是否配置使用SPI4",
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       512       //   "UART1发送环形缓冲区大小",
#define CFG_UART1_RECVBUF_LEN       512       //   "UART1接收环形缓冲区大小",
#define CFG_UART1_DMABUF_LEN        512       //   "UART1 DMA环形缓冲区大小",
#define CFG_UART2_SENDBUF_LEN       512       //   "UART2发送环形缓冲区大小",
#define CFG_UART2_RECVBUF_LEN       512       //   "UART2接收环形缓冲区大小",
#define CFG_UART2_DMABUF_LEN        512       //   "UART2 DMA环形缓冲区大小",
#define CFG_UART3_SENDBUF_LEN       512       //   "UART3发送环形缓冲区大小",
#define CFG_UART3_RECVBUF_LEN       512       //   "UART3接收环形缓冲区大小",
#define CFG_UART3_DMABUF_LEN        512       //   "UART3 DMA环形缓冲区大小",
#define CFG_UART4_SENDBUF_LEN       32       //   "UART4发送环形缓冲区大小",
#define CFG_UART4_RECVBUF_LEN       32       //   "UART4接收环形缓冲区大小",
#define CFG_UART4_DMABUF_LEN        32       //   "UART4 DMA环形缓冲区大小",
#define CFG_UART5_SENDBUF_LEN       32       //   "UART5发送环形缓冲区大小",
#define CFG_UART5_RECVBUF_LEN       32       //   "UART5接收环形缓冲区大小",
#define CFG_UART5_DMABUF_LEN        32       //   "UART5 DMA环形缓冲区大小",
#define CFG_UART6_SENDBUF_LEN       32       //   "UART6发送环形缓冲区大小",
#define CFG_UART6_RECVBUF_LEN       32       //   "UART6接收环形缓冲区大小",
#define CFG_UART6_DMABUF_LEN        32       //   "UART6 DMA环形缓冲区大小",
#define CFG_UART7_SENDBUF_LEN       32       //   "UART7发送环形缓冲区大小",
#define CFG_UART7_RECVBUF_LEN       32       //   "UART7接收环形缓冲区大小",
#define CFG_UART7_DMABUF_LEN        32       //   "UART7 DMA环形缓冲区大小",
#define CFG_UART8_SENDBUF_LEN       32       //   "UART8发送环形缓冲区大小",
#define CFG_UART8_RECVBUF_LEN       32       //   "UART8接收环形缓冲区大小",
#define CFG_UART8_DMABUF_LEN        32       //   "UART8 DMA环形缓冲区大小",
#define CFG_UART1_ENABLE           true         //   "是否使用UART1",
#define CFG_UART2_ENABLE           true        //   "是否使用UART2",
#define CFG_UART3_ENABLE           true        //   "是否使用UART3",
#define CFG_UART4_ENABLE           false        //   "是否使用UART4",
#define CFG_UART5_ENABLE           false        //   "是否使用UART5",
#define CFG_UART6_ENABLE           false        //   "是否使用UART6",
#define CFG_UART7_ENABLE           false        //   "是否使用UART7",
#define CFG_UART8_ENABLE           false        //   "是否使用UART8",
#define CFG_UART1_TX_DMA_CHANNEL       DMA1_C1    //   串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA1_C2    //   串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA1_C3    //   串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA1_C4    //   串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA1_C5    //   串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA1_C6    //   串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE    //   串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE    //   串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE    //   串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE    //   串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE    //   串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE    //   串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE    //   串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE    //   串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE    //   串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE    //   串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250      //   这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false       //  分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512          //  "片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4            //  "片内flash的扇区中有多少页"
#define CFG_EFLASH_BLOCK_SECT_NUM           32           //  "片内flash的块中有多少扇区"
#define CFG_EFLASH_PLANE1_SECT_NUM          256          //  "片1一共有多少扇区"
#define CFG_EFLASH_PLANE2_SECT_NUM          256          //  "片2一共有多少扇区"
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8            //  "片1一共有多少块"
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8            //  "片2一共有多少块"
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0           //  分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4          //  分区结束，-1表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false       //  分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"     //  需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true   //  "全功能动态分配",即使选false，也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096     //  "初始化栈空间",定义初始化过程使用的栈空间，一般按默认值就可以了
#define CFG_EVENT_LIMIT         22       //  "事件数量限值",事件数量
#define CFG_EVENT_TYPE_LIMIT    22       //  "事件类型数限值",事件类型数
#define CFG_IDLESTACK_LIMIT     1024     //  "IDLE事件栈尺寸",IDLE事件处理函数运行的栈尺寸，一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30       //  "IDLE监视周期",监视IDLE事件持续低于1/16 CPU占比的时间，秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960     //  "main函数栈尺寸",main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false    //  "IDLE监视狗叫复位使能"，IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false    //  "tiny版内核",true=用于资源紧缺的场合，内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false    //  "IDLE检查栈",在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"         //  "本地字符集",
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5        //  "定时器数量",可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true     //  "硬件定时器提供时钟源",选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000   //  "数据包缓冲区尺寸"
#define     CFG_TPL_PROTONUM            5        //  "支持的传输协议数"，占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true     //  "TCP乱序重组使能",资源充足才打开
#define     CFG_TCP_CCBNUM              10       //  "tcp 客户端数限值"，占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5        //  "tcp 服务器数限值"，占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10       //  "tcp socket hashtable长度"，用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true    //  "ftp 服务器使能"
#define     CFG_FTPC_ENABLE            true     //  "ftp 客户端使能"
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true     //  "telnet 服务器使能"
#define     CFG_TELNETC_ENABLE          false    //  "telnet 客户端使能"
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10       //  "socket数限值"，占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false    //  "DHCP 服务器使能"
#define     CFG_DHCPC_ENABLE            true     //  "DHCP 客户端使能"
#define     CFG_DHCP_RENEWTIME          3600     //  "renew timer",秒数
#define     CFG_DHCP_REBINDTIME         3600     //  "rebind timer",秒数
#define     CFG_DHCP_LEASETIME          3600     //  "lease timer",秒数
#define     CFG_DHCPD_IPNUM             0x40     //  "IP池尺寸",64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"     //  "DHCP起始IP",
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"   //  "DHCP SERVER IP"
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"   //  "DHCP ROUTER SERVER IP"
#define     CFG_DHCPD_NETIP             "255.255.255.0"   //  "DHCP MASK IP"
#define     CFG_DHCPD_DNS               "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DOMAINNAME       "domain"         //  "DHCP domain name"
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32       //  "ARP哈希表长度"，占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10       //  "UDP socket数限值"，占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4        //  "udp socket 哈希表长度"，占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472        //  udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000      //  8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"    //   "网卡名称",
#define CFG_ETH_LOOP_CYCLE      1000          //   "网卡轮询周期(uS)",中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true             //   "网卡接收是否轮询",
#define CFG_ETH_HARD_MAC_ADDR   true             //   "硬件生成Mac地址",
#define CFG_ETH_MAC_ADDR0      00            //   "MAC ADDR0",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02            //   "MAC ADDR1",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03            //   "MAC ADDR2",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04            //   "MAC ADDR3",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05            //   "MAC ADDR4",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06            //   "MAC ADDR5",若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false       //  "分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false       //  "是否使用QSPI模式"
#define CFG_W25QXX_BYTES_PAGE               256         //  "每页的字节数"
#define CFG_W25QXX_PAGES_SECTOR             16          //  "每个扇区有多少页"
#define CFG_W25QXX_SECTORS_BLOCK            16          //  "每个块有多少扇区"
#define CFG_W25QXX_SECTORS_NUM              2048        //  "总的扇区数"
#define CFG_W25QXX_CHIP_ID                  0xEF18      //  "芯片ID"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"       //  "文件系统mount点名字",需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1         //  "分区结束"，-1表示最后一块,起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false       //  "分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8       //  "时区",北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true          //  "是否支持多种输入设备",
#define CFG_STDIO_STDOUT_FOLLOW    true          //  "stdout是否跟随stdin",
#define CFG_STDIO_STDERR_FOLLOW    true          //  "stderr是否跟随stdin",
#define CFG_STDIO_FLOAT_PRINT      true          //  "支持浮点打印"
#define CFG_STDIO_STDIOFILE        true          //  "支持标准IO文件"
#define CFG_STDIO_IN_NAME              "/dev/UART1"     //  "标准输入设备名",
#define CFG_STDIO_OUT_NAME             "/dev/UART1"     //  "标准输出设备名",
#define CFG_STDIO_ERR_NAME             "/dev/UART1"     //  "标准err输出设备名",
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false             //   "使用静态IP?",
#define CFG_SELECT_NETCARD  "AT32F437_ETH"    //   "网卡名称",必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100"  //   "静态IP",
#define CFG_MY_SUBMASK      "255.255.255.0"  //   "子网掩码",
#define CFG_MY_GATWAY       "192.168.8.1"    //   "网关",
#define CFG_MY_DNS          "192.168.8.1"    //   "首选DNS",
#define CFG_MY_DNSBAK       "192.168.8.1"    //   "备用DNS",
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure modbus  ******************************************//
#define CFG_MB_ASCII_TIMEOUT_SEC                    100        //  "从机用ASCII时，通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define CFG_MB_FUNC_HANDLERS_MAX                    16       //  "协议栈应该支持的Modbus功能码的最大数量"
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF           32       //  "从机ID数据长度",这个数字限制了从机ID数据的最大大小。
#define CFG_MB_MASTER_DELAY_MS_CONVERT              200      //  "等待延迟时间",主站发送一个广播帧后，主站等待延迟时间，时间到后才主站才可以发送其他帧
#define CFG_MB_MASTER_TIMEOUT_MS_RESPOND            500      //  "从机响应超时时间"
#define CFG_MB_MASTER_TOTAL_SLAVE_NUM               1       //  "从机总数"
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED       true     //   "是否启用请求从机ID功能"
#define CFG_MB_FUNC_READ_INPUT_ENABLED              true     //   "是否启用读输入寄存器功能"
#define CFG_MB_FUNC_READ_HOLDING_ENABLED            true     //   "是否启用读保持寄存器功能"
#define CFG_MB_FUNC_WRITE_HOLDING_ENABLED           true     //   "是否启用写单个寄存器功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true     //   "是否启用写多个寄存器功能"
#define CFG_MB_FUNC_READ_COILS_ENABLED              true     //   "是否启用读线圈功能"
#define CFG_MB_FUNC_WRITE_COIL_ENABLED              true     //   "是否启用写线圈功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED    true     //   "是否启用写多个线圈功能"
#define CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED    true     //   "是否启用读离散输入功能"
#define CFG_MB_FUNC_READWRITE_HOLDING_ENABLED       true     //   "是否启用读写多个寄存器功能"
#define CFG_MB_MASTER_ENABLED                       true     //   "主机使能开关"
    #define CFG_MB_MASTER_RTU_ENABLED                   true     //   "主机RTU使能开关"
    #define CFG_MB_M_DISCRETE_INPUT_START               0         //  "主机离散量输入的起始地址"
    #define CFG_MB_M_DISCRETE_INPUT_NDISCRETES          0        //  "主机离散量输入的数量"
    #define CFG_MB_M_COIL_START                         0        //  "主机线圈的起始地址"
    #define CFG_MB_M_COIL_NCOILS                        0        //  "主机线圈的数量"
    #define CFG_MB_M_REG_INPUT_START                    0        //  "主机输入寄存器的起始地址"
    #define CFG_MB_M_REG_INPUT_NREGS                    0        //  "主机输入寄存器的数量"
    #define CFG_MB_M_REG_HOLDING_START                  0        //  "主机保持寄存器的起始地址"
    #define CFG_MB_M_REG_HOLDING_NREGS                  65000        //  "主机保持寄存器的数量"
    #define CFG_MB_M_PORT_NUM                           2         //  "串口的端口号，例如要用/dev/UART2，就填2"
    #define CFG_MB_M_PORT_BAUDRATE                      9600     //   "串口波特率"
    #define CFG_MB_M_PORT_PARITY                        MB_PAR_NONE     //   "校验方式"
#define CFG_MB_SLAVE_ENABLED                       false     //   "从机使能开关"
    #define CFG_MB_SLAVE_ASCII_ENABLED                  false     //   "从机ASCII使能开关"
    #define CFG_MB_SLAVE_RTU_ENABLED                    false     //   "从机RTU使能开关"
    #define CFG_MB_SLAVE_TCP_ENABLED                    false     //   "从机TCP使能开关"
    #define CFG_MB_S_DISCRETE_INPUT_START               1         //  "从机离散量输入的起始地址"
    #define CFG_MB_S_DISCRETE_INPUT_NDISCRETES          10        //  "从机离散量输入的数量"
    #define CFG_MB_S_COIL_START                         11        //  "从机线圈的起始地址。"
    #define CFG_MB_S_COIL_NCOILS                        10        //  "从机线圈的数量"
    #define CFG_MB_S_REG_INPUT_START                    21        //  "从机输入寄存器的起始地址"
    #define CFG_MB_S_REG_INPUT_NREGS                    10        //  "从机输入寄存器的数量"
    #define CFG_MB_S_REG_HOLDING_START                  31        //  "从机保持寄存器的起始地址"
    #define CFG_MB_S_REG_HOLDING_NREGS                  10        //  "从机保持寄存器的数量"
    #define CFG_MB_S_ADDR                               2         //  "从机地址"
    #define CFG_MB_S_PORT_NUM                           2         //  "串口的端口号，例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
    #define CFG_MB_S_TCP_PORT_NUM                       0         //  "使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
    #define CFG_MB_S_PORT_BAUDRATE                      115200     //   "串口波特率"
    #define CFG_MB_S_PORT_PARITY                        MB_PAR_NONE     //   "校验方式"
    #define CFG_MB_S_TRANSFER_MODE                      MB_RTU_MODE     //   "通信方式"
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG         //  打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10       //  "设备数量",定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512       //  "C库文件用户态缓冲区尺寸"
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8    //  "对象数初始值"，用完会自动扩充
#define CFG_HANDLE_LIMIT        8    //  "句柄数初始值"，用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false        //  "是否支持在线更新Iboot"，
#define CFG_START_APP_IS_VERIFICATION      true        //  "启动app时是否执行校验功能"，
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN      //  "APP运行模式",CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行，
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC    //  "APP校验方法",
#define CFG_IBOOT_VERSION_SMALL       00         //  "Iboot版本号:低",xx.xx.__，APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00         //  "Iboot版本号:中",xx.__.xx，APP忽略
#define CFG_IBOOT_VERSION_LARGE       01         //  "Iboot版本号:高",__.xx.xx，APP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"            //  "待升级iboot默认存储路径"
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"             //  "待升级app默认存储路径"
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40       //  "锁的数量",定义锁的数量，包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10       //  "内存池数量限值",
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000       //  "执行shell命令的栈尺寸",
#define CFG_ADD_ROUTINE_SHELL      true         //  "是否添加常规shell命令",
#define CFG_ADD_EXPAND_SHELL       true         //  "是否添加拓展shell命令",
#define CFG_ADD_GLOBAL_FUN         false        //  "添加全局函数到shell",
#define CFG_SHOW_ADD_SHEELL        true         //  "编译时显示shell命令",
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                 //   "SPI缓冲区大小",
#define CFG_SPI_DMA_BUF_LEN         256                 //   "SPI DMA缓冲区大小",
#define CFG_SPI1_ENABLE             true               //   "是否配置使用SPI1",
#define CFG_SPI2_ENABLE             false               //   "是否配置使用SPI2",
#define CFG_SPI3_ENABLE             false               //   "是否配置使用SPI3",
#define CFG_SPI4_ENABLE             false               //   "是否配置使用SPI4",
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       512       //   "UART1发送环形缓冲区大小",
#define CFG_UART1_RECVBUF_LEN       512       //   "UART1接收环形缓冲区大小",
#define CFG_UART1_DMABUF_LEN        512       //   "UART1 DMA环形缓冲区大小",
#define CFG_UART2_SENDBUF_LEN       512       //   "UART2发送环形缓冲区大小",
#define CFG_UART2_RECVBUF_LEN       512       //   "UART2接收环形缓冲区大小",
#define CFG_UART2_DMABUF_LEN        512       //   "UART2 DMA环形缓冲区大小",
#define CFG_UART3_SENDBUF_LEN       512       //   "UART3发送环形缓冲区大小",
#define CFG_UART3_RECVBUF_LEN       512       //   "UART3接收环形缓冲区大小",
#define CFG_UART3_DMABUF_LEN        512       //   "UART3 DMA环形缓冲区大小",
#define CFG_UART4_SENDBUF_LEN       32       //   "UART4发送环形缓冲区大小",
#define CFG_UART4_RECVBUF_LEN       32       //   "UART4接收环形缓冲区大小",
#define CFG_UART4_DMABUF_LEN        32       //   "UART4 DMA环形缓冲区大小",
#define CFG_UART5_SENDBUF_LEN       32       //   "UART5发送环形缓冲区大小",
#define CFG_UART5_RECVBUF_LEN       32       //   "UART5接收环形缓冲区大小",
#define CFG_UART5_DMABUF_LEN        32       //   "UART5 DMA环形缓冲区大小",
#define CFG_UART6_SENDBUF_LEN       32       //   "UART6发送环形缓冲区大小",
#define CFG_UART6_RECVBUF_LEN       32       //   "UART6接收环形缓冲区大小",
#define CFG_UART6_DMABUF_LEN        32       //   "UART6 DMA环形缓冲区大小",
#define CFG_UART7_SENDBUF_LEN       32       //   "UART7发送环形缓冲区大小",
#define CFG_UART7_RECVBUF_LEN       32       //   "UART7接收环形缓冲区大小",
#define CFG_UART7_DMABUF_LEN        32       //   "UART7 DMA环形缓冲区大小",
#define CFG_UART8_SENDBUF_LEN       32       //   "UART8发送环形缓冲区大小",
#define CFG_UART8_RECVBUF_LEN       32       //   "UART8接收环形缓冲区大小",
#define CFG_UART8_DMABUF_LEN        32       //   "UART8 DMA环形缓冲区大小",
#define CFG_UART1_ENABLE           true         //   "是否使用UART1",
#define CFG_UART2_ENABLE           true        //   "是否使用UART2",
#define CFG_UART3_ENABLE           true        //   "是否使用UART3",
#define CFG_UART4_ENABLE           false        //   "是否使用UART4",
#define CFG_UART5_ENABLE           false        //   "是否使用UART5",
#define CFG_UART6_ENABLE           false        //   "是否使用UART6",
#define CFG_UART7_ENABLE           false        //   "是否使用UART7",
#define CFG_UART8_ENABLE           false        //   "是否使用UART8",
#define CFG_UART1_TX_DMA_CHANNEL       DMA1_C1    //   串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA1_C2    //   串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA1_C3    //   串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA1_C4    //   串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA1_C5    //   串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA1_C6    //   串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE    //   串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE    //   串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE    //   串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE    //   串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE    //   串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE    //   串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE    //   串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE    //   串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE    //   串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE    //   串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250      //   这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false       //  分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512          //  "片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4            //  "片内flash的扇区中有多少页"
#define CFG_EFLASH_BLOCK_SECT_NUM           32           //  "片内flash的块中有多少扇区"
#define CFG_EFLASH_PLANE1_SECT_NUM          256          //  "片1一共有多少扇区"
#define CFG_EFLASH_PLANE2_SECT_NUM          256          //  "片2一共有多少扇区"
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8            //  "片1一共有多少块"
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8            //  "片2一共有多少块"
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0           //  分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4          //  分区结束，-1表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false       //  分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"     //  需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true   //  "全功能动态分配",即使选false，也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096     //  "初始化栈空间",定义初始化过程使用的栈空间，一般按默认值就可以了
#define CFG_EVENT_LIMIT         22       //  "事件数量限值",事件数量
#define CFG_EVENT_TYPE_LIMIT    22       //  "事件类型数限值",事件类型数
#define CFG_IDLESTACK_LIMIT     1024     //  "IDLE事件栈尺寸",IDLE事件处理函数运行的栈尺寸，一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30       //  "IDLE监视周期",监视IDLE事件持续低于1/16 CPU占比的时间，秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960     //  "main函数栈尺寸",main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false    //  "IDLE监视狗叫复位使能"，IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false    //  "tiny版内核",true=用于资源紧缺的场合，内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false    //  "IDLE检查栈",在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"         //  "本地字符集",
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5        //  "定时器数量",可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true     //  "硬件定时器提供时钟源",选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000   //  "数据包缓冲区尺寸"
#define     CFG_TPL_PROTONUM            5        //  "支持的传输协议数"，占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true     //  "TCP乱序重组使能",资源充足才打开
#define     CFG_TCP_CCBNUM              10       //  "tcp 客户端数限值"，占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5        //  "tcp 服务器数限值"，占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10       //  "tcp socket hashtable长度"，用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true    //  "ftp 服务器使能"
#define     CFG_FTPC_ENABLE            true     //  "ftp 客户端使能"
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true     //  "telnet 服务器使能"
#define     CFG_TELNETC_ENABLE          false    //  "telnet 客户端使能"
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10       //  "socket数限值"，占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false    //  "DHCP 服务器使能"
#define     CFG_DHCPC_ENABLE            true     //  "DHCP 客户端使能"
#define     CFG_DHCP_RENEWTIME          3600     //  "renew timer",秒数
#define     CFG_DHCP_REBINDTIME         3600     //  "rebind timer",秒数
#define     CFG_DHCP_LEASETIME          3600     //  "lease timer",秒数
#define     CFG_DHCPD_IPNUM             0x40     //  "IP池尺寸",64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"     //  "DHCP起始IP",
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"   //  "DHCP SERVER IP"
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"   //  "DHCP ROUTER SERVER IP"
#define     CFG_DHCPD_NETIP             "255.255.255.0"   //  "DHCP MASK IP"
#define     CFG_DHCPD_DNS               "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DOMAINNAME       "domain"         //  "DHCP domain name"
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32       //  "ARP哈希表长度"，占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10       //  "UDP socket数限值"，占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4        //  "udp socket 哈希表长度"，占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472        //  udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000      //  8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"    //   "网卡名称",
#define CFG_ETH_LOOP_CYCLE      1000          //   "网卡轮询周期(uS)",中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true             //   "网卡接收是否轮询",
#define CFG_ETH_HARD_MAC_ADDR   true             //   "硬件生成Mac地址",
#define CFG_ETH_MAC_ADDR0      00            //   "MAC ADDR0",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02            //   "MAC ADDR1",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03            //   "MAC ADDR2",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04            //   "MAC ADDR3",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05            //   "MAC ADDR4",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06            //   "MAC ADDR5",若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false       //  "分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false       //  "是否使用QSPI模式"
#define CFG_W25QXX_BYTES_PAGE               256         //  "每页的字节数"
#define CFG_W25QXX_PAGES_SECTOR             16          //  "每个扇区有多少页"
#define CFG_W25QXX_SECTORS_BLOCK            16          //  "每个块有多少扇区"
#define CFG_W25QXX_SECTORS_NUM              2048        //  "总的扇区数"
#define CFG_W25QXX_CHIP_ID                  0xEF18      //  "芯片ID"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"       //  "文件系统mount点名字",需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1         //  "分区结束"，-1表示最后一块,起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false       //  "分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8       //  "时区",北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true          //  "是否支持多种输入设备",
#define CFG_STDIO_STDOUT_FOLLOW    true          //  "stdout是否跟随stdin",
#define CFG_STDIO_STDERR_FOLLOW    true          //  "stderr是否跟随stdin",
#define CFG_STDIO_FLOAT_PRINT      true          //  "支持浮点打印"
#define CFG_STDIO_STDIOFILE        true          //  "支持标准IO文件"
#define CFG_STDIO_IN_NAME              "/dev/UART1"     //  "标准输入设备名",
#define CFG_STDIO_OUT_NAME             "/dev/UART1"     //  "标准输出设备名",
#define CFG_STDIO_ERR_NAME             "/dev/UART1"     //  "标准err输出设备名",
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false             //   "使用静态IP?",
#define CFG_SELECT_NETCARD  "AT32F437_ETH"    //   "网卡名称",必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100"  //   "静态IP",
#define CFG_MY_SUBMASK      "255.255.255.0"  //   "子网掩码",
#define CFG_MY_GATWAY       "192.168.8.1"    //   "网关",
#define CFG_MY_DNS          "192.168.8.1"    //   "首选DNS",
#define CFG_MY_DNSBAK       "192.168.8.1"    //   "备用DNS",
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure modbus  ******************************************//
#define CFG_MB_ASCII_TIMEOUT_SEC                    100        //  "从机用ASCII时，通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define CFG_MB_FUNC_HANDLERS_MAX                    16       //  "协议栈应该支持的Modbus功能码的最大数量"
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF           32       //  "从机ID数据长度",这个数字限制了从机ID数据的最大大小。
#define CFG_MB_MASTER_DELAY_MS_CONVERT              200      //  "等待延迟时间",主站发送一个广播帧后，主站等待延迟时间，时间到后才主站才可以发送其他帧
#define CFG_MB_MASTER_TIMEOUT_MS_RESPOND            500      //  "从机响应超时时间"
#define CFG_MB_MASTER_TOTAL_SLAVE_NUM               1       //  "从机总数"
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED       true     //   "是否启用请求从机ID功能"
#define CFG_MB_FUNC_READ_INPUT_ENABLED              true     //   "是否启用读输入寄存器功能"
#define CFG_MB_FUNC_READ_HOLDING_ENABLED            true     //   "是否启用读保持寄存器功能"
#define CFG_MB_FUNC_WRITE_HOLDING_ENABLED           true     //   "是否启用写单个寄存器功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true     //   "是否启用写多个寄存器功能"
#define CFG_MB_FUNC_READ_COILS_ENABLED              true     //   "是否启用读线圈功能"
#define CFG_MB_FUNC_WRITE_COIL_ENABLED              true     //   "是否启用写线圈功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED    true     //   "是否启用写多个线圈功能"
#define CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED    true     //   "是否启用读离散输入功能"
#define CFG_MB_FUNC_READWRITE_HOLDING_ENABLED       true     //   "是否启用读写多个寄存器功能"
#define CFG_MB_MASTER_ENABLED                       true     //   "主机使能开关"
    #define CFG_MB_MASTER_RTU_ENABLED                   true     //   "主机RTU使能开关"
    #define CFG_MB_M_DISCRETE_INPUT_START               0         //  "主机离散量输入的起始地址"
    #define CFG_MB_M_DISCRETE_INPUT_NDISCRETES          0        //  "主机离散量输入的数量"
    #define CFG_MB_M_COIL_START                         0        //  "主机线圈的起始地址"
    #define CFG_MB_M_COIL_NCOILS                        0        //  "主机线圈的数量"
    #define CFG_MB_M_REG_INPUT_START                    0        //  "主机输入寄存器的起始地址"
    #define CFG_MB_M_REG_INPUT_NREGS                    0        //  "主机输入寄存器的数量"
    #define CFG_MB_M_REG_HOLDING_START                  0        //  "主机保持寄存器的起始地址"
    #define CFG_MB_M_REG_HOLDING_NREGS                  65000        //  "主机保持寄存器的数量"
    #define CFG_MB_M_PORT_NUM                           2         //  "串口的端口号，例如要用/dev/UART2，就填2"
    #define CFG_MB_M_PORT_BAUDRATE                      9600     //   "串口波特率"
    #define CFG_MB_M_PORT_PARITY                        MB_PAR_NONE     //   "校验方式"
#define CFG_MB_SLAVE_ENABLED                       false     //   "从机使能开关"
    #define CFG_MB_SLAVE_ASCII_ENABLED                  false     //   "从机ASCII使能开关"
    #define CFG_MB_SLAVE_RTU_ENABLED                    false     //   "从机RTU使能开关"
    #define CFG_MB_SLAVE_TCP_ENABLED                    false     //   "从机TCP使能开关"
    #define CFG_MB_S_DISCRETE_INPUT_START               1         //  "从机离散量输入的起始地址"
    #define CFG_MB_S_DISCRETE_INPUT_NDISCRETES          10        //  "从机离散量输入的数量"
    #define CFG_MB_S_COIL_START                         11        //  "从机线圈的起始地址。"
    #define CFG_MB_S_COIL_NCOILS                        10        //  "从机线圈的数量"
    #define CFG_MB_S_REG_INPUT_START                    21        //  "从机输入寄存器的起始地址"
    #define CFG_MB_S_REG_INPUT_NREGS                    10        //  "从机输入寄存器的数量"
    #define CFG_MB_S_REG_HOLDING_START                  31        //  "从机保持寄存器的起始地址"
    #define CFG_MB_S_REG_HOLDING_NREGS                  10        //  "从机保持寄存器的数量"
    #define CFG_MB_S_ADDR                               2         //  "从机地址"
    #define CFG_MB_S_PORT_NUM                           2         //  "串口的端口号，例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
    #define CFG_MB_S_TCP_PORT_NUM                       0         //  "使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
    #define CFG_MB_S_PORT_BAUDRATE                      115200     //   "串口波特率"
    #define CFG_MB_S_PORT_PARITY                        MB_PAR_NONE     //   "校验方式"
    #define CFG_MB_S_TRANSFER_MODE                      MB_RTU_MODE     //   "通信方式"
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           1                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

/*Modified at 2024-01-23 16:29:49*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end


#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32      //占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false      //分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512         //"片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4           //
#define CFG_EFLASH_BLOCK_SECT_NUM           32          //
#define CFG_EFLASH_PLANE1_SECT_NUM          256         //
#define CFG_EFLASH_PLANE2_SECT_NUM          256         //
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8           //
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8           //
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"   //
#define CFG_ETH_LOOP_CYCLE      1000         //中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true            //
#define CFG_ETH_HARD_MAC_ADDR   true            //
#define CFG_ETH_MAC_ADDR0      00           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06           //若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                //
#define CFG_SPI_DMA_BUF_LEN         256                //
#define CFG_SPI1_ENABLE             true              //
#define CFG_SPI2_ENABLE             false              //
#define CFG_SPI3_ENABLE             false              //
#define CFG_SPI4_ENABLE             false              //
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250     //这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       512      //
#define CFG_UART1_RECVBUF_LEN       512      //
#define CFG_UART1_DMABUF_LEN        512      //
#define CFG_UART2_SENDBUF_LEN       512      //
#define CFG_UART2_RECVBUF_LEN       512      //
#define CFG_UART2_DMABUF_LEN        512      //
#define CFG_UART3_SENDBUF_LEN       512      //
#define CFG_UART3_RECVBUF_LEN       512      //
#define CFG_UART3_DMABUF_LEN        512      //
#define CFG_UART4_SENDBUF_LEN       32      //
#define CFG_UART4_RECVBUF_LEN       32      //
#define CFG_UART4_DMABUF_LEN        32      //
#define CFG_UART5_SENDBUF_LEN       32      //
#define CFG_UART5_RECVBUF_LEN       32      //
#define CFG_UART5_DMABUF_LEN        32      //
#define CFG_UART6_SENDBUF_LEN       32      //
#define CFG_UART6_RECVBUF_LEN       32      //
#define CFG_UART6_DMABUF_LEN        32      //
#define CFG_UART7_SENDBUF_LEN       32      //
#define CFG_UART7_RECVBUF_LEN       32      //
#define CFG_UART7_DMABUF_LEN        32      //
#define CFG_UART8_SENDBUF_LEN       32      //
#define CFG_UART8_RECVBUF_LEN       32      //
#define CFG_UART8_DMABUF_LEN        32      //
#define CFG_UART1_ENABLE           true        //
#define CFG_UART2_ENABLE           true       //
#define CFG_UART3_ENABLE           true       //
#define CFG_UART4_ENABLE           false       //
#define CFG_UART5_ENABLE           false       //
#define CFG_UART6_ENABLE           false       //
#define CFG_UART7_ENABLE           false       //
#define CFG_UART8_ENABLE           false       //
#define CFG_UART1_TX_DMA_CHANNEL       DMA1_C1   //串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA1_C2   //串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA1_C3   //串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA1_C4   //串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA1_C5   //串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA1_C6   //串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE   //串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE   //串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE   //串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE   //串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE   //串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE   //串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE   //串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE   //串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE   //串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE   //串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG        //打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10      //定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false   //
#define     CFG_DHCPC_ENABLE            true    //
#define     CFG_DHCP_RENEWTIME          3600    //秒数
#define     CFG_DHCP_REBINDTIME         3600    //秒数
#define     CFG_DHCP_LEASETIME          3600    //秒数
#define     CFG_DHCPD_IPNUM             0x40    //64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"    //
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"  //
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"  //
#define     CFG_DHCPD_NETIP             "255.255.255.0"  //
#define     CFG_DHCPD_DNS               "192.168.0.253"  //
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"  //
#define     CFG_DHCPD_DOMAINNAME       "domain"        //
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0          //分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4         //分区结束，4表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false      //分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"    //需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512      //
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true   //
#define     CFG_FTPC_ENABLE            true    //
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true  //即使选false也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096    //定义初始化过程使用的栈空间一般按默认值就可以了
#define CFG_EVENT_LIMIT         22      //事件数量
#define CFG_EVENT_TYPE_LIMIT    22      //事件类型数
#define CFG_IDLESTACK_LIMIT     1024    //IDLE事件处理函数运行的栈尺寸一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30      //监视IDLE事件持续低于1/16 CPU占比的时间秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960    //main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false   //IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false   //true=用于资源紧缺的场合内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false   //在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8   //用完会自动扩充
#define CFG_HANDLE_LIMIT        8   //用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false       //
#define CFG_START_APP_IS_VERIFICATION      true       //
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN     //CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC   //
#define CFG_IBOOT_VERSION_SMALL       00        //xx.xx.__APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00        //xx.__.xxAPP忽略
#define CFG_IBOOT_VERSION_LARGE       01        //__.xx.xxAPP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"           //
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"            //
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40      //定义锁的数量包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10      //
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure modbus  ******************************************//
#define CFG_MB_ASCII_TIMEOUT_SEC                    100       //"从机用ASCII时，通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define CFG_MB_FUNC_HANDLERS_MAX                    16      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF           32      //这个数字限制了从机ID数据的最大大小。
#define CFG_MB_MASTER_DELAY_MS_CONVERT              200     //主站发送一个广播帧后主站等待延迟时间，时间到后才主站才可以发送其他帧
#define CFG_MB_MASTER_TIMEOUT_MS_RESPOND            500     //
#define CFG_MB_MASTER_TOTAL_SLAVE_NUM               1      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED       true    // "是否启用请求从机ID功能"
#define CFG_MB_FUNC_READ_INPUT_ENABLED              true    // "是否启用读输入寄存器功能"
#define CFG_MB_FUNC_READ_HOLDING_ENABLED            true    // "是否启用读保持寄存器功能"
#define CFG_MB_FUNC_WRITE_HOLDING_ENABLED           true    // "是否启用写单个寄存器功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true    // "是否启用写多个寄存器功能"
#define CFG_MB_FUNC_READ_COILS_ENABLED              true    // "是否启用读线圈功能"
#define CFG_MB_FUNC_WRITE_COIL_ENABLED              true    // "是否启用写线圈功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED    true    // "是否启用写多个线圈功能"
#define CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED    true    // "是否启用读离散输入功能"
#define CFG_MB_FUNC_READWRITE_HOLDING_ENABLED       true    // "是否启用读写多个寄存器功能"
#define CFG_MB_MASTER_ENABLED                       true    // "主机使能开关"
    #define CFG_MB_MASTER_RTU_ENABLED                   true    // "主机RTU使能开关"
    #define CFG_MB_M_DISCRETE_INPUT_START               0        //
    #define CFG_MB_M_DISCRETE_INPUT_NDISCRETES          0       //
    #define CFG_MB_M_COIL_START                         0       //
    #define CFG_MB_M_COIL_NCOILS                        0       //
    #define CFG_MB_M_REG_INPUT_START                    0       //
    #define CFG_MB_M_REG_INPUT_NREGS                    0       //
    #define CFG_MB_M_REG_HOLDING_START                  0       //
    #define CFG_MB_M_REG_HOLDING_NREGS                  65000       //
    #define CFG_MB_M_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"
    #define CFG_MB_M_PORT_BAUDRATE                      9600    // "串口波特率"
    #define CFG_MB_M_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
#define CFG_MB_SLAVE_ENABLED                       false    // "从机使能开关"
    #define CFG_MB_SLAVE_ASCII_ENABLED                  false    // "从机ASCII使能开关"
    #define CFG_MB_SLAVE_RTU_ENABLED                    false    // "从机RTU使能开关"
    #define CFG_MB_SLAVE_TCP_ENABLED                    false    // "从机TCP使能开关"
    #define CFG_MB_S_DISCRETE_INPUT_START               1        //
    #define CFG_MB_S_DISCRETE_INPUT_NDISCRETES          10       //
    #define CFG_MB_S_COIL_START                         11       //
    #define CFG_MB_S_COIL_NCOILS                        10       //
    #define CFG_MB_S_REG_INPUT_START                    21       //
    #define CFG_MB_S_REG_INPUT_NREGS                    10       //
    #define CFG_MB_S_REG_HOLDING_START                  31       //
    #define CFG_MB_S_REG_HOLDING_NREGS                  10       //
    #define CFG_MB_S_ADDR                               2        //
    #define CFG_MB_S_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
    #define CFG_MB_S_TCP_PORT_NUM                       0        //"使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
    #define CFG_MB_S_PORT_BAUDRATE                      115200    // "串口波特率"
    #define CFG_MB_S_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
    #define CFG_MB_S_TRANSFER_MODE                      MB_RTU_MODE    // "通信方式"
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false            //
#define CFG_SELECT_NETCARD  "AT32F437_ETH"   //必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100" //
#define CFG_MY_SUBMASK      "255.255.255.0" //
#define CFG_MY_GATWAY       "192.168.8.1"   //
#define CFG_MY_DNS          "192.168.8.1"   //
#define CFG_MY_DNSBAK       "192.168.8.1"   //
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"        //
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000      //
#define CFG_ADD_ROUTINE_SHELL      true        //
#define CFG_ADD_EXPAND_SHELL       true        //
#define CFG_ADD_GLOBAL_FUN         false       //
#define CFG_SHOW_ADD_SHEELL        true        //
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10      //占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5       //可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true    //选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true         //
#define CFG_STDIO_STDOUT_FOLLOW    true         //
#define CFG_STDIO_STDERR_FOLLOW    true         //
#define CFG_STDIO_FLOAT_PRINT      true         //
#define CFG_STDIO_STDIOFILE        true         //
#define CFG_STDIO_IN_NAME              "/dev/UART1"    //
#define CFG_STDIO_OUT_NAME             "/dev/UART1"    //
#define CFG_STDIO_ERR_NAME             "/dev/UART1"    //
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true    //资源充足才打开
#define     CFG_TCP_CCBNUM              10      //占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5       //占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10      //用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000  //
#define     CFG_TPL_PROTONUM            5       //占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true    //
#define     CFG_TELNETC_ENABLE          false   //
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8      //北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10      //占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4       //占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472       //udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000     //8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"      //需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1        //-1表示最后一块起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false      //"分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false      //"分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false      //
#define CFG_W25QXX_BYTES_PAGE               256        //
#define CFG_W25QXX_PAGES_SECTOR             16         //
#define CFG_W25QXX_SECTORS_BLOCK            16         //
#define CFG_W25QXX_SECTORS_NUM              2048       //
#define CFG_W25QXX_CHIP_ID                  0xEF16     //
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           0                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

/*Modified at 2024-01-23 16:29:53*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end


#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG         //  打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10       //  "设备数量",定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512       //  "C库文件用户态缓冲区尺寸"
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8    //  "对象数初始值"，用完会自动扩充
#define CFG_HANDLE_LIMIT        8    //  "句柄数初始值"，用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false        //  "是否支持在线更新Iboot"，
#define CFG_START_APP_IS_VERIFICATION      true        //  "启动app时是否执行校验功能"，
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN      //  "APP运行模式",CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行，
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC    //  "APP校验方法",
#define CFG_IBOOT_VERSION_SMALL       00         //  "Iboot版本号:低",xx.xx.__，APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00         //  "Iboot版本号:中",xx.__.xx，APP忽略
#define CFG_IBOOT_VERSION_LARGE       01         //  "Iboot版本号:高",__.xx.xx，APP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"            //  "待升级iboot默认存储路径"
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"             //  "待升级app默认存储路径"
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40       //  "锁的数量",定义锁的数量，包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10       //  "内存池数量限值",
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000       //  "执行shell命令的栈尺寸",
#define CFG_ADD_ROUTINE_SHELL      true         //  "是否添加常规shell命令",
#define CFG_ADD_EXPAND_SHELL       true         //  "是否添加拓展shell命令",
#define CFG_ADD_GLOBAL_FUN         false        //  "添加全局函数到shell",
#define CFG_SHOW_ADD_SHEELL        true         //  "编译时显示shell命令",
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                 //   "SPI缓冲区大小",
#define CFG_SPI_DMA_BUF_LEN         256                 //   "SPI DMA缓冲区大小",
#define CFG_SPI1_ENABLE             true               //   "是否配置使用SPI1",
#define CFG_SPI2_ENABLE             false               //   "是否配置使用SPI2",
#define CFG_SPI3_ENABLE             false               //   "是否配置使用SPI3",
#define CFG_SPI4_ENABLE             false               //   "是否配置使用SPI4",
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       512       //   "UART1发送环形缓冲区大小",
#define CFG_UART1_RECVBUF_LEN       512       //   "UART1接收环形缓冲区大小",
#define CFG_UART1_DMABUF_LEN        512       //   "UART1 DMA环形缓冲区大小",
#define CFG_UART2_SENDBUF_LEN       512       //   "UART2发送环形缓冲区大小",
#define CFG_UART2_RECVBUF_LEN       512       //   "UART2接收环形缓冲区大小",
#define CFG_UART2_DMABUF_LEN        512       //   "UART2 DMA环形缓冲区大小",
#define CFG_UART3_SENDBUF_LEN       512       //   "UART3发送环形缓冲区大小",
#define CFG_UART3_RECVBUF_LEN       512       //   "UART3接收环形缓冲区大小",
#define CFG_UART3_DMABUF_LEN        512       //   "UART3 DMA环形缓冲区大小",
#define CFG_UART4_SENDBUF_LEN       32       //   "UART4发送环形缓冲区大小",
#define CFG_UART4_RECVBUF_LEN       32       //   "UART4接收环形缓冲区大小",
#define CFG_UART4_DMABUF_LEN        32       //   "UART4 DMA环形缓冲区大小",
#define CFG_UART5_SENDBUF_LEN       32       //   "UART5发送环形缓冲区大小",
#define CFG_UART5_RECVBUF_LEN       32       //   "UART5接收环形缓冲区大小",
#define CFG_UART5_DMABUF_LEN        32       //   "UART5 DMA环形缓冲区大小",
#define CFG_UART6_SENDBUF_LEN       32       //   "UART6发送环形缓冲区大小",
#define CFG_UART6_RECVBUF_LEN       32       //   "UART6接收环形缓冲区大小",
#define CFG_UART6_DMABUF_LEN        32       //   "UART6 DMA环形缓冲区大小",
#define CFG_UART7_SENDBUF_LEN       32       //   "UART7发送环形缓冲区大小",
#define CFG_UART7_RECVBUF_LEN       32       //   "UART7接收环形缓冲区大小",
#define CFG_UART7_DMABUF_LEN        32       //   "UART7 DMA环形缓冲区大小",
#define CFG_UART8_SENDBUF_LEN       32       //   "UART8发送环形缓冲区大小",
#define CFG_UART8_RECVBUF_LEN       32       //   "UART8接收环形缓冲区大小",
#define CFG_UART8_DMABUF_LEN        32       //   "UART8 DMA环形缓冲区大小",
#define CFG_UART1_ENABLE           true         //   "是否使用UART1",
#define CFG_UART2_ENABLE           true        //   "是否使用UART2",
#define CFG_UART3_ENABLE           true        //   "是否使用UART3",
#define CFG_UART4_ENABLE           false        //   "是否使用UART4",
#define CFG_UART5_ENABLE           false        //   "是否使用UART5",
#define CFG_UART6_ENABLE           false        //   "是否使用UART6",
#define CFG_UART7_ENABLE           false        //   "是否使用UART7",
#define CFG_UART8_ENABLE           false        //   "是否使用UART8",
#define CFG_UART1_TX_DMA_CHANNEL       DMA1_C1    //   串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA1_C2    //   串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA1_C3    //   串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA1_C4    //   串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA1_C5    //   串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA1_C6    //   串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE    //   串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE    //   串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE    //   串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE    //   串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE    //   串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE    //   串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE    //   串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE    //   串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE    //   串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE    //   串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250      //   这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false       //  分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512          //  "片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4            //  "片内flash的扇区中有多少页"
#define CFG_EFLASH_BLOCK_SECT_NUM           32           //  "片内flash的块中有多少扇区"
#define CFG_EFLASH_PLANE1_SECT_NUM          256          //  "片1一共有多少扇区"
#define CFG_EFLASH_PLANE2_SECT_NUM          256          //  "片2一共有多少扇区"
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8            //  "片1一共有多少块"
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8            //  "片2一共有多少块"
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0           //  分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4          //  分区结束，-1表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false       //  分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"     //  需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true   //  "全功能动态分配",即使选false，也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096     //  "初始化栈空间",定义初始化过程使用的栈空间，一般按默认值就可以了
#define CFG_EVENT_LIMIT         22       //  "事件数量限值",事件数量
#define CFG_EVENT_TYPE_LIMIT    22       //  "事件类型数限值",事件类型数
#define CFG_IDLESTACK_LIMIT     1024     //  "IDLE事件栈尺寸",IDLE事件处理函数运行的栈尺寸，一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30       //  "IDLE监视周期",监视IDLE事件持续低于1/16 CPU占比的时间，秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960     //  "main函数栈尺寸",main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false    //  "IDLE监视狗叫复位使能"，IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false    //  "tiny版内核",true=用于资源紧缺的场合，内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false    //  "IDLE检查栈",在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"         //  "本地字符集",
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5        //  "定时器数量",可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true     //  "硬件定时器提供时钟源",选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000   //  "数据包缓冲区尺寸"
#define     CFG_TPL_PROTONUM            5        //  "支持的传输协议数"，占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true     //  "TCP乱序重组使能",资源充足才打开
#define     CFG_TCP_CCBNUM              10       //  "tcp 客户端数限值"，占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5        //  "tcp 服务器数限值"，占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10       //  "tcp socket hashtable长度"，用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true    //  "ftp 服务器使能"
#define     CFG_FTPC_ENABLE            true     //  "ftp 客户端使能"
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true     //  "telnet 服务器使能"
#define     CFG_TELNETC_ENABLE          false    //  "telnet 客户端使能"
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10       //  "socket数限值"，占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false    //  "DHCP 服务器使能"
#define     CFG_DHCPC_ENABLE            true     //  "DHCP 客户端使能"
#define     CFG_DHCP_RENEWTIME          3600     //  "renew timer",秒数
#define     CFG_DHCP_REBINDTIME         3600     //  "rebind timer",秒数
#define     CFG_DHCP_LEASETIME          3600     //  "lease timer",秒数
#define     CFG_DHCPD_IPNUM             0x40     //  "IP池尺寸",64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"     //  "DHCP起始IP",
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"   //  "DHCP SERVER IP"
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"   //  "DHCP ROUTER SERVER IP"
#define     CFG_DHCPD_NETIP             "255.255.255.0"   //  "DHCP MASK IP"
#define     CFG_DHCPD_DNS               "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DOMAINNAME       "domain"         //  "DHCP domain name"
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32       //  "ARP哈希表长度"，占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10       //  "UDP socket数限值"，占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4        //  "udp socket 哈希表长度"，占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472        //  udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000      //  8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"    //   "网卡名称",
#define CFG_ETH_LOOP_CYCLE      1000          //   "网卡轮询周期(uS)",中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true             //   "网卡接收是否轮询",
#define CFG_ETH_HARD_MAC_ADDR   true             //   "硬件生成Mac地址",
#define CFG_ETH_MAC_ADDR0      00            //   "MAC ADDR0",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02            //   "MAC ADDR1",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03            //   "MAC ADDR2",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04            //   "MAC ADDR3",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05            //   "MAC ADDR4",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06            //   "MAC ADDR5",若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false       //  "分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false       //  "是否使用QSPI模式"
#define CFG_W25QXX_BYTES_PAGE               256         //  "每页的字节数"
#define CFG_W25QXX_PAGES_SECTOR             16          //  "每个扇区有多少页"
#define CFG_W25QXX_SECTORS_BLOCK            16          //  "每个块有多少扇区"
#define CFG_W25QXX_SECTORS_NUM              2048        //  "总的扇区数"
#define CFG_W25QXX_CHIP_ID                  0xEF16      //  "芯片ID"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"       //  "文件系统mount点名字",需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1         //  "分区结束"，-1表示最后一块,起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false       //  "分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8       //  "时区",北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true          //  "是否支持多种输入设备",
#define CFG_STDIO_STDOUT_FOLLOW    true          //  "stdout是否跟随stdin",
#define CFG_STDIO_STDERR_FOLLOW    true          //  "stderr是否跟随stdin",
#define CFG_STDIO_FLOAT_PRINT      true          //  "支持浮点打印"
#define CFG_STDIO_STDIOFILE        true          //  "支持标准IO文件"
#define CFG_STDIO_IN_NAME              "/dev/UART1"     //  "标准输入设备名",
#define CFG_STDIO_OUT_NAME             "/dev/UART1"     //  "标准输出设备名",
#define CFG_STDIO_ERR_NAME             "/dev/UART1"     //  "标准err输出设备名",
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false             //   "使用静态IP?",
#define CFG_SELECT_NETCARD  "AT32F437_ETH"    //   "网卡名称",必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100"  //   "静态IP",
#define CFG_MY_SUBMASK      "255.255.255.0"  //   "子网掩码",
#define CFG_MY_GATWAY       "192.168.8.1"    //   "网关",
#define CFG_MY_DNS          "192.168.8.1"    //   "首选DNS",
#define CFG_MY_DNSBAK       "192.168.8.1"    //   "备用DNS",
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure modbus  ******************************************//
#define CFG_MB_ASCII_TIMEOUT_SEC                    100        //  "从机用ASCII时，通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define CFG_MB_FUNC_HANDLERS_MAX                    16       //  "协议栈应该支持的Modbus功能码的最大数量"
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF           32       //  "从机ID数据长度",这个数字限制了从机ID数据的最大大小。
#define CFG_MB_MASTER_DELAY_MS_CONVERT              200      //  "等待延迟时间",主站发送一个广播帧后，主站等待延迟时间，时间到后才主站才可以发送其他帧
#define CFG_MB_MASTER_TIMEOUT_MS_RESPOND            500      //  "从机响应超时时间"
#define CFG_MB_MASTER_TOTAL_SLAVE_NUM               1       //  "从机总数"
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED       true     //   "是否启用请求从机ID功能"
#define CFG_MB_FUNC_READ_INPUT_ENABLED              true     //   "是否启用读输入寄存器功能"
#define CFG_MB_FUNC_READ_HOLDING_ENABLED            true     //   "是否启用读保持寄存器功能"
#define CFG_MB_FUNC_WRITE_HOLDING_ENABLED           true     //   "是否启用写单个寄存器功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true     //   "是否启用写多个寄存器功能"
#define CFG_MB_FUNC_READ_COILS_ENABLED              true     //   "是否启用读线圈功能"
#define CFG_MB_FUNC_WRITE_COIL_ENABLED              true     //   "是否启用写线圈功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED    true     //   "是否启用写多个线圈功能"
#define CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED    true     //   "是否启用读离散输入功能"
#define CFG_MB_FUNC_READWRITE_HOLDING_ENABLED       true     //   "是否启用读写多个寄存器功能"
#define CFG_MB_MASTER_ENABLED                       true     //   "主机使能开关"
    #define CFG_MB_MASTER_RTU_ENABLED                   true     //   "主机RTU使能开关"
    #define CFG_MB_M_DISCRETE_INPUT_START               0         //  "主机离散量输入的起始地址"
    #define CFG_MB_M_DISCRETE_INPUT_NDISCRETES          0        //  "主机离散量输入的数量"
    #define CFG_MB_M_COIL_START                         0        //  "主机线圈的起始地址"
    #define CFG_MB_M_COIL_NCOILS                        0        //  "主机线圈的数量"
    #define CFG_MB_M_REG_INPUT_START                    0        //  "主机输入寄存器的起始地址"
    #define CFG_MB_M_REG_INPUT_NREGS                    0        //  "主机输入寄存器的数量"
    #define CFG_MB_M_REG_HOLDING_START                  0        //  "主机保持寄存器的起始地址"
    #define CFG_MB_M_REG_HOLDING_NREGS                  65000        //  "主机保持寄存器的数量"
    #define CFG_MB_M_PORT_NUM                           2         //  "串口的端口号，例如要用/dev/UART2，就填2"
    #define CFG_MB_M_PORT_BAUDRATE                      9600     //   "串口波特率"
    #define CFG_MB_M_PORT_PARITY                        MB_PAR_NONE     //   "校验方式"
#define CFG_MB_SLAVE_ENABLED                       false     //   "从机使能开关"
    #define CFG_MB_SLAVE_ASCII_ENABLED                  false     //   "从机ASCII使能开关"
    #define CFG_MB_SLAVE_RTU_ENABLED                    false     //   "从机RTU使能开关"
    #define CFG_MB_SLAVE_TCP_ENABLED                    false     //   "从机TCP使能开关"
    #define CFG_MB_S_DISCRETE_INPUT_START               1         //  "从机离散量输入的起始地址"
    #define CFG_MB_S_DISCRETE_INPUT_NDISCRETES          10        //  "从机离散量输入的数量"
    #define CFG_MB_S_COIL_START                         11        //  "从机线圈的起始地址。"
    #define CFG_MB_S_COIL_NCOILS                        10        //  "从机线圈的数量"
    #define CFG_MB_S_REG_INPUT_START                    21        //  "从机输入寄存器的起始地址"
    #define CFG_MB_S_REG_INPUT_NREGS                    10        //  "从机输入寄存器的数量"
    #define CFG_MB_S_REG_HOLDING_START                  31        //  "从机保持寄存器的起始地址"
    #define CFG_MB_S_REG_HOLDING_NREGS                  10        //  "从机保持寄存器的数量"
    #define CFG_MB_S_ADDR                               2         //  "从机地址"
    #define CFG_MB_S_PORT_NUM                           2         //  "串口的端口号，例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
    #define CFG_MB_S_TCP_PORT_NUM                       0         //  "使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
    #define CFG_MB_S_PORT_BAUDRATE                      115200     //   "串口波特率"
    #define CFG_MB_S_PORT_PARITY                        MB_PAR_NONE     //   "校验方式"
    #define CFG_MB_S_TRANSFER_MODE                      MB_RTU_MODE     //   "通信方式"
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           0                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

/*Modified at 2024-01-23 16:30:02*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end


#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32      //占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false      //分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512         //"片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4           //
#define CFG_EFLASH_BLOCK_SECT_NUM           32          //
#define CFG_EFLASH_PLANE1_SECT_NUM          256         //
#define CFG_EFLASH_PLANE2_SECT_NUM          256         //
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8           //
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8           //
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"   //
#define CFG_ETH_LOOP_CYCLE      1000         //中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true            //
#define CFG_ETH_HARD_MAC_ADDR   true            //
#define CFG_ETH_MAC_ADDR0      00           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06           //若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                //
#define CFG_SPI_DMA_BUF_LEN         256                //
#define CFG_SPI1_ENABLE             true              //
#define CFG_SPI2_ENABLE             false              //
#define CFG_SPI3_ENABLE             false              //
#define CFG_SPI4_ENABLE             false              //
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250     //这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       512      //
#define CFG_UART1_RECVBUF_LEN       512      //
#define CFG_UART1_DMABUF_LEN        512      //
#define CFG_UART2_SENDBUF_LEN       512      //
#define CFG_UART2_RECVBUF_LEN       512      //
#define CFG_UART2_DMABUF_LEN        512      //
#define CFG_UART3_SENDBUF_LEN       512      //
#define CFG_UART3_RECVBUF_LEN       512      //
#define CFG_UART3_DMABUF_LEN        512      //
#define CFG_UART4_SENDBUF_LEN       32      //
#define CFG_UART4_RECVBUF_LEN       32      //
#define CFG_UART4_DMABUF_LEN        32      //
#define CFG_UART5_SENDBUF_LEN       32      //
#define CFG_UART5_RECVBUF_LEN       32      //
#define CFG_UART5_DMABUF_LEN        32      //
#define CFG_UART6_SENDBUF_LEN       32      //
#define CFG_UART6_RECVBUF_LEN       32      //
#define CFG_UART6_DMABUF_LEN        32      //
#define CFG_UART7_SENDBUF_LEN       32      //
#define CFG_UART7_RECVBUF_LEN       32      //
#define CFG_UART7_DMABUF_LEN        32      //
#define CFG_UART8_SENDBUF_LEN       32      //
#define CFG_UART8_RECVBUF_LEN       32      //
#define CFG_UART8_DMABUF_LEN        32      //
#define CFG_UART1_ENABLE           true        //
#define CFG_UART2_ENABLE           true       //
#define CFG_UART3_ENABLE           true       //
#define CFG_UART4_ENABLE           false       //
#define CFG_UART5_ENABLE           false       //
#define CFG_UART6_ENABLE           false       //
#define CFG_UART7_ENABLE           false       //
#define CFG_UART8_ENABLE           false       //
#define CFG_UART1_TX_DMA_CHANNEL       DMA1_C1   //串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA1_C2   //串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA1_C3   //串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA1_C4   //串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA1_C5   //串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA1_C6   //串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE   //串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE   //串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE   //串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE   //串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE   //串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE   //串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE   //串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE   //串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE   //串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE   //串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG        //打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10      //定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false   //
#define     CFG_DHCPC_ENABLE            true    //
#define     CFG_DHCP_RENEWTIME          3600    //秒数
#define     CFG_DHCP_REBINDTIME         3600    //秒数
#define     CFG_DHCP_LEASETIME          3600    //秒数
#define     CFG_DHCPD_IPNUM             0x40    //64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"    //
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"  //
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"  //
#define     CFG_DHCPD_NETIP             "255.255.255.0"  //
#define     CFG_DHCPD_DNS               "192.168.0.253"  //
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"  //
#define     CFG_DHCPD_DOMAINNAME       "domain"        //
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0          //分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4         //分区结束，4表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false      //分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"    //需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512      //
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true   //
#define     CFG_FTPC_ENABLE            true    //
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true  //即使选false也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096    //定义初始化过程使用的栈空间一般按默认值就可以了
#define CFG_EVENT_LIMIT         22      //事件数量
#define CFG_EVENT_TYPE_LIMIT    22      //事件类型数
#define CFG_IDLESTACK_LIMIT     1024    //IDLE事件处理函数运行的栈尺寸一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30      //监视IDLE事件持续低于1/16 CPU占比的时间秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960    //main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false   //IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false   //true=用于资源紧缺的场合内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false   //在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8   //用完会自动扩充
#define CFG_HANDLE_LIMIT        8   //用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false       //
#define CFG_START_APP_IS_VERIFICATION      true       //
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN     //CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC   //
#define CFG_IBOOT_VERSION_SMALL       00        //xx.xx.__APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00        //xx.__.xxAPP忽略
#define CFG_IBOOT_VERSION_LARGE       01        //__.xx.xxAPP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"           //
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"            //
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40      //定义锁的数量包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10      //
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure modbus  ******************************************//
#define CFG_MB_ASCII_TIMEOUT_SEC                    100       //"从机用ASCII时，通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define CFG_MB_FUNC_HANDLERS_MAX                    16      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF           32      //这个数字限制了从机ID数据的最大大小。
#define CFG_MB_MASTER_DELAY_MS_CONVERT              200     //主站发送一个广播帧后主站等待延迟时间，时间到后才主站才可以发送其他帧
#define CFG_MB_MASTER_TIMEOUT_MS_RESPOND            500     //
#define CFG_MB_MASTER_TOTAL_SLAVE_NUM               1      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED       true    // "是否启用请求从机ID功能"
#define CFG_MB_FUNC_READ_INPUT_ENABLED              true    // "是否启用读输入寄存器功能"
#define CFG_MB_FUNC_READ_HOLDING_ENABLED            true    // "是否启用读保持寄存器功能"
#define CFG_MB_FUNC_WRITE_HOLDING_ENABLED           true    // "是否启用写单个寄存器功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true    // "是否启用写多个寄存器功能"
#define CFG_MB_FUNC_READ_COILS_ENABLED              true    // "是否启用读线圈功能"
#define CFG_MB_FUNC_WRITE_COIL_ENABLED              true    // "是否启用写线圈功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED    true    // "是否启用写多个线圈功能"
#define CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED    true    // "是否启用读离散输入功能"
#define CFG_MB_FUNC_READWRITE_HOLDING_ENABLED       true    // "是否启用读写多个寄存器功能"
#define CFG_MB_MASTER_ENABLED                       true    // "主机使能开关"
    #define CFG_MB_MASTER_RTU_ENABLED                   true    // "主机RTU使能开关"
    #define CFG_MB_M_DISCRETE_INPUT_START               0        //
    #define CFG_MB_M_DISCRETE_INPUT_NDISCRETES          0       //
    #define CFG_MB_M_COIL_START                         0       //
    #define CFG_MB_M_COIL_NCOILS                        0       //
    #define CFG_MB_M_REG_INPUT_START                    0       //
    #define CFG_MB_M_REG_INPUT_NREGS                    0       //
    #define CFG_MB_M_REG_HOLDING_START                  0       //
    #define CFG_MB_M_REG_HOLDING_NREGS                  65000       //
    #define CFG_MB_M_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"
    #define CFG_MB_M_PORT_BAUDRATE                      9600    // "串口波特率"
    #define CFG_MB_M_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
#define CFG_MB_SLAVE_ENABLED                       false    // "从机使能开关"
    #define CFG_MB_SLAVE_ASCII_ENABLED                  false    // "从机ASCII使能开关"
    #define CFG_MB_SLAVE_RTU_ENABLED                    false    // "从机RTU使能开关"
    #define CFG_MB_SLAVE_TCP_ENABLED                    false    // "从机TCP使能开关"
    #define CFG_MB_S_DISCRETE_INPUT_START               1        //
    #define CFG_MB_S_DISCRETE_INPUT_NDISCRETES          10       //
    #define CFG_MB_S_COIL_START                         11       //
    #define CFG_MB_S_COIL_NCOILS                        10       //
    #define CFG_MB_S_REG_INPUT_START                    21       //
    #define CFG_MB_S_REG_INPUT_NREGS                    10       //
    #define CFG_MB_S_REG_HOLDING_START                  31       //
    #define CFG_MB_S_REG_HOLDING_NREGS                  10       //
    #define CFG_MB_S_ADDR                               2        //
    #define CFG_MB_S_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
    #define CFG_MB_S_TCP_PORT_NUM                       0        //"使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
    #define CFG_MB_S_PORT_BAUDRATE                      115200    // "串口波特率"
    #define CFG_MB_S_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
    #define CFG_MB_S_TRANSFER_MODE                      MB_RTU_MODE    // "通信方式"
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false            //
#define CFG_SELECT_NETCARD  "AT32F437_ETH"   //必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100" //
#define CFG_MY_SUBMASK      "255.255.255.0" //
#define CFG_MY_GATWAY       "192.168.8.1"   //
#define CFG_MY_DNS          "192.168.8.1"   //
#define CFG_MY_DNSBAK       "192.168.8.1"   //
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"        //
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000      //
#define CFG_ADD_ROUTINE_SHELL      true        //
#define CFG_ADD_EXPAND_SHELL       true        //
#define CFG_ADD_GLOBAL_FUN         false       //
#define CFG_SHOW_ADD_SHEELL        true        //
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10      //占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5       //可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true    //选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true         //
#define CFG_STDIO_STDOUT_FOLLOW    true         //
#define CFG_STDIO_STDERR_FOLLOW    true         //
#define CFG_STDIO_FLOAT_PRINT      true         //
#define CFG_STDIO_STDIOFILE        true         //
#define CFG_STDIO_IN_NAME              "/dev/UART1"    //
#define CFG_STDIO_OUT_NAME             "/dev/UART1"    //
#define CFG_STDIO_ERR_NAME             "/dev/UART1"    //
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true    //资源充足才打开
#define     CFG_TCP_CCBNUM              10      //占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5       //占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10      //用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000  //
#define     CFG_TPL_PROTONUM            5       //占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true    //
#define     CFG_TELNETC_ENABLE          false   //
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8      //北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10      //占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4       //占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472       //udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000     //8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"      //需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1        //-1表示最后一块起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false      //"分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false      //"分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false      //
#define CFG_W25QXX_BYTES_PAGE               256        //
#define CFG_W25QXX_PAGES_SECTOR             16         //
#define CFG_W25QXX_SECTORS_BLOCK            16         //
#define CFG_W25QXX_SECTORS_NUM              2048       //
#define CFG_W25QXX_CHIP_ID                  0xEF16     //
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           0                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

/*Modified at 2024-01-23 16:30:06*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end


#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG         //  打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10       //  "设备数量",定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512       //  "C库文件用户态缓冲区尺寸"
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8    //  "对象数初始值"，用完会自动扩充
#define CFG_HANDLE_LIMIT        8    //  "句柄数初始值"，用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false        //  "是否支持在线更新Iboot"，
#define CFG_START_APP_IS_VERIFICATION      true        //  "启动app时是否执行校验功能"，
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN      //  "APP运行模式",CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行，
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC    //  "APP校验方法",
#define CFG_IBOOT_VERSION_SMALL       00         //  "Iboot版本号:低",xx.xx.__，APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00         //  "Iboot版本号:中",xx.__.xx，APP忽略
#define CFG_IBOOT_VERSION_LARGE       01         //  "Iboot版本号:高",__.xx.xx，APP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"            //  "待升级iboot默认存储路径"
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"             //  "待升级app默认存储路径"
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40       //  "锁的数量",定义锁的数量，包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10       //  "内存池数量限值",
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000       //  "执行shell命令的栈尺寸",
#define CFG_ADD_ROUTINE_SHELL      true         //  "是否添加常规shell命令",
#define CFG_ADD_EXPAND_SHELL       true         //  "是否添加拓展shell命令",
#define CFG_ADD_GLOBAL_FUN         false        //  "添加全局函数到shell",
#define CFG_SHOW_ADD_SHEELL        true         //  "编译时显示shell命令",
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                 //   "SPI缓冲区大小",
#define CFG_SPI_DMA_BUF_LEN         256                 //   "SPI DMA缓冲区大小",
#define CFG_SPI1_ENABLE             true               //   "是否配置使用SPI1",
#define CFG_SPI2_ENABLE             false               //   "是否配置使用SPI2",
#define CFG_SPI3_ENABLE             false               //   "是否配置使用SPI3",
#define CFG_SPI4_ENABLE             false               //   "是否配置使用SPI4",
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       512       //   "UART1发送环形缓冲区大小",
#define CFG_UART1_RECVBUF_LEN       512       //   "UART1接收环形缓冲区大小",
#define CFG_UART1_DMABUF_LEN        512       //   "UART1 DMA环形缓冲区大小",
#define CFG_UART2_SENDBUF_LEN       512       //   "UART2发送环形缓冲区大小",
#define CFG_UART2_RECVBUF_LEN       512       //   "UART2接收环形缓冲区大小",
#define CFG_UART2_DMABUF_LEN        512       //   "UART2 DMA环形缓冲区大小",
#define CFG_UART3_SENDBUF_LEN       512       //   "UART3发送环形缓冲区大小",
#define CFG_UART3_RECVBUF_LEN       512       //   "UART3接收环形缓冲区大小",
#define CFG_UART3_DMABUF_LEN        512       //   "UART3 DMA环形缓冲区大小",
#define CFG_UART4_SENDBUF_LEN       32       //   "UART4发送环形缓冲区大小",
#define CFG_UART4_RECVBUF_LEN       32       //   "UART4接收环形缓冲区大小",
#define CFG_UART4_DMABUF_LEN        32       //   "UART4 DMA环形缓冲区大小",
#define CFG_UART5_SENDBUF_LEN       32       //   "UART5发送环形缓冲区大小",
#define CFG_UART5_RECVBUF_LEN       32       //   "UART5接收环形缓冲区大小",
#define CFG_UART5_DMABUF_LEN        32       //   "UART5 DMA环形缓冲区大小",
#define CFG_UART6_SENDBUF_LEN       32       //   "UART6发送环形缓冲区大小",
#define CFG_UART6_RECVBUF_LEN       32       //   "UART6接收环形缓冲区大小",
#define CFG_UART6_DMABUF_LEN        32       //   "UART6 DMA环形缓冲区大小",
#define CFG_UART7_SENDBUF_LEN       32       //   "UART7发送环形缓冲区大小",
#define CFG_UART7_RECVBUF_LEN       32       //   "UART7接收环形缓冲区大小",
#define CFG_UART7_DMABUF_LEN        32       //   "UART7 DMA环形缓冲区大小",
#define CFG_UART8_SENDBUF_LEN       32       //   "UART8发送环形缓冲区大小",
#define CFG_UART8_RECVBUF_LEN       32       //   "UART8接收环形缓冲区大小",
#define CFG_UART8_DMABUF_LEN        32       //   "UART8 DMA环形缓冲区大小",
#define CFG_UART1_ENABLE           true         //   "是否使用UART1",
#define CFG_UART2_ENABLE           true        //   "是否使用UART2",
#define CFG_UART3_ENABLE           true        //   "是否使用UART3",
#define CFG_UART4_ENABLE           false        //   "是否使用UART4",
#define CFG_UART5_ENABLE           false        //   "是否使用UART5",
#define CFG_UART6_ENABLE           false        //   "是否使用UART6",
#define CFG_UART7_ENABLE           false        //   "是否使用UART7",
#define CFG_UART8_ENABLE           false        //   "是否使用UART8",
#define CFG_UART1_TX_DMA_CHANNEL       DMA1_C1    //   串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA1_C2    //   串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA1_C3    //   串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA1_C4    //   串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA1_C5    //   串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA1_C6    //   串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE    //   串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE    //   串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE    //   串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE    //   串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE    //   串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE    //   串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE    //   串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE    //   串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE    //   串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE    //   串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250      //   这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false       //  分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512          //  "片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4            //  "片内flash的扇区中有多少页"
#define CFG_EFLASH_BLOCK_SECT_NUM           32           //  "片内flash的块中有多少扇区"
#define CFG_EFLASH_PLANE1_SECT_NUM          256          //  "片1一共有多少扇区"
#define CFG_EFLASH_PLANE2_SECT_NUM          256          //  "片2一共有多少扇区"
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8            //  "片1一共有多少块"
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8            //  "片2一共有多少块"
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0           //  分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4          //  分区结束，-1表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false       //  分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"     //  需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true   //  "全功能动态分配",即使选false，也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096     //  "初始化栈空间",定义初始化过程使用的栈空间，一般按默认值就可以了
#define CFG_EVENT_LIMIT         22       //  "事件数量限值",事件数量
#define CFG_EVENT_TYPE_LIMIT    22       //  "事件类型数限值",事件类型数
#define CFG_IDLESTACK_LIMIT     1024     //  "IDLE事件栈尺寸",IDLE事件处理函数运行的栈尺寸，一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30       //  "IDLE监视周期",监视IDLE事件持续低于1/16 CPU占比的时间，秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960     //  "main函数栈尺寸",main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false    //  "IDLE监视狗叫复位使能"，IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false    //  "tiny版内核",true=用于资源紧缺的场合，内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false    //  "IDLE检查栈",在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"         //  "本地字符集",
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5        //  "定时器数量",可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true     //  "硬件定时器提供时钟源",选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000   //  "数据包缓冲区尺寸"
#define     CFG_TPL_PROTONUM            5        //  "支持的传输协议数"，占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true     //  "TCP乱序重组使能",资源充足才打开
#define     CFG_TCP_CCBNUM              10       //  "tcp 客户端数限值"，占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5        //  "tcp 服务器数限值"，占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10       //  "tcp socket hashtable长度"，用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true    //  "ftp 服务器使能"
#define     CFG_FTPC_ENABLE            true     //  "ftp 客户端使能"
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true     //  "telnet 服务器使能"
#define     CFG_TELNETC_ENABLE          false    //  "telnet 客户端使能"
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10       //  "socket数限值"，占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false    //  "DHCP 服务器使能"
#define     CFG_DHCPC_ENABLE            true     //  "DHCP 客户端使能"
#define     CFG_DHCP_RENEWTIME          3600     //  "renew timer",秒数
#define     CFG_DHCP_REBINDTIME         3600     //  "rebind timer",秒数
#define     CFG_DHCP_LEASETIME          3600     //  "lease timer",秒数
#define     CFG_DHCPD_IPNUM             0x40     //  "IP池尺寸",64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"     //  "DHCP起始IP",
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"   //  "DHCP SERVER IP"
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"   //  "DHCP ROUTER SERVER IP"
#define     CFG_DHCPD_NETIP             "255.255.255.0"   //  "DHCP MASK IP"
#define     CFG_DHCPD_DNS               "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DOMAINNAME       "domain"         //  "DHCP domain name"
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32       //  "ARP哈希表长度"，占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10       //  "UDP socket数限值"，占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4        //  "udp socket 哈希表长度"，占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472        //  udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000      //  8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"    //   "网卡名称",
#define CFG_ETH_LOOP_CYCLE      1000          //   "网卡轮询周期(uS)",中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true             //   "网卡接收是否轮询",
#define CFG_ETH_HARD_MAC_ADDR   true             //   "硬件生成Mac地址",
#define CFG_ETH_MAC_ADDR0      00            //   "MAC ADDR0",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02            //   "MAC ADDR1",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03            //   "MAC ADDR2",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04            //   "MAC ADDR3",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05            //   "MAC ADDR4",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06            //   "MAC ADDR5",若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false       //  "分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false       //  "是否使用QSPI模式"
#define CFG_W25QXX_BYTES_PAGE               256         //  "每页的字节数"
#define CFG_W25QXX_PAGES_SECTOR             16          //  "每个扇区有多少页"
#define CFG_W25QXX_SECTORS_BLOCK            16          //  "每个块有多少扇区"
#define CFG_W25QXX_SECTORS_NUM              2048        //  "总的扇区数"
#define CFG_W25QXX_CHIP_ID                  0xEF16      //  "芯片ID"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"       //  "文件系统mount点名字",需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1         //  "分区结束"，-1表示最后一块,起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false       //  "分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8       //  "时区",北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true          //  "是否支持多种输入设备",
#define CFG_STDIO_STDOUT_FOLLOW    true          //  "stdout是否跟随stdin",
#define CFG_STDIO_STDERR_FOLLOW    true          //  "stderr是否跟随stdin",
#define CFG_STDIO_FLOAT_PRINT      true          //  "支持浮点打印"
#define CFG_STDIO_STDIOFILE        true          //  "支持标准IO文件"
#define CFG_STDIO_IN_NAME              "/dev/UART1"     //  "标准输入设备名",
#define CFG_STDIO_OUT_NAME             "/dev/UART1"     //  "标准输出设备名",
#define CFG_STDIO_ERR_NAME             "/dev/UART1"     //  "标准err输出设备名",
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false             //   "使用静态IP?",
#define CFG_SELECT_NETCARD  "AT32F437_ETH"    //   "网卡名称",必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100"  //   "静态IP",
#define CFG_MY_SUBMASK      "255.255.255.0"  //   "子网掩码",
#define CFG_MY_GATWAY       "192.168.8.1"    //   "网关",
#define CFG_MY_DNS          "192.168.8.1"    //   "首选DNS",
#define CFG_MY_DNSBAK       "192.168.8.1"    //   "备用DNS",
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure modbus  ******************************************//
#define CFG_MB_ASCII_TIMEOUT_SEC                    100        //  "从机用ASCII时，通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define CFG_MB_FUNC_HANDLERS_MAX                    16       //  "协议栈应该支持的Modbus功能码的最大数量"
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF           32       //  "从机ID数据长度",这个数字限制了从机ID数据的最大大小。
#define CFG_MB_MASTER_DELAY_MS_CONVERT              200      //  "等待延迟时间",主站发送一个广播帧后，主站等待延迟时间，时间到后才主站才可以发送其他帧
#define CFG_MB_MASTER_TIMEOUT_MS_RESPOND            500      //  "从机响应超时时间"
#define CFG_MB_MASTER_TOTAL_SLAVE_NUM               1       //  "从机总数"
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED       true     //   "是否启用请求从机ID功能"
#define CFG_MB_FUNC_READ_INPUT_ENABLED              true     //   "是否启用读输入寄存器功能"
#define CFG_MB_FUNC_READ_HOLDING_ENABLED            true     //   "是否启用读保持寄存器功能"
#define CFG_MB_FUNC_WRITE_HOLDING_ENABLED           true     //   "是否启用写单个寄存器功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true     //   "是否启用写多个寄存器功能"
#define CFG_MB_FUNC_READ_COILS_ENABLED              true     //   "是否启用读线圈功能"
#define CFG_MB_FUNC_WRITE_COIL_ENABLED              true     //   "是否启用写线圈功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED    true     //   "是否启用写多个线圈功能"
#define CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED    true     //   "是否启用读离散输入功能"
#define CFG_MB_FUNC_READWRITE_HOLDING_ENABLED       true     //   "是否启用读写多个寄存器功能"
#define CFG_MB_MASTER_ENABLED                       true     //   "主机使能开关"
    #define CFG_MB_MASTER_RTU_ENABLED                   true     //   "主机RTU使能开关"
    #define CFG_MB_M_DISCRETE_INPUT_START               0         //  "主机离散量输入的起始地址"
    #define CFG_MB_M_DISCRETE_INPUT_NDISCRETES          0        //  "主机离散量输入的数量"
    #define CFG_MB_M_COIL_START                         0        //  "主机线圈的起始地址"
    #define CFG_MB_M_COIL_NCOILS                        0        //  "主机线圈的数量"
    #define CFG_MB_M_REG_INPUT_START                    0        //  "主机输入寄存器的起始地址"
    #define CFG_MB_M_REG_INPUT_NREGS                    0        //  "主机输入寄存器的数量"
    #define CFG_MB_M_REG_HOLDING_START                  0        //  "主机保持寄存器的起始地址"
    #define CFG_MB_M_REG_HOLDING_NREGS                  65000        //  "主机保持寄存器的数量"
    #define CFG_MB_M_PORT_NUM                           2         //  "串口的端口号，例如要用/dev/UART2，就填2"
    #define CFG_MB_M_PORT_BAUDRATE                      9600     //   "串口波特率"
    #define CFG_MB_M_PORT_PARITY                        MB_PAR_NONE     //   "校验方式"
#define CFG_MB_SLAVE_ENABLED                       false     //   "从机使能开关"
    #define CFG_MB_SLAVE_ASCII_ENABLED                  false     //   "从机ASCII使能开关"
    #define CFG_MB_SLAVE_RTU_ENABLED                    false     //   "从机RTU使能开关"
    #define CFG_MB_SLAVE_TCP_ENABLED                    false     //   "从机TCP使能开关"
    #define CFG_MB_S_DISCRETE_INPUT_START               1         //  "从机离散量输入的起始地址"
    #define CFG_MB_S_DISCRETE_INPUT_NDISCRETES          10        //  "从机离散量输入的数量"
    #define CFG_MB_S_COIL_START                         11        //  "从机线圈的起始地址。"
    #define CFG_MB_S_COIL_NCOILS                        10        //  "从机线圈的数量"
    #define CFG_MB_S_REG_INPUT_START                    21        //  "从机输入寄存器的起始地址"
    #define CFG_MB_S_REG_INPUT_NREGS                    10        //  "从机输入寄存器的数量"
    #define CFG_MB_S_REG_HOLDING_START                  31        //  "从机保持寄存器的起始地址"
    #define CFG_MB_S_REG_HOLDING_NREGS                  10        //  "从机保持寄存器的数量"
    #define CFG_MB_S_ADDR                               2         //  "从机地址"
    #define CFG_MB_S_PORT_NUM                           2         //  "串口的端口号，例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
    #define CFG_MB_S_TCP_PORT_NUM                       0         //  "使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
    #define CFG_MB_S_PORT_BAUDRATE                      115200     //   "串口波特率"
    #define CFG_MB_S_PORT_PARITY                        MB_PAR_NONE     //   "校验方式"
    #define CFG_MB_S_TRANSFER_MODE                      MB_RTU_MODE     //   "通信方式"
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG         //  打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10       //  "设备数量",定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512       //  "C库文件用户态缓冲区尺寸"
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8    //  "对象数初始值"，用完会自动扩充
#define CFG_HANDLE_LIMIT        8    //  "句柄数初始值"，用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false        //  "是否支持在线更新Iboot"，
#define CFG_START_APP_IS_VERIFICATION      true        //  "启动app时是否执行校验功能"，
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN      //  "APP运行模式",CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行，
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC    //  "APP校验方法",
#define CFG_IBOOT_VERSION_SMALL       00         //  "Iboot版本号:低",xx.xx.__，APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00         //  "Iboot版本号:中",xx.__.xx，APP忽略
#define CFG_IBOOT_VERSION_LARGE       01         //  "Iboot版本号:高",__.xx.xx，APP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"            //  "待升级iboot默认存储路径"
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"             //  "待升级app默认存储路径"
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40       //  "锁的数量",定义锁的数量，包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10       //  "内存池数量限值",
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000       //  "执行shell命令的栈尺寸",
#define CFG_ADD_ROUTINE_SHELL      true         //  "是否添加常规shell命令",
#define CFG_ADD_EXPAND_SHELL       true         //  "是否添加拓展shell命令",
#define CFG_ADD_GLOBAL_FUN         false        //  "添加全局函数到shell",
#define CFG_SHOW_ADD_SHEELL        true         //  "编译时显示shell命令",
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                 //   "SPI缓冲区大小",
#define CFG_SPI_DMA_BUF_LEN         256                 //   "SPI DMA缓冲区大小",
#define CFG_SPI1_ENABLE             true               //   "是否配置使用SPI1",
#define CFG_SPI2_ENABLE             false               //   "是否配置使用SPI2",
#define CFG_SPI3_ENABLE             false               //   "是否配置使用SPI3",
#define CFG_SPI4_ENABLE             false               //   "是否配置使用SPI4",
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       512       //   "UART1发送环形缓冲区大小",
#define CFG_UART1_RECVBUF_LEN       512       //   "UART1接收环形缓冲区大小",
#define CFG_UART1_DMABUF_LEN        512       //   "UART1 DMA环形缓冲区大小",
#define CFG_UART2_SENDBUF_LEN       512       //   "UART2发送环形缓冲区大小",
#define CFG_UART2_RECVBUF_LEN       512       //   "UART2接收环形缓冲区大小",
#define CFG_UART2_DMABUF_LEN        512       //   "UART2 DMA环形缓冲区大小",
#define CFG_UART3_SENDBUF_LEN       512       //   "UART3发送环形缓冲区大小",
#define CFG_UART3_RECVBUF_LEN       512       //   "UART3接收环形缓冲区大小",
#define CFG_UART3_DMABUF_LEN        512       //   "UART3 DMA环形缓冲区大小",
#define CFG_UART4_SENDBUF_LEN       32       //   "UART4发送环形缓冲区大小",
#define CFG_UART4_RECVBUF_LEN       32       //   "UART4接收环形缓冲区大小",
#define CFG_UART4_DMABUF_LEN        32       //   "UART4 DMA环形缓冲区大小",
#define CFG_UART5_SENDBUF_LEN       32       //   "UART5发送环形缓冲区大小",
#define CFG_UART5_RECVBUF_LEN       32       //   "UART5接收环形缓冲区大小",
#define CFG_UART5_DMABUF_LEN        32       //   "UART5 DMA环形缓冲区大小",
#define CFG_UART6_SENDBUF_LEN       32       //   "UART6发送环形缓冲区大小",
#define CFG_UART6_RECVBUF_LEN       32       //   "UART6接收环形缓冲区大小",
#define CFG_UART6_DMABUF_LEN        32       //   "UART6 DMA环形缓冲区大小",
#define CFG_UART7_SENDBUF_LEN       32       //   "UART7发送环形缓冲区大小",
#define CFG_UART7_RECVBUF_LEN       32       //   "UART7接收环形缓冲区大小",
#define CFG_UART7_DMABUF_LEN        32       //   "UART7 DMA环形缓冲区大小",
#define CFG_UART8_SENDBUF_LEN       32       //   "UART8发送环形缓冲区大小",
#define CFG_UART8_RECVBUF_LEN       32       //   "UART8接收环形缓冲区大小",
#define CFG_UART8_DMABUF_LEN        32       //   "UART8 DMA环形缓冲区大小",
#define CFG_UART1_ENABLE           true         //   "是否使用UART1",
#define CFG_UART2_ENABLE           true        //   "是否使用UART2",
#define CFG_UART3_ENABLE           true        //   "是否使用UART3",
#define CFG_UART4_ENABLE           false        //   "是否使用UART4",
#define CFG_UART5_ENABLE           false        //   "是否使用UART5",
#define CFG_UART6_ENABLE           false        //   "是否使用UART6",
#define CFG_UART7_ENABLE           false        //   "是否使用UART7",
#define CFG_UART8_ENABLE           false        //   "是否使用UART8",
#define CFG_UART1_TX_DMA_CHANNEL       DMA1_C1    //   串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA1_C2    //   串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA1_C3    //   串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA1_C4    //   串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA1_C5    //   串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA1_C6    //   串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE    //   串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE    //   串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE    //   串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE    //   串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE    //   串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE    //   串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE    //   串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE    //   串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE    //   串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE    //   串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250      //   这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false       //  分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512          //  "片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4            //  "片内flash的扇区中有多少页"
#define CFG_EFLASH_BLOCK_SECT_NUM           32           //  "片内flash的块中有多少扇区"
#define CFG_EFLASH_PLANE1_SECT_NUM          256          //  "片1一共有多少扇区"
#define CFG_EFLASH_PLANE2_SECT_NUM          256          //  "片2一共有多少扇区"
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8            //  "片1一共有多少块"
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8            //  "片2一共有多少块"
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0           //  分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4          //  分区结束，-1表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false       //  分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"     //  需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true   //  "全功能动态分配",即使选false，也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096     //  "初始化栈空间",定义初始化过程使用的栈空间，一般按默认值就可以了
#define CFG_EVENT_LIMIT         22       //  "事件数量限值",事件数量
#define CFG_EVENT_TYPE_LIMIT    22       //  "事件类型数限值",事件类型数
#define CFG_IDLESTACK_LIMIT     1024     //  "IDLE事件栈尺寸",IDLE事件处理函数运行的栈尺寸，一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30       //  "IDLE监视周期",监视IDLE事件持续低于1/16 CPU占比的时间，秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960     //  "main函数栈尺寸",main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false    //  "IDLE监视狗叫复位使能"，IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false    //  "tiny版内核",true=用于资源紧缺的场合，内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false    //  "IDLE检查栈",在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"         //  "本地字符集",
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5        //  "定时器数量",可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true     //  "硬件定时器提供时钟源",选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000   //  "数据包缓冲区尺寸"
#define     CFG_TPL_PROTONUM            5        //  "支持的传输协议数"，占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true     //  "TCP乱序重组使能",资源充足才打开
#define     CFG_TCP_CCBNUM              10       //  "tcp 客户端数限值"，占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5        //  "tcp 服务器数限值"，占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10       //  "tcp socket hashtable长度"，用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true    //  "ftp 服务器使能"
#define     CFG_FTPC_ENABLE            true     //  "ftp 客户端使能"
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true     //  "telnet 服务器使能"
#define     CFG_TELNETC_ENABLE          false    //  "telnet 客户端使能"
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10       //  "socket数限值"，占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false    //  "DHCP 服务器使能"
#define     CFG_DHCPC_ENABLE            true     //  "DHCP 客户端使能"
#define     CFG_DHCP_RENEWTIME          3600     //  "renew timer",秒数
#define     CFG_DHCP_REBINDTIME         3600     //  "rebind timer",秒数
#define     CFG_DHCP_LEASETIME          3600     //  "lease timer",秒数
#define     CFG_DHCPD_IPNUM             0x40     //  "IP池尺寸",64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"     //  "DHCP起始IP",
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"   //  "DHCP SERVER IP"
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"   //  "DHCP ROUTER SERVER IP"
#define     CFG_DHCPD_NETIP             "255.255.255.0"   //  "DHCP MASK IP"
#define     CFG_DHCPD_DNS               "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DOMAINNAME       "domain"         //  "DHCP domain name"
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32       //  "ARP哈希表长度"，占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10       //  "UDP socket数限值"，占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4        //  "udp socket 哈希表长度"，占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472        //  udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000      //  8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"    //   "网卡名称",
#define CFG_ETH_LOOP_CYCLE      1000          //   "网卡轮询周期(uS)",中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true             //   "网卡接收是否轮询",
#define CFG_ETH_HARD_MAC_ADDR   true             //   "硬件生成Mac地址",
#define CFG_ETH_MAC_ADDR0      00            //   "MAC ADDR0",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02            //   "MAC ADDR1",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03            //   "MAC ADDR2",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04            //   "MAC ADDR3",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05            //   "MAC ADDR4",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06            //   "MAC ADDR5",若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false       //  "分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false       //  "是否使用QSPI模式"
#define CFG_W25QXX_BYTES_PAGE               256         //  "每页的字节数"
#define CFG_W25QXX_PAGES_SECTOR             16          //  "每个扇区有多少页"
#define CFG_W25QXX_SECTORS_BLOCK            16          //  "每个块有多少扇区"
#define CFG_W25QXX_SECTORS_NUM              2048        //  "总的扇区数"
#define CFG_W25QXX_CHIP_ID                  0xEF16      //  "芯片ID"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"       //  "文件系统mount点名字",需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1         //  "分区结束"，-1表示最后一块,起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false       //  "分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8       //  "时区",北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true          //  "是否支持多种输入设备",
#define CFG_STDIO_STDOUT_FOLLOW    true          //  "stdout是否跟随stdin",
#define CFG_STDIO_STDERR_FOLLOW    true          //  "stderr是否跟随stdin",
#define CFG_STDIO_FLOAT_PRINT      true          //  "支持浮点打印"
#define CFG_STDIO_STDIOFILE        true          //  "支持标准IO文件"
#define CFG_STDIO_IN_NAME              "/dev/UART1"     //  "标准输入设备名",
#define CFG_STDIO_OUT_NAME             "/dev/UART1"     //  "标准输出设备名",
#define CFG_STDIO_ERR_NAME             "/dev/UART1"     //  "标准err输出设备名",
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false             //   "使用静态IP?",
#define CFG_SELECT_NETCARD  "AT32F437_ETH"    //   "网卡名称",必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100"  //   "静态IP",
#define CFG_MY_SUBMASK      "255.255.255.0"  //   "子网掩码",
#define CFG_MY_GATWAY       "192.168.8.1"    //   "网关",
#define CFG_MY_DNS          "192.168.8.1"    //   "首选DNS",
#define CFG_MY_DNSBAK       "192.168.8.1"    //   "备用DNS",
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure modbus  ******************************************//
#define CFG_MB_ASCII_TIMEOUT_SEC                    100        //  "从机用ASCII时，通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define CFG_MB_FUNC_HANDLERS_MAX                    16       //  "协议栈应该支持的Modbus功能码的最大数量"
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF           32       //  "从机ID数据长度",这个数字限制了从机ID数据的最大大小。
#define CFG_MB_MASTER_DELAY_MS_CONVERT              200      //  "等待延迟时间",主站发送一个广播帧后，主站等待延迟时间，时间到后才主站才可以发送其他帧
#define CFG_MB_MASTER_TIMEOUT_MS_RESPOND            500      //  "从机响应超时时间"
#define CFG_MB_MASTER_TOTAL_SLAVE_NUM               1       //  "从机总数"
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED       true     //   "是否启用请求从机ID功能"
#define CFG_MB_FUNC_READ_INPUT_ENABLED              true     //   "是否启用读输入寄存器功能"
#define CFG_MB_FUNC_READ_HOLDING_ENABLED            true     //   "是否启用读保持寄存器功能"
#define CFG_MB_FUNC_WRITE_HOLDING_ENABLED           true     //   "是否启用写单个寄存器功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true     //   "是否启用写多个寄存器功能"
#define CFG_MB_FUNC_READ_COILS_ENABLED              true     //   "是否启用读线圈功能"
#define CFG_MB_FUNC_WRITE_COIL_ENABLED              true     //   "是否启用写线圈功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED    true     //   "是否启用写多个线圈功能"
#define CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED    true     //   "是否启用读离散输入功能"
#define CFG_MB_FUNC_READWRITE_HOLDING_ENABLED       true     //   "是否启用读写多个寄存器功能"
#define CFG_MB_MASTER_ENABLED                       true     //   "主机使能开关"
    #define CFG_MB_MASTER_RTU_ENABLED                   true     //   "主机RTU使能开关"
    #define CFG_MB_M_DISCRETE_INPUT_START               0         //  "主机离散量输入的起始地址"
    #define CFG_MB_M_DISCRETE_INPUT_NDISCRETES          0        //  "主机离散量输入的数量"
    #define CFG_MB_M_COIL_START                         0        //  "主机线圈的起始地址"
    #define CFG_MB_M_COIL_NCOILS                        0        //  "主机线圈的数量"
    #define CFG_MB_M_REG_INPUT_START                    0        //  "主机输入寄存器的起始地址"
    #define CFG_MB_M_REG_INPUT_NREGS                    0        //  "主机输入寄存器的数量"
    #define CFG_MB_M_REG_HOLDING_START                  0        //  "主机保持寄存器的起始地址"
    #define CFG_MB_M_REG_HOLDING_NREGS                  65000        //  "主机保持寄存器的数量"
    #define CFG_MB_M_PORT_NUM                           2         //  "串口的端口号，例如要用/dev/UART2，就填2"
    #define CFG_MB_M_PORT_BAUDRATE                      9600     //   "串口波特率"
    #define CFG_MB_M_PORT_PARITY                        MB_PAR_NONE     //   "校验方式"
#define CFG_MB_SLAVE_ENABLED                       false     //   "从机使能开关"
    #define CFG_MB_SLAVE_ASCII_ENABLED                  false     //   "从机ASCII使能开关"
    #define CFG_MB_SLAVE_RTU_ENABLED                    false     //   "从机RTU使能开关"
    #define CFG_MB_SLAVE_TCP_ENABLED                    false     //   "从机TCP使能开关"
    #define CFG_MB_S_DISCRETE_INPUT_START               1         //  "从机离散量输入的起始地址"
    #define CFG_MB_S_DISCRETE_INPUT_NDISCRETES          10        //  "从机离散量输入的数量"
    #define CFG_MB_S_COIL_START                         11        //  "从机线圈的起始地址。"
    #define CFG_MB_S_COIL_NCOILS                        10        //  "从机线圈的数量"
    #define CFG_MB_S_REG_INPUT_START                    21        //  "从机输入寄存器的起始地址"
    #define CFG_MB_S_REG_INPUT_NREGS                    10        //  "从机输入寄存器的数量"
    #define CFG_MB_S_REG_HOLDING_START                  31        //  "从机保持寄存器的起始地址"
    #define CFG_MB_S_REG_HOLDING_NREGS                  10        //  "从机保持寄存器的数量"
    #define CFG_MB_S_ADDR                               2         //  "从机地址"
    #define CFG_MB_S_PORT_NUM                           2         //  "串口的端口号，例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
    #define CFG_MB_S_TCP_PORT_NUM                       0         //  "使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
    #define CFG_MB_S_PORT_BAUDRATE                      115200     //   "串口波特率"
    #define CFG_MB_S_PORT_PARITY                        MB_PAR_NONE     //   "校验方式"
    #define CFG_MB_S_TRANSFER_MODE                      MB_RTU_MODE     //   "通信方式"
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           0                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

/*Modified at 2024-01-23 17:17:35*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end


#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32      //占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false      //分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512         //"片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4           //
#define CFG_EFLASH_BLOCK_SECT_NUM           32          //
#define CFG_EFLASH_PLANE1_SECT_NUM          256         //
#define CFG_EFLASH_PLANE2_SECT_NUM          256         //
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8           //
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8           //
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"   //
#define CFG_ETH_LOOP_CYCLE      1000         //中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true            //
#define CFG_ETH_HARD_MAC_ADDR   true            //
#define CFG_ETH_MAC_ADDR0      00           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05           //若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06           //若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                //
#define CFG_SPI_DMA_BUF_LEN         256                //
#define CFG_SPI1_ENABLE             true              //
#define CFG_SPI2_ENABLE             false              //
#define CFG_SPI3_ENABLE             false              //
#define CFG_SPI4_ENABLE             false              //
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250     //这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       512      //
#define CFG_UART1_RECVBUF_LEN       512      //
#define CFG_UART1_DMABUF_LEN        512      //
#define CFG_UART2_SENDBUF_LEN       512      //
#define CFG_UART2_RECVBUF_LEN       512      //
#define CFG_UART2_DMABUF_LEN        512      //
#define CFG_UART3_SENDBUF_LEN       512      //
#define CFG_UART3_RECVBUF_LEN       512      //
#define CFG_UART3_DMABUF_LEN        512      //
#define CFG_UART4_SENDBUF_LEN       32      //
#define CFG_UART4_RECVBUF_LEN       32      //
#define CFG_UART4_DMABUF_LEN        32      //
#define CFG_UART5_SENDBUF_LEN       32      //
#define CFG_UART5_RECVBUF_LEN       32      //
#define CFG_UART5_DMABUF_LEN        32      //
#define CFG_UART6_SENDBUF_LEN       32      //
#define CFG_UART6_RECVBUF_LEN       32      //
#define CFG_UART6_DMABUF_LEN        32      //
#define CFG_UART7_SENDBUF_LEN       32      //
#define CFG_UART7_RECVBUF_LEN       32      //
#define CFG_UART7_DMABUF_LEN        32      //
#define CFG_UART8_SENDBUF_LEN       32      //
#define CFG_UART8_RECVBUF_LEN       32      //
#define CFG_UART8_DMABUF_LEN        32      //
#define CFG_UART1_ENABLE           true        //
#define CFG_UART2_ENABLE           true       //
#define CFG_UART3_ENABLE           true       //
#define CFG_UART4_ENABLE           false       //
#define CFG_UART5_ENABLE           false       //
#define CFG_UART6_ENABLE           false       //
#define CFG_UART7_ENABLE           false       //
#define CFG_UART8_ENABLE           false       //
#define CFG_UART1_TX_DMA_CHANNEL       DMA1_C1   //串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA1_C2   //串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA1_C3   //串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA1_C4   //串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA1_C5   //串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA1_C6   //串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE   //串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE   //串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE   //串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE   //串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE   //串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE   //串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE   //串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE   //串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE   //串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE   //串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG        //打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10      //定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false   //
#define     CFG_DHCPC_ENABLE            true    //
#define     CFG_DHCP_RENEWTIME          3600    //秒数
#define     CFG_DHCP_REBINDTIME         3600    //秒数
#define     CFG_DHCP_LEASETIME          3600    //秒数
#define     CFG_DHCPD_IPNUM             0x40    //64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"    //
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"  //
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"  //
#define     CFG_DHCPD_NETIP             "255.255.255.0"  //
#define     CFG_DHCPD_DNS               "192.168.0.253"  //
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"  //
#define     CFG_DHCPD_DOMAINNAME       "domain"        //
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0          //分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4         //分区结束，4表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false      //分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"    //需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512      //
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true   //
#define     CFG_FTPC_ENABLE            true    //
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true  //即使选false也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096    //定义初始化过程使用的栈空间一般按默认值就可以了
#define CFG_EVENT_LIMIT         22      //事件数量
#define CFG_EVENT_TYPE_LIMIT    22      //事件类型数
#define CFG_IDLESTACK_LIMIT     1024    //IDLE事件处理函数运行的栈尺寸一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30      //监视IDLE事件持续低于1/16 CPU占比的时间秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960    //main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false   //IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false   //true=用于资源紧缺的场合内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false   //在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8   //用完会自动扩充
#define CFG_HANDLE_LIMIT        8   //用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false       //
#define CFG_START_APP_IS_VERIFICATION      true       //
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN     //CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC   //
#define CFG_IBOOT_VERSION_SMALL       00        //xx.xx.__APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00        //xx.__.xxAPP忽略
#define CFG_IBOOT_VERSION_LARGE       01        //__.xx.xxAPP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"           //
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"            //
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40      //定义锁的数量包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10      //
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure modbus  ******************************************//
#define CFG_MB_ASCII_TIMEOUT_SEC                    100       //"从机用ASCII时，通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define CFG_MB_FUNC_HANDLERS_MAX                    16      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF           32      //这个数字限制了从机ID数据的最大大小。
#define CFG_MB_MASTER_DELAY_MS_CONVERT              200     //主站发送一个广播帧后主站等待延迟时间，时间到后才主站才可以发送其他帧
#define CFG_MB_MASTER_TIMEOUT_MS_RESPOND            500     //
#define CFG_MB_MASTER_TOTAL_SLAVE_NUM               1      //
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED       true    // "是否启用请求从机ID功能"
#define CFG_MB_FUNC_READ_INPUT_ENABLED              true    // "是否启用读输入寄存器功能"
#define CFG_MB_FUNC_READ_HOLDING_ENABLED            true    // "是否启用读保持寄存器功能"
#define CFG_MB_FUNC_WRITE_HOLDING_ENABLED           true    // "是否启用写单个寄存器功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true    // "是否启用写多个寄存器功能"
#define CFG_MB_FUNC_READ_COILS_ENABLED              true    // "是否启用读线圈功能"
#define CFG_MB_FUNC_WRITE_COIL_ENABLED              true    // "是否启用写线圈功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED    true    // "是否启用写多个线圈功能"
#define CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED    true    // "是否启用读离散输入功能"
#define CFG_MB_FUNC_READWRITE_HOLDING_ENABLED       true    // "是否启用读写多个寄存器功能"
#define CFG_MB_MASTER_ENABLED                       true    // "主机使能开关"
    #define CFG_MB_MASTER_RTU_ENABLED                   true    // "主机RTU使能开关"
    #define CFG_MB_M_DISCRETE_INPUT_START               0        //
    #define CFG_MB_M_DISCRETE_INPUT_NDISCRETES          0       //
    #define CFG_MB_M_COIL_START                         0       //
    #define CFG_MB_M_COIL_NCOILS                        0       //
    #define CFG_MB_M_REG_INPUT_START                    0       //
    #define CFG_MB_M_REG_INPUT_NREGS                    0       //
    #define CFG_MB_M_REG_HOLDING_START                  0       //
    #define CFG_MB_M_REG_HOLDING_NREGS                  65000       //
    #define CFG_MB_M_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"
    #define CFG_MB_M_PORT_BAUDRATE                      9600    // "串口波特率"
    #define CFG_MB_M_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
#define CFG_MB_SLAVE_ENABLED                       false    // "从机使能开关"
    #define CFG_MB_SLAVE_ASCII_ENABLED                  false    // "从机ASCII使能开关"
    #define CFG_MB_SLAVE_RTU_ENABLED                    false    // "从机RTU使能开关"
    #define CFG_MB_SLAVE_TCP_ENABLED                    false    // "从机TCP使能开关"
    #define CFG_MB_S_DISCRETE_INPUT_START               1        //
    #define CFG_MB_S_DISCRETE_INPUT_NDISCRETES          10       //
    #define CFG_MB_S_COIL_START                         11       //
    #define CFG_MB_S_COIL_NCOILS                        10       //
    #define CFG_MB_S_REG_INPUT_START                    21       //
    #define CFG_MB_S_REG_INPUT_NREGS                    10       //
    #define CFG_MB_S_REG_HOLDING_START                  31       //
    #define CFG_MB_S_REG_HOLDING_NREGS                  10       //
    #define CFG_MB_S_ADDR                               2        //
    #define CFG_MB_S_PORT_NUM                           2        //"串口的端口号，例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
    #define CFG_MB_S_TCP_PORT_NUM                       0        //"使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
    #define CFG_MB_S_PORT_BAUDRATE                      115200    // "串口波特率"
    #define CFG_MB_S_PORT_PARITY                        MB_PAR_NONE    // "校验方式"
    #define CFG_MB_S_TRANSFER_MODE                      MB_RTU_MODE    // "通信方式"
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false            //
#define CFG_SELECT_NETCARD  "AT32F437_ETH"   //必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100" //
#define CFG_MY_SUBMASK      "255.255.255.0" //
#define CFG_MY_GATWAY       "192.168.8.1"   //
#define CFG_MY_DNS          "192.168.8.1"   //
#define CFG_MY_DNSBAK       "192.168.8.1"   //
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"        //
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000      //
#define CFG_ADD_ROUTINE_SHELL      true        //
#define CFG_ADD_EXPAND_SHELL       true        //
#define CFG_ADD_GLOBAL_FUN         false       //
#define CFG_SHOW_ADD_SHEELL        true        //
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10      //占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5       //可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true    //选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true         //
#define CFG_STDIO_STDOUT_FOLLOW    true         //
#define CFG_STDIO_STDERR_FOLLOW    true         //
#define CFG_STDIO_FLOAT_PRINT      true         //
#define CFG_STDIO_STDIOFILE        true         //
#define CFG_STDIO_IN_NAME              "/dev/UART1"    //
#define CFG_STDIO_OUT_NAME             "/dev/UART1"    //
#define CFG_STDIO_ERR_NAME             "/dev/UART1"    //
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true    //资源充足才打开
#define     CFG_TCP_CCBNUM              10      //占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5       //占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10      //用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000  //
#define     CFG_TPL_PROTONUM            5       //占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true    //
#define     CFG_TELNETC_ENABLE          false   //
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8      //北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10      //占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4       //占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472       //udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000     //8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"      //需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1        //-1表示最后一块起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false      //"分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false      //"分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false      //
#define CFG_W25QXX_BYTES_PAGE               256        //
#define CFG_W25QXX_PAGES_SECTOR             16         //
#define CFG_W25QXX_SECTORS_BLOCK            16         //
#define CFG_W25QXX_SECTORS_NUM              2048       //
#define CFG_W25QXX_CHIP_ID                  0xEF16     //
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           0                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

/*Modified at 2024-01-23 17:17:41*/
/****************************************************
 *  Automatically-generated file. Do not edit!	*
 ****************************************************/

#ifndef __PROJECT_CONFFIG_H__
#define __PROJECT_CONFFIG_H__

#include <stdint.h>
#include <stddef.h>
//manual config start
//此处填写手动配置，DIDE生成配置文件时，不会被修改
//manual config end


#define    CN_RUNMODE_IBOOT                0                //IBOOT模式运行
#define    CN_RUNMODE_BOOTSELF             1                //无须IBOOT，自启动模式APP
#define    CN_RUNMODE_APP                  2                //由IBOOT加载的APP
#define    CFG_RUNMODE                     CN_RUNMODE_APP   //由IBOOT加载的APP
//*******************************  Configure black box  ******************************************//
#define    CFG_MODULE_ENABLE_BLACK_BOX     true
//*******************************  Configure debug print level  ******************************************//
#define CFG_DEBUG_PRINT_LEVEL                 CN_DEBUG         //  打印等级
#define    CFG_MODULE_ENABLE_DEBUG_PRINT   true
//*******************************  Configure device file system  ******************************************//
#define CFG_DEVFILE_LIMIT       10       //  "设备数量",定义设备数量
#define    CFG_MODULE_ENABLE_DEVICE_FILE_SYSTEM  true
//*******************************  Configure djybus  ******************************************//
#define    CFG_MODULE_ENABLE_DJYBUS        true
//*******************************  Configure file system  ******************************************//
#define CFG_CLIB_BUFFERSIZE            512       //  "C库文件用户态缓冲区尺寸"
#define    CFG_MODULE_ENABLE_FILE_SYSTEM   true
//*******************************  Configure kernel object system  ******************************************//
#define CFG_OBJECT_LIMIT        8    //  "对象数初始值"，用完会自动扩充
#define CFG_HANDLE_LIMIT        8    //  "句柄数初始值"，用完会自动扩充
#define    CFG_MODULE_ENABLE_KERNEL_OBJECT_SYSTEM  true
//*******************************  Configure loader  ******************************************//
#define CFG_UPDATEIBOOT_EN      false        //  "是否支持在线更新Iboot"，
#define CFG_START_APP_IS_VERIFICATION      true        //  "启动app时是否执行校验功能"，
#define  CFG_APP_RUNMODE  CN_DIRECT_RUN      //  "APP运行模式",CN_DIRECT_RUN=直接从flash中运行；CN_FORM_FILE=从文件系统加载到内存运行，
#define  CFG_APP_VERIFICATION   VERIFICATION_CRC    //  "APP校验方法",
#define CFG_IBOOT_VERSION_SMALL       00         //  "Iboot版本号:低",xx.xx.__，APP忽略
#define CFG_IBOOT_VERSION_MEDIUM      00         //  "Iboot版本号:中",xx.__.xx，APP忽略
#define CFG_IBOOT_VERSION_LARGE       01         //  "Iboot版本号:高",__.xx.xx，APP忽略
#define CFG_IBOOT_UPDATE_NAME      "/yaf2/iboot.bin"            //  "待升级iboot默认存储路径"
#define CFG_APP_UPDATE_NAME        "/yaf2/app.bin"             //  "待升级app默认存储路径"
#define    CFG_MODULE_ENABLE_LOADER        true
//*******************************  Configure lock  ******************************************//
#define CFG_LOCK_LIMIT          40       //  "锁的数量",定义锁的数量，包含信号量和互斥量
#define    CFG_MODULE_ENABLE_LOCK          true
//*******************************  Configure memory pool  ******************************************//
#define CFG_MEMPOOL_LIMIT       10       //  "内存池数量限值",
#define    CFG_MODULE_ENABLE_MEMORY_POOL   true
//*******************************  Configure message queue  ******************************************//
#define    CFG_MODULE_ENABLE_MESSAGE_QUEUE true
//*******************************  Configure multiplex  ******************************************//
#define    CFG_MODULE_ENABLE_MULTIPLEX     true
//*******************************  Configure ring buffer and line buffer  ******************************************//
#define    CFG_MODULE_ENABLE_RING_BUFFER_AND_LINE_BUFFER  true
//*******************************  Configure shell  ******************************************//
#define CFG_SHELL_STACK            0x1000       //  "执行shell命令的栈尺寸",
#define CFG_ADD_ROUTINE_SHELL      true         //  "是否添加常规shell命令",
#define CFG_ADD_EXPAND_SHELL       true         //  "是否添加拓展shell命令",
#define CFG_ADD_GLOBAL_FUN         false        //  "添加全局函数到shell",
#define CFG_SHOW_ADD_SHEELL        true         //  "编译时显示shell命令",
#define    CFG_MODULE_ENABLE_SHELL         true
//*******************************  Configure spi bus  ******************************************//
#define    CFG_MODULE_ENABLE_SPI_BUS       true
//*******************************  Configure xip iboot file system  ******************************************//
#define    CFG_MODULE_ENABLE_XIP_IBOOT_FILE_SYSTEM  true
//*******************************  Configure cpu onchip spi  ******************************************//
#define CFG_SPI_BUF_LEN             256                 //   "SPI缓冲区大小",
#define CFG_SPI_DMA_BUF_LEN         256                 //   "SPI DMA缓冲区大小",
#define CFG_SPI1_ENABLE             true               //   "是否配置使用SPI1",
#define CFG_SPI2_ENABLE             false               //   "是否配置使用SPI2",
#define CFG_SPI3_ENABLE             false               //   "是否配置使用SPI3",
#define CFG_SPI4_ENABLE             false               //   "是否配置使用SPI4",
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_SPI  true
//*******************************  Configure cpu onchip uart  ******************************************//
#define CFG_UART1_SENDBUF_LEN       512       //   "UART1发送环形缓冲区大小",
#define CFG_UART1_RECVBUF_LEN       512       //   "UART1接收环形缓冲区大小",
#define CFG_UART1_DMABUF_LEN        512       //   "UART1 DMA环形缓冲区大小",
#define CFG_UART2_SENDBUF_LEN       512       //   "UART2发送环形缓冲区大小",
#define CFG_UART2_RECVBUF_LEN       512       //   "UART2接收环形缓冲区大小",
#define CFG_UART2_DMABUF_LEN        512       //   "UART2 DMA环形缓冲区大小",
#define CFG_UART3_SENDBUF_LEN       512       //   "UART3发送环形缓冲区大小",
#define CFG_UART3_RECVBUF_LEN       512       //   "UART3接收环形缓冲区大小",
#define CFG_UART3_DMABUF_LEN        512       //   "UART3 DMA环形缓冲区大小",
#define CFG_UART4_SENDBUF_LEN       32       //   "UART4发送环形缓冲区大小",
#define CFG_UART4_RECVBUF_LEN       32       //   "UART4接收环形缓冲区大小",
#define CFG_UART4_DMABUF_LEN        32       //   "UART4 DMA环形缓冲区大小",
#define CFG_UART5_SENDBUF_LEN       32       //   "UART5发送环形缓冲区大小",
#define CFG_UART5_RECVBUF_LEN       32       //   "UART5接收环形缓冲区大小",
#define CFG_UART5_DMABUF_LEN        32       //   "UART5 DMA环形缓冲区大小",
#define CFG_UART6_SENDBUF_LEN       32       //   "UART6发送环形缓冲区大小",
#define CFG_UART6_RECVBUF_LEN       32       //   "UART6接收环形缓冲区大小",
#define CFG_UART6_DMABUF_LEN        32       //   "UART6 DMA环形缓冲区大小",
#define CFG_UART7_SENDBUF_LEN       32       //   "UART7发送环形缓冲区大小",
#define CFG_UART7_RECVBUF_LEN       32       //   "UART7接收环形缓冲区大小",
#define CFG_UART7_DMABUF_LEN        32       //   "UART7 DMA环形缓冲区大小",
#define CFG_UART8_SENDBUF_LEN       32       //   "UART8发送环形缓冲区大小",
#define CFG_UART8_RECVBUF_LEN       32       //   "UART8接收环形缓冲区大小",
#define CFG_UART8_DMABUF_LEN        32       //   "UART8 DMA环形缓冲区大小",
#define CFG_UART1_ENABLE           true         //   "是否使用UART1",
#define CFG_UART2_ENABLE           true        //   "是否使用UART2",
#define CFG_UART3_ENABLE           true        //   "是否使用UART3",
#define CFG_UART4_ENABLE           false        //   "是否使用UART4",
#define CFG_UART5_ENABLE           false        //   "是否使用UART5",
#define CFG_UART6_ENABLE           false        //   "是否使用UART6",
#define CFG_UART7_ENABLE           false        //   "是否使用UART7",
#define CFG_UART8_ENABLE           false        //   "是否使用UART8",
#define CFG_UART1_TX_DMA_CHANNEL       DMA1_C1    //   串口1发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART1_RX_DMA_CHANNEL       DMA1_C2    //   串口1接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_TX_DMA_CHANNEL       DMA1_C3    //   串口2发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART2_RX_DMA_CHANNEL       DMA1_C4    //   串口2接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_TX_DMA_CHANNEL       DMA1_C5    //   串口3发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART3_RX_DMA_CHANNEL       DMA1_C6    //   串口3接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_TX_DMA_CHANNEL       DMA_NONUSE    //   串口4发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART4_RX_DMA_CHANNEL       DMA_NONUSE    //   串口4接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_TX_DMA_CHANNEL       DMA_NONUSE    //   串口5发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART5_RX_DMA_CHANNEL       DMA_NONUSE    //   串口5接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_TX_DMA_CHANNEL       DMA_NONUSE    //   串口6发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART6_RX_DMA_CHANNEL       DMA_NONUSE    //   串口6接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_TX_DMA_CHANNEL       DMA_NONUSE    //   串口7发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART7_RX_DMA_CHANNEL       DMA_NONUSE    //   串口7接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_TX_DMA_CHANNEL       DMA_NONUSE    //   串口8发送所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define CFG_UART8_RX_DMA_CHANNEL       DMA_NONUSE    //   串口8接收所使用的DMA通道，不能和其它的外设重复使用,用DMA的话要收发都配置好通道
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_UART  true
//*******************************  Configure cpu onchip timer  ******************************************//
#define CFG_TIMER_DIV      250      //   这里设置分频系数，芯片主频250M，分配系数250M的话，定时器的频率就是1M
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_TIMER  true
//*******************************  Configure ART32 common code  ******************************************//
#define    CFG_MODULE_ENABLE_ART32_COMMON_CODE  true
//*******************************  Configure cpu drive inner flash  ******************************************//
#define CFG_EFLASH_PART_FORMAT     false       //  分区选项,是否需要擦除该芯片。
#define CFG_EFLASH_PAGE_SIZE                512          //  "片内flash的页大小单位字节"其实是自己定了为了统一，实际上芯片手册并没有规定
#define CFG_EFLASH_SECT_PAGE_NUM            4            //  "片内flash的扇区中有多少页"
#define CFG_EFLASH_BLOCK_SECT_NUM           32           //  "片内flash的块中有多少扇区"
#define CFG_EFLASH_PLANE1_SECT_NUM          256          //  "片1一共有多少扇区"
#define CFG_EFLASH_PLANE2_SECT_NUM          256          //  "片2一共有多少扇区"
#define CFG_EFLASH_PLANE1_BLOCK_NUM         8            //  "片1一共有多少块"
#define CFG_EFLASH_PLANE2_BLOCK_NUM         8            //  "片2一共有多少块"
#define    CFG_MODULE_ENABLE_CPU_DRIVE_INNER_FLASH  true
//*******************************  Configure emflash insatall xip  ******************************************//
#define CFG_EFLASH_XIP_PART_START      0           //  分区起始，填写块号，块号从0开始计算
#define CFG_EFLASH_XIP_PART_END        4          //  分区结束，-1表示最后一块，如果结束块是6，起始块是0，则该分区使用的块为0，1，2，3，4，5块
#define CFG_EFLASH_XIP_PART_FORMAT     false       //  分区选项,是否需要格式化该分区。
#define CFG_EFLASH_XIPFSMOUNT_NAME   "xip-app"     //  需安装的文件系统的mount的名字，NULL表示该flash不挂载文件系统
#define    CFG_MODULE_ENABLE_EMFLASH_INSATALL_XIP  true
//*******************************  Configure cpu onchip dma  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_DMA  true
//*******************************  Configure cpu onchip gpio  ******************************************//
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_GPIO  true
//*******************************  Configure heap  ******************************************//
#define CFG_DYNAMIC_MEM true   //  "全功能动态分配",即使选false，也允许使用malloc-free分配内存，但使用有差别，详见 《……用户手册》内存分配章节
#define    CFG_MODULE_ENABLE_HEAP          true
//*******************************  Configure icmp  ******************************************//
#define    CFG_MODULE_ENABLE_ICMP          true
//*******************************  Configure kernel  ******************************************//
#define CFG_INIT_STACK_SIZE     4096     //  "初始化栈空间",定义初始化过程使用的栈空间，一般按默认值就可以了
#define CFG_EVENT_LIMIT         22       //  "事件数量限值",事件数量
#define CFG_EVENT_TYPE_LIMIT    22       //  "事件类型数限值",事件类型数
#define CFG_IDLESTACK_LIMIT     1024     //  "IDLE事件栈尺寸",IDLE事件处理函数运行的栈尺寸，一般按默认值就可以了
#define CFG_IDLE_MONITOR_CYCLE  30       //  "IDLE监视周期",监视IDLE事件持续低于1/16 CPU占比的时间，秒数，0=不监视
#define CFG_MAINSTACK_LIMIT     40960     //  "main函数栈尺寸",main函数运行所需的栈尺寸
#define CFG_IDLE_WDT_RESET      false    //  "IDLE监视狗叫复位使能"，IDLE事件监视狗叫时，是否复位
#define CFG_OS_TINY             false    //  "tiny版内核",true=用于资源紧缺的场合，内核会裁剪掉：事件类型名字，事件处理时间统计。
#define CFG_IDLE_CHECK_STACK    false    //  "IDLE检查栈",在IDLE中是否进行栈溢出检查。注意：进行溢出检查的话会影响实时性
#define    CFG_MODULE_ENABLE_KERNEL        true
//*******************************  Configure board config  ******************************************//
#define    CFG_MODULE_ENABLE_BOARD_CONFIG  true
//*******************************  Configure misc  ******************************************//
#define    CFG_MODULE_ENABLE_MISC          true
//*******************************  Configure Nls Charset  ******************************************//
#define CFG_LOCAL_CHARSET       "gb2312"         //  "本地字符集",
#define    CFG_MODULE_ENABLE_NLS_CHARSET   true
//*******************************  Configure router  ******************************************//
#define    CFG_MODULE_ENABLE_ROUTER        true
//*******************************  Configure Software Timers  ******************************************//
#define CFG_TIMERS_LIMIT        5        //  "定时器数量",可创建的定时器数量（不包含图形界面的定时器）
#define CFG_TIMER_SOUCE_HARD    true     //  "硬件定时器提供时钟源",选择专用硬件还是tick做时钟源
#define    CFG_MODULE_ENABLE_SOFTWARE_TIMERS  true
//*******************************  Configure tcpip  ******************************************//
#define     CFG_NETPKG_MEMSIZE          0x4000   //  "数据包缓冲区尺寸"
#define     CFG_TPL_PROTONUM            5        //  "支持的传输协议数"，占用一个 tagTplProtoItem 结构
#define    CFG_MODULE_ENABLE_TCPIP         true
//*******************************  Configure tcp  ******************************************//
#define     CFG_TCP_REORDER             true     //  "TCP乱序重组使能",资源充足才打开
#define     CFG_TCP_CCBNUM              10       //  "tcp 客户端数限值"，占一个 指针 和 struct ClientCB
#define     CFG_TCP_SCBNUM              5        //  "tcp 服务器数限值"，占一个 指针 和 struct ServerCB
#define     CFG_TCP_SOCKET_HASH_LEN     10       //  "tcp socket hashtable长度"，用于通过“IP+port”四元组检索socket
#define    CFG_MODULE_ENABLE_TCP           true
//*******************************  Configure ftp  ******************************************//
#define     CFG_FTPD_ENABLE            true    //  "ftp 服务器使能"
#define     CFG_FTPC_ENABLE            true     //  "ftp 客户端使能"
#define    CFG_MODULE_ENABLE_FTP           true
//*******************************  Configure telnet  ******************************************//
#define     CFG_TELNETD_ENABLE          true     //  "telnet 服务器使能"
#define     CFG_TELNETC_ENABLE          false    //  "telnet 客户端使能"
#define    CFG_MODULE_ENABLE_TELNET        true
//*******************************  Configure sock  ******************************************//
#define     CFG_SOCKET_NUM              10       //  "socket数限值"，占一个 tagItem 结构
#define    CFG_MODULE_ENABLE_SOCK          true
//*******************************  Configure dhcp  ******************************************//
#define     CFG_DHCPD_ENABLE            false    //  "DHCP 服务器使能"
#define     CFG_DHCPC_ENABLE            true     //  "DHCP 客户端使能"
#define     CFG_DHCP_RENEWTIME          3600     //  "renew timer",秒数
#define     CFG_DHCP_REBINDTIME         3600     //  "rebind timer",秒数
#define     CFG_DHCP_LEASETIME          3600     //  "lease timer",秒数
#define     CFG_DHCPD_IPNUM             0x40     //  "IP池尺寸",64
#define     CFG_DHCPD_IPSTART           "192.168.0.2"     //  "DHCP起始IP",
#define     CFG_DHCPD_SERVERIP          "192.168.0.253"   //  "DHCP SERVER IP"
#define     CFG_DHCPD_ROUTERIP          "192.168.0.253"   //  "DHCP ROUTER SERVER IP"
#define     CFG_DHCPD_NETIP             "255.255.255.0"   //  "DHCP MASK IP"
#define     CFG_DHCPD_DNS               "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DNSBAK            "192.168.0.253"   //  "DHCP DNSSERVER IP"
#define     CFG_DHCPD_DOMAINNAME       "domain"         //  "DHCP domain name"
#define    CFG_MODULE_ENABLE_DHCP          true
//*******************************  Configure arp  ******************************************//
#define     CFG_ARP_HASHLEN             32       //  "ARP哈希表长度"，占用一个指针
#define    CFG_MODULE_ENABLE_ARP           true
//*******************************  Configure uart device file  ******************************************//
#define    CFG_MODULE_ENABLE_UART_DEVICE_FILE  true
//*******************************  Configure udp  ******************************************//
#define     CFG_UDP_CBNUM               10       //  "UDP socket数限值"，占用一个 tagUdpCB 结构
#define     CFG_UDP_HASHLEN             4        //  "udp socket 哈希表长度"，占用一个指针
#define     CFG_UDP_PKGMSGLEN        1472        //  udp最大包长度
#define     CFG_UDP_BUFLENDEFAULT    0x2000      //  8KB
#define    CFG_MODULE_ENABLE_UDP           true
//*******************************  Configure cpu onchip ETH  ******************************************//
#define CFG_ETH_NETCARD_NAME    "AT32F437_ETH"    //   "网卡名称",
#define CFG_ETH_LOOP_CYCLE      1000          //   "网卡轮询周期(uS)",中断模式无须填写
#define CFG_ETH_LOOP_ENABLE     true             //   "网卡接收是否轮询",
#define CFG_ETH_HARD_MAC_ADDR   true             //   "硬件生成Mac地址",
#define CFG_ETH_MAC_ADDR0      00            //   "MAC ADDR0",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR1      02            //   "MAC ADDR1",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR2      03            //   "MAC ADDR2",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR3      04            //   "MAC ADDR3",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR4      05            //   "MAC ADDR4",若选中"硬件生成Mac地址",则无须填写
#define CFG_ETH_MAC_ADDR5      06            //   "MAC ADDR5",若选中"硬件生成Mac地址",则无须填写
#define    CFG_MODULE_ENABLE_CPU_ONCHIP_MAC  true
//*******************************  Configure norflash W25QXX  ******************************************//
#define CFG_W25QXX_PART_ERASE               false       //  "分区选项,是否需要擦除该芯片。"
#define CFG_W25QXX_QSPI_ENABLE              false       //  "是否使用QSPI模式"
#define CFG_W25QXX_BYTES_PAGE               256         //  "每页的字节数"
#define CFG_W25QXX_PAGES_SECTOR             16          //  "每个扇区有多少页"
#define CFG_W25QXX_SECTORS_BLOCK            16          //  "每个块有多少扇区"
#define CFG_W25QXX_SECTORS_NUM              2048        //  "总的扇区数"
#define CFG_W25QXX_CHIP_ID                  0xEF16      //  "芯片ID"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX  true
//*******************************  Configure W25QXX FAT  ******************************************//
#define CFG_W25_FAT_MOUNT_NAME            "fat"       //  "文件系统mount点名字",需要挂载的efs文件系统mount点名字
#define CFG_W25_FAT_PART_END                   -1         //  "分区结束"，-1表示最后一块,起始分区固定从0开始。如果不是-1的话，不会包括当前块。例如start=0,end=6,那使用的范围为0~5
#define CFG_W25_FAT_PART_FORMAT               false       //  "分区选项,是否需要格式化该分区"
#define    CFG_MODULE_ENABLE_NORFLASH_W25QXX_FAT  true
//*******************************  Configure flash  ******************************************//
#define    CFG_MODULE_ENABLE_FLASH         true
//*******************************  Configure time  ******************************************//
#define CFG_LOCAL_TIMEZONE      8       //  "时区",北京时间是东8区
#define    CFG_MODULE_ENABLE_TIME          true
//*******************************  Configure stdio  ******************************************//
#define CFG_STDIO_STDIN_MULTI      true          //  "是否支持多种输入设备",
#define CFG_STDIO_STDOUT_FOLLOW    true          //  "stdout是否跟随stdin",
#define CFG_STDIO_STDERR_FOLLOW    true          //  "stderr是否跟随stdin",
#define CFG_STDIO_FLOAT_PRINT      true          //  "支持浮点打印"
#define CFG_STDIO_STDIOFILE        true          //  "支持标准IO文件"
#define CFG_STDIO_IN_NAME              "/dev/UART1"     //  "标准输入设备名",
#define CFG_STDIO_OUT_NAME             "/dev/UART1"     //  "标准输出设备名",
#define CFG_STDIO_ERR_NAME             "/dev/UART1"     //  "标准err输出设备名",
#define    CFG_MODULE_ENABLE_STDIO         true
//*******************************  Configure network config  ******************************************//
#define CFG_STATIC_IP       false             //   "使用静态IP?",
#define CFG_SELECT_NETCARD  "AT32F437_ETH"    //   "网卡名称",必须与选中的网卡驱动中配置的名称相同
#define CFG_MY_IPV4         "192.168.8.100"  //   "静态IP",
#define CFG_MY_SUBMASK      "255.255.255.0"  //   "子网掩码",
#define CFG_MY_GATWAY       "192.168.8.1"    //   "网关",
#define CFG_MY_DNS          "192.168.8.1"    //   "首选DNS",
#define CFG_MY_DNSBAK       "192.168.8.1"    //   "备用DNS",
#define    CFG_MODULE_ENABLE_NETWORK_CONFIG  true
//*******************************  Configure modbus  ******************************************//
#define CFG_MB_ASCII_TIMEOUT_SEC                    100        //  "从机用ASCII时，通信的超时时间",实际的超时时间是CFG_MB_ASCII_TIMEOUT_SEC*20000*50
#define CFG_MB_FUNC_HANDLERS_MAX                    16       //  "协议栈应该支持的Modbus功能码的最大数量"
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_BUF           32       //  "从机ID数据长度",这个数字限制了从机ID数据的最大大小。
#define CFG_MB_MASTER_DELAY_MS_CONVERT              200      //  "等待延迟时间",主站发送一个广播帧后，主站等待延迟时间，时间到后才主站才可以发送其他帧
#define CFG_MB_MASTER_TIMEOUT_MS_RESPOND            500      //  "从机响应超时时间"
#define CFG_MB_MASTER_TOTAL_SLAVE_NUM               1       //  "从机总数"
#define CFG_MB_FUNC_OTHER_REP_SLAVEID_ENABLED       true     //   "是否启用请求从机ID功能"
#define CFG_MB_FUNC_READ_INPUT_ENABLED              true     //   "是否启用读输入寄存器功能"
#define CFG_MB_FUNC_READ_HOLDING_ENABLED            true     //   "是否启用读保持寄存器功能"
#define CFG_MB_FUNC_WRITE_HOLDING_ENABLED           true     //   "是否启用写单个寄存器功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED  true     //   "是否启用写多个寄存器功能"
#define CFG_MB_FUNC_READ_COILS_ENABLED              true     //   "是否启用读线圈功能"
#define CFG_MB_FUNC_WRITE_COIL_ENABLED              true     //   "是否启用写线圈功能"
#define CFG_MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED    true     //   "是否启用写多个线圈功能"
#define CFG_MB_FUNC_READ_DISCRETE_INPUTS_ENABLED    true     //   "是否启用读离散输入功能"
#define CFG_MB_FUNC_READWRITE_HOLDING_ENABLED       true     //   "是否启用读写多个寄存器功能"
#define CFG_MB_MASTER_ENABLED                       true     //   "主机使能开关"
    #define CFG_MB_MASTER_RTU_ENABLED                   true     //   "主机RTU使能开关"
    #define CFG_MB_M_DISCRETE_INPUT_START               0         //  "主机离散量输入的起始地址"
    #define CFG_MB_M_DISCRETE_INPUT_NDISCRETES          0        //  "主机离散量输入的数量"
    #define CFG_MB_M_COIL_START                         0        //  "主机线圈的起始地址"
    #define CFG_MB_M_COIL_NCOILS                        0        //  "主机线圈的数量"
    #define CFG_MB_M_REG_INPUT_START                    0        //  "主机输入寄存器的起始地址"
    #define CFG_MB_M_REG_INPUT_NREGS                    0        //  "主机输入寄存器的数量"
    #define CFG_MB_M_REG_HOLDING_START                  0        //  "主机保持寄存器的起始地址"
    #define CFG_MB_M_REG_HOLDING_NREGS                  65000        //  "主机保持寄存器的数量"
    #define CFG_MB_M_PORT_NUM                           2         //  "串口的端口号，例如要用/dev/UART2，就填2"
    #define CFG_MB_M_PORT_BAUDRATE                      9600     //   "串口波特率"
    #define CFG_MB_M_PORT_PARITY                        MB_PAR_NONE     //   "校验方式"
#define CFG_MB_SLAVE_ENABLED                       false     //   "从机使能开关"
    #define CFG_MB_SLAVE_ASCII_ENABLED                  false     //   "从机ASCII使能开关"
    #define CFG_MB_SLAVE_RTU_ENABLED                    false     //   "从机RTU使能开关"
    #define CFG_MB_SLAVE_TCP_ENABLED                    false     //   "从机TCP使能开关"
    #define CFG_MB_S_DISCRETE_INPUT_START               1         //  "从机离散量输入的起始地址"
    #define CFG_MB_S_DISCRETE_INPUT_NDISCRETES          10        //  "从机离散量输入的数量"
    #define CFG_MB_S_COIL_START                         11        //  "从机线圈的起始地址。"
    #define CFG_MB_S_COIL_NCOILS                        10        //  "从机线圈的数量"
    #define CFG_MB_S_REG_INPUT_START                    21        //  "从机输入寄存器的起始地址"
    #define CFG_MB_S_REG_INPUT_NREGS                    10        //  "从机输入寄存器的数量"
    #define CFG_MB_S_REG_HOLDING_START                  31        //  "从机保持寄存器的起始地址"
    #define CFG_MB_S_REG_HOLDING_NREGS                  10        //  "从机保持寄存器的数量"
    #define CFG_MB_S_ADDR                               2         //  "从机地址"
    #define CFG_MB_S_PORT_NUM                           2         //  "串口的端口号，例如要用/dev/UART2，就填2"，串口的设置属性，在使用RTU或ASCII模式时才有效
    #define CFG_MB_S_TCP_PORT_NUM                       0         //  "使用TCP时，使用的端口号，0表示使用默认端口（502），使用TCP模式时才有效"
    #define CFG_MB_S_PORT_BAUDRATE                      115200     //   "串口波特率"
    #define CFG_MB_S_PORT_PARITY                        MB_PAR_NONE     //   "校验方式"
    #define CFG_MB_S_TRANSFER_MODE                      MB_RTU_MODE     //   "通信方式"
#define    CFG_MODULE_ENABLE_MODBUS        true
//*******************************  Core Clock  ******************************************//
#define    CFG_CORE_MCLK                   (288.0*Mhz)       //主频，内核要用，必须定义
//*******************************  DjyosProduct Configuration  ******************************************//
#define    PRODUCT_MANUFACTURER_NAME       "hzgj"            //厂商名称
#define    PRODUCT_PRODUCT_CLASSIFY        "dtu"             //产品分类
#define    PRODUCT_PRODUCT_MODEL           "dtu_1"           //产品型号
#define    PRODUCT_VERSION_LARGE           1                 //版本号,__.xx.xx
#define    PRODUCT_VERSION_MEDIUM          0                 //版本号,xx.__.xx
#define    PRODUCT_VERSION_SMALL           0                 //版本号,xx.xx.__
#define    PRODUCT_PRODUCT_MODEL_CODE      "123456"          //产品型号编码
#define    PRODUCT_BRANCH                  "hzgj_dtu_1"      //产品分支
#define    PRODUCT_PASSWORD                "123456"          //产品秘钥
#define    PRODUCT_OTA_ADDRESS             ""                //OTA服务器地址
#define    PRODUCT_BOARD_TYPE              "hzgj_dtu"        //板件类型
#define    PRODUCT_CPU_TYPE                "at32f437"        //CPU类型


#endif

