Set_Ntp and Get_Ntp 主要是IP

本文介绍了通过API实现NTP配置获取与设置的方法。详细展示了如何构造NTP信息结构体,包括从DHCP获取NTP配置及手动设置IPv4地址的过程,并对输入的有效性进行了验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
 
int  __ns8__GetNTP(struct soap* soap, struct _ns8__GetNTP *ns8__GetNTP, struct _ns8__GetNTPResponse *ns8__GetNTPResponse)
{

printf("%s\n",__FUNCTION__);

readIPaddr(); //read NTP configuration
struct ns3__NTPInformation *pNTPInformation;
pNTPInformation=(struct ns3__NTPInformation*)soap_malloc(soap, sizeof(struct ns3__NTPInformation));
memset(pNTPInformation, 0, sizeof(struct ns3__NTPInformation));

// No support DHCP
pNTPInformation->FromDHCP = xsd__boolean__false_;
pNTPInformation->__sizeNTPFromDHCP = 0;
pNTPInformation->__sizeNTPManual = 1;

// Set NTP Manual parameter
struct ns3__NetworkHost *pNTPManual;
pNTPManual=(struct ns3__NetworkHost*)soap_malloc(soap, sizeof(struct ns3__NetworkHost));
memset(pNTPManual, 0, sizeof(struct ns3__NetworkHost));
pNTPManual->Type = ns3__NetworkHostType__IPv4;

static char *pAddr[16] = {NULL};
static char szTmp[16] = {0};

strcpy(szTmp, readIPaddr_r[0].IP4);

*pAddr = szTmp;

pNTPManual->IPv4Address = pAddr;

pNTPInformation->NTPManual = pNTPManual;

ns8__GetNTPResponse->NTPInformation = pNTPInformation;

return SOAP_OK;
}


int  __ns8__SetNTP(struct soap* soap, struct _ns8__SetNTP *ns8__SetNTP, struct _ns8__SetNTPResponse *ns8__SetNTPResponse)
{
printf("%s\n",__FUNCTION__);

if (xsd__boolean__true_ == ns8__SetNTP->FromDHCP)
{
return soap_receiver_fault_subcode(soap, "ActionNotSupported", "DHCPNotSupported", NULL);
}

if (ns3__NetworkHostType__IPv4 == ns8__SetNTP->NTPManual->Type)
{

char *pszIP = NULL;
int judge_IPv4;
pszIP = *(ns8__SetNTP->NTPManual->IPv4Address);

judge_IPv4 = is_valid_ip(pszIP); //判断IP是不是合法  
                                                                                   //IP 地址的判断点这里可以到在这里。
        if(0 == judge_IPv4)
{
writeNTPaddr(pszIP); //保存NTP信息
//printf("success\n");
}
else
{
return soap_receiver_fault_subcode(soap, "ActionNotSupported", "invalidIPv4Address", "invalidIPv4Address IPv4");
}
printf("ip4:%s\n",*(ns8__SetNTP->NTPManual->IPv4Address ));
}
else if (ns3__NetworkHostType__IPv6 == ns8__SetNTP->NTPManual->Type)
{
return soap_receiver_fault_subcode(soap, "ActionNotSupported", "NoSupportedIPv6Address", "No Support IPv6");
}
else if (ns3__NetworkHostType__DNS == ns8__SetNTP->NTPManual->Type)
{
return soap_receiver_fault_subcode(soap, "ActionNotSupported", "NoSupportedDnsName ", "No Support DNS");
}

return SOAP_OK;
}
  


