From d8c84cd5fed12e87581c800bc4a5f6d40137e5ad Mon Sep 17 00:00:00 2001 From: pvvx Date: Tue, 14 Mar 2017 06:34:44 +0300 Subject: [PATCH] Update boot-loader --- .../component/common/utilities/update.c | 2 + .../realtek/8195a/fwlib/ram_lib/rtl_boot.c | 279 +- .../soc/realtek/8195a/fwlib/ram_lib/startup.c | 31 +- .../realtek/8195a/fwlib/rtl8195a/rtl8195a.h | 2 + build/bin/ota.bin | Bin 298060 -> 297980 bytes build/bin/ram_1.p.bin | Bin 14088 -> 7360 bytes build/bin/ram_2.bin | Bin 298024 -> 297944 bytes build/bin/ram_2.ns.bin | Bin 298040 -> 297960 bytes build/bin/ram_2.p.bin | Bin 298040 -> 297960 bytes build/bin/ram_all.bin | Bin 343112 -> 343032 bytes build/obj/build.nmap | 4746 +++++++++-------- flasher.mk | 4 +- flasher/RTL_RunRAM.JLinkScript | 4 +- project/inc/platform_autoconf.h | 2 +- project/src/user/main.c | 8 + sdkbuild.mk | 2 +- sdkset.mk | 2 +- 17 files changed, 2685 insertions(+), 2397 deletions(-) diff --git a/RTL00_SDKV35a/component/common/utilities/update.c b/RTL00_SDKV35a/component/common/utilities/update.c index f2fb17a..9dce4f0 100644 --- a/RTL00_SDKV35a/component/common/utilities/update.c +++ b/RTL00_SDKV35a/component/common/utilities/update.c @@ -38,9 +38,11 @@ * ---------------------------------------------------*/ // This signature can be used to verify the correctness of the image // It will be located in fixed location in application image +/* Moved in main.c #include "section_config.h" SECTION(".custom.validate.rodata") const unsigned char cus_sig[32] = "Customer Signature-modelxxx"; +*/ #endif #else diff --git a/RTL00_SDKV35a/component/soc/realtek/8195a/fwlib/ram_lib/rtl_boot.c b/RTL00_SDKV35a/component/soc/realtek/8195a/fwlib/ram_lib/rtl_boot.c index de853f5..50a4488 100644 --- a/RTL00_SDKV35a/component/soc/realtek/8195a/fwlib/ram_lib/rtl_boot.c +++ b/RTL00_SDKV35a/component/soc/realtek/8195a/fwlib/ram_lib/rtl_boot.c @@ -21,8 +21,27 @@ //#define BOOT_RAM_DATA_SECTION __attribute__((section(".boot.data"))) //#define BOOT_RAM_BSS_SECTION __attribute__((section(".boot.bss"))) +//------------------------------------------------------------------------- +typedef struct _seg_header { + uint32 size; + uint32 ldaddr; +} IMGSEGHEAD, *PIMGSEGHEAD; + +typedef struct _img2_header { + IMGSEGHEAD seg; + uint32 sign[2]; + void (*startfunc)(void); + uint8 rtkwin[7]; + uint8 ver[13]; + uint8 name[32]; +} IMG2HEAD, *PIMG2HEAD; + +#ifndef FLASH_SECTOR_SIZE +#define FLASH_SECTOR_SIZE 4096 +#endif //------------------------------------------------------------------------- // Function declarations +LOCAL void RtlBootToFlash(void); // image1 LOCAL void RtlBootToSram(void); // image1 LOCAL void EnterImage15(void); // image1 LOCAL void JtagOn(void); // image1 @@ -39,11 +58,12 @@ typedef void (*START_FUNC)(void); /* Start table: */ START_RAM_FUN_SECTION RAM_FUNCTION_START_TABLE __ram_start_table_start__ = { - RtlBootToSram + 1, // StartFun(), Run if ( v400001F4 & 0x8000000 ) && ( v40000210 & 0x80000000 ) + RtlBootToFlash + 1, // StartFun(), Run if ( v400001F4 & 0x8000000 ) && ( v40000210 & 0x80000000 ) RtlBootToSram + 1, // PatchWAKE(), Run if ( v40000210 & 0x20000000 ) - RtlBootToSram + 1, //- PatchFun0(), Run if ( v40000210 & 0x10000000 ) - RtlBootToSram + 1, //+ PatchFun1(), Run if ( v400001F4 & 0x8000000 ) && ( v40000210 & 0x8000000 ) - EnterImage15 + 1}; // PatchFun2(), Run for Init console, if ( v40000210 & 0x4000000 ) + RtlBootToSram + 1, // PatchFun0(), Run if ( v40000210 & 0x10000000 ) + RtlBootToSram + 1,// PatchFun1(), Run if ( v400001F4 & 0x8000000 ) && ( v40000210 & 0x8000000 ) + RtlBootToFlash + 1 };// PatchFun2(), Run for Init console, if ( v40000210 & 0x4000000 ) +// EnterImage15 + 1}; // PatchFun2(), Run for Init console, if ( v40000210 & 0x4000000 ) /* Set Debug Flags */ LOCAL void BOOT_RAM_TEXT_SECTION SetDebugFlgs() { @@ -97,11 +117,15 @@ LOCAL void BOOT_RAM_TEXT_SECTION JtagOn(void) { /* Enter Image 1.5 */ LOCAL void BOOT_RAM_TEXT_SECTION EnterImage15(void) { SetDebugFlgs(); - DBG_8195A("\rCPU CLK: %d Hz, SOC FUNC EN: %p\r\n", HalGetCpuClk(), HAL_PERI_ON_READ32(REG_SOC_FUNC_EN)); - DBG_8195A("==!== Enter Image 1.5 ====\nImg2 Sign: %s, InfaStart @ 0x%08x\r\n", + DBG_8195A( + "\n===== Enter SRAM-Boot ====\nImg Sign: %s, Go @ 0x%08x\r\n", &__image2_validate_code__, __image2_entry_func__); +#if CONFIG_DEBUG_LOG > 2 + DBG_8195A("CPU CLK: %d Hz, SOC FUNC EN: %p\r\n", HalGetCpuClk(), + HAL_PERI_ON_READ32(REG_SOC_FUNC_EN)); +#endif if (_strcmp((const char *) &__image2_validate_code__, IMG2_SIGN_TXT)) { - DBG_MISC_ERR("Invalid Image2 Signature!\n"); + DBG_MISC_ERR("Invalid Image Signature!\n"); RtlConsolRam(); } __image2_entry_func__(); @@ -112,14 +136,251 @@ LOCAL void BOOT_RAM_TEXT_SECTION RtlBootToSram(void) { JtagOn(); /* JTAG On */ _memset(&__rom_bss_start__, 0, &__rom_bss_end__ - &__rom_bss_start__); __asm__ __volatile__ ("cpsid f\n"); - HAL_SYS_CTRL_WRITE32(REG_SYS_SYSPLL_CTRL1, HAL_SYS_CTRL_READ32(REG_SYS_SYSPLL_CTRL1) & ( ~BIT_SYS_SYSPLL_DIV5_3)); + HAL_SYS_CTRL_WRITE32(REG_SYS_SYSPLL_CTRL1, + HAL_SYS_CTRL_READ32(REG_SYS_SYSPLL_CTRL1) & ( ~BIT_SYS_SYSPLL_DIV5_3)); HalCpuClkConfig(2); // 41.666666 MHz // HAL_SYS_CTRL_WRITE32(REG_SYS_SYSPLL_CTRL1, HAL_SYS_CTRL_READ32(REG_SYS_SYSPLL_CTRL1) | BIT_SYS_SYSPLL_DIV5_3); // 50.000 MHz VectorTableInitRtl8195A(STACK_TOP); // 0x1FFFFFFC HalInitPlatformLogUartV02(); HalInitPlatformTimerV02(); __asm__ __volatile__ ("cpsie f\n"); + // SdrPowerOff(); + SDR_PIN_FCTRL(OFF); + LDO25M_CTRL(OFF); + HAL_PERI_ON_WRITE32(REG_SOC_FUNC_EN, + HAL_PERI_ON_READ32(REG_SOC_FUNC_EN) | BIT(21)); + SpicInitRtl8195AV02(1, 0); // StartupSpicBaudRate InitBaudRate 1, SpicBitMode 1 StartupSpicBitMode -// HAL_PERI_ON_WRITE32(REG_SOC_FUNC_EN, HAL_PERI_ON_READ32(REG_SOC_FUNC_EN) & 0x1FFFFF); // Clear debug flags EnterImage15(); } + +/*------------------------------------------------------------------------------------- + Копирует данные из области align(4) (flash, registers, ...) в область align(1) (ram) + --------------------------------------------------------------------------------------*/ +LOCAL unsigned int BOOT_RAM_TEXT_SECTION flashcpy(unsigned int faddr, + void *dist, unsigned int size) { + union { + unsigned char uc[4]; + unsigned int ud; + } tmp; + if (faddr < SPI_FLASH_BASE) + faddr += SPI_FLASH_BASE; + unsigned char * pd = (unsigned char *) dist; + unsigned int *p = (unsigned int *) ((unsigned int) faddr & (~3)); + unsigned int xlen = (unsigned int) faddr & 3; + unsigned int len = size; + + if (xlen) { + tmp.ud = *p++; + while (len) { + len--; + *pd++ = tmp.uc[xlen++]; + if (xlen & 4) + break; + }; + }; + xlen = len >> 2; + while (xlen) { + tmp.ud = *p++; + *pd++ = tmp.uc[0]; + *pd++ = tmp.uc[1]; + *pd++ = tmp.uc[2]; + *pd++ = tmp.uc[3]; + xlen--; + }; + if (len & 3) { + tmp.ud = *p; + pd[0] = tmp.uc[0]; + if (len & 2) { + pd[1] = tmp.uc[1]; + if (len & 1) { + pd[2] = tmp.uc[2]; + }; + }; + }; + return size; +} + +enum { + SEG_ID_ERR, + SEG_ID_SRAM, + SEG_ID_TCM, + SEG_ID_SDRAM, + SEG_ID_SOC, + SEG_ID_FLASH, + SEG_ID_CPU, + SEG_ID_ROM, + SEG_ID_MAX +} SEG_ID; + +LOCAL const char * const txt_tab_seg[] = { + "UNK", // 0 + "SRAM", // 1 + "TCM", // 2 + "SDRAM", // 3 + "SOC", // 4 + "FLASH", // 5 + "CPU", // 6 + "ROM" // 7 + }; + +LOCAL const uint32 tab_seg_def[] = { 0x10000000, 0x10070000, 0x1fff0000, + 0x20000000, 0x30000000, 0x30200000, 0x40000000, 0x40800000, 0x98000000, + 0xA0000000, 0xE0000000, 0xE0010000, 0x00000000, 0x00050000 }; + +LOCAL uint32 BOOT_RAM_TEXT_SECTION get_seg_id(uint32 addr, int32 size) { + uint32 ret = SEG_ID_ERR; + uint32 * ptr = &tab_seg_def; + if (size > 0) { + do { + ret++; + if (addr >= ptr[0] && addr + size <= ptr[1]) { + return ret; + }; + ptr += 2; + } while (ret < SEG_ID_MAX); + }; + return 0; +} + +LOCAL uint32 BOOT_RAM_TEXT_SECTION load_img2_head(uint32 faddr, PIMG2HEAD hdr) { + flashcpy(faddr, hdr, sizeof(IMG2HEAD)); + uint32 ret = get_seg_id(hdr->seg.ldaddr, hdr->seg.size); + if (hdr->sign[1] == IMG_SIGN2_RUN) { + if (hdr->sign[0] == IMG_SIGN1_RUN) { + ret |= 1 << 9; + } else if (hdr->sign[0] == IMG_SIGN1_SWP) { + ret |= 1 << 8; + }; + } + if (*(u32 *) (&hdr->rtkwin) == IMG2_SIGN_DW1_TXT) { + ret |= 1 << 10; + }; + return ret; +} + +LOCAL uint32 BOOT_RAM_TEXT_SECTION load_segs(uint32 faddr, PIMG2HEAD hdr, + uint8 flgload) { + uint32 fnextaddr = faddr; + uint8 segnum = 0; + while (1) { + uint32 seg_id = get_seg_id(hdr->seg.ldaddr, hdr->seg.size); + if (flgload && (seg_id == SEG_ID_SRAM || seg_id == SEG_ID_TCM)) { +#if CONFIG_DEBUG_LOG > 1 + DBG_8195A("Load Flash seg%d: 0x%08x -> %s: 0x%08x, size: %d\n", + segnum, faddr, txt_tab_seg[seg_id], hdr->seg.ldaddr, + hdr->seg.size); +#endif + fnextaddr += flashcpy(fnextaddr, hdr->seg.ldaddr, hdr->seg.size); + } else if (seg_id) { +#if CONFIG_DEBUG_LOG > 2 + DBG_8195A("Skip Flash seg%d: 0x%08x -> %s: 0x%08x, size: %d\n", segnum, + faddr, txt_tab_seg[seg_id], hdr->seg.ldaddr, hdr->seg.size); +#endif + fnextaddr += hdr->seg.size; + } else { + break; + } + fnextaddr += flashcpy(fnextaddr, &hdr->seg, sizeof(IMGSEGHEAD)); + segnum++; + } + return fnextaddr; +} + +/*------------------------------------------------------------------------------------- + * 0 - default image (config data + 0), 1 - image N1, 2 - image N2, ... + --------------------------------------------------------------------------------------*/ +LOCAL int BOOT_RAM_TEXT_SECTION loadUserImges(int imgnum) { + IMG2HEAD hdr; + int imagenum = 1; + uint32 faddr = 0xb000; // start image2 in flash + DBG_8195A("Selected Image %d.\n", imgnum); + + while (1) { + faddr = (faddr + FLASH_SECTOR_SIZE - 1) & (~(FLASH_SECTOR_SIZE - 1)); + uint32 img_id = load_img2_head(faddr, &hdr); + if ((img_id >> 8) > 4 || (uint8) img_id != 0) { + faddr = load_segs(faddr + 0x10, &hdr.seg, imagenum == imgnum); + if (imagenum == imgnum) { +// DBG_8195A("Image%d: %s\n", imgnum, hdr.name); + break; + } + imagenum++; + } else if (imagenum) { + DBG_8195A("No Image%d! Trying Image0...\n", imgnum); + // пробуем загрузить image по умолчанию, по записи в секторе установок + flashcpy(FLASH_SYSTEM_DATA_ADDR, &faddr, sizeof(faddr)); + if (faddr < 0x8000000) + faddr += SPI_FLASH_BASE; + if (get_seg_id(faddr, 0x100) == SEG_ID_FLASH) { + imagenum = 0; + imgnum = 0; + } else { + DBG_8195A("No Image0!\n"); + imagenum = -1; + break; + }; + } else { + imagenum = -1; + break; + } + }; + return imagenum; +} +; + +extern PHAL_GPIO_ADAPTER _pHAL_Gpio_Adapter; +extern HAL_GPIO_ADAPTER gBoot_Gpio_Adapter; +//----- IsForceLoadDefaultImg2 +LOCAL uint8 BOOT_RAM_TEXT_SECTION IsForceLoadDefaultImg2(void) { + uint8 gpio_pin[4]; + HAL_GPIO_PIN GPIO_Pin; + HAL_GPIO_PIN_STATE flg; + int result = 0; + flashcpy(FLASH_SYSTEM_DATA_ADDR + 0x08, &gpio_pin, sizeof(gpio_pin)); // config data + 8 + _pHAL_Gpio_Adapter = &gBoot_Gpio_Adapter; + for (int i = 1; i; i--) { + uint8 x = gpio_pin[i]; + result <<= 1; + if (x != 0xff) { + GPIO_Pin.pin_name = HAL_GPIO_GetIPPinName_8195a(x & 0x7F); + if (x & 0x80) { + GPIO_Pin.pin_mode = DIN_PULL_LOW; + flg = GPIO_PIN_HIGH; + } else { + GPIO_Pin.pin_mode = DIN_PULL_HIGH; + flg = GPIO_PIN_LOW; + } + HAL_GPIO_Init_8195a(&GPIO_Pin); + if (HAL_GPIO_ReadPin_8195a(&GPIO_Pin) == flg) { + result |= 1; + } + HAL_GPIO_DeInit_8195a(&GPIO_Pin); + } + } + _pHAL_Gpio_Adapter->IrqHandle.IrqFun = NULL; + return result; +} + +LOCAL void BOOT_RAM_TEXT_SECTION RtlBootToFlash(void) { + + JtagOn(); /* JTAG On */ + SetDebugFlgs(); + DBG_8195A("===== Enter FLASH-Boot ====\n"); + if (HAL_PERI_ON_READ32(REG_SOC_FUNC_EN) & (1 << BIT_SOC_FLASH_EN)) { + SPI_FLASH_PIN_FCTRL(ON); + /* + if(!SpicCmpDataForCalibrationRtl8195A()) { + DBG_8195A("ReInit Spic DIO...\n"); + SpicInitRtl8195AV02(1, SpicDualBitMode); + } + */ + loadUserImges(IsForceLoadDefaultImg2() + 1); + }; + if (_strcmp((const char *) &__image2_validate_code__, IMG2_SIGN_TXT)) { + DBG_8195A("Invalid Image Signature!\n"); + RtlConsolRam(); + } else + DBG_8195A("Go @ 0x%08x\r\n", __image2_entry_func__); + __image2_entry_func__(); +} diff --git a/RTL00_SDKV35a/component/soc/realtek/8195a/fwlib/ram_lib/startup.c b/RTL00_SDKV35a/component/soc/realtek/8195a/fwlib/ram_lib/startup.c index 97c349b..e8a5d4c 100644 --- a/RTL00_SDKV35a/component/soc/realtek/8195a/fwlib/ram_lib/startup.c +++ b/RTL00_SDKV35a/component/soc/realtek/8195a/fwlib/ram_lib/startup.c @@ -42,6 +42,7 @@ extern u8 __bss_start__, __bss_end__; IMAGE2_START_RAM_FUN_SECTION RAM_START_FUNCTION gImage2EntryFun0 = { InfraStart + 1 }; +/* //----- HalNMIHandler_Patch void HalNMIHandler_Patch(void) { DBG_8195A_HAL("%s:NMI Error!\n", __func__); @@ -49,7 +50,6 @@ void HalNMIHandler_Patch(void) { HalWdgIntrHandle(); // ROM: HalWdgIntrHandle = 0x3485; } -/* //----- VectorTableOverrideRtl8195A void INFRA_START_SECTION VectorTableOverrideRtl8195A(u32 StackP) { NewVectorTable[2] = HalNMIHandler_Patch; @@ -100,20 +100,32 @@ __weak int main(void) { DiagPrintf("\r"); pUartLogCtl->ExecuteCmd = 0; } - return 0; } +extern const unsigned char cus_sig[32]; //----- InfraStart void INFRA_START_SECTION InfraStart(void) { - NewVectorTable[2] = HalNMIHandler_Patch; +// NewVectorTable[2] = HalNMIHandler_Patch; +// HAL_SYS_CTRL_WRITE32(REG_SYS_CLK_CTRL0, HAL_SYS_CTRL_READ32(REG_SYS_CLK_CTRL0) | BIT4); + DBG_8195A("===== Enter Image: %s ====\n", cus_sig); +#if CONFIG_DEBUG_LOG > 3 + DBG_8195A("\rCPU CLK: %d Hz, SOC FUNC EN: %p\r\n", HalGetCpuClk(), HAL_PERI_ON_READ32(REG_SOC_FUNC_EN)); +#endif #ifdef CONFIG_TIMER_MODULE HalTimerOpInit_Patch((VOID*) (&HalTimerOp)); #endif -// HAL_SYS_CTRL_WRITE32(REG_SYS_CLK_CTRL0, HAL_SYS_CTRL_READ32(REG_SYS_CLK_CTRL0) | BIT4); - DBG_8195A("==!== Enter Image 2 ====\n"); // ShowRamBuildInfo(); // app_start.c: VOID ShowRamBuildInfo(VOID) memset(&__bss_start__, 0, &__bss_end__ - &__bss_start__); + +//- Должно быть в boot !? +extern HAL_GPIO_ADAPTER gBoot_Gpio_Adapter; + memset(&gBoot_Gpio_Adapter, 0, sizeof(gBoot_Gpio_Adapter)); + _pHAL_Gpio_Adapter = &gBoot_Gpio_Adapter; +//- + + rtl_libc_init(); // ROM Lib C init + int flash_en = HAL_PERI_ON_READ32(REG_SOC_FUNC_EN) & (1 << BIT_SOC_FLASH_EN); if (flash_en) { @@ -129,6 +141,7 @@ void INFRA_START_SECTION InfraStart(void) { }; #endif }; + // Load SpicInitParaAllClk table SpicNVMCalLoadAll(); SpicReadIDRtl8195A(); }; @@ -142,20 +155,17 @@ void INFRA_START_SECTION InfraStart(void) { *((int *) (SYSTEM_CTRL_BASE + REG_SYS_SYSPLL_CTRL1)) &= ~(1 << 17); // REG_SYS_SYSPLL_CTRL1 &= ~BIT_SYS_SYSPLL_DIV5_3 HalCpuClkConfig(CPU_CLOCK_SEL_VALUE); #endif + SDIO_Device_Off(); HalReInitPlatformLogUartV02(); -/* HAL_LOG_UART_ADAPTER pUartAdapter; - pUartAdapter.BaudRate = UART_BAUD_RATE_38400; - HalLogUartSetBaudRate(&pUartAdapter); */ SystemCoreClockUpdate(); SYSPlatformInit(); En32KCalibration(); InitSoCPM(); - SDIO_Device_Off(); VectorTableInitForOSRtl8195A(&vPortSVCHandler, &xPortPendSVHandler, &xPortSysTickHandler); if (flash_en) SpicFlashInitRtl8195A(SpicDualBitMode); // DIO - SPI_FLASH_PIN_FCTRL(OFF); + SPI_FLASH_PIN_FCTRL(OFF); #ifdef CONFIG_SDR_EN // clear SDRAM bss extern u8 __sdram_bss_start__[]; @@ -169,7 +179,6 @@ void INFRA_START_SECTION InfraStart(void) { "bic r0, r0, #7\n" "mov sp, r0\n" ); - rtl_libc_init(); __low_level_init(); main(); } diff --git a/RTL00_SDKV35a/component/soc/realtek/8195a/fwlib/rtl8195a/rtl8195a.h b/RTL00_SDKV35a/component/soc/realtek/8195a/fwlib/rtl8195a/rtl8195a.h index a7f3d27..91c6dc3 100644 --- a/RTL00_SDKV35a/component/soc/realtek/8195a/fwlib/rtl8195a/rtl8195a.h +++ b/RTL00_SDKV35a/component/soc/realtek/8195a/fwlib/rtl8195a/rtl8195a.h @@ -166,6 +166,8 @@ #define IMG_SIGN2_RUN 0x31313738 // "8711" #define IMG_SIGN2_SWP IMG_SIGN2_RUN // "8711" #define IMG2_SIGN_TXT "RTKWin" +#define IMG2_SIGN_DW1_TXT 0x574b5452 // "RTKW" +#define IMG2_SIGN_SW2_TXT 0x6e69 // "in" typedef struct _RAM_FUNCTION_START_TABLE_ { VOID (*RamStartFun) (VOID); // Run for Init console, Run if ( v40000210 & 0x4000000 ) diff --git a/build/bin/ota.bin b/build/bin/ota.bin index 0b16bbbf4245bfd61e90ae42ae9216f608dcf562..88d40fae2385162a5b44108a8f1ac6f92f24b7d7 100644 GIT binary patch delta 16963 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 H@)G?Y)rEN` delta 17002 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 r9pD6DzNlzTQ*qb|oCdxDJU&A=12$kbaH`K4{#u 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 W*|L#-KUxH3C|_=9q%J9)lm7*=pRObT diff --git a/build/bin/ram_2.bin b/build/bin/ram_2.bin index 8ae43ee59b97ef2b82cfdb5e12c311f2b6ec414e..a6e2a2090877ddf9cc45488d3c942ed26b8a807a 100644 GIT binary patch delta 16955 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 Apa1{> delta 16992 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 diff --git a/build/bin/ram_2.ns.bin b/build/bin/ram_2.ns.bin index 3808eecb9a5dd8101c966f3735878442ca1d4060..6c7fe55df4307313c4c7cd549849c875a2a84e93 100644 GIT binary patch delta 16958 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 DB7$~g delta 16997 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 diff --git a/build/bin/ram_2.p.bin b/build/bin/ram_2.p.bin index 77a4f8acad7a12a2ff183f54e4c3ceab5319f9bb..c3d052cce9d0b19afe6208a1603f681b6610d9dd 100644 GIT binary patch delta 16958 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 DB7$~g delta 16997 zcma*O33v_HA2&YVGc#9ixJ*RIN^S%pLN+@U!cB;MDYcXo6>5pK{7S`6ODz+QeXAux zT5&P9G}=|9zk5O`gwu_wQNe%$YN1=HBPEPj0Hs z!d9(gjRWFm&6qiL^0?{211F51l00+P^l=fBr;Z&rY0jKE>*A9}MfQwLib~uvx{gCG zi%jxQ39{98r1fQaEfQNKZAxg7*s`Z&t?kboFFuP%3P|yOk{0We*Sx29O1y()@6oLt z9bJj1!c&Gx>}He15JZsG!`4_($4aN6xa)92ZzYeTkM*r`Bd_Fg3ZuMQi5UqVM^ba7+?9I1 z9N@PtU(pIs{UxY*(>O`GjL814NZJ>=s@zlMZHnfy7bw~?j_pjk?5{-=6X8*`! zlik|)bc^ReH}@;J4*D)nU$=Bg&+&|RbJKLSy5SXv4ECLh<}q4|tAQNj^{dqvxa|eV zTTgixc0JECM1QA7O}BcjzPrX7^sPO}@)M(@cG8N-@)%B{cSV9RcD42x^2yp>q52V2 z)a|7miniH4-@7wo(oX#YpSq^nC^cfI{*BKL^Ej{~ezCr=ZU|v2LB#f#=-ZmCWxk<$i?A2X^O0i-uu5MY79MnU zxuks$lmg}zk~R+T1G)oE^_yWybW*oAO~7$N)4pC$LRBs83q{)mgn}Qaf7*1hc}1n< z)CV`)Y1xI`fv^eRQ#yseZFM$Q-QL14%0$}1*GL<9UD0+y7G6*Etnj{Op%I=}b+!4! z)LEwKz=9!?uu&JNO?pnk}soIT5RqF+P!%y_a5zRbB#Y9N!PxN6CJL-!} z1<2AD5mIGzIxCPj*q+Cw#=NRom> z^(~Qof<)s)L~p38qDFzA3@p>tsLyH(kN*Vz7}d4DX!SNYWdY}aeBdtdC!k!?yGH-e zO0-R!uBz_!xg@(!p=fIp@bw?dQftsez=}GEY7Nr|#|&4S!{c51@tE7x?%b!cb{!C7 z@CejrfpaK34D=+>NXWo%@Hqx5UzW8X;643ntEpz;C9LQ4?yY0IL~PY~4u{V<`^whg z6l4QC7I*{L24n*#fJ?x8_WU+6M7!;3yR8%@3TOd{`iVq8!9!H62-N#CS^HF%G=I=U z;63dn!t*qwi@?{wFF+w6 z`ln2v+cBJZUeWh=9AN5Q&>8oBywM4=Bd`ng9 z2s%kOcQ&lk!KFd7=^aH|CbYmlU>d<+LcFW#qT7pu^PMft{R##q=w5#^gIkLQ<$x=m|2%H9_Wr`LL ztOvdX9xPEbGxY6%KENVi5AYfAD-Z;q7Qhf-Hjn{)2oxZ0t#fE(_$fKj-{xnNQal~$ zCsPyh&`A*w99>MdfL;N8Z#(CuN&13$i5N=qos*g%<=)U2F07|Ip}D1RUl^d?0_W6o77n+# zb&$k7b4hQsD7?bUK6p_r^0Z)B7bCg%3Vq7rX!CdQdjYEM_JfOuvj~yo66OPjTVev# zM9J~i8OsWN|FT!rSu1f{(7l#l z^b>Qc2zw0V{3L1FNF!>u-d?!84ZZTkTZ()7x(E6MFukp4zCa_O6(DLO+!ugP1cm{V zfOWtDKs%-;sl5V6d)u_Lo;I?{s0E#oa>bOs5XGTBZ>?-kCHjSx199|wE8eRFHR}81 z+;quGiLRnaAC%Z9zx7P1`~50KdkT22R*!}akrLs#|A^i=PzZ>1FdjvfvlOL_-dsrN`LSa)w&pr&A+ zSfMxC*v8VPSkfN2ByBP<-#%gEJ!bw#d};GFQjb5yB0!JW`WmI!H*fuxm`{;?_V%}k za&+2x$ZK8`RZ9mp0ds&fJ!fYF+N*!Rb1Ln%_udsw>ew(<+ojLn{XX+}$KGPk2?EuB zdG`ZB_V1l7Nd0}&DOq2)Z?QQQ&Xa%?J!pTtn&Rfh?eAO3o!Z~Ik}KUm1dSPdAg1=; z5%A4YNlSc3-*RBO$+kw(;?~$}XKbXJqcIN(c@WwS-HC&(nYse*tMtM{c2#KS=m!rs zWLeMj&kx(IqI>4SEcaBB{6{NEtT1i5|LD|&0!gBo(9h9ZWi_OE`b$|2aGaaffoAH* zvvO5ogZy4N&9m=&Z#=1@+_84ABNxeQ6>OqNp-KZ?Yk!bEkZ6g$lYI=Mbba@6UEK?P zhTiVP4D?^ti6-d3neCnYK@f+cwn8mBxm2HZH5?`Gz8XUop>!Zrgcs;{K40u^*a&^XwI-IKu!;NG z3IOB$TDawJsU>Mc^_$m*`;|tLb_cis90b+@bAge1kGufCk>EUzmljnk7i(=PgnEn( zE-y;VovY8!s~04EJ&unDNZdfYMCqL9@Mk*0_cK%6~{aJ0~||rH9vty z=)LpD;Fz61L>0A}r(3>wLrnoUT3`J|0FBiTez8EE069&MxZcJjI7^Iu;`N#gSI*p< z;mkYdfP92;l~4l0xE7da-|$0q zGK*NDPSX$GZit7ZtG91A6)qw~=*e1Ml$|R{V)$z*0V%%SGz@+zHxCt@X}?(@laCmK zq8e3UBISqn$9G;QFHw*vxGLKUeb!G4DBb?_r{&CR7YymZHefHX$-erRCd@2SZ2}J4 zbMDKsB}1^lZXjL1`fxF>g#M4FvM3Q!bs>oqBAqBlIEx^WL!=k^MDRI#;cq)xkZ`RE z6J`UU`L|GEupD1u>U+PBr@7^O6V$;?@`^Jm^`R=@Ux57aq@9{bnu3L0c(xQG_vrG+ibz+{ z_?*;)bUaWY?yu@ppPbyM2CY%U)+*X8ey|4h^=bq5EflaFxCgkn*+MaJ>|~*OUgA#1 zlH`YJT6xj!52ReDG0sAVNZo{-m$*+Y8lzqUyNS=QMQ3V<;_)pOn1-D9p|-8%JvDkk zy#l_3uh!^YOA#u26JjvjCi6~SWcd9BRV2jbfG|A*I)X1TEVb!v)}>peeloHOAK@!} z#KU3MNXl=wg>DuOWyKo>f^yM$v}0fM|!v zD%v6HUsbA@0>3z_-n-xvu8O!tQQGAe4%UA`@hD$vQg=|LDAbr&QiMyd zC_crP+B5T9p6N>=l+LgEQWBMLKR*fpY2`=ply1!R!&tPWB2X)k3Q|BP@hpFex12{; z2~n6P@ltX2!fC;KHE4@%#xCxh3&T_FHk%r*J~Y*Zb9#P3AriccwihbjTg3{dhRAv z4gYlR(~>&W4#wWv6L@=oIzU5X_$w``wHhj9zP%;2vy=g@UL6aXC@&A$MDQZ znrNzsGW?@x7?}gz1`#?xnueI#LTnzxzlo-1YIE?LxjBXcSo0X8aSU}O)-lGI7>f(Q zRG?$?O6M=Orf5@k1^J;q;FH?Y~KW5TWUgu95CVE z@^H5-2K6zX-HrmRm0|yJ3z#UvD%>8oql7LMZd?CRSCsZ2IpDRw!`$}aZrNQMKC3-7 ze5tau|F~_P^n93{G~6xsb(FiWzRH+?`IHy^mCKR>CjTAB3)_>oS7j}y{G;~ifIIUs z-mU`$^scZDpZd2Ib*xCV_5Yx|?o5}YYzdtp;^d_3&P|abQnW_&-tG?M-L%TI>v>b9 z``+hu{CiZSe?<+hI}f`}Rp;os^T>bXWB-xQ{ztx2CG-9r$=j!@76oo~RR!mEr0~{N zru)yE+~?-H^U-td6Km+F<+zrx_Yj8x-jSMlKEt3hr{g&*hS%&w|EuiX>(0QaiXJ@1 zH+Q0dPF0P1QdOzS^v>tx$YW}+8&0K5o$S4~$g`spf^n?q#==hIJ+i8nHQbpi8&KJe z+W$dU=RZ1zvs3b1aYB~APzTZaQ%;jEj6z+ArSh4wL`}L%T-l=s89v5Zt-f=YCPi)+a zouWhV6gT}6yl|=m^y44KQM+0j@JOS@Ju3Px*S*8f&0R294Ia^jc3NI9r(pSrBd5ah zbr*WAnyZ8g9u-FZKJ_NeGunJ84erjRPD6cJB` zb<#%c$^p&|*o^^1ldeD>4Sp!-2CjCaYo5z_MJwBK{zEsi1*KQYLqX3SHJ_3kWs-09 zw@1G?`nYH^@6w&D^c^45oleny9%Q5C=A6oa(LBpW^@2u=(}EW;O42uTx;lt`lj@(s zD%V4!`5hbOvP3K2lRzKT%|m1&UH}z=uI?g9>+o8r*(N?ak+5#D@(&UzTF^fdX(Em0 zBYV&ozroq0CBH}7nD_D23FHGVz-oNmgBH_*b(<9J1R&Dh1$FHw_q(}5r1rsrO}sp8 zi#Lkm&7#=u6AQZ@(655*3%m)w&2f2-YLmjd%&C#<8|)YSxG1GKH9O2!UZj;PwxOrO z=d5_krvf!tDhRg8{M#h-&lp~sgfY>dTYFIhI?lU*c<*y=cdFQ} z^k|4^cU%~s(Tk!QTk&@8=25)MbVyRrG1AOHK6tT`IZ~YFh%=`q)VRSf_o7VyZLzB6 ziv?gHcE&ugX4wlG3c%EnX#~u+u8Z8;OWZ#mXmjolvNmr8z`zJI?-j^(-xvnrMY22)o{xfT;Z#OpA}$4b|0bAzA64G2KNaRaLg zURLQSDqK;)SuS3`AJwfh&233NuGrK$HQZe=+Qk$5QE=NKt}%1>q`Vv$on6sYeO(lC zG>+PbB>$MwHM^p_y1S^MJ&roOn=BRVad*)bC*Os7E_M?tIUam2LXS%M)l^ROH zF-x2|;^MV)bAJq^BBxRqN!U_xlu)FNT3H>x@eciIBxUf;{b`I(->nrF^qeh<_7X0a zp$N_3UIS>nc@R`$M%!g996$-=-wyI+z#~|S`>WC>t`zH58ye_I^B5V%%+!>L6zLw~B7H97=4jAy*( zaQN5W#itCXXz#b5t!sxmT?+IQS2iZj~zvCTJ|`r+1l9#xGNCLb4O7_=3i{w z9YtxXIorVNzMG16m`@&u_SW5H{4tI;5qq&G401dxm2HXH@|L>IO!;9covhM^$Zjkq$njO_4d)=GmY5J0H{Z*DSw~xB;pcLMfrHw)O0>$G{ytBr9la+-?8&^APr3N|P zaY`G-sIU~)l7k$}ogz!MuceLA){H_AraWCVBgiq&$=9xF#rW(ApH}6(embV1rsceKI<+uWmN_weQ89ltVli^QX?9_>93Nd+E<0v%czPuWP#$;CHpq@?E?@asnUG9<)Y@#>Y|4^cYEVfO2o#6!gvktbQh`3R5 z!|BnwB1eTb&~dp$WD!zDo{viS`AxVn=J9)*Xk2A`i~*bJH)3a=@vd8GzvT+XdezB4 z#-DDb>tVUYB1ugY6zDird<)A|W}W)$;`ph*>hW35+Lcv4T+AKYsE+rC@JO*nqn|z6 zdptcdBhYb@*V~Ty?qo4f+)mBe?qWWBJ0-Gt#r)iM+*ad@IomCc8W@>->2%F$W#Y1{#=>m@j@Qcg^nJKd z^ef{T`zS27Ls<@1Nv2HMQA^$`#Xm_K81GEy z!*&((lZUA>JN%3n9H#rM%`@Y27MX}WbQ)j0hdY|$@3>XYoku7X-1%}IoQ*52?NDP; zHm*MR{9iF5jXidHnR$t8u4;%@&c7$HSz{6RCZVs;O)zN8e|2Ap(8?=E1N@ZHM=T`6Rv^mOJsX);s zTs<{1JJ@_3f0ptuzQoD8UCN8Uq>ckmmgG1?cZmhAmKSHMb+A2r_Ll_PYi;$m!=hbv zN^32dH4phZ9+vnOsgkTU2E%%Y-okwt_r_4#>%fKKsKlD$0HeLn;Sgq z8``M~_B-DHTUu-pZ0s|-KagW>7yPnf&E?_Nd=c`%L21{XU zDcYtr^mX{~tlKo$|08Fu0v2I`G0t|NuqH*@qz%ISgOdjq(5taWoy#(;w(gmIpQO$3 zb;LWra^4LVno-f=XkiCuoXu*hS>R<$#bQWGkAbeKlbsPG0;wov0cpCmi&nQrGcL zxv{N~ZZLHj+`s3up3rXZU1dzHCzeaOVXd*PjGlbRn?9xaK26VHnK|T4WcZgX*qpGY5{b|4V72}`n#eRj0ncwAjQYAzuY)1vtWhJ8dovj z5va?99a1fXN&Fjx-U2>0vTL$86mswgZx&B7p9X^9U?)H6%|^4%<=npxn?$?#@;Yn+ zJ56bHkmu2^1XpUJiiIMZVd<90_XyC1KI$wKzkqx7{V`vv4`y4XZ&bWc2pJ7 zgNzBy*ma7WRlLF3G}1HU>uNP_nnKjVw&d;D`m92?rCP03%*xsDyZCcspi2<2#zOVDs2#o*C?*x1+6bu{k>^n~q=+ z*`W=e9mztdma#dK;lriF&}A5nV%cZp=jI`=b*4mmg>T8Fo_QnG;M9cI40CICi0W3^ zOW-pUleB~hxy~@-avS!ELc@%89hvUI;@TLEyR&7?v;^%79%>v-U}Y*(Zt|nOSu>h% zeBYbRz&8lIe?KwIQSp`glX;0Lq>d;kD0dGI5?4cGs}jHh#4(w z_t7=Cj87-A>OL%XDF1RH>#0~ATXK2mA{M69bksS?`z>PU!Nobb?_w4TuDR2QTgrnpJYSvXfCCS={ywf`@p@KD5zQd|Bx@~M&%l>4{e2~ATv;8cD0(j48+_JA5M?qFM(VE)*}J|W9@2P>YS{S}Y6N5+Lcth35OhZ?2~ zwnMIa`4GOLYJ2Wz?Jx|KB;OGX1EtSl)vexVpD~(c&{0+kpYRx7c6N^_ znY)g$L+0eec%lI&8(GKMSB#b$OHZ;U9xb|L;d!l*tR)BGi_*dP{4r40ygFBW5-UE* z>JGd6!zK*ExS_^3=NMz^Gz4@p?tH|~kV$+W8#&b2bDk|?o{10+`OBK$9^T?2o5H#c z%mJ*cP(zpnMk2hB%F$`RrA~{XP2&)?4v#d|Pg? z>#QeIVj;3sbm3BzwF(HXhR@Kj@<|834M@g! zXM1>~Z&AyS_{wit0Nx+$`<5N@`3f1nfWsZ&37}@9ImWo}7@j2}z;_0^1G)HYOf=%d z6N)Bc#0P8rjnW_3Gg-}mog1Y;ve%f;y6&>J0XPLz?<#9KLgw>-X7_?7z->D4Ixq!T z0%YP=^bjzNg}<;FvUvc`RWB4Z$tZomiday8@FRfnz%<|uU@Uy*A@-!<^%(8(`LBHe zY-9P#-`D}OSTj^C{@VS{yk!ZIYMg$; z>N9h5_`0CD!|(jX273OAPHk?-x8HXDLJ@24Hjjl%3SU^nI@c8J449kYgf<_>KQCfi zf_A?sYw5V1Zi4YN47mArtQ>gqF zWAQ@0sEno33I1mpi=o3tlXAwHVscb>@sCK}v7jT;Mjp>|rUx%SA{FjcrG|=)9SpP8 zXfNvuzH(F@p5>#n+2;P)s(ZO0XDWwOM?d^N#wSk-4lKBV$S_3IXm4_4Ii;{Cd2F-P zv@q{^@6F}+?kQW(J9ov%IAWg~$GtJtjzs39^4m=ATlZ`k(nKmKzD9>IJmxBys^fGy z?q}V<0k@{y*doh6vic9EGtKuhRvz1!))ch=9$9M-ntX+{zL$+HCOMN; zE+CDbW|>tz{22p0W&Ahzs$xFDMDwaeen+;%Krsn@od7!AATPO`JPW?8a^jxe@<(Ed z`rKPyhPmq&f6+&t&FXx^KlhPa(@aCHD~Egdh}o*`ak8p-aWJw>!Ct%KxWl{Gm!nLP zrxnM>Q+!^1`L4+GN&~qCQ+K1n!;B49c>%L57d&trn8B@~ayYZ(@;;&RS(?JDHr3W?g;UIPD9Z``+GV#`;F`X-1EX z-eL0V3igRFG?(#%8{R4cWrf`_PDIFE8NFw?TFM9Hp1s$~nq{@Dxv&svw~uLqfz8=W zI{@Td#@&AvKJABn;X$Td1q!opcfZcGSp`gcaEEDTV8|(~E>0Q0#>lnFedqhwpjPsB z@_JIL7M94&=4(^d%Q|y}^7mWIezk6w4zQ{2y)xO#9N1=SEe8dBioL@#*c9{l+83K@ z(bhxQ3sJEx#vEsjT5aT&;{Lh0t?ca)b@wyz*&a(8j`!%B53LGo1DEXJL*O2TPwHB`PP#+T_Oc|WTen2#6d<+UVn=Y;a~ zaQUcvR~()Q z!xC`_6^5C@<*qw{(Crn6yIAG%C&IaoFf17(2lH6BRTypvuA4B#iUecbE^cSHL2&2Y z2O%nM7s1^Xx?_SnFCxy1RL6wwhTvj_Zji8s3NBr6$An?5aH%5>vEndDSZ50B6Ij{y zMSSBJxjyeEia921p~6cMhjbj|%^ngTKUQwoGBJ5lpWZzZlc$WGG;aE+e#tY(q(}n> z^=cc{u2q-eiCub)Y#-ccMtisfcb`6e>U6$*teog&?bIo_`;?jZ8E22l$>YZbM;kwm zl@}_;v5YN|ghaE|@t8-wXoQfw&(4cL(5i z5d9VH_rdtc20!>130(qk3G!k1sV^#;1^hYa1iu(`7h?Wzd?xIH$PK`5to<2&w1y?G|7p`X~V_6Pb#k1#lQP(QH zpjEu-Io{(r-t#%$Qpu;IXRBfbuS$5GDilJfN+ft}Yy7RRN-Ff`=k(R9c;jGQyM2`dKJCQ^vEuVy@u95vNH!lIG~NPk1NVVKpcL@HI=~yK4>Sf^t}zz1Q2t;G z=BJak5ZDep&;QQxEjO?k`jP@KN9k!8Z^#(62X=)@2iE7h$`q!v~lQz7g!G zxBG85d~QPL1>JJQOn`g_a>PbjpzQSEZic?a$DO5XGO! zBK~}U1Y>tsr6u73Eli!!dwgFE56e##=gH?bX*D3*E9o6jh=2c8 zMfNdT+mtDdEQPydEn+u*2MK&=WWR=$;DSxKN2cr(*A>>mQt;ogtMU6qq5Xc1q^$>k zzf$&FCuxttcfn5+h4VDnZQzqD<@qZm?N#t|E9Iq--vqzDQXafs(m41;{FV>-7f4xK zC9OAvJp8~;B=p)YX*a?DR4G5*DQWk?KLJFA=I)R*7xbaU{E1PR?2ap^PiB`Pw2fWM!@`EE6#|ZY0z)4!?d-+ z5ArTS>oM&JXsIXD&Ve?n%d|Yu*Z9bpO2C2%5qL0dj-8uUvStRo5RMZUh95;X!Ovhp z{UFCTm9<&mgMgdhj{}{-&uW2_&{5XJR3~Ps&W55*0FD7a0rgHQ+Ka$)U^8$XC<8j3 z!V@g8{gkpmI|}9kQ1di`fu+E1;0$mRcnqj#6wME40<;1q0lR>F!1t`8y$tLDJ_a5D zat`iJKr0{~NCLz!JqLkK0+s?h03&Asl7M*#un!c?ALt7#1$F=@fos4+z#|tAwm@fK z81Nb}8+Z%Y4V(hL0PX{2K<#swSAn*`E5O@825=tu9q{`QJ+T0X(ZFHg0pRr!o=t$M zz#iZ`py9{(NCKD&>;V1%63(OhfG0rx3yRhgm<{XzE(3o7A)hGP0AL<)5cmNIx`<~T m;3Qzaq-af3ao7f&0lon|K1DYJHefbzx)Kg!`)no2=l=s4`LaX+ diff --git a/build/bin/ram_all.bin b/build/bin/ram_all.bin index f309892910edbf240822041ac098e466330e5dda..bdba22b191704838b21ec932b28f2ed1c8fd1dd0 100644 GIT binary patch delta 18729 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 delta 24697 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 diff --git a/build/obj/build.nmap b/build/obj/build.nmap index 0235345..6845bfe 100644 --- a/build/obj/build.nmap +++ b/build/obj/build.nmap @@ -12,6 +12,7 @@ U __aeabi_i2f U __aeabi_ui2f U __ctype_ptr__ + U cmd_update U floor U free U localtime @@ -798,13 +799,20 @@ 100020c0 T gBoot_Gpio_Adapter 100020c0 t __ram_image_end__ 100021ec T SpicInitParaAllClk -1000230c t EnterImage15 -100023b8 t RtlBootToSram +1000227c t txt_tab_seg +1000229c t tab_seg_def +100023ea t flashcpy 10002400 B __rom_heap_start__ 10002400 B end -10002444 T __image1_bss_end__ -10002444 T __image1_bss_start__ -10002444 T __ram_image1_text_end__ +10002488 t get_seg_id +100024bc t JtagOn +100024e0 t RtlConsolRam +10002500 t RtlBootToFlash +1000276c t RtlBootToSram +10002864 T SEG_ID +10002864 T __image1_bss_start__ +10002868 T __image1_bss_end__ +10002868 T __ram_image1_text_end__ 10003000 B __ram_heap1_start__ 10003000 B __rom_heap_end__ 10006000 D .image2.start.table1$$Base @@ -818,2374 +826,2372 @@ 10006038 T SYSPlatformInit 10006058 T SDIO_Device_Off 1000607c T InfraStart -10006188 T UartLogIrqHandleRam -10006250 T RtlConsolTaskRam -10006318 T console_init -100063e4 T SpicRxCmdRefinedRtl8195A -100064ec T SpicInitRefinedRtl8195A -100065a0 T SpicReadIDRtl8195A -100066a4 T SpicConfigAutoModeRtl8195A -10006714 T SpicUserReadRtl8195A -10006888 T SpicUserReadFourByteRtl8195A -100069a4 T SpicGetExtendAddrRtl8195A -100069fc T SpicGetConfigRegRtl8195A -10006a54 T SpicGetFlashStatusRefinedRtl8195A -10006aac T SpicWaitWipDoneRefinedRtl8195A -10006ae8 T SpicTxCmdWithDataRtl8195A -10006bbc T SpicGetFlashFlagRtl8195A -10006c48 T SpicWaitOperationDoneRtl8195A -10006c84 T SpicDeepPowerDownFlashRtl8195A -10006d10 T SpicUserProgramRtl8195A -10006f40 T SpicWaitWipRtl8195A -10006f54 T SpicTxFlashInstRtl8195A -10006fe8 T SpicEraseFlashRefinedRtl8195A -10006ff2 T SpicDieEraseFlashRtl8195A -10007014 T SpicBlockEraseFlashRtl8195A -10007036 T SpicSectorEraseFlashRtl8195A -10007058 T SpicSetExtendAddrRtl8195A -10007072 T SpicSetFlashStatusRefinedRtl8195A -100070a4 T SpicWriteProtectFlashRtl8195A -100070cc T SpicDisableRtl8195A -100070dc T SpicNVMCalLoad -100071ec T SpicNVMCalLoadAll -1000720a T SpicNVMCalStore -10007364 T SpicCalibrationRtl8195A -100075b8 T SpicFlashInitRtl8195A -10007664 T SpicOneBitCalibrationRtl8195A -1000767c T vWFSSVCHandler -10007682 t svcing -1000769c T PatchHalLogUartInit -10007750 T PSHalInitPlatformLogUart -10007814 T InitSYSIRQ -10007850 T DurationScaleAndPeriodOP -10007888 T CLKCal -100078e4 T BackupCPUClk -10007904 T ReFillCpuClk -10007924 T SYSIrqHandle -10007964 T WakeFromSLPPG -10007a9c T InitSoCPM -10007ad4 T RegPowerState -10007b40 T ReadHWPwrState -10007dbc T QueryRegPwrState -10007df4 T SetSYSTimer -10007e2c T SleepCG -10007f2c T DeepSleep -10008070 T HALEFUSEOneByteReadRAM -10008090 T HALEFUSEOneByteWriteRAM -10008094 T FunctionChk -10008098 T HalGetChipId -100080c0 T HalNMIHandler_Patch -100080f4 W __low_level_init -100080f6 t get_addr_fobj -10008140 t get_addr_fobj_save -1000818c t _fwrite_word -100081b8 t get_addr_bscfg -10008234 T copy_align4_to_align1 -100082be T cmp_align1_align4 -10008368 T flash_write_cfg -100085a8 T flash_read_cfg -1000863c T rtl_libc_init -10008658 T rtl_snprintf -100086b8 T rtl_sprintf -10008704 T rtl_printf -1000873c T rtl_memcmp -10008744 T rtl_memcpy -1000874c T rtl_memmove -10008754 T rtl_memset -1000875c T rtl_strcmp -10008764 T rtl_strcpy -1000876c T rtl_strlen -10008774 T rtl_strncmp -1000877c T rtl_strncpy -10008784 T rtl_strsep -1000878c T memcpy -10008794 T memset -1000879c T sscanf -100087b6 T __aeabi_llsr -100087cc T ram_libgloss_close -100087dc T ram_libgloss_fstat -100087fc T ram_libgloss_isatty -10008808 T ram_libgloss_lseek -10008818 T ram_libgloss_read -10008828 T ram_libgloss_sbrk -10008844 T ram_libgloss_write -10008864 T ram_libgloss_open -100088a0 T init_rom_libgloss_ram_map -100088e8 T wlan_init_done_callback -100088ec T read_wifi_cfg -10008934 T write_wifi_cfg -1000897c T fATON -10008984 T fATOF -1000898c W user_start -10008990 T chk_ap_netif_num -100089dc T StartStDHCPClient -10008a68 T _wifi_on -10008b14 T _LwIP_Init -10008bc0 T translate_rtw_security -10008be4 T show_wifi_ap_ip -10008c18 T wifi_run_ap -10008d38 T show_wifi_st_ip -10008d6c T wifi_run_st -10008e28 T wifi_run -10008f14 T wifi_init_thrd -10008f70 T fATWR -10008f8c T show_wifi_st_cfg -10008fdc T fATPN -100090ac T show_wifi_ap_cfg -10009118 T fATPA -100091f4 T show_wifi_cfg -10009254 T fATWI -10009368 t mp3_cfg_read -100093c8 T tskmad -100095e4 T render_sample_block -10009658 T set_dac_sample_rate -1000969c T getIpForHost -100096c0 T openConn -100097e4 T http_head_read -1000991c T tskreader -10009ae4 T connect_close -10009b0c T connect_start -10009bac T fATWS -10009c8c T ShowMemInfo -10009cb8 T main -10009d10 T fATST -10009d80 T fATSD -10009d88 T fATSW -10009d90 T fATDS -10009db4 T print_hex_dump -10009de4 T dump_bytes -10009e78 T fATSB -10009eb0 T print_udp_pcb -10009f1c T print_tcp_pcb -10009ff4 T fATLW -1000a004 T RamFifoClose -1000a060 T RamFifoInit -1000a1b4 T RamFifoRead -1000a270 T RamFifoWrite -1000a324 T RamFifoFill -1000a350 T RamFifoFree -1000a364 T RamFifoLen -1000a370 t decode_header -1000a4e0 T mad_header_init -1000a50c T mad_frame_finish -1000a524 T mad_header_decode -1000a7c0 T mad_frame_decode -1000a844 T mad_frame_mute -1000a88e T mad_frame_init -1000a8ac t III_requantize -1000a928 t III_aliasreduce -1000a990 t fastsdct -1000aac8 t III_imdct_l -1000aee0 t III_imdct_s -1000b034 t III_overlap -1000b05e t III_freqinver -1000b0a8 t III_decode -1000c0c4 T mad_layer_III -1000c528 T mad_bit_init -1000c534 T mad_bit_length -1000c54c T mad_bit_nextbyte -1000c558 T mad_bit_skip -1000c588 T mad_bit_read -1000c5f4 T mad_bit_crc -1000c6e8 t scale -1000c6f4 t dct32 -1000cf88 t synth_half -1000d3cc t synth_full -1000d820 T mad_synth_mute -1000d858 T mad_synth_init -1000d87c T mad_synth_frame -1000d910 t scale_rational -1000d984 T mad_timer_set -1000da6c T mad_stream_init -1000da9e T mad_stream_finish -1000dab0 T mad_stream_buffer -1000dac4 T mad_stream_sync -1000db0c T mad_stream_errorstr -1000dc68 t i2s_test_tx_complete -1000dc80 T i2sClose -1000dd0c T i2sInit -1000de80 T i2sSetRate -1000df08 T i2sPushPWMSamples -1000e070 T SystemCoreClockUpdate -1000e084 W console_help -1000e0c4 T GetArgvRam -1000e17c T get_eap_phase -1000e188 T get_eap_method -1000e194 T eap_autoreconnect_hdl -1000e198 t wifi_no_network_hdl -1000e1b0 t wifi_ap_sta_disassoc_hdl -1000e1b4 t wifi_handshake_done_hdl -1000e1d0 t wifi_disconn_hdl -1000e238 t wifi_connected_hdl -1000e26c t wifi_connect_local -1000e380 T wifi_autoreconnect_hdl -1000e3bc t wifi_ap_sta_assoc_hdl -1000e3be T wifi_rx_beacon_hdl -1000e3c0 T wifi_connect -1000e644 t wifi_autoreconnect_thread -1000e6ac T wifi_set_country -1000e6b8 T wifi_off -1000e724 T wifi_start_ap -1000e804 T wifi_get_setting -1000e8b4 T wifi_show_setting -1000e978 T wifi_config_autoreconnect -1000e99c T wifi_indication -1000e9d8 T wifi_reg_event_handler -1000ea2c T wifi_unreg_event_handler -1000ea70 T init_event_callback_list -1000ea80 T promisc_deinit -1000ea84 T promisc_recv_func -1000ea88 T promisc_set -1000ea8c T is_promisc_enabled -1000ea96 T iw_ioctl -1000eab2 T wext_get_ssid -1000eafc T wext_set_ssid -1000eb30 T is_broadcast_ether_addr -1000eb52 T wext_set_auth_param -1000eb80 T wext_set_key_ext -1000ec80 T wext_get_enc_ext -1000ece2 T wext_set_passphrase -1000ed16 T wext_get_passphrase -1000ed46 T wext_set_mode -1000ed6a T wext_get_mode -1000ed94 T wext_set_ap_ssid -1000edc8 T wext_set_country -1000edec T wext_set_channel -1000ee1a T wext_get_channel -1000ee48 T wext_wlan_indicate -1000ef90 T wext_set_autoreconnect -1000efe0 T wext_set_adaptivity -1000f008 T wext_set_sta_num -1000f00c T LwIP_DHCP -1000f100 T LwIP_GetIP -1000f104 T LwIP_AUTOIP -1000f180 t netconn_recv_data -1000f250 T netconn_new_with_proto_and_callback -1000f2b0 T netconn_delete -1000f2d4 T netconn_getaddr -1000f318 T netconn_connect -1000f358 T netconn_recv_tcp_pbuf -1000f36c T netconn_recv -1000f3f4 T netconn_recved -1000f420 T netconn_send -1000f45c T netconn_write_partly -1000f4ec T netconn_gethostbyname -1000f544 t recv_udp -1000f5b4 t recv_raw -1000f638 t setup_tcp -1000f67c t err_tcp -1000f714 t do_connected -1000f780 t do_writemore -1000f880 t do_close_internal -1000f96c t poll_tcp -1000f9bc t do_dns_found -1000f9e8 t sent_tcp -1000fa36 t recv_tcp -1000fab0 T do_newconn -1000fb40 T netconn_alloc -1000fbac T netconn_free -1000fbd8 t netconn_drain -1000fc68 T do_delconn -1000fcf4 T do_connect -1000fd88 T do_send -1000fdf8 T do_recv -1000fe38 T do_write -1000fe72 T do_getaddr -1000fee8 T do_gethostbyname -1000ff14 T netbuf_delete -1000ff34 T netbuf_free -1000ff4a T netbuf_ref -1000ff84 T lwip_gethostbyname -1000ffd0 t get_socket -1000fff0 t alloc_socket -10010060 t event_callback -10010190 T lwip_socket_init -10010192 T lwip_close -100101e4 T lwip_connect -10010240 T lwip_recvfrom -100103f8 T lwip_read -1001040c T lwip_sendto -100104b8 T lwip_send -10010530 T lwip_socket -100105a4 T lwip_write -100105ac t tcpip_thread -10010630 T tcpip_input -10010678 T tcpip_callback_with_block -100106cc T tcpip_timeout -10010710 T tcpip_apimsg -10010768 T tcpip_init -100107ac t autoip_start_probing -100107f8 t autoip_arp_announce -10010824 T autoip_start -100108b8 T autoip_tmr -100109c8 T autoip_arp_reply -10010a70 t icmp_send_response.isra.0 -10010ae0 T icmp_input -10010c04 T icmp_dest_unreach -10010c0e T icmp_time_exceeded -10010c18 t igmp_send -10010cbc t igmp_delaying_member -10010cf4 t igmp_lookup_group.part.1 -10010d2c T igmp_init -10010d48 T igmp_report_groups -10010d6c T igmp_lookfor_group -10010d8c T igmp_start -10010dc8 T igmp_input -10010e8c T igmp_tmr -10010eb8 t lwip_standard_chksum -10010f10 T inet_chksum_pseudo -10010f96 T inet_chksum -10010fa2 T inet_chksum_pbuf -10010fe8 T ip_route -10011024 T ip_input -100111fc T ip_output_if_opt -10011350 T ip_output_if -10011372 T ip_output -100113aa T ip4_addr_isbroadcast -100113e2 T ipaddr_aton -100114f8 T ipaddr_addr -10011510 T ipaddr_ntoa_r -100115a8 T ipaddr_ntoa -100115b4 t ipfrag_free_pbuf_custom -100115cc t ip_reass_free_complete_datagram -1001164c t ip_reass_remove_oldest_datagram -100116c0 T ip_reass_tmr -100116e8 T ip_reass -10011998 T ip_frag -10011b04 T lwip_htons -10011b0a T lwip_ntohs -10011b10 T lwip_htonl -10011b14 T lwip_ntohl -10011b18 t dhcp_set_state -10011b28 t dhcp_option -10011b48 t dhcp_option_byte -10011b5a t dhcp_option_short -10011b7c t dhcp_option_long -10011bc0 t dhcp_create_msg -10011d10 t dhcp_delete_msg -10011d26 t dhcp_check -10011d4c t dhcp_bind -10011e20 t dhcp_option_trailer -10011e4c t dhcp_discover -10011f00 t dhcp_reboot -10011fa4 t dhcp_option_hostname.isra.1 -10011fe4 t dhcp_rebind -10012078 t dhcp_select -10012164 t dhcp_recv -10012568 T dhcp_arp_reply -100125e8 T dhcp_renew -1001267c T dhcp_release -10012724 T dhcp_coarse_tmr -100127b0 T dhcp_fine_tmr -1001284c T dhcp_release_unicast -10012910 T dhcp_stop -10012940 T dhcp_start -100129e0 t dns_parse_name -100129fc t dns_recv -10012b90 t dns_send -10012c60 t dns_check_entry -10012d10 T dns_setserver -10012d30 T dns_init -10012d88 T dns_tmr -10012db4 T dns_gethostbyname -10012ef4 T lwip_init -10012f1c T sys_timeout -10012f7c T tcp_timer_needed -10012fb0 t tcpip_tcp_timer -10012fe8 T sys_timeouts_init -1001305c t dns_timer -10013078 t igmp_timer -10013090 t autoip_timer -100130a8 t dhcp_timer_fine -100130c4 t dhcp_timer_coarse -100130e0 t arp_timer -100130fc t ip_reass_timer -10013118 T sys_untimeout -10013160 T sys_timeouts_mbox_fetch -100131c4 T netif_init -100131c8 T netif_set_ipaddr -10013220 T netif_set_addr -1001323c T netif_add -100132a0 T netif_set_gw -100132a8 T netif_set_netmask -100132b0 T netif_set_default -100132bc T netif_set_up -100132f2 T netif_set_down -1001330c t pbuf_free_ooseq_callback -10013340 t pbuf_pool_is_empty -1001337c T pbuf_alloced_custom -100133d0 T pbuf_header -10013428 T pbuf_free -10013468 T pbuf_alloc -1001358c T pbuf_realloc -100135c0 T pbuf_clen -100135d0 T pbuf_ref -100135ea T pbuf_cat -10013606 T pbuf_chain -10013616 T pbuf_copy -100136b2 T pbuf_copy_partial -1001371a T pbuf_coalesce -10013748 T raw_input -100137c0 T raw_connect -100137ca T raw_recv -100137d0 T raw_sendto -10013860 T raw_send -10013868 T raw_remove -10013890 T raw_new -100138c4 t tcp_new_port -10013914 T tcp_init -1001392c T tcp_update_rcv_ann_wnd -10013962 T tcp_recved -1001399c T tcp_seg_free -100139b6 T tcp_segs_free -100139c8 T tcp_seg_copy -100139f0 T tcp_arg -100139f4 T tcp_recv -100139fa T tcp_sent -10013a00 T tcp_err -10013a06 T tcp_accept -10013a0a T tcp_poll -10013a14 T tcp_pcb_purge -10013a54 T tcp_slowtmr -10013d10 T tcp_pcb_remove -10013d78 t tcp_close_shutdown -10013ea8 T tcp_close -10013ec0 T tcp_recv_null -10013ee4 T tcp_process_refused_data -10013f44 T tcp_fasttmr -10013fbc T tcp_tmr -10013fe0 T tcp_shutdown -10014030 T tcp_abandon -100140c8 T tcp_abort -100140d0 T tcp_next_iss -100140e8 T tcp_alloc -10014208 T tcp_new -1001420e T tcp_eff_send_mss -1001422c T tcp_connect -10014388 t tcp_oos_insert_segment -10014408 t tcp_receive -10014be0 t tcp_parseopt.isra.0 -10014c64 T tcp_input -100154bc t tcp_pbuf_prealloc -10015510 t tcp_create_segment -100155d8 t tcp_output_alloc_header.constprop.0 -10015642 T tcp_write -10015992 T tcp_enqueue_flags -10015a3a T tcp_send_fin -10015a82 T tcp_send_empty_ack -10015ae0 T tcp_output -10015d58 T tcp_rst -10015df0 T tcp_rexmit_rto -10015e1e T tcp_rexmit -10015e6e T tcp_rexmit_fast -10015ec4 T tcp_keepalive -10015f16 T tcp_zero_window_probe -10015fc0 T udp_init -10015fd8 T udp_input -10016160 T udp_bind -10016208 T udp_sendto_if -10016306 T udp_sendto -1001633c T udp_send -10016348 T udp_connect -10016390 T udp_disconnect -100163a0 T udp_recv -100163a8 T udp_remove -100163d0 T udp_new -100163f4 t etharp_free_entry -10016424 t etharp_find_entry -10016500 t etharp_send_ip -10016534 T etharp_tmr -10016574 T etharp_cleanup_netif -1001659c T etharp_raw -10016658 T etharp_request -10016684 t etharp_output_to_arp_index -100166cc T etharp_query -100167d0 T etharp_output -100168c8 T ethernet_input -10016ab8 t low_level_output -10016b14 t arp_timer -10016b30 T ethernetif_recv -10016ba8 T ethernetif_init -10016bec T lwip_POST_SLEEP_PROCESSING -10016c08 T rltk_wlan_set_netif_info -10016c28 T rltk_wlan_send -10016cbc T rltk_wlan_recv -10016d1c T netif_is_valid_IP -10016d50 T netif_get_idx -10016d68 T netif_rx -10016d78 T netif_post_sleep_processing -10016d7c T sys_mbox_new -10016d96 T sys_mbox_free -10016daa T sys_mbox_post -10016dca T sys_mbox_trypost -10016dec T sys_arch_mbox_fetch -10016e36 T sys_arch_mbox_tryfetch -10016e56 T sys_mbox_valid -10016e60 T sys_mbox_set_invalid -10016e66 T sys_sem_new -10016ea2 T sys_arch_sem_wait -10016ee2 T sys_sem_signal -10016eee T sys_sem_free -10016ef4 T sys_sem_valid -10016efe T sys_sem_set_invalid -10016f04 T sys_init -10016f28 T sys_thread_new_tcm -10016f90 T sys_arch_protect -10016f9a T sys_arch_unprotect -10016fa0 t add_offer_options -1001705c t mark_ip_in_table -100170a0 t dhcps_initialize_message -10017150 T dhcps_handle_state_machine_change -10017220 t dhcps_receive_udp_packet_handler -100174ec T dhcps_deinit -10017514 T dhcps_init -1001761c t prvInsertBlockIntoFreeList -10017664 t vPortDefineHeapRegions.constprop.1 -10017704 T pvPortMalloc -100177e4 T __vPortFree -10017828 T vPortSetExtFree -10017844 T vPortFree -10017874 T xPortGetFreeHeapSize -10017880 t prvPortStartFirstTask -100178a0 T pxPortInitialiseStack -100178bc T vPortSVCHandler -100178dc t pxCurrentTCBConst2 -100178e0 T vPortYield -100178f8 T ulPortSetInterruptMask -10017908 t prvTaskExitError -10017910 T vPortEnterCritical -1001792c T vPortClearInterruptMask -10017934 T vPortExitCritical -10017948 T xPortPendSVHandler -10017988 t pxCurrentTCBConst -1001798c T xPortSysTickHandler -100179b0 W vPortSuppressTicksAndSleep -10017ac8 W vPortSetupTimerInterrupt -10017b18 T xPortStartScheduler -10017b48 T vApplicationIdleHook -10017b4c T vApplicationStackOverflowHook -10017b68 T osKernelSysTick -10017b6c T vListInitialise -10017b82 T vListInitialiseItem -10017b88 T vListInsertEnd -10017ba0 T vListInsert -10017bd0 T uxListRemove -10017bf0 t prvCopyDataToQueue -10017c5a t prvCopyDataFromQueue -10017c82 t prvUnlockQueue -10017cea T xQueueGenericReset -10017d44 T xQueueGenericCreate -10017d90 T xQueueCreateCountingSemaphore -10017da2 T xQueueGenericSend -10017e80 T xQueueCreateMutex -10017eca T xQueueGenericSendFromISR -10017f2e T xQueueGenericReceive -10018032 T uxQueueMessagesWaiting -10018044 T vQueueDelete -1001805a T vQueueWaitForMessageRestricted -10018094 t prvGenerateRunTimeOfPeroid -100180d4 t prvGetExpectedIdleTime -10018104 t prvListTaskWithinSingleList -100181ec t prvResetNextTaskUnblockTime -10018210 t prvAddCurrentTaskToDelayedList -10018260 T xTaskGenericCreate -10018414 T vTaskDelete -100184b4 T uxTaskPriorityGet -100184d0 T vTaskPrioritySet -10018588 T vTaskStartScheduler -100185e0 T vTaskSuspendAll -100185f0 T xTaskGetTickCount -10018608 T pcTaskGetTaskName -10018618 T vTaskStepTick -10018628 T xTaskIncrementTick -100187a8 T xTaskResumeAll -10018870 T vTaskDelay -100188c0 t prvIdleTask -10018948 T uxTaskGetSystemState -100189f8 T vTaskSwitchContext -10018ab0 T vTaskPlaceOnEventList -10018b0c T vTaskPlaceOnEventListRestricted -10018b50 T xTaskRemoveFromEventList -10018bc0 T vTaskSetTimeOutState -10018bd8 T xTaskCheckForTimeOut -10018c24 T vTaskMissedYield -10018c30 T eTaskConfirmSleepModeStatus -10018c50 T xTaskGetSchedulerState -10018c70 T vTaskPriorityInherit -10018d04 T xTaskPriorityDisinherit -10018d74 T sprintf_pcTaskName -10018d94 T vTaskList -10018e44 T vTaskGetRunTimeStats -10018f04 T pvTaskIncrementMutexHeldCount -10018f1c T vTaskGetCurrentTCB -10018f28 t prvCheckForValidListAndQueue -10018f74 t prvInsertTimerInActiveList -10018fb0 T xTimerCreateTimerTask -10018fec T xTimerCreate -10019028 T xTimerGenericCommand -100190bc t prvSwitchTimerLists -1001912c t prvTimerTask -10019290 T xTimerIsTimerActive -100192a8 t device_mutex_init -100192ec T device_mutex_lock -1001931c T device_mutex_unlock -10019338 t _freertos_systime_to_sec -10019342 t _freertos_ms_to_systime -10019344 t _freertos_sec_to_systime -1001934c t _freertos_usleep_os -1001934e t _freertos_ATOMIC_SET -10019352 t _freertos_ATOMIC_READ -10019356 t _freertos_modular64 -100193ca t _freertos_thread_enter -100193cc t _freertos_enter_critical -100193d0 t _freertos_exit_critical -100193d4 t _freertos_ATOMIC_SUB_RETURN -100193ec t _freertos_ATOMIC_DEC_RETURN -10019402 t _freertos_ATOMIC_ADD_RETURN -1001941a t _freertos_ATOMIC_INC_RETURN -10019430 t _freertos_ATOMIC_SUB -10019448 t _freertos_ATOMIC_DEC -1001944e t _freertos_ATOMIC_ADD -10019466 t _freertos_ATOMIC_INC -1001946c t _freertos_enter_critical_from_isr -1001947c T _freertos_malloc -10019480 T _freertos_zmalloc -10019498 t _freertos_memset -1001949c T _freertos_mfree -100194a0 t _freertos_get_current_time -100194a4 t _freertos_spinunlock_irqsave -100194ba t _freertos_spinunlock -100194c6 t _freertos_mutex_put -100194ca T _freertos_wakeup_task -100194d0 t _freertos_up_sema -100194d4 t _freertos_exit_critical_mutex -100194e0 T _freertos_timerCreate -100194e4 T _freertos_timerDelete -100194f8 T _freertos_timerStop -1001950c T _freertos_timerChangePeriod -10019526 T _freertos_timerIsTimerActive -1001952a T _freertos_acquire_wakelock -10019530 T _freertos_release_wakelock -10019536 T _freertos_get_scheduler_state -10019556 t _freertos_thread_exit -1001955c t _freertos_GetFreeHeapSize -10019560 t _freertos_yield_os -10019564 t _freertos_udelay_os -10019568 t _freertos_mdelay_os -1001956c t _freertos_deinit_xqueue -10019586 t _freertos_spinlock_free -10019598 t _freertos_mutex_free -1001959c t _freertos_free_sema -100195a0 t _freertos_push_to_xqueue -100195c8 t _freertos_pop_from_xqueue -100195f0 t _freertos_down_sema -10019612 t _freertos_init_xqueue -1001962c t _freertos_spinlock_irqsave -10019668 t _freertos_spinlock -100196a0 t _freertos_enter_critical_mutex -100196d8 t _freertos_mutex_get -10019710 t _freertos_spinlock_init -1001971e t _freertos_mutex_init -10019724 t _freertos_exit_critical_from_isr -10019730 t _freertos_up_sema_from_isr -10019758 t _freertos_init_sema -10019768 t _freertos_create_task -100197e0 t _freertos_memcmp -100197ee t _freertos_memcpy -100197f4 t _freertos_delete_task -10019840 t _freertos_mutex_get_timeout -1001987c t _freertos_systime_to_ms -1001987e t _freertos_msleep_os -10019882 T save_and_cli -10019886 T restore_flags -1001988a T cli -10019890 T _freertos_arc4random -100198c0 t _freertos_get_random_bytes -100198fe T RtlInitSema -1001990c T RtlUpSemaFromISR -1001992c T RtlDownSema -10019940 T RtlUdelayOS -10019944 T _htons -1001994a T _ntohs -10019950 T _rtw_zvmalloc -10019970 T _rtw_vmfree -10019994 T _rtw_malloc -100199a4 T _rtw_zmalloc -100199b4 T _rtw_mfree -100199c4 T deinit_mem_monitor -100199c6 T rtw_vmfree -100199ca T rtw_mfree -100199d0 T rtw_memcpy -100199e0 T rtw_memcmp -100199f0 T rtw_memset -10019a00 T rtw_init_listhead -10019a06 T rtw_is_list_empty -10019a10 T rtw_list_insert_head -10019a1c T rtw_list_insert_tail -10019a28 T rtw_list_delete -10019a38 T rtw_init_sema -10019a48 T rtw_free_sema -10019a58 T rtw_up_sema -10019a68 T rtw_up_sema_from_isr -10019a78 T rtw_down_timeout_sema -10019a88 T rtw_down_sema -10019a9c T rtw_mutex_init -10019aac T rtw_mutex_free -10019abc T rtw_mutex_put -10019acc T rtw_mutex_get_timeout -10019ae0 T rtw_enter_critical_from_isr -10019af0 T rtw_enter_critical -10019af4 T rtw_exit_critical_from_isr -10019b04 T rtw_exit_critical -10019b08 T rtw_enter_critical_mutex -10019b18 T rtw_exit_critical_mutex -10019b28 T rtw_queue_empty -10019b32 T rtw_end_of_queue_search -10019b3c T rtw_spinlock_init -10019b4c T rtw_init_queue -10019b58 T rtw_spinlock_free -10019b68 T rtw_spin_lock -10019b78 T rtw_enter_critical_bh -10019b7c T rtw_spin_unlock -10019b8c T rtw_exit_critical_bh -10019b90 T rtw_get_current_time -10019ba0 T rtw_systime_to_ms -10019bb4 T rtw_systime_to_sec -10019bc8 T rtw_ms_to_systime -10019bdc T rtw_sec_to_systime -10019bf0 T rtw_get_passing_time_ms -10019c04 T rtw_msleep_os -10019c14 T rtw_usleep_os -10019c24 T rtw_mdelay_os -10019c34 T rtw_udelay_os -10019c44 T ATOMIC_SET -10019c54 T ATOMIC_INC -10019c64 T ATOMIC_INC_RETURN -10019c78 T ATOMIC_DEC_RETURN -10019c8c T ATOMIC_DEC_AND_TEST -10019c9c T rtw_modular64 -10019cb8 T rtw_get_random_bytes -10019ccc T rtw_getFreeHeapSize -10019cdc T init_mem_monitor -10019cec T add_mem_usage -10019d20 T rtw_zvmalloc -10019d40 T rtw_malloc -10019d60 T rtw_zmalloc -10019d80 T rtw_netif_queue_stopped -10019d84 T rtw_netif_wake_queue -10019d86 T rtw_netif_start_queue -10019d88 T rtw_netif_stop_queue -10019d8a T flush_signals_thread -10019d8c T rtw_acquire_wakelock -10019d9c T rtw_release_wakelock -10019dac T rtw_create_task -10019dc8 T rtw_delete_task -10019dd8 T rtw_wakeup_task -10019de8 T rtw_timerCreate -10019e04 T rtw_timerDelete -10019e18 T rtw_timerIsTimerActive -10019e2c T rtw_timerStop -10019e40 T rtw_timerChangePeriod -10019e54 T rtw_thread_enter -10019e64 T rtw_thread_exit -10019e74 T tcm_heap_free -10019ef4 T tcm_heap_init -10019f44 T tcm_heap_freeSpace -10019f84 T tcm_heap_malloc -1001a024 T tcm_heap_calloc -1001a03c T flash_init -1001a0d8 T flash_turnon -1001a0f0 T flash_erase_sector -1001a11c T flash_stream_read -1001a1ec T flash_stream_write -1001a344 T i2s_init -1001a41c T i2s_set_dma_buffer -1001a46e T i2s_tx_irq_handler -1001a474 T i2s_set_param -1001a4a8 T i2s_deinit -1001a4ac T i2s_enable -1001a4b0 T i2s_disable -1001a4b4 W pinmap_merge -1001a4f0 W pinmap_find_peripheral -1001a508 W pinmap_peripheral -1001a540 T sleep_ex_selective -1001a554 T deepsleep_ex -1001a578 T us_ticker_read -1001a5a4 T En32KCalibration -1001a638 T WDGInitial -1001a6c4 T WDGStart -1001a6dc T WDGRefresh -1001a6f8 T I2SISRHandle -1001a7b4 T RtkI2SDeInit -1001a894 T RtkI2SEnable -1001a8d0 T RtkI2SDisable -1001a90c T RtkI2SLoadDefault -1001a970 T HalI2SOpInit -1001a9ec T RtkI2SInit -1001abb0 T HalI2SInit -1001abee T HalI2SDisable -1001ac14 T HalI2SEnable -1001ac38 T HalI2SDeInit -1001ac90 T HalTimerOpInit_Patch -1001accc T freertos_ready_to_sleep -1001acdc T freertos_pre_sleep_processing -1001ada0 T freertos_post_sleep_processing -1001adc4 T acquire_wakelock -1001ae04 T release_wakelock -1001ae60 T HalI2SInitRtl8195a_Patch -1001af62 T HalI2SSetRateRtl8195a -1001afa8 T HalI2SSetWordLenRtl8195a -1001afd0 T HalI2SSetChNumRtl8195a -1001aff8 T HalI2SSetPageNumRtl8195a -1001b020 T HalI2SSetPageSizeRtl8195a -1001b04a T HalI2SSetDMABufRtl8195a -1001b0b4 T HalI2SGetTxPageRtl8195a -1001b0d4 T HalI2SPageSendRtl8195a -1001b120 T HalI2SClearAllOwnBitRtl8195a -1001b154 T HalI2SDMACtrlRtl8195a -1001b158 T HalTimerIrq2To7Handle_Patch -1001b1ac T HalTimerIrqRegisterRtl8195a_Patch -1001b228 T HalTimerIrqUnRegisterRtl8195a_Patch -1001b2a0 T HalTimerDeInitRtl8195a_Patch -1001b2d4 T HalTimerReadCountRtl8195a_Patch -1001b2ec T HalTimerReLoadRtl8195a_Patch -1001b320 T HalTimerInitRtl8195a_Patch -1001b3f4 T HalTimerIrqEnRtl8195a -1001b408 T HalTimerEnRtl8195a_Patch -1001b41c T HalTimerDisRtl8195a_Patch -1001b430 t rtw_ht_operation_update -1001b4e2 t associated_clients_update.part.11 -1001b51e T chk_sta_is_alive -1001b55c T add_RATid -1001b664 T update_sta_info_apmode -1001b71c T update_beacon -1001b9dc T rtw_check_beacon_data -1001c0dc T associated_clients_update -1001c0e6 T bss_cap_update_on_sta_join -1001c296 T bss_cap_update_on_sta_leave -1001c392 T ap_free_sta -1001c444 T expire_timeout_chk -1001c580 T rtw_sta_flush -1001c604 T free_mlme_ap_info -1001c650 T sta_info_update -1001c68c T ap_sta_info_defer_update -1001c6bc T start_ap_mode -1001c6fc T init_mlme_ap_info -1001c712 T stop_ap_mode -1001c760 T rtw_generate_bcn_ie -1001ca84 T _rtw_init_evt_priv -1001ca96 T _rtw_free_cmd_priv -1001caa0 T _rtw_enqueue_cmd -1001cacc T _rtw_dequeue_cmd -1001cb00 T _rtw_observequeue_cmd -1001cb14 T rtw_init_cmd_priv -1001cb1e T rtw_init_evt_priv -1001cb22 T rtw_free_evt_priv -1001cb24 T rtw_free_cmd_priv -1001cb28 T rtw_cmd_filter -1001cb46 T rtw_free_cmd_obj -1001cb70 T rtw_enqueue_cmd -1001cbc6 T rtw_set_channel_plan_cmd_callback -1001cbde T rtw_survey_cmd_callback -1001cbfa T rtw_disassoc_cmd_callback -1001cc2a T rtw_joinbss_cmd_callback -1001cc46 T rtw_setstaKey_cmdrsp_callback -1001cc60 T rtw_cmd_thread -1001cdbc T rtw_joinbss_cmd -1001d066 T rtw_disassoc_cmd -1001d0b4 T rtw_setstakey_cmd -1001d1a4 T rtw_clearstakey_cmd -1001d244 T rtw_dynamic_chk_wk_cmd -1001d296 T rtw_set_chplan_cmd -1001d316 T dynamic_chk_wk_hdl -1001d3de T lps_ctrl_wk_hdl -1001d442 T rtw_lps_ctrl_wk_cmd -1001d4ac T rtw_sitesurvey_cmd -1001d574 T rpt_timer_setting_wk_hdl -1001d588 T rtw_ps_cmd -1001d5e4 T rtw_chk_hi_queue_cmd -1001d638 T rtw_drvextra_cmd_hdl -1001d714 t rtw_free_mlme_ie_data -1001d72c T rtw_init_mlme_timer -1001d788 T rtw_del_mlme_timer -1001d7a8 T reconnect_timer_hdl -1001d848 T _rtw_init_mlme_priv -1001d8ca T rtw_mfree_mlme_priv_lock -1001d8e6 T rtw_free_mlme_priv_ie_data -1001d91e T _rtw_free_mlme_priv -1001d946 T _rtw_alloc_network -1001d996 T _rtw_free_network -1001d9f6 T _rtw_free_network_nolock -1001da1c T _rtw_find_network -1001da58 T _rtw_free_network_queue -1001daa0 T rtw_if_up -1001dac0 T rtw_get_capability_from_ie -1001dac4 T rtw_get_capability -1001dade T rtw_get_beacon_interval_from_ie -1001dae2 T rtw_init_mlme_priv -1001dafa T rtw_free_mlme_priv -1001dafe T rtw_free_network_queue -1001db02 T rtw_is_same_ibss -1001db18 T is_same_network -1001db7c T update_network -1001dc16 T rtw_update_scanned_network -1001dd28 T rtw_add_network -1001dd66 T rtw_survey_event_callback -1001de12 T rtw_dummy_event_callback -1001de14 T rtw_free_assoc_resources -1001dede T rtw_indicate_connect -1001deee T rtw_indicate_disconnect -1001df10 T rtw_indicate_scan_done -1001df14 T rtw_joinbss_event_callback -1001df32 T search_max_mac_id -1001df7a T rtw_stassoc_hw_rpt -1001dfb2 T rtw_stassoc_event_callback -1001dfe0 T rtw_stadel_event_callback -1001e086 T _rtw_join_timeout_handler -1001e110 T rtw_join_timeout_handler -1001e168 T rtw_scan_timeout_handler -1001e198 T _rtw_scan_timeout_handler -1001e19c T rtw_dynamic_check_timer_handlder -1001e1f4 T _dynamic_check_timer_handlder -1001e238 T rtw_select_and_join_from_scanned_queue -1001e30c T rtw_surveydone_event_callback -1001e424 T rtw_set_auth -1001e474 T rtw_set_key -1001e536 T rtw_restruct_wmm_ie -1001e59c T rtw_restruct_sec_ie -1001e608 T rtw_joinbss_reset -1001e618 T rtw_restructure_ht_ie -1001e6f8 T rtw_update_ht_cap -1001e782 T rtw_joinbss_event_prehandle -1001e9ae T rtw_linked_check -1001e9ca T rtw_buddy_adapter_up -1001ea02 T check_buddy_fwstate -1001ea20 t get_da -1001ea40 t get_sa -1001ea6a T OnAction -1001ea7c T DoReserved -1001ea80 t _mgt_dispatcher.isra.2 -1001eacc T rtw_is_channel_set_contains_channel -1001eaee T init_hw_mlme_ext -1001eb04 T init_channel_set -1001eb9c T free_mlme_ext_priv -1001ebc4 T mgt_dispatcher -1001ec4c T alloc_mgtxmitframe -1001ec84 T update_mgnt_tx_rate -1001ec8a T update_mgntframe_attrib -1001ece6 T rtw_build_mgnt_frame -1001ed3c T dump_mgntframe -1001ed56 T rtw_send_mgnt -1001ed74 t issue_action_BSSCoexistPacket -1001ef80 T update_hidden_ssid -1001efd4 T issue_beacon -1001f1ec T issue_probersp -1001f47c T OnProbeReq -1001f544 T issue_probereq -1001f6fc T issue_auth -1001f964 T OnAuth -1001fc08 T issue_asocrsp -1001fe7c T issue_assocreq -100201b8 T issue_nulldata -100202a2 T issue_qos_nulldata -100203d4 T issue_deauth -100204bc T issue_action_BA -10020738 T OnAction_back -10020806 T collect_bss_info -10020a38 T start_clnt_auth -10020ac8 T start_clnt_assoc -10020afc T OnAuthClient -10020bdc T report_scan_result_one -10020d9c T add_site_survey -10020f22 T report_survey_event -10021160 T OnProbeRsp -10021194 T report_surveydone_event -100211f8 T report_join_res -10021268 T OnAssocRsp -100213b4 T report_del_sta_event -10021446 T receive_disconnect -1002149c T OnBeacon -10021624 T OnDeAuth -1002177c T OnDisassoc -100218ec T report_add_sta_event -10021960 T OnAssocReq -10021f50 T rtw_port_switch_chk -10021fd4 T update_sta_info -10022054 T mlmeext_sta_del_event_callback -100220d4 T _linked_info_dump -10022136 T _linked_rx_signal_strehgth_display -10022170 T linked_status_chk -100223e4 T survey_timer_hdl -100224c4 T _survey_timer_hdl -100224c8 T link_timer_hdl -10022546 T _link_timer_hdl -1002254a T addba_timer_hdl -1002256a T NULL_hdl -1002256e T setopmode_hdl -100225b4 T disconnect_hdl -10022660 T setauth_hdl -10022670 T setkey_hdl -100226c8 T set_stakey_hdl -100227cc T set_tx_beacon_cmd -10022840 T mlme_evt_hdl -1002288c T tx_beacon_hdl -10022946 T check_buddy_mlmeinfo_state -10022960 T site_survey -10022b30 T sitesurvey_cmd_hdl -10022c3e T concurrent_chk_start_clnt_join -10022cd4 T start_clnt_join -10022da8 T join_cmd_hdl -10022ecc T concurrent_chk_joinbss_done -10023094 T mlmeext_joinbss_event_callback -100231d0 T set_chplan_hdl -100231ec T init_mlme_ext_timer -10023248 T init_mlme_ext_priv -10023384 t get_hdr_bssid -100233ac t filter_packet -10023434 t promisc_get_encrypt -10023486 t promisc_info_get -1002352a t promisc_set_enable -100235c6 T _promisc_deinit -10023618 T _promisc_recv_func -10023b64 T _promisc_set -10023bf4 T _is_promisc_enabled -10023c0c t SetEAPOL_KEYIV -10023caa t ToDrv_SetPTK -10023d52 t Message_ReplayCounter_OC2LI.isra.2 -10023d80 t Message_SmallerEqualReplayCounter.isra.4 -10023db2 t Message_setReplayCounter.isra.5 -10023dd0 t INCLargeInteger -10023df0 t INCOctet16_INTEGER -10023e38 t INCOctet32_INTEGER -10023e98 t ToDrv_DisconnectSTA -10023f5c t CheckMIC.constprop.14 -10023fdc t CalcMIC.constprop.15 -1002403c T DecWPA2KeyData -100240f0 T DecGTK -100241ac T ToDrv_SetGTK -1002423c T init_wpa_sta_info -10024328 T SendEAPOL -100249e0 T ClientSendEAPOL -10024ec8 t ResendTimeout -10024f50 T EAPOLKeyRecvd -100250c8 T ClientEAPOLKeyRecvd -10025488 T psk_derive -1002553c T psk_init -1002562c T psk_strip_rsn_pairwise -100256ac T psk_strip_wpa_pairwise -1002572c T tkip_send_mic_failure_report -100258a0 T pwr_state_check_handler -100258a4 T ips_enter -1002594c T ips_leave -10025a64 T rtw_pwr_unassociated_idle -10025aae T rtw_ps_processor -10025b06 T PS_RDY_CHECK -10025b6e T rtw_set_ps_mode -10025bdc T LPS_RF_ON_check -10025c32 T LPS_Enter -10025ca0 T LPS_Leave -10025cdc T LeaveAllPowerSaveMode -10025cec T rtw_init_pwrctrl_priv -10025dc0 T rtw_free_pwrctrl_priv -10025dd4 T _rtw_pwr_wakeup -10025eb0 T rtw_pm_set_lps -10025ef8 T rtw_pm_set_ips -10025f3c T rtw_pm_set_tdma_param -10025f58 T rtw_pm_set_lps_dtim -10025f64 T rtw_pm_get_lps_dtim -10025f70 t recvframe_pull -10025f92 t recvframe_pull_tail -10025fb4 T rtw_signal_stat_timer_hdl -10026052 T _rtw_init_sta_recv_priv -10026070 T _rtw_init_recv_priv -10026118 T rtw_mfree_recv_priv_lock -1002614c T _rtw_alloc_recvframe -1002617e T rtw_alloc_recvframe -100261a4 T rtw_free_recvframe -10026240 T _rtw_enqueue_recvframe -1002626c T rtw_enqueue_recvframe -10026296 T rtw_free_recvframe_queue -100262ce T rtw_free_uc_swdec_pending_queue -100262f6 T _rtw_free_recv_priv -10026326 T rtw_free_buf_pending_queue -1002632a T recvframe_chkmic -10026428 T decryptor -100264c4 T portctrl -1002653a T recv_decache -10026568 T process_pwrbit_data -100265a8 T process_wmmps_data -10026630 T count_rx_stats -100266a4 T sta2sta_data_frame -100267e0 T ap2sta_data_frame -1002690c T sta2ap_data_frame -10026994 T validate_recv_ctrl_frame -10026b2e T validate_recv_data_frame -10026d88 T wlanhdr_to_ethhdr -10026ec4 T recvframe_defrag -10026f6e T recvframe_chk_defrag -10027024 T validate_recv_mgnt_frame -10027060 T validate_recv_frame -10027128 T recv_indicatepkt_reorder -1002714a T process_recv_indicatepkts -100271a2 T recv_func_prehandle -100271ca T recv_func_posthandle -1002722e T recv_func -100272b8 T rtw_recv_entry -100272e8 T rtw_recv_tasklet -10027340 T rtw_wep_encrypt -10027386 T rtw_wep_decrypt -100273cc T rtw_tkip_encrypt -10027438 T rtw_tkip_decrypt -100274a4 T rtw_aes_encrypt -10027510 T rtw_aes_decrypt -10027574 T rtw_init_sec_priv -100275e6 T rtw_free_sec_priv -10027606 t wifi_mac_hash -10027630 T _addba_timer_hdl -10027634 T _rtw_init_stainfo -100276ae T _rtw_init_sta_priv -10027796 T _rtw_free_sta_xmit_priv_lock -100277c2 T rtw_mfree_stainfo -100277ee T rtw_mfree_sta_priv_lock -10027824 T _rtw_free_sta_priv -10027844 T init_addba_retry_timer -1002786c T rtw_alloc_stainfo -10027936 T rtw_free_stainfo -10027ad8 T rtw_get_stainfo -10027b54 T rtw_init_bcmc_stainfo -10027b84 T rtw_get_bcmc_stainfo -10027ba8 T rtw_free_all_stainfo -10027c02 T cckrates_included -10027c2a T cckratesonly_included -10027c52 T networktype_to_raid_ex -10027cb0 T judge_network_type -10027d00 T ratetbl_val_2wifirate -10027d14 T is_basicrate -10027d40 T ratetbl2rateset -10027d84 T get_rate_set -10027dae T UpdateBrateTbl -10027de0 T UpdateBrateTblForSoftAP -10027e14 T Save_DM_Func_Flag -10027e2a T Restore_DM_Func_Flag -10027e40 T Switch_DM_Func -10027e5c T Set_MSR -10027e80 T set_opmode -10027ec4 T SelectChannel -10027ef8 T SetBWMode -10027f34 T set_channel_bwmode -10027f8a T get_my_bssid -10027f8e T get_beacon_interval -10027fac T is_client_associated_to_ap -10027fc4 T is_client_associated_to_ibss -10027fe0 T is_IBSS_empty -10028002 T decide_wait_for_beacon_timeout -1002801e T invalidate_cam_all -10028026 T write_cam -1002809c T clear_cam_entry -100280ca T flush_all_cam_entry -10028128 T WMM_param_handler -1002814e T WMMOnAssocRsp -1002821c T HT_caps_handler -100282bc T HT_info_handler -100282e0 T HTOnAssocRsp -10028318 T ERP_IE_handler -10028334 T VCS_update -10028386 T rtw_check_bcn_info -10028596 T update_beacon_info -100285ec T is_ap_in_tkip -10028664 T wifirate2_ratetbl_inx -100286d0 T update_basic_rate -100286fe T update_supported_rate -10028728 T update_MCS_rate -10028734 T support_short_GI -10028762 T get_highest_rate_idx -1002877c T Update_RA_Entry -10028784 T set_sta_rate -1002878c T update_tx_basic_rate -100287e4 T check_assoc_AP -100288d8 T update_IOT_info -10028936 T update_capinfo -100289b4 T update_wireless_mode -10028a54 T update_bmc_sta_support_rate -10028a7c T update_TSF -10028a8e T correct_TSF -10028a96 t _init_txservq -10028aac t set_qos -10028afc T _rtw_init_sta_xmit_priv -10028b42 T rtw_mfree_xmit_priv_lock -10028b8e T qos_acm -10028bc8 T xmitframe_addmic -10028d26 T xmitframe_swencrypt -10028d52 T rtw_make_wlanhdr -10028f32 T rtw_txframes_pending -10028f6e T rtw_txframes_sta_ac_pending -10028fa4 T rtw_txframes_update_attrib_vcs_info -10029044 T rtw_put_snap -10029088 T rtw_update_protection -100290ce T rtw_count_tx_stats -1002911e T rtw_free_xmitbuf_ext -10029160 T rtw_alloc_xmitframe -100291b8 T rtw_free_xmitframe -1002920a T rtw_free_xmitframe_queue -10029248 T rtw_get_sta_pending -10029288 T rtw_xmit_classifier -100292ee T rtw_xmitframe_enqueue -100292fc T rtw_alloc_hwxmits -10029356 T rtw_free_hwxmits -1002936c T _rtw_free_xmit_priv -10029438 T rtw_init_hwxmits -10029450 T _rtw_init_xmit_priv -10029608 T rtw_get_ff_hwaddr -1002961c T xmitframe_enqueue_for_sleeping_sta -100297dc t dequeue_xmitframes_to_sleeping_queue -10029832 T stop_sta_xmit -1002991a T wakeup_sta_to_xmit -10029b30 T xmit_delivery_enabled_frames -10029c4c T rtw_xmit_tasklet -10029ca4 T rtw_xmit_mgnt -10029ca8 T rtw_xmit -10029fd2 T rtw_sctx_done_err -10029fde T rtw_alloc_xmitbuf -1002a038 T rtw_free_xmitbuf -1002a0aa T rtw_alloc_xmitbuf_ext -1002a130 T rtw_sctx_done -1002a136 t rtl8195a_free_rx_ring -1002a144 t bus_write32 -1002a1a0 t bus_write16 -1002a1fc t bus_write8 -1002a258 t bus_read32 -1002a2b2 t bus_read16 -1002a30e t bus_read8 -1002a36a t rtl8195a_free_tx_ring -1002a3f8 T rtl8195a_init_desc_ring -1002a538 T rtl8195a_free_desc_ring -1002a554 T rtl8195a_reset_desc_ring -1002a5ea T InitLxDmaRtl8195a -1002a74c T rtl8195a_check_txdesc_closed -1002a7c4 t rtl8195a_tx_isr -1002a8a8 T InterruptRecognized8195a -1002a938 T InitInterrupt8195a -1002a958 T EnableDMA8195a -1002a980 T EnableInterrupt8195a -1002a9c0 T DisableDMA8195a -1002a9cc T DisableInterrupt8195a -1002a9e4 T UpdateInterruptMask8195a -1002aa46 T CheckRxTgRtl8195a -1002aa80 T rtl8192ee_check_rxdesc_remain -1002aab0 T rtl8195a_recv_tasklet -1002adc4 T rtl8195a_tx_int_handler -1002adf0 T InterruptHandle8195a -1002b064 T rtl8195a_xmit_tasklet -1002b08c T lxbus_set_intf_ops -1002b0cc t GetTxBufDesc -1002b116 t UpdateFirstTxbdtoXmitBuf.isra.3 -1002b148 t check_nic_enough_desc.isra.4 -1002b198 T rtl8195ab_init_xmit_priv -1002b1a6 T rtl8195ab_free_xmit_priv -1002b1ae T GetDmaTxbdIdx -1002b1ca T rtl8195a_enqueue_xmitbuf -1002b1ee T rtl8195a_dequeue_xmitbuf -1002b212 T SetTxbdForLxDMARtl8195ab -1002b292 T UpdateTxbdHostIndex -1002b2d0 T rtw_dump_xframe -1002b4a2 T check_tx_desc_resource -1002b4dc T rtw_dequeue_xframe -1002b570 T rtw_xmitframe_coalesce -1002b824 T rtl8195ab_xmitframe_resume -1002b91a T rtl8195ab_mgnt_xmit -1002b956 T rtl8195ab_hal_xmit -1002ba64 t Hal_GetEfuseDefinition -1002ba94 t ResumeTxBeacon -1002bad8 T UpdateHalRAMask8195A -1002bc70 T HalLittleWifiMCUThreadRtl8195a -1002bcc4 T HalCheckInReqStateThreadRtl8195a -1002bd10 T HalTDMAChangeStateThreadRtl8195a -1002bd5c t rtl8195a_read_chip_version -1002bdd0 t Hal_EfuseWordEnableDataWrite -1002c014 t Hal_EfusePowerSwitch -1002c028 t rtl8195a_free_hal_data -1002c042 t StopTxBeacon -1002c08c T SetHalODMVar8195A -1002c144 T rtl8195a_start_thread -1002c1ac T rtl8195a_stop_thread -1002c1d0 t Hal_ReadEFuse -1002c340 T GetHalODMVar8195A -1002c354 t rtw_flash_map_update.part.12 -1002c3f4 t rtw_flash_map_erase -1002c438 t Hal_EfusePgPacketWrite -1002c6b4 t Hal_EfuseGetCurrentSize -1002c794 t rtw_flash_map_write -1002c962 T rtl8195a_InitBeaconParameters -1002c9d2 T _InitBurstPktLen_8195AB -1002c9dc T rtl8195a_set_hal_ops -1002cabc T rtl8195a_init_default_value -1002cabe T rtl8195a_InitLLTTable -1002cb08 T Hal_GetChnlGroup8195A -1002cb44 T rtw_config_map_read -1002cc30 T rtw_config_map_write -1002ccdc T Hal_InitPGData -1002cd3a T Hal_EfuseParseIDCode -1002cd52 T Hal_ReadPowerValueFromPROM_8195A -1002cdf0 T Hal_EfuseParseTxPowerInfo_8195A -1002ce88 T Hal_EfuseParseEEPROMVer_8195A -1002ce9e T Hal_EfuseParsePackageType_8195A -1002cf08 T Hal_EfuseParseChnlPlan_8195A -1002cf38 T Hal_EfuseParseCustomerID_8195A -1002cf4e T Hal_EfuseParseXtal_8195A -1002cf66 T Hal_EfuseParseThermalMeter_8195A -1002cf8e T Hal_ReadRFGainOffset -1002cfde T BWMapping_8195A -1002cffe T SCMapping_8195A -1002d026 T rtl8195a_update_txdesc -1002d2f6 T rtl8195a_fill_fake_txdesc -1002d3b4 T SetHwReg8195A -1002e074 T GetHwReg8195A -1002e108 T SetHalDefVar8195A -1002e1e8 T GetHalDefVar8195A -1002e20c T PHY_QueryBBReg_8195A_Safe -1002e238 T PHY_SetBBReg_8195A_Safe -1002e264 t phy_RFSerialRead_8195A -1002e318 T PHY_QueryRFReg_8195A -1002e330 T PHY_SetRFReg_8195A -1002e388 T PHY_MACConfig8195A -1002e3a2 T PHY_BBConfig8195A -1002e4b2 T PHY_RFConfig8195A -1002e4b6 T PHY_SetTxPowerIndex_8195A -1002e5c0 T phy_TxPwrAdjInPercentage -1002e600 T PHY_GetTxPowerIndex_8195A -1002e6f0 T PHY_SetTxPowerLevel8195A -1002e6f6 T phy_SpurCalibration_8195A -1002e9ae T phy_SetRegBW_8195A -1002e9ec T phy_PostSetBwMode8195A -1002eb48 T phy_SwChnl8195A -1002ebf0 T phy_SwChnlAndSetBwMode8195A -1002ec40 T PHY_HandleSwChnlAndSetBW8195A -1002ecf0 T PHY_SetBWMode8195A -1002ed12 T PHY_SwChnl8195A -1002ed2c T PHY_SetSwChnlBWMode8195A -1002ed4a t HalTimerEnable -1002ed5c T InitTDMATimer -1002ed84 T ChangeStateByTDMA -1002ed94 T GetMinRateInRRSR -1002edc8 T CheckInReqState -1002edd8 T InitCheckStateTimer -1002ee08 T InitGTimer1ms -1002ee54 T DeInitGTimer1ms -1002ee9c T ChangeTransmiteRate -1002eed8 T PowerBitSetting -1002ef54 T ChkandChangePS -1002efb8 T IssueRsvdPagePacketSetting -1002f02c T IssuePSPoll -1002f058 T WaitTxStateMachineOk -1002f0ac T IssueNullData -1002f13c T PsCloseRF -1002f170 T PsOpenRF -1002f1a0 T ChkTxQueueIsEmpty -1002f1b8 T InitPS -1002f228 T ConfigListenBeaconPeriod -1002f24c T PS_S2_Condition_Match -1002f280 T PS_S4_Condition_Match -1002f2fc T PS_32K_Condition_Match -1002f338 T PS_S2ToS3ToS0State -1002f3a0 T PS_S2ToS0State -1002f3bc T PS_S3ToS2orS0State -1002f3ec T PS_S0ToS1ToS2State -1002f448 T PS_S1ToS0orS2State -1002f478 T PS_S2ToS4State -1002f4c4 T PS_S0ToS6State -1002f4e4 T PS_S6ToS0State -1002f4fc T CheckTSFIsStable -1002f54c T WaitHWStateReady -1002f55c T SysClkDown -1002f5cc T SysClkUp -1002f618 T ResetPSParm -1002f68c T PS_S4ToS2State -1002f6b0 T SleepTo32K -1002f710 T Change_PS_State -1002f8bc T Legacy_PS_Setting -1002f930 T PSModeSetting -1002f9d4 T ChangePSStateByRPWM -1002fa18 T ChangeTDMAState -1002fb38 T TDMAChangeStateTask -1002fb62 T EnterPS -1002fb84 T SetSmartPSTimer -1002fbc0 T GTimer7Handle -1002fc1c T SmartPS2InitTimerAndToGetRxPkt -1002fc58 T PS_OnBeacon -1002fd08 T PSBcnEarlyProcess -1002fdc4 T PSMtiBcnEarlyProcess -1002fe70 T PSRxBcnProcess -1002ffc0 T TxPktInPSOn -1002fffe T PsBcnToProcess -100300b8 T GTimer6Handle -10030104 T RPWMProcess -10030140 T PSSetMode -100301b8 T SpeRPT -100302d8 T ISR_BcnEarly -10030344 T ISR_MtiBcnEarly -10030378 T ISR_RxBcn -10030394 T ISR_RxBCMD1 -100303c4 T ISR_RxBCMD0 -10030418 T ISR_RxUCMD1 -10030456 T ISR_RxUCMD0 -10030492 T ISR_TxPktIn -100304a4 T ISR_TXCCX -100304a8 T H2CHDL_SetPwrMode -100305d0 T CheckInReqStateTask -10030616 T HalGetNullTxRpt -10030634 T ISR_TBTT -100306ac T H2CHDL_BcnIgnoreEDCCA -100306bc T PMUInitial -1003070c T PMUTask -10030818 T PHY_RF6052SetBandwidth8195A -1003085c T PHY_RF6052_Config8195A -10030914 t process_rssi -1003094a T rtl8195a_query_rx_desc_status -100309fa T rtl8195a_query_rx_phy_status -10030b52 T hal_com_get_channel_plan -10030b86 T HAL_IsLegalChannel -10030ba4 T MRateToHwRate -10030bb8 T HwRateToMRate -10030bcc T HalSetBrateCfg -10030c78 T Hal_MappingOutPipe -10030c94 T hal_init_macaddr -10030cc0 T hw_var_port_switch -10030f48 T SetHwReg -10030f52 T GetHwReg -10030f54 T switch_power_saving_mode -10030f98 T rtw_bb_rf_gain_offset -10030fe0 T PHY_GetRateValuesOfTxPowerByRate -10031178 T PHY_StoreTxPowerByRateNew -10031214 T PHY_InitTxPowerByRate -1003122c T PHY_StoreTxPowerByRate -10031244 T PHY_GetTxPowerIndexBase -100312e4 T PHY_GetTxPowerTrackingOffset -10031310 T PHY_GetRateIndexOfTxPowerByRate -10031324 T PHY_GetTxPowerByRate -10031384 T phy_StoreTxPowerByRateBase -100313d0 T PHY_SetTxPowerByRate -1003140c T phy_ConvertTxPowerByRateInDbmToRelativeValues -1003150c T PHY_TxPowerByRateConfiguration -1003151e T PHY_SetTxPowerIndexByRateArray -1003155c T PHY_SetTxPowerIndexByRateSection -100315c0 T PHY_SetTxPowerLevelByPath -100315f6 T phy_GetWorldWideLimit -10031622 T PHY_GetTxPowerLimit -1003174c T PHY_ConvertTxPowerLimitToPowerIndex -1003189c T PHY_InitTxPowerLimit -100318e4 T PHY_SetTxPowerLimit -10031960 T PHY_GetTxPowerIndex -10031970 T rtw_hal_chip_configure -10031986 T rtw_hal_read_chip_info -1003199c T rtw_hal_read_chip_version -100319b2 T rtw_hal_def_value_init -100319c8 T rtw_hal_free_data -100319de T rtw_hal_dm_init -100319f4 T rtw_hal_dm_deinit -10031a0a T rtw_hal_init -10031a34 T rtw_hal_deinit -10031a4e T rtw_hal_set_hwreg -10031a5c T rtw_hal_get_hwreg -10031a6a T rtw_hal_set_def_var -10031a7c T rtw_hal_get_def_var -10031a8e T rtw_hal_set_odm_var -10031a9c T rtw_hal_get_odm_var -10031aaa T rtw_hal_enable_interrupt -10031acc T rtw_hal_disable_interrupt -10031aee T rtw_hal_inirp_init -10031b00 T rtw_hal_inirp_deinit -10031b12 T rtw_hal_irp_reset -10031b20 T rtw_hal_xmit -10031b32 T rtw_hal_mgnt_xmit -10031b44 T rtw_hal_init_xmit_priv -10031b56 T rtw_hal_free_xmit_priv -10031b64 T rtw_hal_update_ra_mask -10031b92 T rtw_hal_add_ra_tid -10031ba0 T rtw_hal_clone_data -10031bae T rtw_hal_start_thread -10031bbc T rtw_hal_stop_thread -10031bca T rtw_hal_read_bbreg -10031bfe T rtw_hal_write_bbreg -10031c2a T rtw_hal_read_rfreg -10031c3c T rtw_hal_write_rfreg -10031c50 T rtw_hal_interrupt_handler -10031c62 T rtw_hal_set_bwmode -10031c70 T rtw_hal_set_chan -10031c7e T rtw_hal_set_chnl_bw -10031c94 T rtw_hal_dm_watchdog -10031caa T rtw_hal_macid_sleep -10031cca T rtw_hal_macid_wakeup -10031cea T decide_chip_type_by_device_id -10031cf0 t rtw_net_get_stats -10031d40 t netdev_if2_close -10031d60 t netdev_close -10031dbc t rtw_if1_deinit -10031e56 T rtw_os_indicate_connect -10031e5a T rtw_os_indicate_scan_done -10031e5e T rtw_reset_securitypriv -10031f52 T rtw_os_indicate_disconnect -10031f9c T rtw_init_netdev -100320ec T rtw_drv_if2_init -100322f4 T rtw_drv_if2_stop -1003234a T rtw_drv_if2_free -10032398 T _netdev_open -100324b4 T _netdev_if2_open -10032570 T netdev_if2_open -10032598 T netdev_open -100325c0 T rtw_drv_probe -10032740 T rtw_dev_remove -10032784 T rtw_drv_entry -100327b0 T rtw_drv_halt -100327e0 t rtw_wx_set_autoreconnect -1003280e t rtw_wx_get_autoreconnect -1003281c t rtw_forwarding_set -1003283e t rtw_set_ch_deauth -10032860 t get_priv_size -10032874 t rtw_wx_del_custome_ie -100328c0 t rtw_wx_set_pscan_freq -10032942 t rtw_wx_update_custome_ie -100329b4 t rtw_set_tos_value -100329d4 t rtw_get_tx_power -10032b18 t rtw_wx_set_custome_ie -10032bc4 t rtw_pm_get -10032c08 t rtw_pm_set -10032cbc t rtw_wx_read32 -10032d68 t rtw_wx_write32 -10032dcc t rtw_wx_set_freq.isra.10 -10032e74 T rtw_ex_set -10032f34 T wireless_send_event -10032f3e T indicate_wx_custom_event -10032f9a T indicate_wx_scan_result_present -10032fc2 T indicate_wx_scan_complete_event -10032fec T rtw_indicate_sta_assoc -1003303c T rtw_indicate_sta_disassoc -10033094 T rtw_indicate_wx_assoc_event -100330c6 T rtw_indicate_wx_disassoc_event -100330f6 T rtw_set_wpa_ie -1003320c T strtopsk -10033278 T rtw_wx_get_passphrase -100332c4 T rtw_wx_set_ap_essid -100333b4 T mac_reg_dump -10033460 T bb_reg_dump -100334bc T rf_reg_dump -10033534 t rtw_dbg_port -10033b9c T rtw_set_sta_num -10033bb8 T rtw_ex_get_drv_ability -10033c78 T rtw_ex_get -10033f10 T rtw_ioctl -10034e9c T rtw_os_recv_resource_init -10034ea0 T rtw_os_recv_resource_alloc -10034eaa T rtw_os_recv_resource_free -10034eac T rtw_tkip_countermeasure -10034f4c T rtw_handle_tkip_mic_err -10034ff4 T rtw_recv_indicatepkt -10035244 T skb_fail_inc -10035260 T skb_fail_get_and_rst -1003527c T init_skb_pool -100352d4 T init_skb_data_pool -1003532c T alloc_skb -1003542c T kfree_skb -10035494 T kfree_skb_chk_key -10035498 T skb_put -100354cc T skb_reserve -100354da T dev_alloc_skb -100354f6 T skb_end_pointer -100354fa T skb_set_tail_pointer -10035502 T skb_pull -1003551a T skb_copy -10035542 T rtw_remainder_len -1003554e T _rtw_open_pktfile -10035560 T _rtw_pktfile_read -1003558e T rtw_set_tx_chksum_offload -10035590 T rtw_os_xmit_resource_alloc -1003559a T rtw_os_xmit_resource_free -1003559c T rtw_os_pkt_complete -100355a4 T rtw_os_xmit_complete -100355b6 T rtw_os_xmit_schedule -100355f2 T rtw_xmit_entry -1003563e T rtw_alloc_etherdev_with_old_priv -10035654 T rtw_alloc_etherdev -10035680 T rtw_free_netdev -100356a0 T timer_wrapper -100356f4 T alloc_etherdev -10035750 T free_netdev -1003576a T dev_alloc_name -10035774 T init_timer_wrapper -10035794 T deinit_timer_wrapper -100357e0 T init_timer -10035898 T mod_timer -10035978 T cancel_timer_ex -100359c0 T del_timer_sync -10035a24 T rtw_init_timer -10035a2c T rtw_set_timer -10035a30 T rtw_cancel_timer -10035a3a T rtw_del_timer -10035a40 T rltk_get_idx_bydev -10035a50 T rltk_wlan_init -10035ad8 T rltk_wlan_deinit -10035b9c T rltk_wlan_start -10035bd0 T rltk_wlan_check_isup -10035be0 T rltk_wlan_tx_inc -10035bf4 T rltk_wlan_tx_dec -10035c08 T rltk_wlan_get_recv_skb -10035c18 T rltk_wlan_alloc_skb -10035c58 T rltk_wlan_send_skb -10035c8c T rltk_netif_rx -10035d38 T rltk_set_sta_num -10035d3c T rltk_set_tx_power_percentage -10035d70 T rltk_wlan_control -10035e04 T rltk_wlan_running -10035e1c T rltk_wlan_handshake_done -10035e50 T rltk_wlan_is_connected_to_ap -10035e94 T Efuse_PowerSwitch -10035ea0 T Efuse_GetCurrentSize -10035eac T Efuse_CalculateWordCnts -10035ed0 T EFUSE_GetEfuseDefinition -10035ee4 T efuse_OneByteRead -10035f18 T efuse_OneByteWrite -10035f4c T Efuse_PgPacketWrite -10035f60 T efuse_WordEnableDataRead -10035f92 T Efuse_WordEnableDataWrite -10035fa6 T efuse_GetCurrentSize -10035fce T rtw_efuse_map_read -10036030 T rtw_efuse_map_write -100361b0 T rtw_macaddr_cfg -10036274 T rtw_get_cipher_info -100362ee T rtw_get_bcn_info -100363be T rtw_init_default_value -1003642c T rtw_cancel_all_timer -10036496 T rtw_free_drv_sw -1003650c T rtw_reset_drv_sw -10036568 T rtw_init_drv_sw -100365f0 T rtw_start_drv_threads -100366ac T rtw_stop_drv_threads -100366e0 T rtw_read8 -100366ee T rtw_read16 -100366fc T rtw_read32 -1003670a T rtw_write8 -10036718 T rtw_write16 -10036726 T rtw_write32 -10036734 T rtw_do_join -100367d8 T rtw_set_802_11_bssid -1003695c T rtw_set_802_11_ssid -10036a64 T rtw_set_802_11_infrastructure_mode -10036b06 T rtw_set_802_11_bssid_list_scan -10036b56 T rtw_set_802_11_authentication_mode -10036b78 T rtw_set_802_11_add_wep -10036bd8 T ODM_InitRAInfo -10036c78 T InitialRateUpdate -10036d78 T RateUp_search_RateMask -10036daa T RateDown_search_RateMask -10036dfc T StartRateByRSSI -10036e26 T RateUpRAM8195A -10036eba T RateDownTrying -10036ef8 T TryDone -10036f90 T RateDownStepRAM8195A -10037030 T RateDecisionRAM8195A -10037114 T ArfrRefresh -1003731c T H2CHDL_Set_MACID_Config -100373e0 T PHY_DM_RA_SetRSSI_8195A -1003740e t CheckPositive.isra.0 -100374f0 T ODM_ReadAndConfig_MP_8195A_AGC_TAB -10037568 T ODM_ReadAndConfig_MP_8195A_PHY_REG -100375e0 T ODM_GetVersion_MP_8195A_PHY_REG -100375e4 T ODM_ReadAndConfig_MP_8195A_PHY_REG_PG -10037618 T odm_ConfigRFReg_8195A -10037650 T odm_ConfigRF_RadioA_8195A -10037660 T odm_ConfigMAC_8195A -10037664 T odm_ConfigBB_AGC_8195A -10037674 T odm_ConfigBB_PHY_REG_PG_8195A -100376a2 T odm_ConfigBB_PHY_8195A -100376ea T odm_ConfigBB_TXPWR_LMT_8195A -10037710 T ODM_CmnInfoInit -10037804 T ODM_CmnInfoHook -100378a8 T ODM_CmnInfoPtrArrayHook -100378b8 T ODM_CmnInfoUpdate -10037988 T odm_CommonInfoSelfInit -100379fc T ODM_DMInit -10037a4a T odm_CommonInfoSelfUpdate -10037a9c T ODM_DMWatchdog -10037b08 T PhyDM_Get_Structure -10037b2c T Phydm_CheckAdaptivity -10037b5a T Phydm_NHMCounterStatisticsInit -10037bd0 T Phydm_SetEDCCAThreshold -10037c08 T Phydm_MACEDCCAState -10037c46 T Phydm_AdaptivityInit -10037d24 T Phydm_Adaptivity -10037e44 T ODM_CfoTrackingInit -10037e6e T ODM_CfoTracking -10037e8e T ODM_ParsingCFO -10037ec0 T ODM_InitDebugSetting -10037ed4 T ODM_Write_DIG -10037f74 T odm_ForbiddenIGICheck -10038006 T ODM_Write_CCK_CCA_Thres -10038040 T odm_DIGInit -100380da T odm_DigAbort -100380fc T odm_DIGbyRSSI_LPS -100381a8 T odm_FAThresholdCheck -100381d4 T odm_DIG -10038434 T odm_FalseAlarmCounterStatistics -10038460 T odm_CCKPacketDetectionThresh -100384b8 T odm_RxPhyStatus8195A_Parsing -100385bc T odm_Process_RSSIForDM_8195A -100386fe T ODM_PhyStatusQuery_8195A -1003872a T ODM_PhyStatusQuery -1003872e T ODM_ConfigRFWithHeaderFile -1003874c T ODM_ConfigRFWithTxPwrTrackHeaderFile -1003877e T ODM_ConfigBBWithHeaderFile -100387a6 T ODM_ConfigMACWithHeaderFile -100387b8 T ODM_Read1Byte -100387be T ODM_Read4Byte -100387c4 T ODM_Write1Byte -100387ca T ODM_Write2Byte -100387d0 T ODM_Write4Byte -100387d6 T ODM_SetMACReg -100387dc T ODM_SetBBReg -100387e2 T ODM_GetBBReg -100387e8 T ODM_SetRFReg -100387ee T ODM_GetRFReg -100387f4 T ODM_MoveMemory -100387fe T ODM_delay_ms -10038802 T ODM_delay_us -10038808 T getSwingIndex -10038860 T odm_TXPowerTrackingThermalMeterInit -10038912 T odm_TXPowerTrackingInit -10038916 T odm_TXPowerTrackingCheckIOT -1003894a T ODM_TXPowerTrackingCheck -10038958 T odm_RSSIMonitorInit -10038960 T ODM_RAPostActionOnAssoc -10038968 T odm_RSSIMonitorCheckIOT -10038a3c T odm_RSSIMonitorCheck -10038a50 T odm_RateAdaptiveMaskInit -10038a78 T ODM_RAStateCheck -10038aba T odm_RefreshRateAdaptiveMaskIOT -10038b0a T odm_RefreshRateAdaptiveMask -10038b20 T ODM_Get_Rate_Bitmap -10038c10 t _ReadEfuseInfo8195a -10038cd8 t rtl8195a_interface_configure -10038d0c t rtl8195a_hal_deinit -10038d48 T _InitPowerOn -10038dc8 t ReadAdapterInfo8195a -10038df8 T _InitDriverInfoSize -10038e02 T _InitNetworkType -10038e24 T _InitWMACSetting -10038e94 T _InitAdaptiveCtrl -10038ed8 T _InitEDCA -10038f54 T _InitRateFallback -10038f98 T _InitRetryFunction -10038fc4 T _InitOperationMode -1003900c T _InitInterrupt -1003904c t rtl8195a_hal_init -10039324 T rtl8195ab_set_hal_ops -100393fc T FillH2CCmd8195A -1003941c T CheckFwRsvdPageContent -1003941e T rtl8195a_set_FwRsvdPage_cmd -10039428 T rtl8195a_set_FwMediaStatusRpt_cmd -10039454 T rtl8195a_set_FwMacIdConfig_cmd -10039514 T rtl8195a_set_FwPwrMode_cmd -100395a4 T rtl8195a_download_rsvd_page -100398ac T rtl8195a_set_FwJoinBssRpt_cmd -100398b6 T rtl8195a_Add_RateATid -10039908 T rtw_rpt_h_addr -10039954 T rtw_txrpt_read8 -10039972 T rtw_txrpt_write8 -10039996 T rtw_ratemask_read8 -100399b4 T rtw_ratemask_write8 -100399d8 T ReadRateMask8 -100399e2 T WriteRateMask8 -100399e6 T ReadTxrpt8 -100399f0 T WriteTxrpt8 -100399f4 T ResetTxrpt -10039a2c T PsuseTxrpt -10039a4c T CheckMaxMacidNum -10039a84 T GetMediaStatusCommon -10039a9e T GetTxrptStatistic -10039b54 T rtl8195a_InitHalDm -10039c78 T rtl8195a_HalDmWatchDog -10039d5c T rtl8195a_init_dm_priv -10039e34 T rtl8195a_deinit_dm_priv -10039e36 T MediaConnection -10039e54 T MediaDisconnection -10039e74 T RATaskEnable -10039e9e T SetMediaStatus -10039edc T H2CHDL_JoinInfo -10039f14 T H2CHDL_SetRsvdPage -10039fac T H2CCmdCommon -10039ff0 T HalPwrSeqCmdParsing -1003a0b0 T hci_dvobj_init -1003a0c0 T hci_dvobj_deinit -1003a0d0 T hci_dvobj_request_irq -1003a0e0 T hci_dvobj_free_irq -1003a0f0 T hci_lxbus_dvobj_init -1003a12c T hci_lxbus_dvobj_deinit -1003a16c T hci_lxbus_dvobj_request_irq -1003a1c0 T hci_lxbus_free_irq -1003a218 T hci_lxbus_intf_stop -1003a250 T rtw_interrupt_thread -1003a2c4 T lextra_bus_dma_Interrupt -1003a30c T init_rom_wlan_ram_map -1003a324 T ODM_ReadAndConfig_MP_8195A_MAC_REG -1003a480 t CheckPositive.isra.0 -1003a564 T ODM_ReadAndConfig_MP_8195A_RadioA -1003a5dc T ODM_ReadAndConfig_MP_8195A_TxPowerTrack_QFN48 -1003a62c T ODM_ReadAndConfig_MP_8195A_TxPowerTrack_QFN56 -1003a67c T ODM_ReadAndConfig_MP_8195A_TxPowerTrack_TFBGA96 -1003a6cc T ODM_ReadAndConfig_MP_8195A_TXPWR_LMT -1003a704 T ODM_ReadAndConfig_MP_8195A_TxXtalTrack -1003a730 T GetDeltaSwingTable_8195A -1003a760 T GetDeltaSwingXtalTable_8195A -1003a770 T ODM_TxXtalTrackSetXtal_8195A -1003a790 T Hal_MPT_CCKTxPowerAdjust -1003a860 T ODM_TxPwrTrackSetPwr_8195A -1003a970 T ConfigureTxpowerTrack_8195A -1003a9bc T phy_PathA_IQK_8195A -1003ab70 T phy_PathA_RxIQK8195A -1003af04 T _PHY_PathAFillIQKMatrix8195A -1003b09a T _PHY_PathBFillIQKMatrix8195A -1003b216 T _PHY_SaveADDARegisters8195A -1003b24a T _PHY_SaveMACRegisters8195A -1003b278 T _PHY_ReloadADDARegisters8195A -1003b2ac T _PHY_ReloadMACRegisters8195A -1003b2dc T _PHY_PathADDAOn8195A -1003b318 T _PHY_MACSettingCalibration8195A -1003b360 T _PHY_PIModeSwitch8195A -1003b39c T phy_SimularityCompare_8195A -1003b4d0 T phy_IQCalibrate_8195A -1003b848 T phy_LCCalibrate_8195A -1003b8b8 T PHY_LCCalibrate_8195A -1003b918 T PHY_IQCalibrate_8195A -1003bbcc T DoIQK_8195A -1003bbea T ConfigureTxpowerTrack -1003bbfc T ODM_TXPowerTrackingCallback_ThermalMeter -1003c008 T ODM_ResetIQKResult -1003c050 T ODM_GetRightChnlPlaceforIQK -1003c0a8 t __rtw_get_wpa_ie_veneer -1003c0b8 t __rtw_get_sec_ie_veneer -1003c0c8 t __rom_psk_CalcPTK_veneer -1003c0d8 t __rtw_ieee802_11_parse_elems_veneer -1003c0e8 t __rtw_set_supported_rate_veneer -1003c0f8 t ___vsscanf_veneer -1003c108 t __rtw_get_rateset_len_veneer -1003c118 t __AES_UnWRAP_veneer -1003c128 t __rt_arc4_crypt_veneer +1000619c T UartLogIrqHandleRam +10006264 T RtlConsolTaskRam +1000632c T console_init +100063f8 T SpicRxCmdRefinedRtl8195A +10006500 T SpicInitRefinedRtl8195A +100065b4 T SpicReadIDRtl8195A +100066b8 T SpicConfigAutoModeRtl8195A +10006728 T SpicUserReadRtl8195A +1000689c T SpicUserReadFourByteRtl8195A +100069b8 T SpicGetExtendAddrRtl8195A +10006a10 T SpicGetConfigRegRtl8195A +10006a68 T SpicGetFlashStatusRefinedRtl8195A +10006ac0 T SpicWaitWipDoneRefinedRtl8195A +10006afc T SpicTxCmdWithDataRtl8195A +10006bd0 T SpicGetFlashFlagRtl8195A +10006c5c T SpicWaitOperationDoneRtl8195A +10006c98 T SpicDeepPowerDownFlashRtl8195A +10006d24 T SpicUserProgramRtl8195A +10006f54 T SpicWaitWipRtl8195A +10006f68 T SpicTxFlashInstRtl8195A +10006ffc T SpicEraseFlashRefinedRtl8195A +10007006 T SpicDieEraseFlashRtl8195A +10007028 T SpicBlockEraseFlashRtl8195A +1000704a T SpicSectorEraseFlashRtl8195A +1000706c T SpicSetExtendAddrRtl8195A +10007086 T SpicSetFlashStatusRefinedRtl8195A +100070b8 T SpicWriteProtectFlashRtl8195A +100070e0 T SpicDisableRtl8195A +100070f0 T SpicNVMCalLoad +10007200 T SpicNVMCalLoadAll +1000721e T SpicNVMCalStore +10007378 T SpicCalibrationRtl8195A +100075cc T SpicFlashInitRtl8195A +10007678 T SpicOneBitCalibrationRtl8195A +10007690 T vWFSSVCHandler +10007696 t svcing +100076b0 T PatchHalLogUartInit +10007764 T PSHalInitPlatformLogUart +10007828 T InitSYSIRQ +10007864 T DurationScaleAndPeriodOP +1000789c T CLKCal +100078f8 T BackupCPUClk +10007918 T ReFillCpuClk +10007938 T SYSIrqHandle +10007978 T WakeFromSLPPG +10007ab0 T InitSoCPM +10007ae8 T RegPowerState +10007b54 T ReadHWPwrState +10007dd0 T QueryRegPwrState +10007e08 T SetSYSTimer +10007e40 T SleepCG +10007f40 T DeepSleep +10008084 T HALEFUSEOneByteReadRAM +100080a4 T HALEFUSEOneByteWriteRAM +100080a8 T FunctionChk +100080ac T HalGetChipId +100080d4 W __low_level_init +100080d6 t get_addr_fobj +10008120 t get_addr_fobj_save +1000816c t _fwrite_word +10008198 t get_addr_bscfg +10008214 T copy_align4_to_align1 +1000829e T cmp_align1_align4 +10008348 T flash_write_cfg +10008588 T flash_read_cfg +1000861c T rtl_libc_init +10008638 T rtl_snprintf +10008698 T rtl_sprintf +100086e4 T rtl_printf +1000871c T rtl_memcmp +10008724 T rtl_memcpy +1000872c T rtl_memmove +10008734 T rtl_memset +1000873c T rtl_strcmp +10008744 T rtl_strcpy +1000874c T rtl_strlen +10008754 T rtl_strncmp +1000875c T rtl_strncpy +10008764 T rtl_strsep +1000876c T memcpy +10008774 T memset +1000877c T sscanf +10008796 T __aeabi_llsr +100087ac T ram_libgloss_close +100087bc T ram_libgloss_fstat +100087dc T ram_libgloss_isatty +100087e8 T ram_libgloss_lseek +100087f8 T ram_libgloss_read +10008808 T ram_libgloss_sbrk +10008824 T ram_libgloss_write +10008844 T ram_libgloss_open +10008880 T init_rom_libgloss_ram_map +100088c8 T wlan_init_done_callback +100088cc T read_wifi_cfg +10008914 T write_wifi_cfg +1000895c T fATON +10008964 T fATOF +1000896c W user_start +10008970 T chk_ap_netif_num +100089bc T StartStDHCPClient +10008a48 T _wifi_on +10008af4 T _LwIP_Init +10008ba0 T translate_rtw_security +10008bc4 T show_wifi_ap_ip +10008bf8 T wifi_run_ap +10008d18 T show_wifi_st_ip +10008d4c T wifi_run_st +10008e08 T wifi_run +10008ef4 T wifi_init_thrd +10008f50 T fATWR +10008f6c T show_wifi_st_cfg +10008fbc T fATPN +1000908c T show_wifi_ap_cfg +100090f8 T fATPA +100091d4 T show_wifi_cfg +10009234 T fATWI +10009348 t mp3_cfg_read +100093a8 T tskmad +100095c4 T render_sample_block +10009638 T set_dac_sample_rate +1000967c T getIpForHost +100096a0 T openConn +100097c4 T http_head_read +100098fc T tskreader +10009ac4 T connect_close +10009aec T connect_start +10009b8c T fATWS +10009c6c T ShowMemInfo +10009c98 T main +10009cf0 T fATST +10009d60 T fATSD +10009d68 T fATSW +10009d70 T fATDS +10009d94 T print_hex_dump +10009dc4 T dump_bytes +10009e58 T fATSB +10009e90 T print_udp_pcb +10009efc T print_tcp_pcb +10009fd4 T fATLW +10009fe4 T RamFifoClose +1000a040 T RamFifoInit +1000a194 T RamFifoRead +1000a250 T RamFifoWrite +1000a304 T RamFifoFill +1000a330 T RamFifoFree +1000a344 T RamFifoLen +1000a350 t decode_header +1000a4c0 T mad_header_init +1000a4ec T mad_frame_finish +1000a504 T mad_header_decode +1000a7a0 T mad_frame_decode +1000a824 T mad_frame_mute +1000a86e T mad_frame_init +1000a88c t III_requantize +1000a908 t III_aliasreduce +1000a970 t fastsdct +1000aaa8 t III_imdct_l +1000aec0 t III_imdct_s +1000b014 t III_overlap +1000b03e t III_freqinver +1000b088 t III_decode +1000c0a4 T mad_layer_III +1000c508 T mad_bit_init +1000c514 T mad_bit_length +1000c52c T mad_bit_nextbyte +1000c538 T mad_bit_skip +1000c568 T mad_bit_read +1000c5d4 T mad_bit_crc +1000c6c8 t scale +1000c6d4 t dct32 +1000cf68 t synth_half +1000d3ac t synth_full +1000d800 T mad_synth_mute +1000d838 T mad_synth_init +1000d85c T mad_synth_frame +1000d8f0 t scale_rational +1000d964 T mad_timer_set +1000da4c T mad_stream_init +1000da7e T mad_stream_finish +1000da90 T mad_stream_buffer +1000daa4 T mad_stream_sync +1000daec T mad_stream_errorstr +1000dc48 t i2s_test_tx_complete +1000dc60 T i2sClose +1000dcec T i2sInit +1000de60 T i2sSetRate +1000dee8 T i2sPushPWMSamples +1000e050 T SystemCoreClockUpdate +1000e064 W console_help +1000e0a4 T GetArgvRam +1000e15c T get_eap_phase +1000e168 T get_eap_method +1000e174 T eap_autoreconnect_hdl +1000e178 t wifi_no_network_hdl +1000e190 t wifi_ap_sta_disassoc_hdl +1000e194 t wifi_handshake_done_hdl +1000e1b0 t wifi_disconn_hdl +1000e218 t wifi_connected_hdl +1000e24c t wifi_connect_local +1000e360 T wifi_autoreconnect_hdl +1000e39c t wifi_ap_sta_assoc_hdl +1000e39e T wifi_rx_beacon_hdl +1000e3a0 T wifi_connect +1000e624 t wifi_autoreconnect_thread +1000e68c T wifi_set_country +1000e698 T wifi_off +1000e704 T wifi_start_ap +1000e7e4 T wifi_get_setting +1000e894 T wifi_show_setting +1000e958 T wifi_config_autoreconnect +1000e97c T wifi_indication +1000e9b8 T wifi_reg_event_handler +1000ea0c T wifi_unreg_event_handler +1000ea50 T init_event_callback_list +1000ea60 T promisc_deinit +1000ea64 T promisc_recv_func +1000ea68 T promisc_set +1000ea6c T is_promisc_enabled +1000ea76 T iw_ioctl +1000ea92 T wext_get_ssid +1000eadc T wext_set_ssid +1000eb10 T is_broadcast_ether_addr +1000eb32 T wext_set_auth_param +1000eb60 T wext_set_key_ext +1000ec60 T wext_get_enc_ext +1000ecc2 T wext_set_passphrase +1000ecf6 T wext_get_passphrase +1000ed26 T wext_set_mode +1000ed4a T wext_get_mode +1000ed74 T wext_set_ap_ssid +1000eda8 T wext_set_country +1000edcc T wext_set_channel +1000edfa T wext_get_channel +1000ee28 T wext_wlan_indicate +1000ef70 T wext_set_autoreconnect +1000efc0 T wext_set_adaptivity +1000efe8 T wext_set_sta_num +1000efec T LwIP_DHCP +1000f0e0 T LwIP_GetIP +1000f0e4 T LwIP_AUTOIP +1000f160 t netconn_recv_data +1000f230 T netconn_new_with_proto_and_callback +1000f290 T netconn_delete +1000f2b4 T netconn_getaddr +1000f2f8 T netconn_connect +1000f338 T netconn_recv_tcp_pbuf +1000f34c T netconn_recv +1000f3d4 T netconn_recved +1000f400 T netconn_send +1000f43c T netconn_write_partly +1000f4cc T netconn_gethostbyname +1000f524 t recv_udp +1000f594 t recv_raw +1000f618 t setup_tcp +1000f65c t err_tcp +1000f6f4 t do_connected +1000f760 t do_writemore +1000f860 t do_close_internal +1000f94c t poll_tcp +1000f99c t do_dns_found +1000f9c8 t sent_tcp +1000fa16 t recv_tcp +1000fa90 T do_newconn +1000fb20 T netconn_alloc +1000fb8c T netconn_free +1000fbb8 t netconn_drain +1000fc48 T do_delconn +1000fcd4 T do_connect +1000fd68 T do_send +1000fdd8 T do_recv +1000fe18 T do_write +1000fe52 T do_getaddr +1000fec8 T do_gethostbyname +1000fef4 T netbuf_delete +1000ff14 T netbuf_free +1000ff2a T netbuf_ref +1000ff64 T lwip_gethostbyname +1000ffb0 t get_socket +1000ffd0 t alloc_socket +10010040 t event_callback +10010170 T lwip_socket_init +10010172 T lwip_close +100101c4 T lwip_connect +10010220 T lwip_recvfrom +100103d8 T lwip_read +100103ec T lwip_sendto +10010498 T lwip_send +10010510 T lwip_socket +10010584 T lwip_write +1001058c t tcpip_thread +10010610 T tcpip_input +10010658 T tcpip_callback_with_block +100106ac T tcpip_timeout +100106f0 T tcpip_apimsg +10010748 T tcpip_init +1001078c t autoip_start_probing +100107d8 t autoip_arp_announce +10010804 T autoip_start +10010898 T autoip_tmr +100109a8 T autoip_arp_reply +10010a50 t icmp_send_response.isra.0 +10010ac0 T icmp_input +10010be4 T icmp_dest_unreach +10010bee T icmp_time_exceeded +10010bf8 t igmp_send +10010c9c t igmp_delaying_member +10010cd4 t igmp_lookup_group.part.1 +10010d0c T igmp_init +10010d28 T igmp_report_groups +10010d4c T igmp_lookfor_group +10010d6c T igmp_start +10010da8 T igmp_input +10010e6c T igmp_tmr +10010e98 t lwip_standard_chksum +10010ef0 T inet_chksum_pseudo +10010f76 T inet_chksum +10010f82 T inet_chksum_pbuf +10010fc8 T ip_route +10011004 T ip_input +100111dc T ip_output_if_opt +10011330 T ip_output_if +10011352 T ip_output +1001138a T ip4_addr_isbroadcast +100113c2 T ipaddr_aton +100114d8 T ipaddr_addr +100114f0 T ipaddr_ntoa_r +10011588 T ipaddr_ntoa +10011594 t ipfrag_free_pbuf_custom +100115ac t ip_reass_free_complete_datagram +1001162c t ip_reass_remove_oldest_datagram +100116a0 T ip_reass_tmr +100116c8 T ip_reass +10011978 T ip_frag +10011ae4 T lwip_htons +10011aea T lwip_ntohs +10011af0 T lwip_htonl +10011af4 T lwip_ntohl +10011af8 t dhcp_set_state +10011b08 t dhcp_option +10011b28 t dhcp_option_byte +10011b3a t dhcp_option_short +10011b5c t dhcp_option_long +10011ba0 t dhcp_create_msg +10011cf0 t dhcp_delete_msg +10011d06 t dhcp_check +10011d2c t dhcp_bind +10011e00 t dhcp_option_trailer +10011e2c t dhcp_discover +10011ee0 t dhcp_reboot +10011f84 t dhcp_option_hostname.isra.1 +10011fc4 t dhcp_rebind +10012058 t dhcp_select +10012144 t dhcp_recv +10012548 T dhcp_arp_reply +100125c8 T dhcp_renew +1001265c T dhcp_release +10012704 T dhcp_coarse_tmr +10012790 T dhcp_fine_tmr +1001282c T dhcp_release_unicast +100128f0 T dhcp_stop +10012920 T dhcp_start +100129c0 t dns_parse_name +100129dc t dns_recv +10012b70 t dns_send +10012c40 t dns_check_entry +10012cf0 T dns_setserver +10012d10 T dns_init +10012d68 T dns_tmr +10012d94 T dns_gethostbyname +10012ed4 T lwip_init +10012efc T sys_timeout +10012f5c T tcp_timer_needed +10012f90 t tcpip_tcp_timer +10012fc8 T sys_timeouts_init +1001303c t dns_timer +10013058 t igmp_timer +10013070 t autoip_timer +10013088 t dhcp_timer_fine +100130a4 t dhcp_timer_coarse +100130c0 t arp_timer +100130dc t ip_reass_timer +100130f8 T sys_untimeout +10013140 T sys_timeouts_mbox_fetch +100131a4 T netif_init +100131a8 T netif_set_ipaddr +10013200 T netif_set_addr +1001321c T netif_add +10013280 T netif_set_gw +10013288 T netif_set_netmask +10013290 T netif_set_default +1001329c T netif_set_up +100132d2 T netif_set_down +100132ec t pbuf_free_ooseq_callback +10013320 t pbuf_pool_is_empty +1001335c T pbuf_alloced_custom +100133b0 T pbuf_header +10013408 T pbuf_free +10013448 T pbuf_alloc +1001356c T pbuf_realloc +100135a0 T pbuf_clen +100135b0 T pbuf_ref +100135ca T pbuf_cat +100135e6 T pbuf_chain +100135f6 T pbuf_copy +10013692 T pbuf_copy_partial +100136fa T pbuf_coalesce +10013728 T raw_input +100137a0 T raw_connect +100137aa T raw_recv +100137b0 T raw_sendto +10013840 T raw_send +10013848 T raw_remove +10013870 T raw_new +100138a4 t tcp_new_port +100138f4 T tcp_init +1001390c T tcp_update_rcv_ann_wnd +10013942 T tcp_recved +1001397c T tcp_seg_free +10013996 T tcp_segs_free +100139a8 T tcp_seg_copy +100139d0 T tcp_arg +100139d4 T tcp_recv +100139da T tcp_sent +100139e0 T tcp_err +100139e6 T tcp_accept +100139ea T tcp_poll +100139f4 T tcp_pcb_purge +10013a34 T tcp_slowtmr +10013cf0 T tcp_pcb_remove +10013d58 t tcp_close_shutdown +10013e88 T tcp_close +10013ea0 T tcp_recv_null +10013ec4 T tcp_process_refused_data +10013f24 T tcp_fasttmr +10013f9c T tcp_tmr +10013fc0 T tcp_shutdown +10014010 T tcp_abandon +100140a8 T tcp_abort +100140b0 T tcp_next_iss +100140c8 T tcp_alloc +100141e8 T tcp_new +100141ee T tcp_eff_send_mss +1001420c T tcp_connect +10014368 t tcp_oos_insert_segment +100143e8 t tcp_receive +10014bc0 t tcp_parseopt.isra.0 +10014c44 T tcp_input +1001549c t tcp_pbuf_prealloc +100154f0 t tcp_create_segment +100155b8 t tcp_output_alloc_header.constprop.0 +10015622 T tcp_write +10015972 T tcp_enqueue_flags +10015a1a T tcp_send_fin +10015a62 T tcp_send_empty_ack +10015ac0 T tcp_output +10015d38 T tcp_rst +10015dd0 T tcp_rexmit_rto +10015dfe T tcp_rexmit +10015e4e T tcp_rexmit_fast +10015ea4 T tcp_keepalive +10015ef6 T tcp_zero_window_probe +10015fa0 T udp_init +10015fb8 T udp_input +10016140 T udp_bind +100161e8 T udp_sendto_if +100162e6 T udp_sendto +1001631c T udp_send +10016328 T udp_connect +10016370 T udp_disconnect +10016380 T udp_recv +10016388 T udp_remove +100163b0 T udp_new +100163d4 t etharp_free_entry +10016404 t etharp_find_entry +100164e0 t etharp_send_ip +10016514 T etharp_tmr +10016554 T etharp_cleanup_netif +1001657c T etharp_raw +10016638 T etharp_request +10016664 t etharp_output_to_arp_index +100166ac T etharp_query +100167b0 T etharp_output +100168a8 T ethernet_input +10016a98 t low_level_output +10016af4 t arp_timer +10016b10 T ethernetif_recv +10016b88 T ethernetif_init +10016bcc T lwip_POST_SLEEP_PROCESSING +10016be8 T rltk_wlan_set_netif_info +10016c08 T rltk_wlan_send +10016c9c T rltk_wlan_recv +10016cfc T netif_is_valid_IP +10016d30 T netif_get_idx +10016d48 T netif_rx +10016d58 T netif_post_sleep_processing +10016d5c T sys_mbox_new +10016d76 T sys_mbox_free +10016d8a T sys_mbox_post +10016daa T sys_mbox_trypost +10016dcc T sys_arch_mbox_fetch +10016e16 T sys_arch_mbox_tryfetch +10016e36 T sys_mbox_valid +10016e40 T sys_mbox_set_invalid +10016e46 T sys_sem_new +10016e82 T sys_arch_sem_wait +10016ec2 T sys_sem_signal +10016ece T sys_sem_free +10016ed4 T sys_sem_valid +10016ede T sys_sem_set_invalid +10016ee4 T sys_init +10016f08 T sys_thread_new_tcm +10016f70 T sys_arch_protect +10016f7a T sys_arch_unprotect +10016f80 t add_offer_options +1001703c t mark_ip_in_table +10017080 t dhcps_initialize_message +10017130 T dhcps_handle_state_machine_change +10017200 t dhcps_receive_udp_packet_handler +100174cc T dhcps_deinit +100174f4 T dhcps_init +100175fc t prvInsertBlockIntoFreeList +10017644 t vPortDefineHeapRegions.constprop.1 +100176e4 T pvPortMalloc +100177c4 T __vPortFree +10017808 T vPortSetExtFree +10017824 T vPortFree +10017854 T xPortGetFreeHeapSize +10017860 t prvPortStartFirstTask +10017880 T pxPortInitialiseStack +1001789c T vPortSVCHandler +100178bc t pxCurrentTCBConst2 +100178c0 T vPortYield +100178d8 T ulPortSetInterruptMask +100178e8 t prvTaskExitError +100178f0 T vPortEnterCritical +1001790c T vPortClearInterruptMask +10017914 T vPortExitCritical +10017928 T xPortPendSVHandler +10017968 t pxCurrentTCBConst +1001796c T xPortSysTickHandler +10017990 W vPortSuppressTicksAndSleep +10017aa8 W vPortSetupTimerInterrupt +10017af8 T xPortStartScheduler +10017b28 T vApplicationIdleHook +10017b2c T vApplicationStackOverflowHook +10017b48 T osKernelSysTick +10017b4c T vListInitialise +10017b62 T vListInitialiseItem +10017b68 T vListInsertEnd +10017b80 T vListInsert +10017bb0 T uxListRemove +10017bd0 t prvCopyDataToQueue +10017c3a t prvCopyDataFromQueue +10017c62 t prvUnlockQueue +10017cca T xQueueGenericReset +10017d24 T xQueueGenericCreate +10017d70 T xQueueCreateCountingSemaphore +10017d82 T xQueueGenericSend +10017e60 T xQueueCreateMutex +10017eaa T xQueueGenericSendFromISR +10017f0e T xQueueGenericReceive +10018012 T uxQueueMessagesWaiting +10018024 T vQueueDelete +1001803a T vQueueWaitForMessageRestricted +10018074 t prvGenerateRunTimeOfPeroid +100180b4 t prvGetExpectedIdleTime +100180e4 t prvListTaskWithinSingleList +100181cc t prvResetNextTaskUnblockTime +100181f0 t prvAddCurrentTaskToDelayedList +10018240 T xTaskGenericCreate +100183f4 T vTaskDelete +10018494 T uxTaskPriorityGet +100184b0 T vTaskPrioritySet +10018568 T vTaskStartScheduler +100185c0 T vTaskSuspendAll +100185d0 T xTaskGetTickCount +100185e8 T pcTaskGetTaskName +100185f8 T vTaskStepTick +10018608 T xTaskIncrementTick +10018788 T xTaskResumeAll +10018850 T vTaskDelay +100188a0 t prvIdleTask +10018928 T uxTaskGetSystemState +100189d8 T vTaskSwitchContext +10018a90 T vTaskPlaceOnEventList +10018aec T vTaskPlaceOnEventListRestricted +10018b30 T xTaskRemoveFromEventList +10018ba0 T vTaskSetTimeOutState +10018bb8 T xTaskCheckForTimeOut +10018c04 T vTaskMissedYield +10018c10 T eTaskConfirmSleepModeStatus +10018c30 T xTaskGetSchedulerState +10018c50 T vTaskPriorityInherit +10018ce4 T xTaskPriorityDisinherit +10018d54 T sprintf_pcTaskName +10018d74 T vTaskList +10018e24 T vTaskGetRunTimeStats +10018ee4 T pvTaskIncrementMutexHeldCount +10018efc T vTaskGetCurrentTCB +10018f08 t prvCheckForValidListAndQueue +10018f54 t prvInsertTimerInActiveList +10018f90 T xTimerCreateTimerTask +10018fcc T xTimerCreate +10019008 T xTimerGenericCommand +1001909c t prvSwitchTimerLists +1001910c t prvTimerTask +10019270 T xTimerIsTimerActive +10019288 t device_mutex_init +100192cc T device_mutex_lock +100192fc T device_mutex_unlock +10019318 t _freertos_systime_to_sec +10019322 t _freertos_ms_to_systime +10019324 t _freertos_sec_to_systime +1001932c t _freertos_usleep_os +1001932e t _freertos_ATOMIC_SET +10019332 t _freertos_ATOMIC_READ +10019336 t _freertos_modular64 +100193aa t _freertos_thread_enter +100193ac t _freertos_enter_critical +100193b0 t _freertos_exit_critical +100193b4 t _freertos_ATOMIC_SUB_RETURN +100193cc t _freertos_ATOMIC_DEC_RETURN +100193e2 t _freertos_ATOMIC_ADD_RETURN +100193fa t _freertos_ATOMIC_INC_RETURN +10019410 t _freertos_ATOMIC_SUB +10019428 t _freertos_ATOMIC_DEC +1001942e t _freertos_ATOMIC_ADD +10019446 t _freertos_ATOMIC_INC +1001944c t _freertos_enter_critical_from_isr +1001945c T _freertos_malloc +10019460 T _freertos_zmalloc +10019478 t _freertos_memset +1001947c T _freertos_mfree +10019480 t _freertos_get_current_time +10019484 t _freertos_spinunlock_irqsave +1001949a t _freertos_spinunlock +100194a6 t _freertos_mutex_put +100194aa T _freertos_wakeup_task +100194b0 t _freertos_up_sema +100194b4 t _freertos_exit_critical_mutex +100194c0 T _freertos_timerCreate +100194c4 T _freertos_timerDelete +100194d8 T _freertos_timerStop +100194ec T _freertos_timerChangePeriod +10019506 T _freertos_timerIsTimerActive +1001950a T _freertos_acquire_wakelock +10019510 T _freertos_release_wakelock +10019516 T _freertos_get_scheduler_state +10019536 t _freertos_thread_exit +1001953c t _freertos_GetFreeHeapSize +10019540 t _freertos_yield_os +10019544 t _freertos_udelay_os +10019548 t _freertos_mdelay_os +1001954c t _freertos_deinit_xqueue +10019566 t _freertos_spinlock_free +10019578 t _freertos_mutex_free +1001957c t _freertos_free_sema +10019580 t _freertos_push_to_xqueue +100195a8 t _freertos_pop_from_xqueue +100195d0 t _freertos_down_sema +100195f2 t _freertos_init_xqueue +1001960c t _freertos_spinlock_irqsave +10019648 t _freertos_spinlock +10019680 t _freertos_enter_critical_mutex +100196b8 t _freertos_mutex_get +100196f0 t _freertos_spinlock_init +100196fe t _freertos_mutex_init +10019704 t _freertos_exit_critical_from_isr +10019710 t _freertos_up_sema_from_isr +10019738 t _freertos_init_sema +10019748 t _freertos_create_task +100197c0 t _freertos_memcmp +100197ce t _freertos_memcpy +100197d4 t _freertos_delete_task +10019820 t _freertos_mutex_get_timeout +1001985c t _freertos_systime_to_ms +1001985e t _freertos_msleep_os +10019862 T save_and_cli +10019866 T restore_flags +1001986a T cli +10019870 T _freertos_arc4random +100198a0 t _freertos_get_random_bytes +100198de T RtlInitSema +100198ec T RtlUpSemaFromISR +1001990c T RtlDownSema +10019920 T RtlUdelayOS +10019924 T _htons +1001992a T _ntohs +10019930 T _rtw_zvmalloc +10019950 T _rtw_vmfree +10019974 T _rtw_malloc +10019984 T _rtw_zmalloc +10019994 T _rtw_mfree +100199a4 T deinit_mem_monitor +100199a6 T rtw_vmfree +100199aa T rtw_mfree +100199b0 T rtw_memcpy +100199c0 T rtw_memcmp +100199d0 T rtw_memset +100199e0 T rtw_init_listhead +100199e6 T rtw_is_list_empty +100199f0 T rtw_list_insert_head +100199fc T rtw_list_insert_tail +10019a08 T rtw_list_delete +10019a18 T rtw_init_sema +10019a28 T rtw_free_sema +10019a38 T rtw_up_sema +10019a48 T rtw_up_sema_from_isr +10019a58 T rtw_down_timeout_sema +10019a68 T rtw_down_sema +10019a7c T rtw_mutex_init +10019a8c T rtw_mutex_free +10019a9c T rtw_mutex_put +10019aac T rtw_mutex_get_timeout +10019ac0 T rtw_enter_critical_from_isr +10019ad0 T rtw_enter_critical +10019ad4 T rtw_exit_critical_from_isr +10019ae4 T rtw_exit_critical +10019ae8 T rtw_enter_critical_mutex +10019af8 T rtw_exit_critical_mutex +10019b08 T rtw_queue_empty +10019b12 T rtw_end_of_queue_search +10019b1c T rtw_spinlock_init +10019b2c T rtw_init_queue +10019b38 T rtw_spinlock_free +10019b48 T rtw_spin_lock +10019b58 T rtw_enter_critical_bh +10019b5c T rtw_spin_unlock +10019b6c T rtw_exit_critical_bh +10019b70 T rtw_get_current_time +10019b80 T rtw_systime_to_ms +10019b94 T rtw_systime_to_sec +10019ba8 T rtw_ms_to_systime +10019bbc T rtw_sec_to_systime +10019bd0 T rtw_get_passing_time_ms +10019be4 T rtw_msleep_os +10019bf4 T rtw_usleep_os +10019c04 T rtw_mdelay_os +10019c14 T rtw_udelay_os +10019c24 T ATOMIC_SET +10019c34 T ATOMIC_INC +10019c44 T ATOMIC_INC_RETURN +10019c58 T ATOMIC_DEC_RETURN +10019c6c T ATOMIC_DEC_AND_TEST +10019c7c T rtw_modular64 +10019c98 T rtw_get_random_bytes +10019cac T rtw_getFreeHeapSize +10019cbc T init_mem_monitor +10019ccc T add_mem_usage +10019d00 T rtw_zvmalloc +10019d20 T rtw_malloc +10019d40 T rtw_zmalloc +10019d60 T rtw_netif_queue_stopped +10019d64 T rtw_netif_wake_queue +10019d66 T rtw_netif_start_queue +10019d68 T rtw_netif_stop_queue +10019d6a T flush_signals_thread +10019d6c T rtw_acquire_wakelock +10019d7c T rtw_release_wakelock +10019d8c T rtw_create_task +10019da8 T rtw_delete_task +10019db8 T rtw_wakeup_task +10019dc8 T rtw_timerCreate +10019de4 T rtw_timerDelete +10019df8 T rtw_timerIsTimerActive +10019e0c T rtw_timerStop +10019e20 T rtw_timerChangePeriod +10019e34 T rtw_thread_enter +10019e44 T rtw_thread_exit +10019e54 T tcm_heap_free +10019ed4 T tcm_heap_init +10019f24 T tcm_heap_freeSpace +10019f64 T tcm_heap_malloc +1001a004 T tcm_heap_calloc +1001a01c T flash_init +1001a0b8 T flash_turnon +1001a0d0 T flash_erase_sector +1001a0fc T flash_stream_read +1001a1cc T flash_stream_write +1001a324 T i2s_init +1001a3fc T i2s_set_dma_buffer +1001a44e T i2s_tx_irq_handler +1001a454 T i2s_set_param +1001a488 T i2s_deinit +1001a48c T i2s_enable +1001a490 T i2s_disable +1001a494 W pinmap_merge +1001a4d0 W pinmap_find_peripheral +1001a4e8 W pinmap_peripheral +1001a520 T sleep_ex_selective +1001a534 T deepsleep_ex +1001a558 T us_ticker_read +1001a584 T En32KCalibration +1001a618 T WDGInitial +1001a6a4 T WDGStart +1001a6bc T WDGRefresh +1001a6d8 T I2SISRHandle +1001a794 T RtkI2SDeInit +1001a874 T RtkI2SEnable +1001a8b0 T RtkI2SDisable +1001a8ec T RtkI2SLoadDefault +1001a950 T HalI2SOpInit +1001a9cc T RtkI2SInit +1001ab90 T HalI2SInit +1001abce T HalI2SDisable +1001abf4 T HalI2SEnable +1001ac18 T HalI2SDeInit +1001ac70 T HalTimerOpInit_Patch +1001acac T freertos_ready_to_sleep +1001acbc T freertos_pre_sleep_processing +1001ad80 T freertos_post_sleep_processing +1001ada4 T acquire_wakelock +1001ade4 T release_wakelock +1001ae40 T HalI2SInitRtl8195a_Patch +1001af42 T HalI2SSetRateRtl8195a +1001af88 T HalI2SSetWordLenRtl8195a +1001afb0 T HalI2SSetChNumRtl8195a +1001afd8 T HalI2SSetPageNumRtl8195a +1001b000 T HalI2SSetPageSizeRtl8195a +1001b02a T HalI2SSetDMABufRtl8195a +1001b094 T HalI2SGetTxPageRtl8195a +1001b0b4 T HalI2SPageSendRtl8195a +1001b100 T HalI2SClearAllOwnBitRtl8195a +1001b134 T HalI2SDMACtrlRtl8195a +1001b138 T HalTimerIrq2To7Handle_Patch +1001b18c T HalTimerIrqRegisterRtl8195a_Patch +1001b208 T HalTimerIrqUnRegisterRtl8195a_Patch +1001b280 T HalTimerDeInitRtl8195a_Patch +1001b2b4 T HalTimerReadCountRtl8195a_Patch +1001b2cc T HalTimerReLoadRtl8195a_Patch +1001b300 T HalTimerInitRtl8195a_Patch +1001b3d4 T HalTimerIrqEnRtl8195a +1001b3e8 T HalTimerEnRtl8195a_Patch +1001b3fc T HalTimerDisRtl8195a_Patch +1001b410 t rtw_ht_operation_update +1001b4c2 t associated_clients_update.part.11 +1001b4fe T chk_sta_is_alive +1001b53c T add_RATid +1001b644 T update_sta_info_apmode +1001b6fc T update_beacon +1001b9bc T rtw_check_beacon_data +1001c0bc T associated_clients_update +1001c0c6 T bss_cap_update_on_sta_join +1001c276 T bss_cap_update_on_sta_leave +1001c372 T ap_free_sta +1001c424 T expire_timeout_chk +1001c560 T rtw_sta_flush +1001c5e4 T free_mlme_ap_info +1001c630 T sta_info_update +1001c66c T ap_sta_info_defer_update +1001c69c T start_ap_mode +1001c6dc T init_mlme_ap_info +1001c6f2 T stop_ap_mode +1001c740 T rtw_generate_bcn_ie +1001ca64 T _rtw_init_evt_priv +1001ca76 T _rtw_free_cmd_priv +1001ca80 T _rtw_enqueue_cmd +1001caac T _rtw_dequeue_cmd +1001cae0 T _rtw_observequeue_cmd +1001caf4 T rtw_init_cmd_priv +1001cafe T rtw_init_evt_priv +1001cb02 T rtw_free_evt_priv +1001cb04 T rtw_free_cmd_priv +1001cb08 T rtw_cmd_filter +1001cb26 T rtw_free_cmd_obj +1001cb50 T rtw_enqueue_cmd +1001cba6 T rtw_set_channel_plan_cmd_callback +1001cbbe T rtw_survey_cmd_callback +1001cbda T rtw_disassoc_cmd_callback +1001cc0a T rtw_joinbss_cmd_callback +1001cc26 T rtw_setstaKey_cmdrsp_callback +1001cc40 T rtw_cmd_thread +1001cd9c T rtw_joinbss_cmd +1001d046 T rtw_disassoc_cmd +1001d094 T rtw_setstakey_cmd +1001d184 T rtw_clearstakey_cmd +1001d224 T rtw_dynamic_chk_wk_cmd +1001d276 T rtw_set_chplan_cmd +1001d2f6 T dynamic_chk_wk_hdl +1001d3be T lps_ctrl_wk_hdl +1001d422 T rtw_lps_ctrl_wk_cmd +1001d48c T rtw_sitesurvey_cmd +1001d554 T rpt_timer_setting_wk_hdl +1001d568 T rtw_ps_cmd +1001d5c4 T rtw_chk_hi_queue_cmd +1001d618 T rtw_drvextra_cmd_hdl +1001d6f4 t rtw_free_mlme_ie_data +1001d70c T rtw_init_mlme_timer +1001d768 T rtw_del_mlme_timer +1001d788 T reconnect_timer_hdl +1001d828 T _rtw_init_mlme_priv +1001d8aa T rtw_mfree_mlme_priv_lock +1001d8c6 T rtw_free_mlme_priv_ie_data +1001d8fe T _rtw_free_mlme_priv +1001d926 T _rtw_alloc_network +1001d976 T _rtw_free_network +1001d9d6 T _rtw_free_network_nolock +1001d9fc T _rtw_find_network +1001da38 T _rtw_free_network_queue +1001da80 T rtw_if_up +1001daa0 T rtw_get_capability_from_ie +1001daa4 T rtw_get_capability +1001dabe T rtw_get_beacon_interval_from_ie +1001dac2 T rtw_init_mlme_priv +1001dada T rtw_free_mlme_priv +1001dade T rtw_free_network_queue +1001dae2 T rtw_is_same_ibss +1001daf8 T is_same_network +1001db5c T update_network +1001dbf6 T rtw_update_scanned_network +1001dd08 T rtw_add_network +1001dd46 T rtw_survey_event_callback +1001ddf2 T rtw_dummy_event_callback +1001ddf4 T rtw_free_assoc_resources +1001debe T rtw_indicate_connect +1001dece T rtw_indicate_disconnect +1001def0 T rtw_indicate_scan_done +1001def4 T rtw_joinbss_event_callback +1001df12 T search_max_mac_id +1001df5a T rtw_stassoc_hw_rpt +1001df92 T rtw_stassoc_event_callback +1001dfc0 T rtw_stadel_event_callback +1001e066 T _rtw_join_timeout_handler +1001e0f0 T rtw_join_timeout_handler +1001e148 T rtw_scan_timeout_handler +1001e178 T _rtw_scan_timeout_handler +1001e17c T rtw_dynamic_check_timer_handlder +1001e1d4 T _dynamic_check_timer_handlder +1001e218 T rtw_select_and_join_from_scanned_queue +1001e2ec T rtw_surveydone_event_callback +1001e404 T rtw_set_auth +1001e454 T rtw_set_key +1001e516 T rtw_restruct_wmm_ie +1001e57c T rtw_restruct_sec_ie +1001e5e8 T rtw_joinbss_reset +1001e5f8 T rtw_restructure_ht_ie +1001e6d8 T rtw_update_ht_cap +1001e762 T rtw_joinbss_event_prehandle +1001e98e T rtw_linked_check +1001e9aa T rtw_buddy_adapter_up +1001e9e2 T check_buddy_fwstate +1001ea00 t get_da +1001ea20 t get_sa +1001ea4a T OnAction +1001ea5c T DoReserved +1001ea60 t _mgt_dispatcher.isra.2 +1001eaac T rtw_is_channel_set_contains_channel +1001eace T init_hw_mlme_ext +1001eae4 T init_channel_set +1001eb7c T free_mlme_ext_priv +1001eba4 T mgt_dispatcher +1001ec2c T alloc_mgtxmitframe +1001ec64 T update_mgnt_tx_rate +1001ec6a T update_mgntframe_attrib +1001ecc6 T rtw_build_mgnt_frame +1001ed1c T dump_mgntframe +1001ed36 T rtw_send_mgnt +1001ed54 t issue_action_BSSCoexistPacket +1001ef60 T update_hidden_ssid +1001efb4 T issue_beacon +1001f1cc T issue_probersp +1001f45c T OnProbeReq +1001f524 T issue_probereq +1001f6dc T issue_auth +1001f944 T OnAuth +1001fbe8 T issue_asocrsp +1001fe5c T issue_assocreq +10020198 T issue_nulldata +10020282 T issue_qos_nulldata +100203b4 T issue_deauth +1002049c T issue_action_BA +10020718 T OnAction_back +100207e6 T collect_bss_info +10020a18 T start_clnt_auth +10020aa8 T start_clnt_assoc +10020adc T OnAuthClient +10020bbc T report_scan_result_one +10020d7c T add_site_survey +10020f02 T report_survey_event +10021140 T OnProbeRsp +10021174 T report_surveydone_event +100211d8 T report_join_res +10021248 T OnAssocRsp +10021394 T report_del_sta_event +10021426 T receive_disconnect +1002147c T OnBeacon +10021604 T OnDeAuth +1002175c T OnDisassoc +100218cc T report_add_sta_event +10021940 T OnAssocReq +10021f30 T rtw_port_switch_chk +10021fb4 T update_sta_info +10022034 T mlmeext_sta_del_event_callback +100220b4 T _linked_info_dump +10022116 T _linked_rx_signal_strehgth_display +10022150 T linked_status_chk +100223c4 T survey_timer_hdl +100224a4 T _survey_timer_hdl +100224a8 T link_timer_hdl +10022526 T _link_timer_hdl +1002252a T addba_timer_hdl +1002254a T NULL_hdl +1002254e T setopmode_hdl +10022594 T disconnect_hdl +10022640 T setauth_hdl +10022650 T setkey_hdl +100226a8 T set_stakey_hdl +100227ac T set_tx_beacon_cmd +10022820 T mlme_evt_hdl +1002286c T tx_beacon_hdl +10022926 T check_buddy_mlmeinfo_state +10022940 T site_survey +10022b10 T sitesurvey_cmd_hdl +10022c1e T concurrent_chk_start_clnt_join +10022cb4 T start_clnt_join +10022d88 T join_cmd_hdl +10022eac T concurrent_chk_joinbss_done +10023074 T mlmeext_joinbss_event_callback +100231b0 T set_chplan_hdl +100231cc T init_mlme_ext_timer +10023228 T init_mlme_ext_priv +10023364 t get_hdr_bssid +1002338c t filter_packet +10023414 t promisc_get_encrypt +10023466 t promisc_info_get +1002350a t promisc_set_enable +100235a6 T _promisc_deinit +100235f8 T _promisc_recv_func +10023b44 T _promisc_set +10023bd4 T _is_promisc_enabled +10023bec t SetEAPOL_KEYIV +10023c8a t ToDrv_SetPTK +10023d32 t Message_ReplayCounter_OC2LI.isra.2 +10023d60 t Message_SmallerEqualReplayCounter.isra.4 +10023d92 t Message_setReplayCounter.isra.5 +10023db0 t INCLargeInteger +10023dd0 t INCOctet16_INTEGER +10023e18 t INCOctet32_INTEGER +10023e78 t ToDrv_DisconnectSTA +10023f3c t CheckMIC.constprop.14 +10023fbc t CalcMIC.constprop.15 +1002401c T DecWPA2KeyData +100240d0 T DecGTK +1002418c T ToDrv_SetGTK +1002421c T init_wpa_sta_info +10024308 T SendEAPOL +100249c0 T ClientSendEAPOL +10024ea8 t ResendTimeout +10024f30 T EAPOLKeyRecvd +100250a8 T ClientEAPOLKeyRecvd +10025468 T psk_derive +1002551c T psk_init +1002560c T psk_strip_rsn_pairwise +1002568c T psk_strip_wpa_pairwise +1002570c T tkip_send_mic_failure_report +10025880 T pwr_state_check_handler +10025884 T ips_enter +1002592c T ips_leave +10025a44 T rtw_pwr_unassociated_idle +10025a8e T rtw_ps_processor +10025ae6 T PS_RDY_CHECK +10025b4e T rtw_set_ps_mode +10025bbc T LPS_RF_ON_check +10025c12 T LPS_Enter +10025c80 T LPS_Leave +10025cbc T LeaveAllPowerSaveMode +10025ccc T rtw_init_pwrctrl_priv +10025da0 T rtw_free_pwrctrl_priv +10025db4 T _rtw_pwr_wakeup +10025e90 T rtw_pm_set_lps +10025ed8 T rtw_pm_set_ips +10025f1c T rtw_pm_set_tdma_param +10025f38 T rtw_pm_set_lps_dtim +10025f44 T rtw_pm_get_lps_dtim +10025f50 t recvframe_pull +10025f72 t recvframe_pull_tail +10025f94 T rtw_signal_stat_timer_hdl +10026032 T _rtw_init_sta_recv_priv +10026050 T _rtw_init_recv_priv +100260f8 T rtw_mfree_recv_priv_lock +1002612c T _rtw_alloc_recvframe +1002615e T rtw_alloc_recvframe +10026184 T rtw_free_recvframe +10026220 T _rtw_enqueue_recvframe +1002624c T rtw_enqueue_recvframe +10026276 T rtw_free_recvframe_queue +100262ae T rtw_free_uc_swdec_pending_queue +100262d6 T _rtw_free_recv_priv +10026306 T rtw_free_buf_pending_queue +1002630a T recvframe_chkmic +10026408 T decryptor +100264a4 T portctrl +1002651a T recv_decache +10026548 T process_pwrbit_data +10026588 T process_wmmps_data +10026610 T count_rx_stats +10026684 T sta2sta_data_frame +100267c0 T ap2sta_data_frame +100268ec T sta2ap_data_frame +10026974 T validate_recv_ctrl_frame +10026b0e T validate_recv_data_frame +10026d68 T wlanhdr_to_ethhdr +10026ea4 T recvframe_defrag +10026f4e T recvframe_chk_defrag +10027004 T validate_recv_mgnt_frame +10027040 T validate_recv_frame +10027108 T recv_indicatepkt_reorder +1002712a T process_recv_indicatepkts +10027182 T recv_func_prehandle +100271aa T recv_func_posthandle +1002720e T recv_func +10027298 T rtw_recv_entry +100272c8 T rtw_recv_tasklet +10027320 T rtw_wep_encrypt +10027366 T rtw_wep_decrypt +100273ac T rtw_tkip_encrypt +10027418 T rtw_tkip_decrypt +10027484 T rtw_aes_encrypt +100274f0 T rtw_aes_decrypt +10027554 T rtw_init_sec_priv +100275c6 T rtw_free_sec_priv +100275e6 t wifi_mac_hash +10027610 T _addba_timer_hdl +10027614 T _rtw_init_stainfo +1002768e T _rtw_init_sta_priv +10027776 T _rtw_free_sta_xmit_priv_lock +100277a2 T rtw_mfree_stainfo +100277ce T rtw_mfree_sta_priv_lock +10027804 T _rtw_free_sta_priv +10027824 T init_addba_retry_timer +1002784c T rtw_alloc_stainfo +10027916 T rtw_free_stainfo +10027ab8 T rtw_get_stainfo +10027b34 T rtw_init_bcmc_stainfo +10027b64 T rtw_get_bcmc_stainfo +10027b88 T rtw_free_all_stainfo +10027be2 T cckrates_included +10027c0a T cckratesonly_included +10027c32 T networktype_to_raid_ex +10027c90 T judge_network_type +10027ce0 T ratetbl_val_2wifirate +10027cf4 T is_basicrate +10027d20 T ratetbl2rateset +10027d64 T get_rate_set +10027d8e T UpdateBrateTbl +10027dc0 T UpdateBrateTblForSoftAP +10027df4 T Save_DM_Func_Flag +10027e0a T Restore_DM_Func_Flag +10027e20 T Switch_DM_Func +10027e3c T Set_MSR +10027e60 T set_opmode +10027ea4 T SelectChannel +10027ed8 T SetBWMode +10027f14 T set_channel_bwmode +10027f6a T get_my_bssid +10027f6e T get_beacon_interval +10027f8c T is_client_associated_to_ap +10027fa4 T is_client_associated_to_ibss +10027fc0 T is_IBSS_empty +10027fe2 T decide_wait_for_beacon_timeout +10027ffe T invalidate_cam_all +10028006 T write_cam +1002807c T clear_cam_entry +100280aa T flush_all_cam_entry +10028108 T WMM_param_handler +1002812e T WMMOnAssocRsp +100281fc T HT_caps_handler +1002829c T HT_info_handler +100282c0 T HTOnAssocRsp +100282f8 T ERP_IE_handler +10028314 T VCS_update +10028366 T rtw_check_bcn_info +10028576 T update_beacon_info +100285cc T is_ap_in_tkip +10028644 T wifirate2_ratetbl_inx +100286b0 T update_basic_rate +100286de T update_supported_rate +10028708 T update_MCS_rate +10028714 T support_short_GI +10028742 T get_highest_rate_idx +1002875c T Update_RA_Entry +10028764 T set_sta_rate +1002876c T update_tx_basic_rate +100287c4 T check_assoc_AP +100288b8 T update_IOT_info +10028916 T update_capinfo +10028994 T update_wireless_mode +10028a34 T update_bmc_sta_support_rate +10028a5c T update_TSF +10028a6e T correct_TSF +10028a76 t _init_txservq +10028a8c t set_qos +10028adc T _rtw_init_sta_xmit_priv +10028b22 T rtw_mfree_xmit_priv_lock +10028b6e T qos_acm +10028ba8 T xmitframe_addmic +10028d06 T xmitframe_swencrypt +10028d32 T rtw_make_wlanhdr +10028f12 T rtw_txframes_pending +10028f4e T rtw_txframes_sta_ac_pending +10028f84 T rtw_txframes_update_attrib_vcs_info +10029024 T rtw_put_snap +10029068 T rtw_update_protection +100290ae T rtw_count_tx_stats +100290fe T rtw_free_xmitbuf_ext +10029140 T rtw_alloc_xmitframe +10029198 T rtw_free_xmitframe +100291ea T rtw_free_xmitframe_queue +10029228 T rtw_get_sta_pending +10029268 T rtw_xmit_classifier +100292ce T rtw_xmitframe_enqueue +100292dc T rtw_alloc_hwxmits +10029336 T rtw_free_hwxmits +1002934c T _rtw_free_xmit_priv +10029418 T rtw_init_hwxmits +10029430 T _rtw_init_xmit_priv +100295e8 T rtw_get_ff_hwaddr +100295fc T xmitframe_enqueue_for_sleeping_sta +100297bc t dequeue_xmitframes_to_sleeping_queue +10029812 T stop_sta_xmit +100298fa T wakeup_sta_to_xmit +10029b10 T xmit_delivery_enabled_frames +10029c2c T rtw_xmit_tasklet +10029c84 T rtw_xmit_mgnt +10029c88 T rtw_xmit +10029fb2 T rtw_sctx_done_err +10029fbe T rtw_alloc_xmitbuf +1002a018 T rtw_free_xmitbuf +1002a08a T rtw_alloc_xmitbuf_ext +1002a110 T rtw_sctx_done +1002a116 t rtl8195a_free_rx_ring +1002a124 t bus_write32 +1002a180 t bus_write16 +1002a1dc t bus_write8 +1002a238 t bus_read32 +1002a292 t bus_read16 +1002a2ee t bus_read8 +1002a34a t rtl8195a_free_tx_ring +1002a3d8 T rtl8195a_init_desc_ring +1002a518 T rtl8195a_free_desc_ring +1002a534 T rtl8195a_reset_desc_ring +1002a5ca T InitLxDmaRtl8195a +1002a72c T rtl8195a_check_txdesc_closed +1002a7a4 t rtl8195a_tx_isr +1002a888 T InterruptRecognized8195a +1002a918 T InitInterrupt8195a +1002a938 T EnableDMA8195a +1002a960 T EnableInterrupt8195a +1002a9a0 T DisableDMA8195a +1002a9ac T DisableInterrupt8195a +1002a9c4 T UpdateInterruptMask8195a +1002aa26 T CheckRxTgRtl8195a +1002aa60 T rtl8192ee_check_rxdesc_remain +1002aa90 T rtl8195a_recv_tasklet +1002ada4 T rtl8195a_tx_int_handler +1002add0 T InterruptHandle8195a +1002b044 T rtl8195a_xmit_tasklet +1002b06c T lxbus_set_intf_ops +1002b0ac t GetTxBufDesc +1002b0f6 t UpdateFirstTxbdtoXmitBuf.isra.3 +1002b128 t check_nic_enough_desc.isra.4 +1002b178 T rtl8195ab_init_xmit_priv +1002b186 T rtl8195ab_free_xmit_priv +1002b18e T GetDmaTxbdIdx +1002b1aa T rtl8195a_enqueue_xmitbuf +1002b1ce T rtl8195a_dequeue_xmitbuf +1002b1f2 T SetTxbdForLxDMARtl8195ab +1002b272 T UpdateTxbdHostIndex +1002b2b0 T rtw_dump_xframe +1002b482 T check_tx_desc_resource +1002b4bc T rtw_dequeue_xframe +1002b550 T rtw_xmitframe_coalesce +1002b804 T rtl8195ab_xmitframe_resume +1002b8fa T rtl8195ab_mgnt_xmit +1002b936 T rtl8195ab_hal_xmit +1002ba44 t Hal_GetEfuseDefinition +1002ba74 t ResumeTxBeacon +1002bab8 T UpdateHalRAMask8195A +1002bc50 T HalLittleWifiMCUThreadRtl8195a +1002bca4 T HalCheckInReqStateThreadRtl8195a +1002bcf0 T HalTDMAChangeStateThreadRtl8195a +1002bd3c t rtl8195a_read_chip_version +1002bdb0 t Hal_EfuseWordEnableDataWrite +1002bff4 t Hal_EfusePowerSwitch +1002c008 t rtl8195a_free_hal_data +1002c022 t StopTxBeacon +1002c06c T SetHalODMVar8195A +1002c124 T rtl8195a_start_thread +1002c18c T rtl8195a_stop_thread +1002c1b0 t Hal_ReadEFuse +1002c320 T GetHalODMVar8195A +1002c334 t rtw_flash_map_update.part.12 +1002c3d4 t rtw_flash_map_erase +1002c418 t Hal_EfusePgPacketWrite +1002c694 t Hal_EfuseGetCurrentSize +1002c774 t rtw_flash_map_write +1002c942 T rtl8195a_InitBeaconParameters +1002c9b2 T _InitBurstPktLen_8195AB +1002c9bc T rtl8195a_set_hal_ops +1002ca9c T rtl8195a_init_default_value +1002ca9e T rtl8195a_InitLLTTable +1002cae8 T Hal_GetChnlGroup8195A +1002cb24 T rtw_config_map_read +1002cc10 T rtw_config_map_write +1002ccbc T Hal_InitPGData +1002cd1a T Hal_EfuseParseIDCode +1002cd32 T Hal_ReadPowerValueFromPROM_8195A +1002cdd0 T Hal_EfuseParseTxPowerInfo_8195A +1002ce68 T Hal_EfuseParseEEPROMVer_8195A +1002ce7e T Hal_EfuseParsePackageType_8195A +1002cee8 T Hal_EfuseParseChnlPlan_8195A +1002cf18 T Hal_EfuseParseCustomerID_8195A +1002cf2e T Hal_EfuseParseXtal_8195A +1002cf46 T Hal_EfuseParseThermalMeter_8195A +1002cf6e T Hal_ReadRFGainOffset +1002cfbe T BWMapping_8195A +1002cfde T SCMapping_8195A +1002d006 T rtl8195a_update_txdesc +1002d2d6 T rtl8195a_fill_fake_txdesc +1002d394 T SetHwReg8195A +1002e054 T GetHwReg8195A +1002e0e8 T SetHalDefVar8195A +1002e1c8 T GetHalDefVar8195A +1002e1ec T PHY_QueryBBReg_8195A_Safe +1002e218 T PHY_SetBBReg_8195A_Safe +1002e244 t phy_RFSerialRead_8195A +1002e2f8 T PHY_QueryRFReg_8195A +1002e310 T PHY_SetRFReg_8195A +1002e368 T PHY_MACConfig8195A +1002e382 T PHY_BBConfig8195A +1002e492 T PHY_RFConfig8195A +1002e496 T PHY_SetTxPowerIndex_8195A +1002e5a0 T phy_TxPwrAdjInPercentage +1002e5e0 T PHY_GetTxPowerIndex_8195A +1002e6d0 T PHY_SetTxPowerLevel8195A +1002e6d6 T phy_SpurCalibration_8195A +1002e98e T phy_SetRegBW_8195A +1002e9cc T phy_PostSetBwMode8195A +1002eb28 T phy_SwChnl8195A +1002ebd0 T phy_SwChnlAndSetBwMode8195A +1002ec20 T PHY_HandleSwChnlAndSetBW8195A +1002ecd0 T PHY_SetBWMode8195A +1002ecf2 T PHY_SwChnl8195A +1002ed0c T PHY_SetSwChnlBWMode8195A +1002ed2a t HalTimerEnable +1002ed3c T InitTDMATimer +1002ed64 T ChangeStateByTDMA +1002ed74 T GetMinRateInRRSR +1002eda8 T CheckInReqState +1002edb8 T InitCheckStateTimer +1002ede8 T InitGTimer1ms +1002ee34 T DeInitGTimer1ms +1002ee7c T ChangeTransmiteRate +1002eeb8 T PowerBitSetting +1002ef34 T ChkandChangePS +1002ef98 T IssueRsvdPagePacketSetting +1002f00c T IssuePSPoll +1002f038 T WaitTxStateMachineOk +1002f08c T IssueNullData +1002f11c T PsCloseRF +1002f150 T PsOpenRF +1002f180 T ChkTxQueueIsEmpty +1002f198 T InitPS +1002f208 T ConfigListenBeaconPeriod +1002f22c T PS_S2_Condition_Match +1002f260 T PS_S4_Condition_Match +1002f2dc T PS_32K_Condition_Match +1002f318 T PS_S2ToS3ToS0State +1002f380 T PS_S2ToS0State +1002f39c T PS_S3ToS2orS0State +1002f3cc T PS_S0ToS1ToS2State +1002f428 T PS_S1ToS0orS2State +1002f458 T PS_S2ToS4State +1002f4a4 T PS_S0ToS6State +1002f4c4 T PS_S6ToS0State +1002f4dc T CheckTSFIsStable +1002f52c T WaitHWStateReady +1002f53c T SysClkDown +1002f5ac T SysClkUp +1002f5f8 T ResetPSParm +1002f66c T PS_S4ToS2State +1002f690 T SleepTo32K +1002f6f0 T Change_PS_State +1002f89c T Legacy_PS_Setting +1002f910 T PSModeSetting +1002f9b4 T ChangePSStateByRPWM +1002f9f8 T ChangeTDMAState +1002fb18 T TDMAChangeStateTask +1002fb42 T EnterPS +1002fb64 T SetSmartPSTimer +1002fba0 T GTimer7Handle +1002fbfc T SmartPS2InitTimerAndToGetRxPkt +1002fc38 T PS_OnBeacon +1002fce8 T PSBcnEarlyProcess +1002fda4 T PSMtiBcnEarlyProcess +1002fe50 T PSRxBcnProcess +1002ffa0 T TxPktInPSOn +1002ffde T PsBcnToProcess +10030098 T GTimer6Handle +100300e4 T RPWMProcess +10030120 T PSSetMode +10030198 T SpeRPT +100302b8 T ISR_BcnEarly +10030324 T ISR_MtiBcnEarly +10030358 T ISR_RxBcn +10030374 T ISR_RxBCMD1 +100303a4 T ISR_RxBCMD0 +100303f8 T ISR_RxUCMD1 +10030436 T ISR_RxUCMD0 +10030472 T ISR_TxPktIn +10030484 T ISR_TXCCX +10030488 T H2CHDL_SetPwrMode +100305b0 T CheckInReqStateTask +100305f6 T HalGetNullTxRpt +10030614 T ISR_TBTT +1003068c T H2CHDL_BcnIgnoreEDCCA +1003069c T PMUInitial +100306ec T PMUTask +100307f8 T PHY_RF6052SetBandwidth8195A +1003083c T PHY_RF6052_Config8195A +100308f4 t process_rssi +1003092a T rtl8195a_query_rx_desc_status +100309da T rtl8195a_query_rx_phy_status +10030b32 T hal_com_get_channel_plan +10030b66 T HAL_IsLegalChannel +10030b84 T MRateToHwRate +10030b98 T HwRateToMRate +10030bac T HalSetBrateCfg +10030c58 T Hal_MappingOutPipe +10030c74 T hal_init_macaddr +10030ca0 T hw_var_port_switch +10030f28 T SetHwReg +10030f32 T GetHwReg +10030f34 T switch_power_saving_mode +10030f78 T rtw_bb_rf_gain_offset +10030fc0 T PHY_GetRateValuesOfTxPowerByRate +10031158 T PHY_StoreTxPowerByRateNew +100311f4 T PHY_InitTxPowerByRate +1003120c T PHY_StoreTxPowerByRate +10031224 T PHY_GetTxPowerIndexBase +100312c4 T PHY_GetTxPowerTrackingOffset +100312f0 T PHY_GetRateIndexOfTxPowerByRate +10031304 T PHY_GetTxPowerByRate +10031364 T phy_StoreTxPowerByRateBase +100313b0 T PHY_SetTxPowerByRate +100313ec T phy_ConvertTxPowerByRateInDbmToRelativeValues +100314ec T PHY_TxPowerByRateConfiguration +100314fe T PHY_SetTxPowerIndexByRateArray +1003153c T PHY_SetTxPowerIndexByRateSection +100315a0 T PHY_SetTxPowerLevelByPath +100315d6 T phy_GetWorldWideLimit +10031602 T PHY_GetTxPowerLimit +1003172c T PHY_ConvertTxPowerLimitToPowerIndex +1003187c T PHY_InitTxPowerLimit +100318c4 T PHY_SetTxPowerLimit +10031940 T PHY_GetTxPowerIndex +10031950 T rtw_hal_chip_configure +10031966 T rtw_hal_read_chip_info +1003197c T rtw_hal_read_chip_version +10031992 T rtw_hal_def_value_init +100319a8 T rtw_hal_free_data +100319be T rtw_hal_dm_init +100319d4 T rtw_hal_dm_deinit +100319ea T rtw_hal_init +10031a14 T rtw_hal_deinit +10031a2e T rtw_hal_set_hwreg +10031a3c T rtw_hal_get_hwreg +10031a4a T rtw_hal_set_def_var +10031a5c T rtw_hal_get_def_var +10031a6e T rtw_hal_set_odm_var +10031a7c T rtw_hal_get_odm_var +10031a8a T rtw_hal_enable_interrupt +10031aac T rtw_hal_disable_interrupt +10031ace T rtw_hal_inirp_init +10031ae0 T rtw_hal_inirp_deinit +10031af2 T rtw_hal_irp_reset +10031b00 T rtw_hal_xmit +10031b12 T rtw_hal_mgnt_xmit +10031b24 T rtw_hal_init_xmit_priv +10031b36 T rtw_hal_free_xmit_priv +10031b44 T rtw_hal_update_ra_mask +10031b72 T rtw_hal_add_ra_tid +10031b80 T rtw_hal_clone_data +10031b8e T rtw_hal_start_thread +10031b9c T rtw_hal_stop_thread +10031baa T rtw_hal_read_bbreg +10031bde T rtw_hal_write_bbreg +10031c0a T rtw_hal_read_rfreg +10031c1c T rtw_hal_write_rfreg +10031c30 T rtw_hal_interrupt_handler +10031c42 T rtw_hal_set_bwmode +10031c50 T rtw_hal_set_chan +10031c5e T rtw_hal_set_chnl_bw +10031c74 T rtw_hal_dm_watchdog +10031c8a T rtw_hal_macid_sleep +10031caa T rtw_hal_macid_wakeup +10031cca T decide_chip_type_by_device_id +10031cd0 t rtw_net_get_stats +10031d20 t netdev_if2_close +10031d40 t netdev_close +10031d9c t rtw_if1_deinit +10031e36 T rtw_os_indicate_connect +10031e3a T rtw_os_indicate_scan_done +10031e3e T rtw_reset_securitypriv +10031f32 T rtw_os_indicate_disconnect +10031f7c T rtw_init_netdev +100320cc T rtw_drv_if2_init +100322d4 T rtw_drv_if2_stop +1003232a T rtw_drv_if2_free +10032378 T _netdev_open +10032494 T _netdev_if2_open +10032550 T netdev_if2_open +10032578 T netdev_open +100325a0 T rtw_drv_probe +10032720 T rtw_dev_remove +10032764 T rtw_drv_entry +10032790 T rtw_drv_halt +100327c0 t rtw_wx_set_autoreconnect +100327ee t rtw_wx_get_autoreconnect +100327fc t rtw_forwarding_set +1003281e t rtw_set_ch_deauth +10032840 t get_priv_size +10032854 t rtw_wx_del_custome_ie +100328a0 t rtw_wx_set_pscan_freq +10032922 t rtw_wx_update_custome_ie +10032994 t rtw_set_tos_value +100329b4 t rtw_get_tx_power +10032af8 t rtw_wx_set_custome_ie +10032ba4 t rtw_pm_get +10032be8 t rtw_pm_set +10032c9c t rtw_wx_read32 +10032d48 t rtw_wx_write32 +10032dac t rtw_wx_set_freq.isra.10 +10032e54 T rtw_ex_set +10032f14 T wireless_send_event +10032f1e T indicate_wx_custom_event +10032f7a T indicate_wx_scan_result_present +10032fa2 T indicate_wx_scan_complete_event +10032fcc T rtw_indicate_sta_assoc +1003301c T rtw_indicate_sta_disassoc +10033074 T rtw_indicate_wx_assoc_event +100330a6 T rtw_indicate_wx_disassoc_event +100330d6 T rtw_set_wpa_ie +100331ec T strtopsk +10033258 T rtw_wx_get_passphrase +100332a4 T rtw_wx_set_ap_essid +10033394 T mac_reg_dump +10033440 T bb_reg_dump +1003349c T rf_reg_dump +10033514 t rtw_dbg_port +10033b7c T rtw_set_sta_num +10033b98 T rtw_ex_get_drv_ability +10033c58 T rtw_ex_get +10033ef0 T rtw_ioctl +10034e7c T rtw_os_recv_resource_init +10034e80 T rtw_os_recv_resource_alloc +10034e8a T rtw_os_recv_resource_free +10034e8c T rtw_tkip_countermeasure +10034f2c T rtw_handle_tkip_mic_err +10034fd4 T rtw_recv_indicatepkt +10035224 T skb_fail_inc +10035240 T skb_fail_get_and_rst +1003525c T init_skb_pool +100352b4 T init_skb_data_pool +1003530c T alloc_skb +1003540c T kfree_skb +10035474 T kfree_skb_chk_key +10035478 T skb_put +100354ac T skb_reserve +100354ba T dev_alloc_skb +100354d6 T skb_end_pointer +100354da T skb_set_tail_pointer +100354e2 T skb_pull +100354fa T skb_copy +10035522 T rtw_remainder_len +1003552e T _rtw_open_pktfile +10035540 T _rtw_pktfile_read +1003556e T rtw_set_tx_chksum_offload +10035570 T rtw_os_xmit_resource_alloc +1003557a T rtw_os_xmit_resource_free +1003557c T rtw_os_pkt_complete +10035584 T rtw_os_xmit_complete +10035596 T rtw_os_xmit_schedule +100355d2 T rtw_xmit_entry +1003561e T rtw_alloc_etherdev_with_old_priv +10035634 T rtw_alloc_etherdev +10035660 T rtw_free_netdev +10035680 T timer_wrapper +100356d4 T alloc_etherdev +10035730 T free_netdev +1003574a T dev_alloc_name +10035754 T init_timer_wrapper +10035774 T deinit_timer_wrapper +100357c0 T init_timer +10035878 T mod_timer +10035958 T cancel_timer_ex +100359a0 T del_timer_sync +10035a04 T rtw_init_timer +10035a0c T rtw_set_timer +10035a10 T rtw_cancel_timer +10035a1a T rtw_del_timer +10035a20 T rltk_get_idx_bydev +10035a30 T rltk_wlan_init +10035ab8 T rltk_wlan_deinit +10035b7c T rltk_wlan_start +10035bb0 T rltk_wlan_check_isup +10035bc0 T rltk_wlan_tx_inc +10035bd4 T rltk_wlan_tx_dec +10035be8 T rltk_wlan_get_recv_skb +10035bf8 T rltk_wlan_alloc_skb +10035c38 T rltk_wlan_send_skb +10035c6c T rltk_netif_rx +10035d18 T rltk_set_sta_num +10035d1c T rltk_set_tx_power_percentage +10035d50 T rltk_wlan_control +10035de4 T rltk_wlan_running +10035dfc T rltk_wlan_handshake_done +10035e30 T rltk_wlan_is_connected_to_ap +10035e74 T Efuse_PowerSwitch +10035e80 T Efuse_GetCurrentSize +10035e8c T Efuse_CalculateWordCnts +10035eb0 T EFUSE_GetEfuseDefinition +10035ec4 T efuse_OneByteRead +10035ef8 T efuse_OneByteWrite +10035f2c T Efuse_PgPacketWrite +10035f40 T efuse_WordEnableDataRead +10035f72 T Efuse_WordEnableDataWrite +10035f86 T efuse_GetCurrentSize +10035fae T rtw_efuse_map_read +10036010 T rtw_efuse_map_write +10036190 T rtw_macaddr_cfg +10036254 T rtw_get_cipher_info +100362ce T rtw_get_bcn_info +1003639e T rtw_init_default_value +1003640c T rtw_cancel_all_timer +10036476 T rtw_free_drv_sw +100364ec T rtw_reset_drv_sw +10036548 T rtw_init_drv_sw +100365d0 T rtw_start_drv_threads +1003668c T rtw_stop_drv_threads +100366c0 T rtw_read8 +100366ce T rtw_read16 +100366dc T rtw_read32 +100366ea T rtw_write8 +100366f8 T rtw_write16 +10036706 T rtw_write32 +10036714 T rtw_do_join +100367b8 T rtw_set_802_11_bssid +1003693c T rtw_set_802_11_ssid +10036a44 T rtw_set_802_11_infrastructure_mode +10036ae6 T rtw_set_802_11_bssid_list_scan +10036b36 T rtw_set_802_11_authentication_mode +10036b58 T rtw_set_802_11_add_wep +10036bb8 T ODM_InitRAInfo +10036c58 T InitialRateUpdate +10036d58 T RateUp_search_RateMask +10036d8a T RateDown_search_RateMask +10036ddc T StartRateByRSSI +10036e06 T RateUpRAM8195A +10036e9a T RateDownTrying +10036ed8 T TryDone +10036f70 T RateDownStepRAM8195A +10037010 T RateDecisionRAM8195A +100370f4 T ArfrRefresh +100372fc T H2CHDL_Set_MACID_Config +100373c0 T PHY_DM_RA_SetRSSI_8195A +100373ee t CheckPositive.isra.0 +100374d0 T ODM_ReadAndConfig_MP_8195A_AGC_TAB +10037548 T ODM_ReadAndConfig_MP_8195A_PHY_REG +100375c0 T ODM_GetVersion_MP_8195A_PHY_REG +100375c4 T ODM_ReadAndConfig_MP_8195A_PHY_REG_PG +100375f8 T odm_ConfigRFReg_8195A +10037630 T odm_ConfigRF_RadioA_8195A +10037640 T odm_ConfigMAC_8195A +10037644 T odm_ConfigBB_AGC_8195A +10037654 T odm_ConfigBB_PHY_REG_PG_8195A +10037682 T odm_ConfigBB_PHY_8195A +100376ca T odm_ConfigBB_TXPWR_LMT_8195A +100376f0 T ODM_CmnInfoInit +100377e4 T ODM_CmnInfoHook +10037888 T ODM_CmnInfoPtrArrayHook +10037898 T ODM_CmnInfoUpdate +10037968 T odm_CommonInfoSelfInit +100379dc T ODM_DMInit +10037a2a T odm_CommonInfoSelfUpdate +10037a7c T ODM_DMWatchdog +10037ae8 T PhyDM_Get_Structure +10037b0c T Phydm_CheckAdaptivity +10037b3a T Phydm_NHMCounterStatisticsInit +10037bb0 T Phydm_SetEDCCAThreshold +10037be8 T Phydm_MACEDCCAState +10037c26 T Phydm_AdaptivityInit +10037d04 T Phydm_Adaptivity +10037e24 T ODM_CfoTrackingInit +10037e4e T ODM_CfoTracking +10037e6e T ODM_ParsingCFO +10037ea0 T ODM_InitDebugSetting +10037eb4 T ODM_Write_DIG +10037f54 T odm_ForbiddenIGICheck +10037fe6 T ODM_Write_CCK_CCA_Thres +10038020 T odm_DIGInit +100380ba T odm_DigAbort +100380dc T odm_DIGbyRSSI_LPS +10038188 T odm_FAThresholdCheck +100381b4 T odm_DIG +10038414 T odm_FalseAlarmCounterStatistics +10038440 T odm_CCKPacketDetectionThresh +10038498 T odm_RxPhyStatus8195A_Parsing +1003859c T odm_Process_RSSIForDM_8195A +100386de T ODM_PhyStatusQuery_8195A +1003870a T ODM_PhyStatusQuery +1003870e T ODM_ConfigRFWithHeaderFile +1003872c T ODM_ConfigRFWithTxPwrTrackHeaderFile +1003875e T ODM_ConfigBBWithHeaderFile +10038786 T ODM_ConfigMACWithHeaderFile +10038798 T ODM_Read1Byte +1003879e T ODM_Read4Byte +100387a4 T ODM_Write1Byte +100387aa T ODM_Write2Byte +100387b0 T ODM_Write4Byte +100387b6 T ODM_SetMACReg +100387bc T ODM_SetBBReg +100387c2 T ODM_GetBBReg +100387c8 T ODM_SetRFReg +100387ce T ODM_GetRFReg +100387d4 T ODM_MoveMemory +100387de T ODM_delay_ms +100387e2 T ODM_delay_us +100387e8 T getSwingIndex +10038840 T odm_TXPowerTrackingThermalMeterInit +100388f2 T odm_TXPowerTrackingInit +100388f6 T odm_TXPowerTrackingCheckIOT +1003892a T ODM_TXPowerTrackingCheck +10038938 T odm_RSSIMonitorInit +10038940 T ODM_RAPostActionOnAssoc +10038948 T odm_RSSIMonitorCheckIOT +10038a1c T odm_RSSIMonitorCheck +10038a30 T odm_RateAdaptiveMaskInit +10038a58 T ODM_RAStateCheck +10038a9a T odm_RefreshRateAdaptiveMaskIOT +10038aea T odm_RefreshRateAdaptiveMask +10038b00 T ODM_Get_Rate_Bitmap +10038bf0 t _ReadEfuseInfo8195a +10038cb8 t rtl8195a_interface_configure +10038cec t rtl8195a_hal_deinit +10038d28 T _InitPowerOn +10038da8 t ReadAdapterInfo8195a +10038dd8 T _InitDriverInfoSize +10038de2 T _InitNetworkType +10038e04 T _InitWMACSetting +10038e74 T _InitAdaptiveCtrl +10038eb8 T _InitEDCA +10038f34 T _InitRateFallback +10038f78 T _InitRetryFunction +10038fa4 T _InitOperationMode +10038fec T _InitInterrupt +1003902c t rtl8195a_hal_init +10039304 T rtl8195ab_set_hal_ops +100393dc T FillH2CCmd8195A +100393fc T CheckFwRsvdPageContent +100393fe T rtl8195a_set_FwRsvdPage_cmd +10039408 T rtl8195a_set_FwMediaStatusRpt_cmd +10039434 T rtl8195a_set_FwMacIdConfig_cmd +100394f4 T rtl8195a_set_FwPwrMode_cmd +10039584 T rtl8195a_download_rsvd_page +1003988c T rtl8195a_set_FwJoinBssRpt_cmd +10039896 T rtl8195a_Add_RateATid +100398e8 T rtw_rpt_h_addr +10039934 T rtw_txrpt_read8 +10039952 T rtw_txrpt_write8 +10039976 T rtw_ratemask_read8 +10039994 T rtw_ratemask_write8 +100399b8 T ReadRateMask8 +100399c2 T WriteRateMask8 +100399c6 T ReadTxrpt8 +100399d0 T WriteTxrpt8 +100399d4 T ResetTxrpt +10039a0c T PsuseTxrpt +10039a2c T CheckMaxMacidNum +10039a64 T GetMediaStatusCommon +10039a7e T GetTxrptStatistic +10039b34 T rtl8195a_InitHalDm +10039c58 T rtl8195a_HalDmWatchDog +10039d3c T rtl8195a_init_dm_priv +10039e14 T rtl8195a_deinit_dm_priv +10039e16 T MediaConnection +10039e34 T MediaDisconnection +10039e54 T RATaskEnable +10039e7e T SetMediaStatus +10039ebc T H2CHDL_JoinInfo +10039ef4 T H2CHDL_SetRsvdPage +10039f8c T H2CCmdCommon +10039fd0 T HalPwrSeqCmdParsing +1003a090 T hci_dvobj_init +1003a0a0 T hci_dvobj_deinit +1003a0b0 T hci_dvobj_request_irq +1003a0c0 T hci_dvobj_free_irq +1003a0d0 T hci_lxbus_dvobj_init +1003a10c T hci_lxbus_dvobj_deinit +1003a14c T hci_lxbus_dvobj_request_irq +1003a1a0 T hci_lxbus_free_irq +1003a1f8 T hci_lxbus_intf_stop +1003a230 T rtw_interrupt_thread +1003a2a4 T lextra_bus_dma_Interrupt +1003a2ec T init_rom_wlan_ram_map +1003a304 T ODM_ReadAndConfig_MP_8195A_MAC_REG +1003a460 t CheckPositive.isra.0 +1003a544 T ODM_ReadAndConfig_MP_8195A_RadioA +1003a5bc T ODM_ReadAndConfig_MP_8195A_TxPowerTrack_QFN48 +1003a60c T ODM_ReadAndConfig_MP_8195A_TxPowerTrack_QFN56 +1003a65c T ODM_ReadAndConfig_MP_8195A_TxPowerTrack_TFBGA96 +1003a6ac T ODM_ReadAndConfig_MP_8195A_TXPWR_LMT +1003a6e4 T ODM_ReadAndConfig_MP_8195A_TxXtalTrack +1003a710 T GetDeltaSwingTable_8195A +1003a740 T GetDeltaSwingXtalTable_8195A +1003a750 T ODM_TxXtalTrackSetXtal_8195A +1003a770 T Hal_MPT_CCKTxPowerAdjust +1003a840 T ODM_TxPwrTrackSetPwr_8195A +1003a950 T ConfigureTxpowerTrack_8195A +1003a99c T phy_PathA_IQK_8195A +1003ab50 T phy_PathA_RxIQK8195A +1003aee4 T _PHY_PathAFillIQKMatrix8195A +1003b07a T _PHY_PathBFillIQKMatrix8195A +1003b1f6 T _PHY_SaveADDARegisters8195A +1003b22a T _PHY_SaveMACRegisters8195A +1003b258 T _PHY_ReloadADDARegisters8195A +1003b28c T _PHY_ReloadMACRegisters8195A +1003b2bc T _PHY_PathADDAOn8195A +1003b2f8 T _PHY_MACSettingCalibration8195A +1003b340 T _PHY_PIModeSwitch8195A +1003b37c T phy_SimularityCompare_8195A +1003b4b0 T phy_IQCalibrate_8195A +1003b828 T phy_LCCalibrate_8195A +1003b898 T PHY_LCCalibrate_8195A +1003b8f8 T PHY_IQCalibrate_8195A +1003bbac T DoIQK_8195A +1003bbca T ConfigureTxpowerTrack +1003bbdc T ODM_TXPowerTrackingCallback_ThermalMeter +1003bfe8 T ODM_ResetIQKResult +1003c030 T ODM_GetRightChnlPlaceforIQK +1003c088 t __SpicWaitBusyDoneRtl8195A_veneer +1003c098 t __HalCpuClkConfig_veneer +1003c0a8 t __HalI2SRead32_veneer +1003c0b8 t __SpicCmpDataForCalibrationRtl8195A_veneer +1003c0c8 t __ROM_odm_EVMdbToPercentage_veneer +1003c0d8 t __key_2char2num_veneer +1003c0e8 t __rtw_get_wps_ie_veneer +1003c0f8 t __phy_CalculateBitShift_veneer +1003c108 t __Rand_veneer +1003c118 t __StrUpr_veneer +1003c128 t __rtw_set_ie_veneer 1003c138 t __rtw_secmicsetkey_veneer -1003c148 t __rtw_parse_wpa_ie_veneer -1003c158 t __rom_psk_CalcGTK_veneer -1003c168 t __PHY_QueryBBReg_8195A_veneer -1003c178 t __Strtoul_veneer -1003c188 t __wep_80211_encrypt_veneer -1003c198 t __rt_md5_hmac_veneer -1003c1a8 t __AES_WRAP_veneer -1003c1b8 t __ROM_odm_CfoTrackingFlow_veneer -1003c1c8 t __ROM_odm_EVMdbToPercentage_veneer +1003c148 t __rtw_secmicappend_veneer +1003c158 t __rtw_get_sec_ie_veneer +1003c168 t __ROM_odm_FalseAlarmCounterStatistics_veneer +1003c178 t __aes_80211_encrypt_veneer +1003c188 t __rtw_parse_wpa_ie_veneer +1003c198 t __HalI2SWrite32_veneer +1003c1a8 t __tkip_80211_encrypt_veneer +1003c1b8 t ___vsscanf_veneer +1003c1c8 t __ROM_ODM_CfoTrackingReset_veneer 1003c1d8 t __tkip_80211_decrypt_veneer -1003c1e8 t __rt_hmac_sha1_veneer -1003c1f8 t __rt_arc4_init_veneer -1003c208 t __rtw_parse_wpa2_ie_veneer +1003c1e8 t __AES_WRAP_veneer +1003c1f8 t __PHY_SetBBReg_8195A_veneer +1003c208 t __rtw_get_rateset_len_veneer 1003c218 t __ROM_odm_GetDefaultCrytaltalCap_veneer -1003c228 t __SpicWaitBusyDoneRtl8195A_veneer -1003c238 t __rtw_check_network_type_veneer -1003c248 t __HalI2SIntrCtrlRtl8195a_veneer -1003c258 t __rtw_set_fixed_ie_veneer -1003c268 t __rom_psk_PasswordHash_veneer -1003c278 t __ROM_odm_FalseAlarmCounterStatistics_veneer -1003c288 t __PHY_SetBBReg_8195A_veneer -1003c298 t __rtw_set_ie_veneer -1003c2a8 t __tkip_80211_encrypt_veneer -1003c2b8 t __HalI2SClrAllIntrRtl8195a_veneer -1003c2c8 t __rtw_get_ie_veneer -1003c2d8 t __ROM_odm_SetCrystalCap_veneer -1003c2e8 t __ROM_ODM_CfoTrackingReset_veneer -1003c2f8 t __HalReInitPlatformLogUartV02_veneer -1003c308 t __rtw_seccalctkipmic_veneer -1003c318 t __HalI2SRead32_veneer -1003c328 t __HalI2SWrite32_veneer -1003c338 t __SpicCmpDataForCalibrationRtl8195A_veneer -1003c348 t __rtw_secgetmic_veneer -1003c358 t __rtw_get_wps_attr_content_veneer -1003c368 t __aes_80211_decrypt_veneer -1003c378 t __prvStrCmp_veneer -1003c388 t __HalCpuClkConfig_veneer -1003c398 t __rtw_secmicappend_veneer -1003c3a8 t __phy_CalculateBitShift_veneer -1003c3b8 t __StrUpr_veneer -1003c3c8 t __CmdWriteWord_veneer -1003c3d8 t __CmdDumpWord_veneer -1003c3e8 t __key_2char2num_veneer -1003c3f8 t __ROM_odm_QueryRxPwrPercentage_veneer -1003c408 t __wep_80211_decrypt_veneer -1003c418 t __rtw_get_wpa2_ie_veneer -1003c428 t __rtw_get_bit_value_from_ieee_value_veneer -1003c438 t __Rand_veneer -1003c448 t __rtw_get_wps_ie_veneer -1003c458 t __aes_80211_encrypt_veneer -1003c468 t __HalDelayUs_veneer -1003c49a d __func__.12747 -1003c594 d __func__.21272 -1003ccd2 d __FUNCTION__.14172 -1003cf00 d bitrate_table -1003d02c d samplerate_table -1003d038 d decoder_table -1003d044 d imdct_s -1003d0d4 d scale.6899 -1003d11c d sfb_8000_short -1003d143 d sfb_32000_short -1003d16c d is_table -1003d188 d rq_table -100451c4 d root_table -100451e0 d sfb_44100_mixed -10045208 d is_lsf_table -10045280 d sflen_table -100452a0 d sfb_16000_mixed -100452c4 d ca -100452e4 d sfb_44100_short -1004530b d sfb_44100_long -10045321 d sfb_48000_mixed -10045347 d sfb_24000_long -1004535d d sfb_32000_mixed -10045383 d sfb_16000_short -100453aa d sfb_8000_long -100453c0 d sfb_22050_mixed -100453e4 d window_l -10045474 d sfb_48000_long -1004548c d cs -100454ac d sfb_24000_mixed -100454d0 d pretab -100454e6 d sfb_48000_short -1004550d d sfb_22050_short -10045534 d sfb_8000_mixed -1004555c d sfbwidth_table -100455c8 d sfb_24000_short -100455ef d sfb_32000_long -10045605 d sfb_22050_long -1004561c d window_s -1004564c d nsfb_table -10045694 d hufftab24 -10045c9c d hufftab10 -10045e34 d hufftab11 -10045fd4 d hufftab12 -10046154 d hufftab13 -1004678c d hufftab3 -100467cc d hufftab15 -10046dbc d hufftab16 -10047404 d hufftab6 -10047474 d hufftab7 -10047574 D mad_huff_pair_table -100476f4 d hufftab9 -100477cc d hufftab1 -100477ec d hufftabA -1004785c d hufftab2 -1004789c d hufftabB -100478dc D mad_huff_quad_table -100478e4 d hufftab0 -100478e8 d hufftab5 -10047950 d hufftab8 -10047a58 d crc_table -10047c58 d D -100484d8 D mad_timer_zero -100487fa d __func__.20803 -10048e08 d err_to_errno_table -10048e50 D ip_addr_broadcast -10048e54 D ip_addr_any -10048e68 D memp_sizes -10048e88 D tcp_pcb_lists -10048e98 D tcp_state_str -10048ec4 D tcp_backoff -10048f39 D tcp_persist_backoff -10048f40 D ethbroadcast -10048f46 D ethzero -10049028 d __FUNCTION__.8702 -10049037 d __FUNCTION__.8714 -10049046 d dhcp_option_interface_mtu_576 -1004906d d dhcp_magic_cookie -10049071 d dhcp_option_lease_time_one_day -100490ce d __FUNCTION__.4594 -10049111 d CSWTCH.270 -1004917d d ucExpectedStackBytes.6559 -100491b4 D osdep_service -100492d8 d __FUNCTION__.11772 -100492ee d __FUNCTION__.11768 -10049304 d __FUNCTION__.11606 -1004939d d __FUNCTION__.11572 -100493b1 d __FUNCTION__.11623 -100493c4 d __FUNCTION__.11580 -100493e0 d __FUNCTION__.11634 -100493fb d __FUNCTION__.6810 -10049518 d PinMap_I2S_RX -100495f8 d PinMap_I2S_TX -10049658 d I2SDefaultSetting -1004966c d PinMap_I2S_CLK -100496cc d __FUNCTION__.8781 -100496d8 d PinMap_I2S_WS -10049787 d __FUNCTION__.8597 -10049794 d __FUNCTION__.8610 -10049a39 d __FUNCTION__.8459 -10049a54 d __FUNCTION__.8466 -10049b4f d __FUNCTION__.8452 -10049b71 d __func__.8808 -10049b90 d __func__.8818 -10049bae d __func__.8830 -10049bc8 d __func__.8840 -10049bea d __func__.8835 -10049fb3 d __func__.8603 -10049fcd d __func__.8686 -10049fe0 d __func__.8825 -10049ff9 d __func__.8631 -1004a03c D wlancmds -1004a234 D rtw_cmd_callback -1004a4c0 d RTW_ChannelPlan2G -1004a538 D WPS_OUI -1004a53c D RSN_TKIP_CIPHER -1004a540 D MCS_rate_1R -1004a550 D P2P_OUI -1004a57c D WMM_INFO_OUI -1004a582 D RTW_WPA_OUI -1004a586 D WMM_PARA_OUI -1004a58c d RTW_ChannelPlanMap -1004a5a4 D null_addr -1004a5aa D WMM_OUI -1004a5b0 d wlanevents -1004a670 D zero_bssid -1004a6ad d __FUNCTION__.17681 -1004a6c3 D SNAP_ETH_TYPE_APPLETALK_AARP -1004a6c5 d __FUNCTION__.17495 -1004a6d8 D SNAP_ETH_TYPE_IPX -1004a6da D rtw_bridge_tunnel_header -1004a701 D rtw_rfc1042_header -1004a71f d CSWTCH.36 -1004a72b D ARTHEROS_OUI1 -1004a72e D ARTHEROS_OUI2 -1004a731 D REALTEK_OUI -1004a734 D RALINK_OUI -1004a737 D MARVELL_OUI -1004a73a D CISCO_OUI -1004a73d d rtw_basic_rate_cck -1004a741 D BROADCOM_OUI1 -1004a744 D BROADCOM_OUI2 -1004a747 D REALTEK_96B_IE -1004a74d d rtw_basic_rate_mix -1004a754 d rtw_basic_rate_ofdm -1004a757 D AIRGOCAP_OUI -1004a76b d CSWTCH.66 -1004a784 d CSWTCH.48 -1004a7c6 d CSWTCH.28 -1004a7d8 D efuse_map_mask -1004a7e8 D flash_map_mask -1004a884 d __func__.21107 -1004abca d CSWTCH.15 -1004ac4e d CSWTCH.17 -1004acbd d CSWTCH.14 -1004ad52 d __FUNCTION__.21257 -1004ad64 d rtw_private_args -1004b184 d __FUNCTION__.21057 -1004b197 d __FUNCTION__.21294 -1004b1a8 d __FUNCTION__.21241 -1004b1b7 d __FUNCTION__.21126 -1004b1c7 d iw_priv_type_size -1004b2a5 d __FUNCTION__.17334 -1004b2af d __FUNCTION__.17736 -1004b2bf d __FUNCTION__.17760 -1004b2d2 d __FUNCTION__.17712 -1004b2e1 d __FUNCTION__.17649 -1004b2ef d __FUNCTION__.17661 -1004b6c6 d __FUNCTION__.17827 -1004b6df d __FUNCTION__.17654 -1004b6ea d __FUNCTION__.17615 -1004b6f9 d __FUNCTION__.17811 -1004b70b d __FUNCTION__.17765 -1004b719 d __FUNCTION__.17724 -1004b72a d __FUNCTION__.17637 -1004cacb D CCKFCCTable_Ch14_8195A -1004cadb D CCKFCCTable_8195A -1004caec D OFDMSwingTable_New -1004cb98 D CCKCETable_8195A -1004cbae d CSWTCH.39 -1004cbc3 d __func__.20571 -1004cbe4 D hci_ops -1004cc09 V Array_MP_8195A_TXPWR_LMT -1004d17c D xHeapRegions -1004d19c D UartLogRamCmdTable -1004d19c D console_cmd_wifi_api -1004d1fc D console_commands_main -1004d20c D console_commands1 -1004d26c D console_commands -1004d27c d UartLogRamCmdTable_end -1004d280 D __data_start__ -1004d280 D wlan_st_name -1004d288 D wifi_st_dhcp -1004d298 D wlan_ap_name -1004d2a0 D wifi_ap_dhcp -1004d2b0 D feep_tab -1004d2e0 D wifi_st_cfg -1004d34c D wifi_cfg -1004d353 D wlan_ap_netifn -1004d354 D wifi_ap_cfg -1004d3c0 D oversampling -1004d3c4 D SystemCoreClock -1004d3c8 D error_flag -1004d3cc d tcp_port -1004d3d0 d iss.7348 -1004d3d4 d udp_port -1004d3d6 D lwip_host_name -1004d3f6 d dhcp_server_state_machine -1004d3f7 d dhcp_recorded_xid -1004d3fc d uxCriticalNesting -1004d400 d xNextTaskUnblockTime -1004d404 d seed.11739 -1004d408 d wakeup_event -1004d40c d wakelock -1004d410 d last_wakelock_state -1004d430 D mlme_sta_tbl -1004d4a0 d PMKID_KDE_TYPE.17744 -1004d4a8 V nr_xmitbuff -1004d4ac V nr_xmitframe -1004d4b0 d P802_1H_OUI -1004d4b3 D rtw_adaptivity_mode -1004d4b4 D g_user_ap_sta_num -1004d4b8 d rtw_private_handler -1004d4fc V max_local_skb_num -1004d500 V max_skb_buf_num -1004d504 D rom_e_rtw_msgp_str_ -1004d6e0 D ARFB_table -1004d71f D TRYING_NECESSARY_idx -1004d733 D DROPING_NECESSARY -1004d747 D PER_RATE_UP -1004d75b D PER_RATE_DOWN -1004d770 V Array_MP_8195A_PHY_REG_PG -1004d800 D Array_MP_8195A_AGC_TAB -1004da10 D Array_MP_8195A_PHY_REG -1004e088 D rtl8195A_card_disable_flow -1004e128 D rtl8195A_card_enable_flow -1004e1c8 D Array_MP_8195A_MAC_REG -1004e4d0 D gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_TFBGA96_8195A -1004e4f0 D gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_TFBGA96_8195A -1004e510 D gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_QFN48_8195A -1004e52e D gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_QFN56_8195A -1004e54c D gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_QFN48_8195A -1004e56a D gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_QFN56_8195A -1004e588 D gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_TFBGA96_8195A -1004e5a8 D gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_QFN56_8195A -1004e5c6 D gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_QFN48_8195A -1004e5e4 D gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_QFN56_8195A -1004e604 D Array_MP_8195A_RadioA -1004ebcc D gDeltaSwingTableXtal_MP_P_TxXtalTrack_8195A -1004ebea D gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_TFBGA96_8195A -1004ec0a D gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_QFN48_8195A -1004ec28 D .ram.bss$$Base -1004ec28 D __bss_start__ -1004ec28 D __data_end__ -1004ec28 D __ram_image2_text_end__ -1004ec28 d skbdata_list -1004ec30 V skb_data_pool -10052030 d ucIdleTaskHeap -10052148 D HalI2SOpSAL -10052184 D SYSAdapte -10052188 D PwrAdapter -10052414 D libc_has_init -10052418 d rheap_end -1005241c d event_init.21279 -10052420 D wifi_run_mode -10052424 D wlan_st_netifn -10052425 d sampCntAdd -10052428 d sampCnt -1005242c D mp3_serv -100524ae D tskreader_enable -100524b0 D readBuf -100524b4 D tskmad_enable -100524b8 d bufUnderrunCt -100524bc d oldRate -100524c0 d sampDelCnt -100524c4 D pbuf_fifo -100524c8 D pi2s -100524d0 D I2sTxSema -100524d4 D eap_method -100524d5 D eap_phase -100524d8 D rtw_join_status -100524dc d param.21252 -100524f4 D wifi_mode -100524f8 d join_user_data -100524fc d event_callback_list -1005267c D paff_array -100526f4 D lwip_init_done -100526f8 D xnetif -10052778 d s_aliases.6960 -1005277c D h_errno -10052780 d s_hostent.6959 -10052794 d s_hostent_addr.6961 -10052798 d s_phostent_addr.6962 -100527a0 d select_cb_list -100527a4 d sockets -10052864 d select_cb_ctr -10052868 d mbox -1005286c d tcpip_init_done_arg -10052870 d tcpip_init_done -10052874 d allsystems -10052878 d allrouters -1005287c d igmp_group_list -10052880 D current_header -10052884 d ip_id -10052888 D current_iphdr_src -1005288c D current_iphdr_dest -10052890 D current_netif -10052894 d str.6325 -100528a4 d reassdatagrams -100528a8 d ip_reass_pbufcount -100528aa D dhcp_rx_options_given -100528b4 D dhcp_rx_options_val -100528dc d xid.7275 -100528e0 d dns_seqno -100528e4 d dns_table -10052d44 d dns_servers -10052d4c d dns_payload_buffer -10052f50 d dns_pcb -10052f54 d dns_payload -10052f58 d tcpip_tcp_timer_active -10052f5c d next_timeout -10052f60 D netif_list -10052f64 D netif_default -10052f68 d netif_num -10052f69 D pbuf_free_ooseq_pending -10052f6c d raw_pcbs -10052f70 D tcp_active_pcbs_changed -10052f74 D tcp_ticks -10052f78 d tcp_timer -10052f7c D tcp_listen_pcbs -10052f80 D tcp_active_pcbs -10052f84 d tcp_timer_ctr -10052f88 D tcp_tw_pcbs -10052f8c D tcp_tmp_pcb -10052f90 D tcp_bound_pcbs -10052f94 d seqno -10052f98 d tcplen -10052f9c d ackno -10052fa0 d flags -10052fa1 d recv_flags -10052fa4 d tcphdr -10052fa8 d recv_data -10052fac d inseg -10052fc0 D tcp_input_pcb -10052fc4 D udp_pcbs -10052fc8 d etharp_cached_entry -10052fcc d arp_table -10053094 D lwip_tickless_used -10053098 d s_timeoutlist -100530c8 d s_nextthread -100530cc d dhcps_ip_table_semaphore -100530d0 d dhcps_send_broadcast_address -100530d4 D dhcps_ip4addr_pool_end -100530d5 d dhcp_client_ethernet_address -100530e8 d dhcps_subnet_broadcast -100530ec d bound_client_ethernet_address -100530fc d ip_table -1005311c d dhcps_pcb -10053120 d dhcp_message_total_options_lenth -10053124 d dhcps_local_address -10053128 d dhcps_netif -1005312c d client_request_ip -10053130 d dhcps_allocated_client_address -10053134 d dhcps_local_mask -10053138 d dhcps_local_gateway -1005313c d dhcps_network_id -10053140 D dhcps_ip4addr_pool_start -10053144 d dhcp_message_repository -10053148 D ext_upper -1005314c d xFreeBytesRemaining -10053150 d ext_free -10053154 D ext_lower -10053158 d pxEnd -1005315c d xStart -10053164 d xMinimumEverFreeBytesRemaining -10053168 d ulTimerCountsForOneTick -1005316c d ulStoppedTimerCompensation -10053170 d xMaximumPossibleSuppressedTicks -10053174 d xPendingReadyList -10053188 d uxTopReadyPriority -1005318c d uxTasksDeleted -10053190 d xTickCount -10053194 d pxReadyTasksLists -10053270 d pxOverflowDelayedTaskList -10053274 d xTasksWaitingTermination -10053288 d pxDelayedTaskList -1005328c d xSchedulerRunning -10053290 d ulTaskSwitchedInTime -10053294 D pxCurrentTCB -10053298 d uxPendedTicks -1005329c d xSuspendedTaskList -100532b0 d uxCurrentNumberOfTasks -100532b4 d ulDeltaTotalRunTime -100532b8 d xDelayedTaskList2 -100532cc d xDelayedTaskList1 -100532e0 d uxTaskNumber -100532e4 d xYieldPending -100532e8 d uxSchedulerSuspended -100532ec d xNumOfOverflows -100532f0 d pxCurrentTimerList -100532f4 d xActiveTimerList1 -10053308 d xActiveTimerList2 -1005331c d xLastTime.5284 -10053320 d xTimerQueue -10053324 d pxOverflowTimerList -10053328 d xTimerTaskHandle -1005332c d device_mutex -10053338 d mutex_init -1005333c d uxSavedInterruptStatus -10053340 D min_free_heap_size -10053344 d g_heap_inited -10053348 d tcm_lock -1005334c D g_tcm_heap -10053350 D flashobj -1005335c D fspic_isinit -10053360 D WDGAdapter -1005339c d last_acquire_wakelock_time -1005341c D post_sleep_callback -1005349c D pre_sleep_callback -1005351c D reserve_pll -10053520 d sys_sleep_time -10053524 d hold_wakelock_time -100535a4 D missing_tick -100535a8 D Timer2To7HandlerData -100535c0 D auto_reconnect_running -100535c4 D p_wlan_autoreconnect_hdl -100535c8 D mac_monitor_callback -100535cc D mf_list_head -100535d0 d pscan_retry_cnt.21430 -100535d4 D promisc_callback_all -100535d8 D promisc_sema -100535dc D promisc_callback -100535e0 D psk_essid -10053628 D psk_passphrase -100536aa D psk_passphrase64 -100536eb D wpa_global_PSK -1005373b d RFC1042_OUI -10053740 d rx_ring_pool -10055820 d stop_report_count.20629 -10055821 D bCheckStateTIMER -10055824 d WifiMcuCmdBitMap.20974 -10055828 D p_wlan_init_done_callback -1005582c D rtw_power_percentage_idx -10055830 D p_wlan_uart_adapter_callback -10055834 D rtw_adaptivity_en -10055838 D p_wlan_mgmt_filter -1005583c D rtw_initmac -10055840 D rtw_adaptivity_th_l2h_ini -10055844 d drvpriv -10055858 D skbbuf_used_num -1005585c V skb_pool -10055a14 D skbdata_used_num -10055a18 d wrapper_skbbuf_list -10055a20 D max_skbdata_used_num -10055a24 D max_skbbuf_used_num -10055a28 d skb_fail_count -10055a2c D timer_table -10055a34 D rltk_wlan_info -10055a64 d timer_used_num -10055a68 D max_timer_used_num -10055a6c D Noisy_State -10055a70 D pExportWlanIrqSemaphore -10055a74 D gDeltaSwingTableXtal_MP_N_TxXtalTrack_8195A -10055a92 D .ram.bss$$Limit -10055a92 D __bss_end__ -10055a98 B __ram_heap2_start__ +1003c228 t __rtw_get_wpa_ie_veneer +1003c238 t __rtw_get_wps_attr_content_veneer +1003c248 t __ROM_odm_SetCrystalCap_veneer +1003c258 t __CmdDumpWord_veneer +1003c268 t __PHY_QueryBBReg_8195A_veneer +1003c278 t __prvStrCmp_veneer +1003c288 t __ROM_odm_CfoTrackingFlow_veneer +1003c298 t __HalReInitPlatformLogUartV02_veneer +1003c2a8 t __HalI2SClrAllIntrRtl8195a_veneer +1003c2b8 t __rtw_check_network_type_veneer +1003c2c8 t __HalDelayUs_veneer +1003c2d8 t __rom_psk_CalcGTK_veneer +1003c2e8 t __rtw_ieee802_11_parse_elems_veneer +1003c2f8 t __rt_hmac_sha1_veneer +1003c308 t __aes_80211_decrypt_veneer +1003c318 t __rtw_secgetmic_veneer +1003c328 t __HalI2SIntrCtrlRtl8195a_veneer +1003c338 t __CmdWriteWord_veneer +1003c348 t __rom_psk_PasswordHash_veneer +1003c358 t __wep_80211_encrypt_veneer +1003c368 t __rt_arc4_init_veneer +1003c378 t __rtw_parse_wpa2_ie_veneer +1003c388 t __wep_80211_decrypt_veneer +1003c398 t __rtw_get_bit_value_from_ieee_value_veneer +1003c3a8 t __rtw_seccalctkipmic_veneer +1003c3b8 t __rom_psk_CalcPTK_veneer +1003c3c8 t __rt_md5_hmac_veneer +1003c3d8 t __AES_UnWRAP_veneer +1003c3e8 t __rtw_get_ie_veneer +1003c3f8 t __rt_arc4_crypt_veneer +1003c408 t __Strtoul_veneer +1003c418 t __rtw_set_fixed_ie_veneer +1003c428 t __rtw_get_wpa2_ie_veneer +1003c438 t __rtw_set_supported_rate_veneer +1003c448 t __ROM_odm_QueryRxPwrPercentage_veneer +1003c544 d __func__.21272 +1003c953 d __FUNCTION__.14173 +1003ceb0 d bitrate_table +1003cfdc d samplerate_table +1003cfe8 d decoder_table +1003cff4 d imdct_s +1003d084 d scale.6899 +1003d0cc d sfb_8000_short +1003d0f3 d sfb_32000_short +1003d11c d is_table +1003d138 d rq_table +10045174 d root_table +10045190 d sfb_44100_mixed +100451b8 d is_lsf_table +10045230 d sflen_table +10045250 d sfb_16000_mixed +10045274 d ca +10045294 d sfb_44100_short +100452bb d sfb_44100_long +100452d1 d sfb_48000_mixed +100452f7 d sfb_24000_long +1004530d d sfb_32000_mixed +10045333 d sfb_16000_short +1004535a d sfb_8000_long +10045370 d sfb_22050_mixed +10045394 d window_l +10045424 d sfb_48000_long +1004543c d cs +1004545c d sfb_24000_mixed +10045480 d pretab +10045496 d sfb_48000_short +100454bd d sfb_22050_short +100454e4 d sfb_8000_mixed +1004550c d sfbwidth_table +10045578 d sfb_24000_short +1004559f d sfb_32000_long +100455b5 d sfb_22050_long +100455cc d window_s +100455fc d nsfb_table +10045644 d hufftab24 +10045c4c d hufftab10 +10045de4 d hufftab11 +10045f84 d hufftab12 +10046104 d hufftab13 +1004673c d hufftab3 +1004677c d hufftab15 +10046d6c d hufftab16 +100473b4 d hufftab6 +10047424 d hufftab7 +10047524 D mad_huff_pair_table +100476a4 d hufftab9 +1004777c d hufftab1 +1004779c d hufftabA +1004780c d hufftab2 +1004784c d hufftabB +1004788c D mad_huff_quad_table +10047894 d hufftab0 +10047898 d hufftab5 +10047900 d hufftab8 +10047a08 d crc_table +10047c08 d D +10048488 D mad_timer_zero +100487aa d __func__.20803 +10048db8 d err_to_errno_table +10048e00 D ip_addr_broadcast +10048e04 D ip_addr_any +10048e18 D memp_sizes +10048e38 D tcp_pcb_lists +10048e48 D tcp_state_str +10048e74 D tcp_backoff +10048ee9 D tcp_persist_backoff +10048ef0 D ethbroadcast +10048ef6 D ethzero +10048fd8 d __FUNCTION__.8702 +10048fe7 d __FUNCTION__.8714 +10048ff6 d dhcp_option_interface_mtu_576 +1004901d d dhcp_magic_cookie +10049021 d dhcp_option_lease_time_one_day +1004907e d __FUNCTION__.4594 +100490c1 d CSWTCH.270 +1004912d d ucExpectedStackBytes.6559 +10049164 D osdep_service +10049288 d __FUNCTION__.11772 +1004929e d __FUNCTION__.11768 +100492b4 d __FUNCTION__.11606 +1004934d d __FUNCTION__.11572 +10049361 d __FUNCTION__.11623 +10049374 d __FUNCTION__.11580 +10049390 d __FUNCTION__.11634 +100493ab d __FUNCTION__.6810 +100494c8 d PinMap_I2S_RX +100495a8 d PinMap_I2S_TX +10049608 d I2SDefaultSetting +1004961c d PinMap_I2S_CLK +1004967c d __FUNCTION__.8781 +10049688 d PinMap_I2S_WS +10049737 d __FUNCTION__.8597 +10049744 d __FUNCTION__.8610 +100499e9 d __FUNCTION__.8459 +10049a04 d __FUNCTION__.8466 +10049aff d __FUNCTION__.8452 +10049b21 d __func__.8808 +10049b40 d __func__.8818 +10049b5e d __func__.8830 +10049b78 d __func__.8840 +10049b9a d __func__.8835 +10049f63 d __func__.8603 +10049f7d d __func__.8686 +10049f90 d __func__.8825 +10049fa9 d __func__.8631 +10049fec D wlancmds +1004a1e4 D rtw_cmd_callback +1004a470 d RTW_ChannelPlan2G +1004a4e8 D WPS_OUI +1004a4ec D RSN_TKIP_CIPHER +1004a4f0 D MCS_rate_1R +1004a500 D P2P_OUI +1004a52c D WMM_INFO_OUI +1004a532 D RTW_WPA_OUI +1004a536 D WMM_PARA_OUI +1004a53c d RTW_ChannelPlanMap +1004a554 D null_addr +1004a55a D WMM_OUI +1004a560 d wlanevents +1004a620 D zero_bssid +1004a65d d __FUNCTION__.17681 +1004a673 D SNAP_ETH_TYPE_APPLETALK_AARP +1004a675 d __FUNCTION__.17495 +1004a688 D SNAP_ETH_TYPE_IPX +1004a68a D rtw_bridge_tunnel_header +1004a6b1 D rtw_rfc1042_header +1004a6cf d CSWTCH.36 +1004a6db D ARTHEROS_OUI1 +1004a6de D ARTHEROS_OUI2 +1004a6e1 D REALTEK_OUI +1004a6e4 D RALINK_OUI +1004a6e7 D MARVELL_OUI +1004a6ea D CISCO_OUI +1004a6ed d rtw_basic_rate_cck +1004a6f1 D BROADCOM_OUI1 +1004a6f4 D BROADCOM_OUI2 +1004a6f7 D REALTEK_96B_IE +1004a6fd d rtw_basic_rate_mix +1004a704 d rtw_basic_rate_ofdm +1004a707 D AIRGOCAP_OUI +1004a71b d CSWTCH.66 +1004a734 d CSWTCH.48 +1004a776 d CSWTCH.28 +1004a788 D efuse_map_mask +1004a798 D flash_map_mask +1004a834 d __func__.21107 +1004ab7a d CSWTCH.15 +1004abfe d CSWTCH.17 +1004ac6d d CSWTCH.14 +1004ad02 d __FUNCTION__.21257 +1004ad14 d rtw_private_args +1004b134 d __FUNCTION__.21057 +1004b147 d __FUNCTION__.21294 +1004b158 d __FUNCTION__.21241 +1004b167 d __FUNCTION__.21126 +1004b177 d iw_priv_type_size +1004b255 d __FUNCTION__.17334 +1004b25f d __FUNCTION__.17736 +1004b26f d __FUNCTION__.17760 +1004b282 d __FUNCTION__.17712 +1004b291 d __FUNCTION__.17649 +1004b29f d __FUNCTION__.17661 +1004b676 d __FUNCTION__.17827 +1004b68f d __FUNCTION__.17654 +1004b69a d __FUNCTION__.17615 +1004b6a9 d __FUNCTION__.17811 +1004b6bb d __FUNCTION__.17765 +1004b6c9 d __FUNCTION__.17724 +1004b6da d __FUNCTION__.17637 +1004ca7b D CCKFCCTable_Ch14_8195A +1004ca8b D CCKFCCTable_8195A +1004ca9c D OFDMSwingTable_New +1004cb48 D CCKCETable_8195A +1004cb5e d CSWTCH.39 +1004cb73 d __func__.20571 +1004cb94 D hci_ops +1004cbb9 V Array_MP_8195A_TXPWR_LMT +1004d12c D xHeapRegions +1004d14c D UartLogRamCmdTable +1004d14c D console_cmd_wifi_api +1004d1ac D console_commands_main +1004d1bc D console_commands1 +1004d21c D console_commands +1004d22c d UartLogRamCmdTable_end +1004d230 D __data_start__ +1004d230 D wlan_st_name +1004d238 D wifi_st_dhcp +1004d248 D wlan_ap_name +1004d250 D wifi_ap_dhcp +1004d260 D feep_tab +1004d290 D wifi_st_cfg +1004d2fc D wifi_cfg +1004d303 D wlan_ap_netifn +1004d304 D wifi_ap_cfg +1004d370 D oversampling +1004d374 D SystemCoreClock +1004d378 D error_flag +1004d37c d tcp_port +1004d380 d iss.7348 +1004d384 d udp_port +1004d386 D lwip_host_name +1004d3a6 d dhcp_server_state_machine +1004d3a7 d dhcp_recorded_xid +1004d3ac d uxCriticalNesting +1004d3b0 d xNextTaskUnblockTime +1004d3b4 d seed.11739 +1004d3b8 d wakeup_event +1004d3bc d wakelock +1004d3c0 d last_wakelock_state +1004d3e0 D mlme_sta_tbl +1004d450 d PMKID_KDE_TYPE.17744 +1004d458 V nr_xmitbuff +1004d45c V nr_xmitframe +1004d460 d P802_1H_OUI +1004d463 D rtw_adaptivity_mode +1004d464 D g_user_ap_sta_num +1004d468 d rtw_private_handler +1004d4ac V max_local_skb_num +1004d4b0 V max_skb_buf_num +1004d4b4 D rom_e_rtw_msgp_str_ +1004d690 D ARFB_table +1004d6cf D TRYING_NECESSARY_idx +1004d6e3 D DROPING_NECESSARY +1004d6f7 D PER_RATE_UP +1004d70b D PER_RATE_DOWN +1004d720 V Array_MP_8195A_PHY_REG_PG +1004d7b0 D Array_MP_8195A_AGC_TAB +1004d9c0 D Array_MP_8195A_PHY_REG +1004e038 D rtl8195A_card_disable_flow +1004e0d8 D rtl8195A_card_enable_flow +1004e178 D Array_MP_8195A_MAC_REG +1004e480 D gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_TFBGA96_8195A +1004e4a0 D gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_TFBGA96_8195A +1004e4c0 D gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_QFN48_8195A +1004e4de D gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_QFN56_8195A +1004e4fc D gDeltaSwingTableIdx_MP_2GCCKA_N_TxPowerTrack_QFN48_8195A +1004e51a D gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_QFN56_8195A +1004e538 D gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_TFBGA96_8195A +1004e558 D gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_QFN56_8195A +1004e576 D gDeltaSwingTableIdx_MP_2GA_N_TxPowerTrack_QFN48_8195A +1004e594 D gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_QFN56_8195A +1004e5b4 D Array_MP_8195A_RadioA +1004eb7c D gDeltaSwingTableXtal_MP_P_TxXtalTrack_8195A +1004eb9a D gDeltaSwingTableIdx_MP_2GA_P_TxPowerTrack_TFBGA96_8195A +1004ebba D gDeltaSwingTableIdx_MP_2GCCKA_P_TxPowerTrack_QFN48_8195A +1004ebd8 D .ram.bss$$Base +1004ebd8 D __bss_start__ +1004ebd8 D __data_end__ +1004ebd8 D __ram_image2_text_end__ +1004ebd8 d skbdata_list +1004ebe0 V skb_data_pool +10051fe0 d ucIdleTaskHeap +100520f8 D HalI2SOpSAL +10052134 D SYSAdapte +10052138 D PwrAdapter +100523c4 D libc_has_init +100523c8 d rheap_end +100523cc d event_init.21279 +100523d0 D wifi_run_mode +100523d4 D wlan_st_netifn +100523d5 d sampCntAdd +100523d8 d sampCnt +100523dc D mp3_serv +1005245e D tskreader_enable +10052460 D readBuf +10052464 D tskmad_enable +10052468 d bufUnderrunCt +1005246c d oldRate +10052470 d sampDelCnt +10052474 D pbuf_fifo +10052478 D pi2s +10052480 D I2sTxSema +10052484 D eap_method +10052485 D eap_phase +10052488 D rtw_join_status +1005248c d param.21252 +100524a4 D wifi_mode +100524a8 d join_user_data +100524ac d event_callback_list +1005262c D paff_array +100526a4 D lwip_init_done +100526a8 D xnetif +10052728 d s_aliases.6960 +1005272c D h_errno +10052730 d s_hostent.6959 +10052744 d s_hostent_addr.6961 +10052748 d s_phostent_addr.6962 +10052750 d select_cb_list +10052754 d sockets +10052814 d select_cb_ctr +10052818 d mbox +1005281c d tcpip_init_done_arg +10052820 d tcpip_init_done +10052824 d allsystems +10052828 d allrouters +1005282c d igmp_group_list +10052830 D current_header +10052834 d ip_id +10052838 D current_iphdr_src +1005283c D current_iphdr_dest +10052840 D current_netif +10052844 d str.6325 +10052854 d reassdatagrams +10052858 d ip_reass_pbufcount +1005285a D dhcp_rx_options_given +10052864 D dhcp_rx_options_val +1005288c d xid.7275 +10052890 d dns_seqno +10052894 d dns_table +10052cf4 d dns_servers +10052cfc d dns_payload_buffer +10052f00 d dns_pcb +10052f04 d dns_payload +10052f08 d tcpip_tcp_timer_active +10052f0c d next_timeout +10052f10 D netif_list +10052f14 D netif_default +10052f18 d netif_num +10052f19 D pbuf_free_ooseq_pending +10052f1c d raw_pcbs +10052f20 D tcp_active_pcbs_changed +10052f24 D tcp_ticks +10052f28 d tcp_timer +10052f2c D tcp_listen_pcbs +10052f30 D tcp_active_pcbs +10052f34 d tcp_timer_ctr +10052f38 D tcp_tw_pcbs +10052f3c D tcp_tmp_pcb +10052f40 D tcp_bound_pcbs +10052f44 d seqno +10052f48 d tcplen +10052f4c d ackno +10052f50 d flags +10052f51 d recv_flags +10052f54 d tcphdr +10052f58 d recv_data +10052f5c d inseg +10052f70 D tcp_input_pcb +10052f74 D udp_pcbs +10052f78 d etharp_cached_entry +10052f7c d arp_table +10053044 D lwip_tickless_used +10053048 d s_timeoutlist +10053078 d s_nextthread +1005307c d dhcps_ip_table_semaphore +10053080 d dhcps_send_broadcast_address +10053084 D dhcps_ip4addr_pool_end +10053085 d dhcp_client_ethernet_address +10053098 d dhcps_subnet_broadcast +1005309c d bound_client_ethernet_address +100530ac d ip_table +100530cc d dhcps_pcb +100530d0 d dhcp_message_total_options_lenth +100530d4 d dhcps_local_address +100530d8 d dhcps_netif +100530dc d client_request_ip +100530e0 d dhcps_allocated_client_address +100530e4 d dhcps_local_mask +100530e8 d dhcps_local_gateway +100530ec d dhcps_network_id +100530f0 D dhcps_ip4addr_pool_start +100530f4 d dhcp_message_repository +100530f8 D ext_upper +100530fc d xFreeBytesRemaining +10053100 d ext_free +10053104 D ext_lower +10053108 d pxEnd +1005310c d xStart +10053114 d xMinimumEverFreeBytesRemaining +10053118 d ulTimerCountsForOneTick +1005311c d ulStoppedTimerCompensation +10053120 d xMaximumPossibleSuppressedTicks +10053124 d xPendingReadyList +10053138 d uxTopReadyPriority +1005313c d uxTasksDeleted +10053140 d xTickCount +10053144 d pxReadyTasksLists +10053220 d pxOverflowDelayedTaskList +10053224 d xTasksWaitingTermination +10053238 d pxDelayedTaskList +1005323c d xSchedulerRunning +10053240 d ulTaskSwitchedInTime +10053244 D pxCurrentTCB +10053248 d uxPendedTicks +1005324c d xSuspendedTaskList +10053260 d uxCurrentNumberOfTasks +10053264 d ulDeltaTotalRunTime +10053268 d xDelayedTaskList2 +1005327c d xDelayedTaskList1 +10053290 d uxTaskNumber +10053294 d xYieldPending +10053298 d uxSchedulerSuspended +1005329c d xNumOfOverflows +100532a0 d pxCurrentTimerList +100532a4 d xActiveTimerList1 +100532b8 d xActiveTimerList2 +100532cc d xLastTime.5284 +100532d0 d xTimerQueue +100532d4 d pxOverflowTimerList +100532d8 d xTimerTaskHandle +100532dc d device_mutex +100532e8 d mutex_init +100532ec d uxSavedInterruptStatus +100532f0 D min_free_heap_size +100532f4 d g_heap_inited +100532f8 d tcm_lock +100532fc D g_tcm_heap +10053300 D flashobj +1005330c D fspic_isinit +10053310 D WDGAdapter +1005334c d last_acquire_wakelock_time +100533cc D post_sleep_callback +1005344c D pre_sleep_callback +100534cc D reserve_pll +100534d0 d sys_sleep_time +100534d4 d hold_wakelock_time +10053554 D missing_tick +10053558 D Timer2To7HandlerData +10053570 D auto_reconnect_running +10053574 D p_wlan_autoreconnect_hdl +10053578 D mac_monitor_callback +1005357c D mf_list_head +10053580 d pscan_retry_cnt.21430 +10053584 D promisc_callback_all +10053588 D promisc_sema +1005358c D promisc_callback +10053590 D psk_essid +100535d8 D psk_passphrase +1005365a D psk_passphrase64 +1005369b D wpa_global_PSK +100536eb d RFC1042_OUI +100536f0 d rx_ring_pool +100557d0 d stop_report_count.20629 +100557d1 D bCheckStateTIMER +100557d4 d WifiMcuCmdBitMap.20974 +100557d8 D p_wlan_init_done_callback +100557dc D rtw_power_percentage_idx +100557e0 D p_wlan_uart_adapter_callback +100557e4 D rtw_adaptivity_en +100557e8 D p_wlan_mgmt_filter +100557ec D rtw_initmac +100557f0 D rtw_adaptivity_th_l2h_ini +100557f4 d drvpriv +10055808 D skbbuf_used_num +1005580c V skb_pool +100559c4 D skbdata_used_num +100559c8 d wrapper_skbbuf_list +100559d0 D max_skbdata_used_num +100559d4 D max_skbbuf_used_num +100559d8 d skb_fail_count +100559dc D timer_table +100559e4 D rltk_wlan_info +10055a14 d timer_used_num +10055a18 D max_timer_used_num +10055a1c D Noisy_State +10055a20 D pExportWlanIrqSemaphore +10055a24 D gDeltaSwingTableXtal_MP_N_TxXtalTrack_8195A +10055a42 D .ram.bss$$Limit +10055a42 D __bss_end__ +10055a48 B __ram_heap2_start__ 10070000 A __ram_heap2_end__ 1fff0000 D __ram_tcm_start__ 1fff0000 D __tcm_heap_start__ diff --git a/flasher.mk b/flasher.mk index c8d55e3..d39cbc3 100644 --- a/flasher.mk +++ b/flasher.mk @@ -192,8 +192,8 @@ ifdef COMPILED_BOOT_BIN $(OBJCOPY) --change-section-address .boot.head=0x10000ba8 -j .boot.head -j .bootloader -Obinary $(ELFFILE) $(RAM1P_IMAGE) else $(OBJCOPY) -j .rom_ram -Obinary $(ELFFILE) $(RAM_IMAGE) - $(OBJCOPY) -j .ram.start.table -j .ram_image1.text -Obinary $(ELFFILE) $(RAM1_IMAGE) - $(PICK) 0x$(RAM1_START_ADDR) 0x$(RAM1_END_ADDR) $(RAM1_IMAGE) $(RAM1R_IMAGE) head+reset_offset 0x0B000 + $(OBJCOPY) -j .ram.start.table -j .ram_image1.text -Obinary $(ELFFILE) $(RAM1R_IMAGE) + $(PICK) 0x$(RAM1_START_ADDR) 0x$(RAM1_END_ADDR) $(RAM1R_IMAGE) $(RAM1P_IMAGE) head+reset_offset 0x0B000 endif else $(error "BOOT-image size = 0") diff --git a/flasher/RTL_RunRAM.JLinkScript b/flasher/RTL_RunRAM.JLinkScript index f7410ac..7632f1e 100644 --- a/flasher/RTL_RunRAM.JLinkScript +++ b/flasher/RTL_RunRAM.JLinkScript @@ -4,9 +4,9 @@ r1 trst1 h r -loadbin build/bin/ram_1.bin 0x10000bc8 +loadbin build/bin/ram_1.r.bin 0x10000bc8 loadbin build/bin/ram_2.bin 0x10006000 r -w4 0x40000210,0x20111117 +w4 0x40000210,0x20111113 g q \ No newline at end of file diff --git a/project/inc/platform_autoconf.h b/project/inc/platform_autoconf.h index dd12268..566549a 100644 --- a/project/inc/platform_autoconf.h +++ b/project/inc/platform_autoconf.h @@ -25,7 +25,7 @@ #undef CONFIG_MP #undef CONFIG_CP #undef CONFIG_FT -#define RTL8195A 1 +#define RTL8195A 7 /* 0 - 166666666 Hz, 1 - 83333333 Hz, 2 - 41666666 Hz, 3 - 20833333 Hz, 4 - 10416666 Hz, 5 - 4000000? Hz, 6 - 200000000 Hz, 7 - 10000000 Hz, 8 - 50000000 Hz, 9 - 25000000 Hz, 10 - 12500000 Hz, 11 - 4000000? Hz */ #define CONFIG_CPU_CLK 1 diff --git a/project/src/user/main.c b/project/src/user/main.c index 49b740d..cee3de4 100644 --- a/project/src/user/main.c +++ b/project/src/user/main.c @@ -35,6 +35,14 @@ #include "main.h" #include "wifi_api.h" +/* --------------------------------------------------- + * Customized Signature (Image Name) + * ---------------------------------------------------*/ +#include "section_config.h" +SECTION(".custom.validate.rodata") +const unsigned char cus_sig[32] = "MP3 Stereo"; + + #define DEBUG_MAIN_LEVEL 1 //Priorities of the reader and the decoder thread. Higher = higher prio. diff --git a/sdkbuild.mk b/sdkbuild.mk index e9ccb37..3bb1cfa 100644 --- a/sdkbuild.mk +++ b/sdkbuild.mk @@ -50,7 +50,7 @@ application: build_info $(SRC_O) $(DRAM_O) $(BOOT_O) # @echo "===========================================================" @mkdir -p $(BIN_DIR) $(OBJ_DIR) ## @cp $(patsubst sdk/%,$(SDK_PATH)%,$(BOOTS))/ram_1.r.bin $(BIN_DIR)/ram_1.r.bin - @cp $(patsubst sdk/%,$(SDK_PATH)%,$(BOOTS))/ram_1.p.bin $(BIN_DIR)/ram_1.p.bin +## @cp $(patsubst sdk/%,$(SDK_PATH)%,$(BOOTS))/ram_1.p.bin $(BIN_DIR)/ram_1.p.bin # @chmod 777 $(OBJ_DIR)/ram_1.r.bin ## $(OBJCOPY) --rename-section .data=.loader.data,contents,alloc,load,readonly,data -I binary -O elf32-littlearm -B arm $(BIN_DIR)/ram_1.r.bin $(OBJ_DIR)/ram_1.r.o @echo "===========================================================" diff --git a/sdkset.mk b/sdkset.mk index 7f8c9af..5e22c50 100644 --- a/sdkset.mk +++ b/sdkset.mk @@ -116,7 +116,7 @@ SRC_C += sdk/component/common/api/lwip_netconf.c #SRC_C += sdk/component/common/utilities/ssl_client_ext.c SRC_C += sdk/component/common/utilities/tcptest.c SRC_C += sdk/component/common/utilities/uart_ymodem.c -SRC_C += sdk/component/common/utilities/update.c +#SRC_C += sdk/component/common/utilities/update.c #SRC_C += sdk/component/common/application/uart_adapter/uart_adapter.c SRC_C += sdk/component/common/api/network/src/wlan_network.c SRC_C += sdk/component/common/api/wifi_interactive_mode.c