# # Automatically generated file; DO NOT EDIT. # U-Boot 2022.07 Configuration # CONFIG_CREATE_ARCH_SYMLINK=y CONFIG_SYS_CACHE_SHIFT_5=y CONFIG_SYS_CACHELINE_SIZE=32 # CONFIG_ARC is not set CONFIG_ARM=y # CONFIG_M68K is not set # CONFIG_MICROBLAZE is not set # CONFIG_MIPS is not set # CONFIG_NIOS2 is not set # CONFIG_PPC is not set # CONFIG_RISCV is not set # CONFIG_SANDBOX is not set # CONFIG_SH is not set # CONFIG_X86 is not set # CONFIG_XTENSA is not set CONFIG_SYS_ARCH="arm" CONFIG_SYS_CPU="armv7" CONFIG_SYS_SOC="luofu" CONFIG_SYS_VENDOR="hisilicon" CONFIG_SYS_BOARD="luofu" CONFIG_SYS_CONFIG_NAME="luofu" # CONFIG_SKIP_LOWLEVEL_INIT is not set # CONFIG_SKIP_LOWLEVEL_INIT_ONLY is not set # CONFIG_SYS_ICACHE_OFF is not set # CONFIG_SYS_DCACHE_OFF is not set # # ARM architecture # CONFIG_COUNTER_FREQUENCY=250000000 # CONFIG_POSITION_INDEPENDENT is not set # CONFIG_GIC_V3_ITS is not set CONFIG_HAS_VBAR=y CONFIG_HAS_THUMB2=y CONFIG_ARM_ASM_UNIFIED=y CONFIG_SYS_ARM_CACHE_CP15=y CONFIG_SYS_ARM_MMU=y # CONFIG_SYS_ARM_MPU is not set CONFIG_CPU_V7A=y CONFIG_SYS_ARM_ARCH=7 CONFIG_SYS_ARM_CACHE_WRITEBACK=y # CONFIG_SYS_ARM_CACHE_WRITETHROUGH is not set # CONFIG_SYS_ARM_CACHE_WRITEALLOC is not set # CONFIG_ARCH_CPU_INIT is not set # CONFIG_SYS_ARCH_TIMER is not set # CONFIG_ARM_SMCCC is not set # CONFIG_SEMIHOSTING is not set # CONFIG_SYS_THUMB_BUILD is not set # CONFIG_SYS_L2CACHE_OFF is not set # CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK is not set CONFIG_USE_ARCH_MEMCPY=y CONFIG_USE_ARCH_MEMSET=y # CONFIG_ARCH_AT91 is not set # CONFIG_ARCH_DAVINCI is not set # CONFIG_ARCH_KIRKWOOD is not set # CONFIG_ARCH_MVEBU is not set # CONFIG_ARCH_ORION5X is not set # CONFIG_TARGET_STV0991 is not set # CONFIG_ARCH_BCM283X is not set # CONFIG_ARCH_BCM63158 is not set # CONFIG_ARCH_BCM6753 is not set # CONFIG_ARCH_BCM68360 is not set # CONFIG_ARCH_BCM6858 is not set # CONFIG_ARCH_BCMSTB is not set # CONFIG_TARGET_VEXPRESS_CA9X4 is not set # CONFIG_TARGET_BCMCYGNUS is not set # CONFIG_TARGET_BCMNS2 is not set # CONFIG_TARGET_BCMNS3 is not set # CONFIG_ARCH_EXYNOS is not set # CONFIG_ARCH_S5PC1XX is not set # CONFIG_ARCH_HIGHBANK is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IPQ40XX is not set # CONFIG_ARCH_KEYSTONE is not set # CONFIG_ARCH_K3 is not set # CONFIG_ARCH_OMAP2PLUS is not set # CONFIG_ARCH_MESON is not set # CONFIG_ARCH_MEDIATEK is not set # CONFIG_ARCH_LPC32XX is not set # CONFIG_ARCH_IMX8 is not set # CONFIG_ARCH_IMX8M is not set # CONFIG_ARCH_IMX8ULP is not set # CONFIG_ARCH_IMXRT is not set # CONFIG_ARCH_MX23 is not set # CONFIG_ARCH_MX28 is not set # CONFIG_ARCH_MX31 is not set # CONFIG_ARCH_MX7ULP is not set # CONFIG_ARCH_MX7 is not set # CONFIG_ARCH_MX6 is not set # CONFIG_ARCH_MX5 is not set # CONFIG_ARCH_NEXELL is not set # CONFIG_ARCH_NPCM is not set # CONFIG_ARCH_APPLE is not set # CONFIG_ARCH_OWL is not set # CONFIG_ARCH_QEMU is not set # CONFIG_ARCH_RMOBILE is not set # CONFIG_ARCH_SNAPDRAGON is not set # CONFIG_ARCH_SOCFPGA is not set # CONFIG_ARCH_SUNXI is not set # CONFIG_ARCH_U8500 is not set # CONFIG_ARCH_VERSAL is not set # CONFIG_ARCH_VF610 is not set # CONFIG_ARCH_ZYNQ is not set # CONFIG_ARCH_ZYNQMP_R5 is not set # CONFIG_ARCH_ZYNQMP is not set # CONFIG_ARCH_TEGRA is not set # CONFIG_ARCH_VEXPRESS64 is not set # CONFIG_TARGET_TOTAL_COMPUTE is not set # CONFIG_TARGET_LS2080A_EMU is not set # CONFIG_TARGET_LS1088AQDS is not set # CONFIG_TARGET_LS2080AQDS is not set # CONFIG_TARGET_LS2080ARDB is not set # CONFIG_TARGET_LS2081ARDB is not set # CONFIG_TARGET_LX2160ARDB is not set # CONFIG_TARGET_LX2160AQDS is not set # CONFIG_TARGET_LX2162AQDS is not set # CONFIG_TARGET_HIKEY is not set # CONFIG_TARGET_HIKEY960 is not set # CONFIG_TARGET_POPLAR is not set # CONFIG_TARGET_LS1012AQDS is not set # CONFIG_TARGET_LS1012ARDB is not set # CONFIG_TARGET_LS1012A2G5RDB is not set # CONFIG_TARGET_LS1012AFRWY is not set # CONFIG_TARGET_LS1012AFRDM is not set # CONFIG_TARGET_LS1028AQDS is not set # CONFIG_TARGET_LS1028ARDB is not set # CONFIG_TARGET_LS1088ARDB is not set # CONFIG_TARGET_LS1021AQDS is not set # CONFIG_TARGET_LS1021ATWR is not set # CONFIG_TARGET_PG_WCOM_SELI8 is not set # CONFIG_TARGET_PG_WCOM_EXPU1 is not set # CONFIG_TARGET_LS1021ATSN is not set # CONFIG_TARGET_LS1021AIOT is not set # CONFIG_TARGET_LS1043AQDS is not set # CONFIG_TARGET_LS1043ARDB is not set # CONFIG_TARGET_LS1046AQDS is not set # CONFIG_TARGET_LS1046ARDB is not set # CONFIG_TARGET_LS1046AFRWY is not set # CONFIG_TARGET_SL28 is not set # CONFIG_TARGET_TEN64 is not set # CONFIG_ARCH_UNIPHIER is not set # CONFIG_ARCH_SYNQUACER is not set # CONFIG_ARCH_STM32 is not set # CONFIG_ARCH_STI is not set # CONFIG_ARCH_STM32MP is not set # CONFIG_ARCH_ROCKCHIP is not set # CONFIG_ARCH_OCTEONTX is not set # CONFIG_ARCH_OCTEONTX2 is not set # CONFIG_TARGET_THUNDERX_88XX is not set # CONFIG_ARCH_ASPEED is not set # CONFIG_TARGET_DURIAN is not set # CONFIG_TARGET_POMELO is not set # CONFIG_TARGET_PRESIDIO_ASIC is not set # CONFIG_TARGET_XENGUEST_ARM64 is not set CONFIG_TARGET_LUOFU=y # CONFIG_TARGET_XILING is not set # CONFIG_TARGET_EMEI is not set # CONFIG_TARGET_QISHAN is not set # CONFIG_TARGET_TIANGONG2 is not set # CONFIG_TARGET_TIANGONG1 is not set CONFIG_SUPPORT_PASSING_ATAGS=y # CONFIG_SETUP_MEMORY_TAGS is not set # CONFIG_CMDLINE_TAG is not set # CONFIG_INITRD_TAG is not set # CONFIG_REVISION_TAG is not set CONFIG_SERIAL_TAG=y # CONFIG_STATIC_MACH_TYPE is not set CONFIG_SYS_TEXT_BASE=0x80040000 CONFIG_SYS_MALLOC_LEN=0x1400000 CONFIG_SYS_MALLOC_F_LEN=0x4000 CONFIG_NR_DRAM_BANKS=1 CONFIG_ENV_SIZE=0x20000 CONFIG_ENV_OFFSET=0x240000 CONFIG_DM_GPIO=y CONFIG_DEFAULT_DEVICE_TREE="luofu" CONFIG_MULTI_DTB_FIT_UNCOMPRESS_SZ=0x8000 CONFIG_ERR_PTR_OFFSET=0x0 CONFIG_BOOTSTAGE_STASH_ADDR=0 CONFIG_ENV_OFFSET_REDUND=0x280000 CONFIG_IDENT_STRING=" for luofu" CONFIG_SYS_CLK_FREQ=0 # CONFIG_CHIP_DIP_SCAN is not set # CONFIG_HAS_ARMV7_SECURE_BASE is not set # CONFIG_ARMV7_LPAE is not set # CONFIG_CMD_DEKBLOB is not set # CONFIG_IMX_CAAM_DEK_ENCAP is not set # CONFIG_IMX_OPTEE_DEK_ENCAP is not set # CONFIG_IMX_SECO_DEK_ENCAP is not set # CONFIG_CMD_HDMIDETECT is not set # CONFIG_CMD_NANDBCB is not set CONFIG_IMX_DCD_ADDR=0x00910000 CONFIG_SYS_MEM_TOP_HIDE=0x0 CONFIG_SYS_LOAD_ADDR=0x83200000 # # ARM debug # # CONFIG_DEBUG_LL is not set CONFIG_HSAN=y CONFIG_MULTIUPG=y CONFIG_ACTIVE_STANDBY_BOOT=y CONFIG_CHIP_LUOFU=y CONFIG_BUILD_TARGET="" # CONFIG_DEBUG_UART is not set # CONFIG_AHCI is not set # CONFIG_OF_BOARD_FIXUP is not set # # General setup # CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y # CONFIG_CC_OPTIMIZE_FOR_SPEED is not set # CONFIG_CC_OPTIMIZE_FOR_DEBUG is not set # CONFIG_OPTIMIZE_INLINING is not set CONFIG_ARCH_SUPPORTS_LTO=y # CONFIG_LTO is not set # CONFIG_XEN is not set # CONFIG_DISTRO_DEFAULTS is not set # CONFIG_ENV_VARS_UBOOT_CONFIG is not set # CONFIG_SYS_BOOT_GET_CMDLINE is not set # CONFIG_SYS_BOOT_GET_KBD is not set CONFIG_SYS_MALLOC_F=y # CONFIG_VALGRIND is not set CONFIG_EXPERT=y CONFIG_SYS_MALLOC_CLEAR_ON_INIT=y # CONFIG_SYS_MALLOC_DEFAULT_TO_INIT is not set # CONFIG_TOOLS_DEBUG is not set # CONFIG_PHYS_64BIT is not set # CONFIG_REMAKE_ELF is not set # CONFIG_HAS_BOARD_SIZE_LIMIT is not set # CONFIG_SYS_CUSTOM_LDSCRIPT is not set CONFIG_PLATFORM_ELFENTRY="_start" CONFIG_STACK_SIZE=0x1000000 CONFIG_SYS_SRAM_BASE=0x0 CONFIG_SYS_SRAM_SIZE=0x0 # CONFIG_MP is not set # CONFIG_EXAMPLES is not set # # API # # CONFIG_API is not set # # Boot options # # # Boot images # # CONFIG_ANDROID_BOOT_IMAGE is not set # CONFIG_FIT is not set # CONFIG_TIMESTAMP is not set CONFIG_BOOTSTD=y # CONFIG_BOOTSTD_FULL is not set CONFIG_BOOTSTD_BOOTCOMMAND=y # CONFIG_BOOTMETH_SCRIPT is not set CONFIG_LEGACY_IMAGE_FORMAT=y # CONFIG_SUPPORT_RAW_INITRD is not set # CONFIG_OF_BOARD_SETUP is not set # CONFIG_OF_SYSTEM_SETUP is not set # CONFIG_OF_STDOUT_VIA_ALIAS is not set CONFIG_SYS_EXTRA_OPTIONS="" CONFIG_HAVE_SYS_TEXT_BASE=y # CONFIG_DYNAMIC_SYS_CLK_FREQ is not set CONFIG_ARCH_FIXUP_FDT_MEMORY=y # CONFIG_CHROMEOS is not set # CONFIG_CHROMEOS_VBOOT is not set # CONFIG_RAMBOOT_PBL is not set # # Boot timing # # CONFIG_BOOTSTAGE is not set CONFIG_BOOTSTAGE_STASH_SIZE=0x1000 # CONFIG_SHOW_BOOT_PROGRESS is not set # # Boot media # # CONFIG_NAND_BOOT is not set # CONFIG_ONENAND_BOOT is not set # CONFIG_QSPI_BOOT is not set # CONFIG_SATA_BOOT is not set # CONFIG_SD_BOOT is not set # CONFIG_SD_BOOT_QSPI is not set # CONFIG_SPI_BOOT is not set # # Autoboot options # CONFIG_AUTOBOOT=y CONFIG_BOOTDELAY=3 # CONFIG_AUTOBOOT_KEYED is not set # CONFIG_AUTOBOOT_USE_MENUKEY is not set # CONFIG_AUTOBOOT_MENU_SHOW is not set # CONFIG_BOOT_RETRY is not set # # Image support # # CONFIG_IMAGE_PRE_LOAD is not set # CONFIG_USE_BOOTARGS is not set # CONFIG_BOOTARGS_SUBST is not set # CONFIG_USE_BOOTCOMMAND is not set # CONFIG_USE_PREBOOT is not set CONFIG_DEFAULT_FDT_FILE="" # CONFIG_SAVE_PREV_BL_FDT_ADDR is not set # CONFIG_SAVE_PREV_BL_INITRAMFS_START_ADDR is not set # # Console # CONFIG_MENU=y # CONFIG_CONSOLE_RECORD is not set # CONFIG_DISABLE_CONSOLE is not set CONFIG_LOGLEVEL=4 CONFIG_SPL_LOGLEVEL=4 CONFIG_TPL_LOGLEVEL=4 # CONFIG_SILENT_CONSOLE is not set # CONFIG_PRE_CONSOLE_BUFFER is not set # CONFIG_CONSOLE_MUX is not set # CONFIG_SYS_CONSOLE_IS_IN_ENV is not set # CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE is not set # CONFIG_SYS_CONSOLE_ENV_OVERWRITE is not set # CONFIG_SYS_CONSOLE_INFO_QUIET is not set # CONFIG_SYS_STDIO_DEREGISTER is not set # CONFIG_SPL_SYS_STDIO_DEREGISTER is not set # CONFIG_SYS_DEVICE_NULLDEV is not set # # Logging # # CONFIG_LOG is not set # # Init options # # CONFIG_BOARD_TYPES is not set # CONFIG_DISPLAY_CPUINFO is not set # CONFIG_DISPLAY_BOARDINFO is not set # CONFIG_DISPLAY_BOARDINFO_LATE is not set # # Start-up hooks # # CONFIG_EVENT is not set # CONFIG_ARCH_EARLY_INIT_R is not set # CONFIG_ARCH_MISC_INIT is not set # CONFIG_BOARD_EARLY_INIT_F is not set # CONFIG_BOARD_EARLY_INIT_R is not set # CONFIG_BOARD_POSTCLK_INIT is not set CONFIG_BOARD_LATE_INIT=y # CONFIG_CLOCKS is not set # CONFIG_LAST_STAGE_INIT is not set CONFIG_MISC_INIT_R=y # CONFIG_ID_EEPROM is not set # CONFIG_RESET_PHY_R is not set # # Security support # # CONFIG_STACKPROTECTOR is not set # # Update support # # CONFIG_ANDROID_AB is not set # # Blob list # # CONFIG_BLOBLIST is not set # # SPL / TPL / VPL # CONFIG_SPL_SYS_STACK_F_CHECK_BYTE=0xaa # CONFIG_SPL_SYS_REPORT_STACK_F_USAGE is not set # CONFIG_SPL_SHOW_ERRORS is not set # # PowerPC and LayerScape SPL Boot options # # CONFIG_SPL_MD5 is not set # CONFIG_FDT_SIMPLEFB is not set # # Command line interface # CONFIG_CMDLINE=y # CONFIG_HUSH_PARSER is not set CONFIG_CMDLINE_EDITING=y CONFIG_AUTO_COMPLETE=y CONFIG_SYS_LONGHELP=y CONFIG_SYS_PROMPT="luofu # " CONFIG_SYS_XTRACE=y # # Commands # # # Info commands # # CONFIG_CMD_BDI is not set # CONFIG_CMD_CONFIG is not set # CONFIG_CMD_CONSOLE is not set # CONFIG_CMD_CPU is not set # CONFIG_CMD_LICENSE is not set # CONFIG_CMD_PMC is not set # # Boot commands # CONFIG_CMD_BOOTD=y CONFIG_CMD_BOOTM=y # CONFIG_CMD_BOOTDEV is not set # CONFIG_CMD_BOOTFLOW is not set # CONFIG_CMD_BOOTMETH is not set # CONFIG_CMD_BOOTZ is not set CONFIG_BOOTM_LINUX=y # CONFIG_BOOTM_NETBSD is not set # CONFIG_BOOTM_OPENRTOS is not set # CONFIG_BOOTM_OSE is not set # CONFIG_BOOTM_PLAN9 is not set # CONFIG_BOOTM_RTEMS is not set # CONFIG_BOOTM_VXWORKS is not set CONFIG_CMD_BOOTMENU=y # CONFIG_CMD_ADTIMG is not set # CONFIG_CMD_ELF is not set CONFIG_CMD_FDT=y CONFIG_CMD_GO=y CONFIG_CMD_RUN=y # CONFIG_CMD_IMI is not set # CONFIG_CMD_IMLS is not set # CONFIG_CMD_XIMG is not set # CONFIG_CMD_THOR_DOWNLOAD is not set # CONFIG_CMD_ZBOOT is not set # # Environment commands # # CONFIG_CMD_ASKENV is not set # CONFIG_CMD_EXPORTENV is not set # CONFIG_CMD_IMPORTENV is not set # CONFIG_CMD_EDITENV is not set # CONFIG_CMD_GREPENV is not set CONFIG_CMD_SAVEENV=y # CONFIG_CMD_ERASEENV is not set # CONFIG_CMD_ENV_EXISTS is not set # CONFIG_CMD_ENV_CALLBACK is not set # CONFIG_CMD_ENV_FLAGS is not set # CONFIG_CMD_NVEDIT_INDIRECT is not set # CONFIG_CMD_NVEDIT_INFO is not set # CONFIG_CMD_NVEDIT_LOAD is not set # CONFIG_CMD_NVEDIT_SELECT is not set # # Memory commands # # CONFIG_CMD_BINOP is not set # CONFIG_CMD_BLOBLIST is not set # CONFIG_CMD_CRC32 is not set # CONFIG_CMD_EEPROM is not set # CONFIG_LOOPW is not set # CONFIG_CMD_MD5SUM is not set # CONFIG_CMD_MEMINFO is not set CONFIG_CMD_MEMORY=y # CONFIG_CMD_MEM_SEARCH is not set # CONFIG_CMD_MX_CYCLIC is not set # CONFIG_CMD_RANDOM is not set # CONFIG_CMD_MEMTEST is not set # CONFIG_CMD_SHA1SUM is not set # CONFIG_CMD_STRINGS is not set # # Compression commands # # CONFIG_CMD_LZMADEC is not set # CONFIG_CMD_UNLZ4 is not set # CONFIG_CMD_UNZIP is not set # CONFIG_CMD_ZIP is not set # # Device access commands # # CONFIG_CMD_ARMFLASH is not set # CONFIG_CMD_BIND is not set # CONFIG_CMD_CLK is not set # CONFIG_CMD_DEMO is not set # CONFIG_CMD_DFU is not set # CONFIG_CMD_DM is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGAD is not set # CONFIG_CMD_FUSE is not set CONFIG_CMD_GPIO=y # CONFIG_CMD_GPIO_READ is not set # CONFIG_CMD_GPT is not set # CONFIG_RANDOM_UUID is not set # CONFIG_CMD_IDE is not set # CONFIG_CMD_IO is not set # CONFIG_CMD_IOTRACE is not set # CONFIG_CMD_I2C is not set # CONFIG_CMD_LOADB is not set # CONFIG_CMD_LOADS is not set # CONFIG_CMD_LSBLK is not set # CONFIG_CMD_MBR is not set # CONFIG_CMD_MISC is not set # CONFIG_CMD_CLONE is not set CONFIG_CMD_MTD=y CONFIG_CMD_NAND=y # CONFIG_CMD_NAND_TRIMFFS is not set # CONFIG_CMD_NAND_LOCK_UNLOCK is not set # CONFIG_CMD_NAND_TORTURE is not set # CONFIG_CMD_ONENAND is not set # CONFIG_CMD_OSD is not set # CONFIG_CMD_PCI is not set # CONFIG_CMD_POWEROFF is not set # CONFIG_CMD_READ is not set # CONFIG_CMD_SATA is not set # CONFIG_CMD_SAVES is not set # CONFIG_CMD_SCSI is not set # CONFIG_CMD_SDRAM is not set # CONFIG_CMD_TSI148 is not set # CONFIG_CMD_UNIVERSE is not set # CONFIG_CMD_USB_SDP is not set # CONFIG_CMD_WDT is not set # # Shell scripting commands # # CONFIG_CMD_ECHO is not set # CONFIG_CMD_ITEST is not set # CONFIG_CMD_SOURCE is not set # CONFIG_CMD_SETEXPR is not set # # Android support commands # CONFIG_CMD_NET=y CONFIG_CMD_BOOTP=y # CONFIG_CMD_DHCP is not set # CONFIG_BOOTP_MAY_FAIL is not set CONFIG_BOOTP_BOOTPATH=y # CONFIG_BOOTP_VENDOREX is not set # CONFIG_BOOTP_BOOTFILESIZE is not set CONFIG_BOOTP_DNS=y # CONFIG_BOOTP_DNS2 is not set CONFIG_BOOTP_GATEWAY=y CONFIG_BOOTP_HOSTNAME=y # CONFIG_BOOTP_PREFER_SERVERIP is not set CONFIG_BOOTP_SUBNETMASK=y # CONFIG_BOOTP_NISDOMAIN is not set # CONFIG_BOOTP_NTPSERVER is not set # CONFIG_CMD_PCAP is not set CONFIG_BOOTP_VCI_STRING="U-Boot.armv7" CONFIG_CMD_TFTPBOOT=y # CONFIG_CMD_TFTPPUT is not set # CONFIG_CMD_TFTPSRV is not set CONFIG_NET_TFTP_VARS=y # CONFIG_CMD_RARP is not set # CONFIG_CMD_NFS is not set # CONFIG_CMD_MII is not set # CONFIG_CMD_MDIO is not set CONFIG_CMD_PING=y # CONFIG_CMD_CDP is not set # CONFIG_CMD_SNTP is not set # CONFIG_CMD_DNS is not set # CONFIG_CMD_LINK_LOCAL is not set # CONFIG_CMD_ETHSW is not set # CONFIG_CMD_PXE is not set # CONFIG_CMD_WOL is not set # # Misc commands # # CONFIG_CMD_BSP is not set # CONFIG_CMD_BLOCK_CACHE is not set CONFIG_CMD_CACHE=y # CONFIG_CMD_CONITRACE is not set # CONFIG_CMD_EXCEPTION is not set # CONFIG_CMD_DATE is not set # CONFIG_CMD_TIME is not set # CONFIG_CMD_GETTIME is not set # CONFIG_CMD_SLEEP is not set # CONFIG_CMD_TIMER is not set # CONFIG_CMD_SYSBOOT is not set # CONFIG_CMD_QFW is not set # CONFIG_CMD_PSTORE is not set # CONFIG_CMD_TERMINAL is not set # CONFIG_CMD_UUID is not set # # TI specific command line interface # # CONFIG_CMD_DDR3 is not set # # Power commands # # # Security commands # # CONFIG_CMD_AES is not set # CONFIG_CMD_BLOB is not set # CONFIG_CMD_HASH is not set # # Firmware commands # # # Filesystem commands # # CONFIG_CMD_BTRFS is not set # CONFIG_CMD_EROFS is not set # CONFIG_CMD_EXT2 is not set # CONFIG_CMD_EXT4 is not set # CONFIG_CMD_FAT is not set # CONFIG_CMD_SQUASHFS is not set # CONFIG_CMD_FS_GENERIC is not set # CONFIG_CMD_FS_UUID is not set # CONFIG_CMD_JFFS2 is not set CONFIG_CMD_MTDPARTS=y # CONFIG_CMD_MTDPARTS_SPREAD is not set # CONFIG_CMD_MTDPARTS_SHOW_NET_SIZES is not set CONFIG_MTDIDS_DEFAULT="nand0=hi_nfc,nor0=hi_sfc" CONFIG_MTDPARTS_DEFAULT="" # CONFIG_CMD_REISER is not set # CONFIG_CMD_ZFS is not set # # Debug commands # # CONFIG_CMD_DIAG is not set # CONFIG_CMD_EVENT is not set # CONFIG_CMD_LOG is not set # CONFIG_CMD_UBI is not set # # Partition Types # # CONFIG_MAC_PARTITION is not set # CONFIG_DOS_PARTITION is not set # CONFIG_ISO_PARTITION is not set # CONFIG_AMIGA_PARTITION is not set # CONFIG_EFI_PARTITION is not set CONFIG_SUPPORT_OF_CONTROL=y # # Device Tree Control # CONFIG_OF_CONTROL=y CONFIG_OF_REAL=y # CONFIG_OF_LIVE is not set CONFIG_OF_SEPARATE=y # CONFIG_OF_EMBED is not set # CONFIG_OF_BOARD is not set CONFIG_OF_OMIT_DTB=y CONFIG_DEVICE_TREE_INCLUDES="" CONFIG_OF_LIST="luofu" # CONFIG_MULTI_DTB_FIT is not set # CONFIG_OF_DTB_PROPS_REMOVE is not set CONFIG_VPL_OF_REAL=y # # Environment # CONFIG_ENV_SUPPORT=y CONFIG_ENV_SOURCE_FILE="" CONFIG_SAVEENV=y # CONFIG_ENV_OVERWRITE is not set # CONFIG_ENV_IS_NOWHERE is not set # CONFIG_ENV_IS_IN_EEPROM is not set # CONFIG_ENV_IS_IN_FAT is not set # CONFIG_ENV_IS_IN_EXT4 is not set # CONFIG_ENV_IS_IN_FLASH is not set CONFIG_ENV_IS_IN_NAND=y # CONFIG_ENV_IS_IN_NVRAM is not set # CONFIG_ENV_IS_IN_ONENAND is not set # CONFIG_ENV_IS_IN_REMOTE is not set CONFIG_SYS_REDUNDAND_ENVIRONMENT=y # CONFIG_SYS_RELOC_GD_ENV_ADDR is not set # CONFIG_USE_DEFAULT_ENV_FILE is not set # CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG is not set # CONFIG_ENV_IMPORT_FDT is not set # CONFIG_ENV_APPEND is not set # CONFIG_ENV_WRITEABLE_LIST is not set # CONFIG_ENV_ACCESS_IGNORE_FORCE is not set # CONFIG_USE_BOOTFILE is not set # CONFIG_USE_ETHPRIME is not set # CONFIG_VERSION_VARIABLE is not set CONFIG_NET=y CONFIG_ARP_TIMEOUT=200 CONFIG_NET_RETRY_COUNT=20 # CONFIG_PROT_UDP is not set CONFIG_BOOTDEV_ETH=y # CONFIG_BOOTP_SEND_HOSTNAME is not set CONFIG_NET_RANDOM_ETHADDR=y CONFIG_NETCONSOLE=y # CONFIG_IP_DEFRAG is not set # CONFIG_SYS_FAULT_ECHO_LINK_DOWN is not set CONFIG_TFTP_BLOCKSIZE=512 # CONFIG_TFTP_PORT is not set CONFIG_TFTP_WINDOWSIZE=1 # CONFIG_TFTP_TSIZE is not set # CONFIG_SERVERIP_FROM_PROXYDHCP is not set CONFIG_SERVERIP_FROM_PROXYDHCP_DELAY_MS=100 # CONFIG_KEEP_SERVERADDR is not set # CONFIG_UDP_CHECKSUM is not set # CONFIG_BOOTP_SERVERIP is not set # # Device Drivers # # # Generic Driver Options # CONFIG_DM=y # CONFIG_DM_WARN is not set # CONFIG_DM_DEBUG is not set CONFIG_DM_DEVICE_REMOVE=y # CONFIG_DM_EVENT is not set CONFIG_DM_STDIO=y CONFIG_DM_SEQ_ALIAS=y # CONFIG_DM_DMA is not set CONFIG_REGMAP=y CONFIG_SYSCON=y # CONFIG_DEVRES is not set CONFIG_SIMPLE_BUS=y # CONFIG_SIMPLE_BUS_CORRECT_RANGE is not set # CONFIG_OF_TRANSLATE is not set # CONFIG_TRANSLATION_OFFSET is not set CONFIG_DM_DEV_READ_INLINE=y # CONFIG_ACPIGEN is not set CONFIG_BOUNCE_BUFFER=y # CONFIG_ADC is not set # CONFIG_ADC_EXYNOS is not set # CONFIG_ADC_SANDBOX is not set # CONFIG_SARADC_MESON is not set # CONFIG_SARADC_ROCKCHIP is not set # CONFIG_SATA is not set # CONFIG_SCSI_AHCI is not set # # SATA/SCSI device support # # CONFIG_AXI is not set # # Bus devices # CONFIG_BLK=y CONFIG_HAVE_BLOCK_DEVICE=y CONFIG_BLOCK_CACHE=y # CONFIG_EFI_MEDIA is not set # CONFIG_IDE is not set # CONFIG_BOOTCOUNT_LIMIT is not set # # Button Support # # CONFIG_BUTTON is not set # # Cache Controller drivers # # CONFIG_CACHE is not set CONFIG_L2X0_CACHE=y # CONFIG_NCORE_CACHE is not set # CONFIG_SIFIVE_CCACHE is not set # # Clock # CONFIG_CLK=y # CONFIG_CLK_CCF is not set # CONFIG_CLK_CDCE9XX is not set # CONFIG_CLK_ICS8N3QV01 is not set # CONFIG_CLK_K210 is not set # CONFIG_CLK_MPC83XX is not set # CONFIG_CLK_XLNX_CLKWZRD is not set # CONFIG_CLK_AT91 is not set # CONFIG_CLK_SIFIVE is not set # CONFIG_CLK_TI_AM3_DPLL is not set # CONFIG_CLK_TI_CTRL is not set # CONFIG_CLK_TI_GATE is not set # CONFIG_CLK_K3 is not set CONFIG_CPU=y # # Hardware crypto devices # # CONFIG_DM_HASH is not set # CONFIG_FSL_CAAM is not set # CONFIG_SYS_FSL_SEC_BE is not set # CONFIG_SYS_FSL_SEC_LE is not set # CONFIG_DDR_SPD is not set # # Demo for driver model # # CONFIG_DM_DEMO is not set # # DFU support # # # DMA Support # # CONFIG_DMA is not set # CONFIG_DMA_LPC32XX is not set # CONFIG_TI_EDMA3 is not set # CONFIG_DMA_LEGACY is not set # # Fastboot support # # CONFIG_UDP_FUNCTION_FASTBOOT is not set # CONFIG_FIRMWARE is not set # CONFIG_ZYNQMP_FIRMWARE is not set # # FPGA support # # CONFIG_FPGA_ALTERA is not set # CONFIG_FPGA_SOCFPGA is not set # CONFIG_FPGA_XILINX is not set CONFIG_GPIO=y # CONFIG_GPIO_HOG is not set # CONFIG_DM_GPIO_LOOKUP_LABEL is not set # CONFIG_ALTERA_PIO is not set # CONFIG_BCM2835_GPIO is not set CONFIG_DWAPB_GPIO=y # CONFIG_AT91_GPIO is not set # CONFIG_ATMEL_PIO4 is not set # CONFIG_ASPEED_GPIO is not set # CONFIG_DA8XX_GPIO is not set # CONFIG_INTEL_BROADWELL_GPIO is not set # CONFIG_INTEL_GPIO is not set # CONFIG_INTEL_ICH6_GPIO is not set # CONFIG_IMX_RGPIO2P is not set # CONFIG_IPROC_GPIO is not set # CONFIG_HSDK_CREG_GPIO is not set # CONFIG_KIRKWOOD_GPIO is not set # CONFIG_LPC32XX_GPIO is not set # CONFIG_MCP230XX_GPIO is not set # CONFIG_MSM_GPIO is not set # CONFIG_MXC_GPIO is not set # CONFIG_MXS_GPIO is not set # CONFIG_NPCM_GPIO is not set # CONFIG_CMD_PCA953X is not set # CONFIG_ROCKCHIP_GPIO is not set # CONFIG_XILINX_GPIO is not set # CONFIG_CMD_TCA642X is not set # CONFIG_TEGRA_GPIO is not set # CONFIG_TEGRA186_GPIO is not set # CONFIG_VYBRID_GPIO is not set # CONFIG_SIFIVE_GPIO is not set # CONFIG_ZYNQ_GPIO is not set # CONFIG_DM_74X164 is not set # CONFIG_SPL_DM_PCA953X is not set # CONFIG_MPC8XXX_GPIO is not set # CONFIG_NX_GPIO is not set # CONFIG_NOMADIK_GPIO is not set # CONFIG_ZYNQMP_GPIO_MODEPIN is not set # CONFIG_SLG7XL45106_I2C_GPO is not set # # Hardware Spinlock Support # # CONFIG_DM_HWSPINLOCK is not set # CONFIG_I2C is not set # CONFIG_INPUT is not set # CONFIG_DM_KEYBOARD is not set # CONFIG_KEYBOARD is not set # CONFIG_TEGRA_KEYBOARD is not set # CONFIG_TWL4030_INPUT is not set # # IOMMU device drivers # # CONFIG_IOMMU is not set # # LED Support # # CONFIG_LED is not set # CONFIG_LED_STATUS is not set # # Mailbox Controller Support # # CONFIG_DM_MAILBOX is not set # # Memory Controller drivers # # # Multifunction device drivers # CONFIG_MISC=y # CONFIG_ALTERA_SYSID is not set # CONFIG_ATSHA204A is not set # CONFIG_GATEWORKS_SC is not set # CONFIG_ROCKCHIP_EFUSE is not set # CONFIG_ROCKCHIP_OTP is not set # CONFIG_SIFIVE_OTP is not set # CONFIG_VEXPRESS_CONFIG is not set # CONFIG_CROS_EC is not set # CONFIG_DS4510 is not set # CONFIG_FSL_SEC_MON is not set # CONFIG_IRQ is not set # CONFIG_NUVOTON_NCT6102D is not set # CONFIG_PWRSEQ is not set # CONFIG_PCA9551_LED is not set # CONFIG_TEST_DRV is not set # CONFIG_TWL4030_LED is not set # CONFIG_WINBOND_W83627 is not set # CONFIG_I2C_EEPROM is not set # CONFIG_GDSYS_RXAUI_CTRL is not set # CONFIG_GDSYS_IOEP is not set # CONFIG_MPC83XX_SERDES is not set # CONFIG_FS_LOADER is not set # CONFIG_SPL_FS_LOADER is not set # CONFIG_GDSYS_SOC is not set # CONFIG_IHS_FPGA is not set # CONFIG_MICROCHIP_FLEXCOM is not set # # MMC Host controller Support # # CONFIG_MMC is not set # CONFIG_MMC_BROKEN_CD is not set # CONFIG_DM_MMC is not set # CONFIG_FSL_ESDHC is not set # CONFIG_FSL_ESDHC_IMX is not set # # MTD Support # CONFIG_MTD_PARTITIONS=y CONFIG_MTD=y CONFIG_DM_MTD=y # CONFIG_MTD_NOR_FLASH is not set # CONFIG_MTD_CONCAT is not set CONFIG_SYS_MTDPARTS_RUNTIME=y # CONFIG_FLASH_CFI_DRIVER is not set # CONFIG_CFI_FLASH is not set # CONFIG_ALTERA_QSPI is not set # CONFIG_HBMC_AM654 is not set # CONFIG_USE_SYS_MAX_FLASH_BANKS is not set CONFIG_MTD_RAW_NAND=y # CONFIG_SYS_NAND_DRIVER_ECC_LAYOUT is not set CONFIG_SYS_NAND_USE_FLASH_BBT=y # CONFIG_NAND_ATMEL is not set # CONFIG_NAND_BRCMNAND is not set # CONFIG_NAND_DAVINCI is not set # CONFIG_NAND_DENALI_DT is not set # CONFIG_NAND_FSL_IFC is not set # CONFIG_NAND_LPC32XX_MLC is not set # CONFIG_NAND_LPC32XX_SLC is not set # CONFIG_NAND_VF610_NFC is not set # CONFIG_NAND_PXA3XX is not set # CONFIG_NAND_ARASAN is not set # CONFIG_NAND_MXIC is not set # CONFIG_NAND_ZYNQ is not set # CONFIG_NAND_OCTEONTX is not set # # Generic NAND options # # CONFIG_SYS_NAND_ONFI_DETECTION is not set # # SPI Flash Support # # CONFIG_SPI_FLASH is not set # # UBI support # # CONFIG_UBI_SILENCE_MSG is not set # CONFIG_MTD_UBI is not set # # Multiplexer drivers # # CONFIG_MULTIPLEXER is not set # CONFIG_BITBANGMII is not set # CONFIG_MV88E6352_SWITCH is not set CONFIG_PHYLIB=y # CONFIG_PHY_ADDR_ENABLE is not set # CONFIG_B53_SWITCH is not set # CONFIG_MV88E61XX_SWITCH is not set # CONFIG_PHYLIB_10G is not set # CONFIG_PHY_ADIN is not set # CONFIG_PHY_AQUANTIA is not set # CONFIG_PHY_ATHEROS is not set # CONFIG_PHY_BROADCOM is not set # CONFIG_PHY_CORTINA is not set # CONFIG_PHY_DAVICOM is not set # CONFIG_PHY_ET1011C is not set # CONFIG_PHY_LXT is not set # CONFIG_PHY_MARVELL is not set # CONFIG_PHY_MESON_GXL is not set # CONFIG_PHY_MICREL is not set # CONFIG_PHY_MSCC is not set # CONFIG_PHY_NATSEMI is not set # CONFIG_PHY_NXP_C45_TJA11XX is not set # CONFIG_PHY_NXP_TJA11XX is not set # CONFIG_PHY_REALTEK is not set # CONFIG_PHY_SMSC is not set # CONFIG_PHY_TERANETICS is not set # CONFIG_PHY_TI is not set # CONFIG_PHY_TI_DP83867 is not set # CONFIG_PHY_TI_DP83869 is not set # CONFIG_PHY_TI_GENERIC is not set # CONFIG_PHY_VITESSE is not set # CONFIG_PHY_XILINX is not set # CONFIG_PHY_XILINX_GMII2RGMII is not set # CONFIG_PHY_ETHERNET_ID is not set # CONFIG_PHY_FIXED is not set # CONFIG_PHY_NCSI is not set CONFIG_PHY_RESET_DELAY=0 # CONFIG_FSL_PFE is not set # CONFIG_BNXT_ETH is not set CONFIG_ETH=y CONFIG_DM_ETH=y # CONFIG_DM_MDIO is not set # CONFIG_DM_ETH_PHY is not set CONFIG_NETDEVICES=y # CONFIG_PHY_GIGE is not set # CONFIG_ALTERA_TSE is not set # CONFIG_BCM_SF2_ETH is not set # CONFIG_BCMGENET is not set # CONFIG_CALXEDA_XGMAC is not set # CONFIG_DRIVER_DM9000 is not set # CONFIG_DWC_ETH_QOS is not set # CONFIG_EEPRO100 is not set # CONFIG_ETH_DESIGNWARE is not set # CONFIG_ETH_DESIGNWARE_MESON8B is not set # CONFIG_ETHOC is not set # CONFIG_FMAN_ENET is not set # CONFIG_FTMAC100 is not set # CONFIG_FTGMAC100 is not set # CONFIG_MCFFEC is not set # CONFIG_FSLDMAFEC is not set # CONFIG_KS8851_MLL is not set # CONFIG_MACB is not set # CONFIG_PCH_GBE is not set # CONFIG_RGMII is not set CONFIG_MII=y # CONFIG_RMII is not set # CONFIG_PCNET is not set # CONFIG_QE_UEC is not set # CONFIG_RTL8139 is not set # CONFIG_RTL8169 is not set # CONFIG_SMC911X is not set # CONFIG_SUN7I_GMAC is not set # CONFIG_SUN4I_EMAC is not set # CONFIG_SUN8I_EMAC is not set # CONFIG_SH_ETHER is not set # CONFIG_DRIVER_TI_CPSW is not set # CONFIG_DRIVER_TI_EMAC is not set # CONFIG_DRIVER_TI_KEYSTONE_NET is not set # CONFIG_TULIP is not set # CONFIG_XILINX_AXIEMAC is not set # CONFIG_XILINX_EMACLITE is not set # CONFIG_ZYNQ_GEM is not set # CONFIG_SYS_DPAA_QBMAN is not set # CONFIG_TSEC_ENET is not set # CONFIG_MEDIATEK_ETH is not set # CONFIG_HIGMACV300_ETH is not set # CONFIG_NVME is not set # CONFIG_NVME_APPLE is not set # CONFIG_PCI is not set # # PCI Endpoint # # CONFIG_PCI_ENDPOINT is not set # CONFIG_X86_PCH7 is not set # CONFIG_X86_PCH9 is not set # # PHY Subsystem # CONFIG_PHY=y # CONFIG_NOP_PHY is not set # CONFIG_MIPI_DPHY_HELPERS is not set # CONFIG_BCM_SR_PCIE_PHY is not set # CONFIG_MSM8916_USB_PHY is not set # CONFIG_OMAP_USB2_PHY is not set # # Rockchip PHY driver # # CONFIG_PHY_CADENCE_SIERRA is not set # CONFIG_PHY_CADENCE_TORRENT is not set # CONFIG_MVEBU_COMPHY_SUPPORT is not set # # Pin controllers # # CONFIG_PINCTRL is not set # CONFIG_POWER_LEGACY is not set # CONFIG_SPL_POWER_LEGACY is not set # CONFIG_ACPI_PMC is not set # CONFIG_SPL_ACPI_PMC is not set # CONFIG_TPL_ACPI_PMC is not set # # Power Domain Support # # CONFIG_POWER_DOMAIN is not set # CONFIG_DM_PMIC is not set # CONFIG_PMIC_TPS65217 is not set # CONFIG_POWER_MC34VR500 is not set # CONFIG_DM_REGULATOR is not set # CONFIG_POWER_MT6323 is not set # CONFIG_DM_PWM is not set # CONFIG_PWM_IMX is not set # CONFIG_PWM_SANDBOX is not set # CONFIG_U_QE is not set # CONFIG_RAM is not set # # Reboot Mode Support # # CONFIG_DM_REBOOT_MODE is not set # # Remote Processor drivers # # # Reset Controller Support # CONFIG_DM_RESET=y # CONFIG_RESET_AST2500 is not set # CONFIG_RESET_AST2600 is not set # CONFIG_RESET_HISILICON is not set # CONFIG_RESET_SYSCON is not set # CONFIG_RESET_SCMI is not set # CONFIG_RESET_DRA7 is not set # CONFIG_DM_RNG is not set # # Real Time Clock # # CONFIG_DM_RTC is not set # CONFIG_RTC_ENABLE_32KHZ_OUTPUT is not set # CONFIG_RTC_PCF8563 is not set # CONFIG_RTC_PL031 is not set # CONFIG_RTC_S35392A is not set # CONFIG_RTC_MC146818 is not set # CONFIG_RTC_M41T62 is not set # CONFIG_SCSI is not set # CONFIG_DM_SCSI is not set CONFIG_SERIAL=y CONFIG_BAUDRATE=115200 CONFIG_REQUIRE_SERIAL_CONSOLE=y CONFIG_SPECIFY_CONSOLE_INDEX=y CONFIG_SERIAL_PRESENT=y CONFIG_CONS_INDEX=1 CONFIG_DM_SERIAL=y # CONFIG_SERIAL_RX_BUFFER is not set # CONFIG_SERIAL_PUTS is not set # CONFIG_SERIAL_SEARCH_ALL is not set # CONFIG_SERIAL_PROBE_ALL is not set # CONFIG_VPL_DM_SERIAL is not set # CONFIG_ALTERA_JTAG_UART is not set # CONFIG_ALTERA_UART is not set # CONFIG_ARC_SERIAL is not set # CONFIG_ARM_DCC is not set # CONFIG_ATMEL_USART is not set # CONFIG_BCM6345_SERIAL is not set # CONFIG_COREBOOT_SERIAL is not set # CONFIG_CORTINA_UART is not set # CONFIG_FSL_LINFLEXUART is not set # CONFIG_FSL_LPUART is not set # CONFIG_MVEBU_A3700_UART is not set # CONFIG_MCFUART is not set # CONFIG_NULLDEV_SERIAL is not set CONFIG_SYS_NS16550=y # CONFIG_NS16550_DYNAMIC is not set # CONFIG_PL01X_SERIAL is not set # CONFIG_ROCKCHIP_SERIAL is not set # CONFIG_XILINX_UARTLITE is not set # CONFIG_MSM_SERIAL is not set # CONFIG_MSM_GENI_SERIAL is not set # CONFIG_OMAP_SERIAL is not set # CONFIG_PXA_SERIAL is not set # CONFIG_SIFIVE_SERIAL is not set # CONFIG_ZYNQ_SERIAL is not set # CONFIG_MTK_SERIAL is not set # CONFIG_MT7620_SERIAL is not set # CONFIG_NPCM_SERIAL is not set # CONFIG_SMEM is not set # # Sound support # # CONFIG_SOUND is not set # # SOC (System On Chip) specific Drivers # # CONFIG_SOC_DEVICE is not set # CONFIG_SOC_TI is not set # CONFIG_SPI is not set # # SPMI support # # CONFIG_SPMI is not set # CONFIG_SYSINFO is not set # # System reset device drivers # # CONFIG_SYSRESET is not set # CONFIG_TEE is not set # CONFIG_DM_THERMAL is not set # # Timer Support # CONFIG_TIMER=y # CONFIG_TIMER_EARLY is not set # CONFIG_ALTERA_TIMER is not set # CONFIG_AST_TIMER is not set # CONFIG_ATCPIT100_TIMER is not set # CONFIG_ATMEL_PIT_TIMER is not set # CONFIG_CADENCE_TTC_TIMER is not set # CONFIG_DESIGNWARE_APB_TIMER is not set # CONFIG_MPC83XX_TIMER is not set # CONFIG_RENESAS_OSTM_TIMER is not set # CONFIG_NOMADIK_MTU_TIMER is not set # CONFIG_NPCM_TIMER is not set # CONFIG_OMAP_TIMER is not set # CONFIG_ROCKCHIP_TIMER is not set # CONFIG_STI_TIMER is not set # CONFIG_STM32_TIMER is not set # CONFIG_MTK_TIMER is not set # CONFIG_MCHP_PIT64B_TIMER is not set # CONFIG_IMX_GPT_TIMER is not set # # TPM support # # CONFIG_USB is not set # # UFS Host Controller Support # # CONFIG_TI_J721E_UFS is not set # # Graphics support # # CONFIG_DM_VIDEO is not set # CONFIG_SYS_WHITE_ON_BLACK is not set # CONFIG_NO_FB_CLEAR is not set # # TrueType Fonts # # CONFIG_VIDEO_VESA is not set # CONFIG_VIDEO_LCD_ANX9804 is not set # CONFIG_ATMEL_LCD_BGR555 is not set # CONFIG_VIDEO_BCM2835 is not set # CONFIG_VIDEO_LCD_SSD2828 is not set # CONFIG_VIDEO_LCD_HITACHI_TX18D42VM is not set # CONFIG_VIDEO_MVEBU is not set # CONFIG_I2C_EDID is not set # CONFIG_DISPLAY is not set # CONFIG_ATMEL_HLCD is not set # CONFIG_AM335X_LCD is not set # CONFIG_VIDEO_TEGRA20 is not set # CONFIG_VIDEO_BRIDGE is not set # CONFIG_VIDEO is not set # CONFIG_LCD is not set # CONFIG_VIDEO_SIMPLE is not set # CONFIG_VIDEO_DT_SIMPLEFB is not set # CONFIG_OSD is not set # CONFIG_SPLASH_SCREEN is not set # CONFIG_VIDEO_VCXK is not set # # VirtIO Drivers # # CONFIG_VIRTIO_MMIO is not set # # 1-Wire support # # CONFIG_W1 is not set # # 1-wire EEPROM support # # CONFIG_W1_EEPROM is not set # # Watchdog Timer Support # CONFIG_WATCHDOG=y CONFIG_WATCHDOG_AUTOSTART=y CONFIG_WATCHDOG_TIMEOUT_MSECS=60000 # CONFIG_IMX_WATCHDOG is not set # CONFIG_ULP_WATCHDOG is not set # CONFIG_DESIGNWARE_WATCHDOG is not set CONFIG_WDT=y # CONFIG_WDT_APPLE is not set # CONFIG_WDT_ASPEED is not set # CONFIG_WDT_AST2600 is not set # CONFIG_WDT_AT91 is not set # CONFIG_WDT_CDNS is not set # CONFIG_WDT_CORTINA is not set # CONFIG_WDT_GPIO is not set # CONFIG_WDT_MAX6370 is not set # CONFIG_WDT_ORION is not set # CONFIG_WDT_SBSA is not set # CONFIG_WDT_SP805 is not set # CONFIG_WDT_STM32MP is not set # CONFIG_XILINX_TB_WATCHDOG is not set # CONFIG_PVBLOCK is not set # CONFIG_PHYS_TO_BUS is not set # # File systems # # CONFIG_FS_BTRFS is not set # CONFIG_FS_CBFS is not set # CONFIG_SPL_FS_CBFS is not set # CONFIG_FS_EXT4 is not set # CONFIG_FS_FAT is not set # CONFIG_FS_JFFS2 is not set # CONFIG_UBIFS_SILENCE_MSG is not set # CONFIG_FS_CRAMFS is not set # CONFIG_YAFFS2 is not set # CONFIG_FS_SQUASHFS is not set # CONFIG_FS_EROFS is not set # # Library routines # # CONFIG_ADDR_MAP is not set # CONFIG_PHYSMEM is not set # CONFIG_BCH is not set # CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED is not set CONFIG_CHARSET=y # CONFIG_DYNAMIC_CRC_TABLE is not set CONFIG_HAVE_PRIVATE_LIBGCC=y CONFIG_PRINTF=y CONFIG_SPRINTF=y CONFIG_STRTO=y CONFIG_USE_PRIVATE_LIBGCC=y CONFIG_SYS_HZ=1000 # CONFIG_PANIC_HANG is not set # CONFIG_REGEX is not set CONFIG_LIB_RAND=y # CONFIG_LIB_HW_RAND is not set CONFIG_SUPPORT_ACPI=y # CONFIG_GENERATE_ACPI_TABLE is not set # CONFIG_SPL_TINY_MEMSET is not set # CONFIG_TPL_TINY_MEMSET is not set # CONFIG_BITREVERSE is not set # CONFIG_TRACE is not set # CONFIG_CIRCBUF is not set # CONFIG_CMD_DHRYSTONE is not set # # Security support # # CONFIG_AES is not set # CONFIG_ECDSA is not set # CONFIG_RSA is not set # CONFIG_TPM is not set # # Android Verified Boot # # # Hashing Support # # CONFIG_BLAKE2 is not set # CONFIG_SHA1 is not set # CONFIG_SHA256 is not set # CONFIG_SHA512 is not set # CONFIG_SHA384 is not set # CONFIG_SHA_HW_ACCEL is not set # CONFIG_MD5 is not set CONFIG_CRC32=y # # Compression Support # # CONFIG_LZ4 is not set # CONFIG_LZMA is not set # CONFIG_LZO is not set # CONFIG_GZIP is not set # CONFIG_ZLIB_UNCOMPRESS is not set # CONFIG_BZIP2 is not set CONFIG_ZLIB=y # CONFIG_ZSTD is not set # CONFIG_SPL_LZ4 is not set # CONFIG_SPL_LZMA is not set # CONFIG_VPL_LZMA is not set # CONFIG_SPL_LZO is not set # CONFIG_SPL_GZIP is not set # CONFIG_SPL_ZSTD is not set # CONFIG_ERRNO_STR is not set CONFIG_HEXDUMP=y # CONFIG_GETOPT is not set CONFIG_OF_LIBFDT=y CONFIG_OF_LIBFDT_ASSUME_MASK=0 CONFIG_OF_LIBFDT_OVERLAY=y # CONFIG_VPL_OF_LIBFDT is not set # CONFIG_FDT_FIXUP_PARTITIONS is not set # # System tables # # CONFIG_LIB_RATIONAL is not set # CONFIG_SMBIOS_PARSER is not set # CONFIG_EFI_LOADER is not set # CONFIG_OPTEE_LIB is not set # CONFIG_OPTEE_IMAGE is not set # CONFIG_BOOTM_OPTEE is not set # CONFIG_TEST_FDTDEC is not set # CONFIG_PHANDLE_CHECK_SEQ is not set # CONFIG_UNIT_TEST is not set # CONFIG_SPL_UNIT_TEST is not set # # Tools options # CONFIG_MKIMAGE_DTC_PATH="dtc" # CONFIG_TOOLS_MKEFICAPSULE is not set 根据以上代码,其中,CONFIG_ENV_OFFSET_REDUND=0x280000表示什么?
08-02
/* * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Unlicense OR CC0-1.0 */ /**************************************************************************** * This is a demo for bluetooth config wifi connection to ap. You can config ESP32 to connect a softap * or config ESP32 as a softap to be connected by other device. APP can be downloaded from github * android source code: https://github.com/EspressifApp/EspBlufi * iOS source code: https://github.com/EspressifApp/EspBlufiForiOS ****************************************************************************/ #include <stdio.h> #include <stdlib.h> #include <string.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "freertos/event_groups.h" #include "esp_system.h" #include "esp_mac.h" #include "esp_wifi.h" #include "esp_event.h" #include "esp_sntp.h" #include "time.h" #include "esp_log.h" #include "nvs_flash.h" #if CONFIG_BT_CONTROLLER_ENABLED || !CONFIG_BT_NIMBLE_ENABLED #include "esp_bt.h" #endif #include "esp_blufi_api.h" #include "blufi_example.h" #include "esp_blufi.h" #include "wifi-bt.h" #include "esp_wifi.h" #include "esp_bt_main.h" #include "esp_bt_device.h" #define EXAMPLE_WIFI_CONNECTION_MAXIMUM_RETRY CONFIG_EXAMPLE_WIFI_CONNECTION_MAXIMUM_RETRY #define EXAMPLE_INVALID_REASON 255 #define EXAMPLE_INVALID_RSSI -128 #if CONFIG_ESP_WIFI_AUTH_OPEN #define EXAMPLE_WIFI_SCAN_AUTH_MODE_THRESHOLD WIFI_AUTH_OPEN #elif CONFIG_ESP_WIFI_AUTH_WEP #define EXAMPLE_WIFI_SCAN_AUTH_MODE_THRESHOLD WIFI_AUTH_WEP #elif CONFIG_ESP_WIFI_AUTH_WPA_PSK #define EXAMPLE_WIFI_SCAN_AUTH_MODE_THRESHOLD WIFI_AUTH_WPA_PSK #elif CONFIG_ESP_WIFI_AUTH_WPA2_PSK #define EXAMPLE_WIFI_SCAN_AUTH_MODE_THRESHOLD WIFI_AUTH_WPA2_PSK #elif CONFIG_ESP_WIFI_AUTH_WPA_WPA2_PSK #define EXAMPLE_WIFI_SCAN_AUTH_MODE_THRESHOLD WIFI_AUTH_WPA_WPA2_PSK #elif CONFIG_ESP_WIFI_AUTH_WPA3_PSK #define EXAMPLE_WIFI_SCAN_AUTH_MODE_THRESHOLD WIFI_AUTH_WPA3_PSK #elif CONFIG_ESP_WIFI_AUTH_WPA2_WPA3_PSK #define EXAMPLE_WIFI_SCAN_AUTH_MODE_THRESHOLD WIFI_AUTH_WPA2_WPA3_PSK #elif CONFIG_ESP_WIFI_AUTH_WAPI_PSK #define EXAMPLE_WIFI_SCAN_AUTH_MODE_THRESHOLD WIFI_AUTH_WAPI_PSK #endif #define EXAMPLE_WIFI_SCAN_AUTH_MODE_THRESHOLD WIFI_AUTH_WPA2_PSK static void example_event_callback(esp_blufi_cb_event_t event, esp_blufi_cb_param_t *param); #define WIFI_LIST_NUM 10 static wifi_config_t sta_config; static wifi_config_t ap_config; /* FreeRTOS event group to signal when we are connected & ready to make a request */ static EventGroupHandle_t wifi_event_group; /* The event group allows multiple bits for each event, but we only care about one event - are we connected to the AP with an IP? */ const int CONNECTED_BIT = BIT0; static uint8_t example_wifi_retry = 0; TaskHandle_t scan_task_handle = NULL; /* store the station info for send back to phone */ static bool gl_sta_connected = false; static bool gl_sta_got_ip = false; static bool ble_is_connected = false; static uint8_t gl_sta_bssid[6]; static uint8_t gl_sta_ssid[32]; static int gl_sta_ssid_len; static wifi_sta_list_t gl_sta_list; static bool gl_sta_is_connecting = false; static esp_blufi_extra_info_t gl_sta_conn_info; static void example_record_wifi_conn_info(int rssi, uint8_t reason) { memset(&gl_sta_conn_info, 0, sizeof(esp_blufi_extra_info_t)); if (gl_sta_is_connecting) { gl_sta_conn_info.sta_max_conn_retry_set = true; gl_sta_conn_info.sta_max_conn_retry = EXAMPLE_WIFI_CONNECTION_MAXIMUM_RETRY; } else { gl_sta_conn_info.sta_conn_rssi_set = true; gl_sta_conn_info.sta_conn_rssi = rssi; gl_sta_conn_info.sta_conn_end_reason_set = true; gl_sta_conn_info.sta_conn_end_reason = reason; } } static void example_wifi_connect(void) { example_wifi_retry = 0; gl_sta_is_connecting = (esp_wifi_connect() == ESP_OK); example_record_wifi_conn_info(EXAMPLE_INVALID_RSSI, EXAMPLE_INVALID_REASON); } static bool example_wifi_reconnect(void) { bool ret; if (gl_sta_is_connecting && example_wifi_retry++ < EXAMPLE_WIFI_CONNECTION_MAXIMUM_RETRY) { BLUFI_INFO("BLUFI WiFi starts reconnection\n"); gl_sta_is_connecting = (esp_wifi_connect() == ESP_OK); example_record_wifi_conn_info(EXAMPLE_INVALID_RSSI, EXAMPLE_INVALID_REASON); ret = true; } else { ret = false; } return ret; } static int softap_get_current_connection_number(void) { esp_err_t ret; ret = esp_wifi_ap_get_sta_list(&gl_sta_list); if (ret == ESP_OK) { return gl_sta_list.num; } return 0; } static void ip_event_handler(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data) { wifi_mode_t mode; switch (event_id) { case IP_EVENT_STA_GOT_IP: { esp_blufi_extra_info_t info; xEventGroupSetBits(wifi_event_group, CONNECTED_BIT); esp_wifi_get_mode(&mode); memset(&info, 0, sizeof(esp_blufi_extra_info_t)); memcpy(info.sta_bssid, gl_sta_bssid, 6); info.sta_bssid_set = true; info.sta_ssid = gl_sta_ssid; info.sta_ssid_len = gl_sta_ssid_len; gl_sta_got_ip = true; if (ble_is_connected == true) { esp_blufi_send_wifi_conn_report(mode, ESP_BLUFI_STA_CONN_SUCCESS, softap_get_current_connection_number(), &info); } else { BLUFI_INFO("BLUFI BLE is not connected yet\n"); } break; } default: break; } return; } static void wifi_event_handler(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data) { wifi_event_sta_connected_t *event; wifi_event_sta_disconnected_t *disconnected_event; wifi_mode_t mode; switch (event_id) { case WIFI_EVENT_STA_START: example_wifi_connect(); break; case WIFI_EVENT_STA_CONNECTED: gl_sta_connected = true; gl_sta_is_connecting = false; net_status = true; event = (wifi_event_sta_connected_t*) event_data; memcpy(gl_sta_bssid, event->bssid, 6); memcpy(gl_sta_ssid, event->ssid, event->ssid_len); gl_sta_ssid_len = event->ssid_len; break; case WIFI_EVENT_STA_DISCONNECTED: /* Only handle reconnection during connecting */ if (gl_sta_connected == false && example_wifi_reconnect() == false) { gl_sta_is_connecting = false; disconnected_event = (wifi_event_sta_disconnected_t*) event_data; example_record_wifi_conn_info(disconnected_event->rssi, disconnected_event->reason); } /* This is a workaround as ESP32 WiFi libs don't currently auto-reassociate. */ gl_sta_connected = false; gl_sta_got_ip = false; memset(gl_sta_ssid, 0, 32); memset(gl_sta_bssid, 0, 6); gl_sta_ssid_len = 0; xEventGroupClearBits(wifi_event_group, CONNECTED_BIT); break; case WIFI_EVENT_AP_START: esp_wifi_get_mode(&mode); /* TODO: get config or information of softap, then set to report extra_info */ if (ble_is_connected == true) { if (gl_sta_connected) { esp_blufi_extra_info_t info; memset(&info, 0, sizeof(esp_blufi_extra_info_t)); memcpy(info.sta_bssid, gl_sta_bssid, 6); info.sta_bssid_set = true; info.sta_ssid = gl_sta_ssid; info.sta_ssid_len = gl_sta_ssid_len; esp_blufi_send_wifi_conn_report(mode, gl_sta_got_ip ? ESP_BLUFI_STA_CONN_SUCCESS : ESP_BLUFI_STA_NO_IP, softap_get_current_connection_number(), &info); } else if (gl_sta_is_connecting) { esp_blufi_send_wifi_conn_report(mode, ESP_BLUFI_STA_CONNECTING, softap_get_current_connection_number(), &gl_sta_conn_info); } else { esp_blufi_send_wifi_conn_report(mode, ESP_BLUFI_STA_CONN_FAIL, softap_get_current_connection_number(), &gl_sta_conn_info); } } else { BLUFI_INFO("BLUFI BLE is not connected yet\n"); } break; case WIFI_EVENT_SCAN_DONE: { uint16_t apCount = 0; esp_wifi_scan_get_ap_num(&apCount); if (apCount == 0) { BLUFI_INFO("Nothing AP found"); break; } wifi_ap_record_t *ap_list = (wifi_ap_record_t *)malloc(sizeof(wifi_ap_record_t) * apCount); if (!ap_list) { BLUFI_ERROR("malloc error, ap_list is NULL"); esp_wifi_clear_ap_list(); break; } ESP_ERROR_CHECK(esp_wifi_scan_get_ap_records(&apCount, ap_list)); esp_blufi_ap_record_t * blufi_ap_list = (esp_blufi_ap_record_t *)malloc(apCount * sizeof(esp_blufi_ap_record_t)); if (!blufi_ap_list) { if (ap_list) { free(ap_list); } BLUFI_ERROR("malloc error, blufi_ap_list is NULL"); break; } for (int i = 0; i < apCount; ++i) { blufi_ap_list[i].rssi = ap_list[i].rssi; memcpy(blufi_ap_list[i].ssid, ap_list[i].ssid, sizeof(ap_list[i].ssid)); } if (ble_is_connected == true) { esp_blufi_send_wifi_list(apCount, blufi_ap_list); } else { BLUFI_INFO("BLUFI BLE is not connected yet\n"); } esp_wifi_scan_stop(); free(ap_list); free(blufi_ap_list); break; } case WIFI_EVENT_AP_STACONNECTED: { wifi_event_ap_staconnected_t* event = (wifi_event_ap_staconnected_t*) event_data; BLUFI_INFO("station "MACSTR" join, AID=%d", MAC2STR(event->mac), event->aid); break; } case WIFI_EVENT_AP_STADISCONNECTED: { wifi_event_ap_stadisconnected_t* event = (wifi_event_ap_stadisconnected_t*) event_data; BLUFI_INFO("station "MACSTR" leave, AID=%d, reason=%d", MAC2STR(event->mac), event->aid, event->reason); break; } default: break; } return; } static void initialise_wifi(void) { ESP_ERROR_CHECK(esp_netif_init()); wifi_event_group = xEventGroupCreate(); ESP_ERROR_CHECK(esp_event_loop_create_default()); esp_netif_t *sta_netif = esp_netif_create_default_wifi_sta(); assert(sta_netif); esp_netif_t *ap_netif = esp_netif_create_default_wifi_ap(); assert(ap_netif); ESP_ERROR_CHECK(esp_event_handler_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &wifi_event_handler, NULL)); ESP_ERROR_CHECK(esp_event_handler_register(IP_EVENT, IP_EVENT_STA_GOT_IP, &ip_event_handler, NULL)); wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); ESP_ERROR_CHECK( esp_wifi_init(&cfg) ); ESP_ERROR_CHECK( esp_wifi_set_mode(WIFI_MODE_STA) ); example_record_wifi_conn_info(EXAMPLE_INVALID_RSSI, EXAMPLE_INVALID_REASON); ESP_ERROR_CHECK( esp_wifi_start() ); } static esp_blufi_callbacks_t example_callbacks = { .event_cb = example_event_callback, .negotiate_data_handler = blufi_dh_negotiate_data_handler, .encrypt_func = blufi_aes_encrypt, .decrypt_func = blufi_aes_decrypt, .checksum_func = blufi_crc_checksum, }; // 获取当前STA模式的IP地址 static char* get_sta_ip_string(void) { static char ip_str[16] = {0}; esp_netif_ip_info_t ip_info; esp_netif_t* netif = esp_netif_get_handle_from_ifkey("WIFI_STA_DEF"); if (netif && esp_netif_get_ip_info(netif, &ip_info) == ESP_OK) { snprintf(ip_str, sizeof(ip_str), IPSTR, IP2STR(&ip_info.ip)); return ip_str; } return "0.0.0.0"; } static void example_event_callback(esp_blufi_cb_event_t event, esp_blufi_cb_param_t *param) { /* actually, should post to blufi_task handle the procedure, * now, as a example, we do it more simply */ switch (event) { case ESP_BLUFI_EVENT_INIT_FINISH: BLUFI_INFO("BLUFI init finish\n"); esp_blufi_adv_start(); break; case ESP_BLUFI_EVENT_DEINIT_FINISH: BLUFI_INFO("BLUFI deinit finish\n"); break; case ESP_BLUFI_EVENT_BLE_CONNECT: BLUFI_INFO("BLUFI ble connect\n"); ble_is_connected = true; esp_blufi_adv_stop(); blufi_security_init(); break; case ESP_BLUFI_EVENT_BLE_DISCONNECT: BLUFI_INFO("BLUFI ble disconnect\n"); ble_is_connected = false; blufi_security_deinit(); esp_blufi_adv_start(); break; case ESP_BLUFI_EVENT_SET_WIFI_OPMODE: BLUFI_INFO("BLUFI Set WIFI opmode %d\n", param->wifi_mode.op_mode); ESP_ERROR_CHECK( esp_wifi_set_mode(param->wifi_mode.op_mode) ); break; case ESP_BLUFI_EVENT_REQ_CONNECT_TO_AP: BLUFI_INFO("BLUFI request wifi connect to AP\n"); /* there is no wifi callback when the device has already connected to this wifi so disconnect wifi before connection. */ esp_wifi_disconnect(); example_wifi_connect(); break; case ESP_BLUFI_EVENT_REQ_DISCONNECT_FROM_AP: BLUFI_INFO("BLUFI request wifi disconnect from AP\n"); esp_wifi_disconnect(); break; case ESP_BLUFI_EVENT_REPORT_ERROR: BLUFI_ERROR("BLUFI report error, error code %d\n", param->report_error.state); esp_blufi_send_error_info(param->report_error.state); break; case ESP_BLUFI_EVENT_GET_WIFI_STATUS: { wifi_mode_t mode; esp_blufi_extra_info_t info; esp_wifi_get_mode(&mode); if (gl_sta_connected) { memset(&info, 0, sizeof(esp_blufi_extra_info_t)); memcpy(info.sta_bssid, gl_sta_bssid, 6); info.sta_bssid_set = true; info.sta_ssid = gl_sta_ssid; info.sta_ssid_len = gl_sta_ssid_len; esp_blufi_send_wifi_conn_report(mode, gl_sta_got_ip ? ESP_BLUFI_STA_CONN_SUCCESS : ESP_BLUFI_STA_NO_IP, softap_get_current_connection_number(), &info); // 新增IP地址上报 if (gl_sta_got_ip) { const char *ip = get_sta_ip_string(); // 格式: "IP:192.168.1.100" char ip_report[20]; snprintf(ip_report, sizeof(ip_report), "IP:%s", ip); esp_blufi_send_custom_data((uint8_t*)ip_report, strlen(ip_report)); BLUFI_INFO("Reported IP: %s\n", ip); } } else if (gl_sta_is_connecting) { esp_blufi_send_wifi_conn_report(mode, ESP_BLUFI_STA_CONNECTING, softap_get_current_connection_number(), &gl_sta_conn_info); } else { net_status = false; esp_blufi_send_wifi_conn_report(mode, ESP_BLUFI_STA_CONN_FAIL, softap_get_current_connection_number(), &gl_sta_conn_info); } BLUFI_INFO("BLUFI get wifi status from AP\n"); break; } case ESP_BLUFI_EVENT_RECV_SLAVE_DISCONNECT_BLE: BLUFI_INFO("blufi close a gatt connection"); esp_blufi_disconnect(); break; case ESP_BLUFI_EVENT_DEAUTHENTICATE_STA: /* TODO */ break; case ESP_BLUFI_EVENT_RECV_STA_BSSID: memcpy(sta_config.sta.bssid, param->sta_bssid.bssid, 6); sta_config.sta.bssid_set = 1; esp_wifi_set_config(WIFI_IF_STA, &sta_config); BLUFI_INFO("Recv STA BSSID %s\n", sta_config.sta.ssid); break; case ESP_BLUFI_EVENT_RECV_STA_SSID: if (param->sta_ssid.ssid_len >= sizeof(sta_config.sta.ssid)/sizeof(sta_config.sta.ssid[0])) { esp_blufi_send_error_info(ESP_BLUFI_DATA_FORMAT_ERROR); BLUFI_INFO("Invalid STA SSID\n"); break; } strncpy((char *)sta_config.sta.ssid, (char *)param->sta_ssid.ssid, param->sta_ssid.ssid_len); sta_config.sta.ssid[param->sta_ssid.ssid_len] = '\0'; esp_wifi_set_config(WIFI_IF_STA, &sta_config); BLUFI_INFO("Recv STA SSID %s\n", sta_config.sta.ssid); break; case ESP_BLUFI_EVENT_RECV_STA_PASSWD: if (param->sta_passwd.passwd_len >= sizeof(sta_config.sta.password)/sizeof(sta_config.sta.password[0])) { esp_blufi_send_error_info(ESP_BLUFI_DATA_FORMAT_ERROR); BLUFI_INFO("Invalid STA PASSWORD\n"); break; } strncpy((char *)sta_config.sta.password, (char *)param->sta_passwd.passwd, param->sta_passwd.passwd_len); sta_config.sta.password[param->sta_passwd.passwd_len] = '\0'; sta_config.sta.threshold.authmode = EXAMPLE_WIFI_SCAN_AUTH_MODE_THRESHOLD; esp_wifi_set_config(WIFI_IF_STA, &sta_config); BLUFI_INFO("Recv STA PASSWORD %s\n", sta_config.sta.password); break; case ESP_BLUFI_EVENT_RECV_SOFTAP_SSID: if (param->softap_ssid.ssid_len >= sizeof(ap_config.ap.ssid)/sizeof(ap_config.ap.ssid[0])) { esp_blufi_send_error_info(ESP_BLUFI_DATA_FORMAT_ERROR); BLUFI_INFO("Invalid SOFTAP SSID\n"); break; } strncpy((char *)ap_config.ap.ssid, (char *)param->softap_ssid.ssid, param->softap_ssid.ssid_len); ap_config.ap.ssid[param->softap_ssid.ssid_len] = '\0'; ap_config.ap.ssid_len = param->softap_ssid.ssid_len; esp_wifi_set_config(WIFI_IF_AP, &ap_config); BLUFI_INFO("Recv SOFTAP SSID %s, ssid len %d\n", ap_config.ap.ssid, ap_config.ap.ssid_len); break; case ESP_BLUFI_EVENT_RECV_SOFTAP_PASSWD: if (param->softap_passwd.passwd_len >= sizeof(ap_config.ap.password)/sizeof(ap_config.ap.password[0])) { esp_blufi_send_error_info(ESP_BLUFI_DATA_FORMAT_ERROR); BLUFI_INFO("Invalid SOFTAP PASSWD\n"); break; } strncpy((char *)ap_config.ap.password, (char *)param->softap_passwd.passwd, param->softap_passwd.passwd_len); ap_config.ap.password[param->softap_passwd.passwd_len] = '\0'; esp_wifi_set_config(WIFI_IF_AP, &ap_config); BLUFI_INFO("Recv SOFTAP PASSWORD %s len = %d\n", ap_config.ap.password, param->softap_passwd.passwd_len); break; case ESP_BLUFI_EVENT_RECV_SOFTAP_MAX_CONN_NUM: if (param->softap_max_conn_num.max_conn_num > 4) { return; } ap_config.ap.max_connection = param->softap_max_conn_num.max_conn_num; esp_wifi_set_config(WIFI_IF_AP, &ap_config); BLUFI_INFO("Recv SOFTAP MAX CONN NUM %d\n", ap_config.ap.max_connection); break; case ESP_BLUFI_EVENT_RECV_SOFTAP_AUTH_MODE: if (param->softap_auth_mode.auth_mode >= WIFI_AUTH_MAX) { return; } ap_config.ap.authmode = param->softap_auth_mode.auth_mode; esp_wifi_set_config(WIFI_IF_AP, &ap_config); BLUFI_INFO("Recv SOFTAP AUTH MODE %d\n", ap_config.ap.authmode); break; case ESP_BLUFI_EVENT_RECV_SOFTAP_CHANNEL: if (param->softap_channel.channel > 13) { return; } ap_config.ap.channel = param->softap_channel.channel; esp_wifi_set_config(WIFI_IF_AP, &ap_config); BLUFI_INFO("Recv SOFTAP CHANNEL %d\n", ap_config.ap.channel); break; case ESP_BLUFI_EVENT_GET_WIFI_LIST:{ wifi_scan_config_t scanConf = { .ssid = NULL, .bssid = NULL, .channel = 0, .show_hidden = false }; esp_err_t ret = esp_wifi_scan_start(&scanConf, true); ESP_LOGI("esp-wifi", "start wifi scan"); if (ret != ESP_OK) { esp_blufi_send_error_info(ESP_BLUFI_WIFI_SCAN_FAIL); } break; } case ESP_BLUFI_EVENT_RECV_CUSTOM_DATA: BLUFI_INFO("Recv Custom Data %" PRIu32 "\n", param->custom_data.data_len); ESP_LOG_BUFFER_HEX("Custom Data", param->custom_data.data, param->custom_data.data_len); break; case ESP_BLUFI_EVENT_RECV_USERNAME: /* Not handle currently */ break; case ESP_BLUFI_EVENT_RECV_CA_CERT: /* Not handle currently */ break; case ESP_BLUFI_EVENT_RECV_CLIENT_CERT: /* Not handle currently */ break; case ESP_BLUFI_EVENT_RECV_SERVER_CERT: /* Not handle currently */ break; case ESP_BLUFI_EVENT_RECV_CLIENT_PRIV_KEY: /* Not handle currently */ break;; case ESP_BLUFI_EVENT_RECV_SERVER_PRIV_KEY: /* Not handle currently */ break; default: break; } } void blufi_wifi_config_init(void) { esp_err_t ret; // Initialize NVS ret = nvs_flash_init(); if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { ESP_ERROR_CHECK(nvs_flash_erase()); ret = nvs_flash_init(); } ESP_ERROR_CHECK(ret); // Initialize WiFi initialise_wifi(); // Initialize BLUFI controller and callback functions #if CONFIG_BT_CONTROLLER_ENABLED || !CONFIG_BT_NIMBLE_ENABLED ret = esp_blufi_controller_init(); if (ret) { BLUFI_ERROR("%s BLUFI controller init failed: %s\n", __func__, esp_err_to_name(ret)); return; } #endif ret = esp_blufi_host_and_cb_init(&example_callbacks); if (ret) { BLUFI_ERROR("%s initialise failed: %s\n", __func__, esp_err_to_name(ret)); return; } BLUFI_INFO("BLUFI VERSION %04x\n", esp_blufi_get_version()); } void get_wifi_ip_adress(void) { // 获取 IP 地址 esp_netif_t* esp_netif = esp_netif_get_handle_from_ifkey("WIFI_STA_DEF"); esp_netif_ip_info_t ip_info; if (esp_netif_get_ip_info(esp_netif, &ip_info) == ESP_OK) { ESP_LOGI("wifi_info", "IP Address: " IPSTR, IP2STR(&ip_info.ip)); ESP_LOGI("wifi_info", "Netmask: " IPSTR, IP2STR(&ip_info.netmask)); ESP_LOGI("wifi_info", "Gateway: " IPSTR, IP2STR(&ip_info.gw)); } else { ESP_LOGE("wifi_info", "Failed to get IP info"); } } // 初始化 NTP 客户端并同步时间 bool initialize_sntp_and_sync_time(void) { ESP_LOGI("app_main", "Initializing SNTP"); esp_sntp_setoperatingmode(SNTP_OPMODE_POLL); esp_sntp_setservername(0, "pool.ntp.org"); esp_sntp_set_time_sync_notification_cb(NULL); esp_sntp_init(); // 设置时区为东八区(北京时间) setenv("TZ", "Asia/Shanghai", 1); tzset(); // 等待时间同步 int retry = 0; const int retry_count = 10; while (esp_sntp_get_sync_status() == SNTP_SYNC_STATUS_RESET && ++retry < retry_count) { ESP_LOGI("NTP", "Waiting for time sync... %d", retry); vTaskDelay(pdMS_TO_TICKS(750)); } if (retry == retry_count) { ESP_LOGE("NTP", "Could not sync time with NTP server"); return false; } // 获取当前时间 struct tm timeinfo; time_t now = time(NULL); localtime_r(&now, &timeinfo); // 格式化日期和时间 char datetime_str[30]; strftime(datetime_str, sizeof(datetime_str), "%Y-%m-%d %H:%M:%S", &timeinfo); // 打印当前时间 ESP_LOGI("NTP", "Current time: %s", datetime_str); return true; } char FW_version[] = "Deskbooking(ESP32-C3)_SDK_v0.1_20250801"; void task_function(void *pvParameter) { uint8_t CPU_RunInfo[400]; while (1) { memset(CPU_RunInfo, 0, 400); vTaskGetRunTimeStats((char *)&CPU_RunInfo); printf("task_name run_cnt usage_rate \r\n"); printf("%s", CPU_RunInfo); printf("----------------------------------------------------\r\n"); vTaskDelay(500 / portTICK_PERIOD_MS); } } void print_wifi_and_bt_macAdress(){ uint8_t mac[6]; esp_wifi_get_mac(WIFI_IF_STA, mac); // 获取 STA 接口的 MAC 地址 ESP_LOGI("MAC", "Station MAC address: %02x:%02x:%02x:%02x:%02x:%02x", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); ESP_LOGI("app_main", "FW version: %s",FW_version); const uint8_t *bd_addr = esp_bt_dev_get_address(); // 打印蓝牙地址 char addr_str[18]; sprintf(addr_str, "%02x:%02x:%02x:%02x:%02x:%02x", bd_addr[0], bd_addr[1], bd_addr[2], bd_addr[3], bd_addr[4], bd_addr[5]); ESP_LOGI("app_main", "Bluetooth Address: %s", addr_str); } #define TAG "BLE_SCANNER" static bool ble_scanning = false; // 运行标志位 static esp_ble_scan_params_t ble_scan_params = { .scan_type = BLE_SCAN_TYPE_ACTIVE, .own_addr_type = BLE_ADDR_TYPE_PUBLIC, .scan_filter_policy = BLE_SCAN_FILTER_ALLOW_ALL, .scan_interval = 0x50, .scan_window = 0x30, .scan_duplicate = BLE_SCAN_DUPLICATE_DISABLE }; ble_random_device_t g_random_dev = {0}; /* 供 REST 接口读取 */ const ble_random_device_t *gap_get_random_device(void) { return &g_random_dev; } static void gap_event_handler(esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param_t *param) { switch (event) { case ESP_GAP_BLE_SCAN_PARAM_SET_COMPLETE_EVT: if (ble_scanning) { esp_ble_gap_start_scanning(2); // 2 秒 } break; case ESP_GAP_BLE_SCAN_START_COMPLETE_EVT: if (param->scan_start_cmpl.status == ESP_BT_STATUS_SUCCESS) { ESP_LOGI(TAG, "Scan started"); ble_scanning = true; } else { ESP_LOGE(TAG, "Scan start failed"); ble_scanning = false; } break; case ESP_GAP_BLE_SCAN_RESULT_EVT: { if (param->scan_rst.search_evt != ESP_GAP_SEARCH_INQ_RES_EVT) break; /* 打印设备信息 */ ESP_LOGI(TAG, "Device found: " ESP_BD_ADDR_STR, ESP_BD_ADDR_HEX(param->scan_rst.bda)); uint8_t *adv_name = NULL; uint8_t adv_name_len = 0; adv_name = esp_ble_resolve_adv_data_by_type( param->scan_rst.ble_adv, param->scan_rst.adv_data_len + param->scan_rst.scan_rsp_len, ESP_BLE_AD_TYPE_NAME_CMPL, &adv_name_len); if (adv_name) { ESP_LOGI(TAG, " Name: %.*s", adv_name_len, adv_name); } else { ESP_LOGI(TAG, " Name: <unknown>"); } ESP_LOGI(TAG, " RSSI: %d", param->scan_rst.rssi); /* 25% 概率随机保存到全局变量 */ if ((esp_random() & 0x3) == 0) { memcpy(g_random_dev.bda, param->scan_rst.bda, 6); g_random_dev.rssi = param->scan_rst.rssi; if (adv_name && adv_name_len < sizeof(g_random_dev.name)) { memcpy(g_random_dev.name, adv_name, adv_name_len); g_random_dev.name[adv_name_len] = '\0'; } else { strcpy(g_random_dev.name, "<unknown>"); } } break; } case ESP_GAP_BLE_SCAN_STOP_COMPLETE_EVT: ESP_LOGI(TAG, "Scan stopped"); if (scan_task_handle) { xTaskNotifyGive(scan_task_handle); } ble_scanning = false; vTaskDelay(pdMS_TO_TICKS(500)); esp_blufi_adv_start(); break; default: break; } } int ble_scan = 0; void ble_scan_task(void *param) { scan_task_handle = xTaskGetCurrentTaskHandle(); /* 1. 注册回调(只需一次,也可放在初始化里) */ static bool once = false; if (!once) { esp_ble_gap_register_callback(gap_event_handler); ESP_LOGE(TAG, "ble_scanner_init!"); once = true; } /* 2. 开始扫描 */ esp_ble_gap_set_scan_params(&ble_scan_params); esp_ble_gap_start_scanning(2); // 扫 5 秒 /* 3. 等扫描结束事件 */ ulTaskNotifyTake(pdTRUE, portMAX_DELAY); /* 4. 任务结束,自动销毁 */ ESP_LOGI(TAG, "One-shot BLE scan task exit"); scan_task_handle = NULL; // 任务退出前清理句柄 vTaskDelete(NULL); }为什么我的代码在蓝牙扫描task结束后log不会打印scan stop
最新发布
08-08
2025-07-20 12:45:25.740787 BMC ERROR: ntp_config_utils.c(2061): generate_ntp_conf_noauth: __check_ntp_property_value_is_changed, ret=0, update_flag=0. 2025-07-20 12:45:26.763862 BMC ERROR: ntp_config.c(332): start_ntp_process: Succeed to call start_ntp_process. 2025-07-20 12:47:13.097854 CpuMem ERROR: npu_dump.c(98): Get the NPU object list failed. 2025-07-20 12:47:14.768990 PcieSwitch ERROR: pcie_switch.c(208): Dump pcie switch action info failed! 2025-07-20 12:47:14.770238 PcieSwitch ERROR: pcie_switch.c(214): Dump pcie switch key regs info failed! 2025-07-20 12:47:14.771392 PcieSwitch ERROR: pcie_switch.c(220): Dump pcie switch eeprom info failed! 2025-07-20 12:47:14.772762 PcieSwitch ERROR: pcie_switch.c(226): Dump retimer regs info failed! 2025-07-20 12:47:14.773919 PcieSwitch ERROR: dal_file.c(128): dal_check_real_path:file real path is illegal! 2025-07-20 12:47:14.774286 PcieSwitch ERROR: pcie_switch.c(107): [dump_switch_obj_info]dal_check_real_path fail, ret = 131087. 2025-07-20 12:47:15.820451 diagnose ERROR: blackbox.c(1873): prt_sol_arg:begin solread,filename is /dev/shm/systemcom.dat.cur is 0,index is 0,len is 8388608 2025-07-20 12:47:16.085659 PowerMgnt ERROR: power_black_box.c(561): [get_psu_black_box_data]:get ps0 blackbox information end 2025-07-20 12:47:16.118529 ipmi_app ERROR: ipmbeth_chan_check.c(225): ipmi_app_dump_info end. 2025-07-20 12:47:16.464029 card_manage ERROR: card_collect_log.c(1127): sl200_card_dump_reg_info: sl200 card is not present 2025-07-20 12:47:16.464274 card_manage ERROR: card_manage_module.c(704): Dump PcieCard info failed. 2025-07-20 12:47:16.467206 card_manage ERROR: card_manage_module.c(704): Dump PassThroughCard info failed. 2025-07-20 12:47:16.479401 card_manage ERROR: card_manage_module.c(763): Dump repeater reg info failed, ret is -1. 2025-07-20 12:47:16.481331 card_manage ERROR: card_manage_module.c(769): Dump SAS reg info failed, ret is -1. 2025-07-20 12:47:16.483979 card_manage ERROR: asset_locator.c(1863): nfc_chip_dump_info: Get AssetLocateBoard failed. ret=-2009 2025-07-20 12:47:17.154057 PowerMgnt ERROR: power_black_box.c(561): [get_psu_black_box_data]:get ps1 blackbox information end 2025-07-20 12:47:17.444262 redfish : ERROR: redfish_provider_chassis_pciedevices.c(468): redfish_check_chassis_pciedevice_uri_effective get pciedevice info failed result:1 (repeated 2 times) 2025-07-20 12:47:17.444515 redfish ERROR: redfish_provider.c(7031): get memory object failed,ret = -2009, device num = 255 2025-07-20 12:47:17.448957 redfish ERROR: redfish_provider_chassis_pciedevices.c(468): redfish_check_chassis_pciedevice_uri_effective get pciedevice info failed result:1 2025-07-20 12:47:17.636804 PowerMgnt ERROR: power_monitor_schedule.c(125): [init_psu_input_channel]:ps0 channel_tag:0--input_channel_num:1 2025-07-20 12:47:17.662260 PowerMgnt ERROR: power_info.c(2348): onepower-4 protery Protocol module :1 2025-07-20 12:47:17.662149 PowerMgnt ERROR: power_bbu_module.c(2286): dump_power_export_data_query get BBUModule object list error:-2009 2025-07-20 12:47:17.662551 PowerMgnt ERROR: power_info.c(2348): onepower-5 protery Protocol module :1 2025-07-20 12:47:17.999581 NetConfig ERROR: net_config_dump.c(1046): net_dump_info: net_dump_info start 2025-07-20 12:47:18.002097 NetConfig ERROR: net_lsw.c(904): dump_all_net_lsw_reg: Get LSWConfig failed 2025-07-20 12:47:18.002380 NetConfig ERROR: net_config_dump.c(1061): Dump lsw reg info failed 2025-07-20 12:47:18.187235 NetConfig ERROR: net_config_dump.c(445): __print_ipv4_info: __print_ipv4_backup_ipaddr_info fail, ret = -1 2025-07-20 12:47:18.217747 NetConfig ERROR: net_config_dump.c(642): cp /dev/shm/log/dhcp/* /dev/shm/dump_info_tmp/dump_info/AppDump/NetConfig/. , vos_system_s fail, ret = 1 2025-07-20 12:47:18.218237 NetConfig ERROR: net_config_dump.c(1076): Dump Dhcp info failed 2025-07-20 12:47:18.252735 NetConfig ERROR: net_config_dump.c(722): __get_ncsi_packets_info: bma not present 2025-07-20 12:47:18.372808 PowerMgnt ERROR: power_monitor_schedule.c(125): [init_psu_input_channel]:ps1 channel_tag:0--input_channel_num:1 2025-07-20 12:47:18.912481 BMC : ERROR: bmc_ncsi_intf.c(112): method_set_vmd_state: dfl get IOBoard handle failed, ret = -1 (repeated 9 times) 2025-07-20 12:47:18.912795 BMC ERROR: nand_flash.c(1588): dump_get_nandflash_info START ! 2025-07-20 12:47:18.914900 BMC ERROR: nand_flash.c(1613): dump_get_nandflash_info END, result:0!
07-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值