[Feature][T106_eSDK]update from T106-V2.01.01.02P56U06.AP.15.11_CAP.15.11.01 to T106-V2.01.01.02P56U09.AP.17.02_CAP.17.02.02 -- Uboot
Only Configure: No
Affected branch: master
Affected module: unknow
Is it affected on both ZXIC and MTK: only ZXIC
Self-test: Yes
Doc Update: No
Change-Id: I0d82c355a0fe633dc3ce2770f3091d496abfa89b
diff --git a/Uboot/boot/common/src/loader/lib/board.c b/Uboot/boot/common/src/loader/lib/board.c
index b72ce93..3ddc41f 100755
--- a/Uboot/boot/common/src/loader/lib/board.c
+++ b/Uboot/boot/common/src/loader/lib/board.c
@@ -146,6 +146,7 @@
int32_t add;
uint32_t amt_value = 0;
int32_t err_flag = 0;
+ int32_t switch_flag = 0;
T_BOOT_TARGET bootTarget;
T_FLAGS flagsData;
T_FLAGS_INFO *fotaFlag;
@@ -267,44 +268,127 @@
if (fotaFlag->boot_fota_flag.system.status == DUALSYSTEM_STATUS_UNBOOTABLE)
{
printf("dual_system status is unbootable!");
- goto error;
+ //goto error;
+ if(fotaFlag->boot_fota_flag.system2.status == DUALSYSTEM_STATUS_UNBOOTABLE)
+ {
+ printf("system status is both unbootable,restart system1!");
+ err_flag = 1;
+ /*ĬÈÏflags·ÖÇøÊý¾Ý*/
+ flagsData.magic_start = FLAGS_MAGIC;
+ flagsData.boot_fota_flag.boot_to = DUAL_SYSTEM;
+ flagsData.boot_fota_flag.fota_status = 1;
+ flagsData.boot_fota_flag.system.status = DUALSYSTEM_STATUS_BOOTABLE;
+ flagsData.boot_fota_flag.system2.status = DUALSYSTEM_STATUS_BOOTABLE;
+ flagsData.magic_end = FLAGS_MAGIC;
+ fotaFlag = &flagsData;
+ }
+ else
+ {
+ writel(DUALSYSTEM_STATUS_UNBOOTABLE, BOOT_FLAG_ADDR);
+ printf("restart system2!");
+ switch_flag = 1;
+ }
+
}
- ret = read_uboot_image((uint8_t *)UBOOT_IMAGE, &uboot_entry_point);
- if( ret != 0)
- {
- printf("read uboot1 image error, goto uboot2!");
- writel(DUALSYSTEM_STATUS_UNBOOTABLE, BOOT_FLAG_ADDR);
- ret = read_uboot_image((uint8_t *)UBOOT2_IMAGE, &uboot_entry_point);
+
+ if(1 == switch_flag)
+ {
+ ret = read_uboot_image((uint8_t *)UBOOT2_IMAGE, &uboot_entry_point);
if( ret != 0)
{
- printf("read uboot2 iamge error!");
- goto error;
+ printf("read uboot2 image error, goto uboot!");
+ writel(DUALSYSTEM_STATUS_UNBOOTABLE, BOOT_FLAG_ADDR);
+ ret = read_uboot_image((uint8_t *)UBOOT_IMAGE, &uboot_entry_point);
+ if( ret != 0)
+ {
+ printf("read uboot image error!");
+ goto error;
+ }
}
+ else
+ printf("goto uboot2!");
}
- else
- printf("goto uboot!");
+ else
+ {
+ ret = read_uboot_image((uint8_t *)UBOOT_IMAGE, &uboot_entry_point);
+ if( ret != 0)
+ {
+ printf("read uboot1 image error, goto uboot2!");
+ writel(DUALSYSTEM_STATUS_UNBOOTABLE, BOOT_FLAG_ADDR);
+ ret = read_uboot_image((uint8_t *)UBOOT2_IMAGE, &uboot_entry_point);
+ if( ret != 0)
+ {
+ printf("read uboot2 image error!");
+ goto error;
+ }
+ }
+ else
+ printf("goto uboot!");
+ }
+
}
else if(bootTarget == DUAL_SYSTEM2)
{
if (fotaFlag->boot_fota_flag.system2.status == DUALSYSTEM_STATUS_UNBOOTABLE)
{
printf("dual_system2 status is unbootable!");
- goto error;
- }
- ret = read_uboot_image((uint8_t *)UBOOT2_IMAGE, &uboot_entry_point);
- if( ret != 0)
- {
- printf("read uboot2 iamge error, goto uboot!");
- writel(DUALSYSTEM_STATUS_UNBOOTABLE, BOOT_FLAG_ADDR);
- ret = read_uboot_image((uint8_t *)UBOOT_IMAGE, &uboot_entry_point);
- if( ret != 0)
- {
- printf("read uboot iamge error!");
- goto error;
+ //goto error;
+ if(fotaFlag->boot_fota_flag.system.status == DUALSYSTEM_STATUS_UNBOOTABLE)
+ {
+ printf("system status is both unbootable,restart system2!");
+ err_flag = 1;
+ /*ĬÈÏflags·ÖÇøÊý¾Ý*/
+ flagsData.magic_start = FLAGS_MAGIC;
+ flagsData.boot_fota_flag.boot_to = DUAL_SYSTEM2;
+ flagsData.boot_fota_flag.fota_status = 1;
+ flagsData.boot_fota_flag.system.status = DUALSYSTEM_STATUS_BOOTABLE;
+ flagsData.boot_fota_flag.system2.status = DUALSYSTEM_STATUS_BOOTABLE;
+ flagsData.magic_end = FLAGS_MAGIC;
+ fotaFlag = &flagsData;
+ }
+ else
+ {
+ writel(DUALSYSTEM_STATUS_UNBOOTABLE, BOOT_FLAG_ADDR);
+ printf("restart system1!");
+ switch_flag = 1;
}
}
+
+ if(1 == switch_flag)
+ {
+ ret = read_uboot_image((uint8_t *)UBOOT_IMAGE, &uboot_entry_point);
+ if( ret != 0)
+ {
+ printf("read uboot image error, goto uboot2!");
+ writel(DUALSYSTEM_STATUS_UNBOOTABLE, BOOT_FLAG_ADDR);
+ ret = read_uboot_image((uint8_t *)UBOOT2_IMAGE, &uboot_entry_point);
+ if( ret != 0)
+ {
+ printf("read uboot2 image error!");
+ goto error;
+ }
+ }
+ else
+ printf("goto uboot!");
+ }
else
- printf("goto uboot2!");
+ {
+ ret = read_uboot_image((uint8_t *)UBOOT2_IMAGE, &uboot_entry_point);
+ if( ret != 0)
+ {
+ printf("read uboot2 image error, goto uboot!");
+ writel(DUALSYSTEM_STATUS_UNBOOTABLE, BOOT_FLAG_ADDR);
+ ret = read_uboot_image((uint8_t *)UBOOT_IMAGE, &uboot_entry_point);
+ if( ret != 0)
+ {
+ printf("read uboot image error!");
+ goto error;
+ }
+ }
+ else
+ printf("goto uboot2!");
+ }
+
}
else
{
diff --git a/Uboot/boot/common/src/uboot/arch/arm/lib/Makefile b/Uboot/boot/common/src/uboot/arch/arm/lib/Makefile
index b5625a6..c35e97e 100755
--- a/Uboot/boot/common/src/uboot/arch/arm/lib/Makefile
+++ b/Uboot/boot/common/src/uboot/arch/arm/lib/Makefile
@@ -49,9 +49,9 @@
SOBJS-$(CONFIG_USE_ARCH_MEMCPY) += memcpy.o
endif
#xf.li@2023.04.14 modify for ZXW-25 start
-LYNQ_CONFIG_VERSION = "T106-W-V2.01.01.02P56U06.AP.15.05_CAP.15.05"
+LYNQ_CONFIG_VERSION = "T106-V2.01.01.02P56U09.AP.17.02_CAP.17.02.02"
CFLAGS += -DLYNQ_VERSION=\"$(LYNQ_CONFIG_VERSION)\"
-LYNQ_CONFIG_COMMITID = "c33b177c8b861ee957b6c8b0dea003278a3671d6"
+LYNQ_CONFIG_COMMITID = "9aea88bb79cfb2fae9ddab87f8307126d618aec2"
CFLAGS += -DLYNQ_COMMITID=\"$(LYNQ_CONFIG_COMMITID)\"
#xf.li@2023.04.14 modify for ZXW-25 end
SRCS := $(GLSOBJS:.o=.S) $(GLCOBJS:.o=.c) \
diff --git a/Uboot/boot/common/src/uboot/board/zte/zx297520v3/zx297520v3_mdl_ab.c b/Uboot/boot/common/src/uboot/board/zte/zx297520v3/zx297520v3_mdl_ab.c
index bf9a900..78f48a4 100755
--- a/Uboot/boot/common/src/uboot/board/zte/zx297520v3/zx297520v3_mdl_ab.c
+++ b/Uboot/boot/common/src/uboot/board/zte/zx297520v3/zx297520v3_mdl_ab.c
@@ -635,6 +635,7 @@
ret = rewrite_flags();
if(ret != 0)
return -1;
+ system_reset();
return 0;
#endif
}
diff --git a/Uboot/boot/common/src/uboot/board/zte/zx297520v3/zx297520v3_vehicle_dc.c b/Uboot/boot/common/src/uboot/board/zte/zx297520v3/zx297520v3_vehicle_dc.c
index 2f9dde8..d538891 100755
--- a/Uboot/boot/common/src/uboot/board/zte/zx297520v3/zx297520v3_vehicle_dc.c
+++ b/Uboot/boot/common/src/uboot/board/zte/zx297520v3/zx297520v3_vehicle_dc.c
@@ -636,6 +636,7 @@
ret = rewrite_flags();
if(ret != 0)
return -1;
+ system_reset();
return 0;
#endif
}
diff --git a/Uboot/boot/common/src/uboot/board/zte/zx297520v3/zx297520v3_vehicle_dc_ref.c b/Uboot/boot/common/src/uboot/board/zte/zx297520v3/zx297520v3_vehicle_dc_ref.c
index 7703ad0..8e767d2 100755
--- a/Uboot/boot/common/src/uboot/board/zte/zx297520v3/zx297520v3_vehicle_dc_ref.c
+++ b/Uboot/boot/common/src/uboot/board/zte/zx297520v3/zx297520v3_vehicle_dc_ref.c
@@ -638,6 +638,7 @@
ret = rewrite_flags();
if(ret != 0)
return -1;
+ system_reset();
return 0;
#endif
}
diff --git a/Uboot/boot/common/src/uboot/downloader/cmd_compat_write.c b/Uboot/boot/common/src/uboot/downloader/cmd_compat_write.c
index 4d5e339..4d6ae9d 100755
--- a/Uboot/boot/common/src/uboot/downloader/cmd_compat_write.c
+++ b/Uboot/boot/common/src/uboot/downloader/cmd_compat_write.c
@@ -34,9 +34,10 @@
/****************************************************************************
* Global Function Prototypes
****************************************************************************/
-T_IMG_SIZE img_size[IMG_NUM] = {{"uboot",0,0},{"imagefs",0,0},{"rootfs",0,0},{"caprootfs",0,0},{"oem",0,0}};
+//T_IMG_SIZE img_size[IMG_NUM] = {{"uboot",0,0},{"imagefs",0,0},{"rootfs",0,0},{"caprootfs",0,0},{"oem",0,0}};
+T_IMG_SIZE img_size[IMG_NUM_MAX];
+int img_num = 0;
int flags_partiton_write = 0;
-
extern int g_iftype;
extern partition_table_t * g_partition_table_dl;
/*******************************************************************************
@@ -56,11 +57,14 @@
{
partition_entry_t *part = NULL;
char *par = NULL;
+ char *par_tmp = NULL;
char ack[64]={0};
unsigned int offset = 0;
unsigned int size = 0;
unsigned int ret = 0;
unsigned int i = 0;
+ unsigned int len = 0;
+ unsigned int found = 0;
flags_partiton_write = 1;
if(argc<4)
@@ -80,23 +84,55 @@
}
/*record image size*/
- for(i=0; i<IMG_NUM; i++)
+ len = strlen(par);
+/* Started by AICoder, pid:q5743g3f62rd9291419e086de0327502c5d710ce */
+ par_tmp = (char *)malloc(len + 1);
+ if (par[len - 1] == '2') {
+ strncpy(par_tmp, par, len - 1);
+ par_tmp[len - 1] = '\0';
+ } else {
+ strcpy(par_tmp, par);
+ }
+/* Ended by AICoder, pid:q5743g3f62rd9291419e086de0327502c5d710ce */
+
+/* Started by AICoder, pid:ye4dcm700en8c6e14cdf0ac390813e36dc075765 */
+ for(i=0; i<img_num; i++)
{
- if(memcmp((char *)img_size[i].name , par, strlen(img_size[i].name)) == 0){
- if(!memcmp(par,"oemdata",7))
- break;
- if(strlen(img_size[i].name) == strlen(par))
- {
- img_size[i].size_a = size;
- printf("partition is %s,size_a is 0x%x.\n",par,size);
- }
- else
- {
- img_size[i].size_b = size;
- printf("partition is %s,size_b is 0x%x.\n",par,size);
- }
- }
+ if(strcmp((char *)img_size[i].name, par_tmp) == 0 && strlen((char *)img_size[i].name) == strlen(par_tmp))
+ {
+ found = 1;
+ if(strcmp(par_tmp,par) == 0)
+ {
+ img_size[i].size_a = size;
+ printf("partition is %s,size_a is 0x%x.\n",par,size);
+ }
+ else
+ {
+ img_size[i].size_b = size;
+ printf("partition is %s,size_b is 0x%x.\n",par,size);
+ }
+
+ break;
+ }
}
+ if (!found)
+ {
+ strcpy(img_size[img_num].name,par_tmp);
+ if(strcmp(par_tmp,par) == 0)
+ {
+ img_size[img_num].size_a = size;
+ printf("partition is %s,size_a is 0x%x.\n",par,size);
+ }
+ else
+ {
+ img_size[img_num].size_b = size;
+ printf("partition is %s,size_b is 0x%x.\n",par,size);
+ }
+
+ img_num += 1;
+ }
+ free(par_tmp);
+/* Ended by AICoder, pid:ye4dcm700en8c6e14cdf0ac390813e36dc075765 */
#if defined (CONFIG_ZX297520V3E_VEHICLE_DC) || defined (CONFIG_ZX297520V3E_VEHICLE_DC_REF)
if(g_nor_flag == 1)
diff --git a/Uboot/boot/common/src/uboot/include/partition_table.h b/Uboot/boot/common/src/uboot/include/partition_table.h
index 306a64c..febd365 100755
--- a/Uboot/boot/common/src/uboot/include/partition_table.h
+++ b/Uboot/boot/common/src/uboot/include/partition_table.h
@@ -211,7 +211,7 @@
#define PARTITION_CRC 0x12345678
#define PARTITION_SIZE 0X1000 /* ·ÖÇø±íµÄ´óС */
-#define IMG_NUM 5
+#define IMG_NUM 15
typedef struct partition_entry {
unsigned char part_name[16];
diff --git a/Uboot/boot/prj/zx297520v3/bootrom/dl_off/loader2.bin b/Uboot/boot/prj/zx297520v3/bootrom/dl_off/loader2.bin
index 343a176..9f59920 100755
--- a/Uboot/boot/prj/zx297520v3/bootrom/dl_off/loader2.bin
+++ b/Uboot/boot/prj/zx297520v3/bootrom/dl_off/loader2.bin
Binary files differ
diff --git a/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load b/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load
index 305591e..adb25a4 100755
--- a/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load
+++ b/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load
Binary files differ
diff --git a/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load.map b/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load.map
index 07ae1fd..b4ee310 100755
--- a/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load.map
+++ b/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load.map
@@ -300,20 +300,20 @@
.stabstr 0x0000000000000000 0x67
.stabstr 0x0000000000000000 0x67 cpu/m0/start.o
-.debug_info 0x0000000000000000 0x34d2
- .debug_info 0x0000000000000000 0x70b lib/libarm.a(board.o)
- .debug_info 0x000000000000070b 0x22b lib/libarm.a(string.o)
- .debug_info 0x0000000000000936 0x329 drivers/libdrivers.a(ddr.o)
- .debug_info 0x0000000000000c5f 0x2a0 drivers/libdrivers.a(uart.o)
- .debug_info 0x0000000000000eff 0x6d3 drivers/libdrivers.a(image.o)
- .debug_info 0x00000000000015d2 0x1c3 drivers/libdrivers.a(efuse.o)
- .debug_info 0x0000000000001795 0x62d drivers/libdrivers.a(secure_verify.o)
- .debug_info 0x0000000000001dc2 0xd5f drivers/libdrivers.a(nor.o)
- .debug_info 0x0000000000002b21 0x1e8 drivers/libdrivers.a(drv_hash.o)
- .debug_info 0x0000000000002d09 0x3b4 drivers/libdrivers.a(drv_rsa.o)
- .debug_info 0x00000000000030bd 0x20f drivers/libdrivers.a(flash.o)
- .debug_info 0x00000000000032cc 0x17b cpu/m0/libm0.a(cpu.o)
- .debug_info 0x0000000000003447 0x8b cpu/m0/libm0.a(clk.o)
+.debug_info 0x0000000000000000 0x34df
+ .debug_info 0x0000000000000000 0x718 lib/libarm.a(board.o)
+ .debug_info 0x0000000000000718 0x22b lib/libarm.a(string.o)
+ .debug_info 0x0000000000000943 0x329 drivers/libdrivers.a(ddr.o)
+ .debug_info 0x0000000000000c6c 0x2a0 drivers/libdrivers.a(uart.o)
+ .debug_info 0x0000000000000f0c 0x6d3 drivers/libdrivers.a(image.o)
+ .debug_info 0x00000000000015df 0x1c3 drivers/libdrivers.a(efuse.o)
+ .debug_info 0x00000000000017a2 0x62d drivers/libdrivers.a(secure_verify.o)
+ .debug_info 0x0000000000001dcf 0xd5f drivers/libdrivers.a(nor.o)
+ .debug_info 0x0000000000002b2e 0x1e8 drivers/libdrivers.a(drv_hash.o)
+ .debug_info 0x0000000000002d16 0x3b4 drivers/libdrivers.a(drv_rsa.o)
+ .debug_info 0x00000000000030ca 0x20f drivers/libdrivers.a(flash.o)
+ .debug_info 0x00000000000032d9 0x17b cpu/m0/libm0.a(cpu.o)
+ .debug_info 0x0000000000003454 0x8b cpu/m0/libm0.a(clk.o)
.debug_abbrev 0x0000000000000000 0x12c2
.debug_abbrev 0x0000000000000000 0x2b8 lib/libarm.a(board.o)
@@ -395,32 +395,32 @@
.debug_line 0x000000000000131d 0xa7 cpu/m0/libm0.a(cpu.o)
.debug_line 0x00000000000013c4 0x61 cpu/m0/libm0.a(clk.o)
-.debug_str 0x0000000000000000 0xebb
- .debug_str 0x0000000000000000 0x4d5 lib/libarm.a(board.o)
- 0x554 (松开之前的大小)
- .debug_str 0x00000000000004d5 0x4c lib/libarm.a(string.o)
+.debug_str 0x0000000000000000 0xec7
+ .debug_str 0x0000000000000000 0x4e1 lib/libarm.a(board.o)
+ 0x560 (松开之前的大小)
+ .debug_str 0x00000000000004e1 0x4c lib/libarm.a(string.o)
0x214 (松开之前的大小)
- .debug_str 0x0000000000000521 0xa1 drivers/libdrivers.a(ddr.o)
+ .debug_str 0x000000000000052d 0xa1 drivers/libdrivers.a(ddr.o)
0x216 (松开之前的大小)
- .debug_str 0x00000000000005c2 0x8a drivers/libdrivers.a(uart.o)
+ .debug_str 0x00000000000005ce 0x8a drivers/libdrivers.a(uart.o)
0x253 (松开之前的大小)
- .debug_str 0x000000000000064c 0x229 drivers/libdrivers.a(image.o)
+ .debug_str 0x0000000000000658 0x229 drivers/libdrivers.a(image.o)
0x4a0 (松开之前的大小)
- .debug_str 0x0000000000000875 0x7b drivers/libdrivers.a(efuse.o)
+ .debug_str 0x0000000000000881 0x7b drivers/libdrivers.a(efuse.o)
0x255 (松开之前的大小)
- .debug_str 0x00000000000008f0 0x177 drivers/libdrivers.a(secure_verify.o)
+ .debug_str 0x00000000000008fc 0x177 drivers/libdrivers.a(secure_verify.o)
0x407 (松开之前的大小)
- .debug_str 0x0000000000000a67 0x2c3 drivers/libdrivers.a(nor.o)
+ .debug_str 0x0000000000000a73 0x2c3 drivers/libdrivers.a(nor.o)
0x5f3 (松开之前的大小)
- .debug_str 0x0000000000000d2a 0x87 drivers/libdrivers.a(drv_hash.o)
+ .debug_str 0x0000000000000d36 0x87 drivers/libdrivers.a(drv_hash.o)
0x25a (松开之前的大小)
- .debug_str 0x0000000000000db1 0x79 drivers/libdrivers.a(drv_rsa.o)
+ .debug_str 0x0000000000000dbd 0x79 drivers/libdrivers.a(drv_rsa.o)
0x29c (松开之前的大小)
- .debug_str 0x0000000000000e2a 0x12 drivers/libdrivers.a(flash.o)
+ .debug_str 0x0000000000000e36 0x12 drivers/libdrivers.a(flash.o)
0x2a8 (松开之前的大小)
- .debug_str 0x0000000000000e3c 0x79 cpu/m0/libm0.a(cpu.o)
+ .debug_str 0x0000000000000e48 0x79 cpu/m0/libm0.a(cpu.o)
0x1f8 (松开之前的大小)
- .debug_str 0x0000000000000eb5 0x6 cpu/m0/libm0.a(clk.o)
+ .debug_str 0x0000000000000ec1 0x6 cpu/m0/libm0.a(clk.o)
0x1bd (松开之前的大小)
.debug_frame 0x0000000000000000 0x6a0
diff --git a/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load2 b/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load2
index 65ef38e..be71fcd 100755
--- a/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load2
+++ b/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load2
Binary files differ
diff --git a/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load2.map b/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load2.map
index 0163e41..c906aa5 100755
--- a/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load2.map
+++ b/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load2.map
@@ -34,7 +34,7 @@
0x0000000000000000 . = 0x0
0x0000000000000000 . = ALIGN (0x4)
-.text 0x0000000020300000 0x4ddc
+.text 0x0000000020300000 0x4ea4
cpu/m0/start.o(.text)
.text 0x0000000020300000 0x220 cpu/m0/start.o
0x00000000203001a4 _bss_start
@@ -44,7 +44,7 @@
0x00000000203001b8 _start
0x00000000203001fe run_at
*(.text)
- .text 0x0000000020300220 0x4ec lib/libarm.a(board.o)
+ .text 0x0000000020300220 0x5b4 lib/libarm.a(board.o)
0x0000000020300220 print_info
0x0000000020300230 copy_to_iram1
0x0000000020300250 clear_iram
@@ -55,201 +55,201 @@
0x0000000020300338 pmu_read
0x0000000020300404 pmu_write
0x00000000203004d0 start_armboot
- .text 0x000000002030070c 0x80 lib/libarm.a(string.o)
- 0x000000002030070c strlen
- 0x000000002030071c memset
- 0x000000002030075e memcmp
- 0x000000002030077a memcpy
- .text 0x000000002030078c 0x82c drivers/libdrivers.a(ddr.o)
- 0x000000002030078c nsdelay
- 0x00000000203007a6 ddr_clk_init
- 0x00000000203007bc ddr_phy_init
- 0x00000000203008b8 ddr_ctrl_init
- 0x0000000020300c74 ddr_prio_init
- 0x0000000020300d98 ddr_init
- .text 0x0000000020300fb8 0x138 drivers/libdrivers.a(uart.o)
- 0x0000000020300fb8 uart_init
- 0x0000000020301038 uart_putc
- 0x0000000020301060 uart_puts
- 0x0000000020301074 uart_getc
- 0x0000000020301090 uart_tstc
- 0x00000000203010a0 UART_Read
- 0x00000000203010bc UART_Write
- 0x00000000203010d8 UART_Check_Sync
- .text 0x00000000203010f0 0x338 drivers/libdrivers.a(image.o)
- 0x00000000203010f4 page_align
- 0x000000002030110c find_partition_para
- 0x000000002030113c read_image_part_offset
- 0x0000000020301190 read_flags_image
- 0x0000000020301278 read_uboot_image
- 0x0000000020301358 nand_read_m0
- 0x00000000203013c4 read_zloader_image
- .text 0x0000000020301428 0x2b0 drivers/libdrivers.a(secure_verify.o)
- 0x0000000020301446 BIG2SMALL
- 0x0000000020301476 bin2hex
- 0x00000000203014c0 secure_verify_zloader
- 0x00000000203015b4 SecureVerify
- .text 0x00000000203016d8 0x648 drivers/libdrivers.a(spifc_loader2.o)
- 0x00000000203017cc zDrvGpio_SetFunc
- 0x0000000020301804 zDrvGpio_SetDirection
- 0x0000000020301854 zDrvGpio_SetOutputValue
- 0x0000000020301890 spi_nand_cs
- 0x00000000203018cc spifc_clear_fifo
- 0x00000000203018e0 spifc_clear_int
- 0x0000000020301a3c spifc_read_oob
- 0x0000000020301a80 spifc_read_page_raw
- 0x0000000020301abc spifc_read_page
- 0x0000000020301b38 spifc_read
- 0x0000000020301b7c read_data
- 0x0000000020301bd0 read_id
- 0x0000000020301c54 spifc_init
- 0x0000000020301cd8 zloader_flash_init
- .text 0x0000000020301d20 0x1c0 drivers/libdrivers.a(bbt.o)
- 0x0000000020301d80 nand_creat_ram_bbt
- 0x0000000020301dc4 nand_search_bbt
- 0x0000000020301e50 nand_creat_bbt
- 0x0000000020301ecc nand_block_isbad
- .text 0x0000000020301ee0 0x2688 drivers/libdrivers.a(sha256.o)
- 0x0000000020304400 sha256_starts
- 0x0000000020304448 sha256_update
- 0x0000000020304454 sha256_finish
- 0x0000000020304540 sha256_csum_wd
- .text 0x0000000020304568 0x424 drivers/libdrivers.a(nor.o)
- 0x0000000020304568 spifc_enable
- 0x0000000020304598 spifc_disable
- 0x00000000203045bc spifc_setup_cmd
- 0x0000000020304640 spifc_wait_cmd_end
- 0x000000002030466c spifc_read_fifo
- 0x00000000203046a8 spifc_start
- 0x00000000203046b8 cmd_seek
- 0x00000000203046d8 nor_read_reg
- 0x0000000020304738 nor_read_id
- 0x00000000203047a0 spi_nor_read
- 0x00000000203047fc nor_read
- 0x0000000020304850 spi_nor_read_security_register
- 0x00000000203048ac nor_read_security_register
- 0x0000000020304900 nor_init
- 0x0000000020304950 board_flash_init
- .text 0x000000002030498c 0xa4 drivers/libdrivers.a(drv_hash.o)
- 0x000000002030498c Hash_Calculate
- .text 0x0000000020304a30 0x174 drivers/libdrivers.a(drv_rsa.o)
- 0x0000000020304a4a Rsa_Calculate
- .text 0x0000000020304ba4 0x28 drivers/libdrivers.a(flash.o)
- 0x0000000020304ba4 get_boot_mode
- .text 0x0000000020304bcc 0x1bc drivers/libdrivers.a(efuse.o)
- 0x0000000020304bcc efuse_init
- 0x0000000020304bf0 get_ddr_flag
- 0x0000000020304d10 get_secure_verify_status
- 0x0000000020304d54 get_otp_secure_verify_status
- .text 0x0000000020304d88 0x54 cpu/m0/libm0.a(cpu.o)
- 0x0000000020304d88 timer_init
- 0x0000000020304da0 usdelay
+ .text 0x00000000203007d4 0x80 lib/libarm.a(string.o)
+ 0x00000000203007d4 strlen
+ 0x00000000203007e4 memset
+ 0x0000000020300826 memcmp
+ 0x0000000020300842 memcpy
+ .text 0x0000000020300854 0x82c drivers/libdrivers.a(ddr.o)
+ 0x0000000020300854 nsdelay
+ 0x000000002030086e ddr_clk_init
+ 0x0000000020300884 ddr_phy_init
+ 0x0000000020300980 ddr_ctrl_init
+ 0x0000000020300d3c ddr_prio_init
+ 0x0000000020300e60 ddr_init
+ .text 0x0000000020301080 0x138 drivers/libdrivers.a(uart.o)
+ 0x0000000020301080 uart_init
+ 0x0000000020301100 uart_putc
+ 0x0000000020301128 uart_puts
+ 0x000000002030113c uart_getc
+ 0x0000000020301158 uart_tstc
+ 0x0000000020301168 UART_Read
+ 0x0000000020301184 UART_Write
+ 0x00000000203011a0 UART_Check_Sync
+ .text 0x00000000203011b8 0x338 drivers/libdrivers.a(image.o)
+ 0x00000000203011bc page_align
+ 0x00000000203011d4 find_partition_para
+ 0x0000000020301204 read_image_part_offset
+ 0x0000000020301258 read_flags_image
+ 0x0000000020301340 read_uboot_image
+ 0x0000000020301420 nand_read_m0
+ 0x000000002030148c read_zloader_image
+ .text 0x00000000203014f0 0x2b0 drivers/libdrivers.a(secure_verify.o)
+ 0x000000002030150e BIG2SMALL
+ 0x000000002030153e bin2hex
+ 0x0000000020301588 secure_verify_zloader
+ 0x000000002030167c SecureVerify
+ .text 0x00000000203017a0 0x648 drivers/libdrivers.a(spifc_loader2.o)
+ 0x0000000020301894 zDrvGpio_SetFunc
+ 0x00000000203018cc zDrvGpio_SetDirection
+ 0x000000002030191c zDrvGpio_SetOutputValue
+ 0x0000000020301958 spi_nand_cs
+ 0x0000000020301994 spifc_clear_fifo
+ 0x00000000203019a8 spifc_clear_int
+ 0x0000000020301b04 spifc_read_oob
+ 0x0000000020301b48 spifc_read_page_raw
+ 0x0000000020301b84 spifc_read_page
+ 0x0000000020301c00 spifc_read
+ 0x0000000020301c44 read_data
+ 0x0000000020301c98 read_id
+ 0x0000000020301d1c spifc_init
+ 0x0000000020301da0 zloader_flash_init
+ .text 0x0000000020301de8 0x1c0 drivers/libdrivers.a(bbt.o)
+ 0x0000000020301e48 nand_creat_ram_bbt
+ 0x0000000020301e8c nand_search_bbt
+ 0x0000000020301f18 nand_creat_bbt
+ 0x0000000020301f94 nand_block_isbad
+ .text 0x0000000020301fa8 0x2688 drivers/libdrivers.a(sha256.o)
+ 0x00000000203044c8 sha256_starts
+ 0x0000000020304510 sha256_update
+ 0x000000002030451c sha256_finish
+ 0x0000000020304608 sha256_csum_wd
+ .text 0x0000000020304630 0x424 drivers/libdrivers.a(nor.o)
+ 0x0000000020304630 spifc_enable
+ 0x0000000020304660 spifc_disable
+ 0x0000000020304684 spifc_setup_cmd
+ 0x0000000020304708 spifc_wait_cmd_end
+ 0x0000000020304734 spifc_read_fifo
+ 0x0000000020304770 spifc_start
+ 0x0000000020304780 cmd_seek
+ 0x00000000203047a0 nor_read_reg
+ 0x0000000020304800 nor_read_id
+ 0x0000000020304868 spi_nor_read
+ 0x00000000203048c4 nor_read
+ 0x0000000020304918 spi_nor_read_security_register
+ 0x0000000020304974 nor_read_security_register
+ 0x00000000203049c8 nor_init
+ 0x0000000020304a18 board_flash_init
+ .text 0x0000000020304a54 0xa4 drivers/libdrivers.a(drv_hash.o)
+ 0x0000000020304a54 Hash_Calculate
+ .text 0x0000000020304af8 0x174 drivers/libdrivers.a(drv_rsa.o)
+ 0x0000000020304b12 Rsa_Calculate
+ .text 0x0000000020304c6c 0x28 drivers/libdrivers.a(flash.o)
+ 0x0000000020304c6c get_boot_mode
+ .text 0x0000000020304c94 0x1bc drivers/libdrivers.a(efuse.o)
+ 0x0000000020304c94 efuse_init
+ 0x0000000020304cb8 get_ddr_flag
+ 0x0000000020304dd8 get_secure_verify_status
+ 0x0000000020304e1c get_otp_secure_verify_status
+ .text 0x0000000020304e50 0x54 cpu/m0/libm0.a(cpu.o)
+ 0x0000000020304e50 timer_init
+ 0x0000000020304e68 usdelay
-.glue_7 0x0000000020304ddc 0x0
+.glue_7 0x0000000020304ea4 0x0
.glue_7 0x0000000000000000 0x0 linker stubs
-.glue_7t 0x0000000020304ddc 0x0
+.glue_7t 0x0000000020304ea4 0x0
.glue_7t 0x0000000000000000 0x0 linker stubs
-.vfp11_veneer 0x0000000020304ddc 0x0
+.vfp11_veneer 0x0000000020304ea4 0x0
.vfp11_veneer 0x0000000000000000 0x0 linker stubs
-.v4_bx 0x0000000020304ddc 0x0
+.v4_bx 0x0000000020304ea4 0x0
.v4_bx 0x0000000000000000 0x0 linker stubs
-.iplt 0x0000000020304ddc 0x0
+.iplt 0x0000000020304ea4 0x0
.iplt 0x0000000000000000 0x0 cpu/m0/start.o
- 0x0000000020304ddc . = ALIGN (0x4)
+ 0x0000000020304ea4 . = ALIGN (0x4)
-.rodata 0x0000000020304ddc 0x3f0
+.rodata 0x0000000020304ea4 0x3f0
*(.rodata)
- .rodata 0x0000000020304ddc 0x270 drivers/libdrivers.a(spifc_loader2.o)
- .rodata 0x000000002030504c 0x13 drivers/libdrivers.a(sha256.o)
- 0x000000002030504c sha256_der_prefix
- *fill* 0x000000002030505f 0x1
- .rodata 0x0000000020305060 0x16c drivers/libdrivers.a(nor.o)
+ .rodata 0x0000000020304ea4 0x270 drivers/libdrivers.a(spifc_loader2.o)
+ .rodata 0x0000000020305114 0x13 drivers/libdrivers.a(sha256.o)
+ 0x0000000020305114 sha256_der_prefix
+ *fill* 0x0000000020305127 0x1
+ .rodata 0x0000000020305128 0x16c drivers/libdrivers.a(nor.o)
-.rodata.str1.1 0x00000000203051cc 0x48d
+.rodata.str1.1 0x0000000020305294 0x516
.rodata.str1.1
- 0x00000000203051cc 0x18a lib/libarm.a(board.o)
- 0x1a3 (松开之前的大小)
+ 0x0000000020305294 0x213 lib/libarm.a(board.o)
+ 0x24e (松开之前的大小)
.rodata.str1.1
- 0x0000000020305356 0xef drivers/libdrivers.a(image.o)
+ 0x00000000203054a7 0xef drivers/libdrivers.a(image.o)
0x115 (松开之前的大小)
.rodata.str1.1
- 0x0000000020305445 0x5b drivers/libdrivers.a(secure_verify.o)
+ 0x0000000020305596 0x5b drivers/libdrivers.a(secure_verify.o)
0x5d (松开之前的大小)
.rodata.str1.1
- 0x00000000203054a0 0x3d drivers/libdrivers.a(spifc_loader2.o)
+ 0x00000000203055f1 0x3d drivers/libdrivers.a(spifc_loader2.o)
0x4a (松开之前的大小)
.rodata.str1.1
- 0x00000000203054dd 0x9 drivers/libdrivers.a(bbt.o)
+ 0x000000002030562e 0x9 drivers/libdrivers.a(bbt.o)
.rodata.str1.1
- 0x00000000203054e6 0x15c drivers/libdrivers.a(nor.o)
+ 0x0000000020305637 0x15c drivers/libdrivers.a(nor.o)
.rodata.str1.1
- 0x0000000020305642 0x17 drivers/libdrivers.a(efuse.o)
+ 0x0000000020305793 0x17 drivers/libdrivers.a(efuse.o)
-.rel.dyn 0x000000002030565c 0x0
+.rel.dyn 0x00000000203057ac 0x0
.rel.iplt 0x0000000000000000 0x0 cpu/m0/start.o
- 0x000000002030565c . = ALIGN (0x4)
+ 0x00000000203057ac . = ALIGN (0x4)
-.data 0x000000002030565c 0xd0
+.data 0x00000000203057ac 0xd0
*(.data)
- .data 0x000000002030565c 0x0 cpu/m0/start.o
- .data 0x000000002030565c 0x0 lib/libarm.a(board.o)
- .data 0x000000002030565c 0x0 lib/libarm.a(string.o)
- .data 0x000000002030565c 0x0 drivers/libdrivers.a(ddr.o)
- .data 0x000000002030565c 0x0 drivers/libdrivers.a(uart.o)
- .data 0x000000002030565c 0x0 drivers/libdrivers.a(image.o)
- .data 0x000000002030565c 0x0 drivers/libdrivers.a(secure_verify.o)
- .data 0x000000002030565c 0x0 drivers/libdrivers.a(spifc_loader2.o)
- .data 0x000000002030565c 0x40 drivers/libdrivers.a(bbt.o)
- .data 0x000000002030569c 0x40 drivers/libdrivers.a(sha256.o)
- .data 0x00000000203056dc 0x50 drivers/libdrivers.a(nor.o)
- 0x00000000203056dc nor_cmd_table
- .data 0x000000002030572c 0x0 drivers/libdrivers.a(drv_hash.o)
- .data 0x000000002030572c 0x0 drivers/libdrivers.a(drv_rsa.o)
- .data 0x000000002030572c 0x0 drivers/libdrivers.a(flash.o)
- .data 0x000000002030572c 0x0 drivers/libdrivers.a(efuse.o)
- .data 0x000000002030572c 0x0 cpu/m0/libm0.a(cpu.o)
+ .data 0x00000000203057ac 0x0 cpu/m0/start.o
+ .data 0x00000000203057ac 0x0 lib/libarm.a(board.o)
+ .data 0x00000000203057ac 0x0 lib/libarm.a(string.o)
+ .data 0x00000000203057ac 0x0 drivers/libdrivers.a(ddr.o)
+ .data 0x00000000203057ac 0x0 drivers/libdrivers.a(uart.o)
+ .data 0x00000000203057ac 0x0 drivers/libdrivers.a(image.o)
+ .data 0x00000000203057ac 0x0 drivers/libdrivers.a(secure_verify.o)
+ .data 0x00000000203057ac 0x0 drivers/libdrivers.a(spifc_loader2.o)
+ .data 0x00000000203057ac 0x40 drivers/libdrivers.a(bbt.o)
+ .data 0x00000000203057ec 0x40 drivers/libdrivers.a(sha256.o)
+ .data 0x000000002030582c 0x50 drivers/libdrivers.a(nor.o)
+ 0x000000002030582c nor_cmd_table
+ .data 0x000000002030587c 0x0 drivers/libdrivers.a(drv_hash.o)
+ .data 0x000000002030587c 0x0 drivers/libdrivers.a(drv_rsa.o)
+ .data 0x000000002030587c 0x0 drivers/libdrivers.a(flash.o)
+ .data 0x000000002030587c 0x0 drivers/libdrivers.a(efuse.o)
+ .data 0x000000002030587c 0x0 cpu/m0/libm0.a(cpu.o)
-.igot.plt 0x000000002030572c 0x0
+.igot.plt 0x000000002030587c 0x0
.igot.plt 0x0000000000000000 0x0 cpu/m0/start.o
- 0x000000002030572c . = ALIGN (0x4)
+ 0x000000002030587c . = ALIGN (0x4)
.got
*(.got)
- 0x000000002030572c . = ALIGN (0x4)
- 0x000000002030572c __bss_start = .
+ 0x000000002030587c . = ALIGN (0x4)
+ 0x000000002030587c __bss_start = .
-.bss 0x000000002030572c 0x1e8
+.bss 0x000000002030587c 0x1e8
*(.bss)
- .bss 0x000000002030572c 0x0 cpu/m0/start.o
- .bss 0x000000002030572c 0x4 lib/libarm.a(board.o)
- 0x000000002030572c zloader_entry_point
- .bss 0x0000000020305730 0x0 lib/libarm.a(string.o)
- .bss 0x0000000020305730 0x0 drivers/libdrivers.a(ddr.o)
- .bss 0x0000000020305730 0x0 drivers/libdrivers.a(uart.o)
- .bss 0x0000000020305730 0x0 drivers/libdrivers.a(image.o)
- .bss 0x0000000020305730 0x104 drivers/libdrivers.a(secure_verify.o)
- 0x0000000020305730 result
- .bss 0x0000000020305834 0x4 drivers/libdrivers.a(spifc_loader2.o)
- .bss 0x0000000020305838 0x80 drivers/libdrivers.a(bbt.o)
- .bss 0x00000000203058b8 0x0 drivers/libdrivers.a(sha256.o)
- .bss 0x00000000203058b8 0x28 drivers/libdrivers.a(nor.o)
- 0x00000000203058b8 spi_nor_flash
- 0x00000000203058bc otp_data
- .bss 0x00000000203058e0 0x0 drivers/libdrivers.a(drv_hash.o)
- .bss 0x00000000203058e0 0x0 drivers/libdrivers.a(drv_rsa.o)
- .bss 0x00000000203058e0 0x24 drivers/libdrivers.a(flash.o)
- 0x00000000203058e0 flash
- .bss 0x0000000020305904 0x0 drivers/libdrivers.a(efuse.o)
- .bss 0x0000000020305904 0x10 cpu/m0/libm0.a(cpu.o)
- 0x0000000020305904 g_tick
- 0x0000000020305914 __bss_end = .
- 0x0000000020305914 . = ALIGN (0x4)
+ .bss 0x000000002030587c 0x0 cpu/m0/start.o
+ .bss 0x000000002030587c 0x4 lib/libarm.a(board.o)
+ 0x000000002030587c zloader_entry_point
+ .bss 0x0000000020305880 0x0 lib/libarm.a(string.o)
+ .bss 0x0000000020305880 0x0 drivers/libdrivers.a(ddr.o)
+ .bss 0x0000000020305880 0x0 drivers/libdrivers.a(uart.o)
+ .bss 0x0000000020305880 0x0 drivers/libdrivers.a(image.o)
+ .bss 0x0000000020305880 0x104 drivers/libdrivers.a(secure_verify.o)
+ 0x0000000020305880 result
+ .bss 0x0000000020305984 0x4 drivers/libdrivers.a(spifc_loader2.o)
+ .bss 0x0000000020305988 0x80 drivers/libdrivers.a(bbt.o)
+ .bss 0x0000000020305a08 0x0 drivers/libdrivers.a(sha256.o)
+ .bss 0x0000000020305a08 0x28 drivers/libdrivers.a(nor.o)
+ 0x0000000020305a08 spi_nor_flash
+ 0x0000000020305a0c otp_data
+ .bss 0x0000000020305a30 0x0 drivers/libdrivers.a(drv_hash.o)
+ .bss 0x0000000020305a30 0x0 drivers/libdrivers.a(drv_rsa.o)
+ .bss 0x0000000020305a30 0x24 drivers/libdrivers.a(flash.o)
+ 0x0000000020305a30 flash
+ .bss 0x0000000020305a54 0x0 drivers/libdrivers.a(efuse.o)
+ .bss 0x0000000020305a54 0x10 cpu/m0/libm0.a(cpu.o)
+ 0x0000000020305a54 g_tick
+ 0x0000000020305a64 __bss_end = .
+ 0x0000000020305a64 . = ALIGN (0x4)
-.para 0x0000000082000000 0x0 加载地址 0x0000000020305914
+.para 0x0000000082000000 0x0 加载地址 0x0000000020305a64
0x0000000082000000 __para_start = .
*(.para)
0x0000000082000000 __para_end = .
@@ -356,22 +356,22 @@
.stabstr 0x0000000000000000 0x67
.stabstr 0x0000000000000000 0x67 cpu/m0/start.o
-.debug_info 0x0000000000000000 0x65ab
- .debug_info 0x0000000000000000 0x9a2 lib/libarm.a(board.o)
- .debug_info 0x00000000000009a2 0x22b lib/libarm.a(string.o)
- .debug_info 0x0000000000000bcd 0x329 drivers/libdrivers.a(ddr.o)
- .debug_info 0x0000000000000ef6 0x2a0 drivers/libdrivers.a(uart.o)
- .debug_info 0x0000000000001196 0xdd6 drivers/libdrivers.a(image.o)
- .debug_info 0x0000000000001f6c 0xb01 drivers/libdrivers.a(secure_verify.o)
- .debug_info 0x0000000000002a6d 0x1661 drivers/libdrivers.a(spifc_loader2.o)
- .debug_info 0x00000000000040ce 0x70f drivers/libdrivers.a(bbt.o)
- .debug_info 0x00000000000047dd 0x586 drivers/libdrivers.a(sha256.o)
- .debug_info 0x0000000000004d63 0xd5f drivers/libdrivers.a(nor.o)
- .debug_info 0x0000000000005ac2 0x1e8 drivers/libdrivers.a(drv_hash.o)
- .debug_info 0x0000000000005caa 0x3b4 drivers/libdrivers.a(drv_rsa.o)
- .debug_info 0x000000000000605e 0x20f drivers/libdrivers.a(flash.o)
- .debug_info 0x000000000000626d 0x1c3 drivers/libdrivers.a(efuse.o)
- .debug_info 0x0000000000006430 0x17b cpu/m0/libm0.a(cpu.o)
+.debug_info 0x0000000000000000 0x66af
+ .debug_info 0x0000000000000000 0xaa6 lib/libarm.a(board.o)
+ .debug_info 0x0000000000000aa6 0x22b lib/libarm.a(string.o)
+ .debug_info 0x0000000000000cd1 0x329 drivers/libdrivers.a(ddr.o)
+ .debug_info 0x0000000000000ffa 0x2a0 drivers/libdrivers.a(uart.o)
+ .debug_info 0x000000000000129a 0xdd6 drivers/libdrivers.a(image.o)
+ .debug_info 0x0000000000002070 0xb01 drivers/libdrivers.a(secure_verify.o)
+ .debug_info 0x0000000000002b71 0x1661 drivers/libdrivers.a(spifc_loader2.o)
+ .debug_info 0x00000000000041d2 0x70f drivers/libdrivers.a(bbt.o)
+ .debug_info 0x00000000000048e1 0x586 drivers/libdrivers.a(sha256.o)
+ .debug_info 0x0000000000004e67 0xd5f drivers/libdrivers.a(nor.o)
+ .debug_info 0x0000000000005bc6 0x1e8 drivers/libdrivers.a(drv_hash.o)
+ .debug_info 0x0000000000005dae 0x3b4 drivers/libdrivers.a(drv_rsa.o)
+ .debug_info 0x0000000000006162 0x20f drivers/libdrivers.a(flash.o)
+ .debug_info 0x0000000000006371 0x1c3 drivers/libdrivers.a(efuse.o)
+ .debug_info 0x0000000000006534 0x17b cpu/m0/libm0.a(cpu.o)
.debug_abbrev 0x0000000000000000 0x1c94
.debug_abbrev 0x0000000000000000 0x304 lib/libarm.a(board.o)
@@ -390,22 +390,22 @@
.debug_abbrev 0x0000000000001aaf 0x11d drivers/libdrivers.a(efuse.o)
.debug_abbrev 0x0000000000001bcc 0xc8 cpu/m0/libm0.a(cpu.o)
-.debug_loc 0x0000000000000000 0x9737
- .debug_loc 0x0000000000000000 0x345 lib/libarm.a(board.o)
- .debug_loc 0x0000000000000345 0x29d lib/libarm.a(string.o)
- .debug_loc 0x00000000000005e2 0x2d8 drivers/libdrivers.a(ddr.o)
- .debug_loc 0x00000000000008ba 0x228 drivers/libdrivers.a(uart.o)
- .debug_loc 0x0000000000000ae2 0x6a2 drivers/libdrivers.a(image.o)
- .debug_loc 0x0000000000001184 0x790 drivers/libdrivers.a(secure_verify.o)
- .debug_loc 0x0000000000001914 0xef4 drivers/libdrivers.a(spifc_loader2.o)
- .debug_loc 0x0000000000002808 0x282 drivers/libdrivers.a(bbt.o)
- .debug_loc 0x0000000000002a8a 0x5f3f drivers/libdrivers.a(sha256.o)
- .debug_loc 0x00000000000089c9 0x80a drivers/libdrivers.a(nor.o)
- .debug_loc 0x00000000000091d3 0x1b8 drivers/libdrivers.a(drv_hash.o)
- .debug_loc 0x000000000000938b 0x238 drivers/libdrivers.a(drv_rsa.o)
- .debug_loc 0x00000000000095c3 0x1f drivers/libdrivers.a(flash.o)
- .debug_loc 0x00000000000095e2 0xab drivers/libdrivers.a(efuse.o)
- .debug_loc 0x000000000000968d 0xaa cpu/m0/libm0.a(cpu.o)
+.debug_loc 0x0000000000000000 0x9807
+ .debug_loc 0x0000000000000000 0x415 lib/libarm.a(board.o)
+ .debug_loc 0x0000000000000415 0x29d lib/libarm.a(string.o)
+ .debug_loc 0x00000000000006b2 0x2d8 drivers/libdrivers.a(ddr.o)
+ .debug_loc 0x000000000000098a 0x228 drivers/libdrivers.a(uart.o)
+ .debug_loc 0x0000000000000bb2 0x6a2 drivers/libdrivers.a(image.o)
+ .debug_loc 0x0000000000001254 0x790 drivers/libdrivers.a(secure_verify.o)
+ .debug_loc 0x00000000000019e4 0xef4 drivers/libdrivers.a(spifc_loader2.o)
+ .debug_loc 0x00000000000028d8 0x282 drivers/libdrivers.a(bbt.o)
+ .debug_loc 0x0000000000002b5a 0x5f3f drivers/libdrivers.a(sha256.o)
+ .debug_loc 0x0000000000008a99 0x80a drivers/libdrivers.a(nor.o)
+ .debug_loc 0x00000000000092a3 0x1b8 drivers/libdrivers.a(drv_hash.o)
+ .debug_loc 0x000000000000945b 0x238 drivers/libdrivers.a(drv_rsa.o)
+ .debug_loc 0x0000000000009693 0x1f drivers/libdrivers.a(flash.o)
+ .debug_loc 0x00000000000096b2 0xab drivers/libdrivers.a(efuse.o)
+ .debug_loc 0x000000000000975d 0xaa cpu/m0/libm0.a(cpu.o)
.debug_aranges 0x0000000000000000 0x1e0
.debug_aranges
@@ -449,53 +449,53 @@
.debug_ranges 0x00000000000001d8 0x28 drivers/libdrivers.a(drv_hash.o)
.debug_ranges 0x0000000000000200 0x38 drivers/libdrivers.a(drv_rsa.o)
-.debug_line 0x0000000000000000 0x203f
- .debug_line 0x0000000000000000 0x3a4 lib/libarm.a(board.o)
- .debug_line 0x00000000000003a4 0x152 lib/libarm.a(string.o)
- .debug_line 0x00000000000004f6 0x299 drivers/libdrivers.a(ddr.o)
- .debug_line 0x000000000000078f 0x112 drivers/libdrivers.a(uart.o)
- .debug_line 0x00000000000008a1 0x3b8 drivers/libdrivers.a(image.o)
- .debug_line 0x0000000000000c59 0x38e drivers/libdrivers.a(secure_verify.o)
- .debug_line 0x0000000000000fe7 0x442 drivers/libdrivers.a(spifc_loader2.o)
- .debug_line 0x0000000000001429 0x251 drivers/libdrivers.a(bbt.o)
- .debug_line 0x000000000000167a 0x2bb drivers/libdrivers.a(sha256.o)
- .debug_line 0x0000000000001935 0x2a2 drivers/libdrivers.a(nor.o)
- .debug_line 0x0000000000001bd7 0x88 drivers/libdrivers.a(drv_hash.o)
- .debug_line 0x0000000000001c5f 0x117 drivers/libdrivers.a(drv_rsa.o)
- .debug_line 0x0000000000001d76 0x10a drivers/libdrivers.a(flash.o)
- .debug_line 0x0000000000001e80 0x118 drivers/libdrivers.a(efuse.o)
- .debug_line 0x0000000000001f98 0xa7 cpu/m0/libm0.a(cpu.o)
+.debug_line 0x0000000000000000 0x2078
+ .debug_line 0x0000000000000000 0x3dd lib/libarm.a(board.o)
+ .debug_line 0x00000000000003dd 0x152 lib/libarm.a(string.o)
+ .debug_line 0x000000000000052f 0x299 drivers/libdrivers.a(ddr.o)
+ .debug_line 0x00000000000007c8 0x112 drivers/libdrivers.a(uart.o)
+ .debug_line 0x00000000000008da 0x3b8 drivers/libdrivers.a(image.o)
+ .debug_line 0x0000000000000c92 0x38e drivers/libdrivers.a(secure_verify.o)
+ .debug_line 0x0000000000001020 0x442 drivers/libdrivers.a(spifc_loader2.o)
+ .debug_line 0x0000000000001462 0x251 drivers/libdrivers.a(bbt.o)
+ .debug_line 0x00000000000016b3 0x2bb drivers/libdrivers.a(sha256.o)
+ .debug_line 0x000000000000196e 0x2a2 drivers/libdrivers.a(nor.o)
+ .debug_line 0x0000000000001c10 0x88 drivers/libdrivers.a(drv_hash.o)
+ .debug_line 0x0000000000001c98 0x117 drivers/libdrivers.a(drv_rsa.o)
+ .debug_line 0x0000000000001daf 0x10a drivers/libdrivers.a(flash.o)
+ .debug_line 0x0000000000001eb9 0x118 drivers/libdrivers.a(efuse.o)
+ .debug_line 0x0000000000001fd1 0xa7 cpu/m0/libm0.a(cpu.o)
-.debug_str 0x0000000000000000 0x160a
- .debug_str 0x0000000000000000 0x55d lib/libarm.a(board.o)
- 0x5d3 (松开之前的大小)
- .debug_str 0x000000000000055d 0x3f lib/libarm.a(string.o)
+.debug_str 0x0000000000000000 0x1616
+ .debug_str 0x0000000000000000 0x569 lib/libarm.a(board.o)
+ 0x5df (松开之前的大小)
+ .debug_str 0x0000000000000569 0x3f lib/libarm.a(string.o)
0x214 (松开之前的大小)
- .debug_str 0x000000000000059c 0xa2 drivers/libdrivers.a(ddr.o)
+ .debug_str 0x00000000000005a8 0xa2 drivers/libdrivers.a(ddr.o)
0x216 (松开之前的大小)
- .debug_str 0x000000000000063e 0x94 drivers/libdrivers.a(uart.o)
+ .debug_str 0x000000000000064a 0x94 drivers/libdrivers.a(uart.o)
0x253 (松开之前的大小)
- .debug_str 0x00000000000006d2 0x35b drivers/libdrivers.a(image.o)
+ .debug_str 0x00000000000006de 0x35b drivers/libdrivers.a(image.o)
0x854 (松开之前的大小)
- .debug_str 0x0000000000000a2d 0x2f9 drivers/libdrivers.a(secure_verify.o)
+ .debug_str 0x0000000000000a39 0x2f9 drivers/libdrivers.a(secure_verify.o)
0x61f (松开之前的大小)
- .debug_str 0x0000000000000d26 0x3bb drivers/libdrivers.a(spifc_loader2.o)
+ .debug_str 0x0000000000000d32 0x3bb drivers/libdrivers.a(spifc_loader2.o)
0x6c1 (松开之前的大小)
- .debug_str 0x00000000000010e1 0x103 drivers/libdrivers.a(bbt.o)
+ .debug_str 0x00000000000010ed 0x103 drivers/libdrivers.a(bbt.o)
0x3fe (松开之前的大小)
- .debug_str 0x00000000000011e4 0xc3 drivers/libdrivers.a(sha256.o)
+ .debug_str 0x00000000000011f0 0xc3 drivers/libdrivers.a(sha256.o)
0x2b7 (松开之前的大小)
- .debug_str 0x00000000000012a7 0x1ad drivers/libdrivers.a(nor.o)
+ .debug_str 0x00000000000012b3 0x1ad drivers/libdrivers.a(nor.o)
0x5f3 (松开之前的大小)
- .debug_str 0x0000000000001454 0x87 drivers/libdrivers.a(drv_hash.o)
+ .debug_str 0x0000000000001460 0x87 drivers/libdrivers.a(drv_hash.o)
0x25a (松开之前的大小)
- .debug_str 0x00000000000014db 0x79 drivers/libdrivers.a(drv_rsa.o)
+ .debug_str 0x00000000000014e7 0x79 drivers/libdrivers.a(drv_rsa.o)
0x29c (松开之前的大小)
- .debug_str 0x0000000000001554 0x12 drivers/libdrivers.a(flash.o)
+ .debug_str 0x0000000000001560 0x12 drivers/libdrivers.a(flash.o)
0x2a8 (松开之前的大小)
- .debug_str 0x0000000000001566 0x20 drivers/libdrivers.a(efuse.o)
+ .debug_str 0x0000000000001572 0x20 drivers/libdrivers.a(efuse.o)
0x255 (松开之前的大小)
- .debug_str 0x0000000000001586 0x84 cpu/m0/libm0.a(cpu.o)
+ .debug_str 0x0000000000001592 0x84 cpu/m0/libm0.a(cpu.o)
0x1f8 (松开之前的大小)
.debug_frame 0x0000000000000000 0xaf0
diff --git a/Uboot/boot/prj/zx297520v3/bootrom/dl_on/loader2.bin b/Uboot/boot/prj/zx297520v3/bootrom/dl_on/loader2.bin
index e13e6d9..6cf279f 100755
--- a/Uboot/boot/prj/zx297520v3/bootrom/dl_on/loader2.bin
+++ b/Uboot/boot/prj/zx297520v3/bootrom/dl_on/loader2.bin
Binary files differ
diff --git a/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load b/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load
index 2bc2831..fea89a9 100755
--- a/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load
+++ b/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load
Binary files differ
diff --git a/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load.map b/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load.map
index 07ae1fd..b4ee310 100755
--- a/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load.map
+++ b/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load.map
@@ -300,20 +300,20 @@
.stabstr 0x0000000000000000 0x67
.stabstr 0x0000000000000000 0x67 cpu/m0/start.o
-.debug_info 0x0000000000000000 0x34d2
- .debug_info 0x0000000000000000 0x70b lib/libarm.a(board.o)
- .debug_info 0x000000000000070b 0x22b lib/libarm.a(string.o)
- .debug_info 0x0000000000000936 0x329 drivers/libdrivers.a(ddr.o)
- .debug_info 0x0000000000000c5f 0x2a0 drivers/libdrivers.a(uart.o)
- .debug_info 0x0000000000000eff 0x6d3 drivers/libdrivers.a(image.o)
- .debug_info 0x00000000000015d2 0x1c3 drivers/libdrivers.a(efuse.o)
- .debug_info 0x0000000000001795 0x62d drivers/libdrivers.a(secure_verify.o)
- .debug_info 0x0000000000001dc2 0xd5f drivers/libdrivers.a(nor.o)
- .debug_info 0x0000000000002b21 0x1e8 drivers/libdrivers.a(drv_hash.o)
- .debug_info 0x0000000000002d09 0x3b4 drivers/libdrivers.a(drv_rsa.o)
- .debug_info 0x00000000000030bd 0x20f drivers/libdrivers.a(flash.o)
- .debug_info 0x00000000000032cc 0x17b cpu/m0/libm0.a(cpu.o)
- .debug_info 0x0000000000003447 0x8b cpu/m0/libm0.a(clk.o)
+.debug_info 0x0000000000000000 0x34df
+ .debug_info 0x0000000000000000 0x718 lib/libarm.a(board.o)
+ .debug_info 0x0000000000000718 0x22b lib/libarm.a(string.o)
+ .debug_info 0x0000000000000943 0x329 drivers/libdrivers.a(ddr.o)
+ .debug_info 0x0000000000000c6c 0x2a0 drivers/libdrivers.a(uart.o)
+ .debug_info 0x0000000000000f0c 0x6d3 drivers/libdrivers.a(image.o)
+ .debug_info 0x00000000000015df 0x1c3 drivers/libdrivers.a(efuse.o)
+ .debug_info 0x00000000000017a2 0x62d drivers/libdrivers.a(secure_verify.o)
+ .debug_info 0x0000000000001dcf 0xd5f drivers/libdrivers.a(nor.o)
+ .debug_info 0x0000000000002b2e 0x1e8 drivers/libdrivers.a(drv_hash.o)
+ .debug_info 0x0000000000002d16 0x3b4 drivers/libdrivers.a(drv_rsa.o)
+ .debug_info 0x00000000000030ca 0x20f drivers/libdrivers.a(flash.o)
+ .debug_info 0x00000000000032d9 0x17b cpu/m0/libm0.a(cpu.o)
+ .debug_info 0x0000000000003454 0x8b cpu/m0/libm0.a(clk.o)
.debug_abbrev 0x0000000000000000 0x12c2
.debug_abbrev 0x0000000000000000 0x2b8 lib/libarm.a(board.o)
@@ -395,32 +395,32 @@
.debug_line 0x000000000000131d 0xa7 cpu/m0/libm0.a(cpu.o)
.debug_line 0x00000000000013c4 0x61 cpu/m0/libm0.a(clk.o)
-.debug_str 0x0000000000000000 0xebb
- .debug_str 0x0000000000000000 0x4d5 lib/libarm.a(board.o)
- 0x554 (松开之前的大小)
- .debug_str 0x00000000000004d5 0x4c lib/libarm.a(string.o)
+.debug_str 0x0000000000000000 0xec7
+ .debug_str 0x0000000000000000 0x4e1 lib/libarm.a(board.o)
+ 0x560 (松开之前的大小)
+ .debug_str 0x00000000000004e1 0x4c lib/libarm.a(string.o)
0x214 (松开之前的大小)
- .debug_str 0x0000000000000521 0xa1 drivers/libdrivers.a(ddr.o)
+ .debug_str 0x000000000000052d 0xa1 drivers/libdrivers.a(ddr.o)
0x216 (松开之前的大小)
- .debug_str 0x00000000000005c2 0x8a drivers/libdrivers.a(uart.o)
+ .debug_str 0x00000000000005ce 0x8a drivers/libdrivers.a(uart.o)
0x253 (松开之前的大小)
- .debug_str 0x000000000000064c 0x229 drivers/libdrivers.a(image.o)
+ .debug_str 0x0000000000000658 0x229 drivers/libdrivers.a(image.o)
0x4a0 (松开之前的大小)
- .debug_str 0x0000000000000875 0x7b drivers/libdrivers.a(efuse.o)
+ .debug_str 0x0000000000000881 0x7b drivers/libdrivers.a(efuse.o)
0x255 (松开之前的大小)
- .debug_str 0x00000000000008f0 0x177 drivers/libdrivers.a(secure_verify.o)
+ .debug_str 0x00000000000008fc 0x177 drivers/libdrivers.a(secure_verify.o)
0x407 (松开之前的大小)
- .debug_str 0x0000000000000a67 0x2c3 drivers/libdrivers.a(nor.o)
+ .debug_str 0x0000000000000a73 0x2c3 drivers/libdrivers.a(nor.o)
0x5f3 (松开之前的大小)
- .debug_str 0x0000000000000d2a 0x87 drivers/libdrivers.a(drv_hash.o)
+ .debug_str 0x0000000000000d36 0x87 drivers/libdrivers.a(drv_hash.o)
0x25a (松开之前的大小)
- .debug_str 0x0000000000000db1 0x79 drivers/libdrivers.a(drv_rsa.o)
+ .debug_str 0x0000000000000dbd 0x79 drivers/libdrivers.a(drv_rsa.o)
0x29c (松开之前的大小)
- .debug_str 0x0000000000000e2a 0x12 drivers/libdrivers.a(flash.o)
+ .debug_str 0x0000000000000e36 0x12 drivers/libdrivers.a(flash.o)
0x2a8 (松开之前的大小)
- .debug_str 0x0000000000000e3c 0x79 cpu/m0/libm0.a(cpu.o)
+ .debug_str 0x0000000000000e48 0x79 cpu/m0/libm0.a(cpu.o)
0x1f8 (松开之前的大小)
- .debug_str 0x0000000000000eb5 0x6 cpu/m0/libm0.a(clk.o)
+ .debug_str 0x0000000000000ec1 0x6 cpu/m0/libm0.a(clk.o)
0x1bd (松开之前的大小)
.debug_frame 0x0000000000000000 0x6a0
diff --git a/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load2 b/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load2
index aa9d47a..88a41ea 100755
--- a/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load2
+++ b/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load2
Binary files differ
diff --git a/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load2.map b/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load2.map
index 0163e41..c906aa5 100755
--- a/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load2.map
+++ b/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load2.map
@@ -34,7 +34,7 @@
0x0000000000000000 . = 0x0
0x0000000000000000 . = ALIGN (0x4)
-.text 0x0000000020300000 0x4ddc
+.text 0x0000000020300000 0x4ea4
cpu/m0/start.o(.text)
.text 0x0000000020300000 0x220 cpu/m0/start.o
0x00000000203001a4 _bss_start
@@ -44,7 +44,7 @@
0x00000000203001b8 _start
0x00000000203001fe run_at
*(.text)
- .text 0x0000000020300220 0x4ec lib/libarm.a(board.o)
+ .text 0x0000000020300220 0x5b4 lib/libarm.a(board.o)
0x0000000020300220 print_info
0x0000000020300230 copy_to_iram1
0x0000000020300250 clear_iram
@@ -55,201 +55,201 @@
0x0000000020300338 pmu_read
0x0000000020300404 pmu_write
0x00000000203004d0 start_armboot
- .text 0x000000002030070c 0x80 lib/libarm.a(string.o)
- 0x000000002030070c strlen
- 0x000000002030071c memset
- 0x000000002030075e memcmp
- 0x000000002030077a memcpy
- .text 0x000000002030078c 0x82c drivers/libdrivers.a(ddr.o)
- 0x000000002030078c nsdelay
- 0x00000000203007a6 ddr_clk_init
- 0x00000000203007bc ddr_phy_init
- 0x00000000203008b8 ddr_ctrl_init
- 0x0000000020300c74 ddr_prio_init
- 0x0000000020300d98 ddr_init
- .text 0x0000000020300fb8 0x138 drivers/libdrivers.a(uart.o)
- 0x0000000020300fb8 uart_init
- 0x0000000020301038 uart_putc
- 0x0000000020301060 uart_puts
- 0x0000000020301074 uart_getc
- 0x0000000020301090 uart_tstc
- 0x00000000203010a0 UART_Read
- 0x00000000203010bc UART_Write
- 0x00000000203010d8 UART_Check_Sync
- .text 0x00000000203010f0 0x338 drivers/libdrivers.a(image.o)
- 0x00000000203010f4 page_align
- 0x000000002030110c find_partition_para
- 0x000000002030113c read_image_part_offset
- 0x0000000020301190 read_flags_image
- 0x0000000020301278 read_uboot_image
- 0x0000000020301358 nand_read_m0
- 0x00000000203013c4 read_zloader_image
- .text 0x0000000020301428 0x2b0 drivers/libdrivers.a(secure_verify.o)
- 0x0000000020301446 BIG2SMALL
- 0x0000000020301476 bin2hex
- 0x00000000203014c0 secure_verify_zloader
- 0x00000000203015b4 SecureVerify
- .text 0x00000000203016d8 0x648 drivers/libdrivers.a(spifc_loader2.o)
- 0x00000000203017cc zDrvGpio_SetFunc
- 0x0000000020301804 zDrvGpio_SetDirection
- 0x0000000020301854 zDrvGpio_SetOutputValue
- 0x0000000020301890 spi_nand_cs
- 0x00000000203018cc spifc_clear_fifo
- 0x00000000203018e0 spifc_clear_int
- 0x0000000020301a3c spifc_read_oob
- 0x0000000020301a80 spifc_read_page_raw
- 0x0000000020301abc spifc_read_page
- 0x0000000020301b38 spifc_read
- 0x0000000020301b7c read_data
- 0x0000000020301bd0 read_id
- 0x0000000020301c54 spifc_init
- 0x0000000020301cd8 zloader_flash_init
- .text 0x0000000020301d20 0x1c0 drivers/libdrivers.a(bbt.o)
- 0x0000000020301d80 nand_creat_ram_bbt
- 0x0000000020301dc4 nand_search_bbt
- 0x0000000020301e50 nand_creat_bbt
- 0x0000000020301ecc nand_block_isbad
- .text 0x0000000020301ee0 0x2688 drivers/libdrivers.a(sha256.o)
- 0x0000000020304400 sha256_starts
- 0x0000000020304448 sha256_update
- 0x0000000020304454 sha256_finish
- 0x0000000020304540 sha256_csum_wd
- .text 0x0000000020304568 0x424 drivers/libdrivers.a(nor.o)
- 0x0000000020304568 spifc_enable
- 0x0000000020304598 spifc_disable
- 0x00000000203045bc spifc_setup_cmd
- 0x0000000020304640 spifc_wait_cmd_end
- 0x000000002030466c spifc_read_fifo
- 0x00000000203046a8 spifc_start
- 0x00000000203046b8 cmd_seek
- 0x00000000203046d8 nor_read_reg
- 0x0000000020304738 nor_read_id
- 0x00000000203047a0 spi_nor_read
- 0x00000000203047fc nor_read
- 0x0000000020304850 spi_nor_read_security_register
- 0x00000000203048ac nor_read_security_register
- 0x0000000020304900 nor_init
- 0x0000000020304950 board_flash_init
- .text 0x000000002030498c 0xa4 drivers/libdrivers.a(drv_hash.o)
- 0x000000002030498c Hash_Calculate
- .text 0x0000000020304a30 0x174 drivers/libdrivers.a(drv_rsa.o)
- 0x0000000020304a4a Rsa_Calculate
- .text 0x0000000020304ba4 0x28 drivers/libdrivers.a(flash.o)
- 0x0000000020304ba4 get_boot_mode
- .text 0x0000000020304bcc 0x1bc drivers/libdrivers.a(efuse.o)
- 0x0000000020304bcc efuse_init
- 0x0000000020304bf0 get_ddr_flag
- 0x0000000020304d10 get_secure_verify_status
- 0x0000000020304d54 get_otp_secure_verify_status
- .text 0x0000000020304d88 0x54 cpu/m0/libm0.a(cpu.o)
- 0x0000000020304d88 timer_init
- 0x0000000020304da0 usdelay
+ .text 0x00000000203007d4 0x80 lib/libarm.a(string.o)
+ 0x00000000203007d4 strlen
+ 0x00000000203007e4 memset
+ 0x0000000020300826 memcmp
+ 0x0000000020300842 memcpy
+ .text 0x0000000020300854 0x82c drivers/libdrivers.a(ddr.o)
+ 0x0000000020300854 nsdelay
+ 0x000000002030086e ddr_clk_init
+ 0x0000000020300884 ddr_phy_init
+ 0x0000000020300980 ddr_ctrl_init
+ 0x0000000020300d3c ddr_prio_init
+ 0x0000000020300e60 ddr_init
+ .text 0x0000000020301080 0x138 drivers/libdrivers.a(uart.o)
+ 0x0000000020301080 uart_init
+ 0x0000000020301100 uart_putc
+ 0x0000000020301128 uart_puts
+ 0x000000002030113c uart_getc
+ 0x0000000020301158 uart_tstc
+ 0x0000000020301168 UART_Read
+ 0x0000000020301184 UART_Write
+ 0x00000000203011a0 UART_Check_Sync
+ .text 0x00000000203011b8 0x338 drivers/libdrivers.a(image.o)
+ 0x00000000203011bc page_align
+ 0x00000000203011d4 find_partition_para
+ 0x0000000020301204 read_image_part_offset
+ 0x0000000020301258 read_flags_image
+ 0x0000000020301340 read_uboot_image
+ 0x0000000020301420 nand_read_m0
+ 0x000000002030148c read_zloader_image
+ .text 0x00000000203014f0 0x2b0 drivers/libdrivers.a(secure_verify.o)
+ 0x000000002030150e BIG2SMALL
+ 0x000000002030153e bin2hex
+ 0x0000000020301588 secure_verify_zloader
+ 0x000000002030167c SecureVerify
+ .text 0x00000000203017a0 0x648 drivers/libdrivers.a(spifc_loader2.o)
+ 0x0000000020301894 zDrvGpio_SetFunc
+ 0x00000000203018cc zDrvGpio_SetDirection
+ 0x000000002030191c zDrvGpio_SetOutputValue
+ 0x0000000020301958 spi_nand_cs
+ 0x0000000020301994 spifc_clear_fifo
+ 0x00000000203019a8 spifc_clear_int
+ 0x0000000020301b04 spifc_read_oob
+ 0x0000000020301b48 spifc_read_page_raw
+ 0x0000000020301b84 spifc_read_page
+ 0x0000000020301c00 spifc_read
+ 0x0000000020301c44 read_data
+ 0x0000000020301c98 read_id
+ 0x0000000020301d1c spifc_init
+ 0x0000000020301da0 zloader_flash_init
+ .text 0x0000000020301de8 0x1c0 drivers/libdrivers.a(bbt.o)
+ 0x0000000020301e48 nand_creat_ram_bbt
+ 0x0000000020301e8c nand_search_bbt
+ 0x0000000020301f18 nand_creat_bbt
+ 0x0000000020301f94 nand_block_isbad
+ .text 0x0000000020301fa8 0x2688 drivers/libdrivers.a(sha256.o)
+ 0x00000000203044c8 sha256_starts
+ 0x0000000020304510 sha256_update
+ 0x000000002030451c sha256_finish
+ 0x0000000020304608 sha256_csum_wd
+ .text 0x0000000020304630 0x424 drivers/libdrivers.a(nor.o)
+ 0x0000000020304630 spifc_enable
+ 0x0000000020304660 spifc_disable
+ 0x0000000020304684 spifc_setup_cmd
+ 0x0000000020304708 spifc_wait_cmd_end
+ 0x0000000020304734 spifc_read_fifo
+ 0x0000000020304770 spifc_start
+ 0x0000000020304780 cmd_seek
+ 0x00000000203047a0 nor_read_reg
+ 0x0000000020304800 nor_read_id
+ 0x0000000020304868 spi_nor_read
+ 0x00000000203048c4 nor_read
+ 0x0000000020304918 spi_nor_read_security_register
+ 0x0000000020304974 nor_read_security_register
+ 0x00000000203049c8 nor_init
+ 0x0000000020304a18 board_flash_init
+ .text 0x0000000020304a54 0xa4 drivers/libdrivers.a(drv_hash.o)
+ 0x0000000020304a54 Hash_Calculate
+ .text 0x0000000020304af8 0x174 drivers/libdrivers.a(drv_rsa.o)
+ 0x0000000020304b12 Rsa_Calculate
+ .text 0x0000000020304c6c 0x28 drivers/libdrivers.a(flash.o)
+ 0x0000000020304c6c get_boot_mode
+ .text 0x0000000020304c94 0x1bc drivers/libdrivers.a(efuse.o)
+ 0x0000000020304c94 efuse_init
+ 0x0000000020304cb8 get_ddr_flag
+ 0x0000000020304dd8 get_secure_verify_status
+ 0x0000000020304e1c get_otp_secure_verify_status
+ .text 0x0000000020304e50 0x54 cpu/m0/libm0.a(cpu.o)
+ 0x0000000020304e50 timer_init
+ 0x0000000020304e68 usdelay
-.glue_7 0x0000000020304ddc 0x0
+.glue_7 0x0000000020304ea4 0x0
.glue_7 0x0000000000000000 0x0 linker stubs
-.glue_7t 0x0000000020304ddc 0x0
+.glue_7t 0x0000000020304ea4 0x0
.glue_7t 0x0000000000000000 0x0 linker stubs
-.vfp11_veneer 0x0000000020304ddc 0x0
+.vfp11_veneer 0x0000000020304ea4 0x0
.vfp11_veneer 0x0000000000000000 0x0 linker stubs
-.v4_bx 0x0000000020304ddc 0x0
+.v4_bx 0x0000000020304ea4 0x0
.v4_bx 0x0000000000000000 0x0 linker stubs
-.iplt 0x0000000020304ddc 0x0
+.iplt 0x0000000020304ea4 0x0
.iplt 0x0000000000000000 0x0 cpu/m0/start.o
- 0x0000000020304ddc . = ALIGN (0x4)
+ 0x0000000020304ea4 . = ALIGN (0x4)
-.rodata 0x0000000020304ddc 0x3f0
+.rodata 0x0000000020304ea4 0x3f0
*(.rodata)
- .rodata 0x0000000020304ddc 0x270 drivers/libdrivers.a(spifc_loader2.o)
- .rodata 0x000000002030504c 0x13 drivers/libdrivers.a(sha256.o)
- 0x000000002030504c sha256_der_prefix
- *fill* 0x000000002030505f 0x1
- .rodata 0x0000000020305060 0x16c drivers/libdrivers.a(nor.o)
+ .rodata 0x0000000020304ea4 0x270 drivers/libdrivers.a(spifc_loader2.o)
+ .rodata 0x0000000020305114 0x13 drivers/libdrivers.a(sha256.o)
+ 0x0000000020305114 sha256_der_prefix
+ *fill* 0x0000000020305127 0x1
+ .rodata 0x0000000020305128 0x16c drivers/libdrivers.a(nor.o)
-.rodata.str1.1 0x00000000203051cc 0x48d
+.rodata.str1.1 0x0000000020305294 0x516
.rodata.str1.1
- 0x00000000203051cc 0x18a lib/libarm.a(board.o)
- 0x1a3 (松开之前的大小)
+ 0x0000000020305294 0x213 lib/libarm.a(board.o)
+ 0x24e (松开之前的大小)
.rodata.str1.1
- 0x0000000020305356 0xef drivers/libdrivers.a(image.o)
+ 0x00000000203054a7 0xef drivers/libdrivers.a(image.o)
0x115 (松开之前的大小)
.rodata.str1.1
- 0x0000000020305445 0x5b drivers/libdrivers.a(secure_verify.o)
+ 0x0000000020305596 0x5b drivers/libdrivers.a(secure_verify.o)
0x5d (松开之前的大小)
.rodata.str1.1
- 0x00000000203054a0 0x3d drivers/libdrivers.a(spifc_loader2.o)
+ 0x00000000203055f1 0x3d drivers/libdrivers.a(spifc_loader2.o)
0x4a (松开之前的大小)
.rodata.str1.1
- 0x00000000203054dd 0x9 drivers/libdrivers.a(bbt.o)
+ 0x000000002030562e 0x9 drivers/libdrivers.a(bbt.o)
.rodata.str1.1
- 0x00000000203054e6 0x15c drivers/libdrivers.a(nor.o)
+ 0x0000000020305637 0x15c drivers/libdrivers.a(nor.o)
.rodata.str1.1
- 0x0000000020305642 0x17 drivers/libdrivers.a(efuse.o)
+ 0x0000000020305793 0x17 drivers/libdrivers.a(efuse.o)
-.rel.dyn 0x000000002030565c 0x0
+.rel.dyn 0x00000000203057ac 0x0
.rel.iplt 0x0000000000000000 0x0 cpu/m0/start.o
- 0x000000002030565c . = ALIGN (0x4)
+ 0x00000000203057ac . = ALIGN (0x4)
-.data 0x000000002030565c 0xd0
+.data 0x00000000203057ac 0xd0
*(.data)
- .data 0x000000002030565c 0x0 cpu/m0/start.o
- .data 0x000000002030565c 0x0 lib/libarm.a(board.o)
- .data 0x000000002030565c 0x0 lib/libarm.a(string.o)
- .data 0x000000002030565c 0x0 drivers/libdrivers.a(ddr.o)
- .data 0x000000002030565c 0x0 drivers/libdrivers.a(uart.o)
- .data 0x000000002030565c 0x0 drivers/libdrivers.a(image.o)
- .data 0x000000002030565c 0x0 drivers/libdrivers.a(secure_verify.o)
- .data 0x000000002030565c 0x0 drivers/libdrivers.a(spifc_loader2.o)
- .data 0x000000002030565c 0x40 drivers/libdrivers.a(bbt.o)
- .data 0x000000002030569c 0x40 drivers/libdrivers.a(sha256.o)
- .data 0x00000000203056dc 0x50 drivers/libdrivers.a(nor.o)
- 0x00000000203056dc nor_cmd_table
- .data 0x000000002030572c 0x0 drivers/libdrivers.a(drv_hash.o)
- .data 0x000000002030572c 0x0 drivers/libdrivers.a(drv_rsa.o)
- .data 0x000000002030572c 0x0 drivers/libdrivers.a(flash.o)
- .data 0x000000002030572c 0x0 drivers/libdrivers.a(efuse.o)
- .data 0x000000002030572c 0x0 cpu/m0/libm0.a(cpu.o)
+ .data 0x00000000203057ac 0x0 cpu/m0/start.o
+ .data 0x00000000203057ac 0x0 lib/libarm.a(board.o)
+ .data 0x00000000203057ac 0x0 lib/libarm.a(string.o)
+ .data 0x00000000203057ac 0x0 drivers/libdrivers.a(ddr.o)
+ .data 0x00000000203057ac 0x0 drivers/libdrivers.a(uart.o)
+ .data 0x00000000203057ac 0x0 drivers/libdrivers.a(image.o)
+ .data 0x00000000203057ac 0x0 drivers/libdrivers.a(secure_verify.o)
+ .data 0x00000000203057ac 0x0 drivers/libdrivers.a(spifc_loader2.o)
+ .data 0x00000000203057ac 0x40 drivers/libdrivers.a(bbt.o)
+ .data 0x00000000203057ec 0x40 drivers/libdrivers.a(sha256.o)
+ .data 0x000000002030582c 0x50 drivers/libdrivers.a(nor.o)
+ 0x000000002030582c nor_cmd_table
+ .data 0x000000002030587c 0x0 drivers/libdrivers.a(drv_hash.o)
+ .data 0x000000002030587c 0x0 drivers/libdrivers.a(drv_rsa.o)
+ .data 0x000000002030587c 0x0 drivers/libdrivers.a(flash.o)
+ .data 0x000000002030587c 0x0 drivers/libdrivers.a(efuse.o)
+ .data 0x000000002030587c 0x0 cpu/m0/libm0.a(cpu.o)
-.igot.plt 0x000000002030572c 0x0
+.igot.plt 0x000000002030587c 0x0
.igot.plt 0x0000000000000000 0x0 cpu/m0/start.o
- 0x000000002030572c . = ALIGN (0x4)
+ 0x000000002030587c . = ALIGN (0x4)
.got
*(.got)
- 0x000000002030572c . = ALIGN (0x4)
- 0x000000002030572c __bss_start = .
+ 0x000000002030587c . = ALIGN (0x4)
+ 0x000000002030587c __bss_start = .
-.bss 0x000000002030572c 0x1e8
+.bss 0x000000002030587c 0x1e8
*(.bss)
- .bss 0x000000002030572c 0x0 cpu/m0/start.o
- .bss 0x000000002030572c 0x4 lib/libarm.a(board.o)
- 0x000000002030572c zloader_entry_point
- .bss 0x0000000020305730 0x0 lib/libarm.a(string.o)
- .bss 0x0000000020305730 0x0 drivers/libdrivers.a(ddr.o)
- .bss 0x0000000020305730 0x0 drivers/libdrivers.a(uart.o)
- .bss 0x0000000020305730 0x0 drivers/libdrivers.a(image.o)
- .bss 0x0000000020305730 0x104 drivers/libdrivers.a(secure_verify.o)
- 0x0000000020305730 result
- .bss 0x0000000020305834 0x4 drivers/libdrivers.a(spifc_loader2.o)
- .bss 0x0000000020305838 0x80 drivers/libdrivers.a(bbt.o)
- .bss 0x00000000203058b8 0x0 drivers/libdrivers.a(sha256.o)
- .bss 0x00000000203058b8 0x28 drivers/libdrivers.a(nor.o)
- 0x00000000203058b8 spi_nor_flash
- 0x00000000203058bc otp_data
- .bss 0x00000000203058e0 0x0 drivers/libdrivers.a(drv_hash.o)
- .bss 0x00000000203058e0 0x0 drivers/libdrivers.a(drv_rsa.o)
- .bss 0x00000000203058e0 0x24 drivers/libdrivers.a(flash.o)
- 0x00000000203058e0 flash
- .bss 0x0000000020305904 0x0 drivers/libdrivers.a(efuse.o)
- .bss 0x0000000020305904 0x10 cpu/m0/libm0.a(cpu.o)
- 0x0000000020305904 g_tick
- 0x0000000020305914 __bss_end = .
- 0x0000000020305914 . = ALIGN (0x4)
+ .bss 0x000000002030587c 0x0 cpu/m0/start.o
+ .bss 0x000000002030587c 0x4 lib/libarm.a(board.o)
+ 0x000000002030587c zloader_entry_point
+ .bss 0x0000000020305880 0x0 lib/libarm.a(string.o)
+ .bss 0x0000000020305880 0x0 drivers/libdrivers.a(ddr.o)
+ .bss 0x0000000020305880 0x0 drivers/libdrivers.a(uart.o)
+ .bss 0x0000000020305880 0x0 drivers/libdrivers.a(image.o)
+ .bss 0x0000000020305880 0x104 drivers/libdrivers.a(secure_verify.o)
+ 0x0000000020305880 result
+ .bss 0x0000000020305984 0x4 drivers/libdrivers.a(spifc_loader2.o)
+ .bss 0x0000000020305988 0x80 drivers/libdrivers.a(bbt.o)
+ .bss 0x0000000020305a08 0x0 drivers/libdrivers.a(sha256.o)
+ .bss 0x0000000020305a08 0x28 drivers/libdrivers.a(nor.o)
+ 0x0000000020305a08 spi_nor_flash
+ 0x0000000020305a0c otp_data
+ .bss 0x0000000020305a30 0x0 drivers/libdrivers.a(drv_hash.o)
+ .bss 0x0000000020305a30 0x0 drivers/libdrivers.a(drv_rsa.o)
+ .bss 0x0000000020305a30 0x24 drivers/libdrivers.a(flash.o)
+ 0x0000000020305a30 flash
+ .bss 0x0000000020305a54 0x0 drivers/libdrivers.a(efuse.o)
+ .bss 0x0000000020305a54 0x10 cpu/m0/libm0.a(cpu.o)
+ 0x0000000020305a54 g_tick
+ 0x0000000020305a64 __bss_end = .
+ 0x0000000020305a64 . = ALIGN (0x4)
-.para 0x0000000082000000 0x0 加载地址 0x0000000020305914
+.para 0x0000000082000000 0x0 加载地址 0x0000000020305a64
0x0000000082000000 __para_start = .
*(.para)
0x0000000082000000 __para_end = .
@@ -356,22 +356,22 @@
.stabstr 0x0000000000000000 0x67
.stabstr 0x0000000000000000 0x67 cpu/m0/start.o
-.debug_info 0x0000000000000000 0x65ab
- .debug_info 0x0000000000000000 0x9a2 lib/libarm.a(board.o)
- .debug_info 0x00000000000009a2 0x22b lib/libarm.a(string.o)
- .debug_info 0x0000000000000bcd 0x329 drivers/libdrivers.a(ddr.o)
- .debug_info 0x0000000000000ef6 0x2a0 drivers/libdrivers.a(uart.o)
- .debug_info 0x0000000000001196 0xdd6 drivers/libdrivers.a(image.o)
- .debug_info 0x0000000000001f6c 0xb01 drivers/libdrivers.a(secure_verify.o)
- .debug_info 0x0000000000002a6d 0x1661 drivers/libdrivers.a(spifc_loader2.o)
- .debug_info 0x00000000000040ce 0x70f drivers/libdrivers.a(bbt.o)
- .debug_info 0x00000000000047dd 0x586 drivers/libdrivers.a(sha256.o)
- .debug_info 0x0000000000004d63 0xd5f drivers/libdrivers.a(nor.o)
- .debug_info 0x0000000000005ac2 0x1e8 drivers/libdrivers.a(drv_hash.o)
- .debug_info 0x0000000000005caa 0x3b4 drivers/libdrivers.a(drv_rsa.o)
- .debug_info 0x000000000000605e 0x20f drivers/libdrivers.a(flash.o)
- .debug_info 0x000000000000626d 0x1c3 drivers/libdrivers.a(efuse.o)
- .debug_info 0x0000000000006430 0x17b cpu/m0/libm0.a(cpu.o)
+.debug_info 0x0000000000000000 0x66af
+ .debug_info 0x0000000000000000 0xaa6 lib/libarm.a(board.o)
+ .debug_info 0x0000000000000aa6 0x22b lib/libarm.a(string.o)
+ .debug_info 0x0000000000000cd1 0x329 drivers/libdrivers.a(ddr.o)
+ .debug_info 0x0000000000000ffa 0x2a0 drivers/libdrivers.a(uart.o)
+ .debug_info 0x000000000000129a 0xdd6 drivers/libdrivers.a(image.o)
+ .debug_info 0x0000000000002070 0xb01 drivers/libdrivers.a(secure_verify.o)
+ .debug_info 0x0000000000002b71 0x1661 drivers/libdrivers.a(spifc_loader2.o)
+ .debug_info 0x00000000000041d2 0x70f drivers/libdrivers.a(bbt.o)
+ .debug_info 0x00000000000048e1 0x586 drivers/libdrivers.a(sha256.o)
+ .debug_info 0x0000000000004e67 0xd5f drivers/libdrivers.a(nor.o)
+ .debug_info 0x0000000000005bc6 0x1e8 drivers/libdrivers.a(drv_hash.o)
+ .debug_info 0x0000000000005dae 0x3b4 drivers/libdrivers.a(drv_rsa.o)
+ .debug_info 0x0000000000006162 0x20f drivers/libdrivers.a(flash.o)
+ .debug_info 0x0000000000006371 0x1c3 drivers/libdrivers.a(efuse.o)
+ .debug_info 0x0000000000006534 0x17b cpu/m0/libm0.a(cpu.o)
.debug_abbrev 0x0000000000000000 0x1c94
.debug_abbrev 0x0000000000000000 0x304 lib/libarm.a(board.o)
@@ -390,22 +390,22 @@
.debug_abbrev 0x0000000000001aaf 0x11d drivers/libdrivers.a(efuse.o)
.debug_abbrev 0x0000000000001bcc 0xc8 cpu/m0/libm0.a(cpu.o)
-.debug_loc 0x0000000000000000 0x9737
- .debug_loc 0x0000000000000000 0x345 lib/libarm.a(board.o)
- .debug_loc 0x0000000000000345 0x29d lib/libarm.a(string.o)
- .debug_loc 0x00000000000005e2 0x2d8 drivers/libdrivers.a(ddr.o)
- .debug_loc 0x00000000000008ba 0x228 drivers/libdrivers.a(uart.o)
- .debug_loc 0x0000000000000ae2 0x6a2 drivers/libdrivers.a(image.o)
- .debug_loc 0x0000000000001184 0x790 drivers/libdrivers.a(secure_verify.o)
- .debug_loc 0x0000000000001914 0xef4 drivers/libdrivers.a(spifc_loader2.o)
- .debug_loc 0x0000000000002808 0x282 drivers/libdrivers.a(bbt.o)
- .debug_loc 0x0000000000002a8a 0x5f3f drivers/libdrivers.a(sha256.o)
- .debug_loc 0x00000000000089c9 0x80a drivers/libdrivers.a(nor.o)
- .debug_loc 0x00000000000091d3 0x1b8 drivers/libdrivers.a(drv_hash.o)
- .debug_loc 0x000000000000938b 0x238 drivers/libdrivers.a(drv_rsa.o)
- .debug_loc 0x00000000000095c3 0x1f drivers/libdrivers.a(flash.o)
- .debug_loc 0x00000000000095e2 0xab drivers/libdrivers.a(efuse.o)
- .debug_loc 0x000000000000968d 0xaa cpu/m0/libm0.a(cpu.o)
+.debug_loc 0x0000000000000000 0x9807
+ .debug_loc 0x0000000000000000 0x415 lib/libarm.a(board.o)
+ .debug_loc 0x0000000000000415 0x29d lib/libarm.a(string.o)
+ .debug_loc 0x00000000000006b2 0x2d8 drivers/libdrivers.a(ddr.o)
+ .debug_loc 0x000000000000098a 0x228 drivers/libdrivers.a(uart.o)
+ .debug_loc 0x0000000000000bb2 0x6a2 drivers/libdrivers.a(image.o)
+ .debug_loc 0x0000000000001254 0x790 drivers/libdrivers.a(secure_verify.o)
+ .debug_loc 0x00000000000019e4 0xef4 drivers/libdrivers.a(spifc_loader2.o)
+ .debug_loc 0x00000000000028d8 0x282 drivers/libdrivers.a(bbt.o)
+ .debug_loc 0x0000000000002b5a 0x5f3f drivers/libdrivers.a(sha256.o)
+ .debug_loc 0x0000000000008a99 0x80a drivers/libdrivers.a(nor.o)
+ .debug_loc 0x00000000000092a3 0x1b8 drivers/libdrivers.a(drv_hash.o)
+ .debug_loc 0x000000000000945b 0x238 drivers/libdrivers.a(drv_rsa.o)
+ .debug_loc 0x0000000000009693 0x1f drivers/libdrivers.a(flash.o)
+ .debug_loc 0x00000000000096b2 0xab drivers/libdrivers.a(efuse.o)
+ .debug_loc 0x000000000000975d 0xaa cpu/m0/libm0.a(cpu.o)
.debug_aranges 0x0000000000000000 0x1e0
.debug_aranges
@@ -449,53 +449,53 @@
.debug_ranges 0x00000000000001d8 0x28 drivers/libdrivers.a(drv_hash.o)
.debug_ranges 0x0000000000000200 0x38 drivers/libdrivers.a(drv_rsa.o)
-.debug_line 0x0000000000000000 0x203f
- .debug_line 0x0000000000000000 0x3a4 lib/libarm.a(board.o)
- .debug_line 0x00000000000003a4 0x152 lib/libarm.a(string.o)
- .debug_line 0x00000000000004f6 0x299 drivers/libdrivers.a(ddr.o)
- .debug_line 0x000000000000078f 0x112 drivers/libdrivers.a(uart.o)
- .debug_line 0x00000000000008a1 0x3b8 drivers/libdrivers.a(image.o)
- .debug_line 0x0000000000000c59 0x38e drivers/libdrivers.a(secure_verify.o)
- .debug_line 0x0000000000000fe7 0x442 drivers/libdrivers.a(spifc_loader2.o)
- .debug_line 0x0000000000001429 0x251 drivers/libdrivers.a(bbt.o)
- .debug_line 0x000000000000167a 0x2bb drivers/libdrivers.a(sha256.o)
- .debug_line 0x0000000000001935 0x2a2 drivers/libdrivers.a(nor.o)
- .debug_line 0x0000000000001bd7 0x88 drivers/libdrivers.a(drv_hash.o)
- .debug_line 0x0000000000001c5f 0x117 drivers/libdrivers.a(drv_rsa.o)
- .debug_line 0x0000000000001d76 0x10a drivers/libdrivers.a(flash.o)
- .debug_line 0x0000000000001e80 0x118 drivers/libdrivers.a(efuse.o)
- .debug_line 0x0000000000001f98 0xa7 cpu/m0/libm0.a(cpu.o)
+.debug_line 0x0000000000000000 0x2078
+ .debug_line 0x0000000000000000 0x3dd lib/libarm.a(board.o)
+ .debug_line 0x00000000000003dd 0x152 lib/libarm.a(string.o)
+ .debug_line 0x000000000000052f 0x299 drivers/libdrivers.a(ddr.o)
+ .debug_line 0x00000000000007c8 0x112 drivers/libdrivers.a(uart.o)
+ .debug_line 0x00000000000008da 0x3b8 drivers/libdrivers.a(image.o)
+ .debug_line 0x0000000000000c92 0x38e drivers/libdrivers.a(secure_verify.o)
+ .debug_line 0x0000000000001020 0x442 drivers/libdrivers.a(spifc_loader2.o)
+ .debug_line 0x0000000000001462 0x251 drivers/libdrivers.a(bbt.o)
+ .debug_line 0x00000000000016b3 0x2bb drivers/libdrivers.a(sha256.o)
+ .debug_line 0x000000000000196e 0x2a2 drivers/libdrivers.a(nor.o)
+ .debug_line 0x0000000000001c10 0x88 drivers/libdrivers.a(drv_hash.o)
+ .debug_line 0x0000000000001c98 0x117 drivers/libdrivers.a(drv_rsa.o)
+ .debug_line 0x0000000000001daf 0x10a drivers/libdrivers.a(flash.o)
+ .debug_line 0x0000000000001eb9 0x118 drivers/libdrivers.a(efuse.o)
+ .debug_line 0x0000000000001fd1 0xa7 cpu/m0/libm0.a(cpu.o)
-.debug_str 0x0000000000000000 0x160a
- .debug_str 0x0000000000000000 0x55d lib/libarm.a(board.o)
- 0x5d3 (松开之前的大小)
- .debug_str 0x000000000000055d 0x3f lib/libarm.a(string.o)
+.debug_str 0x0000000000000000 0x1616
+ .debug_str 0x0000000000000000 0x569 lib/libarm.a(board.o)
+ 0x5df (松开之前的大小)
+ .debug_str 0x0000000000000569 0x3f lib/libarm.a(string.o)
0x214 (松开之前的大小)
- .debug_str 0x000000000000059c 0xa2 drivers/libdrivers.a(ddr.o)
+ .debug_str 0x00000000000005a8 0xa2 drivers/libdrivers.a(ddr.o)
0x216 (松开之前的大小)
- .debug_str 0x000000000000063e 0x94 drivers/libdrivers.a(uart.o)
+ .debug_str 0x000000000000064a 0x94 drivers/libdrivers.a(uart.o)
0x253 (松开之前的大小)
- .debug_str 0x00000000000006d2 0x35b drivers/libdrivers.a(image.o)
+ .debug_str 0x00000000000006de 0x35b drivers/libdrivers.a(image.o)
0x854 (松开之前的大小)
- .debug_str 0x0000000000000a2d 0x2f9 drivers/libdrivers.a(secure_verify.o)
+ .debug_str 0x0000000000000a39 0x2f9 drivers/libdrivers.a(secure_verify.o)
0x61f (松开之前的大小)
- .debug_str 0x0000000000000d26 0x3bb drivers/libdrivers.a(spifc_loader2.o)
+ .debug_str 0x0000000000000d32 0x3bb drivers/libdrivers.a(spifc_loader2.o)
0x6c1 (松开之前的大小)
- .debug_str 0x00000000000010e1 0x103 drivers/libdrivers.a(bbt.o)
+ .debug_str 0x00000000000010ed 0x103 drivers/libdrivers.a(bbt.o)
0x3fe (松开之前的大小)
- .debug_str 0x00000000000011e4 0xc3 drivers/libdrivers.a(sha256.o)
+ .debug_str 0x00000000000011f0 0xc3 drivers/libdrivers.a(sha256.o)
0x2b7 (松开之前的大小)
- .debug_str 0x00000000000012a7 0x1ad drivers/libdrivers.a(nor.o)
+ .debug_str 0x00000000000012b3 0x1ad drivers/libdrivers.a(nor.o)
0x5f3 (松开之前的大小)
- .debug_str 0x0000000000001454 0x87 drivers/libdrivers.a(drv_hash.o)
+ .debug_str 0x0000000000001460 0x87 drivers/libdrivers.a(drv_hash.o)
0x25a (松开之前的大小)
- .debug_str 0x00000000000014db 0x79 drivers/libdrivers.a(drv_rsa.o)
+ .debug_str 0x00000000000014e7 0x79 drivers/libdrivers.a(drv_rsa.o)
0x29c (松开之前的大小)
- .debug_str 0x0000000000001554 0x12 drivers/libdrivers.a(flash.o)
+ .debug_str 0x0000000000001560 0x12 drivers/libdrivers.a(flash.o)
0x2a8 (松开之前的大小)
- .debug_str 0x0000000000001566 0x20 drivers/libdrivers.a(efuse.o)
+ .debug_str 0x0000000000001572 0x20 drivers/libdrivers.a(efuse.o)
0x255 (松开之前的大小)
- .debug_str 0x0000000000001586 0x84 cpu/m0/libm0.a(cpu.o)
+ .debug_str 0x0000000000001592 0x84 cpu/m0/libm0.a(cpu.o)
0x1f8 (松开之前的大小)
.debug_frame 0x0000000000000000 0xaf0
diff --git a/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/loader2.bin b/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/loader2.bin
index 16a20a9..dc24875 100755
--- a/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/loader2.bin
+++ b/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/loader2.bin
Binary files differ
diff --git a/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load b/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load
index 0134c20..449447a 100755
--- a/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load
+++ b/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load
Binary files differ
diff --git a/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load.map b/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load.map
index 72c0ac3..71722dc 100755
--- a/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load.map
+++ b/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load.map
@@ -300,20 +300,20 @@
.stabstr 0x0000000000000000 0x67
.stabstr 0x0000000000000000 0x67 cpu/m0/start.o
-.debug_info 0x0000000000000000 0x34d5
- .debug_info 0x0000000000000000 0x70e lib/libarm.a(board.o)
- .debug_info 0x000000000000070e 0x22b lib/libarm.a(string.o)
- .debug_info 0x0000000000000939 0x329 drivers/libdrivers.a(ddr.o)
- .debug_info 0x0000000000000c62 0x2a0 drivers/libdrivers.a(uart.o)
- .debug_info 0x0000000000000f02 0x6d3 drivers/libdrivers.a(image.o)
- .debug_info 0x00000000000015d5 0x1c3 drivers/libdrivers.a(efuse.o)
- .debug_info 0x0000000000001798 0x62d drivers/libdrivers.a(secure_verify.o)
- .debug_info 0x0000000000001dc5 0xd5f drivers/libdrivers.a(nor.o)
- .debug_info 0x0000000000002b24 0x1e8 drivers/libdrivers.a(drv_hash.o)
- .debug_info 0x0000000000002d0c 0x3b4 drivers/libdrivers.a(drv_rsa.o)
- .debug_info 0x00000000000030c0 0x20f drivers/libdrivers.a(flash.o)
- .debug_info 0x00000000000032cf 0x17b cpu/m0/libm0.a(cpu.o)
- .debug_info 0x000000000000344a 0x8b cpu/m0/libm0.a(clk.o)
+.debug_info 0x0000000000000000 0x34e2
+ .debug_info 0x0000000000000000 0x71b lib/libarm.a(board.o)
+ .debug_info 0x000000000000071b 0x22b lib/libarm.a(string.o)
+ .debug_info 0x0000000000000946 0x329 drivers/libdrivers.a(ddr.o)
+ .debug_info 0x0000000000000c6f 0x2a0 drivers/libdrivers.a(uart.o)
+ .debug_info 0x0000000000000f0f 0x6d3 drivers/libdrivers.a(image.o)
+ .debug_info 0x00000000000015e2 0x1c3 drivers/libdrivers.a(efuse.o)
+ .debug_info 0x00000000000017a5 0x62d drivers/libdrivers.a(secure_verify.o)
+ .debug_info 0x0000000000001dd2 0xd5f drivers/libdrivers.a(nor.o)
+ .debug_info 0x0000000000002b31 0x1e8 drivers/libdrivers.a(drv_hash.o)
+ .debug_info 0x0000000000002d19 0x3b4 drivers/libdrivers.a(drv_rsa.o)
+ .debug_info 0x00000000000030cd 0x20f drivers/libdrivers.a(flash.o)
+ .debug_info 0x00000000000032dc 0x17b cpu/m0/libm0.a(cpu.o)
+ .debug_info 0x0000000000003457 0x8b cpu/m0/libm0.a(clk.o)
.debug_abbrev 0x0000000000000000 0x12c2
.debug_abbrev 0x0000000000000000 0x2b8 lib/libarm.a(board.o)
@@ -395,32 +395,32 @@
.debug_line 0x000000000000132b 0xa7 cpu/m0/libm0.a(cpu.o)
.debug_line 0x00000000000013d2 0x61 cpu/m0/libm0.a(clk.o)
-.debug_str 0x0000000000000000 0xebb
- .debug_str 0x0000000000000000 0x4d5 lib/libarm.a(board.o)
- 0x554 (松开之前的大小)
- .debug_str 0x00000000000004d5 0x4c lib/libarm.a(string.o)
+.debug_str 0x0000000000000000 0xec7
+ .debug_str 0x0000000000000000 0x4e1 lib/libarm.a(board.o)
+ 0x560 (松开之前的大小)
+ .debug_str 0x00000000000004e1 0x4c lib/libarm.a(string.o)
0x214 (松开之前的大小)
- .debug_str 0x0000000000000521 0xa1 drivers/libdrivers.a(ddr.o)
+ .debug_str 0x000000000000052d 0xa1 drivers/libdrivers.a(ddr.o)
0x216 (松开之前的大小)
- .debug_str 0x00000000000005c2 0x8a drivers/libdrivers.a(uart.o)
+ .debug_str 0x00000000000005ce 0x8a drivers/libdrivers.a(uart.o)
0x253 (松开之前的大小)
- .debug_str 0x000000000000064c 0x229 drivers/libdrivers.a(image.o)
+ .debug_str 0x0000000000000658 0x229 drivers/libdrivers.a(image.o)
0x4a0 (松开之前的大小)
- .debug_str 0x0000000000000875 0x7b drivers/libdrivers.a(efuse.o)
+ .debug_str 0x0000000000000881 0x7b drivers/libdrivers.a(efuse.o)
0x255 (松开之前的大小)
- .debug_str 0x00000000000008f0 0x177 drivers/libdrivers.a(secure_verify.o)
+ .debug_str 0x00000000000008fc 0x177 drivers/libdrivers.a(secure_verify.o)
0x407 (松开之前的大小)
- .debug_str 0x0000000000000a67 0x2c3 drivers/libdrivers.a(nor.o)
+ .debug_str 0x0000000000000a73 0x2c3 drivers/libdrivers.a(nor.o)
0x5f3 (松开之前的大小)
- .debug_str 0x0000000000000d2a 0x87 drivers/libdrivers.a(drv_hash.o)
+ .debug_str 0x0000000000000d36 0x87 drivers/libdrivers.a(drv_hash.o)
0x25a (松开之前的大小)
- .debug_str 0x0000000000000db1 0x79 drivers/libdrivers.a(drv_rsa.o)
+ .debug_str 0x0000000000000dbd 0x79 drivers/libdrivers.a(drv_rsa.o)
0x29c (松开之前的大小)
- .debug_str 0x0000000000000e2a 0x12 drivers/libdrivers.a(flash.o)
+ .debug_str 0x0000000000000e36 0x12 drivers/libdrivers.a(flash.o)
0x2a8 (松开之前的大小)
- .debug_str 0x0000000000000e3c 0x79 cpu/m0/libm0.a(cpu.o)
+ .debug_str 0x0000000000000e48 0x79 cpu/m0/libm0.a(cpu.o)
0x1f8 (松开之前的大小)
- .debug_str 0x0000000000000eb5 0x6 cpu/m0/libm0.a(clk.o)
+ .debug_str 0x0000000000000ec1 0x6 cpu/m0/libm0.a(clk.o)
0x1bd (松开之前的大小)
.debug_frame 0x0000000000000000 0x6a0
diff --git a/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load2 b/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load2
index cbc092e..44de20a 100755
--- a/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load2
+++ b/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load2
Binary files differ
diff --git a/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load2.map b/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load2.map
index 69d87e4..d4b4270 100755
--- a/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load2.map
+++ b/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load2.map
@@ -34,7 +34,7 @@
0x0000000000000000 . = 0x0
0x0000000000000000 . = ALIGN (0x4)
-.text 0x0000000020300000 0x4d44
+.text 0x0000000020300000 0x4e0c
cpu/m0/start.o(.text)
.text 0x0000000020300000 0x220 cpu/m0/start.o
0x00000000203001a4 _bss_start
@@ -44,7 +44,7 @@
0x00000000203001b8 _start
0x00000000203001fe run_at
*(.text)
- .text 0x0000000020300220 0x454 lib/libarm.a(board.o)
+ .text 0x0000000020300220 0x51c lib/libarm.a(board.o)
0x0000000020300220 print_info
0x0000000020300230 copy_to_iram1
0x0000000020300250 clear_iram
@@ -55,201 +55,201 @@
0x0000000020300338 pmu_read
0x0000000020300404 pmu_write
0x00000000203004d0 start_armboot
- .text 0x0000000020300674 0x80 lib/libarm.a(string.o)
- 0x0000000020300674 strlen
- 0x0000000020300684 memset
- 0x00000000203006c6 memcmp
- 0x00000000203006e2 memcpy
- .text 0x00000000203006f4 0x138 drivers/libdrivers.a(uart.o)
- 0x00000000203006f4 uart_init
- 0x0000000020300774 uart_putc
- 0x000000002030079c uart_puts
- 0x00000000203007b0 uart_getc
- 0x00000000203007cc uart_tstc
- 0x00000000203007dc UART_Read
- 0x00000000203007f8 UART_Write
- 0x0000000020300814 UART_Check_Sync
- .text 0x000000002030082c 0x338 drivers/libdrivers.a(image.o)
- 0x0000000020300830 page_align
- 0x0000000020300848 find_partition_para
- 0x0000000020300878 read_image_part_offset
- 0x00000000203008cc read_flags_image
- 0x00000000203009b4 read_uboot_image
- 0x0000000020300a94 nand_read_m0
- 0x0000000020300b00 read_zloader_image
- .text 0x0000000020300b64 0x2b0 drivers/libdrivers.a(secure_verify.o)
- 0x0000000020300b82 BIG2SMALL
- 0x0000000020300bb2 bin2hex
- 0x0000000020300bfc secure_verify_zloader
- 0x0000000020300cf0 SecureVerify
- .text 0x0000000020300e14 0x648 drivers/libdrivers.a(spifc_loader2.o)
- 0x0000000020300f08 zDrvGpio_SetFunc
- 0x0000000020300f40 zDrvGpio_SetDirection
- 0x0000000020300f90 zDrvGpio_SetOutputValue
- 0x0000000020300fcc spi_nand_cs
- 0x0000000020301008 spifc_clear_fifo
- 0x000000002030101c spifc_clear_int
- 0x0000000020301178 spifc_read_oob
- 0x00000000203011bc spifc_read_page_raw
- 0x00000000203011f8 spifc_read_page
- 0x0000000020301274 spifc_read
- 0x00000000203012b8 read_data
- 0x000000002030130c read_id
- 0x0000000020301390 spifc_init
- 0x0000000020301414 zloader_flash_init
- .text 0x000000002030145c 0x1c0 drivers/libdrivers.a(bbt.o)
- 0x00000000203014bc nand_creat_ram_bbt
- 0x0000000020301500 nand_search_bbt
- 0x000000002030158c nand_creat_bbt
- 0x0000000020301608 nand_block_isbad
- .text 0x000000002030161c 0x2688 drivers/libdrivers.a(sha256.o)
- 0x0000000020303b3c sha256_starts
- 0x0000000020303b84 sha256_update
- 0x0000000020303b90 sha256_finish
- 0x0000000020303c7c sha256_csum_wd
- .text 0x0000000020303ca4 0x424 drivers/libdrivers.a(nor.o)
- 0x0000000020303ca4 spifc_enable
- 0x0000000020303cd4 spifc_disable
- 0x0000000020303cf8 spifc_setup_cmd
- 0x0000000020303d7c spifc_wait_cmd_end
- 0x0000000020303da8 spifc_read_fifo
- 0x0000000020303de4 spifc_start
- 0x0000000020303df4 cmd_seek
- 0x0000000020303e14 nor_read_reg
- 0x0000000020303e74 nor_read_id
- 0x0000000020303edc spi_nor_read
- 0x0000000020303f38 nor_read
- 0x0000000020303f8c spi_nor_read_security_register
- 0x0000000020303fe8 nor_read_security_register
- 0x000000002030403c nor_init
- 0x000000002030408c board_flash_init
- .text 0x00000000203040c8 0x82c drivers/libdrivers.a(ddr.o)
- 0x00000000203040c8 nsdelay
- 0x00000000203040e2 ddr_clk_init
- 0x00000000203040f8 ddr_phy_init
- 0x00000000203041f4 ddr_ctrl_init
- 0x00000000203045b0 ddr_prio_init
- 0x00000000203046d4 ddr_init
- .text 0x00000000203048f4 0xa4 drivers/libdrivers.a(drv_hash.o)
- 0x00000000203048f4 Hash_Calculate
- .text 0x0000000020304998 0x174 drivers/libdrivers.a(drv_rsa.o)
- 0x00000000203049b2 Rsa_Calculate
- .text 0x0000000020304b0c 0x28 drivers/libdrivers.a(flash.o)
- 0x0000000020304b0c get_boot_mode
- .text 0x0000000020304b34 0x1bc drivers/libdrivers.a(efuse.o)
- 0x0000000020304b34 efuse_init
- 0x0000000020304b58 get_ddr_flag
- 0x0000000020304c78 get_secure_verify_status
- 0x0000000020304cbc get_otp_secure_verify_status
- .text 0x0000000020304cf0 0x54 cpu/m0/libm0.a(cpu.o)
- 0x0000000020304cf0 timer_init
- 0x0000000020304d08 usdelay
+ .text 0x000000002030073c 0x80 lib/libarm.a(string.o)
+ 0x000000002030073c strlen
+ 0x000000002030074c memset
+ 0x000000002030078e memcmp
+ 0x00000000203007aa memcpy
+ .text 0x00000000203007bc 0x138 drivers/libdrivers.a(uart.o)
+ 0x00000000203007bc uart_init
+ 0x000000002030083c uart_putc
+ 0x0000000020300864 uart_puts
+ 0x0000000020300878 uart_getc
+ 0x0000000020300894 uart_tstc
+ 0x00000000203008a4 UART_Read
+ 0x00000000203008c0 UART_Write
+ 0x00000000203008dc UART_Check_Sync
+ .text 0x00000000203008f4 0x338 drivers/libdrivers.a(image.o)
+ 0x00000000203008f8 page_align
+ 0x0000000020300910 find_partition_para
+ 0x0000000020300940 read_image_part_offset
+ 0x0000000020300994 read_flags_image
+ 0x0000000020300a7c read_uboot_image
+ 0x0000000020300b5c nand_read_m0
+ 0x0000000020300bc8 read_zloader_image
+ .text 0x0000000020300c2c 0x2b0 drivers/libdrivers.a(secure_verify.o)
+ 0x0000000020300c4a BIG2SMALL
+ 0x0000000020300c7a bin2hex
+ 0x0000000020300cc4 secure_verify_zloader
+ 0x0000000020300db8 SecureVerify
+ .text 0x0000000020300edc 0x648 drivers/libdrivers.a(spifc_loader2.o)
+ 0x0000000020300fd0 zDrvGpio_SetFunc
+ 0x0000000020301008 zDrvGpio_SetDirection
+ 0x0000000020301058 zDrvGpio_SetOutputValue
+ 0x0000000020301094 spi_nand_cs
+ 0x00000000203010d0 spifc_clear_fifo
+ 0x00000000203010e4 spifc_clear_int
+ 0x0000000020301240 spifc_read_oob
+ 0x0000000020301284 spifc_read_page_raw
+ 0x00000000203012c0 spifc_read_page
+ 0x000000002030133c spifc_read
+ 0x0000000020301380 read_data
+ 0x00000000203013d4 read_id
+ 0x0000000020301458 spifc_init
+ 0x00000000203014dc zloader_flash_init
+ .text 0x0000000020301524 0x1c0 drivers/libdrivers.a(bbt.o)
+ 0x0000000020301584 nand_creat_ram_bbt
+ 0x00000000203015c8 nand_search_bbt
+ 0x0000000020301654 nand_creat_bbt
+ 0x00000000203016d0 nand_block_isbad
+ .text 0x00000000203016e4 0x2688 drivers/libdrivers.a(sha256.o)
+ 0x0000000020303c04 sha256_starts
+ 0x0000000020303c4c sha256_update
+ 0x0000000020303c58 sha256_finish
+ 0x0000000020303d44 sha256_csum_wd
+ .text 0x0000000020303d6c 0x424 drivers/libdrivers.a(nor.o)
+ 0x0000000020303d6c spifc_enable
+ 0x0000000020303d9c spifc_disable
+ 0x0000000020303dc0 spifc_setup_cmd
+ 0x0000000020303e44 spifc_wait_cmd_end
+ 0x0000000020303e70 spifc_read_fifo
+ 0x0000000020303eac spifc_start
+ 0x0000000020303ebc cmd_seek
+ 0x0000000020303edc nor_read_reg
+ 0x0000000020303f3c nor_read_id
+ 0x0000000020303fa4 spi_nor_read
+ 0x0000000020304000 nor_read
+ 0x0000000020304054 spi_nor_read_security_register
+ 0x00000000203040b0 nor_read_security_register
+ 0x0000000020304104 nor_init
+ 0x0000000020304154 board_flash_init
+ .text 0x0000000020304190 0x82c drivers/libdrivers.a(ddr.o)
+ 0x0000000020304190 nsdelay
+ 0x00000000203041aa ddr_clk_init
+ 0x00000000203041c0 ddr_phy_init
+ 0x00000000203042bc ddr_ctrl_init
+ 0x0000000020304678 ddr_prio_init
+ 0x000000002030479c ddr_init
+ .text 0x00000000203049bc 0xa4 drivers/libdrivers.a(drv_hash.o)
+ 0x00000000203049bc Hash_Calculate
+ .text 0x0000000020304a60 0x174 drivers/libdrivers.a(drv_rsa.o)
+ 0x0000000020304a7a Rsa_Calculate
+ .text 0x0000000020304bd4 0x28 drivers/libdrivers.a(flash.o)
+ 0x0000000020304bd4 get_boot_mode
+ .text 0x0000000020304bfc 0x1bc drivers/libdrivers.a(efuse.o)
+ 0x0000000020304bfc efuse_init
+ 0x0000000020304c20 get_ddr_flag
+ 0x0000000020304d40 get_secure_verify_status
+ 0x0000000020304d84 get_otp_secure_verify_status
+ .text 0x0000000020304db8 0x54 cpu/m0/libm0.a(cpu.o)
+ 0x0000000020304db8 timer_init
+ 0x0000000020304dd0 usdelay
-.glue_7 0x0000000020304d44 0x0
+.glue_7 0x0000000020304e0c 0x0
.glue_7 0x0000000000000000 0x0 linker stubs
-.glue_7t 0x0000000020304d44 0x0
+.glue_7t 0x0000000020304e0c 0x0
.glue_7t 0x0000000000000000 0x0 linker stubs
-.vfp11_veneer 0x0000000020304d44 0x0
+.vfp11_veneer 0x0000000020304e0c 0x0
.vfp11_veneer 0x0000000000000000 0x0 linker stubs
-.v4_bx 0x0000000020304d44 0x0
+.v4_bx 0x0000000020304e0c 0x0
.v4_bx 0x0000000000000000 0x0 linker stubs
-.iplt 0x0000000020304d44 0x0
+.iplt 0x0000000020304e0c 0x0
.iplt 0x0000000000000000 0x0 cpu/m0/start.o
- 0x0000000020304d44 . = ALIGN (0x4)
+ 0x0000000020304e0c . = ALIGN (0x4)
-.rodata 0x0000000020304d44 0x3f0
+.rodata 0x0000000020304e0c 0x3f0
*(.rodata)
- .rodata 0x0000000020304d44 0x270 drivers/libdrivers.a(spifc_loader2.o)
- .rodata 0x0000000020304fb4 0x13 drivers/libdrivers.a(sha256.o)
- 0x0000000020304fb4 sha256_der_prefix
- *fill* 0x0000000020304fc7 0x1
- .rodata 0x0000000020304fc8 0x16c drivers/libdrivers.a(nor.o)
+ .rodata 0x0000000020304e0c 0x270 drivers/libdrivers.a(spifc_loader2.o)
+ .rodata 0x000000002030507c 0x13 drivers/libdrivers.a(sha256.o)
+ 0x000000002030507c sha256_der_prefix
+ *fill* 0x000000002030508f 0x1
+ .rodata 0x0000000020305090 0x16c drivers/libdrivers.a(nor.o)
-.rodata.str1.1 0x0000000020305134 0x48d
+.rodata.str1.1 0x00000000203051fc 0x516
.rodata.str1.1
- 0x0000000020305134 0x18a lib/libarm.a(board.o)
- 0x1a3 (松开之前的大小)
+ 0x00000000203051fc 0x213 lib/libarm.a(board.o)
+ 0x24e (松开之前的大小)
.rodata.str1.1
- 0x00000000203052be 0xef drivers/libdrivers.a(image.o)
+ 0x000000002030540f 0xef drivers/libdrivers.a(image.o)
0x115 (松开之前的大小)
.rodata.str1.1
- 0x00000000203053ad 0x5b drivers/libdrivers.a(secure_verify.o)
+ 0x00000000203054fe 0x5b drivers/libdrivers.a(secure_verify.o)
0x5d (松开之前的大小)
.rodata.str1.1
- 0x0000000020305408 0x3d drivers/libdrivers.a(spifc_loader2.o)
+ 0x0000000020305559 0x3d drivers/libdrivers.a(spifc_loader2.o)
0x4a (松开之前的大小)
.rodata.str1.1
- 0x0000000020305445 0x9 drivers/libdrivers.a(bbt.o)
+ 0x0000000020305596 0x9 drivers/libdrivers.a(bbt.o)
.rodata.str1.1
- 0x000000002030544e 0x15c drivers/libdrivers.a(nor.o)
+ 0x000000002030559f 0x15c drivers/libdrivers.a(nor.o)
.rodata.str1.1
- 0x00000000203055aa 0x17 drivers/libdrivers.a(efuse.o)
+ 0x00000000203056fb 0x17 drivers/libdrivers.a(efuse.o)
-.rel.dyn 0x00000000203055c4 0x0
+.rel.dyn 0x0000000020305714 0x0
.rel.iplt 0x0000000000000000 0x0 cpu/m0/start.o
- 0x00000000203055c4 . = ALIGN (0x4)
+ 0x0000000020305714 . = ALIGN (0x4)
-.data 0x00000000203055c4 0xd0
+.data 0x0000000020305714 0xd0
*(.data)
- .data 0x00000000203055c4 0x0 cpu/m0/start.o
- .data 0x00000000203055c4 0x0 lib/libarm.a(board.o)
- .data 0x00000000203055c4 0x0 lib/libarm.a(string.o)
- .data 0x00000000203055c4 0x0 drivers/libdrivers.a(uart.o)
- .data 0x00000000203055c4 0x0 drivers/libdrivers.a(image.o)
- .data 0x00000000203055c4 0x0 drivers/libdrivers.a(secure_verify.o)
- .data 0x00000000203055c4 0x0 drivers/libdrivers.a(spifc_loader2.o)
- .data 0x00000000203055c4 0x40 drivers/libdrivers.a(bbt.o)
- .data 0x0000000020305604 0x40 drivers/libdrivers.a(sha256.o)
- .data 0x0000000020305644 0x50 drivers/libdrivers.a(nor.o)
- 0x0000000020305644 nor_cmd_table
- .data 0x0000000020305694 0x0 drivers/libdrivers.a(ddr.o)
- .data 0x0000000020305694 0x0 drivers/libdrivers.a(drv_hash.o)
- .data 0x0000000020305694 0x0 drivers/libdrivers.a(drv_rsa.o)
- .data 0x0000000020305694 0x0 drivers/libdrivers.a(flash.o)
- .data 0x0000000020305694 0x0 drivers/libdrivers.a(efuse.o)
- .data 0x0000000020305694 0x0 cpu/m0/libm0.a(cpu.o)
+ .data 0x0000000020305714 0x0 cpu/m0/start.o
+ .data 0x0000000020305714 0x0 lib/libarm.a(board.o)
+ .data 0x0000000020305714 0x0 lib/libarm.a(string.o)
+ .data 0x0000000020305714 0x0 drivers/libdrivers.a(uart.o)
+ .data 0x0000000020305714 0x0 drivers/libdrivers.a(image.o)
+ .data 0x0000000020305714 0x0 drivers/libdrivers.a(secure_verify.o)
+ .data 0x0000000020305714 0x0 drivers/libdrivers.a(spifc_loader2.o)
+ .data 0x0000000020305714 0x40 drivers/libdrivers.a(bbt.o)
+ .data 0x0000000020305754 0x40 drivers/libdrivers.a(sha256.o)
+ .data 0x0000000020305794 0x50 drivers/libdrivers.a(nor.o)
+ 0x0000000020305794 nor_cmd_table
+ .data 0x00000000203057e4 0x0 drivers/libdrivers.a(ddr.o)
+ .data 0x00000000203057e4 0x0 drivers/libdrivers.a(drv_hash.o)
+ .data 0x00000000203057e4 0x0 drivers/libdrivers.a(drv_rsa.o)
+ .data 0x00000000203057e4 0x0 drivers/libdrivers.a(flash.o)
+ .data 0x00000000203057e4 0x0 drivers/libdrivers.a(efuse.o)
+ .data 0x00000000203057e4 0x0 cpu/m0/libm0.a(cpu.o)
-.igot.plt 0x0000000020305694 0x0
+.igot.plt 0x00000000203057e4 0x0
.igot.plt 0x0000000000000000 0x0 cpu/m0/start.o
- 0x0000000020305694 . = ALIGN (0x4)
+ 0x00000000203057e4 . = ALIGN (0x4)
.got
*(.got)
- 0x0000000020305694 . = ALIGN (0x4)
- 0x0000000020305694 __bss_start = .
+ 0x00000000203057e4 . = ALIGN (0x4)
+ 0x00000000203057e4 __bss_start = .
-.bss 0x0000000020305694 0x1e8
+.bss 0x00000000203057e4 0x1e8
*(.bss)
- .bss 0x0000000020305694 0x0 cpu/m0/start.o
- .bss 0x0000000020305694 0x4 lib/libarm.a(board.o)
- 0x0000000020305694 zloader_entry_point
- .bss 0x0000000020305698 0x0 lib/libarm.a(string.o)
- .bss 0x0000000020305698 0x0 drivers/libdrivers.a(uart.o)
- .bss 0x0000000020305698 0x0 drivers/libdrivers.a(image.o)
- .bss 0x0000000020305698 0x104 drivers/libdrivers.a(secure_verify.o)
- 0x0000000020305698 result
- .bss 0x000000002030579c 0x4 drivers/libdrivers.a(spifc_loader2.o)
- .bss 0x00000000203057a0 0x80 drivers/libdrivers.a(bbt.o)
- .bss 0x0000000020305820 0x0 drivers/libdrivers.a(sha256.o)
- .bss 0x0000000020305820 0x28 drivers/libdrivers.a(nor.o)
- 0x0000000020305820 spi_nor_flash
- 0x0000000020305824 otp_data
- .bss 0x0000000020305848 0x0 drivers/libdrivers.a(ddr.o)
- .bss 0x0000000020305848 0x0 drivers/libdrivers.a(drv_hash.o)
- .bss 0x0000000020305848 0x0 drivers/libdrivers.a(drv_rsa.o)
- .bss 0x0000000020305848 0x24 drivers/libdrivers.a(flash.o)
- 0x0000000020305848 flash
- .bss 0x000000002030586c 0x0 drivers/libdrivers.a(efuse.o)
- .bss 0x000000002030586c 0x10 cpu/m0/libm0.a(cpu.o)
- 0x000000002030586c g_tick
- 0x000000002030587c __bss_end = .
- 0x000000002030587c . = ALIGN (0x4)
+ .bss 0x00000000203057e4 0x0 cpu/m0/start.o
+ .bss 0x00000000203057e4 0x4 lib/libarm.a(board.o)
+ 0x00000000203057e4 zloader_entry_point
+ .bss 0x00000000203057e8 0x0 lib/libarm.a(string.o)
+ .bss 0x00000000203057e8 0x0 drivers/libdrivers.a(uart.o)
+ .bss 0x00000000203057e8 0x0 drivers/libdrivers.a(image.o)
+ .bss 0x00000000203057e8 0x104 drivers/libdrivers.a(secure_verify.o)
+ 0x00000000203057e8 result
+ .bss 0x00000000203058ec 0x4 drivers/libdrivers.a(spifc_loader2.o)
+ .bss 0x00000000203058f0 0x80 drivers/libdrivers.a(bbt.o)
+ .bss 0x0000000020305970 0x0 drivers/libdrivers.a(sha256.o)
+ .bss 0x0000000020305970 0x28 drivers/libdrivers.a(nor.o)
+ 0x0000000020305970 spi_nor_flash
+ 0x0000000020305974 otp_data
+ .bss 0x0000000020305998 0x0 drivers/libdrivers.a(ddr.o)
+ .bss 0x0000000020305998 0x0 drivers/libdrivers.a(drv_hash.o)
+ .bss 0x0000000020305998 0x0 drivers/libdrivers.a(drv_rsa.o)
+ .bss 0x0000000020305998 0x24 drivers/libdrivers.a(flash.o)
+ 0x0000000020305998 flash
+ .bss 0x00000000203059bc 0x0 drivers/libdrivers.a(efuse.o)
+ .bss 0x00000000203059bc 0x10 cpu/m0/libm0.a(cpu.o)
+ 0x00000000203059bc g_tick
+ 0x00000000203059cc __bss_end = .
+ 0x00000000203059cc . = ALIGN (0x4)
-.para 0x0000000082000000 0x0 加载地址 0x000000002030587c
+.para 0x0000000082000000 0x0 加载地址 0x00000000203059cc
0x0000000082000000 __para_start = .
*(.para)
0x0000000082000000 __para_end = .
@@ -356,22 +356,22 @@
.stabstr 0x0000000000000000 0x67
.stabstr 0x0000000000000000 0x67 cpu/m0/start.o
-.debug_info 0x0000000000000000 0x6536
- .debug_info 0x0000000000000000 0x92d lib/libarm.a(board.o)
- .debug_info 0x000000000000092d 0x22b lib/libarm.a(string.o)
- .debug_info 0x0000000000000b58 0x2a0 drivers/libdrivers.a(uart.o)
- .debug_info 0x0000000000000df8 0xdd6 drivers/libdrivers.a(image.o)
- .debug_info 0x0000000000001bce 0xb01 drivers/libdrivers.a(secure_verify.o)
- .debug_info 0x00000000000026cf 0x1661 drivers/libdrivers.a(spifc_loader2.o)
- .debug_info 0x0000000000003d30 0x70f drivers/libdrivers.a(bbt.o)
- .debug_info 0x000000000000443f 0x586 drivers/libdrivers.a(sha256.o)
- .debug_info 0x00000000000049c5 0xd5f drivers/libdrivers.a(nor.o)
- .debug_info 0x0000000000005724 0x329 drivers/libdrivers.a(ddr.o)
- .debug_info 0x0000000000005a4d 0x1e8 drivers/libdrivers.a(drv_hash.o)
- .debug_info 0x0000000000005c35 0x3b4 drivers/libdrivers.a(drv_rsa.o)
- .debug_info 0x0000000000005fe9 0x20f drivers/libdrivers.a(flash.o)
- .debug_info 0x00000000000061f8 0x1c3 drivers/libdrivers.a(efuse.o)
- .debug_info 0x00000000000063bb 0x17b cpu/m0/libm0.a(cpu.o)
+.debug_info 0x0000000000000000 0x663a
+ .debug_info 0x0000000000000000 0xa31 lib/libarm.a(board.o)
+ .debug_info 0x0000000000000a31 0x22b lib/libarm.a(string.o)
+ .debug_info 0x0000000000000c5c 0x2a0 drivers/libdrivers.a(uart.o)
+ .debug_info 0x0000000000000efc 0xdd6 drivers/libdrivers.a(image.o)
+ .debug_info 0x0000000000001cd2 0xb01 drivers/libdrivers.a(secure_verify.o)
+ .debug_info 0x00000000000027d3 0x1661 drivers/libdrivers.a(spifc_loader2.o)
+ .debug_info 0x0000000000003e34 0x70f drivers/libdrivers.a(bbt.o)
+ .debug_info 0x0000000000004543 0x586 drivers/libdrivers.a(sha256.o)
+ .debug_info 0x0000000000004ac9 0xd5f drivers/libdrivers.a(nor.o)
+ .debug_info 0x0000000000005828 0x329 drivers/libdrivers.a(ddr.o)
+ .debug_info 0x0000000000005b51 0x1e8 drivers/libdrivers.a(drv_hash.o)
+ .debug_info 0x0000000000005d39 0x3b4 drivers/libdrivers.a(drv_rsa.o)
+ .debug_info 0x00000000000060ed 0x20f drivers/libdrivers.a(flash.o)
+ .debug_info 0x00000000000062fc 0x1c3 drivers/libdrivers.a(efuse.o)
+ .debug_info 0x00000000000064bf 0x17b cpu/m0/libm0.a(cpu.o)
.debug_abbrev 0x0000000000000000 0x1c94
.debug_abbrev 0x0000000000000000 0x304 lib/libarm.a(board.o)
@@ -390,22 +390,22 @@
.debug_abbrev 0x0000000000001aaf 0x11d drivers/libdrivers.a(efuse.o)
.debug_abbrev 0x0000000000001bcc 0xc8 cpu/m0/libm0.a(cpu.o)
-.debug_loc 0x0000000000000000 0x96e6
- .debug_loc 0x0000000000000000 0x2f4 lib/libarm.a(board.o)
- .debug_loc 0x00000000000002f4 0x29d lib/libarm.a(string.o)
- .debug_loc 0x0000000000000591 0x228 drivers/libdrivers.a(uart.o)
- .debug_loc 0x00000000000007b9 0x6a2 drivers/libdrivers.a(image.o)
- .debug_loc 0x0000000000000e5b 0x790 drivers/libdrivers.a(secure_verify.o)
- .debug_loc 0x00000000000015eb 0xef4 drivers/libdrivers.a(spifc_loader2.o)
- .debug_loc 0x00000000000024df 0x282 drivers/libdrivers.a(bbt.o)
- .debug_loc 0x0000000000002761 0x5f3f drivers/libdrivers.a(sha256.o)
- .debug_loc 0x00000000000086a0 0x80a drivers/libdrivers.a(nor.o)
- .debug_loc 0x0000000000008eaa 0x2d8 drivers/libdrivers.a(ddr.o)
- .debug_loc 0x0000000000009182 0x1b8 drivers/libdrivers.a(drv_hash.o)
- .debug_loc 0x000000000000933a 0x238 drivers/libdrivers.a(drv_rsa.o)
- .debug_loc 0x0000000000009572 0x1f drivers/libdrivers.a(flash.o)
- .debug_loc 0x0000000000009591 0xab drivers/libdrivers.a(efuse.o)
- .debug_loc 0x000000000000963c 0xaa cpu/m0/libm0.a(cpu.o)
+.debug_loc 0x0000000000000000 0x97b8
+ .debug_loc 0x0000000000000000 0x3c6 lib/libarm.a(board.o)
+ .debug_loc 0x00000000000003c6 0x29d lib/libarm.a(string.o)
+ .debug_loc 0x0000000000000663 0x228 drivers/libdrivers.a(uart.o)
+ .debug_loc 0x000000000000088b 0x6a2 drivers/libdrivers.a(image.o)
+ .debug_loc 0x0000000000000f2d 0x790 drivers/libdrivers.a(secure_verify.o)
+ .debug_loc 0x00000000000016bd 0xef4 drivers/libdrivers.a(spifc_loader2.o)
+ .debug_loc 0x00000000000025b1 0x282 drivers/libdrivers.a(bbt.o)
+ .debug_loc 0x0000000000002833 0x5f3f drivers/libdrivers.a(sha256.o)
+ .debug_loc 0x0000000000008772 0x80a drivers/libdrivers.a(nor.o)
+ .debug_loc 0x0000000000008f7c 0x2d8 drivers/libdrivers.a(ddr.o)
+ .debug_loc 0x0000000000009254 0x1b8 drivers/libdrivers.a(drv_hash.o)
+ .debug_loc 0x000000000000940c 0x238 drivers/libdrivers.a(drv_rsa.o)
+ .debug_loc 0x0000000000009644 0x1f drivers/libdrivers.a(flash.o)
+ .debug_loc 0x0000000000009663 0xab drivers/libdrivers.a(efuse.o)
+ .debug_loc 0x000000000000970e 0xaa cpu/m0/libm0.a(cpu.o)
.debug_aranges 0x0000000000000000 0x1e0
.debug_aranges
@@ -449,53 +449,53 @@
.debug_ranges 0x00000000000001d8 0x28 drivers/libdrivers.a(drv_hash.o)
.debug_ranges 0x0000000000000200 0x38 drivers/libdrivers.a(drv_rsa.o)
-.debug_line 0x0000000000000000 0x2022
- .debug_line 0x0000000000000000 0x387 lib/libarm.a(board.o)
- .debug_line 0x0000000000000387 0x152 lib/libarm.a(string.o)
- .debug_line 0x00000000000004d9 0x112 drivers/libdrivers.a(uart.o)
- .debug_line 0x00000000000005eb 0x3b8 drivers/libdrivers.a(image.o)
- .debug_line 0x00000000000009a3 0x38e drivers/libdrivers.a(secure_verify.o)
- .debug_line 0x0000000000000d31 0x442 drivers/libdrivers.a(spifc_loader2.o)
- .debug_line 0x0000000000001173 0x251 drivers/libdrivers.a(bbt.o)
- .debug_line 0x00000000000013c4 0x2bb drivers/libdrivers.a(sha256.o)
- .debug_line 0x000000000000167f 0x2a2 drivers/libdrivers.a(nor.o)
- .debug_line 0x0000000000001921 0x299 drivers/libdrivers.a(ddr.o)
- .debug_line 0x0000000000001bba 0x88 drivers/libdrivers.a(drv_hash.o)
- .debug_line 0x0000000000001c42 0x117 drivers/libdrivers.a(drv_rsa.o)
- .debug_line 0x0000000000001d59 0x10a drivers/libdrivers.a(flash.o)
- .debug_line 0x0000000000001e63 0x118 drivers/libdrivers.a(efuse.o)
- .debug_line 0x0000000000001f7b 0xa7 cpu/m0/libm0.a(cpu.o)
+.debug_line 0x0000000000000000 0x205d
+ .debug_line 0x0000000000000000 0x3c2 lib/libarm.a(board.o)
+ .debug_line 0x00000000000003c2 0x152 lib/libarm.a(string.o)
+ .debug_line 0x0000000000000514 0x112 drivers/libdrivers.a(uart.o)
+ .debug_line 0x0000000000000626 0x3b8 drivers/libdrivers.a(image.o)
+ .debug_line 0x00000000000009de 0x38e drivers/libdrivers.a(secure_verify.o)
+ .debug_line 0x0000000000000d6c 0x442 drivers/libdrivers.a(spifc_loader2.o)
+ .debug_line 0x00000000000011ae 0x251 drivers/libdrivers.a(bbt.o)
+ .debug_line 0x00000000000013ff 0x2bb drivers/libdrivers.a(sha256.o)
+ .debug_line 0x00000000000016ba 0x2a2 drivers/libdrivers.a(nor.o)
+ .debug_line 0x000000000000195c 0x299 drivers/libdrivers.a(ddr.o)
+ .debug_line 0x0000000000001bf5 0x88 drivers/libdrivers.a(drv_hash.o)
+ .debug_line 0x0000000000001c7d 0x117 drivers/libdrivers.a(drv_rsa.o)
+ .debug_line 0x0000000000001d94 0x10a drivers/libdrivers.a(flash.o)
+ .debug_line 0x0000000000001e9e 0x118 drivers/libdrivers.a(efuse.o)
+ .debug_line 0x0000000000001fb6 0xa7 cpu/m0/libm0.a(cpu.o)
-.debug_str 0x0000000000000000 0x160a
- .debug_str 0x0000000000000000 0x555 lib/libarm.a(board.o)
- 0x5cb (松开之前的大小)
- .debug_str 0x0000000000000555 0x3f lib/libarm.a(string.o)
+.debug_str 0x0000000000000000 0x1616
+ .debug_str 0x0000000000000000 0x561 lib/libarm.a(board.o)
+ 0x5d7 (松开之前的大小)
+ .debug_str 0x0000000000000561 0x3f lib/libarm.a(string.o)
0x214 (松开之前的大小)
- .debug_str 0x0000000000000594 0xe2 drivers/libdrivers.a(uart.o)
+ .debug_str 0x00000000000005a0 0xe2 drivers/libdrivers.a(uart.o)
0x253 (松开之前的大小)
- .debug_str 0x0000000000000676 0x35b drivers/libdrivers.a(image.o)
+ .debug_str 0x0000000000000682 0x35b drivers/libdrivers.a(image.o)
0x854 (松开之前的大小)
- .debug_str 0x00000000000009d1 0x2f9 drivers/libdrivers.a(secure_verify.o)
+ .debug_str 0x00000000000009dd 0x2f9 drivers/libdrivers.a(secure_verify.o)
0x61f (松开之前的大小)
- .debug_str 0x0000000000000cca 0x3c3 drivers/libdrivers.a(spifc_loader2.o)
+ .debug_str 0x0000000000000cd6 0x3c3 drivers/libdrivers.a(spifc_loader2.o)
0x6c1 (松开之前的大小)
- .debug_str 0x000000000000108d 0x103 drivers/libdrivers.a(bbt.o)
+ .debug_str 0x0000000000001099 0x103 drivers/libdrivers.a(bbt.o)
0x3fe (松开之前的大小)
- .debug_str 0x0000000000001190 0xc3 drivers/libdrivers.a(sha256.o)
+ .debug_str 0x000000000000119c 0xc3 drivers/libdrivers.a(sha256.o)
0x2b7 (松开之前的大小)
- .debug_str 0x0000000000001253 0x1ad drivers/libdrivers.a(nor.o)
+ .debug_str 0x000000000000125f 0x1ad drivers/libdrivers.a(nor.o)
0x5f3 (松开之前的大小)
- .debug_str 0x0000000000001400 0x54 drivers/libdrivers.a(ddr.o)
+ .debug_str 0x000000000000140c 0x54 drivers/libdrivers.a(ddr.o)
0x216 (松开之前的大小)
- .debug_str 0x0000000000001454 0x87 drivers/libdrivers.a(drv_hash.o)
+ .debug_str 0x0000000000001460 0x87 drivers/libdrivers.a(drv_hash.o)
0x25a (松开之前的大小)
- .debug_str 0x00000000000014db 0x79 drivers/libdrivers.a(drv_rsa.o)
+ .debug_str 0x00000000000014e7 0x79 drivers/libdrivers.a(drv_rsa.o)
0x29c (松开之前的大小)
- .debug_str 0x0000000000001554 0x12 drivers/libdrivers.a(flash.o)
+ .debug_str 0x0000000000001560 0x12 drivers/libdrivers.a(flash.o)
0x2a8 (松开之前的大小)
- .debug_str 0x0000000000001566 0x20 drivers/libdrivers.a(efuse.o)
+ .debug_str 0x0000000000001572 0x20 drivers/libdrivers.a(efuse.o)
0x255 (松开之前的大小)
- .debug_str 0x0000000000001586 0x84 cpu/m0/libm0.a(cpu.o)
+ .debug_str 0x0000000000001592 0x84 cpu/m0/libm0.a(cpu.o)
0x1f8 (松开之前的大小)
.debug_frame 0x0000000000000000 0xaf0
diff --git a/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/loader2.bin b/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/loader2.bin
index 0428da1..e7d499c 100755
--- a/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/loader2.bin
+++ b/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/loader2.bin
Binary files differ
diff --git a/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load b/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load
index c79fda1..176acbd 100755
--- a/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load
+++ b/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load
Binary files differ
diff --git a/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load.map b/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load.map
index 72c0ac3..71722dc 100755
--- a/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load.map
+++ b/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load.map
@@ -300,20 +300,20 @@
.stabstr 0x0000000000000000 0x67
.stabstr 0x0000000000000000 0x67 cpu/m0/start.o
-.debug_info 0x0000000000000000 0x34d5
- .debug_info 0x0000000000000000 0x70e lib/libarm.a(board.o)
- .debug_info 0x000000000000070e 0x22b lib/libarm.a(string.o)
- .debug_info 0x0000000000000939 0x329 drivers/libdrivers.a(ddr.o)
- .debug_info 0x0000000000000c62 0x2a0 drivers/libdrivers.a(uart.o)
- .debug_info 0x0000000000000f02 0x6d3 drivers/libdrivers.a(image.o)
- .debug_info 0x00000000000015d5 0x1c3 drivers/libdrivers.a(efuse.o)
- .debug_info 0x0000000000001798 0x62d drivers/libdrivers.a(secure_verify.o)
- .debug_info 0x0000000000001dc5 0xd5f drivers/libdrivers.a(nor.o)
- .debug_info 0x0000000000002b24 0x1e8 drivers/libdrivers.a(drv_hash.o)
- .debug_info 0x0000000000002d0c 0x3b4 drivers/libdrivers.a(drv_rsa.o)
- .debug_info 0x00000000000030c0 0x20f drivers/libdrivers.a(flash.o)
- .debug_info 0x00000000000032cf 0x17b cpu/m0/libm0.a(cpu.o)
- .debug_info 0x000000000000344a 0x8b cpu/m0/libm0.a(clk.o)
+.debug_info 0x0000000000000000 0x34e2
+ .debug_info 0x0000000000000000 0x71b lib/libarm.a(board.o)
+ .debug_info 0x000000000000071b 0x22b lib/libarm.a(string.o)
+ .debug_info 0x0000000000000946 0x329 drivers/libdrivers.a(ddr.o)
+ .debug_info 0x0000000000000c6f 0x2a0 drivers/libdrivers.a(uart.o)
+ .debug_info 0x0000000000000f0f 0x6d3 drivers/libdrivers.a(image.o)
+ .debug_info 0x00000000000015e2 0x1c3 drivers/libdrivers.a(efuse.o)
+ .debug_info 0x00000000000017a5 0x62d drivers/libdrivers.a(secure_verify.o)
+ .debug_info 0x0000000000001dd2 0xd5f drivers/libdrivers.a(nor.o)
+ .debug_info 0x0000000000002b31 0x1e8 drivers/libdrivers.a(drv_hash.o)
+ .debug_info 0x0000000000002d19 0x3b4 drivers/libdrivers.a(drv_rsa.o)
+ .debug_info 0x00000000000030cd 0x20f drivers/libdrivers.a(flash.o)
+ .debug_info 0x00000000000032dc 0x17b cpu/m0/libm0.a(cpu.o)
+ .debug_info 0x0000000000003457 0x8b cpu/m0/libm0.a(clk.o)
.debug_abbrev 0x0000000000000000 0x12c2
.debug_abbrev 0x0000000000000000 0x2b8 lib/libarm.a(board.o)
@@ -395,32 +395,32 @@
.debug_line 0x000000000000132b 0xa7 cpu/m0/libm0.a(cpu.o)
.debug_line 0x00000000000013d2 0x61 cpu/m0/libm0.a(clk.o)
-.debug_str 0x0000000000000000 0xebb
- .debug_str 0x0000000000000000 0x4d5 lib/libarm.a(board.o)
- 0x554 (松开之前的大小)
- .debug_str 0x00000000000004d5 0x4c lib/libarm.a(string.o)
+.debug_str 0x0000000000000000 0xec7
+ .debug_str 0x0000000000000000 0x4e1 lib/libarm.a(board.o)
+ 0x560 (松开之前的大小)
+ .debug_str 0x00000000000004e1 0x4c lib/libarm.a(string.o)
0x214 (松开之前的大小)
- .debug_str 0x0000000000000521 0xa1 drivers/libdrivers.a(ddr.o)
+ .debug_str 0x000000000000052d 0xa1 drivers/libdrivers.a(ddr.o)
0x216 (松开之前的大小)
- .debug_str 0x00000000000005c2 0x8a drivers/libdrivers.a(uart.o)
+ .debug_str 0x00000000000005ce 0x8a drivers/libdrivers.a(uart.o)
0x253 (松开之前的大小)
- .debug_str 0x000000000000064c 0x229 drivers/libdrivers.a(image.o)
+ .debug_str 0x0000000000000658 0x229 drivers/libdrivers.a(image.o)
0x4a0 (松开之前的大小)
- .debug_str 0x0000000000000875 0x7b drivers/libdrivers.a(efuse.o)
+ .debug_str 0x0000000000000881 0x7b drivers/libdrivers.a(efuse.o)
0x255 (松开之前的大小)
- .debug_str 0x00000000000008f0 0x177 drivers/libdrivers.a(secure_verify.o)
+ .debug_str 0x00000000000008fc 0x177 drivers/libdrivers.a(secure_verify.o)
0x407 (松开之前的大小)
- .debug_str 0x0000000000000a67 0x2c3 drivers/libdrivers.a(nor.o)
+ .debug_str 0x0000000000000a73 0x2c3 drivers/libdrivers.a(nor.o)
0x5f3 (松开之前的大小)
- .debug_str 0x0000000000000d2a 0x87 drivers/libdrivers.a(drv_hash.o)
+ .debug_str 0x0000000000000d36 0x87 drivers/libdrivers.a(drv_hash.o)
0x25a (松开之前的大小)
- .debug_str 0x0000000000000db1 0x79 drivers/libdrivers.a(drv_rsa.o)
+ .debug_str 0x0000000000000dbd 0x79 drivers/libdrivers.a(drv_rsa.o)
0x29c (松开之前的大小)
- .debug_str 0x0000000000000e2a 0x12 drivers/libdrivers.a(flash.o)
+ .debug_str 0x0000000000000e36 0x12 drivers/libdrivers.a(flash.o)
0x2a8 (松开之前的大小)
- .debug_str 0x0000000000000e3c 0x79 cpu/m0/libm0.a(cpu.o)
+ .debug_str 0x0000000000000e48 0x79 cpu/m0/libm0.a(cpu.o)
0x1f8 (松开之前的大小)
- .debug_str 0x0000000000000eb5 0x6 cpu/m0/libm0.a(clk.o)
+ .debug_str 0x0000000000000ec1 0x6 cpu/m0/libm0.a(clk.o)
0x1bd (松开之前的大小)
.debug_frame 0x0000000000000000 0x6a0
diff --git a/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load2 b/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load2
index 50274d5..1f69c86 100755
--- a/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load2
+++ b/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load2
Binary files differ
diff --git a/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load2.map b/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load2.map
index 69d87e4..d4b4270 100755
--- a/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load2.map
+++ b/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load2.map
@@ -34,7 +34,7 @@
0x0000000000000000 . = 0x0
0x0000000000000000 . = ALIGN (0x4)
-.text 0x0000000020300000 0x4d44
+.text 0x0000000020300000 0x4e0c
cpu/m0/start.o(.text)
.text 0x0000000020300000 0x220 cpu/m0/start.o
0x00000000203001a4 _bss_start
@@ -44,7 +44,7 @@
0x00000000203001b8 _start
0x00000000203001fe run_at
*(.text)
- .text 0x0000000020300220 0x454 lib/libarm.a(board.o)
+ .text 0x0000000020300220 0x51c lib/libarm.a(board.o)
0x0000000020300220 print_info
0x0000000020300230 copy_to_iram1
0x0000000020300250 clear_iram
@@ -55,201 +55,201 @@
0x0000000020300338 pmu_read
0x0000000020300404 pmu_write
0x00000000203004d0 start_armboot
- .text 0x0000000020300674 0x80 lib/libarm.a(string.o)
- 0x0000000020300674 strlen
- 0x0000000020300684 memset
- 0x00000000203006c6 memcmp
- 0x00000000203006e2 memcpy
- .text 0x00000000203006f4 0x138 drivers/libdrivers.a(uart.o)
- 0x00000000203006f4 uart_init
- 0x0000000020300774 uart_putc
- 0x000000002030079c uart_puts
- 0x00000000203007b0 uart_getc
- 0x00000000203007cc uart_tstc
- 0x00000000203007dc UART_Read
- 0x00000000203007f8 UART_Write
- 0x0000000020300814 UART_Check_Sync
- .text 0x000000002030082c 0x338 drivers/libdrivers.a(image.o)
- 0x0000000020300830 page_align
- 0x0000000020300848 find_partition_para
- 0x0000000020300878 read_image_part_offset
- 0x00000000203008cc read_flags_image
- 0x00000000203009b4 read_uboot_image
- 0x0000000020300a94 nand_read_m0
- 0x0000000020300b00 read_zloader_image
- .text 0x0000000020300b64 0x2b0 drivers/libdrivers.a(secure_verify.o)
- 0x0000000020300b82 BIG2SMALL
- 0x0000000020300bb2 bin2hex
- 0x0000000020300bfc secure_verify_zloader
- 0x0000000020300cf0 SecureVerify
- .text 0x0000000020300e14 0x648 drivers/libdrivers.a(spifc_loader2.o)
- 0x0000000020300f08 zDrvGpio_SetFunc
- 0x0000000020300f40 zDrvGpio_SetDirection
- 0x0000000020300f90 zDrvGpio_SetOutputValue
- 0x0000000020300fcc spi_nand_cs
- 0x0000000020301008 spifc_clear_fifo
- 0x000000002030101c spifc_clear_int
- 0x0000000020301178 spifc_read_oob
- 0x00000000203011bc spifc_read_page_raw
- 0x00000000203011f8 spifc_read_page
- 0x0000000020301274 spifc_read
- 0x00000000203012b8 read_data
- 0x000000002030130c read_id
- 0x0000000020301390 spifc_init
- 0x0000000020301414 zloader_flash_init
- .text 0x000000002030145c 0x1c0 drivers/libdrivers.a(bbt.o)
- 0x00000000203014bc nand_creat_ram_bbt
- 0x0000000020301500 nand_search_bbt
- 0x000000002030158c nand_creat_bbt
- 0x0000000020301608 nand_block_isbad
- .text 0x000000002030161c 0x2688 drivers/libdrivers.a(sha256.o)
- 0x0000000020303b3c sha256_starts
- 0x0000000020303b84 sha256_update
- 0x0000000020303b90 sha256_finish
- 0x0000000020303c7c sha256_csum_wd
- .text 0x0000000020303ca4 0x424 drivers/libdrivers.a(nor.o)
- 0x0000000020303ca4 spifc_enable
- 0x0000000020303cd4 spifc_disable
- 0x0000000020303cf8 spifc_setup_cmd
- 0x0000000020303d7c spifc_wait_cmd_end
- 0x0000000020303da8 spifc_read_fifo
- 0x0000000020303de4 spifc_start
- 0x0000000020303df4 cmd_seek
- 0x0000000020303e14 nor_read_reg
- 0x0000000020303e74 nor_read_id
- 0x0000000020303edc spi_nor_read
- 0x0000000020303f38 nor_read
- 0x0000000020303f8c spi_nor_read_security_register
- 0x0000000020303fe8 nor_read_security_register
- 0x000000002030403c nor_init
- 0x000000002030408c board_flash_init
- .text 0x00000000203040c8 0x82c drivers/libdrivers.a(ddr.o)
- 0x00000000203040c8 nsdelay
- 0x00000000203040e2 ddr_clk_init
- 0x00000000203040f8 ddr_phy_init
- 0x00000000203041f4 ddr_ctrl_init
- 0x00000000203045b0 ddr_prio_init
- 0x00000000203046d4 ddr_init
- .text 0x00000000203048f4 0xa4 drivers/libdrivers.a(drv_hash.o)
- 0x00000000203048f4 Hash_Calculate
- .text 0x0000000020304998 0x174 drivers/libdrivers.a(drv_rsa.o)
- 0x00000000203049b2 Rsa_Calculate
- .text 0x0000000020304b0c 0x28 drivers/libdrivers.a(flash.o)
- 0x0000000020304b0c get_boot_mode
- .text 0x0000000020304b34 0x1bc drivers/libdrivers.a(efuse.o)
- 0x0000000020304b34 efuse_init
- 0x0000000020304b58 get_ddr_flag
- 0x0000000020304c78 get_secure_verify_status
- 0x0000000020304cbc get_otp_secure_verify_status
- .text 0x0000000020304cf0 0x54 cpu/m0/libm0.a(cpu.o)
- 0x0000000020304cf0 timer_init
- 0x0000000020304d08 usdelay
+ .text 0x000000002030073c 0x80 lib/libarm.a(string.o)
+ 0x000000002030073c strlen
+ 0x000000002030074c memset
+ 0x000000002030078e memcmp
+ 0x00000000203007aa memcpy
+ .text 0x00000000203007bc 0x138 drivers/libdrivers.a(uart.o)
+ 0x00000000203007bc uart_init
+ 0x000000002030083c uart_putc
+ 0x0000000020300864 uart_puts
+ 0x0000000020300878 uart_getc
+ 0x0000000020300894 uart_tstc
+ 0x00000000203008a4 UART_Read
+ 0x00000000203008c0 UART_Write
+ 0x00000000203008dc UART_Check_Sync
+ .text 0x00000000203008f4 0x338 drivers/libdrivers.a(image.o)
+ 0x00000000203008f8 page_align
+ 0x0000000020300910 find_partition_para
+ 0x0000000020300940 read_image_part_offset
+ 0x0000000020300994 read_flags_image
+ 0x0000000020300a7c read_uboot_image
+ 0x0000000020300b5c nand_read_m0
+ 0x0000000020300bc8 read_zloader_image
+ .text 0x0000000020300c2c 0x2b0 drivers/libdrivers.a(secure_verify.o)
+ 0x0000000020300c4a BIG2SMALL
+ 0x0000000020300c7a bin2hex
+ 0x0000000020300cc4 secure_verify_zloader
+ 0x0000000020300db8 SecureVerify
+ .text 0x0000000020300edc 0x648 drivers/libdrivers.a(spifc_loader2.o)
+ 0x0000000020300fd0 zDrvGpio_SetFunc
+ 0x0000000020301008 zDrvGpio_SetDirection
+ 0x0000000020301058 zDrvGpio_SetOutputValue
+ 0x0000000020301094 spi_nand_cs
+ 0x00000000203010d0 spifc_clear_fifo
+ 0x00000000203010e4 spifc_clear_int
+ 0x0000000020301240 spifc_read_oob
+ 0x0000000020301284 spifc_read_page_raw
+ 0x00000000203012c0 spifc_read_page
+ 0x000000002030133c spifc_read
+ 0x0000000020301380 read_data
+ 0x00000000203013d4 read_id
+ 0x0000000020301458 spifc_init
+ 0x00000000203014dc zloader_flash_init
+ .text 0x0000000020301524 0x1c0 drivers/libdrivers.a(bbt.o)
+ 0x0000000020301584 nand_creat_ram_bbt
+ 0x00000000203015c8 nand_search_bbt
+ 0x0000000020301654 nand_creat_bbt
+ 0x00000000203016d0 nand_block_isbad
+ .text 0x00000000203016e4 0x2688 drivers/libdrivers.a(sha256.o)
+ 0x0000000020303c04 sha256_starts
+ 0x0000000020303c4c sha256_update
+ 0x0000000020303c58 sha256_finish
+ 0x0000000020303d44 sha256_csum_wd
+ .text 0x0000000020303d6c 0x424 drivers/libdrivers.a(nor.o)
+ 0x0000000020303d6c spifc_enable
+ 0x0000000020303d9c spifc_disable
+ 0x0000000020303dc0 spifc_setup_cmd
+ 0x0000000020303e44 spifc_wait_cmd_end
+ 0x0000000020303e70 spifc_read_fifo
+ 0x0000000020303eac spifc_start
+ 0x0000000020303ebc cmd_seek
+ 0x0000000020303edc nor_read_reg
+ 0x0000000020303f3c nor_read_id
+ 0x0000000020303fa4 spi_nor_read
+ 0x0000000020304000 nor_read
+ 0x0000000020304054 spi_nor_read_security_register
+ 0x00000000203040b0 nor_read_security_register
+ 0x0000000020304104 nor_init
+ 0x0000000020304154 board_flash_init
+ .text 0x0000000020304190 0x82c drivers/libdrivers.a(ddr.o)
+ 0x0000000020304190 nsdelay
+ 0x00000000203041aa ddr_clk_init
+ 0x00000000203041c0 ddr_phy_init
+ 0x00000000203042bc ddr_ctrl_init
+ 0x0000000020304678 ddr_prio_init
+ 0x000000002030479c ddr_init
+ .text 0x00000000203049bc 0xa4 drivers/libdrivers.a(drv_hash.o)
+ 0x00000000203049bc Hash_Calculate
+ .text 0x0000000020304a60 0x174 drivers/libdrivers.a(drv_rsa.o)
+ 0x0000000020304a7a Rsa_Calculate
+ .text 0x0000000020304bd4 0x28 drivers/libdrivers.a(flash.o)
+ 0x0000000020304bd4 get_boot_mode
+ .text 0x0000000020304bfc 0x1bc drivers/libdrivers.a(efuse.o)
+ 0x0000000020304bfc efuse_init
+ 0x0000000020304c20 get_ddr_flag
+ 0x0000000020304d40 get_secure_verify_status
+ 0x0000000020304d84 get_otp_secure_verify_status
+ .text 0x0000000020304db8 0x54 cpu/m0/libm0.a(cpu.o)
+ 0x0000000020304db8 timer_init
+ 0x0000000020304dd0 usdelay
-.glue_7 0x0000000020304d44 0x0
+.glue_7 0x0000000020304e0c 0x0
.glue_7 0x0000000000000000 0x0 linker stubs
-.glue_7t 0x0000000020304d44 0x0
+.glue_7t 0x0000000020304e0c 0x0
.glue_7t 0x0000000000000000 0x0 linker stubs
-.vfp11_veneer 0x0000000020304d44 0x0
+.vfp11_veneer 0x0000000020304e0c 0x0
.vfp11_veneer 0x0000000000000000 0x0 linker stubs
-.v4_bx 0x0000000020304d44 0x0
+.v4_bx 0x0000000020304e0c 0x0
.v4_bx 0x0000000000000000 0x0 linker stubs
-.iplt 0x0000000020304d44 0x0
+.iplt 0x0000000020304e0c 0x0
.iplt 0x0000000000000000 0x0 cpu/m0/start.o
- 0x0000000020304d44 . = ALIGN (0x4)
+ 0x0000000020304e0c . = ALIGN (0x4)
-.rodata 0x0000000020304d44 0x3f0
+.rodata 0x0000000020304e0c 0x3f0
*(.rodata)
- .rodata 0x0000000020304d44 0x270 drivers/libdrivers.a(spifc_loader2.o)
- .rodata 0x0000000020304fb4 0x13 drivers/libdrivers.a(sha256.o)
- 0x0000000020304fb4 sha256_der_prefix
- *fill* 0x0000000020304fc7 0x1
- .rodata 0x0000000020304fc8 0x16c drivers/libdrivers.a(nor.o)
+ .rodata 0x0000000020304e0c 0x270 drivers/libdrivers.a(spifc_loader2.o)
+ .rodata 0x000000002030507c 0x13 drivers/libdrivers.a(sha256.o)
+ 0x000000002030507c sha256_der_prefix
+ *fill* 0x000000002030508f 0x1
+ .rodata 0x0000000020305090 0x16c drivers/libdrivers.a(nor.o)
-.rodata.str1.1 0x0000000020305134 0x48d
+.rodata.str1.1 0x00000000203051fc 0x516
.rodata.str1.1
- 0x0000000020305134 0x18a lib/libarm.a(board.o)
- 0x1a3 (松开之前的大小)
+ 0x00000000203051fc 0x213 lib/libarm.a(board.o)
+ 0x24e (松开之前的大小)
.rodata.str1.1
- 0x00000000203052be 0xef drivers/libdrivers.a(image.o)
+ 0x000000002030540f 0xef drivers/libdrivers.a(image.o)
0x115 (松开之前的大小)
.rodata.str1.1
- 0x00000000203053ad 0x5b drivers/libdrivers.a(secure_verify.o)
+ 0x00000000203054fe 0x5b drivers/libdrivers.a(secure_verify.o)
0x5d (松开之前的大小)
.rodata.str1.1
- 0x0000000020305408 0x3d drivers/libdrivers.a(spifc_loader2.o)
+ 0x0000000020305559 0x3d drivers/libdrivers.a(spifc_loader2.o)
0x4a (松开之前的大小)
.rodata.str1.1
- 0x0000000020305445 0x9 drivers/libdrivers.a(bbt.o)
+ 0x0000000020305596 0x9 drivers/libdrivers.a(bbt.o)
.rodata.str1.1
- 0x000000002030544e 0x15c drivers/libdrivers.a(nor.o)
+ 0x000000002030559f 0x15c drivers/libdrivers.a(nor.o)
.rodata.str1.1
- 0x00000000203055aa 0x17 drivers/libdrivers.a(efuse.o)
+ 0x00000000203056fb 0x17 drivers/libdrivers.a(efuse.o)
-.rel.dyn 0x00000000203055c4 0x0
+.rel.dyn 0x0000000020305714 0x0
.rel.iplt 0x0000000000000000 0x0 cpu/m0/start.o
- 0x00000000203055c4 . = ALIGN (0x4)
+ 0x0000000020305714 . = ALIGN (0x4)
-.data 0x00000000203055c4 0xd0
+.data 0x0000000020305714 0xd0
*(.data)
- .data 0x00000000203055c4 0x0 cpu/m0/start.o
- .data 0x00000000203055c4 0x0 lib/libarm.a(board.o)
- .data 0x00000000203055c4 0x0 lib/libarm.a(string.o)
- .data 0x00000000203055c4 0x0 drivers/libdrivers.a(uart.o)
- .data 0x00000000203055c4 0x0 drivers/libdrivers.a(image.o)
- .data 0x00000000203055c4 0x0 drivers/libdrivers.a(secure_verify.o)
- .data 0x00000000203055c4 0x0 drivers/libdrivers.a(spifc_loader2.o)
- .data 0x00000000203055c4 0x40 drivers/libdrivers.a(bbt.o)
- .data 0x0000000020305604 0x40 drivers/libdrivers.a(sha256.o)
- .data 0x0000000020305644 0x50 drivers/libdrivers.a(nor.o)
- 0x0000000020305644 nor_cmd_table
- .data 0x0000000020305694 0x0 drivers/libdrivers.a(ddr.o)
- .data 0x0000000020305694 0x0 drivers/libdrivers.a(drv_hash.o)
- .data 0x0000000020305694 0x0 drivers/libdrivers.a(drv_rsa.o)
- .data 0x0000000020305694 0x0 drivers/libdrivers.a(flash.o)
- .data 0x0000000020305694 0x0 drivers/libdrivers.a(efuse.o)
- .data 0x0000000020305694 0x0 cpu/m0/libm0.a(cpu.o)
+ .data 0x0000000020305714 0x0 cpu/m0/start.o
+ .data 0x0000000020305714 0x0 lib/libarm.a(board.o)
+ .data 0x0000000020305714 0x0 lib/libarm.a(string.o)
+ .data 0x0000000020305714 0x0 drivers/libdrivers.a(uart.o)
+ .data 0x0000000020305714 0x0 drivers/libdrivers.a(image.o)
+ .data 0x0000000020305714 0x0 drivers/libdrivers.a(secure_verify.o)
+ .data 0x0000000020305714 0x0 drivers/libdrivers.a(spifc_loader2.o)
+ .data 0x0000000020305714 0x40 drivers/libdrivers.a(bbt.o)
+ .data 0x0000000020305754 0x40 drivers/libdrivers.a(sha256.o)
+ .data 0x0000000020305794 0x50 drivers/libdrivers.a(nor.o)
+ 0x0000000020305794 nor_cmd_table
+ .data 0x00000000203057e4 0x0 drivers/libdrivers.a(ddr.o)
+ .data 0x00000000203057e4 0x0 drivers/libdrivers.a(drv_hash.o)
+ .data 0x00000000203057e4 0x0 drivers/libdrivers.a(drv_rsa.o)
+ .data 0x00000000203057e4 0x0 drivers/libdrivers.a(flash.o)
+ .data 0x00000000203057e4 0x0 drivers/libdrivers.a(efuse.o)
+ .data 0x00000000203057e4 0x0 cpu/m0/libm0.a(cpu.o)
-.igot.plt 0x0000000020305694 0x0
+.igot.plt 0x00000000203057e4 0x0
.igot.plt 0x0000000000000000 0x0 cpu/m0/start.o
- 0x0000000020305694 . = ALIGN (0x4)
+ 0x00000000203057e4 . = ALIGN (0x4)
.got
*(.got)
- 0x0000000020305694 . = ALIGN (0x4)
- 0x0000000020305694 __bss_start = .
+ 0x00000000203057e4 . = ALIGN (0x4)
+ 0x00000000203057e4 __bss_start = .
-.bss 0x0000000020305694 0x1e8
+.bss 0x00000000203057e4 0x1e8
*(.bss)
- .bss 0x0000000020305694 0x0 cpu/m0/start.o
- .bss 0x0000000020305694 0x4 lib/libarm.a(board.o)
- 0x0000000020305694 zloader_entry_point
- .bss 0x0000000020305698 0x0 lib/libarm.a(string.o)
- .bss 0x0000000020305698 0x0 drivers/libdrivers.a(uart.o)
- .bss 0x0000000020305698 0x0 drivers/libdrivers.a(image.o)
- .bss 0x0000000020305698 0x104 drivers/libdrivers.a(secure_verify.o)
- 0x0000000020305698 result
- .bss 0x000000002030579c 0x4 drivers/libdrivers.a(spifc_loader2.o)
- .bss 0x00000000203057a0 0x80 drivers/libdrivers.a(bbt.o)
- .bss 0x0000000020305820 0x0 drivers/libdrivers.a(sha256.o)
- .bss 0x0000000020305820 0x28 drivers/libdrivers.a(nor.o)
- 0x0000000020305820 spi_nor_flash
- 0x0000000020305824 otp_data
- .bss 0x0000000020305848 0x0 drivers/libdrivers.a(ddr.o)
- .bss 0x0000000020305848 0x0 drivers/libdrivers.a(drv_hash.o)
- .bss 0x0000000020305848 0x0 drivers/libdrivers.a(drv_rsa.o)
- .bss 0x0000000020305848 0x24 drivers/libdrivers.a(flash.o)
- 0x0000000020305848 flash
- .bss 0x000000002030586c 0x0 drivers/libdrivers.a(efuse.o)
- .bss 0x000000002030586c 0x10 cpu/m0/libm0.a(cpu.o)
- 0x000000002030586c g_tick
- 0x000000002030587c __bss_end = .
- 0x000000002030587c . = ALIGN (0x4)
+ .bss 0x00000000203057e4 0x0 cpu/m0/start.o
+ .bss 0x00000000203057e4 0x4 lib/libarm.a(board.o)
+ 0x00000000203057e4 zloader_entry_point
+ .bss 0x00000000203057e8 0x0 lib/libarm.a(string.o)
+ .bss 0x00000000203057e8 0x0 drivers/libdrivers.a(uart.o)
+ .bss 0x00000000203057e8 0x0 drivers/libdrivers.a(image.o)
+ .bss 0x00000000203057e8 0x104 drivers/libdrivers.a(secure_verify.o)
+ 0x00000000203057e8 result
+ .bss 0x00000000203058ec 0x4 drivers/libdrivers.a(spifc_loader2.o)
+ .bss 0x00000000203058f0 0x80 drivers/libdrivers.a(bbt.o)
+ .bss 0x0000000020305970 0x0 drivers/libdrivers.a(sha256.o)
+ .bss 0x0000000020305970 0x28 drivers/libdrivers.a(nor.o)
+ 0x0000000020305970 spi_nor_flash
+ 0x0000000020305974 otp_data
+ .bss 0x0000000020305998 0x0 drivers/libdrivers.a(ddr.o)
+ .bss 0x0000000020305998 0x0 drivers/libdrivers.a(drv_hash.o)
+ .bss 0x0000000020305998 0x0 drivers/libdrivers.a(drv_rsa.o)
+ .bss 0x0000000020305998 0x24 drivers/libdrivers.a(flash.o)
+ 0x0000000020305998 flash
+ .bss 0x00000000203059bc 0x0 drivers/libdrivers.a(efuse.o)
+ .bss 0x00000000203059bc 0x10 cpu/m0/libm0.a(cpu.o)
+ 0x00000000203059bc g_tick
+ 0x00000000203059cc __bss_end = .
+ 0x00000000203059cc . = ALIGN (0x4)
-.para 0x0000000082000000 0x0 加载地址 0x000000002030587c
+.para 0x0000000082000000 0x0 加载地址 0x00000000203059cc
0x0000000082000000 __para_start = .
*(.para)
0x0000000082000000 __para_end = .
@@ -356,22 +356,22 @@
.stabstr 0x0000000000000000 0x67
.stabstr 0x0000000000000000 0x67 cpu/m0/start.o
-.debug_info 0x0000000000000000 0x6536
- .debug_info 0x0000000000000000 0x92d lib/libarm.a(board.o)
- .debug_info 0x000000000000092d 0x22b lib/libarm.a(string.o)
- .debug_info 0x0000000000000b58 0x2a0 drivers/libdrivers.a(uart.o)
- .debug_info 0x0000000000000df8 0xdd6 drivers/libdrivers.a(image.o)
- .debug_info 0x0000000000001bce 0xb01 drivers/libdrivers.a(secure_verify.o)
- .debug_info 0x00000000000026cf 0x1661 drivers/libdrivers.a(spifc_loader2.o)
- .debug_info 0x0000000000003d30 0x70f drivers/libdrivers.a(bbt.o)
- .debug_info 0x000000000000443f 0x586 drivers/libdrivers.a(sha256.o)
- .debug_info 0x00000000000049c5 0xd5f drivers/libdrivers.a(nor.o)
- .debug_info 0x0000000000005724 0x329 drivers/libdrivers.a(ddr.o)
- .debug_info 0x0000000000005a4d 0x1e8 drivers/libdrivers.a(drv_hash.o)
- .debug_info 0x0000000000005c35 0x3b4 drivers/libdrivers.a(drv_rsa.o)
- .debug_info 0x0000000000005fe9 0x20f drivers/libdrivers.a(flash.o)
- .debug_info 0x00000000000061f8 0x1c3 drivers/libdrivers.a(efuse.o)
- .debug_info 0x00000000000063bb 0x17b cpu/m0/libm0.a(cpu.o)
+.debug_info 0x0000000000000000 0x663a
+ .debug_info 0x0000000000000000 0xa31 lib/libarm.a(board.o)
+ .debug_info 0x0000000000000a31 0x22b lib/libarm.a(string.o)
+ .debug_info 0x0000000000000c5c 0x2a0 drivers/libdrivers.a(uart.o)
+ .debug_info 0x0000000000000efc 0xdd6 drivers/libdrivers.a(image.o)
+ .debug_info 0x0000000000001cd2 0xb01 drivers/libdrivers.a(secure_verify.o)
+ .debug_info 0x00000000000027d3 0x1661 drivers/libdrivers.a(spifc_loader2.o)
+ .debug_info 0x0000000000003e34 0x70f drivers/libdrivers.a(bbt.o)
+ .debug_info 0x0000000000004543 0x586 drivers/libdrivers.a(sha256.o)
+ .debug_info 0x0000000000004ac9 0xd5f drivers/libdrivers.a(nor.o)
+ .debug_info 0x0000000000005828 0x329 drivers/libdrivers.a(ddr.o)
+ .debug_info 0x0000000000005b51 0x1e8 drivers/libdrivers.a(drv_hash.o)
+ .debug_info 0x0000000000005d39 0x3b4 drivers/libdrivers.a(drv_rsa.o)
+ .debug_info 0x00000000000060ed 0x20f drivers/libdrivers.a(flash.o)
+ .debug_info 0x00000000000062fc 0x1c3 drivers/libdrivers.a(efuse.o)
+ .debug_info 0x00000000000064bf 0x17b cpu/m0/libm0.a(cpu.o)
.debug_abbrev 0x0000000000000000 0x1c94
.debug_abbrev 0x0000000000000000 0x304 lib/libarm.a(board.o)
@@ -390,22 +390,22 @@
.debug_abbrev 0x0000000000001aaf 0x11d drivers/libdrivers.a(efuse.o)
.debug_abbrev 0x0000000000001bcc 0xc8 cpu/m0/libm0.a(cpu.o)
-.debug_loc 0x0000000000000000 0x96e6
- .debug_loc 0x0000000000000000 0x2f4 lib/libarm.a(board.o)
- .debug_loc 0x00000000000002f4 0x29d lib/libarm.a(string.o)
- .debug_loc 0x0000000000000591 0x228 drivers/libdrivers.a(uart.o)
- .debug_loc 0x00000000000007b9 0x6a2 drivers/libdrivers.a(image.o)
- .debug_loc 0x0000000000000e5b 0x790 drivers/libdrivers.a(secure_verify.o)
- .debug_loc 0x00000000000015eb 0xef4 drivers/libdrivers.a(spifc_loader2.o)
- .debug_loc 0x00000000000024df 0x282 drivers/libdrivers.a(bbt.o)
- .debug_loc 0x0000000000002761 0x5f3f drivers/libdrivers.a(sha256.o)
- .debug_loc 0x00000000000086a0 0x80a drivers/libdrivers.a(nor.o)
- .debug_loc 0x0000000000008eaa 0x2d8 drivers/libdrivers.a(ddr.o)
- .debug_loc 0x0000000000009182 0x1b8 drivers/libdrivers.a(drv_hash.o)
- .debug_loc 0x000000000000933a 0x238 drivers/libdrivers.a(drv_rsa.o)
- .debug_loc 0x0000000000009572 0x1f drivers/libdrivers.a(flash.o)
- .debug_loc 0x0000000000009591 0xab drivers/libdrivers.a(efuse.o)
- .debug_loc 0x000000000000963c 0xaa cpu/m0/libm0.a(cpu.o)
+.debug_loc 0x0000000000000000 0x97b8
+ .debug_loc 0x0000000000000000 0x3c6 lib/libarm.a(board.o)
+ .debug_loc 0x00000000000003c6 0x29d lib/libarm.a(string.o)
+ .debug_loc 0x0000000000000663 0x228 drivers/libdrivers.a(uart.o)
+ .debug_loc 0x000000000000088b 0x6a2 drivers/libdrivers.a(image.o)
+ .debug_loc 0x0000000000000f2d 0x790 drivers/libdrivers.a(secure_verify.o)
+ .debug_loc 0x00000000000016bd 0xef4 drivers/libdrivers.a(spifc_loader2.o)
+ .debug_loc 0x00000000000025b1 0x282 drivers/libdrivers.a(bbt.o)
+ .debug_loc 0x0000000000002833 0x5f3f drivers/libdrivers.a(sha256.o)
+ .debug_loc 0x0000000000008772 0x80a drivers/libdrivers.a(nor.o)
+ .debug_loc 0x0000000000008f7c 0x2d8 drivers/libdrivers.a(ddr.o)
+ .debug_loc 0x0000000000009254 0x1b8 drivers/libdrivers.a(drv_hash.o)
+ .debug_loc 0x000000000000940c 0x238 drivers/libdrivers.a(drv_rsa.o)
+ .debug_loc 0x0000000000009644 0x1f drivers/libdrivers.a(flash.o)
+ .debug_loc 0x0000000000009663 0xab drivers/libdrivers.a(efuse.o)
+ .debug_loc 0x000000000000970e 0xaa cpu/m0/libm0.a(cpu.o)
.debug_aranges 0x0000000000000000 0x1e0
.debug_aranges
@@ -449,53 +449,53 @@
.debug_ranges 0x00000000000001d8 0x28 drivers/libdrivers.a(drv_hash.o)
.debug_ranges 0x0000000000000200 0x38 drivers/libdrivers.a(drv_rsa.o)
-.debug_line 0x0000000000000000 0x2022
- .debug_line 0x0000000000000000 0x387 lib/libarm.a(board.o)
- .debug_line 0x0000000000000387 0x152 lib/libarm.a(string.o)
- .debug_line 0x00000000000004d9 0x112 drivers/libdrivers.a(uart.o)
- .debug_line 0x00000000000005eb 0x3b8 drivers/libdrivers.a(image.o)
- .debug_line 0x00000000000009a3 0x38e drivers/libdrivers.a(secure_verify.o)
- .debug_line 0x0000000000000d31 0x442 drivers/libdrivers.a(spifc_loader2.o)
- .debug_line 0x0000000000001173 0x251 drivers/libdrivers.a(bbt.o)
- .debug_line 0x00000000000013c4 0x2bb drivers/libdrivers.a(sha256.o)
- .debug_line 0x000000000000167f 0x2a2 drivers/libdrivers.a(nor.o)
- .debug_line 0x0000000000001921 0x299 drivers/libdrivers.a(ddr.o)
- .debug_line 0x0000000000001bba 0x88 drivers/libdrivers.a(drv_hash.o)
- .debug_line 0x0000000000001c42 0x117 drivers/libdrivers.a(drv_rsa.o)
- .debug_line 0x0000000000001d59 0x10a drivers/libdrivers.a(flash.o)
- .debug_line 0x0000000000001e63 0x118 drivers/libdrivers.a(efuse.o)
- .debug_line 0x0000000000001f7b 0xa7 cpu/m0/libm0.a(cpu.o)
+.debug_line 0x0000000000000000 0x205d
+ .debug_line 0x0000000000000000 0x3c2 lib/libarm.a(board.o)
+ .debug_line 0x00000000000003c2 0x152 lib/libarm.a(string.o)
+ .debug_line 0x0000000000000514 0x112 drivers/libdrivers.a(uart.o)
+ .debug_line 0x0000000000000626 0x3b8 drivers/libdrivers.a(image.o)
+ .debug_line 0x00000000000009de 0x38e drivers/libdrivers.a(secure_verify.o)
+ .debug_line 0x0000000000000d6c 0x442 drivers/libdrivers.a(spifc_loader2.o)
+ .debug_line 0x00000000000011ae 0x251 drivers/libdrivers.a(bbt.o)
+ .debug_line 0x00000000000013ff 0x2bb drivers/libdrivers.a(sha256.o)
+ .debug_line 0x00000000000016ba 0x2a2 drivers/libdrivers.a(nor.o)
+ .debug_line 0x000000000000195c 0x299 drivers/libdrivers.a(ddr.o)
+ .debug_line 0x0000000000001bf5 0x88 drivers/libdrivers.a(drv_hash.o)
+ .debug_line 0x0000000000001c7d 0x117 drivers/libdrivers.a(drv_rsa.o)
+ .debug_line 0x0000000000001d94 0x10a drivers/libdrivers.a(flash.o)
+ .debug_line 0x0000000000001e9e 0x118 drivers/libdrivers.a(efuse.o)
+ .debug_line 0x0000000000001fb6 0xa7 cpu/m0/libm0.a(cpu.o)
-.debug_str 0x0000000000000000 0x160a
- .debug_str 0x0000000000000000 0x555 lib/libarm.a(board.o)
- 0x5cb (松开之前的大小)
- .debug_str 0x0000000000000555 0x3f lib/libarm.a(string.o)
+.debug_str 0x0000000000000000 0x1616
+ .debug_str 0x0000000000000000 0x561 lib/libarm.a(board.o)
+ 0x5d7 (松开之前的大小)
+ .debug_str 0x0000000000000561 0x3f lib/libarm.a(string.o)
0x214 (松开之前的大小)
- .debug_str 0x0000000000000594 0xe2 drivers/libdrivers.a(uart.o)
+ .debug_str 0x00000000000005a0 0xe2 drivers/libdrivers.a(uart.o)
0x253 (松开之前的大小)
- .debug_str 0x0000000000000676 0x35b drivers/libdrivers.a(image.o)
+ .debug_str 0x0000000000000682 0x35b drivers/libdrivers.a(image.o)
0x854 (松开之前的大小)
- .debug_str 0x00000000000009d1 0x2f9 drivers/libdrivers.a(secure_verify.o)
+ .debug_str 0x00000000000009dd 0x2f9 drivers/libdrivers.a(secure_verify.o)
0x61f (松开之前的大小)
- .debug_str 0x0000000000000cca 0x3c3 drivers/libdrivers.a(spifc_loader2.o)
+ .debug_str 0x0000000000000cd6 0x3c3 drivers/libdrivers.a(spifc_loader2.o)
0x6c1 (松开之前的大小)
- .debug_str 0x000000000000108d 0x103 drivers/libdrivers.a(bbt.o)
+ .debug_str 0x0000000000001099 0x103 drivers/libdrivers.a(bbt.o)
0x3fe (松开之前的大小)
- .debug_str 0x0000000000001190 0xc3 drivers/libdrivers.a(sha256.o)
+ .debug_str 0x000000000000119c 0xc3 drivers/libdrivers.a(sha256.o)
0x2b7 (松开之前的大小)
- .debug_str 0x0000000000001253 0x1ad drivers/libdrivers.a(nor.o)
+ .debug_str 0x000000000000125f 0x1ad drivers/libdrivers.a(nor.o)
0x5f3 (松开之前的大小)
- .debug_str 0x0000000000001400 0x54 drivers/libdrivers.a(ddr.o)
+ .debug_str 0x000000000000140c 0x54 drivers/libdrivers.a(ddr.o)
0x216 (松开之前的大小)
- .debug_str 0x0000000000001454 0x87 drivers/libdrivers.a(drv_hash.o)
+ .debug_str 0x0000000000001460 0x87 drivers/libdrivers.a(drv_hash.o)
0x25a (松开之前的大小)
- .debug_str 0x00000000000014db 0x79 drivers/libdrivers.a(drv_rsa.o)
+ .debug_str 0x00000000000014e7 0x79 drivers/libdrivers.a(drv_rsa.o)
0x29c (松开之前的大小)
- .debug_str 0x0000000000001554 0x12 drivers/libdrivers.a(flash.o)
+ .debug_str 0x0000000000001560 0x12 drivers/libdrivers.a(flash.o)
0x2a8 (松开之前的大小)
- .debug_str 0x0000000000001566 0x20 drivers/libdrivers.a(efuse.o)
+ .debug_str 0x0000000000001572 0x20 drivers/libdrivers.a(efuse.o)
0x255 (松开之前的大小)
- .debug_str 0x0000000000001586 0x84 cpu/m0/libm0.a(cpu.o)
+ .debug_str 0x0000000000001592 0x84 cpu/m0/libm0.a(cpu.o)
0x1f8 (松开之前的大小)
.debug_frame 0x0000000000000000 0xaf0
diff --git a/Uboot/cp/ps/driver/inc/misc/drvs_voiceprocess.h b/Uboot/cp/ps/driver/inc/misc/drvs_voiceprocess.h
index 67cc84d..acceb20 100755
--- a/Uboot/cp/ps/driver/inc/misc/drvs_voiceprocess.h
+++ b/Uboot/cp/ps/driver/inc/misc/drvs_voiceprocess.h
@@ -283,6 +283,10 @@
BOOL firstRegZCATFlag; //25
T_Hal_EcallData ecallData;//26
UINT8 voice_nv_update;//27
+ UINT8 useVoiceBuffer; // 0 not use,1 use
+ UINT8 voiceBufferType; //0 single core, 1 dual core
+
+
} T_zDrvVoice_GbVar; //T_zDrvVoice_GbVar
typedef struct
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/audio_config/audioRef_cfg.c b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/audio_config/audioRef_cfg.c
index 7489d52..20c1ddc 100755
--- a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/audio_config/audioRef_cfg.c
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/audio_config/audioRef_cfg.c
@@ -25,6 +25,7 @@
#include "drvs_general.h"
#include "drvs_i2s.h"
#include "drvs_voiceprocess.h"
+#include "hal_voiceprocess.h"
#include "drvs_voice_config.h"
#include "drvs_i2c.h"
#include "NvParam_drv.h"
@@ -132,7 +133,7 @@
//#define AUDIO_USE_FIXED_ADDRESS
-#define VP_INOUT_BAK_BUFFER_SIZE 0x30000 // 0x60000
+//#define VP_INOUT_BAK_BUFFER_SIZE 0x30000 // 0x60000
#define VP_INOUT_NOBAK_BUFSIZE 640
/**************************************************************************
@@ -595,7 +596,8 @@
//ret = zDrvNand_Read(OS_FLASH_VOICE_DRV_RW_NONFAC_BASE_ADDR, sizeof(audionvflag), ((UINT8 *)(&audionvflag)));
ret = zOss_NvItemRead(OS_FLASH_VOICE_DRV_RW_NONFAC_BASE_ADDR, ((UINT8 *)(&audionvflag)), sizeof(audionvflag));
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, " zDrvVoiceConfig_Init zOss_NvItemRead isVpParamInNv=%d,isUseSlicCodec=%d!\n", audionvflag.isVpParamInNv, audionvflag.isUseSlicCodec);
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, " zDrvVoiceConfig_Init zOss_NvItemRead isVpParamInNv=%d,isUseSlicCodec=%d,isUseVoiceProc=%d,isUseTdm=%d,isUseEcall=%d!\n", audionvflag.isVpParamInNv, audionvflag.isUseSlicCodec,audionvflag.isUseVoiceProc,audionvflag.isUseTdm,audionvflag.isUseEcall);
//hal_TestTopI2sConfig();
if (ret != DRV_SUCCESS)
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/audio_lib/amr/lib/armv7-a/GCC/amr.a b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/audio_lib/amr/lib/armv7-a/GCC/amr.a
index 01399c1..187ec92 100755
--- a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/audio_lib/amr/lib/armv7-a/GCC/amr.a
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/audio_lib/amr/lib/armv7-a/GCC/amr.a
Binary files differ
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/audiointf/hal_audextintf.c b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/audiointf/hal_audextintf.c
index dff7364..db57346 100755
--- a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/audiointf/hal_audextintf.c
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/audiointf/hal_audextintf.c
@@ -193,6 +193,40 @@
{
return g_voiceVar.muteEn;
}
+
+int zDrvVp_SetVoiceProc_Wrap(int val)
+{
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: val=%d !\n",__func__,val);
+
+ g_voiceVar.audio_ctrlFlag.isUseVoiceProc = val;
+ return DRV_SUCCESS;
+}
+
+int zDrvVp_GetVoiceProc_Wrap(void)
+{
+ return g_voiceVar.audio_ctrlFlag.isUseVoiceProc;
+}
+
+int zDrvVp_SetVoiceBuffer_Wrap(int en,int type)
+{
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: en=%d,type=%d !\n",__func__,en,type);
+
+ g_voiceVar.useVoiceBuffer = en;
+ g_voiceVar.voiceBufferType = type;
+ return DRV_SUCCESS;
+}
+
+void zDrvVp_GetVoiceBuffer_Wrap(int *en,int *type)
+{
+ if((en!=NULL)&&(type!=NULL)){
+ *en = g_voiceVar.useVoiceBuffer;
+ *type = g_voiceVar.voiceBufferType;
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: en=%d,type=%d !\n",__func__,*type,*en);
+ }
+}
+
+
SINT32 zDrvVp_SetRxMute_Wrap(int enable)
{
return zDrvVp_SetRxMute(enable, VOICE_DOWNLINK);
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/audiointf/voice_procintf.c b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/audiointf/voice_procintf.c
index 2f0e803..5146753 100755
--- a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/audiointf/voice_procintf.c
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/audiointf/voice_procintf.c
@@ -15,6 +15,10 @@
* Include files
****************************************************************************/
#include "drvs_general.h"
+
+#include "drvs_volte.h"
+#include "drvs_voiceprocess.h"
+
#include "drvs_ramlog.h"
#include <oss_clib.h>
#include <oss_kernel.h>
@@ -73,8 +77,12 @@
g_voiceVar.isUseSlicCodec = g_voiceVar.audio_ctrlFlag.isUseSlicCodec;
g_voiceVar.g_isUseTdm = g_voiceVar.audio_ctrlFlag.isUseTdm;
+
+ g_voiceVar.useVoiceBuffer = g_voiceVar.audio_ctrlFlag.isUseVoiceBuffer; // 0 not use,1 use
+ g_voiceVar.voiceBufferType = g_voiceVar.audio_ctrlFlag.selVoiceBufferType;//0 single core, 1 dual core
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, " VoiceProc_InitNvParam isUseVoiceProc=%d,isUseSlicCodec=%d,isUseTdm=%d!\n", g_voiceVar.audio_ctrlFlag.isUseVoiceProc, g_voiceVar.isUseSlicCodec, g_voiceVar.audio_ctrlFlag.isUseTdm);
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, " VoiceProc_InitNvParam isUseVoiceProc=%d,isUseSlicCodec=%d,isUseTdm=%d,useVoiceBuffer=%d,voiceBufferType=%d!\n", g_voiceVar.audio_ctrlFlag.isUseVoiceProc, \
+ g_voiceVar.isUseSlicCodec, g_voiceVar.audio_ctrlFlag.isUseTdm,g_voiceVar.useVoiceBuffer,g_voiceVar.voiceBufferType);
if (g_voiceVar.audio_ctrlFlag.isUseVoiceProc == 1)
{
#ifdef _USE_NXP_AUD
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/i2s/hal_i2s.c b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/i2s/hal_i2s.c
index 983a92a..5ea7c1d 100755
--- a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/i2s/hal_i2s.c
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/i2s/hal_i2s.c
@@ -4322,6 +4322,37 @@
*/
VOID vp_SetTopI2sConfig(VOID)
{
+
+
+UINT32 AmrRegBit = 0;
+
+if (g_voiceVar.useVoiceBuffer == 1){
+
+
+
+ /* inter loop */
+ AmrRegBit = ARM_I2S_LOOP_CFG;
+
+ AmrRegBit &= 0xfffffe07;
+ AmrRegBit |= 0x000000a8; /* 0x000000a8 loop dsp afe(loop i2s1)--arm i2s2(loop i2s2) 0x00000150 loop dsp arm(loop i2s1)--afe i2s2(loop i2s2)*/
+
+ ARM_I2S_LOOP_CFG = AmrRegBit;
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_SetTopI2sConfig ARM_I2S_LOOP_CFG=0x%x\n", ARM_I2S_LOOP_CFG);
+}
+#ifdef CONFIG_VOICE_BUFFER_DRV
+ /* inter loop */
+ AmrRegBit = ARM_I2S_LOOP_CFG;
+
+ AmrRegBit &= 0xfffffe07;
+ AmrRegBit |= 0x000000a8; /* 0x000000a8 loop dsp afe(loop i2s1)--arm i2s2(loop i2s2) 0x00000150 loop dsp arm(loop i2s1)--afe i2s2(loop i2s2)*/
+
+ ARM_I2S_LOOP_CFG = AmrRegBit;
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_SetTopI2sConfig ARM_I2S_LOOP_CFG=0x%x\n", ARM_I2S_LOOP_CFG);
+
+#endif
+
#if 0
UINT32 AmrRegBit = 0;
int ret;
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/include/hal_voicebuffer.h b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/include/hal_voicebuffer.h
new file mode 100755
index 0000000..a9fbd34
--- /dev/null
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/include/hal_voicebuffer.h
@@ -0,0 +1,107 @@
+/*******************************************************************************
+ * Copyright (C) 2007, ZTE Corporation.
+ *
+ * File Name: hal_voicebuffer.h
+ * File Mark:
+* Description: Provide voicebuffer hal function prototype declaration and type declaration.
+ * Others:
+ * Version: V0.5
+ * Author: xxq
+ * Date: 2024-07-11
+ * History 1:
+ * Date:
+ * Version:
+ * Author:
+ * Modification: add mute/read/write/loopback.
+ * History 2:
+ ********************************************************************************/
+
+#ifndef _HAL_VOICEBUFFER_H
+#define _HAL_VOICEBUFFER_H
+
+
+/****************************************************************************
+* Include files
+****************************************************************************/
+
+
+/****************************************************************************
+* Macros
+****************************************************************************/
+#define VP_BUF_LENGTH 0x7FF80 //0xFFD80 //0x7FE40 //0x4df80// (0.5M 0x80000)
+#define VP_FRAME_BUFFER_SIZE 320 //20ms 800KHZ
+#define VP_I2S_BUFFER_SIZE 320
+#define VOICE_SYNC_TIMEOUT_TIME 100
+
+ //#define VP_INOUT_BAK_BUFFER_SIZE 0x30000 // 0x60000
+#define VP_INOUT_NOBAK_BUFSIZE 640
+#define VB_MAX_INT 0x7fffffff
+#define VB_MIN_INT 0 //(0-2<<31)//0x80000000
+
+#define VB_INT_OVERFLOW(x) if((x < VB_MIN_INT)||(x > VB_MAX_INT)) x = 0;
+
+#define RPMSG_CAP_ID 1
+
+#define MAX_BUF_SIZE 640
+#define MAX_BUF_NUM 3
+
+/****************************************************************************
+* Types
+****************************************************************************/
+
+
+
+enum{
+ UP_LINK,
+ DOWN_LINK
+};
+
+struct voice_ring_buffer {
+ volatile uint read_pos;
+ volatile uint write_pos;
+ volatile char data[];
+
+};
+
+
+/****************************************************************************
+* Constants
+****************************************************************************/
+
+/****************************************************************************
+* Global Variables
+****************************************************************************/
+
+/****************************************************************************
+* Function Prototypes
+****************************************************************************/
+
+SINT32 vp_Open_Vbuffer(void);
+
+SINT32 vp_Close_Vbuffer(void);
+
+SINT32 vp_VoiceI2sStart_Vbuffer(VOID);
+
+VOID vp_VoiceI2sStop_Vbuffer(VOID);
+
+SINT32 zDrvVp_VoiceWorkStop_Vbuffer(VOID);
+
+SINT32 vp_VolteReadStart_Vbuffer(VOID);
+//whole replace
+SINT32 vp_VolteReadStop_Vbuffer(VOID);
+
+SINT32 vp_VolteWriteStart_Vbuffer(VOID);
+//whole replace
+SINT32 vp_VolteWriteStop_Vbuffer(VOID);
+
+SINT32 vp_WriteDataToCodec_Vbuffer(UINT8 *pBuf, UINT32 count);
+
+SINT32 vp_ReadDataFromCodec_Vbuffer(UINT8 *pBuf, UINT32 count);
+
+SINT32 vp_CreateThreadSemaph_Vbuffer(VOID);
+
+
+
+
+#endif/*_HAL_VOICEBUFFER_H*/
+
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/include/hal_voiceprocess.h b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/include/hal_voiceprocess.h
index 371297d..810e12c 100755
--- a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/include/hal_voiceprocess.h
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/include/hal_voiceprocess.h
@@ -23,14 +23,42 @@
* Include files *
**************************************************************************/
+
+/****************************************************************************
+* Local Types
+****************************************************************************/
+
+typedef enum
+{
+ VBUF_SEM = 0,//voice buffer
+ ECALL_SEM,
+ SEM_MAX
+} T_Sem_Owner;
+
+typedef enum
+{
+ DIR_RX,
+ DIR_TX,
+ DIR_ALL,
+ DIR_MAX
+} T_Data_Dir_Type;
+
+
/**************************************************************************
* Macro *
**************************************************************************/
+#define VP_INOUT_BAK_BUFFER_SIZE 0x30000 // 0x60000
+
+//#define TEST_WHITE_NOISE
+
+//#define VB_DATA_LOSS_TEST
+
+
#if 0
#define VOICE_TONE_MIXER_FUNCTION
//#define TEST_WHITE_NOISE
-
+#endif
/****************************************************************************
* Global Constants *
@@ -47,6 +75,7 @@
/****************************************************************************
* Function Prototypes *
****************************************************************************/
+#if 0
typedef enum
{
VP_I2S_IDLE = 0,
@@ -60,6 +89,13 @@
/**************************************************************************
* Function Prototypes *
**************************************************************************/
+#ifdef ECALL_SUPPORT
+
+
+SINT32 update_ecall_state(T_Data_Dir_Type dir);
+
+
+#endif
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/hal_nxp.c b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/hal_nxp.c
new file mode 100755
index 0000000..3dfed2e
--- /dev/null
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/hal_nxp.c
@@ -0,0 +1,1099 @@
+/*******************************************************************************
+ * Copyright (C) 2007, ZTE Corporation.
+ *
+ * File Name:
+ * File Mark:
+ * Description:
+ * Others:
+ * Version:
+ * Author: lvwenhua
+ * Date: 2011-8-24
+ * History 1:
+ * Date: 2016-2-16
+ * Version:
+ * Author:xuxinqiang
+ * Modification: edit for union version
+ * History 2:
+ ********************************************************************************/
+
+/****************************************************************************
+* Include files
+****************************************************************************/
+#include "drvs_general.h"
+#include "NvParam_drv.h"
+
+#ifdef _OS_TOS
+#include "./tos/LVVE.h"
+#include "./tos/PARAM_Default.h"
+#include "./tos/nxp_DrvNvData.h"
+
+#elif defined _OS_LINUX
+#include "./uclinux/LVVE.h"
+#include "./uclinux/PARAM_Default.h"
+#include "./uclinux/nxp_DrvNvData.h"
+
+#else
+#include "LVVE.h"
+#include "PARAM_Default.h"
+#include "nxp_DrvNvData.h"
+#endif
+
+#include "drvs_voiceprocess.h"
+#include "drvs_ramlog.h"
+
+#include "hal_audiointf.h"
+#include "RWNvConfig.h"
+
+/****************************************************************************
+* Local Macros
+****************************************************************************/
+#define MAX_BLK_SIZE 400 /* Maximum possible block size */
+#define LVVE_NUM_OF_SAMPLES 160
+#define VP_PARAM_IS_IN_NV 1
+
+/****************************************************************************
+* Global Constants
+****************************************************************************/
+//extern BOOL g_vpMuteEn;
+//extern UINT8 g_voiceInGsmTdMode;
+//extern UINT8 g_voiceInVolteMode;
+//extern UINT8 g_volteIsWb;
+//extern UINT8 g_isUseSlicCodec;
+extern T_zDrvVoice_GbVar g_voiceVar;
+static BOOL g_nxpIsOpen = FALSE;
+
+
+/****************************************************************************
+* Global Variables
+****************************************************************************/
+LVM_INT32 InBuffer16_Tx_FE[MAX_BLK_SIZE]; /* Stereo, 16-bit aligned input buffer */
+LVM_INT16 pNoiseData[4];
+
+LVM_MemoryTable_st MemoryTable_Tx = {0}; /* Module memory table */
+LVM_MemoryTable_st MemoryTable_Rx = {0}; /* Module memory table */
+LVVE_Tx_Handle_t hInstance_Tx = LVM_NULL; /* Module instance handle */
+LVVE_Rx_Handle_t hInstance_Rx = LVM_NULL; /* Module instance handle */
+
+#define NUM_VOL_RX (5) /* Number of Rx volumes */
+
+//LVM_CHAR LVVE_Tx_Preset_Buffer[LVVE_TX_PRESET_LENGTH]; /* Byte buffer */
+LVVE_Tx_Preset_t LVVE_Tx_Preset ; /* Preset buffer */
+//LVM_CHAR LVVE_Rx_Preset_Buffer[NUM_VOL_RX*LVVE_RX_PRESET_LENGTH]; /* Byte buffer */
+LVVE_Rx_Preset_t LVVE_Rx_Preset ; /* Preset buffer */
+//LVM_CHAR LVVE_Tx_Preset_Buffer_Volte[LVVE_TX_PRESET_LENGTH]; /* Byte buffer */
+//LVM_CHAR LVVE_Rx_Preset_Buffer_Volte[NUM_VOL_RX*LVVE_RX_PRESET_LENGTH]; /* Byte buffer */
+
+T_Audio_NvParam g_audioNvParam = {0};
+
+static LVM_UINT32 NumBytesReadRx; /* Number of bytes in the preset file RX*/
+static LVM_UINT32 NumBytesReadTx; /* Number of bytes in the preset file TX*/
+
+static BOOL isFirstTxProcessErr = TRUE;
+static BOOL isFirstRxProcessErr = TRUE;
+/****************************************************************************
+* Global Function Prototypes
+****************************************************************************/
+//T_ZDrv_VoiceOutputPath s_vpPathout;
+//T_ZDrvVoice_OutputVolLevel s_vpVolout;
+
+UINT32 zOss_NvItemRead(UINT32 NvItemID, UINT8 *NvItemData, UINT32 NvItemLen);
+UINT32 zOss_NvItemWrite(UINT32 NvItemID, UINT8 *NvItemData, UINT32 NvItemLen);
+
+/****************************************************************************
+* Function Definitions
+****************************************************************************/
+SINT32 Vp_NxpInitNvParam(VOID)
+{
+ SINT32 ret = DRV_SUCCESS;
+ SINT32 i = 0;
+
+ LVVE_VersionInfo pVersion; /* version information */
+ LVVE_GetVersionInfo(&pVersion);
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "nxp Version %s\n", pVersion.VersionNumber);
+#if 0
+ ret = zOss_NvItemRead(OS_FLASH_VOICE_DRV_RW_NONFAC_BASE_ADDR, ((UINT8 *)(&g_audioNvParam.audio_ctrlFlag)), sizeof(g_audioNvParam.audio_ctrlFlag));
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpInitNvParam voice flag baseAdd=0x%x, ret =%d ,isVpParamInNv= %d \n", (OS_FLASH_VOICE_DRV_RW_NONFAC_BASE_ADDR), \
+ ret, g_audioNvParam.audio_ctrlFlag.isVpParamInNv);
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpInitNvParam voiceflag isVpParamInNv=%d,isUseSlicCodec=%d,isUseVoiceProc=%d,isUseCodecDsp=%d,isUseNvWrite=%d \n", \
+ g_audioNvParam.audio_ctrlFlag.isVpParamInNv, g_audioNvParam.audio_ctrlFlag.isUseSlicCodec, g_audioNvParam.audio_ctrlFlag.isUseVoiceProc, \
+ g_audioNvParam.audio_ctrlFlag.isUseCodecDsp, g_audioNvParam.audio_ctrlFlag.isUseNvWrite);
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpInitNvParam the g_audioNvParam size=%d,audio_ctrlFlag size=%d\n", \
+ sizeof(g_audioNvParam), sizeof(g_audioNvParam.audio_ctrlFlag));
+
+ g_voiceVar.audio_ctrlFlag = g_audioNvParam.audio_ctrlFlag;
+ g_voiceVar.isUseSlicCodec = g_audioNvParam.audio_ctrlFlag.isUseSlicCodec;
+ g_voiceVar.g_isUseTdm = g_audioNvParam.audio_ctrlFlag.isUseTdm;
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, " Vp_NxpInitNvParam g_voiceVar.isUseSlicCodec=%d, g_voiceVar.g_isUseTdm=%d!\n", g_voiceVar.isUseSlicCodec, g_voiceVar.g_isUseTdm);
+#endif
+
+ g_audioNvParam.audio_ctrlFlag = g_voiceVar.audio_ctrlFlag;
+#if 0
+ if (g_audioNvParam.audio_ctrlFlag.isVpParamInNv == 1)
+ {
+ ret = zOss_NvItemRead(OS_FLASH_VOICE_RW_NONFAC_BASE_ADDR, ((UINT8 *)(&g_audioNvParam.vpNxpParamFile)), sizeof(g_audioNvParam.vpNxpParamFile));
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpInitNvParam Read audio nv param base add=0x%x,vpNxpParamFile size=%d \n", \
+ (OS_FLASH_VOICE_RW_NONFAC_BASE_ADDR), sizeof(g_audioNvParam.vpNxpParamFile));
+
+ }
+ else
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpInitNvParam Set all path to the default param, txbuffer size=%d, rxbuffer size=%d \n", sizeof(LVVE_Tx_Preset_Buffer_Voice_Tool), sizeof(LVVE_Rx_Preset_Buffer_Voice_Tool));
+ // Vp_Nxp_Param_File.LVVE_Tx_File_Buffer=LVVE_Tx_Preset_Buffer_Voice_Tool;
+ //Vp_Nxp_Param_File.LVVE_Rx_File_Buffer=LVVE_Rx_Preset_Buffer_Voice_Tool;
+ for (i = 0; i < AUDIO_MAX_VP_PATH; i++)
+ {
+ zOss_Memcpy(g_audioNvParam.vpNxpParamFile.vpNxpPathParam[i].nxpTxFileBuffer, LVVE_Tx_Preset_Buffer_Voice_Tool, sizeof(LVVE_Tx_Preset_Buffer_Voice_Tool));
+ zOss_Memcpy(g_audioNvParam.vpNxpParamFile.vpNxpPathParam[i].nxpRxFileBuffer, LVVE_Rx_Preset_Buffer_Voice_Tool, sizeof(LVVE_Rx_Preset_Buffer_Voice_Tool));
+ }
+ zOss_Memcpy(g_audioNvParam.vpNxpParamFile.nxpTxNbMuteBuffer, LVVE_Tx_Mute_File_Buffer, sizeof(LVVE_Tx_Mute_File_Buffer));
+ zOss_Memcpy(g_audioNvParam.vpNxpParamFile.nxpTxWbMuteBuffer, LVVE_Tx_Wb_Mute_File_Buffer, sizeof(LVVE_Tx_Wb_Mute_File_Buffer));
+ }
+#endif
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpInitNvParam is over \n");
+
+ return ret;
+}
+
+SINT32 Vp_NxpOpen(UINT32 fs)
+{
+
+ LVVE_Tx_InstanceParams_st InstanceParams_Tx; /* Instance parameters */
+ LVVE_Rx_InstanceParams_st InstanceParams_Rx; /* Instance parameters */
+ LVVE_ReturnStatus_en LVVE_Status; /* Module status return */
+ LVM_INT32 i, ret = 0; /* Index variable */
+
+ if (g_nxpIsOpen == TRUE)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "nxp already opened! \n");
+ return DRV_SUCCESS;
+ }
+
+ if (fs == 8000)
+ {
+
+ InstanceParams_Rx.SampleRate = LVM_FS_8000;
+ InstanceParams_Rx.EQ_InstParams.EQ_MaxLength = LVVE_MAX_EQ_LENGTH_NB;
+ InstanceParams_Tx.SampleRate = LVM_FS_8000;
+ InstanceParams_Tx.MaxBulkDelay = LVVE_MAX_BULK_DELAY;
+ InstanceParams_Tx.EQ_InstParams.EQ_MaxLength = LVVE_MAX_EQ_LENGTH_NB;
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpOpen confg NB param! \n", fs);
+ }
+ else if (fs == 16000)
+ {
+ InstanceParams_Rx.SampleRate = LVM_FS_16000;
+ InstanceParams_Rx.EQ_InstParams.EQ_MaxLength = LVVE_MAX_EQ_LENGTH_WB;
+ InstanceParams_Tx.SampleRate = LVM_FS_16000;
+ InstanceParams_Tx.MaxBulkDelay = LVVE_MAX_BULK_DELAY;
+ InstanceParams_Tx.EQ_InstParams.EQ_MaxLength = LVVE_MAX_EQ_LENGTH_WB;
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpOpen confg WB param ! \n", fs);
+ }
+ else
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpOpen nxp the fs=%d not support! \n", fs);
+ return DRV_ERROR;
+ }
+
+ /******************************************************************************
+ Allocate memory
+ *******************************************************************************/
+ /*
+ * Get the memory requirements for the Tx Module
+ */
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "before LVVE_Tx_GetMemoryTable\n");
+
+ LVVE_Status = LVVE_Tx_GetMemoryTable(LVM_NULL,
+ &MemoryTable_Tx,
+ &InstanceParams_Tx);
+
+ if (LVVE_Status == LVVE_NULLADDRESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Parameter error - null pointer error returned by LVVE_Tx_GetMemoryTable\n");
+ return DRV_ERROR;
+ }
+ if (LVVE_Status == LVVE_OUTOFRANGE)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Parameter error - out of range error returned by LVVE_Tx_GetMemoryTable\n");
+ return DRV_ERROR;
+ }
+
+ /*
+ * Allocate the memory for the Tx module
+ */
+ for (i = 0; i < LVM_NR_MEMORY_REGIONS; i++)
+ {
+ if (MemoryTable_Tx.Region[i].Size != 0)
+ {
+ MemoryTable_Tx.Region[i].pBaseAddress = zOss_Malloc(MemoryTable_Tx.Region[i].Size);
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Nxp tx malloc size = %d", MemoryTable_Tx.Region[i].Size);
+
+ if (MemoryTable_Tx.Region[i].pBaseAddress == LVM_NULL)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Failed to allocate %d bytes for region %d\n", (LVM_INT16)MemoryTable_Tx.Region[i].Size, (LVM_INT16)i);
+ }
+ }
+
+ }
+
+ /*
+ * Get the memory requirements for the Rx Module
+ */
+
+ LVVE_Status = LVVE_Rx_GetMemoryTable(LVM_NULL,
+ &MemoryTable_Rx,
+ &InstanceParams_Rx);
+ if (LVVE_Status == LVVE_NULLADDRESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Parameter error - null pointer error returned by LVVE_Rx_GetMemoryTable\n");
+ return DRV_ERROR;
+ }
+ if (LVVE_Status == LVVE_OUTOFRANGE)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Parameter error - out of range error returned by LVVE_Rx_GetMemoryTable\n");
+ return DRV_ERROR;
+ }
+
+ /*
+ * Allocate the memory for the Rx module
+ */
+ for (i = 0; i < LVM_NR_MEMORY_REGIONS; i++)
+ {
+ if (MemoryTable_Rx.Region[i].Size != 0)
+ {
+ MemoryTable_Rx.Region[i].pBaseAddress = zOss_Malloc(MemoryTable_Rx.Region[i].Size);
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Nxp rx malloc size = %d\n", MemoryTable_Rx.Region[i].Size);
+
+ if (MemoryTable_Rx.Region[i].pBaseAddress == LVM_NULL)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Failed to allocate %d bytes for region %d\n", (LVM_INT16)MemoryTable_Rx.Region[i].Size, (LVM_INT16)i);
+ }
+ }
+ }
+
+ /*
+ * Allocate the memory for the noise data buffer (2*LVVE_NUM_OF_SAMPLES)
+ */
+
+ hInstance_Tx = LVM_NULL; /* Initialise to NULL */
+ LVVE_Status = LVVE_Tx_GetInstanceHandle(&hInstance_Tx, /* Init sets the instance handle */
+ &MemoryTable_Tx,
+ &InstanceParams_Tx);
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "LVVE_Tx_GetInstanceHandle LVVE_Status=%d\n", LVVE_Status);
+ if (LVVE_Status == LVVE_NULLADDRESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Parameter error - null pointer error returned by LVVE_Tx_GetInstanceHandle\n");
+ return DRV_ERROR;
+ }
+ if (LVVE_Status == LVVE_OUTOFRANGE)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Parameter error - out of range error returned by LVVE_Tx_GetInstanceHandle\n");
+ return DRV_ERROR;
+ }
+
+ hInstance_Rx = LVM_NULL; /* Initialise to NULL */
+ LVVE_Status = LVVE_Rx_GetInstanceHandle(&hInstance_Rx, /* Init sets the instance handle */
+ &MemoryTable_Rx,
+ &InstanceParams_Rx);
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "LVVE_Rx_GetInstanceHandle LVVE_Status=%d\n", LVVE_Status);
+ if (LVVE_Status == LVVE_NULLADDRESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Parameter error - null pointer error returned by LVVE_Rx_GetInstanceHandle\n");
+ return DRV_ERROR;
+ }
+ if (LVVE_Status == LVVE_OUTOFRANGE)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Parameter error - out of range error returned by LVVE_Rx_GetInstanceHandle\n");
+ return DRV_ERROR;
+ }
+ LVM_UINT32 nxpParamSize = 0, nxpParamOffset = 0;
+
+ nxpParamSize = 4 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
+
+ g_audioNvParam.s_nxpPathParam = zOss_Malloc(nxpParamSize);
+ if (g_audioNvParam.s_nxpPathParam == NULL)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Failed to allocate g_audioNvParam.s_nxpPathParam\n");
+ return DRV_ERROR;
+ }
+
+ g_audioNvParam.s_nxpTxNbMuteParam = zOss_Malloc(2 * LVWM_TX_FILE_SIZE);
+ if (g_audioNvParam.s_nxpTxNbMuteParam == NULL)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Failed to allocate g_audioNvParam.s_nxpTxNbMuteParam\n");
+ return DRV_ERROR;
+ }
+ g_audioNvParam.s_nxpTxWbMuteParam = g_audioNvParam.s_nxpTxNbMuteParam + LVWM_TX_FILE_SIZE;
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpOpen s_nxpPathParam=%p,s_nxpTxNbMuteParam=%p\n", g_audioNvParam.s_nxpPathParam, g_audioNvParam.s_nxpTxNbMuteParam);
+ if (g_audioNvParam.audio_ctrlFlag.isVpParamInNv == 1)
+ {
+ if (g_voiceVar.voiceMode == VOICE_GSM_MODE)
+ {
+ nxpParamOffset = 0;
+ }
+ else if ((g_voiceVar.voiceMode == VOICE_WCDMA_MODE) || (g_voiceVar.voiceMode == VOICE_TD_MODE))
+ {
+ if (g_voiceVar.volteIsWb != 1)
+ {
+ nxpParamOffset = nxpParamSize;
+ }
+ else
+ {
+ nxpParamOffset = 2 * nxpParamSize;
+ }
+ }
+ else if (g_voiceVar.voiceMode == VOICE_LTE_MODE)
+ {
+ if (g_voiceVar.volteIsWb != 1)
+ {
+ nxpParamOffset = 3 * nxpParamSize;
+ }
+ else
+ {
+ nxpParamOffset = 4 * nxpParamSize;
+ }
+ }
+
+ ret = zOss_NvItemRead(OS_FLASH_VOICE_RW_NONFAC_BASE_ADDR + nxpParamOffset, g_audioNvParam.s_nxpPathParam, nxpParamSize);
+
+ nxpParamOffset = 5 * nxpParamSize;
+ ret = zOss_NvItemRead(OS_FLASH_VOICE_RW_NONFAC_BASE_ADDR + nxpParamOffset, g_audioNvParam.s_nxpTxNbMuteParam, 2 * LVWM_TX_FILE_SIZE);
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpInitNvParam Read audio nv param base add=0x%x,vpNxpParamFile size=%d \n", \
+ (OS_FLASH_VOICE_RW_NONFAC_BASE_ADDR + nxpParamOffset), nxpParamSize);
+
+ }
+ else
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpInitNvParam Set all path to the default param, txbuffer size=%d, rxbuffer size=%d \n", sizeof(LVVE_Tx_Preset_Buffer_Voice_Tool), sizeof(LVVE_Rx_Preset_Buffer_Voice_Tool));
+ // Vp_Nxp_Param_File.LVVE_Tx_File_Buffer=LVVE_Tx_Preset_Buffer_Voice_Tool;
+ //Vp_Nxp_Param_File.LVVE_Rx_File_Buffer=LVVE_Rx_Preset_Buffer_Voice_Tool;
+ for (i = 0; i < 4; i++)
+ {
+ zOss_Memcpy(g_audioNvParam.s_nxpPathParam + i * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE), LVVE_Tx_Preset_Buffer_Voice_Tool, sizeof(LVVE_Tx_Preset_Buffer_Voice_Tool));
+ zOss_Memcpy(g_audioNvParam.s_nxpPathParam + LVWM_TX_FILE_SIZE + i * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE), LVVE_Rx_Preset_Buffer_Voice_Tool, sizeof(LVVE_Rx_Preset_Buffer_Voice_Tool));
+ }
+ zOss_Memcpy(g_audioNvParam.s_nxpTxNbMuteParam, LVVE_Tx_Mute_File_Buffer, sizeof(LVVE_Tx_Mute_File_Buffer));
+ zOss_Memcpy(g_audioNvParam.s_nxpTxWbMuteParam, LVVE_Tx_Wb_Mute_File_Buffer, sizeof(LVVE_Tx_Wb_Mute_File_Buffer));
+ }
+ isFirstTxProcessErr = TRUE;
+ isFirstRxProcessErr = TRUE;
+ g_nxpIsOpen = TRUE;
+
+ return DRV_SUCCESS;
+}
+
+SINT32 Vp_NxpClose(VOID)
+{
+
+ LVVE_ReturnStatus_en LVVE_Status; /* Module status return */
+ LVM_INT32 i; /* Index variable */
+
+ LVVE_Status = LVVE_Tx_GetMemoryTable(hInstance_Tx,
+ &MemoryTable_Tx,
+ LVM_NULL);
+
+ if (LVVE_Status == LVVE_NULLADDRESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpClose Parameter error - null pointer error returned by LVVE_Tx_GetMemoryTable\n");
+ return DRV_ERROR;
+ }
+ if (LVVE_Status == LVVE_OUTOFRANGE)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpClose Parameter error - out of range error returned by LVVE_Tx_GetMemoryTable\n");
+ return DRV_ERROR;
+ }
+
+ /* For each region */
+ for (i = 0; i < LVM_NR_MEMORY_REGIONS; i++)
+ {
+ if ((MemoryTable_Tx.Region[i].Size != 0) && (MemoryTable_Tx.Region[i].pBaseAddress != LVM_NULL))
+ {
+ zOss_Free(MemoryTable_Tx.Region[i].pBaseAddress);
+ MemoryTable_Tx.Region[i].pBaseAddress = LVM_NULL;
+ }
+ }
+
+ LVVE_Status = LVVE_Rx_GetMemoryTable(hInstance_Rx,
+ &MemoryTable_Rx,
+ LVM_NULL);
+
+ if (LVVE_Status == LVVE_NULLADDRESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpClose Parameter error - null pointer error returned by LVVE_Rx_GetMemoryTable\n");
+ return DRV_ERROR;
+ }
+
+ if (LVVE_Status == LVVE_OUTOFRANGE)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpClose Parameter error - out of range error returned by LVVE_Rx_GetMemoryTable\n");
+ return DRV_ERROR;
+ }
+
+ /* For each region */
+ for (i = 0; i < LVM_NR_MEMORY_REGIONS; i++)
+ {
+ if ((MemoryTable_Rx.Region[i].Size != 0) && (MemoryTable_Rx.Region[i].pBaseAddress != LVM_NULL))
+ {
+ zOss_Free(MemoryTable_Rx.Region[i].pBaseAddress);
+ MemoryTable_Rx.Region[i].pBaseAddress = LVM_NULL;
+ }
+ }
+
+ if (g_audioNvParam.s_nxpPathParam != NULL)
+ {
+ zOss_Free(g_audioNvParam.s_nxpPathParam);
+ g_audioNvParam.s_nxpPathParam = NULL;
+ }
+ if (g_audioNvParam.s_nxpTxNbMuteParam != NULL)
+ {
+ zOss_Free(g_audioNvParam.s_nxpTxNbMuteParam);
+ g_audioNvParam.s_nxpTxNbMuteParam = NULL;
+ }
+
+ hInstance_Tx = LVM_NULL;
+ hInstance_Rx = LVM_NULL;
+ g_nxpIsOpen = FALSE;
+
+ //zOss_Free(pNoiseData);
+
+// zOss_Printf(SUBMDL_HAL, PRINT_LEVEL_NORMAL,"Vp_NxpClose success\n");
+ return DRV_SUCCESS;
+}
+
+SINT32 Vp_NxpGetParam(T_ZDrvVoice_MODE voiceMode, T_ZDrv_VpPath path)
+{
+ //add by zhanglixia
+ //UINT32 ret;//xiu gai chu
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParam ######get NXP parameter start####### voiceMode=%d,path=%d \n", voiceMode, path);
+ UINT32 pathTxOffset, pathRxOffset;
+ /************************************************************************************/
+ /* Set the Voice Engine Parameter values */
+ /************************************************************************************/
+ /*
+ * Read the Rx preset file and send the bytes to the Rx Module
+ */
+
+ if (g_nxpIsOpen == FALSE)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParam, nxp has not been opened yet!\n");
+ return DRV_ERR_NOT_OPENED;
+ }
+
+ /*klocwork 3 INVARIANT_CONDITION.UNREACH MAX_VP_PATH¸ÄΪVP_PATH_BLUETOOTH ºÍɾ³ý (path<0)*/
+ if (path > VP_PATH_BLUETOOTH)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParam the path error\n");
+ return DRV_ERROR;
+ }
+
+ if (g_audioNvParam.audio_ctrlFlag.isUseVoiceProc != 1)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParam error g_audioNvParam.audio_ctrlFlag.isUseVoiceProc != 1 \n");
+ return DRV_ERROR;
+ }
+
+ pathTxOffset = path * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
+ pathRxOffset = path * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE) + LVWM_TX_FILE_SIZE;
+
+ if (g_audioNvParam.audio_ctrlFlag.isVpParamInNv == 1)
+ {
+ LVVE_Tx_Preset = (LVM_CHAR*)g_audioNvParam.s_nxpPathParam + pathTxOffset ;
+ LVVE_Rx_Preset = (LVM_CHAR*)g_audioNvParam.s_nxpPathParam + pathRxOffset ;
+
+ NumBytesReadTx = LVWM_TX_FILE_SIZE;
+ NumBytesReadRx = LVWM_RX_FILE_SIZE;
+ }
+ else
+ {
+ LVVE_Rx_Preset = LVVE_Rx_Preset_Buffer_Voice_Tool;
+ LVVE_Tx_Preset = LVVE_Tx_Preset_Buffer_Voice_Tool;
+
+ NumBytesReadTx = sizeof(LVVE_Tx_Preset_Buffer_Voice_Tool);
+ NumBytesReadRx = sizeof(LVVE_Rx_Preset_Buffer_Voice_Tool);
+
+ }
+
+ if (g_voiceVar.muteEn == TRUE)
+ {
+ if (g_audioNvParam.audio_ctrlFlag.isVpParamInNv == 1)
+ {
+ if (g_voiceVar.volteIsWb != 1)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParam set nb mute config !\r\n");
+ LVVE_Tx_Preset = g_audioNvParam.s_nxpTxNbMuteParam;//xiu gai chu tong shang
+ NumBytesReadTx = LVWM_TX_FILE_SIZE;
+ }
+ else
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParam set wb mute config !\r\n");
+ LVVE_Tx_Preset = g_audioNvParam.s_nxpTxWbMuteParam;//xiu gai chu tong shang
+ NumBytesReadTx = LVWM_TX_FILE_SIZE;
+ }
+ }
+ else
+ {
+ if (g_voiceVar.volteIsWb != 1)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParam set nb mute config !\r\n");
+ LVVE_Tx_Preset = LVVE_Tx_Mute_File_Buffer;
+ NumBytesReadTx = sizeof(LVVE_Tx_Mute_File_Buffer);
+ }
+ else
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParam set wb mute config !\r\n");
+ LVVE_Tx_Preset = LVVE_Tx_Wb_Mute_File_Buffer;
+ NumBytesReadTx = sizeof(LVVE_Tx_Wb_Mute_File_Buffer);
+
+ }
+ }
+ }
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParam NumBytesReadRx=%d NumBytesReadTx= %d\n ", NumBytesReadRx , NumBytesReadTx);
+ /*klocwork 3 INVARIANT_CONDITION.UNREACH delete if*/
+ /*
+ if ((NumBytesReadRx == LVM_NULL) || (NumBytesReadTx == LVM_NULL))
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParam NXP read para is null !\r\n");
+ return DRV_ERROR;
+ }*/
+ return DRV_SUCCESS;
+
+}
+
+SINT32 Vp_NxpSetParam(T_ZDrv_VpPath path, T_ZDrv_VpVol volume, BOOL isLoop)
+{
+ LVVE_ReturnStatus_en LVVE_Status; /* Module status return */
+ LVM_UINT16 VolumeIndex;
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParam ######set NXP parameter start#######");
+ /************************************************************************************/
+ /* Set the Voice Engine Parameter values */
+ /************************************************************************************/
+ if (g_nxpIsOpen == FALSE)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParam, nxp has not been opened yet!\n");
+ return DRV_ERR_NOT_OPENED;
+ }
+
+ /*klocwork 3 INVARIANT_CONDITION.UNREACH MAX_VP_PATH¸ÄΪVP_PATH_BLUETOOTH ºÍɾ³ý (path<0)*/
+ if (path > VP_PATH_BLUETOOTH)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParam the path error\n");
+ return DRV_ERROR;
+ }
+ VolumeIndex = volume; /* Max Rx volume */
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParam VolumeIndex is %d\n", VolumeIndex);
+
+ if ((hInstance_Rx == NULL) || (LVVE_Rx_Preset == NULL) || (hInstance_Tx == NULL) || (LVVE_Tx_Preset == NULL))
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParam, the input parameter is NULL\n");
+ return DRV_ERR_INVALID_PARAM;
+ }
+
+ LVVE_Status = LVVE_Rx_SetPreset(hInstance_Rx, LVVE_Rx_Preset, NumBytesReadRx, VolumeIndex);
+ if (LVVE_Status != LVVE_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParam Error returned by LVVE_Rx_SetPreset: Error_code = %d\n", LVVE_Status);
+ return DRV_ERROR;
+ }
+
+ LVVE_Status = LVVE_Tx_SetPreset(hInstance_Tx, LVVE_Tx_Preset, NumBytesReadTx, 0);
+ if (LVVE_Status != LVVE_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParam Error returned by LVVE_Tx_SetPreset: Error_code = %d\n", LVVE_Status);
+ return DRV_ERROR;
+ }
+
+ return DRV_SUCCESS;
+}
+
+SINT32 Vp_NxpSetParamTool(T_ZDrv_VpPath path, T_ZDrv_VpVol volume,
+ zDrvVp_NxpParamsTool *NxpParamsTool, BOOL isLoop, BOOL isVolte)
+{
+ LVVE_ReturnStatus_en LVVE_Status; /* Module status return */
+ //LVM_UINT32 ret;//xiu gai chu
+ LVM_UINT16 VolumeIndex; /* Volume index variable */
+ UINT32 nvAddrTxOffset = 0;
+ UINT32 nvAddrRxOffset = 0;
+
+ UINT32 pathTxOffset, pathRxOffset;
+
+ UINT32 ret = DRV_SUCCESS;
+ /************************************************************************************/
+ /* Set the Voice Engine Parameter values */
+ /************************************************************************************/
+ VolumeIndex = volume; /* Max Rx volume */
+ if (g_nxpIsOpen == FALSE)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParamTool,nxp has not been opened yet!\n");
+ return DRV_ERR_NOT_OPENED;
+ }
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "######set NXP parameter start#######");
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParamTool path = %d, volume = %d\n", path, volume);
+ if ((NxpParamsTool->PresetLengthTx > LVWM_TX_FILE_SIZE) || (NxpParamsTool->PresetLengthRx > LVWM_RX_FILE_SIZE))
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "The length is wrong!PresetLengthRx=%d,PresetLengthTx=%d", NxpParamsTool->PresetLengthRx, NxpParamsTool->PresetLengthTx);
+ return DRV_ERROR;
+ }
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "PresetLengthRx=%d NumBytesReadRx= %d volume= %d", NxpParamsTool->PresetLengthRx, NumBytesReadRx, volume);
+
+ LVVE_Status = LVVE_Rx_SetPreset(hInstance_Rx, (const LVVE_Rx_Preset_t)NxpParamsTool->pPresetRx, NxpParamsTool->PresetLengthRx, VolumeIndex);
+
+ if (LVVE_Status != LVVE_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Error returned by LVVE_Rx_SetPreset: Error_code = %d\n", LVVE_Status);
+ return DRV_ERROR;
+ }
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "PresetLengthTx=%d NumBytesReadTx= %d", NxpParamsTool->PresetLengthTx, NumBytesReadTx);
+ LVVE_Status = LVVE_Tx_SetPreset(hInstance_Tx, (const LVVE_Tx_Preset_t)NxpParamsTool->pPresetTx, NxpParamsTool->PresetLengthTx, 0);
+
+ if (LVVE_Status != LVVE_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Error returned by LVVE_Tx_SetPreset: Error_code = %d\n", LVVE_Status);
+ return DRV_ERROR;
+ }
+
+ if (g_audioNvParam.audio_ctrlFlag.isVpParamInNv == 1)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParamTool set voice param isVpParamInNv \n");
+
+ if (g_voiceVar.muteEn == TRUE)
+ {
+ if (g_voiceVar.volteIsWb == 1)
+ {
+ zOss_Memcpy(g_audioNvParam.s_nxpTxWbMuteParam, NxpParamsTool->pPresetTx, NxpParamsTool->PresetLengthTx);
+ }
+ else
+ {
+ zOss_Memcpy(g_audioNvParam.s_nxpTxNbMuteParam, NxpParamsTool->pPresetTx, NxpParamsTool->PresetLengthTx);
+ }
+ }
+ else
+ {
+ pathTxOffset = path * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
+ pathRxOffset = path * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE) + LVWM_TX_FILE_SIZE;
+
+ zOss_Memcpy(g_audioNvParam.s_nxpPathParam + pathTxOffset, NxpParamsTool->pPresetTx, NxpParamsTool->PresetLengthTx);
+ zOss_Memcpy(g_audioNvParam.s_nxpPathParam + pathRxOffset, NxpParamsTool->pPresetRx, NxpParamsTool->PresetLengthRx);
+ }
+
+ if (g_audioNvParam.audio_ctrlFlag.isUseNvWrite == 1)
+ {
+ if (g_voiceVar.voiceMode == VOICE_GSM_MODE)
+ {
+ if (path == VP_PATH_HANDSET)
+ {
+ nvAddrTxOffset = 0;
+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
+
+
+ }
+ else if (path == VP_PATH_SPEAKER)
+ {
+ nvAddrTxOffset = LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE;
+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
+ }
+ else if (path == VP_PATH_HEADSET)
+ {
+ nvAddrTxOffset = 2 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
+
+ }
+ else if (path == VP_PATH_BLUETOOTH)
+ {
+
+ nvAddrTxOffset = 3 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
+ }
+
+ }
+ else if ((g_voiceVar.voiceMode == VOICE_WCDMA_MODE) || (g_voiceVar.voiceMode == VOICE_TD_MODE))
+ {
+ if (g_voiceVar.volteIsWb != 1)
+ {
+ if (path == VP_PATH_HANDSET)
+ {
+ nvAddrTxOffset = 4 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
+ }
+ else if (path == VP_PATH_SPEAKER)
+ {
+ nvAddrTxOffset = 5 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
+ }
+ else if (path == VP_PATH_HEADSET)
+ {
+ nvAddrTxOffset = 6 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
+ }
+ else if (path == VP_PATH_BLUETOOTH)
+ {
+ nvAddrTxOffset = 7 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
+ }
+ }
+ else
+ {
+ if (path == VP_PATH_HANDSET)
+ {
+ nvAddrTxOffset = 8 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
+ }
+ else if (path == VP_PATH_SPEAKER)
+ {
+ nvAddrTxOffset = 9 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
+ }
+ else if (path == VP_PATH_HEADSET)
+ {
+ nvAddrTxOffset = 10 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
+ }
+ else if (path == VP_PATH_BLUETOOTH)
+ {
+ nvAddrTxOffset = 11 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
+ }
+ }
+ }
+ else if (g_voiceVar.voiceMode == VOICE_LTE_MODE)
+ {
+ if (g_voiceVar.volteIsWb != 1)
+ {
+ if (path == VP_PATH_HANDSET)
+ {
+ nvAddrTxOffset = 12 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
+ }
+ else if (path == VP_PATH_SPEAKER)
+ {
+ nvAddrTxOffset = 13 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
+ }
+ else if (path == VP_PATH_HEADSET)
+ {
+ nvAddrTxOffset = 14 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
+ }
+ else if (path == VP_PATH_BLUETOOTH)
+ {
+ nvAddrTxOffset = 15 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
+ }
+ }
+ else
+ {
+ if (path == VP_PATH_HANDSET)
+ {
+ nvAddrTxOffset = 16 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
+ }
+ else if (path == VP_PATH_SPEAKER)
+ {
+ nvAddrTxOffset = 17 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
+ }
+ else if (path == VP_PATH_HEADSET)
+ {
+ nvAddrTxOffset = 18 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
+ }
+ else if (path == VP_PATH_BLUETOOTH)
+ {
+ nvAddrTxOffset = 19 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
+ }
+ }
+ }
+
+ if (g_voiceVar.muteEn != TRUE)
+ {
+ ret = zOss_NvItemWrite(OS_FLASH_VOICE_RW_NONFAC_BASE_ADDR + nvAddrTxOffset, (UINT8*)NxpParamsTool->pPresetTx, NxpParamsTool->PresetLengthTx);
+ if (ZOSS_SUCCESS == ret)
+ {
+ ret = Nvram_Flush();
+ }
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParamTool set tx config to nv ,path=%d,add=0x%x !\r\n", path, OS_FLASH_VOICE_RW_NONFAC_BASE_ADDR + nvAddrTxOffset);
+ }
+ ret = zOss_NvItemWrite(OS_FLASH_VOICE_RW_NONFAC_BASE_ADDR + nvAddrRxOffset, (UINT8*)NxpParamsTool->pPresetRx, NxpParamsTool->PresetLengthRx);
+ if (ZOSS_SUCCESS == ret)
+ {
+ ret = Nvram_Flush();
+ }
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParamTool set rx config to nv ,path=%d,add=0x%x !\r\n", path, OS_FLASH_VOICE_RW_NONFAC_BASE_ADDR + nvAddrTxOffset);
+ if (g_voiceVar.muteEn == TRUE)
+ {
+ if (g_voiceVar.volteIsWb != 1)
+ {
+ nvAddrTxOffset = 20 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParamTool set nb mute config to nv ,path=%d,add=0x%x !\r\n", path, OS_FLASH_VOICE_RW_NONFAC_BASE_ADDR + nvAddrTxOffset);
+ }
+ else
+ {
+ nvAddrTxOffset = 20 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE) + LVWM_TX_FILE_SIZE;
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParamTool set wb mute config to nv ,path=%d,add=0x%x !\r\n", path, OS_FLASH_VOICE_RW_NONFAC_BASE_ADDR + nvAddrTxOffset);
+ }
+ ret = zOss_NvItemWrite(OS_FLASH_VOICE_RW_NONFAC_BASE_ADDR + nvAddrTxOffset, (UINT8*)NxpParamsTool->pPresetTx, NxpParamsTool->PresetLengthTx);
+ if (ZOSS_SUCCESS == ret)
+ {
+ ret = Nvram_Flush();
+ }
+ }
+
+ }
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParamTool get voice mode param \n");
+ }
+ else
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParamTool set voice param not isVpParamInNv \n");
+ if (NxpParamsTool->PresetLengthTx <= sizeof(LVVE_Tx_Preset_Buffer_Voice_Tool))
+ zOss_Memcpy(LVVE_Tx_Preset_Buffer_Voice_Tool, NxpParamsTool->pPresetTx, NxpParamsTool->PresetLengthTx);
+ if (NxpParamsTool->PresetLengthRx <= sizeof(LVVE_Rx_Preset_Buffer_Voice_Tool))
+ zOss_Memcpy(LVVE_Rx_Preset_Buffer_Voice_Tool, NxpParamsTool->pPresetRx, NxpParamsTool->PresetLengthRx);
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpsetParamTool set param to default param array !\r\n");
+ }
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParamTool PresetLengthRx = %d ,PresetLengthTx= %d!\n", NxpParamsTool->PresetLengthRx, NxpParamsTool->PresetLengthTx);
+
+ return DRV_SUCCESS;
+}
+
+SINT32 Vp_NxpGetParamTool(T_ZDrv_VpPath path, T_ZDrv_VpVol volume,
+ zDrvVp_NxpParamsTool *NxpParamsTool, BOOL isLoop, BOOL isVolte)
+{
+ UINT32 pathTxOffset, pathRxOffset;
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "######get NXP parameter start#######");
+ //LVM_UINT32 NumBytesRead; /* Number of bytes in the preset file */
+ /************************************************************************************/
+ /* Set the Voice Engine Parameter values */
+ /************************************************************************************/
+ if (g_nxpIsOpen == FALSE)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParamTool,nxp has not been opened yet!\n");
+ return DRV_ERR_NOT_OPENED;
+ }
+
+ if (g_audioNvParam.audio_ctrlFlag.isVpParamInNv == 1)
+ {
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParamTool get para isVpParamInNv !\r\n");
+ pathTxOffset = path * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
+ pathRxOffset = path * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE) + LVWM_TX_FILE_SIZE;
+
+ NxpParamsTool->pPresetTx = (char*)g_audioNvParam.s_nxpPathParam + pathTxOffset;
+ NxpParamsTool->pPresetRx = (char*)g_audioNvParam.s_nxpPathParam + pathRxOffset;
+
+ NxpParamsTool->PresetLengthTx = LVWM_TX_FILE_SIZE;
+ NxpParamsTool->PresetLengthRx = LVWM_RX_FILE_SIZE;
+ }
+ else
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParamTool get para not isVpParamInNv !\r\n");
+
+ NxpParamsTool->pPresetTx = LVVE_Tx_Preset_Buffer_Voice_Tool;
+ NxpParamsTool->pPresetRx = LVVE_Rx_Preset_Buffer_Voice_Tool;
+ NxpParamsTool->PresetLengthTx = sizeof(LVVE_Tx_Preset_Buffer_Voice_Tool);
+ NxpParamsTool->PresetLengthRx = sizeof(LVVE_Rx_Preset_Buffer_Voice_Tool);
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParamTool get default param !\r\n");
+ }
+
+ if (g_voiceVar.muteEn == TRUE)
+ {
+ if (g_audioNvParam.audio_ctrlFlag.isVpParamInNv == 1)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParamTool get mute isVpParamInNv !\r\n");
+ if (g_voiceVar.volteIsWb != 1)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParamTool get nb mute config !\r\n");
+ NxpParamsTool->pPresetTx = (char*)g_audioNvParam.s_nxpTxNbMuteParam; //xiu gai chu
+ NxpParamsTool->PresetLengthTx = LVWM_TX_FILE_SIZE;
+ }
+ else
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParamTool get wb mute config !\r\n");
+ NxpParamsTool->pPresetTx = (char*)g_audioNvParam.s_nxpTxWbMuteParam; //xiu gai chu
+ NxpParamsTool->PresetLengthTx = LVWM_TX_FILE_SIZE;
+ }
+ }
+ else
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParamTool get mute not isVpParamInNv !\r\n");
+ if (g_voiceVar.volteIsWb != 1)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParamTool get nb mute config !\r\n");
+ NxpParamsTool->pPresetTx = LVVE_Tx_Mute_File_Buffer;
+ NxpParamsTool->PresetLengthTx = sizeof(LVVE_Tx_Mute_File_Buffer);
+ }
+ else
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParamTool get wb mute config !\r\n");
+ NxpParamsTool->pPresetTx = LVVE_Tx_Wb_Mute_File_Buffer;
+ NxpParamsTool->PresetLengthTx = sizeof(LVVE_Tx_Wb_Mute_File_Buffer);
+ }
+ }
+ }
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParamTool PresetLengthRx=%d PresetLengthTx= %d ", NxpParamsTool->PresetLengthRx, NxpParamsTool->PresetLengthTx);
+ /*klocwork 3 INVARIANT_CONDITION.UNREACH delete if*/
+ /*
+ if ((NxpParamsTool->PresetLengthRx == LVM_NULL) || (NxpParamsTool->PresetLengthTx == LVM_NULL))
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParamTool NXP read para is null !\r\n");
+ return DRV_ERROR;
+ }*/
+ return DRV_SUCCESS;
+}
+#if 0
+SINT32 Vp_NxpSetGain(SINT32 gain, UINT32 channel, T_ZDrv_VpPath path)
+{
+ //LVVE_ReturnStatus_en LVVE_Status=LVVE_SUCCESS;//xiu gai chu
+ //LVM_INT16 tempGain=0;//xiu gai chu
+ if (g_nxpIsOpen == FALSE)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetGain,nxp has not been opened yet!\n");
+ return DRV_ERR_NOT_OPENED;
+ }
+
+ return DRV_SUCCESS;
+}
+#endif
+SINT32 Vp_NxpRxProcess(UINT8 **pPReadBuffer, UINT8 **pPWriteBuffer, UINT16 sampleNums)
+{
+ LVM_INT16 *pWriteBuffer;
+ LVM_INT16 *pReadBuffer;
+ LVM_INT16 *pReadBuffer_FE;
+ LVVE_ReturnStatus_en LVVE_Status; /* Module status return */
+
+ SINT32 ret = DRV_SUCCESS;
+ if (g_nxpIsOpen == FALSE)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpRxProcess,nxp has not been opened yet!\n");
+ return DRV_ERR_NOT_OPENED;
+ }
+
+ /*************************/
+ /* PROCESS THE RX MODULE */
+ /*************************/
+
+ pReadBuffer = (LVM_INT16 *)(*pPReadBuffer);
+ pWriteBuffer = (LVM_INT16 *)(*pPWriteBuffer);
+ pReadBuffer_FE = (LVM_INT16 *)&InBuffer16_Tx_FE[0];
+
+ LVVE_Status = LVVE_Rx_Process(hInstance_Rx, /* Instance handle */
+ pReadBuffer, /* Input buffer */
+ pNoiseData, /* Noise data */
+ pWriteBuffer, /* Output buffer */
+ sampleNums); /* Number of samples pairs to process */
+
+ if (LVVE_Status == LVVE_NULLADDRESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpRxProcess Parameter error - null pointer returned from LVVE_Rx_Process\n");
+ ret = DRV_ERROR;
+ }
+ if (LVVE_Status == LVVE_INVALIDNUMSAMPLES)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpRxProcess Invalid number of samples, check value or range returned from LVVE_Rx_Process\n");
+ ret = DRV_ERROR;
+ }
+ if (LVVE_Status == LVVE_ALIGNMENTERROR)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpRxProcess Alignment error, check input and/or output buffer alignment returned from LVVE_Rx_Process\n");
+ ret = DRV_ERROR;
+ }
+
+ if (LVVE_Status != LVVE_SUCCESS)
+ {
+ if (isFirstRxProcessErr == TRUE)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpRxProcess Error while processing returned from LVVE_Rx_Process: %d\n", (LVM_INT16)LVVE_Status);
+ isFirstRxProcessErr = FALSE;
+ }
+ ret = DRV_ERROR;
+ }
+
+ zOss_Memcpy((VOID*)pReadBuffer_FE, (VOID*)pWriteBuffer, sampleNums * sizeof(LVM_INT16));
+//zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpRxProcess\n");
+ ret = DRV_SUCCESS;//xiu waring:unused ret
+ return ret;
+}
+
+SINT32 Vp_NxpTxProcess(UINT8 **pPReadBuffer_NE_MAIN, UINT8 **pPReadBuffer_NE_AUX, UINT8 **pPWriteBuffer, UINT16 sampleNums)
+{
+ SINT32 ret = DRV_SUCCESS;
+
+ LVM_INT16 *pWriteBuffer;
+ LVVE_ReturnStatus_en LVVE_Status; /* Module status return */
+
+ LVM_INT16 *pReadBuffer_NE0;
+ LVM_INT16 *pReadBuffer_NE1;
+ LVM_INT16 *pReadBuffer_FE;
+
+ if (g_nxpIsOpen == FALSE)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpTxProcess,nxp has not been opened yet!\n");
+ return DRV_ERR_NOT_OPENED;
+ }
+
+ /*************************/
+ /* PROCESS THE TX MODULE */
+ /*************************/
+
+ pReadBuffer_NE0 = (LVM_INT16 *)(*pPReadBuffer_NE_MAIN);
+ if (pPReadBuffer_NE_AUX == NULL)
+ {
+ pReadBuffer_NE1 = NULL;
+ }
+ else
+ {
+ pReadBuffer_NE1 = (LVM_INT16 *)(*pPReadBuffer_NE_AUX);
+ }
+ pWriteBuffer = (LVM_INT16 *)(*pPWriteBuffer);
+ pReadBuffer_FE = (LVM_INT16 *)&InBuffer16_Tx_FE[0];
+
+ LVVE_Status = LVVE_Tx_Process(hInstance_Tx, /* Instance handle */
+ pReadBuffer_NE0, /* Input buffer primary Mic */
+ pReadBuffer_NE1, /* Input buffer secondary Mic */
+ pReadBuffer_FE, /* Input buffer */
+ pNoiseData, /* Noise data */
+ pWriteBuffer, /* Output buffer */
+ sampleNums); /* Number of samples pairs to process */
+
+ /*
+ * Check for error and stop if needed
+ */
+ if (LVVE_Status == LVVE_NULLADDRESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpTxProcess Parameter error - null pointer returned from LVVE_Tx_Process\n");
+ ret = DRV_ERROR;
+ }
+ if (LVVE_Status == LVVE_INVALIDNUMSAMPLES)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpTxProcess Invalid number of samples, check value or range returned from LVVE_Tx_Process\n");
+ ret = DRV_ERROR;
+ }
+ if (LVVE_Status == LVVE_ALIGNMENTERROR)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpTxProcess Alignment error, check input and/or output buffer alignment returned from LVVE_Tx_Process\n");
+ ret = DRV_ERROR;
+ }
+ if (LVVE_Status != LVVE_SUCCESS)
+ {
+
+ if (isFirstTxProcessErr == TRUE)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpTxProcess Error while processing returned from LVVE_Tx_Process: %d\n", (LVM_INT16)LVVE_Status);
+ isFirstTxProcessErr = FALSE;
+ }
+ ret = DRV_ERROR;
+ }
+ ret = DRV_SUCCESS;//xiu warning:unused ret
+ //zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpTxProcess\n");
+ return ret;//xiu
+}
+
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/hal_nxp.h b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/hal_nxp.h
new file mode 100755
index 0000000..9547823
--- /dev/null
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/hal_nxp.h
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (C) 2007, ZTE Corporation.
+ *
+ * File Name: hal_nxp.h
+ * File Mark:
+ * Description: Provide the interface of nxp processing
+ * Others:
+ * Version: V0.5
+ * Author: lvwenhua
+ * Date: 2012-06-13
+ * History 1:
+ * Date:
+ * Version:
+ * Author:
+ * Modification:
+ * History 2:
+ ********************************************************************************/
+#ifndef _HAL_NXP_H
+#define _HAL_NXP_H
+// added by zhanglixia
+//#include "LVVE.h"
+extern SINT32 Vp_NxpInitNvParam(VOID);
+extern SINT32 Vp_NxpOpen(UINT32 fs);
+extern SINT32 Vp_NxpClose(VOID);
+extern SINT32 Vp_NxpGetParam(T_ZDrvVoice_MODE voiceMode, T_ZDrv_VpPath path);
+extern SINT32 Vp_NxpSetParam(T_ZDrv_VpPath path, T_ZDrv_VpVol volume, BOOL isLoop);
+//end added by zhanglixia
+extern SINT32 Vp_NxpSetParamTool(T_ZDrv_VpPath path, T_ZDrv_VpVol volume, zDrvVp_NxpParamsTool *NxpParamsTool,BOOL isLoop,BOOL isVolte);
+extern SINT32 Vp_NxpGetParamTool(T_ZDrv_VpPath path, T_ZDrv_VpVol volume, zDrvVp_NxpParamsTool *NxpParamsTool,BOOL isLoop,BOOL isVolte);
+extern SINT32 Vp_NxpRxProcess(UINT8 **pPReadBuffer, UINT8 **pPWriteBuffer,UINT16 sampleNums);
+extern SINT32 Vp_NxpTxProcess(UINT8 **pPReadBuffer_NE_MAIN, UINT8 **pPReadBuffer_NE_AUX, UINT8 **pPWriteBuffer,UINT16 sampleNums);
+#endif
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/makefile b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/makefile
new file mode 100755
index 0000000..b4f481e
--- /dev/null
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/makefile
@@ -0,0 +1,53 @@
+#***********************************************************************
+# °æÈ¨ËùÓÐ (C)2001,ÖÐÐËͨѶ¹É·ÝÓÐÏÞ¹«Ë¾¡£
+#
+# ÎļþÃû³Æ£º makefile
+# Îļþ±êʶ£º ±àÒënxpÄ£¿é
+# ÄÚÈÝÕªÒª£º
+#
+# ÐÞ¸ÄÈÕÆÚ °æ±¾ºÅ Ð޸ıê¼Ç ÐÞ¸ÄÈË ÐÞ¸ÄÄÚÈÝ
+# ---------------------------------------------------------------------
+# 2015/08/17 V1.0 zhuoyongsheng create
+#***********************************************************************/
+include $(PRJ_PATH)/config/project.mk
+include $(DRV_PATH)/ws/drv_cfg.mk
+
+
+#===============================================
+# ·¾¶ÉèÖÃ
+#===============================================
+_MDL_NAME = nxp
+
+_MDL_SRC_PATH = $(CHIP_SRC_PATH)/audio_base/$(_MDL_NAME)
+_MDL_INC_PATH = $(CHIP_INC_PATH)
+_MDL_OBJ_PATH = $(CHIP_OBJ_PATH)/audio_base/$(_MDL_NAME)
+
+
+
+
+#============================================
+#¸÷Ä£¿éÒÀÀµ¹«¹²Í·ÎļþÉèÖÃ
+#============================================
+ INCLUDE += $(_EXTERNAL_INC_PATH) \
+ -I$(CHIP_SRC_PATH)/audio_base/include \
+ -I$(_MDL_INC_PATH)
+#============================================
+#×ÓϵͳÀ©Õ¹¶¨Òå
+#============================================
+DEFINE +=
+
+#============================================
+#Ä£¿éÎļþÐÅÏ¢
+#============================================
+_C_SOURCE = $(wildcard $(_MDL_SRC_PATH)/*.c)
+
+_s_SOURCE =
+
+_S_SOURCE =
+
+#============================================
+# ±àÒë¹æÔò
+#============================================
+
+include $(FRAME_PATH)/rules/mdl_rules.mk
+
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/testnxp_rxin2rxout.c b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/testnxp_rxin2rxout.c
new file mode 100755
index 0000000..6a10dbc
--- /dev/null
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/testnxp_rxin2rxout.c
@@ -0,0 +1,211 @@
+#include "drvs_general.h"
+#include "drvs_voiceprocess.h"
+#include "drvs_ramlog.h"
+#include "hal_nxp.h"
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/fs.h>
+#include <linux/miscdevice.h>
+#include <asm/uaccess.h>
+#include <linux/slab.h>
+#include <linux/init.h>
+
+typedef struct testnxp{
+ int fs;
+ int voicemode;
+ int vp_path;
+ int vp_vol;
+ int framecount;
+}T_TestNxp;
+
+#define TESTNXP_IOCTL_RXIN_TO_RXOUT_START _IOW('N', 1, T_TestNxp)
+#define TESTNXP_IOCTL_RXIN_TO_RXOUT_STOP _IO('N', 2)
+
+#define MAX_NXP_BUF 640
+
+
+static const char testnxp_shortname[] = "testnxp_dev";
+static unsigned char *rxin_buf = NULL;
+static unsigned char *rxout_buf = NULL;
+static int framecount;
+static int testnxp_open(struct inode * ip,struct file * fp);
+static int testnxp_release(struct inode *ip, struct file *fp);
+static ssize_t testnxp_read(struct file *fp, char __user *buf,size_t count, loff_t *pos);
+static ssize_t testnxp_write(struct file *fp, const char __user *buf,size_t count, loff_t *pos);
+static long testnxp_ioctl(struct file *fp, unsigned int cmd, unsigned long arg);
+
+
+
+
+/* file operations for testnxp device /dev/testnxp_device */
+static const struct file_operations testnxp_fops = {
+ .owner = THIS_MODULE,
+ .read = testnxp_read,
+ .write = testnxp_write,
+ .unlocked_ioctl = testnxp_ioctl,
+ .open = testnxp_open,
+ .release = testnxp_release,
+};
+
+static struct miscdevice testnxp_device = {
+ .minor = MISC_DYNAMIC_MINOR,
+ .name = testnxp_shortname,
+ .fops = &testnxp_fops,
+};
+
+
+
+static ssize_t testnxp_read(struct file *fp, char __user *buf,size_t count, loff_t *pos)
+{
+
+ if(buf == NULL)
+ {
+ pr_info("testnxp_read buffer null \n");
+ return -EINVAL;
+ }
+
+ if ((count>0) &&(count<=MAX_NXP_BUF)) {
+ if (copy_to_user(buf, rxout_buf, count)) {
+ pr_info("testnxp_read copy_to_user error \n");
+ return -EFAULT;
+ }
+ }else{
+ pr_info("testnxp_read count error \n");
+ return -EINVAL;
+ }
+ return count;
+}
+
+static ssize_t testnxp_write(struct file *fp, const char __user *buf,size_t count, loff_t *pos)
+{
+ int ret;
+
+ if(buf == NULL)
+ {
+ pr_info("testnxp_write buffer null \n");
+ return -EINVAL;
+ }
+
+ if ((count > 0) && (count <= MAX_NXP_BUF)) {
+ if (copy_from_user(rxin_buf, buf, count)) {
+ pr_info("testnxp_write copy_from_user error \n");
+ return -EFAULT;
+ }
+
+ Vp_NxpRxProcess(&rxin_buf, &rxout_buf, count/2);
+
+ }else{
+ pr_info("testnxp_write count error \n");
+ return -EINVAL;
+ }
+
+ return count;
+}
+
+
+static long testnxp_ioctl(struct file *fp, unsigned int cmd, unsigned long arg)
+{
+ T_TestNxp *param = (T_TestNxp *)arg;
+ T_TestNxp testnxp_param = {0};
+ int ret = 0;
+ printk("testnxp_ioctl\n");
+
+ switch(cmd)
+ {
+ case TESTNXP_IOCTL_RXIN_TO_RXOUT_START:
+ {
+ if (copy_from_user((void*)&testnxp_param, (void*)param, sizeof(struct testnxp)))
+ {
+ return DRV_ERR_INVALID_PARAM;
+ }
+ framecount = testnxp_param.framecount;
+ ret = Vp_NxpOpen(testnxp_param.fs);
+ if (ret == 0)
+ {
+ ret = Vp_NxpGetParam(testnxp_param.voicemode, testnxp_param.vp_path);
+ if (ret == 0)
+ {
+ ret = Vp_NxpSetParam(testnxp_param.vp_path, testnxp_param.vp_vol, FALSE);
+ if (ret != 0 )
+ Vp_NxpClose();
+ }
+ else
+ {
+ Vp_NxpClose();
+ }
+ }
+ break;
+ }
+ case TESTNXP_IOCTL_RXIN_TO_RXOUT_STOP:
+ {
+ Vp_NxpClose();
+ }
+ default:
+ {
+ break;
+ }
+ }
+ return ret;
+}
+
+
+
+static int testnxp_open(struct inode *ip, struct file *fp)
+{
+ printk("testnxp_open\n");
+
+ if(rxin_buf == NULL)
+ {
+ rxin_buf = kzalloc(2 * MAX_NXP_BUF, GFP_KERNEL);
+ if (!rxin_buf)
+ {
+ pr_info("testnxp_init malloc error\n");
+ return -ENOMEM;
+ }
+
+ rxout_buf = rxin_buf + MAX_NXP_BUF;
+ }
+
+ return 0;
+}
+
+static int testnxp_release(struct inode *ip, struct file *fp)
+{
+ printk("testnxp_release\n");
+
+ if(rxin_buf)
+ {
+ kfree(rxin_buf);
+ rxin_buf = NULL;
+ }
+
+ return 0;
+}
+
+
+// int __init testnxp_init(void)
+int testnxp_init(void)
+{
+ int ret;
+ printk("testnxp driver initialize\n");
+
+ ret = misc_register(&testnxp_device);
+ if (ret){
+ printk(KERN_ERR "testnxp driver failed to initialize\n");
+ return -EFAULT;
+ }
+
+ return 0;
+}
+
+
+ void __exit testnxp_exit(void)
+{
+ misc_deregister(&testnxp_device);
+}
+
+//late_initcall(testnxp_init);
+//module_exit(testnxp_exit);
+
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/tos/LVC_Types.h b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/tos/LVC_Types.h
new file mode 100755
index 0000000..14efe8c
--- /dev/null
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/tos/LVC_Types.h
@@ -0,0 +1,383 @@
+/************************************************************************/
+/* Copyright (c) 2004-2014 NXP Software. All rights are reserved. */
+/* Reproduction in whole or in part is prohibited without the prior */
+/* written consent of the copyright owner. */
+/* */
+/* This software and any compilation or derivative thereof is and */
+/* shall remain the proprietary information of NXP Software and is */
+/* highly confidential in nature. Any and all use hereof is restricted */
+/* and is subject to the terms and conditions set forth in the */
+/* software license agreement concluded with NXP Software. */
+/* */
+/* Under no circumstances is this software or any derivative thereof */
+/* to be combined with any Open Source Software in any way or */
+/* licensed under any Open License Terms without the express prior */
+/* written permission of NXP Software. */
+/* */
+/* For the purpose of this clause, the term Open Source Software means */
+/* any software that is licensed under Open License Terms. Open */
+/* License Terms means terms in any license that require as a */
+/* condition of use, modification and/or distribution of a work */
+/* */
+/* 1. the making available of source code or other materials */
+/* preferred for modification, or */
+/* */
+/* 2. the granting of permission for creating derivative */
+/* works, or */
+/* */
+/* 3. the reproduction of certain notices or license terms */
+/* in derivative works or accompanying documentation, or */
+/* */
+/* 4. the granting of a royalty-free license to any party */
+/* under Intellectual Property Rights */
+/* */
+/* regarding the work and/or any work that contains, is combined with, */
+/* requires or otherwise is based on the work. */
+/* */
+/* This software is provided for ease of recompilation only. */
+/* Modification and reverse engineering of this software are strictly */
+/* prohibited. */
+/* */
+/************************************************************************/
+
+/****************************************************************************************
+
+ $Author: beq07720 $
+ $Revision: 55357 $
+ $Date: 2014-03-05 22:16:13 +0530 (Wed, 05 Mar 2014) $
+
+*****************************************************************************************/
+
+/** @file
+ * Header file defining the standard LifeVibes types for use in the application layer
+ * interface of all LifeVibes modules
+ */
+
+#ifndef LVM_TYPES_H
+#define LVM_TYPES_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/****************************************************************************************/
+/* */
+/* definitions */
+/* */
+/****************************************************************************************/
+
+#define LVM_NULL 0 ///< NULL pointer
+
+#define LVM_TRUE 1 ///< Boolean True
+#define LVM_FALSE 0 ///< Boolean False
+
+#define LVM_MAXINT_8 127 ///< Maximum positive integer size
+#define LVM_MAXINT_16 32767 ///< Maximum signed int 16 bits number
+#define LVM_MAXINT_32 2147483647 ///< Maximum signed int 32 bits number
+#define LVM_MAXUINT_32 4294967295U ///< Maximum un-signed int 32 bits number
+
+#if ( defined(VARIANT_24BIT) )
+#define LVM_MAXENUM 8388607L ///< Maximum value for enumerator
+#else
+#define LVM_MAXENUM 2147483647 ///< Maximum value for enumerator
+#endif
+
+#define LVM_MODULEID_MASK 0xFF00 ///< Mask to extract the calling module ID from callbackId
+#define LVM_EVENTID_MASK 0x00FF ///< Mask to extract the callback event from callbackId
+
+/* Memory table*/
+#define LVM_MEMREGION_PERSISTENT_SLOW_DATA 0 ///< Offset to the instance memory region
+#define LVM_MEMREGION_PERSISTENT_FAST_DATA 1 ///< Offset to the persistent data memory region
+#define LVM_MEMREGION_PERSISTENT_FAST_COEF 2 ///< Offset to the persistent coefficient memory region
+#define LVM_MEMREGION_TEMPORARY_FAST 3 ///< Offset to temporary memory region
+
+#define LVM_NR_MEMORY_REGIONS 4 ///< Number of memory regions
+
+#define LVM_MODE_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVM_Mode_en in LVWireFormat
+#define LVM_CONFIG_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVM_Config_en in LVWireFormat
+#define LVM_FS_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVM_Fs_en sample Rate in LVWireFormat
+
+#define LVM_CHAR_LVWIREFORMAT_LENGTH (1)
+#define LVM_INT8_LVWIREFORMAT_LENGTH (1)
+#define LVM_UINT8_LVWIREFORMAT_LENGTH (1)
+
+#define LVM_INT16_LVWIREFORMAT_LENGTH (2)
+#define LVM_UINT16_LVWIREFORMAT_LENGTH (2)
+
+#define LVM_INT32_LVWIREFORMAT_LENGTH (4)
+#define LVM_UINT32_LVWIREFORMAT_LENGTH (4)
+
+
+/****************************************************************************************/
+/* */
+/* Basic types */
+/* */
+/****************************************************************************************/
+
+#if defined(CORE_TIC64)
+typedef char LVM_CHAR; ///< ASCII character
+
+typedef char LVM_INT8; ///< Signed 8-bit word
+typedef unsigned char LVM_UINT8; ///< Unsigned 8-bit word
+
+typedef short LVM_INT16; ///< Signed 16-bit word
+typedef unsigned short LVM_UINT16; ///< Unsigned 16-bit word
+
+typedef int LVM_INT32; ///< Signed 32-bit word
+typedef unsigned int LVM_UINT32; ///< Unsigned 32-bit word
+#else
+
+#if ( defined(VARIANT_FRAC16) || defined (VARIANT_REFREAL16) )
+typedef long DATATYPE; ///< long data type
+
+typedef char LVM_CHAR; ///< ASCII character
+
+typedef char LVM_INT8; ///< Signed 8-bit word
+typedef unsigned char LVM_UINT8; ///< Unsigned 8-bit word
+
+typedef long LVM_INT16; ///< Signed 16-bit word
+typedef long LVM_UINT16; ///< Unsigned 16-bit word
+
+typedef long LVM_INT32; ///< Signed 32-bit word
+typedef long LVM_UINT32; ///< Unsigned 32-bit word
+
+#else
+typedef char LVM_CHAR; ///< ASCII character
+
+typedef char LVM_INT8; ///< Signed 8-bit word
+typedef unsigned char LVM_UINT8; ///< Unsigned 8-bit word
+
+typedef short LVM_INT16; ///< Signed 16-bit word
+typedef unsigned short LVM_UINT16; ///< Unsigned 16-bit word
+
+typedef long LVM_INT32; ///< Signed 32-bit word
+typedef unsigned long LVM_UINT32; ///< Unsigned 32-bit word
+#if ( defined(VARIANT_24BIT) )
+
+#define LVM_MAXINT_24 8388607L ///< 24 bit max int
+#define LVM_MININT_24 -8388608L ///< 24bit min int
+
+#define LVM_MAXINT_48 140737488355327LL ///< 48bit max int
+#define LVM_MININT_48 -140737488355328LL ///< 48bit min int
+
+#endif // VARIANT_24BIT
+
+#endif // VARIANT_FRAC16
+
+#endif // CORE_TIC64
+
+/****************************************************************************************/
+/* */
+/* Standard Enumerated types */
+/* */
+/****************************************************************************************/
+
+/**
+The @ref LVM_Mode_en enumerated type is used to set the operating mode of a particular feature inside the LifeVibes modules.
+The feature can be separately set to enable the feature processing (i.e., ON) or to disable all feature processing
+modules (i.e., OFF).
+*/
+typedef enum
+{
+ LVM_MODE_OFF = 0, ///< LVM module disabled
+ LVM_MODE_ON = 1, ///< LVM module enabled
+ LVM_MODE_DUMMY = LVM_MAXENUM
+} LVM_Mode_en;
+
+/**
+Sets stream Format
+*/
+typedef enum
+{
+ LVM_STEREO = 0, ///<Stereo stream
+ LVM_MONOINSTEREO = 1, ///<Mono in stereo stream
+ LVM_MONO = 2, ///<Mono stream
+ LVM_5DOT1 = 3, ///<stream 5.1 formatted
+ LVM_7DOT1 = 4, ///<stream 7.1 formatted
+ LVM_SOURCE_DUMMY = LVM_MAXENUM
+} LVM_Format_en;
+
+/**
+Sets Speaker type
+*/
+typedef enum
+{
+ LVM_SPEAKER_MONO = 0, ///< Mono type speaker
+ LVM_SPEAKER_STEREO = 1, ///< Stereo type speaker
+ LVM_SPEAKER_DUMMY = LVM_MAXENUM
+} LVM_SpeakerType_en;
+
+/**
+Sets Word length
+*/
+typedef enum
+{
+ LVM_16_BIT = 0, ///< 16 bit word length
+ LVM_32_BIT = 1, ///< 32 bit word length
+ LVM_WORDLENGTH_DUMMY = LVM_MAXENUM
+} LVM_WordLength_en;
+
+/**
+The LVM product supports the sample rates specified in @ref LVM_Fs_en. The input and output sample rates are always the same.
+*/
+typedef enum
+{
+ LVM_FS_8000 = 0, ///< 8k sampling rate
+ LVM_FS_11025 = 1, ///< 11.025k sampling rate
+ LVM_FS_12000 = 2, ///< 12k sampling rate
+ LVM_FS_16000 = 3, ///< 16k sampling rate
+ LVM_FS_22050 = 4, ///< 22.050k sampling rate
+ LVM_FS_24000 = 5, ///< 24k sampling rate
+ LVM_FS_32000 = 6, ///< 32k sampling rate
+ LVM_FS_44100 = 7, ///< 44.1k sampling rate
+ LVM_FS_48000 = 8, ///< 48k sampling rate
+ LVM_FS_COUNT = 9, ///< Max sampling rate count
+ LVM_FS_INVALID = LVM_MAXENUM-1,
+ LVM_FS_DUMMY = LVM_MAXENUM
+} LVM_Fs_en;
+
+/**
+The enumerated type is used to select the reset mode for the module.
+@ref LVM_RESET_SOFT is used to select a soft reset (or partial reset) and @ref LVM_RESET_HARD is
+used to select a hard reset (full re-initialization).
+*/
+typedef enum
+{
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>MODE</b></td>
+ </tr>
+ <tr>
+ <td>ResetType</td>
+ <td>@ref LVM_RESET_SOFT</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>@ref LVM_RESET_HARD</td>
+ </tr>
+</table>
+*/
+ LVM_RESET_SOFT = 0, ///< Reset type for LVM where a partial reset of the module should be performed
+ LVM_RESET_HARD = 1, ///< Reset type for LVM where a full reset of the module should be performed
+ LVM_RESET_DUMMY = LVM_MAXENUM
+} LVM_ResetType_en;
+
+/**
+The @ref LVM_MemoryTypes_en enumerated type identifies the memory region types so that they can be correctly placed in memory
+by the calling application.
+The module initially has no permanent memory storage and makes no use of persistent memory allocation internally.
+The calling application must allocate memory for the module to use.
+
+Four memory regions are required:
+@li @ref LVM_MEMREGION_PERSISTENT_SLOW_DATA : this type of memory is used to store all the control data that needs to be saved between two consecutive calls to the process function.
+@li @ref LVM_MEMREGION_PERSISTENT_FAST_DATA : this type of memory is used to store data such as filter history
+@li @ref LVM_MEMREGION_PERSISTENT_FAST_COEF : this type of memory is used to store filter coefficients.
+@li @ref LVM_MEMREGION_TEMPORARY_FAST (scratch): this type of memory is used to store temporary data. This memory can be reused by the application in between calls to the process function.
+
+This collection of memory regions forms the module instance.
+
+Typically the memory is allocated by the application dynamically; however, it can be allocated statically if required.
+The sizes of the memory regions can be found by running the GetMemoryTable functions on a simulator and noting
+the returned values. Alternatively contact NXP who can provide the figures.
+It is possible that these memory sizes will change between release versions of the library and hence the dynamic memory allocation method is preferred where possible.
+On some target platforms the placement of memory regions is critical for achieving optimal performance of the module.
+*/
+typedef enum
+{
+ LVM_PERSISTENT_SLOW_DATA = LVM_MEMREGION_PERSISTENT_SLOW_DATA, ///< Persistent slow memory region
+ LVM_PERSISTENT_FAST_DATA = LVM_MEMREGION_PERSISTENT_FAST_DATA, ///< Persistent fast memory region
+ LVM_PERSISTENT_FAST_COEF = LVM_MEMREGION_PERSISTENT_FAST_COEF, ///< Persisten fast memory for coefficient storage
+ LVM_TEMPORARY_FAST = LVM_MEMREGION_TEMPORARY_FAST, ///< Temporary fast memory region
+ LVM_MEMORYTYPE_DUMMY = LVM_MAXENUM
+} LVM_MemoryTypes_en;
+
+/**
+Sets mod of Configuration
+*/
+typedef enum
+{
+ LVM_CONFIG_HANDSET = 0, ///< Handset configuration
+ LVM_CONFIG_SPEAKERPHONE = 1, ///< Speaker mod configuration
+ LVM_CONFIG_EARPIECE = 2, ///< Earpiece configuration
+ LVM_CONFIG_DUMMY = LVM_MAXENUM
+} LVM_Config_en;
+
+/**
+The @ref LVM_MemoryRegion_st type defines a memory region by specifying its size in bytes, its region type and its base pointer.
+@see LVM_MemoryTypes_en
+*/
+#if ( defined(VARIANT_24BIT) )
+typedef struct
+{
+ LVM_INT24 Size; ///< The size of the memory region in bytes
+ LVM_MemoryTypes_en Type; ///< Type of memory region
+ void *pBaseAddress; ///< Pointer to the memory region base address
+} LVM_MemoryRegion_st;
+#else
+typedef struct
+{
+ LVM_UINT32 Size; ///< The size of the memory region in bytes
+ LVM_MemoryTypes_en Type; ///< Type of memory region
+ void *pBaseAddress; ///< Pointer to the memory region base address
+} LVM_MemoryRegion_st;
+#endif
+
+/**
+The LVM_MemoryTable_st type defines the memory requirements of the module as an array of region definitions.
+The number of required memory regions is given by the constant @ref LVM_NR_MEMORY_REGIONS
+@see LVM_MemoryRegion_st
+*/
+typedef struct
+{
+ LVM_MemoryRegion_st Region[LVM_NR_MEMORY_REGIONS]; ///< One definition of all memory regions
+} LVM_MemoryTable_st;
+
+/**
+Beats Per Minute Structure
+*/
+typedef struct
+{
+ LVM_INT16 ShortTermMinimum; ///< Beats per minute in Q9.6 format
+ LVM_INT16 ShortTermAverage; ///< Beats per minute in Q9.6 format
+ LVM_INT16 ShortTermMaximum; ///< Beats per minute in Q9.6 format
+
+ LVM_INT16 Confidence; ///< Beat confidence level: 0 = no confidence, 32767 = maximum confidence
+ LVM_INT16 Strength; ///< Beat strength level: 0 = no beat, 32767 = maximum strength beat
+ LVM_INT16 LongTermMinimum; ///< Beats per minute in Q9.6 format
+ LVM_INT16 LongTermAverage; ///< Beats per minute in Q9.6 format
+ LVM_INT16 LongTermMaximum; ///< Beats per minute in Q9.6 format
+
+} LVM_BPMModuleStats_st;
+
+
+/****************************************************************************************/
+/* */
+/* Standard Function Prototypes */
+/* */
+/****************************************************************************************/
+/**
+@brief General purpose callback function
+
+@param pCallbackData Pointer to the callback data structure
+@param pGeneralPurpose General purpose pointer (e.g. to a data structure needed in the callback)
+@param PresetLength General purpose variable (e.g. to be used as callback ID)
+@return \ref LVM_INT32
+*/
+typedef LVM_INT32 (*LVM_Callback)(void *pCallbackData,
+ void *pGeneralPurpose,
+ LVM_INT16 GeneralPurpose );
+
+
+/****************************************************************************************/
+/* */
+/* End of file */
+/* */
+/****************************************************************************************/
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* LVM_TYPES_H */
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/tos/LVVE.h b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/tos/LVVE.h
new file mode 100755
index 0000000..9c48d8e
--- /dev/null
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/tos/LVVE.h
@@ -0,0 +1,1371 @@
+/****************************************************************************************/
+/* Copyright (c) 2004-2014 NXP Software. All rights are reserved. */
+/* Reproduction in whole or in part is prohibited without the prior */
+/* written consent of the copyright owner. */
+/* */
+/* This software and any compilation or derivative thereof is and */
+/* shall remain the proprietary information of NXP Software and is */
+/* highly confidential in nature. Any and all use hereof is restricted */
+/* and is subject to the terms and conditions set forth in the */
+/* software license agreement concluded with NXP Software. */
+/* */
+/* Under no circumstances is this software or any derivative thereof */
+/* to be combined with any Open Source Software in any way or */
+/* licensed under any Open License Terms without the express prior */
+/* written permission of NXP Software. */
+/* */
+/* For the purpose of this clause, the term Open Source Software means */
+/* any software that is licensed under Open License Terms. Open */
+/* License Terms means terms in any license that require as a */
+/* condition of use, modification and/or distribution of a work */
+/* */
+/* 1. the making available of source code or other materials */
+/* preferred for modification, or */
+/* */
+/* 2. the granting of permission for creating derivative */
+/* works, or */
+/* */
+/* 3. the reproduction of certain notices or license terms */
+/* in derivative works or accompanying documentation, or */
+/* */
+/* 4. the granting of a royalty-free license to any party */
+/* under Intellectual Property Rights */
+/* */
+/* regarding the work and/or any work that contains, is combined with, */
+/* requires or otherwise is based on the work. */
+/* */
+/* This software is provided for ease of recompilation only. */
+/* Modification and reverse engineering of this software are strictly */
+/* prohibited. */
+/* */
+/****************************************************************************************/
+
+/****************************************************************************************/
+/* */
+/* $Author: nxp65285 $*/
+/* $Revision: 56908 $*/
+/* $Date: 2014-04-10 17:30:02 +0530 (Thu, 10 Apr 2014) $*/
+/* */
+/****************************************************************************************/
+
+/**
+@file
+Header file for the application layer interface of the LVVE module.
+This files includes all definitions, types, structures and function prototypes
+required by the calling layer. All other types, structures and functions are
+private.
+*/
+
+#ifndef __LVVE_H__
+#define __LVVE_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/****************************************************************************************/
+/* */
+/* Includes */
+/* */
+/****************************************************************************************/
+
+#include "LVVE_VID.h"
+
+/****************************************************************************************/
+/* */
+/* Definitions */
+/* */
+/****************************************************************************************/
+/* Below include logic is designed to reduce checks to 1 or 2 conditions due to limitations in the backend stripping code */
+
+
+
+
+
+#define LVVE_MAX_PCM_FRAME_SIZE 160 ///< LVVE maximum processing frame size
+
+
+#define LVVE_NOISESAMPLES_PER_FRAME 2 ///< Number of samples required for noise estimation per frame
+/**
+@def LVVE_RX_PRESET_LENGTH
+Length of the LVVE_Rx preset buffer (number of bytes).
+@see LVVE_Rx_SetPreset
+@ingroup LVVE_Rx
+*/
+#define LVVE_RX_PRESET_LENGTH (LVVIDHEADER_CONTROLPARAMS_LVWIREFORMAT_LENGTH + LVVE_RX_CONTROLPARAMS_LVWIREFORMAT_LENGTH) ///< RX preset Buffer length
+
+/**
+@def LVVE_TX_PRESET_LENGTH
+Length of the LVVE_Tx preset buffer (number of bytes).
+@see LVVE_Tx_SetPreset
+@ingroup LVVE_Tx
+*/
+#define LVVE_TX_PRESET_LENGTH (LVVIDHEADER_CONTROLPARAMS_LVWIREFORMAT_LENGTH + LVVE_TX_CONTROLPARAMS_LVWIREFORMAT_LENGTH) ///< TX preset buffer length
+
+
+/* Deprecated Definitions */
+
+#define LVVE_MAX_BULK_DELAY LVVE_TX_BULKDELAY_MAX
+#define LVVE_RX_MODE_DUMMY LVVE_RX_MODE_EN_DUMMY
+#define LVVE_TX_MODE_DUMMY LVVE_TX_MODE_EN_DUMMY
+
+#define LVVE_MAX_VOL_GAIN_DB LVVE_TX_VOL_GAIN_MAX
+#define LVVE_MIN_VOL_GAIN_DB LVVE_TX_VOL_GAIN_MIN
+
+#define LVVE_MAX_HPF_CORNER_HZ LVVE_TX_MIC_HPF_CORNERFREQ_MAX
+#define LVVE_MIN_HPF_CORNER_HZ LVVE_TX_MIC_HPF_CORNERFREQ_MIN
+
+#define LVVE_MAX_HPF_RX_CORNER_HZ LVVE_RX_HPF_CORNERFREQ_MAX
+
+#define LVVE_MAX_NLPP_LIMIT_DB LVNLPP_NLPP_LIMIT_MAX
+#define LVVE_MIN_NLPP_LIMIT_DB LVNLPP_NLPP_LIMIT_MIN
+
+
+#define LVVE_MAX_DRC_LEVEL LVDRC_COMPRESSORCURVEINPUTLEVELS_MAX
+#define LVVE_MIN_DRC_LEVEL LVDRC_COMPRESSORCURVEINPUTLEVELS_MIN
+#define LVVE_MIN_DRC_NUMKNEES LVDRC_NUMKNEES_MIN
+#define LVVE_MAX_DRC_NUMKNEES LVDRC_NUMKNEES_MAX
+#define LVVE_MIN_DRC_ATTACKTIME LVDRC_ATTACKTIME_MIN
+#define LVVE_MAX_DRC_ATTACKTIME LVDRC_ATTACKTIME_MAX
+#define LVVE_MIN_DRC_RELEASETIME LVDRC_RELEASETIME_MIN
+#define LVVE_MAX_DRC_RELEASETIME LVDRC_RELEASETIME_MAX
+
+
+/* End deprecated defines*/
+/****************************************************************************************/
+/* */
+/* Types */
+/* */
+/****************************************************************************************/
+
+/**
+LVVE_Tx Instance Handle
+This handle is used by most of the LVVE APIs
+@see LVVE_Tx_GetInstanceHandle
+@ingroup LVVE_Tx
+*/
+typedef void *LVVE_Tx_Handle_t; ///< LVVE Tx handle
+/**
+This handle is used by most of the LVVE APIs
+@see LVVE_Rx_GetInstanceHandle
+@ingroup LVVE_Rx
+*/
+typedef void *LVVE_Rx_Handle_t; ///< LVVE Rx handle
+
+/**
+This enum type specifies the different error codes returned by the API functions
+For the exact meaning see the individual function descriptions
+*/
+typedef enum
+{
+ LVVE_SUCCESS = 0, ///< Successful return from a routine
+ LVVE_ALIGNMENTERROR = 1, ///< Memory alignment error
+ LVVE_NULLADDRESS = 2, ///< NULL allocation address
+ LVVE_OUTOFRANGE = 3, ///< Out of range parameter
+ LVVE_INVALIDNUMSAMPLES = 4, ///< Invalid number of samples
+ LVVE_INVALID_ALGORITHM_CONFIGURATION = 5, ///< Mutually exclusive algorithms configured ON
+ LVVE_INVALID_STATE_CONFIGURATION = 6, ///< Invalid state of the algorithm
+ LVVE_PRESET_INVALID_BUFFER_LENGTH = 7, ///< Incorrect length of buffer used in SetPreset
+ LVVE_PRESET_INVALID_VOLUME_INDEX = 8, ///< The volume index exceeds the buffer content in SetPreset
+ LVVE_PRESET_INVALID_BUFFER_VERSION = 9, ///< The version of the preset buffer does not match this library
+ LVVE_PRESET_INVALID_BASELINE_VERSION = 10, ///< Invalid LVVE Baseline Version in preset buffer
+ LVVE_PRESET_INVALID_MASK = 11, ///< Invalid algorithm mask in preset buffer
+ LVVE_PRESET_INVALID_SAMPLE_RATE = 12, ///< Invalid sample rate @ref LVM_Fs_en in preset buffer
+ LVVE_PRESET_INVALID_LVWIREFORMAT_MESSAGEID = 13, ///< Invalid @ref LVVIDHeader_MessageID_en wire format message id in preset buffer
+
+ LVVE_RETURNSTATUS_DUMMY = LVM_MAXENUM
+} LVVE_ReturnStatus_en;
+
+/**
+Byte array containing encoded LVVE_Rx_ControlParams for one or multiple volumes.
+The length of this array should be a multiple of @ref LVVE_RX_PRESET_LENGTH.
+@see LVVE_Rx_SetPreset
+@ingroup LVVE_Rx
+*/
+typedef LVM_CHAR* LVVE_Rx_Preset_t; ///< LVVE Rx preset buffer
+
+/**
+Byte array containing encoded LVVE_Tx_ControlParams for one or multiple volumes.
+The length of this array should be a multiple of @ref LVVE_TX_PRESET_LENGTH.
+@see LVVE_Tx_SetPreset
+@ingroup LVVE_Tx
+*/
+typedef LVM_CHAR* LVVE_Tx_Preset_t; ///< LVVE Tx preset buffer
+
+
+/****************************************************************************************/
+/* */
+/* Structures */
+/* */
+/****************************************************************************************/
+
+/**
+The instance parameters define certain important operating limits required by the calling application.
+These instance parameters affect how much memory is required by the LVVE and hence must be provided
+when the instance is created.
+@see LVVE_Rx_GetMemoryTable
+@see LVVE_Rx_GetInstanceHandle
+@see LVVE_Tx_GetMemoryTable
+@see LVVE_Tx_GetInstanceHandle
+*/
+/**
+EQ Module Instance Parameters Structure.
+@see LVEQ_InstanceParams_st
+*/
+typedef struct
+{
+/**
+Max Size of Equalizer
+Sets the maximum length of the equalizer impulse response that can be used.
+It must be a multiple of 8.
+<table border>
+<caption>EQ Max Length Table</caption>
+ <tr>
+ <td><b>Unit</b></td>
+ <td><b>Q format</b></td>
+ <td><b>Data Range</b></td>
+ <td><b>Default Values</b></td>
+ </tr>
+ <tr>
+ <td><b>Integer Length in Samples</b></td>
+ <td><b>Q16.0</b></td>
+ <td>[8,\ref LVEQ_EQ_LENGTH_MAX]</td>
+ <td>\ref LVEQ_EQ_LENGTH_DEFAULT</td>
+ </tr>
+</table>
+*/
+ LVM_UINT16 EQ_MaxLength; ///< EQ Max Length
+} LVEQ_InstanceParams_st;
+
+/**
+Tx Instance Parameter Structure
+These parameters are set at initialization time and may not be changed during processing
+@ref LVVE_Tx_GetInstanceHandle
+@ingroup LVVE_Tx
+*/
+typedef struct
+{
+ LVM_Fs_en SampleRate; ///< Sample rate
+/**
+Sets the maximum length of the bulk delay between Rx and Tx expressed in samples.
+The unit of MaxBulkDelay is [number of samples] at the respective sampling rate.
+<table border>
+<caption>Max Bulk Delay Table</caption>
+ <tr>
+ <td><b>Type</b></td>
+ <td><b>Unit</b></td>
+ <td><b>Q format</b></td>
+ <td><b>Data Range</b></td>
+ <td><b>Default Values</b></td>
+ </tr>
+ <tr>
+ <td><b>LVM_UINT16</b></td>
+ <td><b>Integer Length in Samples</b></td>
+ <td><b>Q16.0</b></td>
+ <td>[0,6400]</td>
+ <td>None</td>
+ </tr>
+</table>
+*/
+ LVM_UINT16 MaxBulkDelay; ///< Max bulk delay
+
+ LVEQ_InstanceParams_st EQ_InstParams; ///< EQ instance
+} LVVE_Tx_InstanceParams_st;
+
+/**
+Rx Instance Parameter Structure
+These parameters are set at initialization time and may not be changed during processing.
+@ref LVVE_Rx_GetInstanceHandle
+@ingroup LVVE_Rx
+*/
+typedef struct
+{
+ LVM_Fs_en SampleRate; ///< LVVE sample rate
+ LVEQ_InstanceParams_st EQ_InstParams;///< EQ instance
+
+} LVVE_Rx_InstanceParams_st;
+
+/**
+The version information structure contains one character field to store LVVE version number.
+A call to the @ref LVVE_GetVersionInfo function is needed to retrieve this information.
+*/
+typedef struct
+{
+ LVM_CHAR VersionNumber[64]; ///< Version number of the LifeVibes™ VoiceExperience library
+} LVVE_VersionInfo;
+
+/**
+Used to reset LVVE_Rx module any time.
+@ref LVM_ResetType_en parameter determine the type of reset required
+@ingroup LVVE_Rx
+*/
+typedef struct
+{
+ LVM_ResetType_en ResetType; ///< RX Reset Type
+} LVVE_Rx_ResetParams_st;
+
+/**
+Used to reset LVVE_Tx module any time.
+LVM_ResetType_en parameter determine the type of reset required
+@ingroup LVVE_Tx
+*/
+typedef struct
+{
+ LVM_ResetType_en ResetType; ///< TX Reset Type
+} LVVE_Tx_ResetParams_st;
+
+/**
+@brief Retrieve the memory requirements of the LVVE_Tx module.
+
+This function returns a table of memory records that describe size, type and memory space of all buffers
+required by the instance. The number of initialized memory records is defined by LVVE_NR_MEMORY_REGIONS.
+This function is used for two purposes and is called in two different ways:
+
+@li Memory Allocation: When the LVVE_GetMemoryTable functions are called with a NULL instance handle (hInstance = LVM_NULL)
+ the function returns the memory requirements. The base address pointers in the memory table are set to NULL.
+ All elements of the instance parameters structure (pointed to by pInstParams) must contain valid values as the memory
+ requirements are affected by these settings.
+
+@li Memory Free: When called with a non-NULL instance handle (hInstance = a valid instance handle)
+ the function returns the memory table used when the instance was created.
+ The base address pointers returned will be those supplied by the calling application when the memory
+ was allocated and can now be used for freeing memory. The instance parameters (pointed to by pInstParams)
+ are ignored and the pInstParams parameter may be set to NULL.
+@li In case of memory allocation, all elements of the parameter initialization structure defined by pInstParams
+ must contain valid values as the memory requirements are affected by these settings.
+ In some releases of the bundle library one or more memory regions may have a zero size.
+
+@pre The number of memory records in the array defined by pMemoryTable is equal to @ref LVM_NR_MEMORY_REGIONS.
+@pre Exactly @ref LVM_NR_MEMORY_REGIONS memory records of pMemoryTable are initialized.
+
+@post When this function is called with hInstance = NULL the memory base address pointers
+will be NULL on return.
+@post When the function is called for freeing memory, hInstance = Instance Handle the
+memory table returns the allocated memory and base addresses used during
+initialisation.
+
+@return LVVE_SUCCESS when the function call succeeds and the memory table is filled correctly
+@return LVVE_NULLADDRESS when pMemoryTable was NULL
+@return LVVE_NULLADDRESS when pInstParams was NULL and the call was for memory allocation
+ is NULL.
+@return LVVE_OUTOFRANGE when pInstParams contains parameters out of the excepted range
+
+@note This function may be interrupted by the LVVE_Tx_Process function.
+
+@ingroup LVVE_Tx
+
+LVVE_Tx_GetMemoryTable: Memory Allocation Example:
+
+The following example shows how to get the memory requirements for the LVVE_Tx instance.
+\code
+ InstParams_Tx.SampleRate = LVM_FS_8000;
+ // Include the other instance params here
+
+ LVVE_Status = LVVE_Tx_GetMemoryTable ( LVM_NULL,
+ &MemTab_Tx,
+ &InstParams_Tx );
+
+ if( LVVE_Status != LVVE_SUCCESS )
+ {
+ // Handle Errors
+ }
+
+ for( c1 = 0; c1 < LVVE_NR_MEMORY_REGIONS; c1++ )
+ {
+ if( MemTab_Tx.Region[c1].Size != 0 )
+ {
+ MemTab_Tx.Region[c1].pBaseAddress =
+ malloc(MemTab_Tx.Region[c1].Size);
+ }
+ }
+\endcode
+
+LVVE_Tx_GetMemoryTable: Freeing Memory Example:
+
+The following example shows how to free the memory from the LVVE_Tx instance.
+
+\code
+ LVVE_Status = LVVE_Tx_GetMemoryTable( hInstance,
+ &MemTab_Tx,
+ LVM_NULL);
+
+ if (LVVE_Status != LVVE_SUCCESS)
+ {
+ // Handle errors
+ }
+
+ for( c1 = 0; c1 < LVVE_NR_MEMORY_REGIONS; c1++)
+ {
+ if (MemTab_Tx.Region[c1].Size != 0)
+ {
+ free(MemTab_Tx.Region[c1].pBaseAddress);
+ }
+ }
+\endcode
+
+*/
+
+LVVE_ReturnStatus_en LVVE_Tx_GetMemoryTable(LVVE_Tx_Handle_t hInstance,
+ LVM_MemoryTable_st *pMemoryTable,
+ LVVE_Tx_InstanceParams_st *pInstanceParams);
+
+/**
+@brief Retrieve the memory requirements of the LVVE_Rx module.
+
+This function returns a table of memory records that describe size, type and memory space of all buffers
+required by the instance. The number of initialized memory records is defined by LVVE_NR_MEMORY_REGIONS.
+This function is used for two purposes and is called in two different ways:
+
+@li Memory Allocation: When the LVVE_GetMemoryTable functions are called with a NULL instance handle (hInstance = LVM_NULL)
+ the function returns the memory requirements. The base address pointers in the memory table are set to NULL.
+ All elements of the instance parameters structure (pointed to by pInstParams) must contain valid values as the memory
+ requirements are affected by these settings.
+
+@li Memory Free: When called with a non-NULL instance handle (hInstance = a valid instance handle)
+ the function returns the memory table used when the instance was created.
+ The base address pointers returned will be those supplied by the calling application when the memory
+ was allocated and can now be used for freeing memory. The instance parameters (pointed to by pInstParams)
+ are ignored and the pInstParams parameter may be set to NULL.
+@li In case of memory allocation, all elements of the parameter initialization structure defined by pInstParams
+ must contain valid values as the memory requirements are affected by these settings.
+ In some releases of the bundle library one or more memory regions may have a zero size.
+
+@pre The number of memory records in the array defined by pMemoryTable is equal to @ref LVM_NR_MEMORY_REGIONS.
+@pre Exactly @ref LVM_NR_MEMORY_REGIONS memory records of pMemoryTable are initialized.
+
+@post When this function is called with hInstance = NULL the memory base address pointers
+will be NULL on return.
+@post When the function is called for freeing memory, hInstance = Instance Handle the
+memory table returns the allocated memory and base addresses used during
+initialisation.
+
+@return LVVE_SUCCESS when the function call succeeds and the memory table is filled correctly
+@return LVVE_NULLADDRESS when pMemoryTable was NULL
+@return LVVE_NULLADDRESS when pInstParams was NULL and the call was for memory allocation
+ is NULL.
+@return LVVE_OUTOFRANGE when pInstParams contains parameters out of the excepted range
+
+@note This function may be interrupted by the LVVE_Rx_Process function.
+
+@ingroup LVVE_Rx
+
+LVVE_Rx_GetMemoryTable: Memory Allocation Example:
+
+The following example shows how to get the memory requirements for the LVVE_Rx instance.
+
+\code
+ InstParams_Rx.SampleRate = LVM_FS_8000;
+ // Include the other instance params here
+
+ LVVE_Status = LVVE_Rx_GetMemoryTable ( LVM_NULL,
+ &MemTab_Rx,
+ &InstParams_Rx );
+
+ if( LVVE_Status != LVVE_SUCCESS )
+ {
+ // Handle Errors
+ }
+
+ for( c1 = 0; c1 < LVVE_NR_MEMORY_REGIONS; c1++ )
+ {
+ if( MemTab_Rx.Region[c1].Size != 0 )
+ {
+ MemTab_Rx.Region[c1].pBaseAddress =
+ malloc(MemTab_Rx.Region[c1].Size);
+ }
+ }
+\endcode
+
+LVVE_Rx_GetMemoryTable: Freeing Memory Example:
+
+The following example shows how to free the memory from the LVVE_Rx instance.
+
+\code
+ LVVE_Status = LVVE_Rx_GetMemoryTable( hInstance,
+ &MemTab_Rx,
+ LVM_NULL);
+
+ if (LVVE_Status != LVVE_SUCCESS)
+ {
+ // Handle errors
+ }
+
+ for( c1 = 0; c1 < LVVE_NR_MEMORY_REGIONS; c1++)
+ {
+ if (MemTab_Rx.Region[c1].Size != 0)
+ {
+ free(MemTab_Rx.Region[c1].pBaseAddress);
+ }
+ }
+\endcode
+*/
+
+LVVE_ReturnStatus_en LVVE_Rx_GetMemoryTable(LVVE_Rx_Handle_t hInstance,
+ LVM_MemoryTable_st *pMemoryTable,
+ LVVE_Rx_InstanceParams_st *pInstanceParams);
+
+
+/**
+@brief Created handle to the instance of the LVVE_Tx module
+
+This function is used to create the LVVE_Tx instance. All control parameters are set to invalid values.
+The memory table pointed to by pMemoryTable must be created. If the memory table is not correct then an error will be returned.
+The memory requirements of the Rx and Tx unit are dependent on the instance parameters supplied and so the
+instance parameters provided in this function call must be the same as those used in the @ref LVVE_Tx_GetMemoryTable function calls
+used for memory allocation.
+
+@pre The memory records tables defined by pMemoryTable contains pointers to non-overlapping buffers
+with the size as requested via the prior calls to the LVVE_Tx_GetMemoryTable functions.
+@pre The initialization parameter structure defined by pInstParams is identical to the structure passed
+to prior call to @ref LVVE_Tx_GetMemoryTable functions.
+
+
+@param phInstance Pointer to the instance handle.
+@param pMemoryTable Pointer to the memory definition table.
+@param pInstanceParams Pointer to the instance parameters.
+
+@return LVVE_SUCCESS when creation was successful
+@return LVVE_NULLADDRESS When phInstance or pMemoryTable or pInstanceParams is NULL.
+@return LVVE_NULLADDRESS when one or more of the memory regions with a non-zero size has been
+ given a NULL base address pointer.
+@return LVVE_OUTOFRANGE when pInstParams contains parameters out of the excepted range
+
+@ingroup LVVE_Tx
+
+ LVVE_Tx_GetInstanceHandle Example:
+
+The following example shows how to initialize LVVE_Tx_GetInstanceHandle.
+
+\code
+ hInstance_Tx = LVM_NULL;
+ LVVE_Status = LVVE_Tx_GetInstanceHandle( &hInstance_Tx,
+ &MemTab_Tx,
+ &InstParams_Tx );
+ if( LVVE_Status != LVVE_SUCCESS )
+ {
+ // Handle Errors
+ }
+\endcode
+
+*/
+
+LVVE_ReturnStatus_en LVVE_Tx_GetInstanceHandle(LVVE_Tx_Handle_t *phInstance,
+ LVM_MemoryTable_st *pMemoryTable,
+ LVVE_Tx_InstanceParams_st *pInstanceParams);
+
+/**
+@brief Created handle to the instance of the LVVE_Rx module
+
+This functions is used to create LVVE_Rx instance. All control parameters are set to invalid values.
+The memory table pointed to by pMemoryTable must be created. If the memory table is not correct then an error will be returned.
+The memory requirements of the Rx and Rx unit are dependent on the instance parameters supplied and so the
+instance parameters provided in this function call must be the same as those used in the @ref LVVE_Rx_GetMemoryTable function calls
+used for memory allocation.
+
+@pre The memory records tables defined by pMemoryTable contains pointers to non-overlapping buffers
+with the size as requested via the prior calls to the LVVE_Rx_GetMemoryTable functions.
+@pre The initialization parameter structure defined by pInstParams is identical to the structure passed
+to prior call to @ref LVVE_Rx_GetMemoryTable functions.
+
+
+@param phInstance Pointer to the instance handle.
+@param pMemoryTable Pointer to the memory definition table.
+@param pInstanceParams Pointer to the instance parameters.
+
+@return LVVE_SUCCESS when creation was successful
+@return LVVE_NULLADDRESS When phInstance or pMemoryTable or pInstanceParams is NULL.
+@return LVVE_NULLADDRESS when one or more of the memory regions with a non-zero size has been
+ given a NULL base address pointer.
+@return LVVE_OUTOFRANGE when pInstParams contains parameters out of the excepted range
+
+@ingroup LVVE_Rx
+
+ LVVE_Rx_GetInstanceHandle Example:
+
+The following example shows how to initialize LVVE_Rx_GetInstanceHandle.
+
+\code
+ hInstance_Rx = LVM_NULL;
+ LVVE_Status = LVVE_Rx_GetInstanceHandle( &hInstance_Rx,
+ &MemTab_Rx,
+ &InstParams_Rx );
+ if( LVVE_Status != LVVE_SUCCESS )
+ {
+ // Handle Errors
+ }
+\endcode
+
+*/
+
+LVVE_ReturnStatus_en LVVE_Rx_GetInstanceHandle(LVVE_Rx_Handle_t *phInstance,
+ LVM_MemoryTable_st *pMemoryTable,
+ LVVE_Rx_InstanceParams_st *pInstanceParams);
+
+/**
+@brief Retrieve the current LVVE_Tx control parameters.
+
+This function copies the control parameters from the LVVE_Tx into the supplied
+parameter structure, pControlParams. The values returned are the values given in the last successful
+call to the LVVE_Tx_SetControlParameters function.
+
+@param hInstance Instance handle
+@param pControlParams Pointer to the control parameters
+
+@pre hInstance should be valid handle.
+@pre pControlParams should be allocated by caller.
+@post pControlParams will be filled with the values given in the last successful call to
+ the LVVE_Tx_SetControlParameters function. They are not necessarily the values
+ used in the last call to the LVVE_Tx_Process function, this will be the case if
+ LVVE_Tx_SetControlParameters has been called since the last call to LVVE_Tx_Process.
+
+@return LVVE_SUCCESS Succeeded
+@return LVVE_NULLADDRESS When hInstance or pControlParams is NULL
+
+@note The LVVE_Tx_GetControlParameters function can be called at any time during processing.
+
+@ingroup LVVE_Tx
+
+LVVE_Tx_GetControlParameters Example:
+
+The following example shows how to get different control parameters for the LVVE_Tx instance.
+
+\code
+ LVVE_Status = LVVE_Tx_GetControlParameters( &hInstance_Tx,
+ &ControlParams_Tx );
+
+ if( LVVE_Status != LVVE_SUCCESS )
+ {
+ // Handle Errors
+ }
+\endcode
+
+*/
+
+LVVE_ReturnStatus_en LVVE_Tx_GetControlParameters( LVVE_Tx_Handle_t hInstance,
+ LVVE_Tx_ControlParams_st *pControlParams);
+
+/**
+@brief Retrieve the current LVVE_Rx control parameters.
+
+This function copies the control parameters from the LVVE_Tx into the supplied
+parameter structure, pControlParams. The values returned are the values given in the last successful
+call to the LVVE_Rx_SetControlParameters function.
+
+@param hInstance Instance handle
+@param pControlParams Pointer to the control parameters
+
+@pre hInstance should be valid handle.
+@pre pControlParams should be allocated by caller.
+@post pControlParams will be filled with the values given in the last successful call to
+ the LVVE_Rx_SetControlParameters function. They are not necessarily the values
+ used in the last call to the LVVE_Rx_Process function, this will be the case if
+ LVVE_Tx_SetControlParameters has been called since the last call to LVVE_Tx_Process.
+
+@return LVVE_SUCCESS Succeeded
+@return LVVE_NULLADDRESS When hInstance or pControlParams is NULL
+
+@note The LVVE_Rx_GetControlParameters function can be called at any time during processing.
+
+@ingroup LVVE_Rx
+
+LVVE_Rx_GetControlParameters Example:
+
+The following example shows how to get different control parameters for the LVVE_Rx instance.
+
+\code
+ LVVE_Status = LVVE_Rx_GetControlParameters( &hInstance_Rx,
+ &ControlParams_Rx );
+
+ if( LVVE_Status != LVVE_SUCCESS )
+ {
+ // Handle Errors
+ }
+\endcode
+
+*/
+
+LVVE_ReturnStatus_en LVVE_Rx_GetControlParameters( LVVE_Rx_Handle_t hInstance,
+ LVVE_Rx_ControlParams_st *pControlParams);
+
+/**
+@brief Sets or changes the LVVE_Tx module parameters using C-strcuture.
+
+This function takes the new set of parameters and makes a local copy within
+LVVE_Tx but the parameters are only applied on the next call of the LVVE_Tx_Process
+function. When a parameter is unchanged no action is taken. This function can
+be called at any time during the processing, even when the LVVE_Tx_Process function
+is running. LifeVibes™ VoiceExperience control parameters can be set using two methods.
+Control Parameters can be populated in a \"C\" style structure (as explained in example) and then sent to the library.
+Another method is to populate control parameters in a byte array called Preset Buffer, see @ref LVVE_Tx_SetPreset for example usage.
+
+@param hInstance Instance Handle
+@param pNewParams Pointer to a parameter structure
+
+@pre hInstance should be valid handle.
+
+@return LVVE_SUCCESS Succeeded
+@return LVVE_NULLADDRESS When hInstance or pNewParams is NULL
+@return LVVE_OUTOFRANGE When pNewParams contains parameters of activated modules that are out of the excepted range
+@return LVVE_INVALID_ALGORITHM_CONFIGURATION When two mutual exclusive algorithms are both configured ON at run-time
+ (e.g., NoiseVoid and HandsFree)
+
+
+@note This function may be interrupted by the LVVE_Tx_Process function
+
+@ingroup LVVE_Tx
+
+LVVE_Tx_GetControlParameters: Setting Control Parameters using C-Style structure Example:
+
+The following example shows how to set different control parameters for the LVVE_Tx instance.
+
+\code
+ LVVE_Status = LVVE_Tx_GetControlParameters( &hInstance_Tx,
+ &ControlParams_Tx );
+
+ if( LVVE_Status != LVVE_SUCCESS )
+ {
+ // Handle Errors
+ }
+
+ Change Parameters as required
+ ControlParams_Tx.VOL_Gain = VOL_TABLE[i];
+ ControlParams_Tx.VC_ControlParams = VC_TABLE[i];
+
+ // Update instance with new parameters
+ LVVE_Status = LVVE_Tx_SetControlParameters( &hInstance_Tx,
+ &ControlParams_Tx );
+
+ if( LVVE_Status != LVVE_SUCCESS )
+ {
+ // Handle Errors
+ }
+\endcode
+
+*/
+
+LVVE_ReturnStatus_en LVVE_Tx_SetControlParameters( LVVE_Tx_Handle_t hInstance,
+ const LVVE_Tx_ControlParams_st * const pNewParams);
+
+/**
+@brief Sets or changes the LVVE_Rx module parameters using C-structure.
+
+This function takes the new set of parameters and makes a local copy within
+LVVE_Rx but the parameters are only applied on the next call of the LVVE_Rx_Process
+function. When a parameter is unchanged no action is taken. This function can
+be called at any time during the processing, even when the LVVE_Rx_Process function
+is running. LifeVibes™ VoiceExperience control parameters can be set using two methods.
+Control Parameters can be populated in a \"C\" style structure (as explained in example) and then sent to the library.
+Another method is to populate control parameters in a byte array called Preset Buffer, see @ref LVVE_Rx_SetPreset for example usage.
+
+@param hInstance Instance Handle
+@param pNewParams Pointer to a parameter structure
+
+@pre hInstance should be valid handle.
+
+@return LVVE_SUCCESS Succeeded
+@return LVVE_NULLADDRESS When hInstance or pNewParams is NULL
+@return LVVE_OUTOFRANGE When pNewParams contains parameters of activated modules that are out of the excepted range
+@return LVVE_INVALID_ALGORITHM_CONFIGURATION When two mutual exclusive algorithms are both configured ON at run-time
+ (e.g., NoiseVoid and HandsFree)
+
+
+@note This function may be interrupted by the LVVE_Rx_Process function
+
+@ingroup LVVE_Rx
+
+LVVE_Rx_GetControlParameters: Setting Control Parameters using C-Style structure Example:
+
+The following example shows how to set different control parameters for the LVVE_Rx instance.
+
+\code
+ LVVE_Status = LVVE_Rx_GetControlParameters( &hInstance_Rx,
+ &ControlParams_Rx );
+
+ if( LVVE_Status != LVVE_SUCCESS )
+ {
+ // Handle Errors
+ }
+
+ Change Parameters as required
+ ControlParams_Rx.VOL_Gain = VOL_TABLE[i];
+ ControlParams_Rx.VC_ControlParams = VC_TABLE[i];
+
+ // Update instance with new parameters
+ LVVE_Status = LVVE_Rx_SetControlParameters( &hInstance_Rx,
+ &ControlParams_Rx );
+
+ if( LVVE_Status != LVVE_SUCCESS )
+ {
+ // Handle Errors
+ }
+\endcode
+
+*/
+LVVE_ReturnStatus_en LVVE_Rx_SetControlParameters( LVVE_Rx_Handle_t hInstance,
+ const LVVE_Rx_ControlParams_st * const pNewParams);
+
+/**
+@brief Retrieve the current LVVE_Tx status parameters.
+
+This function copies internal status variables into the supplied status
+parameter structures.
+
+@param hInstance Instance handle
+@param pStatusParams Pointer to the status parameters
+
+@pre hInstance should be valid handle.
+@pre pStatusParams should be allocated by caller.
+@post pStatusParams will be filled with the latest status values of LVVE_Tx.
+
+@return LVVE_SUCCESS Succeeded
+@return LVVE_NULLADDRESS When hInstance or pStatusParams is NULL
+
+@note The LVVE_Tx_GetStatusParameters function can be called at any time during processing.
+This function can run in different threads than the process functions.
+
+
+@ingroup LVVE_Tx
+
+LVVE_Tx_GetStatusParameters: Get Internal Algorithm Status Attributes Example:
+The following example shows how to use LVVE_Tx_GetStatusParameters function call.
+
+\code
+ LVVE_Tx_StatusParams_st Tx_Monitor;
+ Status=LVVE_Tx_GetStatusParameters(hInstance_Tx,&Tx_Monitor);
+ if (Status != LVVE_SUCCESS )
+ {
+ // Error Handling
+ }
+\endcode
+
+*/
+
+LVVE_ReturnStatus_en LVVE_Tx_GetStatusParameters( LVVE_Tx_Handle_t hInstance,
+ LVVE_Tx_StatusParams_st *pStatusParams);
+
+/**
+@brief Retrieve the current LVVE_Rx status parameters.
+
+This function copies internal status variables into the supplied status
+parameter structures.
+
+@param hInstance Instance handle
+@param pStatusParams Pointer to the status parameters
+
+@pre hInstance should be valid handle.
+@pre pStatusParams should be allocated by caller.
+@post pStatusParams will be filled with the latest status values of LVVE_Rx.
+
+@return LVVE_SUCCESS Succeeded
+@return LVVE_NULLADDRESS When hInstance or pStatusParams is NULL
+
+@note The LVVE_Rx_GetStatusParameters function can be called at any time during processing.
+This function can run in different threads than the process functions.
+
+@ingroup LVVE_Rx
+
+LVVE_Rx_GetStatusParameters: Get Internal Algorithm Status Attributes Example:
+The following example shows how to use LVVE_Rx_GetStatusParameters function call.
+
+\code
+ LVVE_Rx_StatusParams_st Rx_Monitor;
+ Status=LVVE_Rx_GetStatusParameters(hInstance_Rx,&Rx_Monitor);
+ if (Status != LVVE_SUCCESS )
+ {
+ // Error Handling
+ }
+\endcode
+
+*/
+
+LVVE_ReturnStatus_en LVVE_Rx_GetStatusParameters( LVVE_Rx_Handle_t hInstance,
+ LVVE_Rx_StatusParams_st *pStatusParams);
+
+/**
+@brief Resets the LVVE_Tx module.
+
+The LVVE_Tx module instance memory contains data which depend on the input
+samples that have been processed previously. These data are buffers
+used for filter tabs and delay lines and also adaptive coefficients of the
+algorithm. The LVVE_Tx_ResetInstance function resets this input dependent data.
+
+The LVVE_Tx_ResetInstance function should be called whenever there is a
+discontinuity in the input audio stream. A discontinuity means that the
+current block of samples is not contiguous with the previous block of samples.
+Examples are
+@li Calling the LVVE_Tx_Process function after a period of inactivity
+@li Buffer underrun or overflow in the audio driver
+The LVVE_ResetInstance function of the Tx and/or Tx Unit should only be called when absolutely necessary as re-adaptation
+of internal algorithms will occur.
+The LVVE_ResetInstance functions can be called at any time, even when LVVE_Process is running. The reset will be
+applied at the start of the next call of the LVVE_Tx_Process function.
+
+
+@param hInstance Instance Handle
+@param pResetParams Reset Type
+
+@pre hInstance should be valid handle.
+
+@post Depending on the ResetType value, the LVVE_Tx_ResetInstance function can
+perform:
+@li Soft reset: partial reset of internal buffers and adaptive behavior. To be used for very short
+interruption or discontinuity, e.g., buffer under-run or overflow in the audio driver influencing the echo path delay.
+@li Hard reset: full reset of all internal buffers and adaptive behavior. To be used for long
+interruption or discontinuity, e.g., before calling the LVVE_Tx_Process function after a long period of inactivity
+in between calls in case instance was not freed.
+
+@return LVVE_SUCCESS Succeeded
+@return LVVE_NULLADDRESS When hInstance or pResetParams is NULL
+@return LVVE_OUTOFRANGE When content of pResetParams is invalid
+
+@note This function may be interrupted by the LVVE_Tx_Process function
+
+@ingroup LVVE_Tx
+
+LVVE_Tx_ResetInstance Example:
+
+The following example shows how to use LVVE_Tx_ResetInstance.
+\code
+ LVVE_Status = LVVE_Tx_ResetInstance(hInstance, pResetParams);
+
+ if (LVVE_Status != LVVE_SUCCESS)
+ {
+ // Handle LVVE_Tx_ResetInstance errors
+ }
+\endcode
+
+*/
+LVVE_ReturnStatus_en LVVE_Tx_ResetInstance( LVVE_Tx_Handle_t hInstance,
+ LVVE_Tx_ResetParams_st *pResetParams );
+
+/**
+@brief Resets the LVVE_Rx module.
+
+The LVVE_Rx module instance memory contains data which depend on the input
+samples that have been processed previously. These data are buffers
+used for filter tabs and delay lines and also adaptive coefficients of the
+algorithm. The LVVE_Rx_ResetInstance function resets this input dependent data.
+
+The LVVE_Rx_ResetInstance function should be called whenever there is a
+discontinuity in the input audio stream. A discontinuity means that the
+current block of samples is not contiguous with the previous block of samples.
+Examples are
+@li Calling the LVVE_Rx_Process function after a period of inactivity
+@li Buffer underrun or overflow in the audio driver
+The LVVE_ResetInstance function of the Rx and/or Tx Unit should only be called when absolutely necessary as re-adaptation
+of internal algorithms will occur.
+The LVVE_ResetInstance functions can be called at any time, even when LVVE_Process is running. The reset will be
+applied at the start of the next call of the LVVE_Rx_Process function.
+
+
+@param hInstance Instance Handle
+@param pResetParams Reset Type
+
+@pre hInstance should be valid handle.
+
+@post Depending on the ResetType value, the LVVE_Rx_ResetInstance function can
+perform:
+@li Soft reset: partial reset of internal buffers and adaptive behavior. To be used for very short
+interruption or discontinuity, e.g., buffer under-run or overflow in the audio driver influencing the echo path delay.
+@li Hard reset: full reset of all internal buffers and adaptive behavior. To be used for long
+interruption or discontinuity, e.g., before calling the LVVE_Rx_Process function after a long period of inactivity
+in between calls in case instance was not freed.
+
+@return LVVE_SUCCESS Succeeded
+@return LVVE_NULLADDRESS When hInstance or pResetParams is NULL
+@return LVVE_OUTOFRANGE When content of pResetParams is invalid
+
+@note This function may be interrupted by the LVVE_Rx_Process function
+
+@ingroup LVVE_Rx
+
+LVVE_Rx_ResetInstance Example:
+
+The following example shows how to use LVVE_Rx_ResetInstance.
+\code
+ LVVE_Status = LVVE_Rx_ResetInstance(hInstance, pResetParams);
+
+ if (LVVE_Status != LVVE_SUCCESS)
+ {
+ // Handle LVVE_Rx_ResetInstance errors
+ }
+\endcode
+
+*/
+LVVE_ReturnStatus_en LVVE_Rx_ResetInstance( LVVE_Rx_Handle_t hInstance,
+ LVVE_Rx_ResetParams_st *pResetParams );
+
+/**
+@brief Processes a block of samples by the LVVE_Tx module.
+
+This function processes the block of samples as configured with the current
+parameter settings. If new parameters have been given since the last call to
+LVVE_Tx_Process then these will be applied at the beginning of this process call.
+
+@param hInstance Instance Handle
+@param pInDataMic0 Pointer to the input speech sample buffer (pimary microphone).
+@param pInDataMic1 Pointer to the input speech sample buffer (secondary microphone).
+@param pRefData Pointer to the input farend reference buffer.
+@param pNoiseData Pointer to the output noise reference buffer.
+@param pOutData Pointer to the output sample buffer.
+@param NumSamples The number of samples to process should be integer multiple(n) of values in table.
+ It is a frquency dependant paramter.
+<table border>
+ <tr>
+ <td><b>Unit</b></td>
+ <td><b>Q format</b></td>
+ <td><b>Data Range</b></td>
+ <td><b>Default Values</b></td>
+ </tr>
+ <tr>
+ <td><b>Samples</b></td>
+ <td><b>Q16.0</b></td>
+ <td>nx80 for 8kHz</td>
+ <td>80 for 8kHz</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td>nx160 for 16kHz</td>
+ <td>160 for 16kHz</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td>nx240 for 24kHz</td>
+ <td>240 for 24kHz</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td>nx320 for 32kHz</td>
+ <td>320 for 32kHz</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td>nx480 for 48kHz</td>
+ <td>480 for 48kHz</td>
+ </tr>
+</table>
+
+@pre hInstance should be valid handle.
+@pre LVVE_Tx_SetControlParameters should be called successfully once before.
+the first call to LVVE_Tx_Process
+@pre pInData is filled with the input samples to process.
+
+@post pOutData contains the processed samples.
+
+@return LVVE_SUCCESS Succeeded
+@return LVVE_NULLADDRESS When hInstance, pInData or pOutData is NULL
+@return LVVE_INVALIDNUMSAMPLES When the NumSamples is outside the allowed
+range
+@return LVVE_INVALID_STATE_CONFIGURATION When invalid state of the algorithm found
+
+@ingroup LVVE_Tx
+
+LVVE_Tx_Process Example:
+
+The following example shows how to use LVVE_Tx_Process function call
+
+\code
+ // Tx Processing
+ LVVE_STATUS = LVVE_Tx_Process( hInstance_Tx,
+ pInData_Tx0,
+ pInData_Tx1,
+ pInData_Ref,
+ pNoiseData,
+ pOutData_Tx,
+ NumSamples );
+ if (LVVE_STATUS != LVVE_SUCCESS )
+ {
+ // Error Handling
+ }
+\endcode
+
+*/
+LVVE_ReturnStatus_en LVVE_Tx_Process( LVVE_Tx_Handle_t hInstance,
+ const LVM_INT16 *pInDataMic0,
+ const LVM_INT16 *pInDataMic1,
+ const LVM_INT16 *pRefData,
+ LVM_INT16 *pNoiseData,
+ LVM_INT16 *pOutData,
+ const LVM_UINT16 NumSamples);
+
+/**
+@brief Processes a block of samples by the LVVE_Rx module.
+
+This function processes the block of samples as configured with the current
+parameter settings. If new parameters have been given since the last call to
+LVVE_Rx_Process then these will be applied at the beginning of this process call.
+
+@param hInstance Instance Handle
+@param pInData Pointer to the input sample buffer
+@param pNoiseData Pointer to the input noise buffer (for LVVC only). Pointer to the input noise reference buffer.
+ The size of this buffer depends on the number of samples to process: NoiseDataBufferSize = 2 (size of the input buffer in ms) / 10ms
+ i.e. for 20 ms input buffer, the NoiseData buffer size should be 4.
+
+@param pOutData Pointer to the output sample buffer
+@param NumSamples The number of samples to process should be integer multiple(n) of values in table.
+ It is a frquency dependant paramter.
+<table border>
+ <tr>
+ <td><b>Unit</b></td>
+ <td><b>Q format</b></td>
+ <td><b>Data Range</b></td>
+ <td><b>Default Values</b></td>
+ </tr>
+ <tr>
+ <td><b>Samples</b></td>
+ <td><b>Q16.0</b></td>
+ <td>nx80 for 8kHz</td>
+ <td>80 for 8kHz</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td>nx160 for 16kHz</td>
+ <td>160 for 16kHz</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td>nx240 for 24kHz</td>
+ <td>240 for 24kHz</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td>nx320 for 32kHz</td>
+ <td>320 for 32kHz</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td>nx480 for 48kHz</td>
+ <td>480 for 48kHz</td>
+ </tr>
+</table>
+
+@pre hInstance should be valid handle.
+@pre LVVE_Rx_SetControlParameters should be called successfully once before.
+the first call to LVVE_Rx_Process
+@pre pInData is filled with the input samples to process.
+
+@post pOutData contains the processed samples.
+
+@return LVVE_SUCCESS Succeeded
+@return LVVE_NULLADDRESS When hInstance, pInData or pOutData is NULL
+@return LVVE_INVALIDNUMSAMPLES When the NumSamples is outside the allowed
+range
+@return LVVE_INVALID_STATE_CONFIGURATION When invalid state of the algorithm found
+
+@ingroup LVVE_Rx
+
+LVVE_Rx_Process Example:
+The following example shows how to use LVVE_Rx_Process function call.
+
+\code
+ // Rx Processing
+ LVVE_STATUS = LVVE_Rx_Process( hInstance_Rx,
+ pInData_Rx,
+ pNoiseData,
+ pOutData_Rx,
+ NumSamples );
+
+ if (LVVE_STATUS != LVVE_SUCCESS )
+ {
+ // Error Handling
+ }
+\endcode
+
+*/
+
+LVVE_ReturnStatus_en LVVE_Rx_Process( LVVE_Rx_Handle_t hInstance,
+ const LVM_INT16 *pInData,
+ const LVM_INT16 *pNoiseData,
+ LVM_INT16 *pOutData,
+ const LVM_UINT16 NumSamples);
+
+
+/**
+\brief get the version number of current of LVVE library.
+
+This function returns, to host, current version of the LVVE library
+@param pVersion version info
+
+@return LVVE_SUCCESS Succeeded
+@return LVVE_NULLADDRESS When one of hInstance, pInData or pOutData is NULL
+
+LVVE_GetVersionInfot Example:
+
+\code
+ //Get the version information
+ LVVE_VersionInfo VersionInfo;
+ LVVE_GetVersionInfo(&VersionInfo);
+\endcode
+
+*/
+LVVE_ReturnStatus_en LVVE_GetVersionInfo( LVVE_VersionInfo *pVersion );
+
+/**
+@brief Sets or changes the LVVE_Tx module parameters through a Preset Buffer.
+
+Sets or changes the LVVE_Tx module parameters through a Preset Buffer. To set parameters using \"C\" structure see
+@ref LVVE_Tx_SetControlParameters
+This function takes the new set of parameters and makes a local copy within the
+LVVE_Tx module but the parameters are only applied on the next call of the LVVE_Tx_Process
+function. When no parameters are changed, no action is taken. This function can
+be called at any time during the processing, even when the LVVE_Tx_Process function
+is running.
+The new parameters are supplied in the form a @ref LVVE_Tx_Preset_t (Byte array).
+The length of the byte array shall be a multiple of @ref LVVE_TX_PRESET_LENGTH.
+
+@param hInstance Instance Handle
+@param pPreset Pointer to a Preset buffer
+@param PresetLength Length in bytes of the Preset buffer
+@param VolumeIndex Volume index to be selected from the Preset buffer
+
+@pre hInstance should be valid handle.
+
+@return @ref LVVE_SUCCESS Succeeded
+@return @ref LVVE_NULLADDRESS When hInstance or pPreset is NULL
+@return @ref LVVE_OUTOFRANGE When PresetLength or any of the new parameters is out of range
+@return @ref LVVE_INVALID_ALGORITHM_CONFIGURATION When mutually exclusive algorithms are enabled in the parameters at the same time
+@return @ref LVVE_PRESET_INVALID_BUFFER_LENGTH When the length of the input buffer is smaller than LVVE_TX_PRESET_LENGTH
+@return @ref LVVE_PRESET_INVALID_VOLUME_INDEX When the volume index exceeds the buffer content
+@return @ref LVVE_PRESET_INVALID_BUFFER_VERSION When the version of the format of the preset buffer does not match the version of the library
+@return @ref LVVE_PRESET_INVALID_BASELINE_VERSION When the baseline version of the provided preset buffer and the baseline version of the library do not match. Is the preset generated for this library ?
+@return @ref LVVE_PRESET_INVALID_MASK When the algorithm mask of the provided preset buffer and the algorithm mask of the library do not match. Is the preset generated for this library ?
+@return @ref LVVE_PRESET_INVALID_SAMPLE_RATE When the sample rate @ref LVM_Fs_en of the preset does not match the sample rate of the hInstance
+@return @ref LVVE_PRESET_INVALID_LVWIREFORMAT_MESSAGEID When the LVWireformat message id @ref LVVIDHeader_MessageID_en of the preset is not valid
+
+@note This function may be interrupted by the LVVE_Tx_Process function
+
+@ingroup LVVE_Tx
+LVVE_Tx_SetPreset: Setting Control Parameters using Preset Buffer Example:
+
+The following example shows how to set different control parameters for the LVVE_Tx instance using Preset Buffer.
+
+\code
+ LVM_CHAR LVVE_Tx_Preset_Buffer[LVVE_TX_PRESET_LENGTH];
+ LVVE_Tx_Preset_t const LVVE_Tx_Preset = LVVE_Tx_Preset_Buffer;
+
+ FILE *PRESETFILE_Tx;
+ LVM_INT32 ReadBytes = 0;
+
+ PRESETFILE_Tx=fopen(filename, "rb" );
+
+ // Read the preset buffer
+ ReadBytes = fread( LVVE_Tx_Preset_Buffer,
+ sizeof(LVM_CHAR),
+ (LVM_UINT32)LVVE_TX_PRESET_LENGTH,
+ PRESETFILE_Tx );
+
+ fclose(PRESETFILE_Tx);
+
+ // Update instance with new preset buffer
+ LVVE_Status = LVVE_Tx_SetPreset( hInstance_Tx,
+ LVVE_Tx_Preset,
+ ReadBytes,
+ 0);
+
+ if ( LVVE_Status != LVVE_SUCCESS )
+ {
+ // Handle Errors
+ }
+\endcode
+
+
+
+*/
+LVVE_ReturnStatus_en LVVE_Tx_SetPreset(LVVE_Tx_Handle_t hInstance,
+ const LVVE_Tx_Preset_t pPreset,
+ LVM_UINT32 PresetLength,
+ LVM_UINT16 VolumeIndex);
+
+/**
+@brief Sets or changes the LVVE_Rx module parameters through a Preset Buffer
+
+Sets or changes the LVVE_Rx module parameters through a Preset Buffer. To set parameters using \"C\" structure see
+@ref LVVE_Rx_SetControlParameters
+This function takes the new set of parameters and makes a local copy within the
+LVVE_Rx module but the parameters are only applied on the next call of the LVVE_Rx_Process
+function. When no parameters are changed, no action is taken. This function can
+be called at any time during the processing, even when the LVVE_Rx_Process function
+is running.
+The new parameters are supplied in the form a @ref LVVE_Rx_Preset_t (Byte array).
+The length of the byte array shall be a multiple of @ref LVVE_RX_PRESET_LENGTH.
+
+@param hInstance Instance Handle
+@param pPreset Pointer to a Preset buffer
+@param PresetLength Length in bytes of the Preset buffer
+@param VolumeIndex Volume index to be selected from the Preset buffer
+
+@pre hInstance should be valid handle.
+
+@return @ref LVVE_SUCCESS Succeeded
+@return @ref LVVE_NULLADDRESS When hInstance or pPreset is NULL
+@return @ref LVVE_OUTOFRANGE When PresetLength or any of the new parameters is out of range
+@return @ref LVVE_INVALID_ALGORITHM_CONFIGURATION When mutually exclusive algorithms are enabled in the parameters at the same time
+@return @ref LVVE_PRESET_INVALID_BUFFER_LENGTH When the length of the input buffer is smaller than LVVE_RX_PRESET_LENGTH
+@return @ref LVVE_PRESET_INVALID_VOLUME_INDEX When the volume index exceeds the buffer content
+@return @ref LVVE_PRESET_INVALID_BUFFER_VERSION When the version of the format of the preset buffer does not match the version of the library
+@return @ref LVVE_PRESET_INVALID_BASELINE_VERSION When the baseline version of the provided preset buffer and the baseline version of the library do not match. Is the preset generated for this library ?
+@return @ref LVVE_PRESET_INVALID_MASK When the algorithm mask of the provided preset buffer and the algorithm mask of the library do not match. Is the preset generated for this library ?
+@return @ref LVVE_PRESET_INVALID_SAMPLE_RATE When the sample rate @ref LVM_Fs_en of the preset does not match the sample rate of the hInstance
+@return @ref LVVE_PRESET_INVALID_LVWIREFORMAT_MESSAGEID When the LVWireformat message id @ref LVVIDHeader_MessageID_en of the preset is not valid
+
+@note This function may be interrupted by the LVVE_Rx_Process function
+
+@ingroup LVVE_Rx
+
+LVVE_Rx_SetPreset: Setting Control Parameters using Preset Buffer Example:
+
+The following example shows how to set different control parameters for the LVVE_Rx instance using Preset Buffer.
+
+\code
+ #define NUM_VOLUMES (5)
+ LVM_CHAR LVVE_Rx_Preset_Buffer[NUM_VOLUMES*LVVE_RX_PRESET_LENGTH];
+ LVVE_Rx_Preset_t const LVVE_Rx_Preset = LVVE_Rx_Preset_Buffer;
+
+ FILE *PRESETFILE_Rx;
+ LVM_INT32 ReadBytes = 0;
+ LVM_UINT16 VolumeIndex = 3;
+
+ PRESETFILE_Rx=fopen(filename, "rb" );
+
+ // Read the preset buffer
+ ReadBytes = fread( LVVE_Rx_Preset_Buffer,
+ sizeof(LVM_CHAR),
+ (LVM_UINT32)(NUM_VOLUMES*LVVE_RX_PRESET_LENGTH),
+ PRESETFILE_Rx );
+
+ fclose(PRESETFILE_Rx);
+
+ // Update instance with new preset buffer
+ LVVE_Status = LVVE_Rx_SetPreset( hInstance_Rx,
+ LVVE_Rx_Preset,
+ ReadBytes,
+ VolumeIndex);
+
+ if ( LVVE_Status != LVVE_SUCCESS )
+ {
+ // Handle Errors
+ }
+\endcode
+
+*/
+LVVE_ReturnStatus_en LVVE_Rx_SetPreset(LVVE_Rx_Handle_t hInstance,
+ const LVVE_Rx_Preset_t pPreset,
+ LVM_UINT32 PresetLength,
+ LVM_UINT16 VolumeIndex);
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __LVVE_H__ */
+
+/* End of file */
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/tos/LVVE_VID.h b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/tos/LVVE_VID.h
new file mode 100755
index 0000000..98a1461
--- /dev/null
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/tos/LVVE_VID.h
@@ -0,0 +1,8452 @@
+/****************************************************************************************/
+/* Copyright (c) 2004-2015 NXP Software. All rights are reserved. */
+/* Reproduction in whole or in part is prohibited without the prior */
+/* written consent of the copyright owner. */
+/* */
+/* This software and any compilation or derivative thereof is and */
+/* shall remain the proprietary information of NXP Software and is */
+/* highly confidential in nature. Any and all use hereof is restricted */
+/* and is subject to the terms and conditions set forth in the */
+/* software license agreement concluded with NXP Software. */
+/* */
+/* Under no circumstances is this software or any derivative thereof */
+/* to be combined with any Open Source Software in any way or */
+/* licensed under any Open License Terms without the express prior */
+/* written permission of NXP Software. */
+/* */
+/* For the purpose of this clause, the term Open Source Software means */
+/* any software that is licensed under Open License Terms. Open */
+/* License Terms means terms in any license that require as a */
+/* condition of use, modification and/or distribution of a work */
+/* */
+/* 1. the making available of source code or other materials */
+/* preferred for modification, or */
+/* */
+/* 2. the granting of permission for creating derivative */
+/* works, or */
+/* */
+/* 3. the reproduction of certain notices or license terms */
+/* in derivative works or accompanying documentation, or */
+/* */
+/* 4. the granting of a royalty-free license to any party */
+/* under Intellectual Property Rights */
+/* */
+/* regarding the work and/or any work that contains, is combined with, */
+/* requires or otherwise is based on the work. */
+/* */
+/* This software is provided for ease of recompilation only. */
+/* Modification and reverse engineering of this software are strictly */
+/* prohibited. */
+/* */
+/****************************************************************************************/
+
+/****************************************************************************************/
+/* */
+/* $Author: nxp65285 $*/
+/* $Revision: 49390 $*/
+/* $Date: 2013-10-16 18:34:35 +0530 (Wed, 16 Oct 2013) $*/
+/* */
+/****************************************************************************************/
+
+/** @file
+ * Header file for the application layer interface of the REL_LVVE_HF_NV1_VC_AGC_RX_DRC_RX_WB module
+ *
+ * The suffix VID in header file stands for Voice Interface Definition
+ * This files includes all definitions, types, and structures required by the calling
+ * layer. Public functions are defined in the protoypes header files.
+ * All other types, structures and functions are private.
+ */
+
+#ifndef __REL_LVVE_HF_NV1_VC_AGC_RX_DRC_RX_WB_VIDPP_H__
+#define __REL_LVVE_HF_NV1_VC_AGC_RX_DRC_RX_WB_VIDPP_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/****************************************************************************************/
+/* */
+/* Includes */
+/* */
+/****************************************************************************************/
+#include "LVC_Types.h"
+
+/****************************************************************************************/
+/* */
+/* Definitions */
+/* */
+/****************************************************************************************/
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_RX_LVFENS_MASK1</td>
+ <td>1</td>
+ <td>Far End Noise Suppression is present in the LVVE_Rx</td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_RX_HPF_MASK1</td>
+ <td>4</td>
+ <td>High Pass Filter is present in the LVVE_Rx</td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_RX_LVNG_MASK1</td>
+ <td>16</td>
+ <td>Noise Gate is present in the LVVE_Rx</td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_RX_EQ_MASK1</td>
+ <td>64</td>
+ <td>Equalizer is present in the LVVE_Rx</td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_RX_AGC_MASK1</td>
+ <td>128</td>
+ <td>Automatic Gain Control is present in the LVVE_Rx</td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_RX_DRC_MASK1</td>
+ <td>256</td>
+ <td>Dynamic Range Control is present in the LVVE_Rx</td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_RX_VOL_MASK1</td>
+ <td>512</td>
+ <td>Volume Control is present in the LVVE_Rx</td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_RX_LVVC_MASK1</td>
+ <td>1024</td>
+ <td>VoiceClarity is present in the LVVE_Rx</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVVIDHeader_LVVE_Rx_Mask1_bm;
+/**
+* @def LVVIDHeader_LVVE_Rx_LVFENS_MASK1
+* Far End Noise Suppression is present in the LVVE_Rx
+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_RX_LVFENS_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)1)
+/**
+* @def LVVIDHeader_LVVE_Rx_HPF_MASK1
+* High Pass Filter is present in the LVVE_Rx
+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_RX_HPF_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)4)
+/**
+* @def LVVIDHeader_LVVE_Rx_LVNG_MASK1
+* Noise Gate is present in the LVVE_Rx
+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_RX_LVNG_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)16)
+/**
+* @def LVVIDHeader_LVVE_Rx_EQ_MASK1
+* Equalizer is present in the LVVE_Rx
+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_RX_EQ_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)64)
+/**
+* @def LVVIDHeader_LVVE_Rx_AGC_MASK1
+* Automatic Gain Control is present in the LVVE_Rx
+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_RX_AGC_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)128)
+/**
+* @def LVVIDHeader_LVVE_Rx_DRC_MASK1
+* Dynamic Range Control is present in the LVVE_Rx
+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_RX_DRC_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)256)
+/**
+* @def LVVIDHeader_LVVE_Rx_VOL_MASK1
+* Volume Control is present in the LVVE_Rx
+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_RX_VOL_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)512)
+/**
+* @def LVVIDHeader_LVVE_Rx_LVVC_MASK1
+* VoiceClarity is present in the LVVE_Rx
+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_RX_LVVC_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)1024)
+/**
+* @def LVVIDHEADER_LVVE_RX_MASK1_BM_MIN
+* Minimal value for LVVIDHeader_LVVE_Rx_Mask1_bm
+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_RX_MASK1_BM_MIN ((LVVIDHeader_LVVE_Rx_Mask1_bm)0)
+/**
+* @def LVVIDHEADER_LVVE_RX_MASK1_BM_MAX
+* Maximal value for LVVIDHeader_LVVE_Rx_Mask1_bm
+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_RX_LVFENS_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)1)
+#define LVVIDHEADER_LVVE_RX_HPF_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)4)
+#define LVVIDHEADER_LVVE_RX_LVNG_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)16)
+#define LVVIDHEADER_LVVE_RX_EQ_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)64)
+#define LVVIDHEADER_LVVE_RX_AGC_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)128)
+#define LVVIDHEADER_LVVE_RX_DRC_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)256)
+#define LVVIDHEADER_LVVE_RX_VOL_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)512)
+#define LVVIDHEADER_LVVE_RX_LVVC_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)1024)
+#define LVVIDHEADER_LVVE_RX_MASK1_BM_MAX (LVVIDHEADER_LVVE_RX_LVFENS_MASK1_FORMAX | LVVIDHEADER_LVVE_RX_HPF_MASK1_FORMAX | LVVIDHEADER_LVVE_RX_LVNG_MASK1_FORMAX | LVVIDHEADER_LVVE_RX_EQ_MASK1_FORMAX | LVVIDHEADER_LVVE_RX_AGC_MASK1_FORMAX | LVVIDHEADER_LVVE_RX_DRC_MASK1_FORMAX | LVVIDHEADER_LVVE_RX_VOL_MASK1_FORMAX | LVVIDHEADER_LVVE_RX_LVVC_MASK1_FORMAX | ((LVVIDHeader_LVVE_Rx_Mask1_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVVIDHeader_LVVE_Rx_Mask2_bm;
+/**
+* @def LVVIDHEADER_LVVE_RX_MASK2_BM_MIN
+* Minimal value for LVVIDHeader_LVVE_Rx_Mask2_bm
+* @see LVVIDHeader_LVVE_Rx_Mask2_bm
+*/
+#define LVVIDHEADER_LVVE_RX_MASK2_BM_MIN ((LVVIDHeader_LVVE_Rx_Mask2_bm)0)
+/**
+* @def LVVIDHEADER_LVVE_RX_MASK2_BM_MAX
+* Maximal value for LVVIDHeader_LVVE_Rx_Mask2_bm
+* @see LVVIDHeader_LVVE_Rx_Mask2_bm
+*/
+#define LVVIDHEADER_LVVE_RX_MASK2_BM_MAX (((LVVIDHeader_LVVE_Rx_Mask2_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_TX_LVHF_MASK1</td>
+ <td>1</td>
+ <td>HandsFree is present in the LVVE_Tx</td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_TX_EQ_MASK1</td>
+ <td>4</td>
+ <td>Equalizer is present in the LVVE_Tx</td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_TX_LVWM_MASK1</td>
+ <td>8</td>
+ <td>WhisperMode is present in the LVVE_Tx</td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_TX_DRC_MASK1</td>
+ <td>16</td>
+ <td>Dynamic Range Control is present in the LVVE_Tx</td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_TX_VOL_MASK1</td>
+ <td>32</td>
+ <td>Volume Control is present in the LVVE_Tx</td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_TX_HPF_MASK1</td>
+ <td>128</td>
+ <td>HPF is present in the LVVE_Tx</td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_TX_LVNV_01_MASK1</td>
+ <td>512</td>
+ <td>NoiseVoid is present in the LVVE_Tx</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVVIDHeader_LVVE_Tx_Mask1_bm;
+/**
+* @def LVVIDHeader_LVVE_Tx_LVHF_MASK1
+* HandsFree is present in the LVVE_Tx
+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_TX_LVHF_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)1)
+/**
+* @def LVVIDHeader_LVVE_Tx_EQ_MASK1
+* Equalizer is present in the LVVE_Tx
+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_TX_EQ_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)4)
+/**
+* @def LVVIDHeader_LVVE_Tx_LVWM_MASK1
+* WhisperMode is present in the LVVE_Tx
+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_TX_LVWM_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)8)
+/**
+* @def LVVIDHeader_LVVE_Tx_DRC_MASK1
+* Dynamic Range Control is present in the LVVE_Tx
+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_TX_DRC_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)16)
+/**
+* @def LVVIDHeader_LVVE_Tx_VOL_MASK1
+* Volume Control is present in the LVVE_Tx
+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_TX_VOL_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)32)
+/**
+* @def LVVIDHeader_LVVE_Tx_HPF_MASK1
+* HPF is present in the LVVE_Tx
+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_TX_HPF_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)128)
+/**
+* @def LVVIDHeader_LVVE_Tx_LVNV_01_MASK1
+* NoiseVoid is present in the LVVE_Tx
+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_TX_LVNV_01_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)512)
+/**
+* @def LVVIDHEADER_LVVE_TX_MASK1_BM_MIN
+* Minimal value for LVVIDHeader_LVVE_Tx_Mask1_bm
+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_TX_MASK1_BM_MIN ((LVVIDHeader_LVVE_Tx_Mask1_bm)0)
+/**
+* @def LVVIDHEADER_LVVE_TX_MASK1_BM_MAX
+* Maximal value for LVVIDHeader_LVVE_Tx_Mask1_bm
+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_TX_LVHF_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)1)
+#define LVVIDHEADER_LVVE_TX_EQ_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)4)
+#define LVVIDHEADER_LVVE_TX_LVWM_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)8)
+#define LVVIDHEADER_LVVE_TX_DRC_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)16)
+#define LVVIDHEADER_LVVE_TX_VOL_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)32)
+#define LVVIDHEADER_LVVE_TX_HPF_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)128)
+#define LVVIDHEADER_LVVE_TX_LVNV_01_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)512)
+#define LVVIDHEADER_LVVE_TX_MASK1_BM_MAX (LVVIDHEADER_LVVE_TX_LVHF_MASK1_FORMAX | LVVIDHEADER_LVVE_TX_EQ_MASK1_FORMAX | LVVIDHEADER_LVVE_TX_LVWM_MASK1_FORMAX | LVVIDHEADER_LVVE_TX_DRC_MASK1_FORMAX | LVVIDHEADER_LVVE_TX_VOL_MASK1_FORMAX | LVVIDHEADER_LVVE_TX_HPF_MASK1_FORMAX | LVVIDHEADER_LVVE_TX_LVNV_01_MASK1_FORMAX | ((LVVIDHeader_LVVE_Tx_Mask1_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVVIDHeader_LVVE_Tx_Mask2_bm;
+/**
+* @def LVVIDHEADER_LVVE_TX_MASK2_BM_MIN
+* Minimal value for LVVIDHeader_LVVE_Tx_Mask2_bm
+* @see LVVIDHeader_LVVE_Tx_Mask2_bm
+*/
+#define LVVIDHEADER_LVVE_TX_MASK2_BM_MIN ((LVVIDHeader_LVVE_Tx_Mask2_bm)0)
+/**
+* @def LVVIDHEADER_LVVE_TX_MASK2_BM_MAX
+* Maximal value for LVVIDHeader_LVVE_Tx_Mask2_bm
+* @see LVVIDHeader_LVVE_Tx_Mask2_bm
+*/
+#define LVVIDHEADER_LVVE_TX_MASK2_BM_MAX (((LVVIDHeader_LVVE_Tx_Mask2_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_CONFIGURATIONS_WIDEBAND_MASK1</td>
+ <td>2</td>
+ <td>WideBand configuration is present in the LVVE</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVVIDHeader_Configurations_Mask1_bm;
+/**
+* @def LVVIDHEADER_CONFIGURATIONS_WIDEBAND_MASK1
+* WideBand configuration is present in the LVVE
+* @see LVVIDHeader_Configurations_Mask1_bm
+*/
+#define LVVIDHEADER_CONFIGURATIONS_WIDEBAND_MASK1 ((LVVIDHeader_Configurations_Mask1_bm)2)
+/**
+* @def LVVIDHEADER_CONFIGURATIONS_MASK1_BM_MIN
+* Minimal value for LVVIDHeader_Configurations_Mask1_bm
+* @see LVVIDHeader_Configurations_Mask1_bm
+*/
+#define LVVIDHEADER_CONFIGURATIONS_MASK1_BM_MIN ((LVVIDHeader_Configurations_Mask1_bm)0)
+/**
+* @def LVVIDHEADER_CONFIGURATIONS_MASK1_BM_MAX
+* Maximal value for LVVIDHeader_Configurations_Mask1_bm
+* @see LVVIDHeader_Configurations_Mask1_bm
+*/
+#define LVVIDHEADER_CONFIGURATIONS_WIDEBAND_MASK1_FORMAX ((LVVIDHeader_Configurations_Mask1_bm)2)
+#define LVVIDHEADER_CONFIGURATIONS_MASK1_BM_MAX (LVVIDHEADER_CONFIGURATIONS_WIDEBAND_MASK1_FORMAX | ((LVVIDHeader_Configurations_Mask1_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVVIDHeader_Configurations_Mask2_bm;
+/**
+* @def LVVIDHEADER_CONFIGURATIONS_MASK2_BM_MIN
+* Minimal value for LVVIDHeader_Configurations_Mask2_bm
+* @see LVVIDHeader_Configurations_Mask2_bm
+*/
+#define LVVIDHEADER_CONFIGURATIONS_MASK2_BM_MIN ((LVVIDHeader_Configurations_Mask2_bm)0)
+/**
+* @def LVVIDHEADER_CONFIGURATIONS_MASK2_BM_MAX
+* Maximal value for LVVIDHeader_Configurations_Mask2_bm
+* @see LVVIDHeader_Configurations_Mask2_bm
+*/
+#define LVVIDHEADER_CONFIGURATIONS_MASK2_BM_MAX (((LVVIDHeader_Configurations_Mask2_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref LVVC_MODE_AVL</td>
+ <td>2</td>
+ <td>Turns on or off the AGC. If off both AGC and Limiter are bypassed.</td>
+ </tr>
+ <tr>
+ <td>@ref LVVC_MODE_AVL_ADAPT</td>
+ <td>4</td>
+ <td>Allows turning off the dependency of the AGC upon the nearend noise level. When turned off, the AGC uses the default parameters.</td>
+ </tr>
+ <tr>
+ <td>@ref LVVC_MODE_AVL_SPDETECT</td>
+ <td>8</td>
+ <td>Allows disabling speech detection in the AGC. When turned off, the AGC adapts its gain all the time.</td>
+ </tr>
+ <tr>
+ <td>@ref LVVC_MODE_LIMITER</td>
+ <td>16</td>
+ <td>Turns on or off the limiter.</td>
+ </tr>
+ <tr>
+ <td>@ref LVVC_MODE_LPF</td>
+ <td>32</td>
+ <td>Turns on or off the low-pass filter.</td>
+ </tr>
+ <tr>
+ <td>@ref LVVC_MODE_HPF</td>
+ <td>64</td>
+ <td>Turns on or off the high-pass filter.</td>
+ </tr>
+ <tr>
+ <td>@ref LVVC_MODE_VC</td>
+ <td>128</td>
+ <td>Turns on or off the VoiceClarity gain.</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVVC_ModeWord_bm;
+/**
+* @def LVVC_MODE_AVL
+* Turns on or off the AGC. If off both AGC and Limiter are bypassed.
+* @see LVVC_ModeWord_bm
+*/
+#define LVVC_MODE_AVL ((LVVC_ModeWord_bm)2)
+/**
+* @def LVVC_MODE_AVL_ADAPT
+* Allows turning off the dependency of the AGC upon the nearend noise level. When turned off, the AGC uses the default parameters.
+* @see LVVC_ModeWord_bm
+*/
+#define LVVC_MODE_AVL_ADAPT ((LVVC_ModeWord_bm)4)
+/**
+* @def LVVC_MODE_AVL_SPDETECT
+* Allows disabling speech detection in the AGC. When turned off, the AGC adapts its gain all the time.
+* @see LVVC_ModeWord_bm
+*/
+#define LVVC_MODE_AVL_SPDETECT ((LVVC_ModeWord_bm)8)
+/**
+* @def LVVC_MODE_LIMITER
+* Turns on or off the limiter.
+* @see LVVC_ModeWord_bm
+*/
+#define LVVC_MODE_LIMITER ((LVVC_ModeWord_bm)16)
+/**
+* @def LVVC_MODE_LPF
+* Turns on or off the low-pass filter.
+* @see LVVC_ModeWord_bm
+*/
+#define LVVC_MODE_LPF ((LVVC_ModeWord_bm)32)
+/**
+* @def LVVC_MODE_HPF
+* Turns on or off the high-pass filter.
+* @see LVVC_ModeWord_bm
+*/
+#define LVVC_MODE_HPF ((LVVC_ModeWord_bm)64)
+/**
+* @def LVVC_MODE_VC
+* Turns on or off the VoiceClarity gain.
+* @see LVVC_ModeWord_bm
+*/
+#define LVVC_MODE_VC ((LVVC_ModeWord_bm)128)
+/**
+* @def LVVC_MODEWORD_BM_MIN
+* Minimal value for LVVC_ModeWord_bm
+* @see LVVC_ModeWord_bm
+*/
+#define LVVC_MODEWORD_BM_MIN ((LVVC_ModeWord_bm)0)
+/**
+* @def LVVC_MODEWORD_BM_MAX
+* Maximal value for LVVC_ModeWord_bm
+* @see LVVC_ModeWord_bm
+*/
+#define LVVC_MODE_AVL_FORMAX ((LVVC_ModeWord_bm)2)
+#define LVVC_MODE_AVL_ADAPT_FORMAX ((LVVC_ModeWord_bm)4)
+#define LVVC_MODE_AVL_SPDETECT_FORMAX ((LVVC_ModeWord_bm)8)
+#define LVVC_MODE_LIMITER_FORMAX ((LVVC_ModeWord_bm)16)
+#define LVVC_MODE_LPF_FORMAX ((LVVC_ModeWord_bm)32)
+#define LVVC_MODE_HPF_FORMAX ((LVVC_ModeWord_bm)64)
+#define LVVC_MODE_VC_FORMAX ((LVVC_ModeWord_bm)128)
+#define LVVC_MODEWORD_BM_MAX (LVVC_MODE_AVL_FORMAX | LVVC_MODE_AVL_ADAPT_FORMAX | LVVC_MODE_AVL_SPDETECT_FORMAX | LVVC_MODE_LIMITER_FORMAX | LVVC_MODE_LPF_FORMAX | LVVC_MODE_HPF_FORMAX | LVVC_MODE_VC_FORMAX | ((LVVC_ModeWord_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref LVFENS_MODE_HS</td>
+ <td>1</td>
+ <td>Switch ON and OFF Horn Suppressor. Currently Horn Suppressor is not supported.</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVFENS_ModeWord_bm;
+/**
+* @def LVFENS_MODE_HS
+* Switch ON and OFF Horn Suppressor. Currently Horn Suppressor is not supported.
+* @see LVFENS_ModeWord_bm
+*/
+#define LVFENS_MODE_HS ((LVFENS_ModeWord_bm)1)
+/**
+* @def LVFENS_MODEWORD_BM_MIN
+* Minimal value for LVFENS_ModeWord_bm
+* @see LVFENS_ModeWord_bm
+*/
+#define LVFENS_MODEWORD_BM_MIN ((LVFENS_ModeWord_bm)0)
+/**
+* @def LVFENS_MODEWORD_BM_MAX
+* Maximal value for LVFENS_ModeWord_bm
+* @see LVFENS_ModeWord_bm
+*/
+#define LVFENS_MODE_HS_FORMAX ((LVFENS_ModeWord_bm)1)
+#define LVFENS_MODEWORD_BM_MAX (LVFENS_MODE_HS_FORMAX | ((LVFENS_ModeWord_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref LVWM_MODE_AVL</td>
+ <td>1</td>
+ <td>Turns on or off the AVL. If off, both AGC and Limiter are bypassed</td>
+ </tr>
+ <tr>
+ <td>@ref LVWM_MODE_SPDETECT</td>
+ <td>2</td>
+ <td>Allows disabling speech detection in the AVL. When turned off, the AGC adapts its gain all the time.</td>
+ </tr>
+ <tr>
+ <td>@ref LVWM_MODE_LIMITER</td>
+ <td>4</td>
+ <td>Turns on or off the limiter.</td>
+ </tr>
+ <tr>
+ <td>@ref LVWM_MODE_EXT_SPDETECT</td>
+ <td>8</td>
+ <td>Used to tell the WhisperMode module if an external speech detection is available (If 0, there is no external speech detector).</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVWM_ModeWord_bm;
+/**
+* @def LVWM_MODE_AVL
+* Turns on or off the AVL. If off, both AGC and Limiter are bypassed
+* @see LVWM_ModeWord_bm
+*/
+#define LVWM_MODE_AVL ((LVWM_ModeWord_bm)1)
+/**
+* @def LVWM_MODE_SPDETECT
+* Allows disabling speech detection in the AVL. When turned off, the AGC adapts its gain all the time.
+* @see LVWM_ModeWord_bm
+*/
+#define LVWM_MODE_SPDETECT ((LVWM_ModeWord_bm)2)
+/**
+* @def LVWM_MODE_LIMITER
+* Turns on or off the limiter.
+* @see LVWM_ModeWord_bm
+*/
+#define LVWM_MODE_LIMITER ((LVWM_ModeWord_bm)4)
+/**
+* @def LVWM_MODE_EXT_SPDETECT
+* Used to tell the WhisperMode module if an external speech detection is available (If 0, there is no external speech detector).
+* @see LVWM_ModeWord_bm
+*/
+#define LVWM_MODE_EXT_SPDETECT ((LVWM_ModeWord_bm)8)
+/**
+* @def LVWM_MODEWORD_BM_MIN
+* Minimal value for LVWM_ModeWord_bm
+* @see LVWM_ModeWord_bm
+*/
+#define LVWM_MODEWORD_BM_MIN ((LVWM_ModeWord_bm)0)
+/**
+* @def LVWM_MODEWORD_BM_MAX
+* Maximal value for LVWM_ModeWord_bm
+* @see LVWM_ModeWord_bm
+*/
+#define LVWM_MODE_AVL_FORMAX ((LVWM_ModeWord_bm)1)
+#define LVWM_MODE_SPDETECT_FORMAX ((LVWM_ModeWord_bm)2)
+#define LVWM_MODE_LIMITER_FORMAX ((LVWM_ModeWord_bm)4)
+#define LVWM_MODE_EXT_SPDETECT_FORMAX ((LVWM_ModeWord_bm)8)
+#define LVWM_MODEWORD_BM_MAX (LVWM_MODE_AVL_FORMAX | LVWM_MODE_SPDETECT_FORMAX | LVWM_MODE_LIMITER_FORMAX | LVWM_MODE_EXT_SPDETECT_FORMAX | ((LVWM_ModeWord_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref MODE_NLMS0</td>
+ <td>1</td>
+ <td>NLMS0 functionality</td>
+ </tr>
+ <tr>
+ <td>@ref MODE_NLMS1</td>
+ <td>2</td>
+ <td>NLMS1 functionality</td>
+ </tr>
+ <tr>
+ <td>@ref MODE_BEAMFORMER</td>
+ <td>4</td>
+ <td>Fiter-and-Sum Beamformer functionality</td>
+ </tr>
+ <tr>
+ <td>@ref MODE_PCD</td>
+ <td>8</td>
+ <td>Switch between PCD (Path change detector) and BSD (Broadside detector)</td>
+ </tr>
+ <tr>
+ <td>@ref MODE_GSC</td>
+ <td>16</td>
+ <td>Generalized Sidelobe Canceller functionality</td>
+ </tr>
+ <tr>
+ <td>@ref MODE_DNNS</td>
+ <td>32</td>
+ <td>Dynamic Non-stationary Noise Suppression functionality</td>
+ </tr>
+ <tr>
+ <td>@ref MODE_DES</td>
+ <td>64</td>
+ <td>Dynamic Echo Suppression functionality</td>
+ </tr>
+ <tr>
+ <td>@ref MODE_NS</td>
+ <td>128</td>
+ <td>Stationary Noise Suppression functionality</td>
+ </tr>
+ <tr>
+ <td>@ref MODE_NS_N</td>
+ <td>256</td>
+ <td>Non-stationary Noise Suppression functionality</td>
+ </tr>
+ <tr>
+ <td>@ref MODE_CAL</td>
+ <td>2048</td>
+ <td>Switch between initial or continuous calibration</td>
+ </tr>
+ <tr>
+ <td>@ref MODE_HB</td>
+ <td>16384</td>
+ <td>High Band mute/activated</td>
+ </tr>
+ <tr>
+ <td>@ref MODE_HS</td>
+ <td>32768</td>
+ <td>Horn Suppressor functionality (if available)</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVNV_ModeWord_bm;
+/**
+* @def MODE_NLMS0
+* NLMS0 functionality
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_NLMS0 ((LVNV_ModeWord_bm)1)
+/**
+* @def MODE_NLMS1
+* NLMS1 functionality
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_NLMS1 ((LVNV_ModeWord_bm)2)
+/**
+* @def MODE_BEAMFORMER
+* Fiter-and-Sum Beamformer functionality
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_BEAMFORMER ((LVNV_ModeWord_bm)4)
+/**
+* @def MODE_PCD
+* Switch between PCD (Path change detector) and BSD (Broadside detector)
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_PCD ((LVNV_ModeWord_bm)8)
+/**
+* @def MODE_GSC
+* Generalized Sidelobe Canceller functionality
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_GSC ((LVNV_ModeWord_bm)16)
+/**
+* @def MODE_DNNS
+* Dynamic Non-stationary Noise Suppression functionality
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_DNNS ((LVNV_ModeWord_bm)32)
+/**
+* @def MODE_DES
+* Dynamic Echo Suppression functionality
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_DES ((LVNV_ModeWord_bm)64)
+/**
+* @def MODE_NS
+* Stationary Noise Suppression functionality
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_NS ((LVNV_ModeWord_bm)128)
+/**
+* @def MODE_NS_N
+* Non-stationary Noise Suppression functionality
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_NS_N ((LVNV_ModeWord_bm)256)
+/**
+* @def MODE_CAL
+* Switch between initial or continuous calibration
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_CAL ((LVNV_ModeWord_bm)2048)
+/**
+* @def MODE_HB
+* High Band mute/activated
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_HB ((LVNV_ModeWord_bm)16384)
+/**
+* @def MODE_HS
+* Horn Suppressor functionality (if available)
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_HS ((LVNV_ModeWord_bm)32768)
+/**
+* @def LVNV_MODEWORD_BM_MIN
+* Minimal value for LVNV_ModeWord_bm
+* @see LVNV_ModeWord_bm
+*/
+#define LVNV_MODEWORD_BM_MIN ((LVNV_ModeWord_bm)0)
+/**
+* @def LVNV_MODEWORD_BM_MAX
+* Maximal value for LVNV_ModeWord_bm
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_NLMS0_FORMAX ((LVNV_ModeWord_bm)1)
+#define MODE_NLMS1_FORMAX ((LVNV_ModeWord_bm)2)
+#define MODE_BEAMFORMER_FORMAX ((LVNV_ModeWord_bm)4)
+#define MODE_PCD_FORMAX ((LVNV_ModeWord_bm)8)
+#define MODE_GSC_FORMAX ((LVNV_ModeWord_bm)16)
+#define MODE_DNNS_FORMAX ((LVNV_ModeWord_bm)32)
+#define MODE_DES_FORMAX ((LVNV_ModeWord_bm)64)
+#define MODE_NS_FORMAX ((LVNV_ModeWord_bm)128)
+#define MODE_NS_N_FORMAX ((LVNV_ModeWord_bm)256)
+#define MODE_CAL_FORMAX ((LVNV_ModeWord_bm)2048)
+#define MODE_HB_FORMAX ((LVNV_ModeWord_bm)16384)
+#define MODE_HS_FORMAX ((LVNV_ModeWord_bm)32768)
+#define LVNV_MODEWORD_BM_MAX (MODE_NLMS0_FORMAX | MODE_NLMS1_FORMAX | MODE_BEAMFORMER_FORMAX | MODE_PCD_FORMAX | MODE_GSC_FORMAX | MODE_DNNS_FORMAX | MODE_DES_FORMAX | MODE_NS_FORMAX | MODE_NS_N_FORMAX | MODE_CAL_FORMAX | MODE_HB_FORMAX | MODE_HS_FORMAX | ((LVNV_ModeWord_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref MODE2_FSB_CARDIOID</td>
+ <td>1</td>
+ <td>FSB update based on speech detection in cardioid</td>
+ </tr>
+ <tr>
+ <td>@ref MODE2_FSB_WITHINBEAM</td>
+ <td>2</td>
+ <td>FSB update based on withinbeam detection</td>
+ </tr>
+ <tr>
+ <td>@ref MODE2_CAL_UPDATE</td>
+ <td>4</td>
+ <td>Switch for calibration functionality between updated or not-updated</td>
+ </tr>
+ <tr>
+ <td>@ref MODE2_BEAMDAMAGE</td>
+ <td>8</td>
+ <td>Microphone coverage protection</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVNV_Mode2Word_bm;
+/**
+* @def MODE2_FSB_CARDIOID
+* FSB update based on speech detection in cardioid
+* @see LVNV_Mode2Word_bm
+*/
+#define MODE2_FSB_CARDIOID ((LVNV_Mode2Word_bm)1)
+/**
+* @def MODE2_FSB_WITHINBEAM
+* FSB update based on withinbeam detection
+* @see LVNV_Mode2Word_bm
+*/
+#define MODE2_FSB_WITHINBEAM ((LVNV_Mode2Word_bm)2)
+/**
+* @def MODE2_CAL_UPDATE
+* Switch for calibration functionality between updated or not-updated
+* @see LVNV_Mode2Word_bm
+*/
+#define MODE2_CAL_UPDATE ((LVNV_Mode2Word_bm)4)
+/**
+* @def MODE2_BEAMDAMAGE
+* Microphone coverage protection
+* @see LVNV_Mode2Word_bm
+*/
+#define MODE2_BEAMDAMAGE ((LVNV_Mode2Word_bm)8)
+/**
+* @def LVNV_MODE2WORD_BM_MIN
+* Minimal value for LVNV_Mode2Word_bm
+* @see LVNV_Mode2Word_bm
+*/
+#define LVNV_MODE2WORD_BM_MIN ((LVNV_Mode2Word_bm)0)
+/**
+* @def LVNV_MODE2WORD_BM_MAX
+* Maximal value for LVNV_Mode2Word_bm
+* @see LVNV_Mode2Word_bm
+*/
+#define MODE2_FSB_CARDIOID_FORMAX ((LVNV_Mode2Word_bm)1)
+#define MODE2_FSB_WITHINBEAM_FORMAX ((LVNV_Mode2Word_bm)2)
+#define MODE2_CAL_UPDATE_FORMAX ((LVNV_Mode2Word_bm)4)
+#define MODE2_BEAMDAMAGE_FORMAX ((LVNV_Mode2Word_bm)8)
+#define LVNV_MODE2WORD_BM_MAX (MODE2_FSB_CARDIOID_FORMAX | MODE2_FSB_WITHINBEAM_FORMAX | MODE2_CAL_UPDATE_FORMAX | MODE2_BEAMDAMAGE_FORMAX | ((LVNV_Mode2Word_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref TUNING_MODE_NLMS1</td>
+ <td>1</td>
+ <td>NLMS1 output</td>
+ </tr>
+ <tr>
+ <td>@ref TUNING_MODE_FSB</td>
+ <td>2</td>
+ <td>FSB noise reference output</td>
+ </tr>
+ <tr>
+ <td>@ref TUNING_MODE_WITHINBEAM</td>
+ <td>8</td>
+ <td>Tuning beep when Withinbeam=1</td>
+ </tr>
+ <tr>
+ <td>@ref TUNING_MODE_UPDATEONOFF</td>
+ <td>16</td>
+ <td>Tuning beep when FSB is updated</td>
+ </tr>
+ <tr>
+ <td>@ref TUNING_MODE_CAL_MICPOW</td>
+ <td>64</td>
+ <td>Tuning beep when MicPow is lower than Cal_micPowFloorMin</td>
+ </tr>
+ <tr>
+ <td>@ref TUNING_MODE_BROADSIDE</td>
+ <td>128</td>
+ <td>Tuning beep when broadside is detected</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVNV_TuningModeWord_bm;
+/**
+* @def TUNING_MODE_NLMS1
+* NLMS1 output
+* @see LVNV_TuningModeWord_bm
+*/
+#define TUNING_MODE_NLMS1 ((LVNV_TuningModeWord_bm)1)
+/**
+* @def TUNING_MODE_FSB
+* FSB noise reference output
+* @see LVNV_TuningModeWord_bm
+*/
+#define TUNING_MODE_FSB ((LVNV_TuningModeWord_bm)2)
+/**
+* @def TUNING_MODE_WITHINBEAM
+* Tuning beep when Withinbeam=1
+* @see LVNV_TuningModeWord_bm
+*/
+#define TUNING_MODE_WITHINBEAM ((LVNV_TuningModeWord_bm)8)
+/**
+* @def TUNING_MODE_UPDATEONOFF
+* Tuning beep when FSB is updated
+* @see LVNV_TuningModeWord_bm
+*/
+#define TUNING_MODE_UPDATEONOFF ((LVNV_TuningModeWord_bm)16)
+/**
+* @def TUNING_MODE_CAL_MICPOW
+* Tuning beep when MicPow is lower than Cal_micPowFloorMin
+* @see LVNV_TuningModeWord_bm
+*/
+#define TUNING_MODE_CAL_MICPOW ((LVNV_TuningModeWord_bm)64)
+/**
+* @def TUNING_MODE_BROADSIDE
+* Tuning beep when broadside is detected
+* @see LVNV_TuningModeWord_bm
+*/
+#define TUNING_MODE_BROADSIDE ((LVNV_TuningModeWord_bm)128)
+/**
+* @def LVNV_TUNINGMODEWORD_BM_MIN
+* Minimal value for LVNV_TuningModeWord_bm
+* @see LVNV_TuningModeWord_bm
+*/
+#define LVNV_TUNINGMODEWORD_BM_MIN ((LVNV_TuningModeWord_bm)0)
+/**
+* @def LVNV_TUNINGMODEWORD_BM_MAX
+* Maximal value for LVNV_TuningModeWord_bm
+* @see LVNV_TuningModeWord_bm
+*/
+#define TUNING_MODE_NLMS1_FORMAX ((LVNV_TuningModeWord_bm)1)
+#define TUNING_MODE_FSB_FORMAX ((LVNV_TuningModeWord_bm)2)
+#define TUNING_MODE_WITHINBEAM_FORMAX ((LVNV_TuningModeWord_bm)8)
+#define TUNING_MODE_UPDATEONOFF_FORMAX ((LVNV_TuningModeWord_bm)16)
+#define TUNING_MODE_CAL_MICPOW_FORMAX ((LVNV_TuningModeWord_bm)64)
+#define TUNING_MODE_BROADSIDE_FORMAX ((LVNV_TuningModeWord_bm)128)
+#define LVNV_TUNINGMODEWORD_BM_MAX (TUNING_MODE_NLMS1_FORMAX | TUNING_MODE_FSB_FORMAX | TUNING_MODE_WITHINBEAM_FORMAX | TUNING_MODE_UPDATEONOFF_FORMAX | TUNING_MODE_CAL_MICPOW_FORMAX | TUNING_MODE_BROADSIDE_FORMAX | ((LVNV_TuningModeWord_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref LVNV_STATUS_LOST_BEAM</td>
+ <td>1</td>
+ <td>LostBeam detections</td>
+ </tr>
+ <tr>
+ <td>@ref LVNV_STATUS_MIC_COV</td>
+ <td>2</td>
+ <td>Microphone Coverage detections</td>
+ </tr>
+ <tr>
+ <td>@ref LVNV_STATUS_FSB_UPDATE</td>
+ <td>4</td>
+ <td>FSB updates</td>
+ </tr>
+ <tr>
+ <td>@ref LVNV_STATUS_BEAM_DAMAGE</td>
+ <td>8</td>
+ <td>BeamDamage detections</td>
+ </tr>
+ <tr>
+ <td>@ref LVNV_STATUS_GSC_UPDATE</td>
+ <td>16</td>
+ <td>GSC updates</td>
+ </tr>
+ <tr>
+ <td>@ref LVNV_STATUS_DNNS_WBEAM</td>
+ <td>32</td>
+ <td>DNNS WithinBeam detections</td>
+ </tr>
+ <tr>
+ <td>@ref LVNV_STATUS_DNNS_ACTIVITY</td>
+ <td>64</td>
+ <td>DNNS activity detections</td>
+ </tr>
+ <tr>
+ <td>@ref LVNV_STATUS_CAL_MICPOW</td>
+ <td>128</td>
+ <td>Calibration Microphone Power</td>
+ </tr>
+ <tr>
+ <td>@ref LVNV_STATUS_MICPOWSP</td>
+ <td>256</td>
+ <td>(LV1008) MicPow Speech detections</td>
+ </tr>
+ <tr>
+ <td>@ref LVNV_STATUS_BROADSIDE_FLAG</td>
+ <td>512</td>
+ <td>(LV2370) Broadside detection flag</td>
+ </tr>
+ <tr>
+ <td>@ref LVNV_STATUS_CAL_UPDATED</td>
+ <td>1024</td>
+ <td>(LV8237) Calibration updated flag</td>
+ </tr>
+ <tr>
+ <td>@ref LVNV_STATUS_WBEAM_FIX</td>
+ <td>2048</td>
+ <td>WithinBeam detection for Fixed Beamformer (if available).</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVNV_StatusWord_bm;
+/**
+* @def LVNV_STATUS_LOST_BEAM
+* LostBeam detections
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_LOST_BEAM ((LVNV_StatusWord_bm)1)
+/**
+* @def LVNV_STATUS_MIC_COV
+* Microphone Coverage detections
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_MIC_COV ((LVNV_StatusWord_bm)2)
+/**
+* @def LVNV_STATUS_FSB_UPDATE
+* FSB updates
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_FSB_UPDATE ((LVNV_StatusWord_bm)4)
+/**
+* @def LVNV_STATUS_BEAM_DAMAGE
+* BeamDamage detections
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_BEAM_DAMAGE ((LVNV_StatusWord_bm)8)
+/**
+* @def LVNV_STATUS_GSC_UPDATE
+* GSC updates
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_GSC_UPDATE ((LVNV_StatusWord_bm)16)
+/**
+* @def LVNV_STATUS_DNNS_WBEAM
+* DNNS WithinBeam detections
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_DNNS_WBEAM ((LVNV_StatusWord_bm)32)
+/**
+* @def LVNV_STATUS_DNNS_ACTIVITY
+* DNNS activity detections
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_DNNS_ACTIVITY ((LVNV_StatusWord_bm)64)
+/**
+* @def LVNV_STATUS_CAL_MICPOW
+* Calibration Microphone Power
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_CAL_MICPOW ((LVNV_StatusWord_bm)128)
+/**
+* @def LVNV_STATUS_MICPOWSP
+* (LV1008) MicPow Speech detections
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_MICPOWSP ((LVNV_StatusWord_bm)256)
+/**
+* @def LVNV_STATUS_BROADSIDE_FLAG
+* (LV2370) Broadside detection flag
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_BROADSIDE_FLAG ((LVNV_StatusWord_bm)512)
+/**
+* @def LVNV_STATUS_CAL_UPDATED
+* (LV8237) Calibration updated flag
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_CAL_UPDATED ((LVNV_StatusWord_bm)1024)
+/**
+* @def LVNV_STATUS_WBEAM_fix
+* WithinBeam detection for Fixed Beamformer (if available).
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_WBEAM_FIX ((LVNV_StatusWord_bm)2048)
+/**
+* @def LVNV_STATUSWORD_BM_MIN
+* Minimal value for LVNV_StatusWord_bm
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUSWORD_BM_MIN ((LVNV_StatusWord_bm)0)
+/**
+* @def LVNV_STATUSWORD_BM_MAX
+* Maximal value for LVNV_StatusWord_bm
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_LOST_BEAM_FORMAX ((LVNV_StatusWord_bm)1)
+#define LVNV_STATUS_MIC_COV_FORMAX ((LVNV_StatusWord_bm)2)
+#define LVNV_STATUS_FSB_UPDATE_FORMAX ((LVNV_StatusWord_bm)4)
+#define LVNV_STATUS_BEAM_DAMAGE_FORMAX ((LVNV_StatusWord_bm)8)
+#define LVNV_STATUS_GSC_UPDATE_FORMAX ((LVNV_StatusWord_bm)16)
+#define LVNV_STATUS_DNNS_WBEAM_FORMAX ((LVNV_StatusWord_bm)32)
+#define LVNV_STATUS_DNNS_ACTIVITY_FORMAX ((LVNV_StatusWord_bm)64)
+#define LVNV_STATUS_CAL_MICPOW_FORMAX ((LVNV_StatusWord_bm)128)
+#define LVNV_STATUS_MICPOWSP_FORMAX ((LVNV_StatusWord_bm)256)
+#define LVNV_STATUS_BROADSIDE_FLAG_FORMAX ((LVNV_StatusWord_bm)512)
+#define LVNV_STATUS_CAL_UPDATED_FORMAX ((LVNV_StatusWord_bm)1024)
+#define LVNV_STATUS_WBEAM_FIX_FORMAX ((LVNV_StatusWord_bm)2048)
+#define LVNV_STATUSWORD_BM_MAX (LVNV_STATUS_LOST_BEAM_FORMAX | LVNV_STATUS_MIC_COV_FORMAX | LVNV_STATUS_FSB_UPDATE_FORMAX | LVNV_STATUS_BEAM_DAMAGE_FORMAX | LVNV_STATUS_GSC_UPDATE_FORMAX | LVNV_STATUS_DNNS_WBEAM_FORMAX | LVNV_STATUS_DNNS_ACTIVITY_FORMAX | LVNV_STATUS_CAL_MICPOW_FORMAX | LVNV_STATUS_MICPOWSP_FORMAX | LVNV_STATUS_BROADSIDE_FLAG_FORMAX | LVNV_STATUS_CAL_UPDATED_FORMAX | LVNV_STATUS_WBEAM_FIX_FORMAX | ((LVNV_StatusWord_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_CONTROL_TUNE_PATHCHANGE</td>
+ <td>1</td>
+ <td>PCD tuning beep</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_CONTROL_TUNE_CLIP</td>
+ <td>2</td>
+ <td>SPDET_x_clip tuning beep</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_CONTROL_TUNE_FAR_SPEAKS</td>
+ <td>4</td>
+ <td>SPDET_far tuning beep</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_CONTROL_TUNE_MIC_SPEAKS</td>
+ <td>8</td>
+ <td>SPDET_mic tuning beep</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_CONTROL_TUNE_HB_MUTE</td>
+ <td>16</td>
+ <td>Mute high band (4kHz-8kHz). Should be disabled by default.</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_CONTROL_TUNE_TB_MUTE</td>
+ <td>32</td>
+ <td>Mute top band (above 8kHz). Should be disabled by default.</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVHF_TuningModeWord;
+/**
+* @def LVHF_CONTROL_TUNE_PATHCHANGE
+* PCD tuning beep
+* @see LVHF_TuningModeWord
+*/
+#define LVHF_CONTROL_TUNE_PATHCHANGE ((LVHF_TuningModeWord)1)
+/**
+* @def LVHF_CONTROL_TUNE_CLIP
+* SPDET_x_clip tuning beep
+* @see LVHF_TuningModeWord
+*/
+#define LVHF_CONTROL_TUNE_CLIP ((LVHF_TuningModeWord)2)
+/**
+* @def LVHF_CONTROL_TUNE_FAR_SPEAKS
+* SPDET_far tuning beep
+* @see LVHF_TuningModeWord
+*/
+#define LVHF_CONTROL_TUNE_FAR_SPEAKS ((LVHF_TuningModeWord)4)
+/**
+* @def LVHF_CONTROL_TUNE_MIC_SPEAKS
+* SPDET_mic tuning beep
+* @see LVHF_TuningModeWord
+*/
+#define LVHF_CONTROL_TUNE_MIC_SPEAKS ((LVHF_TuningModeWord)8)
+/**
+* @def LVHF_CONTROL_TUNE_HB_MUTE
+* Mute high band (4kHz-8kHz). Should be disabled by default.
+* @see LVHF_TuningModeWord
+*/
+#define LVHF_CONTROL_TUNE_HB_MUTE ((LVHF_TuningModeWord)16)
+/**
+* @def LVHF_CONTROL_TUNE_TB_MUTE
+* Mute top band (above 8kHz). Should be disabled by default.
+* @see LVHF_TuningModeWord
+*/
+#define LVHF_CONTROL_TUNE_TB_MUTE ((LVHF_TuningModeWord)32)
+/**
+* @def LVHF_TUNINGMODEWORD_MIN
+* Minimal value for LVHF_TuningModeWord
+* @see LVHF_TuningModeWord
+*/
+#define LVHF_TUNINGMODEWORD_MIN ((LVHF_TuningModeWord)0)
+/**
+* @def LVHF_TUNINGMODEWORD_MAX
+* Maximal value for LVHF_TuningModeWord
+* @see LVHF_TuningModeWord
+*/
+#define LVHF_CONTROL_TUNE_PATHCHANGE_FORMAX ((LVHF_TuningModeWord)1)
+#define LVHF_CONTROL_TUNE_CLIP_FORMAX ((LVHF_TuningModeWord)2)
+#define LVHF_CONTROL_TUNE_FAR_SPEAKS_FORMAX ((LVHF_TuningModeWord)4)
+#define LVHF_CONTROL_TUNE_MIC_SPEAKS_FORMAX ((LVHF_TuningModeWord)8)
+#define LVHF_CONTROL_TUNE_HB_MUTE_FORMAX ((LVHF_TuningModeWord)16)
+#define LVHF_CONTROL_TUNE_TB_MUTE_FORMAX ((LVHF_TuningModeWord)32)
+#define LVHF_TUNINGMODEWORD_MAX (LVHF_CONTROL_TUNE_PATHCHANGE_FORMAX | LVHF_CONTROL_TUNE_CLIP_FORMAX | LVHF_CONTROL_TUNE_FAR_SPEAKS_FORMAX | LVHF_CONTROL_TUNE_MIC_SPEAKS_FORMAX | LVHF_CONTROL_TUNE_HB_MUTE_FORMAX | LVHF_CONTROL_TUNE_TB_MUTE_FORMAX | ((LVHF_TuningModeWord)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_MODE_NLMS</td>
+ <td>1</td>
+ <td>NLMS functionality</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_MODE_DES</td>
+ <td>2</td>
+ <td>DES (Dynamic Echo Suppression)</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_MODE_NS</td>
+ <td>4</td>
+ <td>NS (Noise Suppression)</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_MODE_CNI</td>
+ <td>8</td>
+ <td>CNI (Comfort Noise Injection)</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_MODE_NLES</td>
+ <td>16</td>
+ <td>NLES (Non Linear Echo Suppression)</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_MODE_PCD_DT</td>
+ <td>64</td>
+ <td>DT (Double Talk) protection after PCD</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_MODE_PCD</td>
+ <td>128</td>
+ <td>PCD (Path Change Detector)</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_MODE_INIT_ES</td>
+ <td>256</td>
+ <td>Initial echo suppression setting by PCD_gamma_e_rescue</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_MODE_HS</td>
+ <td>512</td>
+ <td>HornSuppression (if available)</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_MODE_PRENLMS</td>
+ <td>4096</td>
+ <td>Pre-NLMS preprocessing</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVHF_ModeWord_bm;
+/**
+* @def LVHF_MODE_NLMS
+* NLMS functionality
+* @see LVHF_ModeWord_bm
+*/
+#define LVHF_MODE_NLMS ((LVHF_ModeWord_bm)1)
+/**
+* @def LVHF_MODE_DES
+* DES (Dynamic Echo Suppression)
+* @see LVHF_ModeWord_bm
+*/
+#define LVHF_MODE_DES ((LVHF_ModeWord_bm)2)
+/**
+* @def LVHF_MODE_NS
+* NS (Noise Suppression)
+* @see LVHF_ModeWord_bm
+*/
+#define LVHF_MODE_NS ((LVHF_ModeWord_bm)4)
+/**
+* @def LVHF_MODE_CNI
+* CNI (Comfort Noise Injection)
+* @see LVHF_ModeWord_bm
+*/
+#define LVHF_MODE_CNI ((LVHF_ModeWord_bm)8)
+/**
+* @def LVHF_MODE_NLES
+* NLES (Non Linear Echo Suppression)
+* @see LVHF_ModeWord_bm
+*/
+#define LVHF_MODE_NLES ((LVHF_ModeWord_bm)16)
+/**
+* @def LVHF_MODE_PCD_DT
+* DT (Double Talk) protection after PCD
+* @see LVHF_ModeWord_bm
+*/
+#define LVHF_MODE_PCD_DT ((LVHF_ModeWord_bm)64)
+/**
+* @def LVHF_MODE_PCD
+* PCD (Path Change Detector)
+* @see LVHF_ModeWord_bm
+*/
+#define LVHF_MODE_PCD ((LVHF_ModeWord_bm)128)
+/**
+* @def LVHF_MODE_INIT_ES
+* Initial echo suppression setting by PCD_gamma_e_rescue
+* @see LVHF_ModeWord_bm
+*/
+#define LVHF_MODE_INIT_ES ((LVHF_ModeWord_bm)256)
+/**
+* @def LVHF_MODE_HS
+* HornSuppression (if available)
+* @see LVHF_ModeWord_bm
+*/
+#define LVHF_MODE_HS ((LVHF_ModeWord_bm)512)
+/**
+* @def LVHF_MODE_PRENLMS
+* Pre-NLMS preprocessing
+* @see LVHF_ModeWord_bm
+*/
+#define LVHF_MODE_PRENLMS ((LVHF_ModeWord_bm)4096)
+/**
+* @def LVHF_MODEWORD_BM_MIN
+* Minimal value for LVHF_ModeWord_bm
+* @see LVHF_ModeWord_bm
+*/
+#define LVHF_MODEWORD_BM_MIN ((LVHF_ModeWord_bm)0)
+/**
+* @def LVHF_MODEWORD_BM_MAX
+* Maximal value for LVHF_ModeWord_bm
+* @see LVHF_ModeWord_bm
+*/
+#define LVHF_MODE_NLMS_FORMAX ((LVHF_ModeWord_bm)1)
+#define LVHF_MODE_DES_FORMAX ((LVHF_ModeWord_bm)2)
+#define LVHF_MODE_NS_FORMAX ((LVHF_ModeWord_bm)4)
+#define LVHF_MODE_CNI_FORMAX ((LVHF_ModeWord_bm)8)
+#define LVHF_MODE_NLES_FORMAX ((LVHF_ModeWord_bm)16)
+#define LVHF_MODE_PCD_DT_FORMAX ((LVHF_ModeWord_bm)64)
+#define LVHF_MODE_PCD_FORMAX ((LVHF_ModeWord_bm)128)
+#define LVHF_MODE_INIT_ES_FORMAX ((LVHF_ModeWord_bm)256)
+#define LVHF_MODE_HS_FORMAX ((LVHF_ModeWord_bm)512)
+#define LVHF_MODE_PRENLMS_FORMAX ((LVHF_ModeWord_bm)4096)
+#define LVHF_MODEWORD_BM_MAX (LVHF_MODE_NLMS_FORMAX | LVHF_MODE_DES_FORMAX | LVHF_MODE_NS_FORMAX | LVHF_MODE_CNI_FORMAX | LVHF_MODE_NLES_FORMAX | LVHF_MODE_PCD_DT_FORMAX | LVHF_MODE_PCD_FORMAX | LVHF_MODE_INIT_ES_FORMAX | LVHF_MODE_HS_FORMAX | LVHF_MODE_PRENLMS_FORMAX | ((LVHF_ModeWord_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_STATUS_FAR_SPEAKS</td>
+ <td>1</td>
+ <td>FarEnd is speaking</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_STATUS_FAR_STARTS</td>
+ <td>2</td>
+ <td>FarEnd starts to speak</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_STATUS_MIC_SPEAKS</td>
+ <td>4</td>
+ <td>Mic activity detected</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_STATUS_CLIP</td>
+ <td>8</td>
+ <td>Clipping Detected</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_STATUS_PATHCHANGE</td>
+ <td>16</td>
+ <td>Path Change detected</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVHF_StatusWord_bm;
+/**
+* @def LVHF_STATUS_FAR_SPEAKS
+* FarEnd is speaking
+* @see LVHF_StatusWord_bm
+*/
+#define LVHF_STATUS_FAR_SPEAKS ((LVHF_StatusWord_bm)1)
+/**
+* @def LVHF_STATUS_FAR_STARTS
+* FarEnd starts to speak
+* @see LVHF_StatusWord_bm
+*/
+#define LVHF_STATUS_FAR_STARTS ((LVHF_StatusWord_bm)2)
+/**
+* @def LVHF_STATUS_MIC_SPEAKS
+* Mic activity detected
+* @see LVHF_StatusWord_bm
+*/
+#define LVHF_STATUS_MIC_SPEAKS ((LVHF_StatusWord_bm)4)
+/**
+* @def LVHF_STATUS_CLIP
+* Clipping Detected
+* @see LVHF_StatusWord_bm
+*/
+#define LVHF_STATUS_CLIP ((LVHF_StatusWord_bm)8)
+/**
+* @def LVHF_STATUS_PATHCHANGE
+* Path Change detected
+* @see LVHF_StatusWord_bm
+*/
+#define LVHF_STATUS_PATHCHANGE ((LVHF_StatusWord_bm)16)
+/**
+* @def LVHF_STATUSWORD_BM_MIN
+* Minimal value for LVHF_StatusWord_bm
+* @see LVHF_StatusWord_bm
+*/
+#define LVHF_STATUSWORD_BM_MIN ((LVHF_StatusWord_bm)0)
+/**
+* @def LVHF_STATUSWORD_BM_MAX
+* Maximal value for LVHF_StatusWord_bm
+* @see LVHF_StatusWord_bm
+*/
+#define LVHF_STATUS_FAR_SPEAKS_FORMAX ((LVHF_StatusWord_bm)1)
+#define LVHF_STATUS_FAR_STARTS_FORMAX ((LVHF_StatusWord_bm)2)
+#define LVHF_STATUS_MIC_SPEAKS_FORMAX ((LVHF_StatusWord_bm)4)
+#define LVHF_STATUS_CLIP_FORMAX ((LVHF_StatusWord_bm)8)
+#define LVHF_STATUS_PATHCHANGE_FORMAX ((LVHF_StatusWord_bm)16)
+#define LVHF_STATUSWORD_BM_MAX (LVHF_STATUS_FAR_SPEAKS_FORMAX | LVHF_STATUS_FAR_STARTS_FORMAX | LVHF_STATUS_MIC_SPEAKS_FORMAX | LVHF_STATUS_CLIP_FORMAX | LVHF_STATUS_PATHCHANGE_FORMAX | ((LVHF_StatusWord_bm)0))
+
+#define LVVIDHEADER_LVVE_RX_MASK1_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVIDHeader_LVVE_Rx_Mask1_bm in LVWireFormat.
+
+#define LVVIDHEADER_LVVE_RX_MASK2_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVIDHeader_LVVE_Rx_Mask2_bm in LVWireFormat.
+
+#define LVVIDHEADER_LVVE_TX_MASK1_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVIDHeader_LVVE_Tx_Mask1_bm in LVWireFormat.
+
+#define LVVIDHEADER_LVVE_TX_MASK2_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVIDHeader_LVVE_Tx_Mask2_bm in LVWireFormat.
+
+#define LVVIDHEADER_CONFIGURATIONS_MASK1_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVIDHeader_Configurations_Mask1_bm in LVWireFormat.
+
+#define LVVIDHEADER_CONFIGURATIONS_MASK2_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVIDHeader_Configurations_Mask2_bm in LVWireFormat.
+
+#define LVVC_MODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVC_ModeWord_bm in LVWireFormat.
+
+#define LVFENS_MODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVFENS_ModeWord_bm in LVWireFormat.
+
+#define LVWM_MODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVWM_ModeWord_bm in LVWireFormat.
+
+#define LVNV_MODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVNV_ModeWord_bm in LVWireFormat.
+
+#define LVNV_MODE2WORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVNV_Mode2Word_bm in LVWireFormat.
+
+#define LVNV_TUNINGMODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVNV_TuningModeWord_bm in LVWireFormat.
+
+#define LVNV_STATUSWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVNV_StatusWord_bm in LVWireFormat.
+
+#define LVHF_TUNINGMODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVHF_TuningModeWord in LVWireFormat.
+
+#define LVHF_MODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVHF_ModeWord_bm in LVWireFormat.
+
+#define LVHF_STATUSWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVHF_StatusWord_bm in LVWireFormat.
+
+#define LVM_MODE_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVM_Mode_en in LVWireFormat.
+
+#define LVM_CONFIG_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVM_Config_en in LVWireFormat.
+
+#define LVM_FS_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVM_Fs_en in LVWireFormat.
+
+#define LVVIDHEADER_MESSAGEID_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVVIDHeader_MessageID_en in LVWireFormat.
+
+#define LVVIDHEADER_RETURNSTATUS_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVVIDHeader_ReturnStatus_en in LVWireFormat.
+
+#define LVVE_RX_MODE_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVVE_Rx_Mode_en in LVWireFormat.
+
+#define LVVE_TX_MODE_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVVE_Tx_Mode_en in LVWireFormat.
+
+#define LVVIDHEADER_CONTROLPARAMS_LVWIREFORMAT_LENGTH (7 \
+ + LVVIDHEADER_LVVE_RX_MASK1_LVWIREFORMAT_LENGTH \
+ + LVVIDHEADER_LVVE_RX_MASK2_LVWIREFORMAT_LENGTH \
+ + LVVIDHEADER_LVVE_TX_MASK1_LVWIREFORMAT_LENGTH \
+ + LVVIDHEADER_LVVE_TX_MASK2_LVWIREFORMAT_LENGTH \
+ + LVVIDHEADER_CONFIGURATIONS_MASK1_LVWIREFORMAT_LENGTH \
+ + LVVIDHEADER_CONFIGURATIONS_MASK2_LVWIREFORMAT_LENGTH \
+ + LVVIDHEADER_MESSAGEID_LVWIREFORMAT_LENGTH \
+ + LVM_FS_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVVIDHeader ControlParameters in LVWireFormat.
+
+#define LVVC_CONTROLPARAMS_LVWIREFORMAT_LENGTH (22 \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVVC_MODEWORD_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVVC ControlParameters in LVWireFormat.
+
+#define LVFENS_CONTROLPARAMS_LVWIREFORMAT_LENGTH (2 \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVFENS_MODEWORD_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVFENS ControlParameters in LVWireFormat.
+
+#define LVWM_CONTROLPARAMS_LVWIREFORMAT_LENGTH (14 \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVWM_MODEWORD_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVWM ControlParameters in LVWireFormat.
+
+#define LVDRC_CONTROLPARAMS_LVWIREFORMAT_LENGTH (28 \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVM_MODE_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVDRC ControlParameters in LVWireFormat.
+
+#define LVNG_CONTROLPARAMS_LVWIREFORMAT_LENGTH (26 \
+ + LVM_MODE_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVNG ControlParameters in LVWireFormat.
+
+#define LVNLPP_CONTROLPARAMS_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode LVNLPP ControlParameters in LVWireFormat.
+
+#define LVEQ_CONTROLPARAMS_LVWIREFORMAT_LENGTH (130) ///< Number of bytes to encode LVEQ ControlParameters in LVWireFormat.
+
+#define LVVOL_CONTROLPARAMS_LVWIREFORMAT_LENGTH (2 \
+ + LVM_MODE_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVVOL ControlParameters in LVWireFormat.
+
+#define LVHPF_CONTROLPARAMS_LVWIREFORMAT_LENGTH (2 \
+ + LVM_MODE_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVHPF ControlParameters in LVWireFormat.
+
+#define LVMUTE_CONTROLPARAMS_LVWIREFORMAT_LENGTH (LVM_MODE_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVMUTE ControlParameters in LVWireFormat.
+
+#define LVVE_RX_CONTROLPARAMS_LVWIREFORMAT_LENGTH (4 \
+ + LVVE_RX_MODE_LVWIREFORMAT_LENGTH \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVFENS_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVNLPP_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
+ + LVVC_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVEQ_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
+ + LVDRC_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVWM_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
+ + LVNG_CONTROLPARAMS_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVVE_Rx ControlParameters in LVWireFormat.
+
+#define LVNV_CONTROLPARAMS_LVWIREFORMAT_LENGTH (122 \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVNV_MODEWORD_LVWIREFORMAT_LENGTH \
+ + LVNV_MODE2WORD_LVWIREFORMAT_LENGTH \
+ + LVNV_TUNINGMODEWORD_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVNV ControlParameters in LVWireFormat.
+
+#define LVHF_CONTROLPARAMS_LVWIREFORMAT_LENGTH (78 \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVHF_MODEWORD_LVWIREFORMAT_LENGTH \
+ + LVHF_TUNINGMODEWORD_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVHF ControlParameters in LVWireFormat.
+
+#define LVBD_CONTROLPARAMS_LVWIREFORMAT_LENGTH (4 \
+ + LVM_MODE_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVBD ControlParameters in LVWireFormat.
+
+#define LVVE_TX_CONTROLPARAMS_LVWIREFORMAT_LENGTH (8 \
+ + LVVE_TX_MODE_LVWIREFORMAT_LENGTH \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVHF_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
+ + LVNV_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
+ + LVWM_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVEQ_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
+ + LVDRC_CONTROLPARAMS_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVVE_Tx ControlParameters in LVWireFormat.
+
+/**
+* @def LVVIDHEADER_HEADERVERSION_DEFAULT
+* Default of HeaderVersion
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_HEADERVERSION_DEFAULT (3)
+/**
+* @def LVVIDHEADER_HEADERVERSION_MIN
+* MinValue of HeaderVersion
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_HEADERVERSION_MIN (0)
+/**
+* @def LVVIDHEADER_HEADERVERSION_MAX
+* MaxValue of HeaderVersion
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_HEADERVERSION_MAX (255)
+
+/**
+* @def LVVIDHEADER_BASELINEVERSION_DEFAULT
+* Default of BaselineVersion
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_BASELINEVERSION_DEFAULT (51906816)
+/**
+* @def LVVIDHEADER_BASELINEVERSION_MIN
+* MinValue of BaselineVersion
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_BASELINEVERSION_MIN (1)
+/**
+* @def LVVIDHEADER_BASELINEVERSION_MAX
+* MaxValue of BaselineVersion
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_BASELINEVERSION_MAX (4294967295)
+
+/**
+* @def LVVIDHEADER_LVVE_RX_ALGOMASK1_DEFAULT
+* Default of LVVE_Rx_AlgoMask1
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_LVVE_RX_ALGOMASK1_DEFAULT (LVVIDHEADER_LVVE_RX_MASK1_BM_MAX)
+
+/**
+* @def LVVIDHEADER_LVVE_RX_ALGOMASK2_DEFAULT
+* Default of LVVE_Rx_AlgoMask2
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_LVVE_RX_ALGOMASK2_DEFAULT (LVVIDHEADER_LVVE_RX_MASK2_BM_MAX)
+
+/**
+* @def LVVIDHEADER_LVVE_TX_ALGOMASK1_DEFAULT
+* Default of LVVE_Tx_AlgoMask1
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_LVVE_TX_ALGOMASK1_DEFAULT (LVVIDHEADER_LVVE_TX_MASK1_BM_MAX)
+
+/**
+* @def LVVIDHEADER_LVVE_TX_ALGOMASK2_DEFAULT
+* Default of LVVE_Tx_AlgoMask2
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_LVVE_TX_ALGOMASK2_DEFAULT (LVVIDHEADER_LVVE_TX_MASK2_BM_MAX)
+
+/**
+* @def LVVIDHEADER_LVVE_CONFIG_ALGOMASK1_DEFAULT
+* Default of LVVE_Config_AlgoMask1
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_LVVE_CONFIG_ALGOMASK1_DEFAULT (LVVIDHEADER_CONFIGURATIONS_MASK1_BM_MAX)
+
+/**
+* @def LVVIDHEADER_LVVE_CONFIG_ALGOMASK2_DEFAULT
+* Default of LVVE_Config_AlgoMask2
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_LVVE_CONFIG_ALGOMASK2_DEFAULT (LVVIDHEADER_CONFIGURATIONS_MASK2_BM_MAX)
+
+/**
+* @def LVVIDHEADER_MESSAGEID_DEFAULT
+* Default of MessageID
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_MESSAGEID_DEFAULT (LVVE_RX_PRESET)
+
+/**
+* @def LVVIDHEADER_SAMPLERATE_DEFAULT
+* Default of SampleRate
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_SAMPLERATE_DEFAULT (LVM_FS_8000)
+
+/**
+* @def LVVIDHEADER_VOLUMEINDEX_DEFAULT
+* Default of VolumeIndex
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_VOLUMEINDEX_DEFAULT (0)
+/**
+* @def LVVIDHEADER_VOLUMEINDEX_MIN
+* MinValue of VolumeIndex
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_VOLUMEINDEX_MIN (0)
+/**
+* @def LVVIDHEADER_VOLUMEINDEX_MAX
+* MaxValue of VolumeIndex
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_VOLUMEINDEX_MAX (255)
+
+/**
+* @def LVVIDHEADER_NUMVOLUMES_DEFAULT
+* Default of NumVolumes
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_NUMVOLUMES_DEFAULT (1)
+/**
+* @def LVVIDHEADER_NUMVOLUMES_MIN
+* MinValue of NumVolumes
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_NUMVOLUMES_MIN (0)
+/**
+* @def LVVIDHEADER_NUMVOLUMES_MAX
+* MaxValue of NumVolumes
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_NUMVOLUMES_MAX (255)
+
+/**
+* @def LVVC_OPERATINGMODE_DEFAULT
+* Default of OperatingMode
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVVC_MODE_DEFAULT
+* Default of mode
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_MODE_DEFAULT (0)
+
+/**
+* @def LVVC_GAIN_LIN_MAX_DEFAULT
+* Default of Gain_Lin_Max
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_GAIN_LIN_MAX_DEFAULT (1286)
+/**
+* @def LVVC_GAIN_LIN_MAX_MIN
+* MinValue of Gain_Lin_Max
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_GAIN_LIN_MAX_MIN (512)
+/**
+* @def LVVC_GAIN_LIN_MAX_MAX
+* MaxValue of Gain_Lin_Max
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_GAIN_LIN_MAX_MAX (32767)
+
+/**
+* @def LVVC_NOISE_SENSITIVITY_DEFAULT
+* Default of Noise_Sensitivity
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_NOISE_SENSITIVITY_DEFAULT (20000)
+/**
+* @def LVVC_NOISE_SENSITIVITY_MIN
+* MinValue of Noise_Sensitivity
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_NOISE_SENSITIVITY_MIN (-6709)
+/**
+* @def LVVC_NOISE_SENSITIVITY_MAX
+* MaxValue of Noise_Sensitivity
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_NOISE_SENSITIVITY_MAX (32767)
+
+/**
+* @def LVVC_AVL_TARGET_LEVEL_LIN_DEFAULT
+* Default of AVL_Target_level_lin
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_TARGET_LEVEL_LIN_DEFAULT (16384)
+/**
+* @def LVVC_AVL_TARGET_LEVEL_LIN_MIN
+* MinValue of AVL_Target_level_lin
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_TARGET_LEVEL_LIN_MIN (0)
+/**
+* @def LVVC_AVL_TARGET_LEVEL_LIN_MAX
+* MaxValue of AVL_Target_level_lin
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_TARGET_LEVEL_LIN_MAX (32767)
+
+/**
+* @def LVVC_AVL_MINGAINLIN_DEFAULT
+* Default of AVL_MinGainLin
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_MINGAINLIN_DEFAULT (256)
+/**
+* @def LVVC_AVL_MINGAINLIN_MIN
+* MinValue of AVL_MinGainLin
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_MINGAINLIN_MIN (0)
+/**
+* @def LVVC_AVL_MINGAINLIN_MAX
+* MaxValue of AVL_MinGainLin
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_MINGAINLIN_MAX (512)
+
+/**
+* @def LVVC_AVL_MAXGAINLIN_DEFAULT
+* Default of AVL_MaxGainLin
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_MAXGAINLIN_DEFAULT (8192)
+/**
+* @def LVVC_AVL_MAXGAINLIN_MIN
+* MinValue of AVL_MaxGainLin
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_MAXGAINLIN_MIN (512)
+/**
+* @def LVVC_AVL_MAXGAINLIN_MAX
+* MaxValue of AVL_MaxGainLin
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_MAXGAINLIN_MAX (32767)
+
+/**
+* @def LVVC_AVL_NOMINALGAIN_DEFAULT
+* Default of AVL_NominalGain
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_NOMINALGAIN_DEFAULT (512)
+/**
+* @def LVVC_AVL_NOMINALGAIN_MIN
+* MinValue of AVL_NominalGain
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_NOMINALGAIN_MIN (0)
+/**
+* @def LVVC_AVL_NOMINALGAIN_MAX
+* MaxValue of AVL_NominalGain
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_NOMINALGAIN_MAX (32767)
+
+/**
+* @def LVVC_AVL_ATTACK_DEFAULT
+* Default of AVL_Attack
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_ATTACK_DEFAULT (12055)
+/**
+* @def LVVC_AVL_ATTACK_MIN
+* MinValue of AVL_Attack
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_ATTACK_MIN (0)
+/**
+* @def LVVC_AVL_ATTACK_MAX
+* MaxValue of AVL_Attack
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_ATTACK_MAX (32767)
+
+/**
+* @def LVVC_AVL_RELEASE_DEFAULT
+* Default of AVL_Release
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_RELEASE_DEFAULT (32604)
+/**
+* @def LVVC_AVL_RELEASE_MIN
+* MinValue of AVL_Release
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_RELEASE_MIN (0)
+/**
+* @def LVVC_AVL_RELEASE_MAX
+* MaxValue of AVL_Release
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_RELEASE_MAX (32767)
+
+/**
+* @def LVVC_AVL_RELEASEMAX_DEFAULT
+* Default of AVL_ReleaseMax
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_RELEASEMAX_DEFAULT (32441)
+/**
+* @def LVVC_AVL_RELEASEMAX_MIN
+* MinValue of AVL_ReleaseMax
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_RELEASEMAX_MIN (0)
+/**
+* @def LVVC_AVL_RELEASEMAX_MAX
+* MaxValue of AVL_ReleaseMax
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_RELEASEMAX_MAX (32767)
+
+/**
+* @def LVVC_AVL_LIMIT_MAXOUTPUTLIN_DEFAULT
+* Default of AVL_Limit_MaxOutputLin
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_LIMIT_MAXOUTPUTLIN_DEFAULT (23170)
+/**
+* @def LVVC_AVL_LIMIT_MAXOUTPUTLIN_MIN
+* MinValue of AVL_Limit_MaxOutputLin
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_LIMIT_MAXOUTPUTLIN_MIN (0)
+/**
+* @def LVVC_AVL_LIMIT_MAXOUTPUTLIN_MAX
+* MaxValue of AVL_Limit_MaxOutputLin
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_LIMIT_MAXOUTPUTLIN_MAX (32767)
+
+/**
+* @def LVVC_SPDETECT_THRESHOLD_DEFAULT
+* Default of SpDetect_Threshold
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_SPDETECT_THRESHOLD_DEFAULT (1024)
+/**
+* @def LVVC_SPDETECT_THRESHOLD_MIN
+* MinValue of SpDetect_Threshold
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_SPDETECT_THRESHOLD_MIN (0)
+/**
+* @def LVVC_SPDETECT_THRESHOLD_MAX
+* MaxValue of SpDetect_Threshold
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_SPDETECT_THRESHOLD_MAX (32767)
+
+/**
+* @def LVFENS_OPERATINGMODE_DEFAULT
+* Default of OperatingMode
+* @see LVFENS_ControlParams_st
+*/
+#define LVFENS_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVFENS_FENS_LIMIT_NS_DEFAULT
+* Default of FENS_limit_NS
+* @see LVFENS_ControlParams_st
+*/
+#define LVFENS_FENS_LIMIT_NS_DEFAULT (10976)
+/**
+* @def LVFENS_FENS_LIMIT_NS_MIN
+* MinValue of FENS_limit_NS
+* @see LVFENS_ControlParams_st
+*/
+#define LVFENS_FENS_LIMIT_NS_MIN (0)
+/**
+* @def LVFENS_FENS_LIMIT_NS_MAX
+* MaxValue of FENS_limit_NS
+* @see LVFENS_ControlParams_st
+*/
+#define LVFENS_FENS_LIMIT_NS_MAX (32767)
+
+/**
+* @def LVFENS_MODE_DEFAULT
+* Default of Mode
+* @see LVFENS_ControlParams_st
+*/
+#define LVFENS_MODE_DEFAULT (0)
+
+/**
+* @def LVWM_OPERATINGMODE_DEFAULT
+* Default of OperatingMode
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVWM_MODE_DEFAULT
+* Default of mode
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_MODE_DEFAULT (7)
+
+/**
+* @def LVWM_AVL_TARGET_LEVEL_LIN_DEFAULT
+* Default of AVL_Target_level_lin
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_TARGET_LEVEL_LIN_DEFAULT (16384)
+/**
+* @def LVWM_AVL_TARGET_LEVEL_LIN_MIN
+* MinValue of AVL_Target_level_lin
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_TARGET_LEVEL_LIN_MIN (0)
+/**
+* @def LVWM_AVL_TARGET_LEVEL_LIN_MAX
+* MaxValue of AVL_Target_level_lin
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_TARGET_LEVEL_LIN_MAX (32767)
+
+/**
+* @def LVWM_AVL_MINGAINLIN_DEFAULT
+* Default of AVL_MinGainLin
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_MINGAINLIN_DEFAULT (128)
+/**
+* @def LVWM_AVL_MINGAINLIN_MIN
+* MinValue of AVL_MinGainLin
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_MINGAINLIN_MIN (0)
+/**
+* @def LVWM_AVL_MINGAINLIN_MAX
+* MaxValue of AVL_MinGainLin
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_MINGAINLIN_MAX (512)
+
+/**
+* @def LVWM_AVL_MAXGAINLIN_DEFAULT
+* Default of AVL_MaxGainLin
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_MAXGAINLIN_DEFAULT (8189)
+/**
+* @def LVWM_AVL_MAXGAINLIN_MIN
+* MinValue of AVL_MaxGainLin
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_MAXGAINLIN_MIN (512)
+/**
+* @def LVWM_AVL_MAXGAINLIN_MAX
+* MaxValue of AVL_MaxGainLin
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_MAXGAINLIN_MAX (32767)
+
+/**
+* @def LVWM_AVL_ATTACK_DEFAULT
+* Default of AVL_Attack
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_ATTACK_DEFAULT (25520)
+/**
+* @def LVWM_AVL_ATTACK_MIN
+* MinValue of AVL_Attack
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_ATTACK_MIN (0)
+/**
+* @def LVWM_AVL_ATTACK_MAX
+* MaxValue of AVL_Attack
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_ATTACK_MAX (32767)
+
+/**
+* @def LVWM_AVL_RELEASE_DEFAULT
+* Default of AVL_Release
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_RELEASE_DEFAULT (32685)
+/**
+* @def LVWM_AVL_RELEASE_MIN
+* MinValue of AVL_Release
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_RELEASE_MIN (0)
+/**
+* @def LVWM_AVL_RELEASE_MAX
+* MaxValue of AVL_Release
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_RELEASE_MAX (32767)
+
+/**
+* @def LVWM_AVL_LIMIT_MAXOUTPUTLIN_DEFAULT
+* Default of AVL_Limit_MaxOutputLin
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_LIMIT_MAXOUTPUTLIN_DEFAULT (23197)
+/**
+* @def LVWM_AVL_LIMIT_MAXOUTPUTLIN_MIN
+* MinValue of AVL_Limit_MaxOutputLin
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_LIMIT_MAXOUTPUTLIN_MIN (0)
+/**
+* @def LVWM_AVL_LIMIT_MAXOUTPUTLIN_MAX
+* MaxValue of AVL_Limit_MaxOutputLin
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_LIMIT_MAXOUTPUTLIN_MAX (32767)
+
+/**
+* @def LVWM_SPDETECT_THRESHOLD_DEFAULT
+* Default of SpDetect_Threshold
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_SPDETECT_THRESHOLD_DEFAULT (9216)
+/**
+* @def LVWM_SPDETECT_THRESHOLD_MIN
+* MinValue of SpDetect_Threshold
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_SPDETECT_THRESHOLD_MIN (0)
+/**
+* @def LVWM_SPDETECT_THRESHOLD_MAX
+* MaxValue of SpDetect_Threshold
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_SPDETECT_THRESHOLD_MAX (32767)
+
+/**
+* @def LVDRC_OPERATINGMODE_DEFAULT
+* Default of OperatingMode
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVDRC_NUMKNEES_DEFAULT
+* Default of NumKnees
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_NUMKNEES_DEFAULT (5)
+/**
+* @def LVDRC_NUMKNEES_MIN
+* MinValue of NumKnees
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_NUMKNEES_MIN (1)
+/**
+* @def LVDRC_NUMKNEES_MAX
+* MaxValue of NumKnees
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_NUMKNEES_MAX (5)
+
+/**
+* @def LVDRC_COMPRESSORCURVEINPUTLEVELS_DEFAULT
+* Default of CompressorCurveInputLevels
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_COMPRESSORCURVEINPUTLEVELS_DEFAULT {-96,-70,-50, -24, 0}
+/**
+* @def LVDRC_COMPRESSORCURVEINPUTLEVELS_MIN
+* MinValue of CompressorCurveInputLevels
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_COMPRESSORCURVEINPUTLEVELS_MIN (-96)
+/**
+* @def LVDRC_COMPRESSORCURVEINPUTLEVELS_MAX
+* MaxValue of CompressorCurveInputLevels
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_COMPRESSORCURVEINPUTLEVELS_MAX (0)
+/**
+* @def LVDRC_COMPRESSORCURVEINPUTLEVELS_LENGTH
+* Length of CompressorCurveInputLevels
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_COMPRESSORCURVEINPUTLEVELS_LENGTH (5)
+
+/**
+* @def LVDRC_COMPRESSORCURVEOUTPUTLEVELS_DEFAULT
+* Default of CompressorCurveOutputLevels
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_COMPRESSORCURVEOUTPUTLEVELS_DEFAULT {-96,-70,-38,-12,0}
+/**
+* @def LVDRC_COMPRESSORCURVEOUTPUTLEVELS_MIN
+* MinValue of CompressorCurveOutputLevels
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_COMPRESSORCURVEOUTPUTLEVELS_MIN (-96)
+/**
+* @def LVDRC_COMPRESSORCURVEOUTPUTLEVELS_MAX
+* MaxValue of CompressorCurveOutputLevels
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_COMPRESSORCURVEOUTPUTLEVELS_MAX (0)
+/**
+* @def LVDRC_COMPRESSORCURVEOUTPUTLEVELS_LENGTH
+* Length of CompressorCurveOutputLevels
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_COMPRESSORCURVEOUTPUTLEVELS_LENGTH (5)
+
+/**
+* @def LVDRC_ATTACKTIME_DEFAULT
+* Default of AttackTime
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_ATTACKTIME_DEFAULT (50)
+/**
+* @def LVDRC_ATTACKTIME_MIN
+* MinValue of AttackTime
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_ATTACKTIME_MIN (0)
+/**
+* @def LVDRC_ATTACKTIME_MAX
+* MaxValue of AttackTime
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_ATTACKTIME_MAX (32767)
+
+/**
+* @def LVDRC_RELEASETIME_DEFAULT
+* Default of ReleaseTime
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_RELEASETIME_DEFAULT (50)
+/**
+* @def LVDRC_RELEASETIME_MIN
+* MinValue of ReleaseTime
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_RELEASETIME_MIN (0)
+/**
+* @def LVDRC_RELEASETIME_MAX
+* MaxValue of ReleaseTime
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_RELEASETIME_MAX (32767)
+
+/**
+* @def LVDRC_LIMITEROPERATINGMODE_DEFAULT
+* Default of LimiterOperatingMode
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_LIMITEROPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVDRC_LIMITLEVEL_DEFAULT
+* Default of LimitLevel
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_LIMITLEVEL_DEFAULT (0)
+/**
+* @def LVDRC_LIMITLEVEL_MIN
+* MinValue of LimitLevel
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_LIMITLEVEL_MIN (-96)
+/**
+* @def LVDRC_LIMITLEVEL_MAX
+* MaxValue of LimitLevel
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_LIMITLEVEL_MAX (0)
+
+/**
+* @def LVNG_OPERATINGMODE_DEFAULT
+* Default of OperatingMode
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVNG_NUMKNEES_DEFAULT
+* Default of NumKnees
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_NUMKNEES_DEFAULT (5)
+/**
+* @def LVNG_NUMKNEES_MIN
+* MinValue of NumKnees
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_NUMKNEES_MIN (1)
+/**
+* @def LVNG_NUMKNEES_MAX
+* MaxValue of NumKnees
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_NUMKNEES_MAX (5)
+
+/**
+* @def LVNG_COMPRESSORCURVEINPUTLEVELS_DEFAULT
+* Default of CompressorCurveInputLevels
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_COMPRESSORCURVEINPUTLEVELS_DEFAULT {-80,-70,-50, -24, 0}
+/**
+* @def LVNG_COMPRESSORCURVEINPUTLEVELS_MIN
+* MinValue of CompressorCurveInputLevels
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_COMPRESSORCURVEINPUTLEVELS_MIN (-96)
+/**
+* @def LVNG_COMPRESSORCURVEINPUTLEVELS_MAX
+* MaxValue of CompressorCurveInputLevels
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_COMPRESSORCURVEINPUTLEVELS_MAX (0)
+/**
+* @def LVNG_COMPRESSORCURVEINPUTLEVELS_LENGTH
+* Length of CompressorCurveInputLevels
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_COMPRESSORCURVEINPUTLEVELS_LENGTH (5)
+
+/**
+* @def LVNG_COMPRESSORCURVEOUTPUTLEVELS_DEFAULT
+* Default of CompressorCurveOutputLevels
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_COMPRESSORCURVEOUTPUTLEVELS_DEFAULT {-96,-80,-50, -24, 0}
+/**
+* @def LVNG_COMPRESSORCURVEOUTPUTLEVELS_MIN
+* MinValue of CompressorCurveOutputLevels
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_COMPRESSORCURVEOUTPUTLEVELS_MIN (-96)
+/**
+* @def LVNG_COMPRESSORCURVEOUTPUTLEVELS_MAX
+* MaxValue of CompressorCurveOutputLevels
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_COMPRESSORCURVEOUTPUTLEVELS_MAX (0)
+/**
+* @def LVNG_COMPRESSORCURVEOUTPUTLEVELS_LENGTH
+* Length of CompressorCurveOutputLevels
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_COMPRESSORCURVEOUTPUTLEVELS_LENGTH (5)
+
+/**
+* @def LVNG_ATTACKTIME_DEFAULT
+* Default of AttackTime
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_ATTACKTIME_DEFAULT (50)
+/**
+* @def LVNG_ATTACKTIME_MIN
+* MinValue of AttackTime
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_ATTACKTIME_MIN (0)
+/**
+* @def LVNG_ATTACKTIME_MAX
+* MaxValue of AttackTime
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_ATTACKTIME_MAX (32767)
+
+/**
+* @def LVNG_RELEASETIME_DEFAULT
+* Default of ReleaseTime
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_RELEASETIME_DEFAULT (50)
+/**
+* @def LVNG_RELEASETIME_MIN
+* MinValue of ReleaseTime
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_RELEASETIME_MIN (0)
+/**
+* @def LVNG_RELEASETIME_MAX
+* MaxValue of ReleaseTime
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_RELEASETIME_MAX (32767)
+
+/**
+* @def LVNLPP_NLPP_LIMIT_DEFAULT
+* Default of NLPP_Limit
+* @see LVNLPP_ControlParams_st
+*/
+#define LVNLPP_NLPP_LIMIT_DEFAULT (0)
+/**
+* @def LVNLPP_NLPP_LIMIT_MIN
+* MinValue of NLPP_Limit
+* @see LVNLPP_ControlParams_st
+*/
+#define LVNLPP_NLPP_LIMIT_MIN (-24)
+/**
+* @def LVNLPP_NLPP_LIMIT_MAX
+* MaxValue of NLPP_Limit
+* @see LVNLPP_ControlParams_st
+*/
+#define LVNLPP_NLPP_LIMIT_MAX (0)
+
+/**
+* @def LVNLPP_NLPP_HPF_CORNERFREQ_DEFAULT
+* Default of NLPP_HPF_CornerFreq
+* @see LVNLPP_ControlParams_st
+*/
+#define LVNLPP_NLPP_HPF_CORNERFREQ_DEFAULT (50)
+/**
+* @def LVNLPP_NLPP_HPF_CORNERFREQ_MIN
+* MinValue of NLPP_HPF_CornerFreq
+* @see LVNLPP_ControlParams_st
+*/
+#define LVNLPP_NLPP_HPF_CORNERFREQ_MIN (50)
+/**
+* @def LVNLPP_NLPP_HPF_CORNERFREQ_MAX
+* MaxValue of NLPP_HPF_CornerFreq
+* @see LVNLPP_ControlParams_st
+*/
+#define LVNLPP_NLPP_HPF_CORNERFREQ_MAX (1000)
+
+/**
+* @def LVEQ_EQ_LENGTH_DEFAULT
+* Default of EQ_Length
+* @see LVEQ_ControlParams_st
+*/
+#define LVEQ_EQ_LENGTH_DEFAULT (64)
+/**
+* @def LVEQ_EQ_LENGTH_MIN
+* MinValue of EQ_Length
+* @see LVEQ_ControlParams_st
+*/
+#define LVEQ_EQ_LENGTH_MIN (8)
+/**
+* @def LVEQ_EQ_LENGTH_MAX
+* MaxValue of EQ_Length
+* @see LVEQ_ControlParams_st
+*/
+#define LVEQ_EQ_LENGTH_MAX (64)
+
+/**
+* @def LVEQ_EQ_COEFS_DEFAULT
+* Default of EQ_Coefs
+* @see LVEQ_ControlParams_st
+*/
+#define LVEQ_EQ_COEFS_DEFAULT {4096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
+/**
+* @def LVEQ_EQ_COEFS_MIN
+* MinValue of EQ_Coefs
+* @see LVEQ_ControlParams_st
+*/
+#define LVEQ_EQ_COEFS_MIN (-32768)
+/**
+* @def LVEQ_EQ_COEFS_MAX
+* MaxValue of EQ_Coefs
+* @see LVEQ_ControlParams_st
+*/
+#define LVEQ_EQ_COEFS_MAX (32767)
+/**
+* @def LVEQ_EQ_COEFS_LENGTH
+* Length of EQ_Coefs
+* @see LVEQ_ControlParams_st
+*/
+#define LVEQ_EQ_COEFS_LENGTH (64)
+
+/**
+* @def LVVOL_VOL_OPERATINGMODE_DEFAULT
+* Default of VOL_OperatingMode
+* @see LVVOL_ControlParams_st
+*/
+#define LVVOL_VOL_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVVOL_VOL_GAIN_DEFAULT
+* Default of VOL_Gain
+* @see LVVOL_ControlParams_st
+*/
+#define LVVOL_VOL_GAIN_DEFAULT (0)
+/**
+* @def LVVOL_VOL_GAIN_MIN
+* MinValue of VOL_Gain
+* @see LVVOL_ControlParams_st
+*/
+#define LVVOL_VOL_GAIN_MIN (-96)
+/**
+* @def LVVOL_VOL_GAIN_MAX
+* MaxValue of VOL_Gain
+* @see LVVOL_ControlParams_st
+*/
+#define LVVOL_VOL_GAIN_MAX (24)
+
+/**
+* @def LVHPF_HPF_OPERATINGMODE_DEFAULT
+* Default of HPF_OperatingMode
+* @see LVHPF_ControlParams_st
+*/
+#define LVHPF_HPF_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVHPF_HPF_CORNERFREQ_DEFAULT
+* Default of HPF_CornerFreq
+* @see LVHPF_ControlParams_st
+*/
+#define LVHPF_HPF_CORNERFREQ_DEFAULT (50)
+/**
+* @def LVHPF_HPF_CORNERFREQ_MIN
+* MinValue of HPF_CornerFreq
+* @see LVHPF_ControlParams_st
+*/
+#define LVHPF_HPF_CORNERFREQ_MIN (50)
+/**
+* @def LVHPF_HPF_CORNERFREQ_MAX
+* MaxValue of HPF_CornerFreq
+* @see LVHPF_ControlParams_st
+*/
+#define LVHPF_HPF_CORNERFREQ_MAX (1500)
+
+/**
+* @def LVMUTE_MUTE_DEFAULT
+* Default of Mute
+* @see LVMUTE_ControlParams_st
+*/
+#define LVMUTE_MUTE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVVE_RX_OPERATINGMODE_DEFAULT
+* Default of OperatingMode
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_OPERATINGMODE_DEFAULT (LVVE_RX_MODE_OFF)
+
+/**
+* @def LVVE_RX_MUTE_DEFAULT
+* Default of Mute
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_MUTE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVVE_RX_VOL_OPERATINGMODE_DEFAULT
+* Default of VOL_OperatingMode
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_VOL_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVVE_RX_VOL_GAIN_DEFAULT
+* Default of VOL_Gain
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_VOL_GAIN_DEFAULT (0)
+/**
+* @def LVVE_RX_VOL_GAIN_MIN
+* MinValue of VOL_Gain
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_VOL_GAIN_MIN (-96)
+/**
+* @def LVVE_RX_VOL_GAIN_MAX
+* MaxValue of VOL_Gain
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_VOL_GAIN_MAX (24)
+
+
+/**
+* @def LVVE_RX_NLPP_OPERATINGMODE_DEFAULT
+* Default of NLPP_OperatingMode
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_NLPP_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+
+
+/**
+* @def LVVE_RX_EQ_OPERATINGMODE_DEFAULT
+* Default of EQ_OperatingMode
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_EQ_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+
+
+/**
+* @def LVVE_RX_HPF_OPERATINGMODE_DEFAULT
+* Default of HPF_OperatingMode
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_HPF_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVVE_RX_HPF_CORNERFREQ_DEFAULT
+* Default of HPF_CornerFreq
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_HPF_CORNERFREQ_DEFAULT (50)
+/**
+* @def LVVE_RX_HPF_CORNERFREQ_MIN
+* MinValue of HPF_CornerFreq
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_HPF_CORNERFREQ_MIN (50)
+/**
+* @def LVVE_RX_HPF_CORNERFREQ_MAX
+* MaxValue of HPF_CornerFreq
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_HPF_CORNERFREQ_MAX (1500)
+
+
+
+/**
+* @def LVNV_OPERATINGMODE_DEFAULT
+* Default of OperatingMode
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVNV_MODE_DEFAULT
+* Default of Mode
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_MODE_DEFAULT (18935)
+
+/**
+* @def LVNV_MODE2_DEFAULT
+* Default of Mode2
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_MODE2_DEFAULT (14)
+
+/**
+* @def LVNV_TUNING_MODE_DEFAULT
+* Default of Tuning_mode
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_TUNING_MODE_DEFAULT (0)
+
+/**
+* @def LVNV_INPUT_GAIN_MIC0_DEFAULT
+* Default of Input_Gain_Mic0
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_INPUT_GAIN_MIC0_DEFAULT (8192)
+/**
+* @def LVNV_INPUT_GAIN_MIC0_MIN
+* MinValue of Input_Gain_Mic0
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_INPUT_GAIN_MIC0_MIN (0)
+/**
+* @def LVNV_INPUT_GAIN_MIC0_MAX
+* MaxValue of Input_Gain_Mic0
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_INPUT_GAIN_MIC0_MAX (32767)
+
+/**
+* @def LVNV_INPUT_GAIN_MIC1_DEFAULT
+* Default of Input_Gain_Mic1
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_INPUT_GAIN_MIC1_DEFAULT (8192)
+/**
+* @def LVNV_INPUT_GAIN_MIC1_MIN
+* MinValue of Input_Gain_Mic1
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_INPUT_GAIN_MIC1_MIN (0)
+/**
+* @def LVNV_INPUT_GAIN_MIC1_MAX
+* MaxValue of Input_Gain_Mic1
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_INPUT_GAIN_MIC1_MAX (32767)
+
+/**
+* @def LVNV_OUTPUT_GAIN_DEFAULT
+* Default of Output_Gain
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_OUTPUT_GAIN_DEFAULT (2048)
+/**
+* @def LVNV_OUTPUT_GAIN_MIN
+* MinValue of Output_Gain
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_OUTPUT_GAIN_MIN (0)
+/**
+* @def LVNV_OUTPUT_GAIN_MAX
+* MaxValue of Output_Gain
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_OUTPUT_GAIN_MAX (32767)
+
+/**
+* @def LVNV_NLMS0_LB_TAPS_DEFAULT
+* Default of NLMS0_LB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_LB_TAPS_DEFAULT (32)
+/**
+* @def LVNV_NLMS0_LB_TAPS_MIN
+* MinValue of NLMS0_LB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_LB_TAPS_MIN (16)
+/**
+* @def LVNV_NLMS0_LB_TAPS_MAX
+* MaxValue of NLMS0_LB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_LB_TAPS_MAX (64)
+
+/**
+* @def LVNV_NLMS0_LB_TWOALPHA_DEFAULT
+* Default of NLMS0_LB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_LB_TWOALPHA_DEFAULT (8192)
+/**
+* @def LVNV_NLMS0_LB_TWOALPHA_MIN
+* MinValue of NLMS0_LB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_LB_TWOALPHA_MIN (0)
+/**
+* @def LVNV_NLMS0_LB_TWOALPHA_MAX
+* MaxValue of NLMS0_LB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_LB_TWOALPHA_MAX (32767)
+
+/**
+* @def LVNV_NLMS0_LB_ERL_DEFAULT
+* Default of NLMS0_LB_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_LB_ERL_DEFAULT (1000)
+/**
+* @def LVNV_NLMS0_LB_ERL_MIN
+* MinValue of NLMS0_LB_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_LB_ERL_MIN (64)
+/**
+* @def LVNV_NLMS0_LB_ERL_MAX
+* MaxValue of NLMS0_LB_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_LB_ERL_MAX (32767)
+
+/**
+* @def LVNV_NLMS0_HB_TAPS_DEFAULT
+* Default of NLMS0_HB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_HB_TAPS_DEFAULT (24)
+/**
+* @def LVNV_NLMS0_HB_TAPS_MIN
+* MinValue of NLMS0_HB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_HB_TAPS_MIN (16)
+/**
+* @def LVNV_NLMS0_HB_TAPS_MAX
+* MaxValue of NLMS0_HB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_HB_TAPS_MAX (64)
+
+/**
+* @def LVNV_NLMS0_HB_TWOALPHA_DEFAULT
+* Default of NLMS0_HB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_HB_TWOALPHA_DEFAULT (8192)
+/**
+* @def LVNV_NLMS0_HB_TWOALPHA_MIN
+* MinValue of NLMS0_HB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_HB_TWOALPHA_MIN (0)
+/**
+* @def LVNV_NLMS0_HB_TWOALPHA_MAX
+* MaxValue of NLMS0_HB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_HB_TWOALPHA_MAX (32767)
+
+/**
+* @def LVNV_NLMS0_HB_ERL_DEFAULT
+* Default of NLMS0_HB_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_HB_ERL_DEFAULT (1000)
+/**
+* @def LVNV_NLMS0_HB_ERL_MIN
+* MinValue of NLMS0_HB_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_HB_ERL_MIN (64)
+/**
+* @def LVNV_NLMS0_HB_ERL_MAX
+* MaxValue of NLMS0_HB_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_HB_ERL_MAX (32767)
+
+/**
+* @def LVNV_NLMS0_PRESET_COEFS_DEFAULT
+* Default of NLMS0_preset_coefs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_PRESET_COEFS_DEFAULT (0)
+/**
+* @def LVNV_NLMS0_PRESET_COEFS_MIN
+* MinValue of NLMS0_preset_coefs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_PRESET_COEFS_MIN (0)
+/**
+* @def LVNV_NLMS0_PRESET_COEFS_MAX
+* MaxValue of NLMS0_preset_coefs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_PRESET_COEFS_MAX (2)
+
+/**
+* @def LVNV_NLMS0_OFFSET_DEFAULT
+* Default of NLMS0_offset
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_OFFSET_DEFAULT (776)
+/**
+* @def LVNV_NLMS0_OFFSET_MIN
+* MinValue of NLMS0_offset
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_OFFSET_MIN (0)
+/**
+* @def LVNV_NLMS0_OFFSET_MAX
+* MaxValue of NLMS0_offset
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_OFFSET_MAX (32767)
+
+/**
+* @def LVNV_NLMS1_LB_TAPS_DEFAULT
+* Default of NLMS1_LB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_LB_TAPS_DEFAULT (32)
+/**
+* @def LVNV_NLMS1_LB_TAPS_MIN
+* MinValue of NLMS1_LB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_LB_TAPS_MIN (16)
+/**
+* @def LVNV_NLMS1_LB_TAPS_MAX
+* MaxValue of NLMS1_LB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_LB_TAPS_MAX (32)
+
+/**
+* @def LVNV_NLMS1_LB_TWOALPHA_DEFAULT
+* Default of NLMS1_LB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_LB_TWOALPHA_DEFAULT (8192)
+/**
+* @def LVNV_NLMS1_LB_TWOALPHA_MIN
+* MinValue of NLMS1_LB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_LB_TWOALPHA_MIN (0)
+/**
+* @def LVNV_NLMS1_LB_TWOALPHA_MAX
+* MaxValue of NLMS1_LB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_LB_TWOALPHA_MAX (32767)
+
+/**
+* @def LVNV_NLMS1_LB_ERL_DEFAULT
+* Default of NLMS1_LB_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_LB_ERL_DEFAULT (1000)
+/**
+* @def LVNV_NLMS1_LB_ERL_MIN
+* MinValue of NLMS1_LB_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_LB_ERL_MIN (64)
+/**
+* @def LVNV_NLMS1_LB_ERL_MAX
+* MaxValue of NLMS1_LB_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_LB_ERL_MAX (32767)
+
+/**
+* @def LVNV_NLMS1_HB_TAPS_DEFAULT
+* Default of NLMS1_HB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_HB_TAPS_DEFAULT (24)
+/**
+* @def LVNV_NLMS1_HB_TAPS_MIN
+* MinValue of NLMS1_HB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_HB_TAPS_MIN (16)
+/**
+* @def LVNV_NLMS1_HB_TAPS_MAX
+* MaxValue of NLMS1_HB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_HB_TAPS_MAX (32)
+
+/**
+* @def LVNV_NLMS1_HB_TWOALPHA_DEFAULT
+* Default of NLMS1_HB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_HB_TWOALPHA_DEFAULT (8192)
+/**
+* @def LVNV_NLMS1_HB_TWOALPHA_MIN
+* MinValue of NLMS1_HB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_HB_TWOALPHA_MIN (0)
+/**
+* @def LVNV_NLMS1_HB_TWOALPHA_MAX
+* MaxValue of NLMS1_HB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_HB_TWOALPHA_MAX (32767)
+
+/**
+* @def LVNV_NLMS1_HB_ERL_DEFAULT
+* Default of NLMS1_HB_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_HB_ERL_DEFAULT (1000)
+/**
+* @def LVNV_NLMS1_HB_ERL_MIN
+* MinValue of NLMS1_HB_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_HB_ERL_MIN (64)
+/**
+* @def LVNV_NLMS1_HB_ERL_MAX
+* MaxValue of NLMS1_HB_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_HB_ERL_MAX (32767)
+
+/**
+* @def LVNV_NLMS1_PRESET_COEFS_DEFAULT
+* Default of NLMS1_preset_coefs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_PRESET_COEFS_DEFAULT (0)
+/**
+* @def LVNV_NLMS1_PRESET_COEFS_MIN
+* MinValue of NLMS1_preset_coefs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_PRESET_COEFS_MIN (0)
+/**
+* @def LVNV_NLMS1_PRESET_COEFS_MAX
+* MaxValue of NLMS1_preset_coefs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_PRESET_COEFS_MAX (2)
+
+/**
+* @def LVNV_NLMS1_OFFSET_DEFAULT
+* Default of NLMS1_offset
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_OFFSET_DEFAULT (776)
+/**
+* @def LVNV_NLMS1_OFFSET_MIN
+* MinValue of NLMS1_offset
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_OFFSET_MIN (0)
+/**
+* @def LVNV_NLMS1_OFFSET_MAX
+* MaxValue of NLMS1_offset
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_OFFSET_MAX (32767)
+
+/**
+* @def LVNV_CAL_MICPOWFLOORMIN_DEFAULT
+* Default of CAL_micPowFloorMin
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_CAL_MICPOWFLOORMIN_DEFAULT (150)
+/**
+* @def LVNV_CAL_MICPOWFLOORMIN_MIN
+* MinValue of CAL_micPowFloorMin
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_CAL_MICPOWFLOORMIN_MIN (0)
+/**
+* @def LVNV_CAL_MICPOWFLOORMIN_MAX
+* MaxValue of CAL_micPowFloorMin
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_CAL_MICPOWFLOORMIN_MAX (32767)
+
+/**
+* @def LVNV_WGTHRESHOLD_DEFAULT
+* Default of WgThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_WGTHRESHOLD_DEFAULT (32767)
+/**
+* @def LVNV_WGTHRESHOLD_MIN
+* MinValue of WgThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_WGTHRESHOLD_MIN (0)
+/**
+* @def LVNV_WGTHRESHOLD_MAX
+* MaxValue of WgThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_WGTHRESHOLD_MAX (32767)
+
+/**
+* @def LVNV_MPTHRESHOLD_DEFAULT
+* Default of MpThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_MPTHRESHOLD_DEFAULT (6554)
+/**
+* @def LVNV_MPTHRESHOLD_MIN
+* MinValue of MpThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_MPTHRESHOLD_MIN (0)
+/**
+* @def LVNV_MPTHRESHOLD_MAX
+* MaxValue of MpThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_MPTHRESHOLD_MAX (32767)
+
+/**
+* @def LVNV_FSB_INIT_TABLE0_DEFAULT
+* Default of FSB_init_table0
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_INIT_TABLE0_DEFAULT {32767, 0, 0, 0, 0, 0, 0, 0}
+/**
+* @def LVNV_FSB_INIT_TABLE0_MIN
+* MinValue of FSB_init_table0
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_INIT_TABLE0_MIN (-32768)
+/**
+* @def LVNV_FSB_INIT_TABLE0_MAX
+* MaxValue of FSB_init_table0
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_INIT_TABLE0_MAX (32767)
+/**
+* @def LVNV_FSB_INIT_TABLE0_LENGTH
+* Length of FSB_init_table0
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_INIT_TABLE0_LENGTH (8)
+
+/**
+* @def LVNV_FSB_INIT_TABLE1_DEFAULT
+* Default of FSB_init_table1
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_INIT_TABLE1_DEFAULT {0, 0, 0, 0, 0, 0, 0, 0}
+/**
+* @def LVNV_FSB_INIT_TABLE1_MIN
+* MinValue of FSB_init_table1
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_INIT_TABLE1_MIN (-32768)
+/**
+* @def LVNV_FSB_INIT_TABLE1_MAX
+* MaxValue of FSB_init_table1
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_INIT_TABLE1_MAX (32767)
+/**
+* @def LVNV_FSB_INIT_TABLE1_LENGTH
+* Length of FSB_init_table1
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_INIT_TABLE1_LENGTH (8)
+
+/**
+* @def LVNV_FSB_TAPS_DEFAULT
+* Default of FSB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_TAPS_DEFAULT (16)
+/**
+* @def LVNV_FSB_TAPS_MIN
+* MinValue of FSB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_TAPS_MIN (8)
+/**
+* @def LVNV_FSB_TAPS_MAX
+* MaxValue of FSB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_TAPS_MAX (16)
+
+/**
+* @def LVNV_FSB_TWOALPHA_DEFAULT
+* Default of FSB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_TWOALPHA_DEFAULT (655)
+/**
+* @def LVNV_FSB_TWOALPHA_MIN
+* MinValue of FSB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_TWOALPHA_MIN (0)
+/**
+* @def LVNV_FSB_TWOALPHA_MAX
+* MaxValue of FSB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_TWOALPHA_MAX (32767)
+
+/**
+* @def LVNV_FSB_REF_GAIN_DEFAULT
+* Default of FSB_ref_gain
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_REF_GAIN_DEFAULT (1024)
+/**
+* @def LVNV_FSB_REF_GAIN_MIN
+* MinValue of FSB_ref_gain
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_REF_GAIN_MIN (0)
+/**
+* @def LVNV_FSB_REF_GAIN_MAX
+* MaxValue of FSB_ref_gain
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_REF_GAIN_MAX (32767)
+
+/**
+* @def LVNV_GSC_TAPS_DEFAULT
+* Default of GSC_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_GSC_TAPS_DEFAULT (16)
+/**
+* @def LVNV_GSC_TAPS_MIN
+* MinValue of GSC_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_GSC_TAPS_MIN (8)
+/**
+* @def LVNV_GSC_TAPS_MAX
+* MaxValue of GSC_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_GSC_TAPS_MAX (48)
+
+/**
+* @def LVNV_GSC_TWOALPHA_DEFAULT
+* Default of GSC_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_GSC_TWOALPHA_DEFAULT (1638)
+/**
+* @def LVNV_GSC_TWOALPHA_MIN
+* MinValue of GSC_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_GSC_TWOALPHA_MIN (0)
+/**
+* @def LVNV_GSC_TWOALPHA_MAX
+* MaxValue of GSC_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_GSC_TWOALPHA_MAX (32767)
+
+/**
+* @def LVNV_GSC_ERL_DEFAULT
+* Default of GSC_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_GSC_ERL_DEFAULT (256)
+/**
+* @def LVNV_GSC_ERL_MIN
+* MinValue of GSC_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_GSC_ERL_MIN (64)
+/**
+* @def LVNV_GSC_ERL_MAX
+* MaxValue of GSC_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_GSC_ERL_MAX (32767)
+
+/**
+* @def LVNV_GSC_OFFSET_DEFAULT
+* Default of GSC_offset
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_GSC_OFFSET_DEFAULT (1638)
+/**
+* @def LVNV_GSC_OFFSET_MIN
+* MinValue of GSC_offset
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_GSC_OFFSET_MIN (0)
+/**
+* @def LVNV_GSC_OFFSET_MAX
+* MaxValue of GSC_offset
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_GSC_OFFSET_MAX (32767)
+
+/**
+* @def LVNV_DNNS_ECHOGAMMAHI_DEFAULT
+* Default of DNNS_EchoGammaHi
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ECHOGAMMAHI_DEFAULT (16384)
+/**
+* @def LVNV_DNNS_ECHOGAMMAHI_MIN
+* MinValue of DNNS_EchoGammaHi
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ECHOGAMMAHI_MIN (0)
+/**
+* @def LVNV_DNNS_ECHOGAMMAHI_MAX
+* MaxValue of DNNS_EchoGammaHi
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ECHOGAMMAHI_MAX (32767)
+
+/**
+* @def LVNV_DNNS_ECHOGAMMALO_DEFAULT
+* Default of DNNS_EchoGammaLo
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ECHOGAMMALO_DEFAULT (8192)
+/**
+* @def LVNV_DNNS_ECHOGAMMALO_MIN
+* MinValue of DNNS_EchoGammaLo
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ECHOGAMMALO_MIN (0)
+/**
+* @def LVNV_DNNS_ECHOGAMMALO_MAX
+* MaxValue of DNNS_EchoGammaLo
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ECHOGAMMALO_MAX (32767)
+
+/**
+* @def LVNV_DNNS_ECHOALPHAREV_DEFAULT
+* Default of DNNS_EchoAlphaRev
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ECHOALPHAREV_DEFAULT (12000)
+/**
+* @def LVNV_DNNS_ECHOALPHAREV_MIN
+* MinValue of DNNS_EchoAlphaRev
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ECHOALPHAREV_MIN (0)
+/**
+* @def LVNV_DNNS_ECHOALPHAREV_MAX
+* MaxValue of DNNS_EchoAlphaRev
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ECHOALPHAREV_MAX (32767)
+
+/**
+* @def LVNV_DNNS_ECHOTAILPORTION_DEFAULT
+* Default of DNNS_EchoTailPortion
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ECHOTAILPORTION_DEFAULT (7000)
+/**
+* @def LVNV_DNNS_ECHOTAILPORTION_MIN
+* MinValue of DNNS_EchoTailPortion
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ECHOTAILPORTION_MIN (0)
+/**
+* @def LVNV_DNNS_ECHOTAILPORTION_MAX
+* MaxValue of DNNS_EchoTailPortion
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ECHOTAILPORTION_MAX (32767)
+
+/**
+* @def LVNV_DNNS_NLATTEN_DEFAULT
+* Default of DNNS_NlAtten
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NLATTEN_DEFAULT (256)
+/**
+* @def LVNV_DNNS_NLATTEN_MIN
+* MinValue of DNNS_NlAtten
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NLATTEN_MIN (0)
+/**
+* @def LVNV_DNNS_NLATTEN_MAX
+* MaxValue of DNNS_NlAtten
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NLATTEN_MAX (2048)
+
+/**
+* @def LVNV_DNNS_NOISEGAMMAS_DEFAULT
+* Default of DNNS_NoiseGammaS
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEGAMMAS_DEFAULT (11470)
+/**
+* @def LVNV_DNNS_NOISEGAMMAS_MIN
+* MinValue of DNNS_NoiseGammaS
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEGAMMAS_MIN (0)
+/**
+* @def LVNV_DNNS_NOISEGAMMAS_MAX
+* MaxValue of DNNS_NoiseGammaS
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEGAMMAS_MAX (32767)
+
+/**
+* @def LVNV_DNNS_NOISEGAMMAN_DEFAULT
+* Default of DNNS_NoiseGammaN
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEGAMMAN_DEFAULT (16384)
+/**
+* @def LVNV_DNNS_NOISEGAMMAN_MIN
+* MinValue of DNNS_NoiseGammaN
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEGAMMAN_MIN (0)
+/**
+* @def LVNV_DNNS_NOISEGAMMAN_MAX
+* MaxValue of DNNS_NoiseGammaN
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEGAMMAN_MAX (32767)
+
+/**
+* @def LVNV_DNNS_NOISEGAINMINS_DEFAULT
+* Default of DNNS_NoiseGainMinS
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEGAINMINS_DEFAULT (11140)
+/**
+* @def LVNV_DNNS_NOISEGAINMINS_MIN
+* MinValue of DNNS_NoiseGainMinS
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEGAINMINS_MIN (0)
+/**
+* @def LVNV_DNNS_NOISEGAINMINS_MAX
+* MaxValue of DNNS_NoiseGainMinS
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEGAINMINS_MAX (32767)
+
+/**
+* @def LVNV_DNNS_NOISEGAINMINN_DEFAULT
+* Default of DNNS_NoiseGainMinN
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEGAINMINN_DEFAULT (6554)
+/**
+* @def LVNV_DNNS_NOISEGAINMINN_MIN
+* MinValue of DNNS_NoiseGainMinN
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEGAINMINN_MIN (0)
+/**
+* @def LVNV_DNNS_NOISEGAINMINN_MAX
+* MaxValue of DNNS_NoiseGainMinN
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEGAINMINN_MAX (32767)
+
+/**
+* @def LVNV_DNNS_NOISEBIASCOMP_DEFAULT
+* Default of DNNS_NoiseBiasComp
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEBIASCOMP_DEFAULT (9830)
+/**
+* @def LVNV_DNNS_NOISEBIASCOMP_MIN
+* MinValue of DNNS_NoiseBiasComp
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEBIASCOMP_MIN (0)
+/**
+* @def LVNV_DNNS_NOISEBIASCOMP_MAX
+* MaxValue of DNNS_NoiseBiasComp
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEBIASCOMP_MAX (32767)
+
+/**
+* @def LVNV_DNNS_GAINETA_DEFAULT
+* Default of DNNS_GainEta
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_GAINETA_DEFAULT (256)
+/**
+* @def LVNV_DNNS_GAINETA_MIN
+* MinValue of DNNS_GainEta
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_GAINETA_MIN (0)
+/**
+* @def LVNV_DNNS_GAINETA_MAX
+* MaxValue of DNNS_GainEta
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_GAINETA_MAX (32767)
+
+/**
+* @def LVNV_DNNS_ACTHRESHOLD_DEFAULT
+* Default of DNNS_AcThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ACTHRESHOLD_DEFAULT (12288)
+/**
+* @def LVNV_DNNS_ACTHRESHOLD_MIN
+* MinValue of DNNS_AcThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ACTHRESHOLD_MIN (0)
+/**
+* @def LVNV_DNNS_ACTHRESHOLD_MAX
+* MaxValue of DNNS_AcThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ACTHRESHOLD_MAX (32767)
+
+/**
+* @def LVNV_DNNS_WBTHRESHOLD_DEFAULT
+* Default of DNNS_WbThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_WBTHRESHOLD_DEFAULT (9216)
+/**
+* @def LVNV_DNNS_WBTHRESHOLD_MIN
+* MinValue of DNNS_WbThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_WBTHRESHOLD_MIN (0)
+/**
+* @def LVNV_DNNS_WBTHRESHOLD_MAX
+* MaxValue of DNNS_WbThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_WBTHRESHOLD_MAX (32767)
+
+/**
+* @def LVNV_DNNS_LOSTBEAMTHRESHOLD_DEFAULT
+* Default of DNNS_LostBeamThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_LOSTBEAMTHRESHOLD_DEFAULT (320)
+/**
+* @def LVNV_DNNS_LOSTBEAMTHRESHOLD_MIN
+* MinValue of DNNS_LostBeamThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_LOSTBEAMTHRESHOLD_MIN (0)
+/**
+* @def LVNV_DNNS_LOSTBEAMTHRESHOLD_MAX
+* MaxValue of DNNS_LostBeamThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_LOSTBEAMTHRESHOLD_MAX (32767)
+
+/**
+* @def LVNV_PCD_BETA_DEFAULT
+* Default of PCD_beta
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PCD_BETA_DEFAULT (230)
+/**
+* @def LVNV_PCD_BETA_MIN
+* MinValue of PCD_beta
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PCD_BETA_MIN (0)
+/**
+* @def LVNV_PCD_BETA_MAX
+* MaxValue of PCD_beta
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PCD_BETA_MAX (32767)
+
+/**
+* @def LVNV_PCD_THRESHOLD_DEFAULT
+* Default of PCD_Threshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PCD_THRESHOLD_DEFAULT (26213)
+/**
+* @def LVNV_PCD_THRESHOLD_MIN
+* MinValue of PCD_Threshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PCD_THRESHOLD_MIN (0)
+/**
+* @def LVNV_PCD_THRESHOLD_MAX
+* MaxValue of PCD_Threshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PCD_THRESHOLD_MAX (32767)
+
+/**
+* @def LVHF_OPERATINGMODE_DEFAULT
+* Default of OperatingMode
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVHF_MODE_DEFAULT
+* Default of Mode
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_MODE_DEFAULT (4607)
+
+/**
+* @def LVHF_TUNINGMODE_DEFAULT
+* Default of TuningMode
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_TUNINGMODE_DEFAULT (0)
+
+/**
+* @def LVHF_INPUTGAIN_DEFAULT
+* Default of InputGain
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_INPUTGAIN_DEFAULT (8192)
+/**
+* @def LVHF_INPUTGAIN_MIN
+* MinValue of InputGain
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_INPUTGAIN_MIN (0)
+/**
+* @def LVHF_INPUTGAIN_MAX
+* MaxValue of InputGain
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_INPUTGAIN_MAX (32767)
+
+/**
+* @def LVHF_OUTPUTGAIN_DEFAULT
+* Default of OutputGain
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_OUTPUTGAIN_DEFAULT (2048)
+/**
+* @def LVHF_OUTPUTGAIN_MIN
+* MinValue of OutputGain
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_OUTPUTGAIN_MIN (0)
+/**
+* @def LVHF_OUTPUTGAIN_MAX
+* MaxValue of OutputGain
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_OUTPUTGAIN_MAX (32767)
+
+/**
+* @def LVHF_NLMS_LIMIT_DEFAULT
+* Default of NLMS_limit
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_LIMIT_DEFAULT (0)
+/**
+* @def LVHF_NLMS_LIMIT_MIN
+* MinValue of NLMS_limit
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_LIMIT_MIN (-24)
+/**
+* @def LVHF_NLMS_LIMIT_MAX
+* MaxValue of NLMS_limit
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_LIMIT_MAX (0)
+
+/**
+* @def LVHF_NLMS_LB_TAPS_DEFAULT
+* Default of NLMS_LB_taps
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_LB_TAPS_DEFAULT (64)
+/**
+* @def LVHF_NLMS_LB_TAPS_MIN
+* MinValue of NLMS_LB_taps
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_LB_TAPS_MIN (16)
+/**
+* @def LVHF_NLMS_LB_TAPS_MAX
+* MaxValue of NLMS_LB_taps
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_LB_TAPS_MAX (200)
+
+/**
+* @def LVHF_NLMS_LB_TWO_ALPHA_DEFAULT
+* Default of NLMS_LB_two_alpha
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_LB_TWO_ALPHA_DEFAULT (8192)
+/**
+* @def LVHF_NLMS_LB_TWO_ALPHA_MIN
+* MinValue of NLMS_LB_two_alpha
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_LB_TWO_ALPHA_MIN (0)
+/**
+* @def LVHF_NLMS_LB_TWO_ALPHA_MAX
+* MaxValue of NLMS_LB_two_alpha
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_LB_TWO_ALPHA_MAX (32767)
+
+/**
+* @def LVHF_NLMS_LB_ERL_DEFAULT
+* Default of NLMS_LB_erl
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_LB_ERL_DEFAULT (128)
+/**
+* @def LVHF_NLMS_LB_ERL_MIN
+* MinValue of NLMS_LB_erl
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_LB_ERL_MIN (64)
+/**
+* @def LVHF_NLMS_LB_ERL_MAX
+* MaxValue of NLMS_LB_erl
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_LB_ERL_MAX (32767)
+
+/**
+* @def LVHF_NLMS_HB_TAPS_DEFAULT
+* Default of NLMS_HB_taps
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_HB_TAPS_DEFAULT (64)
+/**
+* @def LVHF_NLMS_HB_TAPS_MIN
+* MinValue of NLMS_HB_taps
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_HB_TAPS_MIN (16)
+/**
+* @def LVHF_NLMS_HB_TAPS_MAX
+* MaxValue of NLMS_HB_taps
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_HB_TAPS_MAX (136)
+
+/**
+* @def LVHF_NLMS_HB_TWO_ALPHA_DEFAULT
+* Default of NLMS_HB_two_alpha
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_HB_TWO_ALPHA_DEFAULT (8192)
+/**
+* @def LVHF_NLMS_HB_TWO_ALPHA_MIN
+* MinValue of NLMS_HB_two_alpha
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_HB_TWO_ALPHA_MIN (0)
+/**
+* @def LVHF_NLMS_HB_TWO_ALPHA_MAX
+* MaxValue of NLMS_HB_two_alpha
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_HB_TWO_ALPHA_MAX (32767)
+
+/**
+* @def LVHF_NLMS_HB_ERL_DEFAULT
+* Default of NLMS_HB_erl
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_HB_ERL_DEFAULT (128)
+/**
+* @def LVHF_NLMS_HB_ERL_MIN
+* MinValue of NLMS_HB_erl
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_HB_ERL_MIN (64)
+/**
+* @def LVHF_NLMS_HB_ERL_MAX
+* MaxValue of NLMS_HB_erl
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_HB_ERL_MAX (32767)
+
+/**
+* @def LVHF_NLMS_PRESET_COEFS_DEFAULT
+* Default of NLMS_preset_coefs
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_PRESET_COEFS_DEFAULT (1)
+/**
+* @def LVHF_NLMS_PRESET_COEFS_MIN
+* MinValue of NLMS_preset_coefs
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_PRESET_COEFS_MIN (0)
+/**
+* @def LVHF_NLMS_PRESET_COEFS_MAX
+* MaxValue of NLMS_preset_coefs
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_PRESET_COEFS_MAX (2)
+
+/**
+* @def LVHF_NLMS_OFFSET_DEFAULT
+* Default of NLMS_offset
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_OFFSET_DEFAULT (767)
+/**
+* @def LVHF_NLMS_OFFSET_MIN
+* MinValue of NLMS_offset
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_OFFSET_MIN (0)
+/**
+* @def LVHF_NLMS_OFFSET_MAX
+* MaxValue of NLMS_offset
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_OFFSET_MAX (32767)
+
+/**
+* @def LVHF_DENS_TAIL_ALPHA_LB_DEFAULT
+* Default of DENS_tail_alpha_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_TAIL_ALPHA_LB_DEFAULT (25395)
+/**
+* @def LVHF_DENS_TAIL_ALPHA_LB_MIN
+* MinValue of DENS_tail_alpha_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_TAIL_ALPHA_LB_MIN (0)
+/**
+* @def LVHF_DENS_TAIL_ALPHA_LB_MAX
+* MaxValue of DENS_tail_alpha_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_TAIL_ALPHA_LB_MAX (32767)
+
+/**
+* @def LVHF_DENS_TAIL_PORTION_LB_DEFAULT
+* Default of DENS_tail_portion_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_TAIL_PORTION_LB_DEFAULT (29491)
+/**
+* @def LVHF_DENS_TAIL_PORTION_LB_MIN
+* MinValue of DENS_tail_portion_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_TAIL_PORTION_LB_MIN (0)
+/**
+* @def LVHF_DENS_TAIL_PORTION_LB_MAX
+* MaxValue of DENS_tail_portion_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_TAIL_PORTION_LB_MAX (32767)
+
+/**
+* @def LVHF_DENS_GAMMA_E_HIGH_LB_DEFAULT
+* Default of DENS_gamma_e_high_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_HIGH_LB_DEFAULT (512)
+/**
+* @def LVHF_DENS_GAMMA_E_HIGH_LB_MIN
+* MinValue of DENS_gamma_e_high_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_HIGH_LB_MIN (0)
+/**
+* @def LVHF_DENS_GAMMA_E_HIGH_LB_MAX
+* MaxValue of DENS_gamma_e_high_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_HIGH_LB_MAX (32767)
+
+/**
+* @def LVHF_DENS_GAMMA_E_DT_LB_DEFAULT
+* Default of DENS_gamma_e_dt_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_DT_LB_DEFAULT (256)
+/**
+* @def LVHF_DENS_GAMMA_E_DT_LB_MIN
+* MinValue of DENS_gamma_e_dt_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_DT_LB_MIN (0)
+/**
+* @def LVHF_DENS_GAMMA_E_DT_LB_MAX
+* MaxValue of DENS_gamma_e_dt_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_DT_LB_MAX (32767)
+
+/**
+* @def LVHF_DENS_GAMMA_E_LOW_LB_DEFAULT
+* Default of DENS_gamma_e_low_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_LOW_LB_DEFAULT (256)
+/**
+* @def LVHF_DENS_GAMMA_E_LOW_LB_MIN
+* MinValue of DENS_gamma_e_low_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_LOW_LB_MIN (0)
+/**
+* @def LVHF_DENS_GAMMA_E_LOW_LB_MAX
+* MaxValue of DENS_gamma_e_low_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_LOW_LB_MAX (32767)
+
+/**
+* @def LVHF_DENS_NL_ATTEN_LB_DEFAULT
+* Default of DENS_NL_atten_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_NL_ATTEN_LB_DEFAULT (0)
+/**
+* @def LVHF_DENS_NL_ATTEN_LB_MIN
+* MinValue of DENS_NL_atten_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_NL_ATTEN_LB_MIN (0)
+/**
+* @def LVHF_DENS_NL_ATTEN_LB_MAX
+* MaxValue of DENS_NL_atten_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_NL_ATTEN_LB_MAX (2048)
+
+/**
+* @def LVHF_DENS_TAIL_ALPHA_HB_DEFAULT
+* Default of DENS_tail_alpha_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_TAIL_ALPHA_HB_DEFAULT (25395)
+/**
+* @def LVHF_DENS_TAIL_ALPHA_HB_MIN
+* MinValue of DENS_tail_alpha_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_TAIL_ALPHA_HB_MIN (0)
+/**
+* @def LVHF_DENS_TAIL_ALPHA_HB_MAX
+* MaxValue of DENS_tail_alpha_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_TAIL_ALPHA_HB_MAX (32767)
+
+/**
+* @def LVHF_DENS_TAIL_PORTION_HB_DEFAULT
+* Default of DENS_tail_portion_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_TAIL_PORTION_HB_DEFAULT (29491)
+/**
+* @def LVHF_DENS_TAIL_PORTION_HB_MIN
+* MinValue of DENS_tail_portion_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_TAIL_PORTION_HB_MIN (0)
+/**
+* @def LVHF_DENS_TAIL_PORTION_HB_MAX
+* MaxValue of DENS_tail_portion_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_TAIL_PORTION_HB_MAX (32767)
+
+/**
+* @def LVHF_DENS_GAMMA_E_HIGH_HB_DEFAULT
+* Default of DENS_gamma_e_high_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_HIGH_HB_DEFAULT (512)
+/**
+* @def LVHF_DENS_GAMMA_E_HIGH_HB_MIN
+* MinValue of DENS_gamma_e_high_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_HIGH_HB_MIN (0)
+/**
+* @def LVHF_DENS_GAMMA_E_HIGH_HB_MAX
+* MaxValue of DENS_gamma_e_high_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_HIGH_HB_MAX (32767)
+
+/**
+* @def LVHF_DENS_GAMMA_E_DT_HB_DEFAULT
+* Default of DENS_gamma_e_dt_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_DT_HB_DEFAULT (256)
+/**
+* @def LVHF_DENS_GAMMA_E_DT_HB_MIN
+* MinValue of DENS_gamma_e_dt_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_DT_HB_MIN (0)
+/**
+* @def LVHF_DENS_GAMMA_E_DT_HB_MAX
+* MaxValue of DENS_gamma_e_dt_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_DT_HB_MAX (32767)
+
+/**
+* @def LVHF_DENS_GAMMA_E_LOW_HB_DEFAULT
+* Default of DENS_gamma_e_low_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_LOW_HB_DEFAULT (256)
+/**
+* @def LVHF_DENS_GAMMA_E_LOW_HB_MIN
+* MinValue of DENS_gamma_e_low_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_LOW_HB_MIN (0)
+/**
+* @def LVHF_DENS_GAMMA_E_LOW_HB_MAX
+* MaxValue of DENS_gamma_e_low_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_LOW_HB_MAX (32767)
+
+/**
+* @def LVHF_DENS_NL_ATTEN_HB_DEFAULT
+* Default of DENS_NL_atten_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_NL_ATTEN_HB_DEFAULT (0)
+/**
+* @def LVHF_DENS_NL_ATTEN_HB_MIN
+* MinValue of DENS_NL_atten_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_NL_ATTEN_HB_MIN (0)
+/**
+* @def LVHF_DENS_NL_ATTEN_HB_MAX
+* MaxValue of DENS_NL_atten_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_NL_ATTEN_HB_MAX (2048)
+
+/**
+* @def LVHF_DENS_GAMMA_E_ALPHA_DEFAULT
+* Default of DENS_gamma_e_alpha
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_ALPHA_DEFAULT (24000)
+/**
+* @def LVHF_DENS_GAMMA_E_ALPHA_MIN
+* MinValue of DENS_gamma_e_alpha
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_ALPHA_MIN (0)
+/**
+* @def LVHF_DENS_GAMMA_E_ALPHA_MAX
+* MaxValue of DENS_gamma_e_alpha
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_ALPHA_MAX (32767)
+
+/**
+* @def LVHF_DENS_GAMMA_N_DEFAULT
+* Default of DENS_gamma_n
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_N_DEFAULT (280)
+/**
+* @def LVHF_DENS_GAMMA_N_MIN
+* MinValue of DENS_gamma_n
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_N_MIN (0)
+/**
+* @def LVHF_DENS_GAMMA_N_MAX
+* MaxValue of DENS_gamma_n
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_N_MAX (32767)
+
+/**
+* @def LVHF_DENS_SPDET_NEAR_DEFAULT
+* Default of DENS_spdet_near
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_SPDET_NEAR_DEFAULT (512)
+/**
+* @def LVHF_DENS_SPDET_NEAR_MIN
+* MinValue of DENS_spdet_near
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_SPDET_NEAR_MIN (0)
+/**
+* @def LVHF_DENS_SPDET_NEAR_MAX
+* MaxValue of DENS_spdet_near
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_SPDET_NEAR_MAX (32767)
+
+/**
+* @def LVHF_DENS_SPDET_ACT_DEFAULT
+* Default of DENS_spdet_act
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_SPDET_ACT_DEFAULT (768)
+/**
+* @def LVHF_DENS_SPDET_ACT_MIN
+* MinValue of DENS_spdet_act
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_SPDET_ACT_MIN (0)
+/**
+* @def LVHF_DENS_SPDET_ACT_MAX
+* MaxValue of DENS_spdet_act
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_SPDET_ACT_MAX (32767)
+
+/**
+* @def LVHF_DENS_LIMIT_NS_DEFAULT
+* Default of DENS_limit_ns
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_LIMIT_NS_DEFAULT (10361)
+/**
+* @def LVHF_DENS_LIMIT_NS_MIN
+* MinValue of DENS_limit_ns
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_LIMIT_NS_MIN (0)
+/**
+* @def LVHF_DENS_LIMIT_NS_MAX
+* MaxValue of DENS_limit_ns
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_LIMIT_NS_MAX (32767)
+
+/**
+* @def LVHF_DENS_CNI_GAIN_DEFAULT
+* Default of DENS_CNI_Gain
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_CNI_GAIN_DEFAULT (16384)
+/**
+* @def LVHF_DENS_CNI_GAIN_MIN
+* MinValue of DENS_CNI_Gain
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_CNI_GAIN_MIN (0)
+/**
+* @def LVHF_DENS_CNI_GAIN_MAX
+* MaxValue of DENS_CNI_Gain
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_CNI_GAIN_MAX (32767)
+
+/**
+* @def LVHF_DENS_NFE_BLOCKSIZE_DEFAULT
+* Default of DENS_NFE_blocksize
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_NFE_BLOCKSIZE_DEFAULT (150)
+/**
+* @def LVHF_DENS_NFE_BLOCKSIZE_MIN
+* MinValue of DENS_NFE_blocksize
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_NFE_BLOCKSIZE_MIN (0)
+/**
+* @def LVHF_DENS_NFE_BLOCKSIZE_MAX
+* MaxValue of DENS_NFE_blocksize
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_NFE_BLOCKSIZE_MAX (32767)
+
+/**
+* @def LVHF_SPDET_FAR_DEFAULT
+* Default of SPDET_far
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_SPDET_FAR_DEFAULT (16384)
+/**
+* @def LVHF_SPDET_FAR_MIN
+* MinValue of SPDET_far
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_SPDET_FAR_MIN (0)
+/**
+* @def LVHF_SPDET_FAR_MAX
+* MaxValue of SPDET_far
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_SPDET_FAR_MAX (32767)
+
+/**
+* @def LVHF_SPDET_MIC_DEFAULT
+* Default of SPDET_mic
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_SPDET_MIC_DEFAULT (16384)
+/**
+* @def LVHF_SPDET_MIC_MIN
+* MinValue of SPDET_mic
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_SPDET_MIC_MIN (0)
+/**
+* @def LVHF_SPDET_MIC_MAX
+* MaxValue of SPDET_mic
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_SPDET_MIC_MAX (32767)
+
+/**
+* @def LVHF_SPDET_X_CLIP_DEFAULT
+* Default of SPDET_x_clip
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_SPDET_X_CLIP_DEFAULT (0)
+/**
+* @def LVHF_SPDET_X_CLIP_MIN
+* MinValue of SPDET_x_clip
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_SPDET_X_CLIP_MIN (0)
+/**
+* @def LVHF_SPDET_X_CLIP_MAX
+* MaxValue of SPDET_x_clip
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_SPDET_X_CLIP_MAX (32767)
+
+/**
+* @def LVHF_PCD_THRESHOLD_DEFAULT
+* Default of PCD_threshold
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_THRESHOLD_DEFAULT (20000)
+/**
+* @def LVHF_PCD_THRESHOLD_MIN
+* MinValue of PCD_threshold
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_THRESHOLD_MIN (0)
+/**
+* @def LVHF_PCD_THRESHOLD_MAX
+* MaxValue of PCD_threshold
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_THRESHOLD_MAX (32767)
+
+/**
+* @def LVHF_PCD_TAPS_DEFAULT
+* Default of PCD_taps
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_TAPS_DEFAULT (16)
+/**
+* @def LVHF_PCD_TAPS_MIN
+* MinValue of PCD_taps
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_TAPS_MIN (16)
+/**
+* @def LVHF_PCD_TAPS_MAX
+* MaxValue of PCD_taps
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_TAPS_MAX (64)
+
+/**
+* @def LVHF_PCD_ERL_DEFAULT
+* Default of PCD_erl
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_ERL_DEFAULT (64)
+/**
+* @def LVHF_PCD_ERL_MIN
+* MinValue of PCD_erl
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_ERL_MIN (64)
+/**
+* @def LVHF_PCD_ERL_MAX
+* MaxValue of PCD_erl
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_ERL_MAX (32767)
+
+/**
+* @def LVHF_PCD_MINIMUM_ERL_DEFAULT
+* Default of PCD_minimum_erl
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_MINIMUM_ERL_DEFAULT (64)
+/**
+* @def LVHF_PCD_MINIMUM_ERL_MIN
+* MinValue of PCD_minimum_erl
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_MINIMUM_ERL_MIN (64)
+/**
+* @def LVHF_PCD_MINIMUM_ERL_MAX
+* MaxValue of PCD_minimum_erl
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_MINIMUM_ERL_MAX (32767)
+
+/**
+* @def LVHF_PCD_ERL_STEP_DEFAULT
+* Default of PCD_erl_step
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_ERL_STEP_DEFAULT (16800)
+/**
+* @def LVHF_PCD_ERL_STEP_MIN
+* MinValue of PCD_erl_step
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_ERL_STEP_MIN (16384)
+/**
+* @def LVHF_PCD_ERL_STEP_MAX
+* MaxValue of PCD_erl_step
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_ERL_STEP_MAX (32767)
+
+/**
+* @def LVHF_PCD_GAMMA_E_RESCUE_DEFAULT
+* Default of PCD_gamma_e_rescue
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_GAMMA_E_RESCUE_DEFAULT (5000)
+/**
+* @def LVHF_PCD_GAMMA_E_RESCUE_MIN
+* MinValue of PCD_gamma_e_rescue
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_GAMMA_E_RESCUE_MIN (0)
+/**
+* @def LVHF_PCD_GAMMA_E_RESCUE_MAX
+* MaxValue of PCD_gamma_e_rescue
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_GAMMA_E_RESCUE_MAX (32767)
+
+/**
+* @def LVBD_BD_OPERATINGMODE_DEFAULT
+* Default of BD_OperatingMode
+* @see LVBD_ControlParams_st
+*/
+#define LVBD_BD_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVBD_BULKDELAY_DEFAULT
+* Default of BulkDelay
+* @see LVBD_ControlParams_st
+*/
+#define LVBD_BULKDELAY_DEFAULT (0)
+/**
+* @def LVBD_BULKDELAY_MIN
+* MinValue of BulkDelay
+* @see LVBD_ControlParams_st
+*/
+#define LVBD_BULKDELAY_MIN (0)
+/**
+* @def LVBD_BULKDELAY_MAX
+* MaxValue of BulkDelay
+* @see LVBD_ControlParams_st
+*/
+#define LVBD_BULKDELAY_MAX (6400)
+
+/**
+* @def LVBD_BD_GAIN_DEFAULT
+* Default of BD_Gain
+* @see LVBD_ControlParams_st
+*/
+#define LVBD_BD_GAIN_DEFAULT (8192)
+/**
+* @def LVBD_BD_GAIN_MIN
+* MinValue of BD_Gain
+* @see LVBD_ControlParams_st
+*/
+#define LVBD_BD_GAIN_MIN (0)
+/**
+* @def LVBD_BD_GAIN_MAX
+* MaxValue of BD_Gain
+* @see LVBD_ControlParams_st
+*/
+#define LVBD_BD_GAIN_MAX (32767)
+
+/**
+* @def LVVE_TX_OPERATINGMODE_DEFAULT
+* Default of OperatingMode
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_OPERATINGMODE_DEFAULT (LVVE_TX_MODE_OFF)
+
+/**
+* @def LVVE_TX_MUTE_DEFAULT
+* Default of Mute
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_MUTE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVVE_TX_BD_OPERATINGMODE_DEFAULT
+* Default of BD_OperatingMode
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_BD_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVVE_TX_BULKDELAY_DEFAULT
+* Default of BulkDelay
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_BULKDELAY_DEFAULT (0)
+/**
+* @def LVVE_TX_BULKDELAY_MIN
+* MinValue of BulkDelay
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_BULKDELAY_MIN (0)
+/**
+* @def LVVE_TX_BULKDELAY_MAX
+* MaxValue of BulkDelay
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_BULKDELAY_MAX (6400)
+
+/**
+* @def LVVE_TX_BD_GAIN_DEFAULT
+* Default of BD_Gain
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_BD_GAIN_DEFAULT (8192)
+/**
+* @def LVVE_TX_BD_GAIN_MIN
+* MinValue of BD_Gain
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_BD_GAIN_MIN (0)
+/**
+* @def LVVE_TX_BD_GAIN_MAX
+* MaxValue of BD_Gain
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_BD_GAIN_MAX (32767)
+
+/**
+* @def LVVE_TX_VOL_OPERATINGMODE_DEFAULT
+* Default of VOL_OperatingMode
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_VOL_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVVE_TX_VOL_GAIN_DEFAULT
+* Default of VOL_Gain
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_VOL_GAIN_DEFAULT (0)
+/**
+* @def LVVE_TX_VOL_GAIN_MIN
+* MinValue of VOL_Gain
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_VOL_GAIN_MIN (-96)
+/**
+* @def LVVE_TX_VOL_GAIN_MAX
+* MaxValue of VOL_Gain
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_VOL_GAIN_MAX (24)
+
+/**
+* @def LVVE_TX_HPF_OPERATINGMODE_DEFAULT
+* Default of HPF_OperatingMode
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_HPF_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVVE_TX_MIC_HPF_CORNERFREQ_DEFAULT
+* Default of MIC_HPF_CornerFreq
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_MIC_HPF_CORNERFREQ_DEFAULT (50)
+/**
+* @def LVVE_TX_MIC_HPF_CORNERFREQ_MIN
+* MinValue of MIC_HPF_CornerFreq
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_MIC_HPF_CORNERFREQ_MIN (50)
+/**
+* @def LVVE_TX_MIC_HPF_CORNERFREQ_MAX
+* MaxValue of MIC_HPF_CornerFreq
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_MIC_HPF_CORNERFREQ_MAX (1500)
+
+
+
+
+/**
+* @def LVVE_TX_EQ_OPERATINGMODE_DEFAULT
+* Default of EQ_OperatingMode
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_EQ_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+//adb by xuxinqiang 20150519
+#define LVVE_MAX_EQ_LENGTH_NB 32 /* Maximum equaliser length for narrowband configuration */
+#define LVVE_MAX_EQ_LENGTH_WB 64 /* Maximum equaliser length for wideband configuration */
+
+
+/**
+* @def LVVC_GAIN_DEFAULT
+* Default of Gain
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_GAIN_DEFAULT (0)
+/**
+* @def LVVC_GAIN_MIN
+* MinValue of Gain
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_GAIN_MIN (0)
+/**
+* @def LVVC_GAIN_MAX
+* MaxValue of Gain
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_GAIN_MAX (32767)
+
+/**
+* @def LVVC_SPDETECTED_DEFAULT
+* Default of SpDetected
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_SPDETECTED_DEFAULT (0)
+/**
+* @def LVVC_SPDETECTED_MIN
+* MinValue of SpDetected
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_SPDETECTED_MIN (0)
+/**
+* @def LVVC_SPDETECTED_MAX
+* MaxValue of SpDetected
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_SPDETECTED_MAX (1)
+
+/**
+* @def LVWM_AVL_GAIN_DEFAULT
+* Default of AVL_Gain
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_GAIN_DEFAULT (0)
+/**
+* @def LVWM_AVL_GAIN_MIN
+* MinValue of AVL_Gain
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_GAIN_MIN (0)
+/**
+* @def LVWM_AVL_GAIN_MAX
+* MaxValue of AVL_Gain
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_GAIN_MAX (32767)
+
+
+
+/**
+* @def LVVE_RX_DUMMY_DEFAULT
+* Default of dummy
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_DUMMY_DEFAULT (0)
+/**
+* @def LVVE_RX_DUMMY_MIN
+* MinValue of dummy
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_DUMMY_MIN (-128)
+/**
+* @def LVVE_RX_DUMMY_MAX
+* MaxValue of dummy
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_DUMMY_MAX (127)
+
+/**
+* @def LVNV_STATUS_DEFAULT
+* Default of status
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_STATUS_DEFAULT (0)
+
+/**
+* @def LVNV_DUMMY_DEFAULT
+* Default of Dummy
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DUMMY_DEFAULT (0)
+/**
+* @def LVNV_DUMMY_MIN
+* MinValue of Dummy
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DUMMY_MIN (0)
+/**
+* @def LVNV_DUMMY_MAX
+* MaxValue of Dummy
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DUMMY_MAX (0)
+
+/**
+* @def LVNV_PNLMS0_LB_COEFFS_DEFAULT
+* Default of pNLMS0_LB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PNLMS0_LB_COEFFS_DEFAULT (0)
+/**
+* @def LVNV_PNLMS0_LB_COEFFS_MIN
+* MinValue of pNLMS0_LB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PNLMS0_LB_COEFFS_MIN (-2147483648)
+/**
+* @def LVNV_PNLMS0_LB_COEFFS_MAX
+* MaxValue of pNLMS0_LB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PNLMS0_LB_COEFFS_MAX (2147483647)
+
+/**
+* @def LVNV_PNLMS0_HB_COEFFS_DEFAULT
+* Default of pNLMS0_HB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PNLMS0_HB_COEFFS_DEFAULT (0)
+/**
+* @def LVNV_PNLMS0_HB_COEFFS_MIN
+* MinValue of pNLMS0_HB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PNLMS0_HB_COEFFS_MIN (-2147483648)
+/**
+* @def LVNV_PNLMS0_HB_COEFFS_MAX
+* MaxValue of pNLMS0_HB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PNLMS0_HB_COEFFS_MAX (2147483647)
+
+/**
+* @def LVNV_PNLMS1_LB_COEFFS_DEFAULT
+* Default of pNLMS1_LB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PNLMS1_LB_COEFFS_DEFAULT (0)
+/**
+* @def LVNV_PNLMS1_LB_COEFFS_MIN
+* MinValue of pNLMS1_LB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PNLMS1_LB_COEFFS_MIN (-2147483648)
+/**
+* @def LVNV_PNLMS1_LB_COEFFS_MAX
+* MaxValue of pNLMS1_LB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PNLMS1_LB_COEFFS_MAX (2147483647)
+
+/**
+* @def LVNV_PNLMS1_HB_COEFFS_DEFAULT
+* Default of pNLMS1_HB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PNLMS1_HB_COEFFS_DEFAULT (0)
+/**
+* @def LVNV_PNLMS1_HB_COEFFS_MIN
+* MinValue of pNLMS1_HB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PNLMS1_HB_COEFFS_MIN (-2147483648)
+/**
+* @def LVNV_PNLMS1_HB_COEFFS_MAX
+* MaxValue of pNLMS1_HB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PNLMS1_HB_COEFFS_MAX (2147483647)
+
+/**
+* @def LVNV_PFSB_COEFFS_DEFAULT
+* Default of pFSB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PFSB_COEFFS_DEFAULT (0)
+/**
+* @def LVNV_PFSB_COEFFS_MIN
+* MinValue of pFSB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PFSB_COEFFS_MIN (-2147483648)
+/**
+* @def LVNV_PFSB_COEFFS_MAX
+* MaxValue of pFSB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PFSB_COEFFS_MAX (2147483647)
+
+/**
+* @def LVNV_PGSC_COEFFS_DEFAULT
+* Default of pGSC_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PGSC_COEFFS_DEFAULT (0)
+/**
+* @def LVNV_PGSC_COEFFS_MIN
+* MinValue of pGSC_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PGSC_COEFFS_MIN (-2147483648)
+/**
+* @def LVNV_PGSC_COEFFS_MAX
+* MaxValue of pGSC_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PGSC_COEFFS_MAX (2147483647)
+
+/**
+* @def LVNV_PMICPOWSP_DEFAULT
+* Default of pMicPowSp
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PMICPOWSP_DEFAULT (0)
+/**
+* @def LVNV_PMICPOWSP_MIN
+* MinValue of pMicPowSp
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PMICPOWSP_MIN (0)
+/**
+* @def LVNV_PMICPOWSP_MAX
+* MaxValue of pMicPowSp
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PMICPOWSP_MAX (1)
+
+/**
+* @def LVNV_PCALFACTOR_DEFAULT
+* Default of pCalFactor
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PCALFACTOR_DEFAULT (0)
+/**
+* @def LVNV_PCALFACTOR_MIN
+* MinValue of pCalFactor
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PCALFACTOR_MIN (0)
+/**
+* @def LVNV_PCALFACTOR_MAX
+* MaxValue of pCalFactor
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PCALFACTOR_MAX (32767)
+
+/**
+* @def LVNV_PCALREADY_DEFAULT
+* Default of pCalReady
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PCALREADY_DEFAULT (0)
+/**
+* @def LVNV_PCALREADY_MIN
+* MinValue of pCalReady
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PCALREADY_MIN (0)
+/**
+* @def LVNV_PCALREADY_MAX
+* MaxValue of pCalReady
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PCALREADY_MAX (2)
+
+/**
+* @def LVNV_PBROADSIDE_INTERCC_DEFAULT
+* Default of pBroadside_interCC
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PBROADSIDE_INTERCC_DEFAULT (0)
+/**
+* @def LVNV_PBROADSIDE_INTERCC_MIN
+* MinValue of pBroadside_interCC
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PBROADSIDE_INTERCC_MIN (0)
+/**
+* @def LVNV_PBROADSIDE_INTERCC_MAX
+* MaxValue of pBroadside_interCC
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PBROADSIDE_INTERCC_MAX (32767)
+
+/**
+* @def LVHF_GAMMAE_DEFAULT
+* Default of gammae
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_GAMMAE_DEFAULT (0)
+/**
+* @def LVHF_GAMMAE_MIN
+* MinValue of gammae
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_GAMMAE_MIN (0)
+/**
+* @def LVHF_GAMMAE_MAX
+* MaxValue of gammae
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_GAMMAE_MAX (32767)
+
+/**
+* @def LVHF_STATUS_DEFAULT
+* Default of status
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_STATUS_DEFAULT (0)
+
+/**
+* @def LVHF_PNLMS_LB_COEFS_DEFAULT
+* Default of pNLMS_LB_Coefs
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PNLMS_LB_COEFS_DEFAULT (0)
+/**
+* @def LVHF_PNLMS_LB_COEFS_MIN
+* MinValue of pNLMS_LB_Coefs
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PNLMS_LB_COEFS_MIN (-2147483648)
+/**
+* @def LVHF_PNLMS_LB_COEFS_MAX
+* MaxValue of pNLMS_LB_Coefs
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PNLMS_LB_COEFS_MAX (2147483647)
+
+/**
+* @def LVHF_PNLMS_HB_COEFS_DEFAULT
+* Default of pNLMS_HB_Coefs
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PNLMS_HB_COEFS_DEFAULT (0)
+/**
+* @def LVHF_PNLMS_HB_COEFS_MIN
+* MinValue of pNLMS_HB_Coefs
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PNLMS_HB_COEFS_MIN (-2147483648)
+/**
+* @def LVHF_PNLMS_HB_COEFS_MAX
+* MaxValue of pNLMS_HB_Coefs
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PNLMS_HB_COEFS_MAX (2147483647)
+
+/**
+* @def LVHF_PPCD_COEFS_DEFAULT
+* Default of pPCD_Coefs
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PPCD_COEFS_DEFAULT (0)
+/**
+* @def LVHF_PPCD_COEFS_MIN
+* MinValue of pPCD_Coefs
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PPCD_COEFS_MIN (-2147483648)
+/**
+* @def LVHF_PPCD_COEFS_MAX
+* MaxValue of pPCD_Coefs
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PPCD_COEFS_MAX (2147483647)
+
+
+
+
+/**
+* @def LVVE_TX_DUMMY_DEFAULT
+* Default of dummy
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_DUMMY_DEFAULT (0)
+/**
+* @def LVVE_TX_DUMMY_MIN
+* MinValue of dummy
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_DUMMY_MIN (-128)
+/**
+* @def LVVE_TX_DUMMY_MAX
+* MaxValue of dummy
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_DUMMY_MAX (127)
+
+/**
+* Enum type for LVVIDHeader_MessageID_en
+*/
+typedef enum
+{
+ LVVE_RX_PRESET = 0, ///< VID header Message ID for LVVE_Rx presets
+ LVVE_TX_PRESET = 1, ///< VID header Message ID for LVVE_Tx Presets
+ LVVIDHEADER_MESSAGEID_EN_DUMMY = LVM_MAXENUM
+} LVVIDHeader_MessageID_en;
+
+/**
+* Enum type for LVVIDHeader_ReturnStatus_en
+*/
+typedef enum
+{
+ LVVIDHEADER_NULLADDRESS = 0, ///< LVVIDHeader module returns NULL address error
+ LVVIDHEADER_SUCCESS = 1, ///< LVVIDHeader module returns with success
+ LVVIDHEADER_RETURNSTATUS_EN_DUMMY = LVM_MAXENUM
+} LVVIDHeader_ReturnStatus_en;
+
+/**
+* Enum type for LVVE_Rx_Mode_en
+*/
+typedef enum
+{
+ LVVE_RX_MODE_OFF = 0, ///< Rx voice engine is turned off
+ LVVE_RX_MODE_ON = 1, ///< Rx voice in will run
+ LVVE_RX_MODE_BYPASS = 2, ///< Rx voice engine will run but output will be ignored
+ LVVE_RX_MODE_EN_DUMMY = LVM_MAXENUM
+} LVVE_Rx_Mode_en;
+
+/**
+* Enum type for LVVE_Tx_Mode_en
+*/
+typedef enum
+{
+ LVVE_TX_MODE_OFF = 0, ///< Tx in LVVE engine is disabled
+ LVVE_TX_MODE_ON = 1, ///< TX in LVVE is enabled
+ LVVE_TX_MODE_BYPASS_MIC0 = 2, ///< TX in LVVE engine will run but output will be Mic0 signal
+ LVVE_TX_MODE_BYPASS_MIC1 = 3, ///< Tx in LVVE engine will run but output will be Mic1 signal
+ LVVE_TX_MODE_BYPASS_REF = 4, ///< Tx in LVVE engine will run but output will be Ref signal
+ LVVE_TX_MODE_EN_DUMMY = LVM_MAXENUM
+} LVVE_Tx_Mode_en;
+
+/****************************************************************************************/
+/* */
+/* Structures */
+/* */
+/****************************************************************************************/
+/**
+* The status parameters are used to retrieve the status of the module.
+* @see LVVC_GetStatusParameters
+*/
+typedef struct
+{
+ /**
+ The internal gain setting used by VoiceClarity.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>6.9</td>
+ <td>@ref LVVC_GAIN_MIN (0)</td>
+ <td>@ref LVVC_GAIN_DEFAULT (0)</td>
+ <td>@ref LVVC_GAIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 Gain; ///< Gain
+
+ /**
+ 0 (no detection) or 1 (detection).
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVVC_SPDETECTED_MIN (0)</td>
+ <td>@ref LVVC_SPDETECTED_DEFAULT (0)</td>
+ <td>@ref LVVC_SPDETECTED_MAX (1)</td>
+ </tr>
+ </table> */
+ LVM_INT16 SpDetected; ///< The speech detector flag.
+
+} LVVC_StatusParams_st;
+
+/**
+* The status parameters are used to retrieve the status of the module.
+* @see LVWM_GetStatusParameters
+*/
+typedef struct
+{
+ /**
+ The internal gain setting used by WhisperMode in dB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>6.9</td>
+ <td>@ref LVWM_AVL_GAIN_MIN (0)</td>
+ <td>@ref LVWM_AVL_GAIN_DEFAULT (0)</td>
+ <td>@ref LVWM_AVL_GAIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_Gain; ///< gain (dB)
+
+} LVWM_StatusParams_st;
+
+/**
+* The status parameters are used to retrieve the status of the module.
+* @see LVVE_Rx_GetStatusParameters
+*/
+typedef struct
+{
+ /**
+ Voice Clarity Status Parameter Structure.
+ */
+ LVVC_StatusParams_st VC_StatusParams; ///< Voice Clarity Status Parameter Structure
+
+ /**
+ Whisper Mode Status Parameter Structure.
+ */
+ LVWM_StatusParams_st WM_StatusParams; ///< Whisper Mode Status Parameter Structure
+
+ /**
+ Dummy Param.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>1.7</td>
+ <td>@ref LVVE_RX_DUMMY_MIN (-128)</td>
+ <td>@ref LVVE_RX_DUMMY_DEFAULT (0)</td>
+ <td>@ref LVVE_RX_DUMMY_MAX (127)</td>
+ </tr>
+ </table> */
+ LVM_INT8 dummy; ///< Dummy Param
+
+} LVVE_Rx_StatusParams_st;
+
+/**
+* The status parameters are used to retrieve the status of the module.
+* @see LVNV_GetStatusParameters
+*/
+typedef struct
+{
+ /**
+ Bit mask describing the current state of LVNV, used for debugging.
+ */
+ LVNV_StatusWord_bm status; ///< current state
+
+ /**
+ To keep correct memory alignment. To be removed when LVNV_StatusWord_bm has
+ become int32 as it should.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_DUMMY_MIN (0)</td>
+ <td>@ref LVNV_DUMMY_DEFAULT (0)</td>
+ <td>@ref LVNV_DUMMY_MAX (0)</td>
+ </tr>
+ </table> */
+ LVM_INT16 Dummy; ///< Dummy for memory alignment.
+
+ /**
+ Pointer to the coefficients of the primary low-band (0-4kHz) NLMS filter
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>1.30</td>
+ <td>@ref LVNV_PNLMS0_LB_COEFFS_MIN (-2147483648)</td>
+ <td>@ref LVNV_PNLMS0_LB_COEFFS_DEFAULT (0)</td>
+ <td>@ref LVNV_PNLMS0_LB_COEFFS_MAX (2147483647)</td>
+ </tr>
+ </table> */
+ LVM_INT32* pNLMS0_LB_Coeffs; ///< NLMS0 lowband filter coefficients
+
+ /**
+ Pointer to the coefficients of the primary high-band (4-8kHz) NLMS filter
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>1.30</td>
+ <td>@ref LVNV_PNLMS0_HB_COEFFS_MIN (-2147483648)</td>
+ <td>@ref LVNV_PNLMS0_HB_COEFFS_DEFAULT (0)</td>
+ <td>@ref LVNV_PNLMS0_HB_COEFFS_MAX (2147483647)</td>
+ </tr>
+ </table> */
+ LVM_INT32* pNLMS0_HB_Coeffs; ///< NLMS0 highband filter coefficients
+
+ /**
+ Pointer to the coefficients of the secondary low-band (0-4kHz) NLMS filter
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>1.30</td>
+ <td>@ref LVNV_PNLMS1_LB_COEFFS_MIN (-2147483648)</td>
+ <td>@ref LVNV_PNLMS1_LB_COEFFS_DEFAULT (0)</td>
+ <td>@ref LVNV_PNLMS1_LB_COEFFS_MAX (2147483647)</td>
+ </tr>
+ </table> */
+ LVM_INT32* pNLMS1_LB_Coeffs; ///< NLMS1 lowband filter coefficients
+
+ /**
+ Pointer to the coefficients of the secondary high-band (4-8kHz) NLMS filter
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>1.30</td>
+ <td>@ref LVNV_PNLMS1_HB_COEFFS_MIN (-2147483648)</td>
+ <td>@ref LVNV_PNLMS1_HB_COEFFS_DEFAULT (0)</td>
+ <td>@ref LVNV_PNLMS1_HB_COEFFS_MAX (2147483647)</td>
+ </tr>
+ </table> */
+ LVM_INT32* pNLMS1_HB_Coeffs; ///< NLMS1 highband filter coefficients
+
+ /**
+ Pointer to the coefficients of the FSB0 and FSB1 filters
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.15</td>
+ <td>@ref LVNV_PFSB_COEFFS_MIN (-2147483648)</td>
+ <td>@ref LVNV_PFSB_COEFFS_DEFAULT (0)</td>
+ <td>@ref LVNV_PFSB_COEFFS_MAX (2147483647)</td>
+ </tr>
+ </table> */
+ LVM_INT32* pFSB_Coeffs; ///< FSB0 and FSB1 coefficients
+
+ /**
+ Pointer to the coefficients of the GSC filter
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>1.30</td>
+ <td>@ref LVNV_PGSC_COEFFS_MIN (-2147483648)</td>
+ <td>@ref LVNV_PGSC_COEFFS_DEFAULT (0)</td>
+ <td>@ref LVNV_PGSC_COEFFS_MAX (2147483647)</td>
+ </tr>
+ </table> */
+ LVM_INT32* pGSC_Coeffs; ///< GSC coefficients
+
+ /**
+ Pointer to the MicPowSp detection flag
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVNV_PMICPOWSP_MIN (0)</td>
+ <td>@ref LVNV_PMICPOWSP_DEFAULT (0)</td>
+ <td>@ref LVNV_PMICPOWSP_MAX (1)</td>
+ </tr>
+ </table> */
+ LVM_INT16* pMicPowSp; ///< MicPow Speech detection flag
+
+ /**
+ Pointer to the variable of Calibration factor
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>2.13</td>
+ <td>@ref LVNV_PCALFACTOR_MIN (0)</td>
+ <td>@ref LVNV_PCALFACTOR_DEFAULT (0)</td>
+ <td>@ref LVNV_PCALFACTOR_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16* pCalFactor; ///< Calibration factor value
+
+ /**
+ Pointer to the variable of Calibration ready
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVNV_PCALREADY_MIN (0)</td>
+ <td>@ref LVNV_PCALREADY_DEFAULT (0)</td>
+ <td>@ref LVNV_PCALREADY_MAX (2)</td>
+ </tr>
+ </table> */
+ LVM_INT16* pCalReady; ///< Calibration ready value
+
+ /**
+ Pointer to the inter-channel correlation value used in broadside detection.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_PBROADSIDE_INTERCC_MIN (0)</td>
+ <td>@ref LVNV_PBROADSIDE_INTERCC_DEFAULT (0)</td>
+ <td>@ref LVNV_PBROADSIDE_INTERCC_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16* pBroadside_interCC; ///< Broadside correlation
+
+} LVNV_StatusParams_st;
+
+/**
+* The status parameters are used to retrieve the status of the module.
+* @see LVHF_GetStatusParameters
+*/
+typedef struct
+{
+ /**
+ Current value of the echo subtraction factor.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>5.10</td>
+ <td>@ref LVHF_GAMMAE_MIN (0)</td>
+ <td>@ref LVHF_GAMMAE_DEFAULT (0)</td>
+ <td>@ref LVHF_GAMMAE_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 gammae; ///< multiplicator factor of echo suppression
+
+ /**
+ Bit mask describing the current state of LVHF, used for debugging.
+ */
+ LVHF_StatusWord_bm status; ///< current state
+
+ /**
+ Pointer to the coefficients of the LB NLMS.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>1.30</td>
+ <td>@ref LVHF_PNLMS_LB_COEFS_MIN (-2147483648)</td>
+ <td>@ref LVHF_PNLMS_LB_COEFS_DEFAULT (0)</td>
+ <td>@ref LVHF_PNLMS_LB_COEFS_MAX (2147483647)</td>
+ </tr>
+ </table> */
+ LVM_INT32* pNLMS_LB_Coefs; ///< NLMS lowband filter coefficients
+
+ /**
+ Pointer to the coefficients of the HB NLMS.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>1.30</td>
+ <td>@ref LVHF_PNLMS_HB_COEFS_MIN (-2147483648)</td>
+ <td>@ref LVHF_PNLMS_HB_COEFS_DEFAULT (0)</td>
+ <td>@ref LVHF_PNLMS_HB_COEFS_MAX (2147483647)</td>
+ </tr>
+ </table> */
+ LVM_INT32* pNLMS_HB_Coefs; ///< NLMS highband filter coefficients
+
+ /**
+ Pointer to the coefficients of the PCD NLMS.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>1.30</td>
+ <td>@ref LVHF_PPCD_COEFS_MIN (-2147483648)</td>
+ <td>@ref LVHF_PPCD_COEFS_DEFAULT (0)</td>
+ <td>@ref LVHF_PPCD_COEFS_MAX (2147483647)</td>
+ </tr>
+ </table> */
+ LVM_INT32* pPCD_Coefs; ///< PCD NLMS filter coefficients
+
+} LVHF_StatusParams_st;
+
+/**
+* The status parameters are used to retrieve the status of the module.
+* @see LVVE_Tx_GetStatusParameters
+*/
+typedef struct
+{
+ /**
+ HandsFree Status Parameter Structure.
+ */
+ LVHF_StatusParams_st HF_StatusParams; ///< HandsFree Status Parameters Structure
+
+ /**
+ NoiseVoid Status Parameter Structure.
+ */
+ LVNV_StatusParams_st NV_StatusParams; ///< NoiseVoid Status Parameters Structrue
+
+ /**
+ WhisperMode Status Parameter Structure.
+ */
+ LVWM_StatusParams_st WM_StatusParams; ///< WhisperMode Status Parameter Structrue
+
+ /**
+ Dummy Param.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>1.7</td>
+ <td>@ref LVVE_TX_DUMMY_MIN (-128)</td>
+ <td>@ref LVVE_TX_DUMMY_DEFAULT (0)</td>
+ <td>@ref LVVE_TX_DUMMY_MAX (127)</td>
+ </tr>
+ </table> */
+ LVM_INT8 dummy; ///< Dummy Param
+
+} LVVE_Tx_StatusParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVVIDHeader_SetControlParameters function but they
+* will not take effect until the next call to the LVVIDHeader_Process function.
+*
+* @see LVVIDHeader_SetControlParameters
+* @see LVVIDHeader_Process
+*/
+typedef struct
+{
+ /**
+ This number always increments by one when there is change in the header format.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>8.0</td>
+ <td>@ref LVVIDHEADER_HEADERVERSION_MIN (0)</td>
+ <td>@ref LVVIDHEADER_HEADERVERSION_DEFAULT (3)</td>
+ <td>@ref LVVIDHEADER_HEADERVERSION_MAX (255)</td>
+ </tr>
+ </table> */
+ LVM_UINT8 HeaderVersion; ///< Header Format Version
+
+ /**
+ Initially This variable holds value of the baseline version. The value is in
+ format of xxyyzzpp where xx is major number of the library, yy is minor number,
+ zz is second minor number and pp is patch number of the baseline.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>32.0</td>
+ <td>@ref LVVIDHEADER_BASELINEVERSION_MIN (1)</td>
+ <td>@ref LVVIDHEADER_BASELINEVERSION_DEFAULT (51906816)</td>
+ <td>@ref LVVIDHEADER_BASELINEVERSION_MAX (4294967295)</td>
+ </tr>
+ </table> */
+ LVM_UINT32 BaselineVersion; ///< This is LVVE tagged version name
+
+ /**
+ First LVVE_Rx algorithm mask which holds information of which LVVE_Rx
+ algorithms are present.
+ */
+ LVVIDHeader_LVVE_Rx_Mask1_bm LVVE_Rx_AlgoMask1; ///< This variable forms first part of LVVE_Rx algorithm mask
+
+ /**
+ Second LVVE_Rx algorithm mask which holds information of which LVVE_Rx
+ algorithms are present.
+ */
+ LVVIDHeader_LVVE_Rx_Mask2_bm LVVE_Rx_AlgoMask2; ///< This variable forms second part of LVVE_Rx algorithm mask
+
+ /**
+ First LVVE_Tx algorithm mask which holds information of which LVVE_Tx
+ algorithms are present.
+ */
+ LVVIDHeader_LVVE_Tx_Mask1_bm LVVE_Tx_AlgoMask1; ///< This variable forms first part of LVVE_Tx mask
+
+ /**
+ Second LVVE_Tx algorithm mask which holds information of which LVVE_Tx
+ algorithms are present.
+ */
+ LVVIDHeader_LVVE_Tx_Mask2_bm LVVE_Tx_AlgoMask2; ///< This variable forms second part of LVVE_Tx mask
+
+ /**
+ First LVVE configuration mask which holds information of which configurations
+ of LVVE_Tx and LVVE_Rx algorithm are present.
+ */
+ LVVIDHeader_Configurations_Mask1_bm LVVE_Config_AlgoMask1; ///< This variable forms first part of common LVVE_Tx and LVVE_Rx configuration mask
+
+ /**
+ Second LVVE configuration mask which holds information of which configurations
+ of LVVE_Tx and LVVE_Rx algorithm are present.
+ */
+ LVVIDHeader_Configurations_Mask2_bm LVVE_Config_AlgoMask2; ///< This variable forms second part of common LVVE_Tx and LVVE_Rx configuration mask
+
+ /**
+ Messge ID is used to identify stream
+ */
+ LVVIDHeader_MessageID_en MessageID; ///< This param holds message ID of the buffer
+
+ /**
+ This parameter specifies the sample rate information of the buffer.
+ */
+ LVM_Fs_en SampleRate; ///< Sample rate information of the buffer.
+
+ /**
+ This parameter specifies the volume index corresponding to the subsequent data.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>8.0</td>
+ <td>@ref LVVIDHEADER_VOLUMEINDEX_MIN (0)</td>
+ <td>@ref LVVIDHEADER_VOLUMEINDEX_DEFAULT (0)</td>
+ <td>@ref LVVIDHEADER_VOLUMEINDEX_MAX (255)</td>
+ </tr>
+ </table> */
+ LVM_UINT8 VolumeIndex; ///< Volume index corresponding to the subsequent data.
+
+ /**
+ This parameter specifies how many volumes are present in the binary file.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>8.0</td>
+ <td>@ref LVVIDHEADER_NUMVOLUMES_MIN (0)</td>
+ <td>@ref LVVIDHEADER_NUMVOLUMES_DEFAULT (1)</td>
+ <td>@ref LVVIDHEADER_NUMVOLUMES_MAX (255)</td>
+ </tr>
+ </table> */
+ LVM_UINT8 NumVolumes; ///< Number of volumes present in the binary file.
+
+} LVVIDHeader_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVVC_SetControlParameters function but they
+* will not take effect until the next call to the LVVC_Process function.
+*
+* @see LVVC_SetControlParameters
+* @see LVVC_Process
+*/
+typedef struct
+{
+ /**
+ Control the operating mode (ON/OFF) of the algorithm.
+ */
+ LVM_Mode_en OperatingMode; ///< Operating mode
+
+ /**
+ The mode word to enable/disable internal algorithm blocks of VoiceClarity.
+ */
+ LVVC_ModeWord_bm mode; ///< Mode word
+
+ /**
+ Maximum Gain applied to the signal.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>6.9</td>
+ <td>@ref LVVC_GAIN_LIN_MAX_MIN (512)</td>
+ <td>@ref LVVC_GAIN_LIN_MAX_DEFAULT (1286)</td>
+ <td>@ref LVVC_GAIN_LIN_MAX_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 Gain_Lin_Max; ///< Maximum Gain.
+
+ /**
+ The Noise_Sensitivity parameter sets how sensitive VoiceClarity will be to the
+ background noise level. The Noise_Sensitivity parameter allows adjusting the
+ sensitivity of those processing blocks to the nearend noise level. For high
+ values of the Noise_Sensitivity the effect of the mentioned processing blocks
+ will be big, even at low to moderate nearend noise levels. For low values of
+ the Noise_Sensitivity the effect of the processing blocks will be smaller, even
+ for high nearend noise levels.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVVC_NOISE_SENSITIVITY_MIN (-6709)</td>
+ <td>@ref LVVC_NOISE_SENSITIVITY_DEFAULT (20000)</td>
+ <td>@ref LVVC_NOISE_SENSITIVITY_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 Noise_Sensitivity; ///< Noise Sensitivity.
+
+ /**
+ The desired output level of the AGC. <br>
+ AVL_Target_level_lin = \f$32767*10^{Target_Level_dB/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVVC_AVL_TARGET_LEVEL_LIN_MIN (0)</td>
+ <td>@ref LVVC_AVL_TARGET_LEVEL_LIN_DEFAULT (16384)</td>
+ <td>@ref LVVC_AVL_TARGET_LEVEL_LIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_Target_level_lin; ///< The desired output level of the AGC.
+
+ /**
+ The maximal attenuation of the AGC. <br>
+ AVL_MinGainLin = \f$512*10^{MinGain_dB/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>6.9</td>
+ <td>@ref LVVC_AVL_MINGAINLIN_MIN (0)</td>
+ <td>@ref LVVC_AVL_MINGAINLIN_DEFAULT (256)</td>
+ <td>@ref LVVC_AVL_MINGAINLIN_MAX (512)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_MinGainLin; ///< The maximal attenuation of the AGC.
+
+ /**
+ The maximal gain of the AGC. <br>
+ AVL_MaxGainLin = \f$512*10^{MaxGain_dB/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>6.9</td>
+ <td>@ref LVVC_AVL_MAXGAINLIN_MIN (512)</td>
+ <td>@ref LVVC_AVL_MAXGAINLIN_DEFAULT (8192)</td>
+ <td>@ref LVVC_AVL_MAXGAINLIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_MaxGainLin; ///< The maximal gain of the AGC.
+
+ /**
+ The nominal gain of the AGC.<br>
+ AVL_NominalGain = \f$512*10^{NominalGain_dB/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>6.9</td>
+ <td>@ref LVVC_AVL_NOMINALGAIN_MIN (0)</td>
+ <td>@ref LVVC_AVL_NOMINALGAIN_DEFAULT (512)</td>
+ <td>@ref LVVC_AVL_NOMINALGAIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_NominalGain; ///< The nominal gain of the AGC.
+
+ /**
+ The gain of the AGC is smoothed across time. The time constant of the smoothing
+ depends on whether the gain is increasing or decreasing. When a sudden loud
+ signal is encountered (e.g. attack of speech), the attack time is used. When
+ the gain is increasing (e.g. long period of whispered speech), the release time
+ is used. <br>
+
+ AVL_Attack = \f$32767*\exp(-1/(100*AttackTimeSec))\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVVC_AVL_ATTACK_MIN (0)</td>
+ <td>@ref LVVC_AVL_ATTACK_DEFAULT (12055)</td>
+ <td>@ref LVVC_AVL_ATTACK_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_Attack; ///< The attack time of the AGC.
+
+ /**
+ The gain of the AGC is smoothed across time. The time constant of the smoothing
+ depends on whether the gain is increasing or decreasing. When a sudden loud
+ signal is encountered (e.g. attack of speech), the attack time is used. When
+ the gain is increasing (e.g. long period of whispered speech), the release time
+ is used. <br>
+
+ AVL_Release = \f$32767*\exp(-1/(100*ReleaseTimeSec))\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVVC_AVL_RELEASE_MIN (0)</td>
+ <td>@ref LVVC_AVL_RELEASE_DEFAULT (32604)</td>
+ <td>@ref LVVC_AVL_RELEASE_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_Release; ///< The release time of the AGC.
+
+ /**
+ The release time at maximum noise level.<br>
+
+ AVL_ReleaseMax = \f$32767*\exp(-1/(100*ReleaseMaxTimeSec))\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVVC_AVL_RELEASEMAX_MIN (0)</td>
+ <td>@ref LVVC_AVL_RELEASEMAX_DEFAULT (32441)</td>
+ <td>@ref LVVC_AVL_RELEASEMAX_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_ReleaseMax; ///< The release time at maximum noise level.
+
+ /**
+ AVL_Limit_MaxOutputLin = \f$32767*10^{TargetLimiterLeveldB/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVVC_AVL_LIMIT_MAXOUTPUTLIN_MIN (0)</td>
+ <td>@ref LVVC_AVL_LIMIT_MAXOUTPUTLIN_DEFAULT (23170)</td>
+ <td>@ref LVVC_AVL_LIMIT_MAXOUTPUTLIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_Limit_MaxOutputLin; ///< The level to which the signal will be limited.
+
+ /**
+ The higher the value of the threshold, the less speech detections will occur.
+ <br>
+ SpDetect_Threshold = \f$512 * [0,64]\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>6.9</td>
+ <td>@ref LVVC_SPDETECT_THRESHOLD_MIN (0)</td>
+ <td>@ref LVVC_SPDETECT_THRESHOLD_DEFAULT (1024)</td>
+ <td>@ref LVVC_SPDETECT_THRESHOLD_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 SpDetect_Threshold; ///< The threshold used in the speech detector of VoiceClarity.
+
+} LVVC_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVFENS_SetControlParameters function but they
+* will not take effect until the next call to the LVFENS_Process function.
+*
+* @see LVFENS_SetControlParameters
+* @see LVFENS_Process
+*/
+typedef struct
+{
+ /**
+ */
+ LVM_Mode_en OperatingMode; ///< Operating Mode
+
+ /**
+ The maximum amount of noise suppression. <br>
+ Unit: dB<br>
+ FENS_limit_ns = \f$32767*10^{-max noise reduction[dB]/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVFENS_FENS_LIMIT_NS_MIN (0)</td>
+ <td>@ref LVFENS_FENS_LIMIT_NS_DEFAULT (10976)</td>
+ <td>@ref LVFENS_FENS_LIMIT_NS_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 FENS_limit_NS; ///< FENS Noise Suppression Limit
+
+ /**
+ The mode word to control the internal operation of FENS.
+ */
+ LVFENS_ModeWord_bm Mode; ///< Mode word
+
+} LVFENS_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVWM_SetControlParameters function but they
+* will not take effect until the next call to the LVWM_Process function.
+*
+* @see LVWM_SetControlParameters
+* @see LVWM_Process
+*/
+typedef struct
+{
+ /**
+ Control the operating mode (ON/OFF) of the algorithm.
+ */
+ LVM_Mode_en OperatingMode; ///< Operating mode
+
+ /**
+ The mode word to enable/disable internal algorithm blocks of WhisperMode.
+ */
+ LVWM_ModeWord_bm mode; ///< Mode word
+
+ /**
+ The desired output level of the AGC. <br>
+ AVL_Target_level_lin = \f$32767*10^{TargetLeveldB/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVWM_AVL_TARGET_LEVEL_LIN_MIN (0)</td>
+ <td>@ref LVWM_AVL_TARGET_LEVEL_LIN_DEFAULT (16384)</td>
+ <td>@ref LVWM_AVL_TARGET_LEVEL_LIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_Target_level_lin; ///< The desired output level of the AGC.
+
+ /**
+ The maximal attenuation of the AGC. <br>
+ AVL_MinGainLin = \f$512*10^{MinGaindB/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>6.9</td>
+ <td>@ref LVWM_AVL_MINGAINLIN_MIN (0)</td>
+ <td>@ref LVWM_AVL_MINGAINLIN_DEFAULT (128)</td>
+ <td>@ref LVWM_AVL_MINGAINLIN_MAX (512)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_MinGainLin; ///< The maximal attenuation of the AGC.
+
+ /**
+ The maximal gain of the AGC. <br>
+ AVL_MaxGainLin = \f$512*10^{MaxGaindB/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>6.9</td>
+ <td>@ref LVWM_AVL_MAXGAINLIN_MIN (512)</td>
+ <td>@ref LVWM_AVL_MAXGAINLIN_DEFAULT (8189)</td>
+ <td>@ref LVWM_AVL_MAXGAINLIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_MaxGainLin; ///< The maximal gain of the AGC.
+
+ /**
+ The gain of the AGC is smoothed across time. The time constant of the smoothing
+ depends on whether the gain is increasing or decreasing. When a sudden loud
+ signal is encountered (e.g. attack of speech), the attack time is used. When
+ the gain is increasing (e.g. long period of whispered speech), the release time
+ is used. <br>
+
+ AVL_Attack = \f$32767*\exp(-1/(100*AttackTimeSec))\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVWM_AVL_ATTACK_MIN (0)</td>
+ <td>@ref LVWM_AVL_ATTACK_DEFAULT (25520)</td>
+ <td>@ref LVWM_AVL_ATTACK_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_Attack; ///< The attack time of the AGC.
+
+ /**
+ The gain of the AGC is smoothed across time. The time constant of the smoothing
+ depends on whether the gain is increasing or decreasing. When a sudden loud
+ signal is encountered (e.g. attack of speech), the attack time is used. When
+ the gain is increasing (e.g. long period of whispered speech), the release time
+ is used. <br>
+
+ AVL_Release = \f$32767*\exp(-1/(100*ReleasTimeSec))\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVWM_AVL_RELEASE_MIN (0)</td>
+ <td>@ref LVWM_AVL_RELEASE_DEFAULT (32685)</td>
+ <td>@ref LVWM_AVL_RELEASE_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_Release; ///< The release time of the AGC.
+
+ /**
+ AVL_Limit_MaxOutputLin = \f$32767*10^{TargetLimiterLeveldB/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVWM_AVL_LIMIT_MAXOUTPUTLIN_MIN (0)</td>
+ <td>@ref LVWM_AVL_LIMIT_MAXOUTPUTLIN_DEFAULT (23197)</td>
+ <td>@ref LVWM_AVL_LIMIT_MAXOUTPUTLIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_Limit_MaxOutputLin; ///< The level to which the signal will be limited.
+
+ /**
+ The higher the value of the threshold, the less speech detections will occur.
+ <br>
+ SpDetect_Threshold = \f$512 * [0,64]\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>6.9</td>
+ <td>@ref LVWM_SPDETECT_THRESHOLD_MIN (0)</td>
+ <td>@ref LVWM_SPDETECT_THRESHOLD_DEFAULT (9216)</td>
+ <td>@ref LVWM_SPDETECT_THRESHOLD_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 SpDetect_Threshold; ///< The threshold used in the speech detector of WhisperMode.
+
+} LVWM_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVDRC_SetControlParameters function but they
+* will not take effect until the next call to the LVDRC_Process function.
+*
+* @see LVDRC_SetControlParameters
+* @see LVDRC_Process
+*/
+typedef struct
+{
+ /**
+ Operating mode for DRC
+ */
+ LVM_Mode_en OperatingMode; ///< Operating mode
+
+ /**
+ Sets the number of sections (knee points) in the compressor curve
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVDRC_NUMKNEES_MIN (1)</td>
+ <td>@ref LVDRC_NUMKNEES_DEFAULT (5)</td>
+ <td>@ref LVDRC_NUMKNEES_MAX (5)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 NumKnees; ///< Number of Knee points in compressor curve
+
+ /**
+ An array of size 5(maximum) containing the knee points specified by the
+ compression curve in dBFs. The number of knee points in use is limited by the
+ NumKnees parameter. Th input level for the first knee should be equal to or
+ larger than -96dB, and the input level for the last knee should be 0dB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVDRC_COMPRESSORCURVEINPUTLEVELS_MIN (-96)</td>
+ <td>@ref LVDRC_COMPRESSORCURVEINPUTLEVELS_DEFAULT {-96,-70,-50, -24, 0}</td>
+ <td>@ref LVDRC_COMPRESSORCURVEINPUTLEVELS_MAX (0)</td>
+ </tr>
+ </table> */
+ LVM_INT16 CompressorCurveInputLevels[LVDRC_COMPRESSORCURVEINPUTLEVELS_LENGTH]; ///< Compressor Curve Input Levels
+
+ /**
+ An array of size 5(maximum) containing the knee points specified by the
+ compression curve in dBFs. The number of knee points in use is limited by the
+ NumKnees parameter. The output level for the first knee should be equal to or
+ larger than -96dB, and the output level for the last knee should be equal to or
+ smaller than 0dB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVDRC_COMPRESSORCURVEOUTPUTLEVELS_MIN (-96)</td>
+ <td>@ref LVDRC_COMPRESSORCURVEOUTPUTLEVELS_DEFAULT {-96,-70,-38,-12,0}</td>
+ <td>@ref LVDRC_COMPRESSORCURVEOUTPUTLEVELS_MAX (0)</td>
+ </tr>
+ </table> */
+ LVM_INT16 CompressorCurveOutputLevels[LVDRC_COMPRESSORCURVEOUTPUTLEVELS_LENGTH]; ///< Compressor Curve Output Levels
+
+ /**
+ The AttackTime parameter is the time constant controlling the rate of reaction
+ to increase in signal level. The AttackTime is specified in increments of 100µs
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVDRC_ATTACKTIME_MIN (0)</td>
+ <td>@ref LVDRC_ATTACKTIME_DEFAULT (50)</td>
+ <td>@ref LVDRC_ATTACKTIME_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AttackTime; ///< Attack Time
+
+ /**
+ The ReleaseTime parameter is the time constant controlling the rate of reaction
+ to decrease in signal level. The ReleaseTime is specified in increments of
+ 100µs.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVDRC_RELEASETIME_MIN (0)</td>
+ <td>@ref LVDRC_RELEASETIME_DEFAULT (50)</td>
+ <td>@ref LVDRC_RELEASETIME_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 ReleaseTime; ///< Release Time
+
+ /**
+ Enable or Disable limiter with soft clipping.
+ */
+ LVM_Mode_en LimiterOperatingMode; ///< Enable or Disable limiter with soft clipping
+
+ /**
+ Sets the limit level of the compressor in dB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVDRC_LIMITLEVEL_MIN (-96)</td>
+ <td>@ref LVDRC_LIMITLEVEL_DEFAULT (0)</td>
+ <td>@ref LVDRC_LIMITLEVEL_MAX (0)</td>
+ </tr>
+ </table> */
+ LVM_INT16 LimitLevel; ///< Sets the limit level of the compressor in dB
+
+} LVDRC_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVNG_SetControlParameters function but they
+* will not take effect until the next call to the LVNG_Process function.
+*
+* @see LVNG_SetControlParameters
+* @see LVNG_Process
+*/
+typedef struct
+{
+ /**
+ Operating mode for Noise Gate
+ */
+ LVM_Mode_en OperatingMode; ///< Operating mode
+
+ /**
+ Sets the number of sections (knee points) in the compressor curve
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVNG_NUMKNEES_MIN (1)</td>
+ <td>@ref LVNG_NUMKNEES_DEFAULT (5)</td>
+ <td>@ref LVNG_NUMKNEES_MAX (5)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 NumKnees; ///< Number of Knee points in compressor curve
+
+ /**
+ An array of size 5(maximum) containing the knee points specified by the
+ compression curve in dBFs. The number of knee points in use is limited by the
+ NumKnees parameter. The input level for the first knee should be equal to or
+ larger than -96dB, and the input level for the last knee should be 0dB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVNG_COMPRESSORCURVEINPUTLEVELS_MIN (-96)</td>
+ <td>@ref LVNG_COMPRESSORCURVEINPUTLEVELS_DEFAULT {-80,-70,-50, -24, 0}</td>
+ <td>@ref LVNG_COMPRESSORCURVEINPUTLEVELS_MAX (0)</td>
+ </tr>
+ </table> */
+ LVM_INT16 CompressorCurveInputLevels[LVNG_COMPRESSORCURVEINPUTLEVELS_LENGTH]; ///< Compressor Curve Input Levels
+
+ /**
+ An array of size 5(maximum) containing the knee points specified by the
+ compression curve in dBFs. The number of knee points in use is limited by the
+ NumKnees parameter. The output level for the first knee should be equal to or
+ larger than -96dB, and the output level for the last knee should be equal to or
+ smaller than 0dB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVNG_COMPRESSORCURVEOUTPUTLEVELS_MIN (-96)</td>
+ <td>@ref LVNG_COMPRESSORCURVEOUTPUTLEVELS_DEFAULT {-96,-80,-50, -24, 0}</td>
+ <td>@ref LVNG_COMPRESSORCURVEOUTPUTLEVELS_MAX (0)</td>
+ </tr>
+ </table> */
+ LVM_INT16 CompressorCurveOutputLevels[LVNG_COMPRESSORCURVEOUTPUTLEVELS_LENGTH]; ///< Compressor Curve Output Levels
+
+ /**
+ The AttackTime parameter is the time constant controlling the rate of reaction
+ to increase in signal level. The AttackTime is specified in increments of 100µs
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVNG_ATTACKTIME_MIN (0)</td>
+ <td>@ref LVNG_ATTACKTIME_DEFAULT (50)</td>
+ <td>@ref LVNG_ATTACKTIME_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AttackTime; ///< Attack Time
+
+ /**
+ The ReleaseTime parameter is the time constant controlling the rate of reaction
+ to decrease in signal level. The ReleaseTime is specified in increments of
+ 100µs.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVNG_RELEASETIME_MIN (0)</td>
+ <td>@ref LVNG_RELEASETIME_DEFAULT (50)</td>
+ <td>@ref LVNG_RELEASETIME_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 ReleaseTime; ///< Release Time
+
+} LVNG_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVNLPP_SetControlParameters function but they
+* will not take effect until the next call to the LVNLPP_Process function.
+*
+* @see LVNLPP_SetControlParameters
+* @see LVNLPP_Process
+*/
+typedef struct
+{
+ /**
+ Limits the signal level compared to digital full scale in dB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVNLPP_NLPP_LIMIT_MIN (-24)</td>
+ <td>@ref LVNLPP_NLPP_LIMIT_DEFAULT (0)</td>
+ <td>@ref LVNLPP_NLPP_LIMIT_MAX (0)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLPP_Limit; ///< NLPP Limit
+
+ /**
+ Sets the -3dB corner frequency of the high-pass filter in Hz.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVNLPP_NLPP_HPF_CORNERFREQ_MIN (50)</td>
+ <td>@ref LVNLPP_NLPP_HPF_CORNERFREQ_DEFAULT (50)</td>
+ <td>@ref LVNLPP_NLPP_HPF_CORNERFREQ_MAX (1000)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 NLPP_HPF_CornerFreq; ///< NLPP HPF Corner Frequency
+
+} LVNLPP_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVEQ_SetControlParameters function but they
+* will not take effect until the next call to the LVEQ_Process function.
+*
+* @see LVEQ_SetControlParameters
+* @see LVEQ_Process
+*/
+typedef struct
+{
+ /**
+ Sets the length of the Equalizer impulse response. This must never be more than
+ the value of EQ_MaxLength set at initialization time. The EQ_Length must be a
+ multiple of 8.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVEQ_EQ_LENGTH_MIN (8)</td>
+ <td>@ref LVEQ_EQ_LENGTH_DEFAULT (64)</td>
+ <td>@ref LVEQ_EQ_LENGTH_MAX (64)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 EQ_Length; ///< EQ Tap Length
+
+ /**
+ Pointer to an array containing the samples of the Equalizer impulse response.
+ The format of the array content is specified below. The samples of the
+ Equalizer impulse response must be in Q3.12 format.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>3.12</td>
+ <td>@ref LVEQ_EQ_COEFS_MIN (-32768)</td>
+ <td>@ref LVEQ_EQ_COEFS_DEFAULT {4096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}</td>
+ <td>@ref LVEQ_EQ_COEFS_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 *pEQ_Coefs; ///< Equalizer impulse response
+
+} LVEQ_ControlParams_st;
+
+
+
+/*[Begin] [lvwenhua-2013/10/21]*/
+typedef struct
+{
+ LVM_INT16 EqCoefs[LVVE_MAX_EQ_LENGTH_NB];
+} LVEQ_Coefs_st;
+/*[End] [lvwenhua-2013/10/21]*/
+
+
+
+
+
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVVOL_SetControlParameters function but they
+* will not take effect until the next call to the LVVOL_Process function.
+*
+* @see LVVOL_SetControlParameters
+* @see LVVOL_Process
+*/
+typedef struct
+{
+ /**
+ Turns on/off VOL_Gain.
+ */
+ LVM_Mode_en VOL_OperatingMode; ///< Turns on/off VOL_Gain
+
+ /**
+ The volume control gain can be used to set the overall volume level of the
+ signal. The gain is set in dB with steps of 1dB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVVOL_VOL_GAIN_MIN (-96)</td>
+ <td>@ref LVVOL_VOL_GAIN_DEFAULT (0)</td>
+ <td>@ref LVVOL_VOL_GAIN_MAX (24)</td>
+ </tr>
+ </table> */
+ LVM_INT16 VOL_Gain; ///< Apply Gain to Input signal
+
+} LVVOL_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVHPF_SetControlParameters function but they
+* will not take effect until the next call to the LVHPF_Process function.
+*
+* @see LVHPF_SetControlParameters
+* @see LVHPF_Process
+*/
+typedef struct
+{
+ /**
+ Turns on/off High Pass filter.
+ */
+ LVM_Mode_en HPF_OperatingMode; ///< Turns on/off High Pass filter
+
+ /**
+ Sets the 3dB corner frequency of the high-pass filter. In case NoiseVoid is
+ enabled, the same high-pass filter will be applied to the second microphone
+ channel.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVHPF_HPF_CORNERFREQ_MIN (50)</td>
+ <td>@ref LVHPF_HPF_CORNERFREQ_DEFAULT (50)</td>
+ <td>@ref LVHPF_HPF_CORNERFREQ_MAX (1500)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 HPF_CornerFreq; ///< High Pass Filter Corner Frequency in Hz
+
+} LVHPF_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVMUTE_SetControlParameters function but they
+* will not take effect until the next call to the LVMUTE_Process function.
+*
+* @see LVMUTE_SetControlParameters
+* @see LVMUTE_Process
+*/
+typedef struct
+{
+ /**
+ This param can mute unmute the Rx/Tx engine output.
+ */
+ LVM_Mode_en Mute; ///< This param can mute unmute the Rx/Tx engine output
+
+} LVMUTE_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVVE_Rx_SetControlParameters function but they
+* will not take effect until the next call to the LVVE_Rx_Process function.
+*
+* @see LVVE_Rx_SetControlParameters
+* @see LVVE_Rx_Process
+*/
+typedef struct
+{
+ /**
+ This enumerated type is used to set the operating mode of the Rx path. The
+ processing can be separately set to enable all processing modules (i.e., ON),
+ to disable all processing modules (i.e., OFF) or to bypass all processing
+ modules (i.e., BYPASS). When bypassed, all processing modules keep on running,
+ but their output is not used.
+ */
+ LVVE_Rx_Mode_en OperatingMode; ///< This param controls the on/off of RX voice engine.
+
+ /**
+ This param can mute unmute the Rx/Tx engine output.
+ */
+ LVM_Mode_en Mute; ///< This param can mute unmute the Rx/Tx engine output
+
+ /**
+ Turns on/off VOL_Gain.
+ */
+ LVM_Mode_en VOL_OperatingMode; ///< Turns on/off VOL_Gain
+
+ /**
+ The volume control gain can be used to set the overall volume level of the
+ signal. The gain is set in dB with steps of 1dB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVVE_RX_VOL_GAIN_MIN (-96)</td>
+ <td>@ref LVVE_RX_VOL_GAIN_DEFAULT (0)</td>
+ <td>@ref LVVE_RX_VOL_GAIN_MAX (24)</td>
+ </tr>
+ </table> */
+ LVM_INT16 VOL_Gain; ///< Apply Gain to Input signal
+
+ /**
+ Far End Noise Suppression Control Parameter Structure.
+ */
+ LVFENS_ControlParams_st FENS_ControlParams; ///< Far End Noise Suppression Control Parameter Structure
+
+ /**
+ Turns on/off NLPP.
+ */
+ LVM_Mode_en NLPP_OperatingMode; ///< Turns on/off NLPP
+
+ /**
+ NLPP Control Parameter Structure.
+ */
+ LVNLPP_ControlParams_st NLPP_ControlParams; ///< NLPP Control Parameter Structure
+
+ /**
+ Voice Clarity Control Parameter Structure.
+ */
+ LVVC_ControlParams_st VC_ControlParams; ///< Voice Clarity Control Parameter Structure
+
+ /**
+ Equalizer Operating mode.
+ */
+ LVM_Mode_en EQ_OperatingMode; ///< Equalizer Operating mode
+
+ /**
+ Equalizer Control Parameters Structure.
+ */
+ LVEQ_ControlParams_st EQ_ControlParams; ///< Equalizer Control Parameters Structure
+
+ /**
+ DRC Control Parameter Strcuture.
+ */
+ LVDRC_ControlParams_st DRC_ControlParams; ///< DRC Control Parameter Strcuture
+
+ /**
+ Turns on/off High Pass filter.
+ */
+ LVM_Mode_en HPF_OperatingMode; ///< Turns on/off High Pass filter
+
+ /**
+ Sets the 3dB corner frequency of the high-pass filter. In case NoiseVoid is
+ enabled, the same high-pass filter will be applied to the second microphone
+ channel.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVVE_RX_HPF_CORNERFREQ_MIN (50)</td>
+ <td>@ref LVVE_RX_HPF_CORNERFREQ_DEFAULT (50)</td>
+ <td>@ref LVVE_RX_HPF_CORNERFREQ_MAX (1500)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 HPF_CornerFreq; ///< High Pass Filter Corner Frequency in Hz
+
+ /**
+ Whisper Mode Control Parameter Strcuture.
+ */
+ LVWM_ControlParams_st WM_ControlParams; ///< Whisper Mode Control Parameter Strcuture
+
+ /**
+ Noise Gate Control Parameter Structure.
+ */
+ LVNG_ControlParams_st NG_ControlParams; ///< Noise Gate Control Parameter Structure
+
+} LVVE_Rx_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVNV_SetControlParameters function but they
+* will not take effect until the next call to the LVNV_Process function.
+*
+* @see LVNV_SetControlParameters
+* @see LVNV_Process
+*/
+typedef struct
+{
+ /**
+ */
+ LVM_Mode_en OperatingMode; ///< Operating Mode
+
+ /**
+ The mode word to enable/disable internal algorithm blocks of LVNV.
+ */
+ LVNV_ModeWord_bm Mode; ///< Mode word
+
+ /**
+ The mode2 word to allow switching or combining different blocks inside LVNV.
+ */
+ LVNV_Mode2Word_bm Mode2; ///< Mode2 word
+
+ /**
+ The tuning mode word to enable/disable internal algorithm tuning capabilities
+ in the different blocks of LVNV. Only one bit is allowed to be enabled at a
+ time.
+ */
+ LVNV_TuningModeWord_bm Tuning_mode; ///< Tuning mode word
+
+ /**
+ Gain applied at the primary channel in the Tx input. Used to scale the
+ microphone signal in order to give the NLMS0_LB and NLMS0_HB filters headroom
+ for correct operation.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>2.13</td>
+ <td>@ref LVNV_INPUT_GAIN_MIC0_MIN (0)</td>
+ <td>@ref LVNV_INPUT_GAIN_MIC0_DEFAULT (8192)</td>
+ <td>@ref LVNV_INPUT_GAIN_MIC0_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 Input_Gain_Mic0; ///< The primary input gain.
+
+ /**
+ Gain applied at the secondary channel in the Tx input. Used to scale the
+ microphone signal in order to give the NLMS1_LB and NLMS1_HB filters headroom
+ for correct operation.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>2.13</td>
+ <td>@ref LVNV_INPUT_GAIN_MIC1_MIN (0)</td>
+ <td>@ref LVNV_INPUT_GAIN_MIC1_DEFAULT (8192)</td>
+ <td>@ref LVNV_INPUT_GAIN_MIC1_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 Input_Gain_Mic1; ///< The secondary input gain.
+
+ /**
+ Gain applied at the Tx output of LVNV. Compensates the applied Input_Gain_Mic0
+ in order to preserve the overall Tx gain.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>4.11</td>
+ <td>@ref LVNV_OUTPUT_GAIN_MIN (0)</td>
+ <td>@ref LVNV_OUTPUT_GAIN_DEFAULT (2048)</td>
+ <td>@ref LVNV_OUTPUT_GAIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 Output_Gain; ///< The output gain.
+
+ /**
+ Length of the low-band (0-4kHz) adaptive echo cancellation filter for the
+ primary channel. The Length should be chosen such that most of the energy of
+ the impulse response is covered by the filter. The length should be a multiple
+ of 8.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVNV_NLMS0_LB_TAPS_MIN (16)</td>
+ <td>@ref LVNV_NLMS0_LB_TAPS_DEFAULT (32)</td>
+ <td>@ref LVNV_NLMS0_LB_TAPS_MAX (64)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 NLMS0_LB_taps; ///< Number of NLMS0 low-band taps.
+
+ /**
+ Step size for the update of the low-band adaptive filter coefficients for the
+ primary channel. It is recommended not to change the default value.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_NLMS0_LB_TWOALPHA_MIN (0)</td>
+ <td>@ref LVNV_NLMS0_LB_TWOALPHA_DEFAULT (8192)</td>
+ <td>@ref LVNV_NLMS0_LB_TWOALPHA_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS0_LB_twoalpha; ///< NLMS0 low-band step size
+
+ /**
+ Adaptive step-size control for the low-band adaptive echo cancellation filter
+ for the primary channel. This parameter is used to slow down the update speed
+ of the adaptive filter during double talk situations.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>9.6</td>
+ <td>@ref LVNV_NLMS0_LB_ERL_MIN (64)</td>
+ <td>@ref LVNV_NLMS0_LB_ERL_DEFAULT (1000)</td>
+ <td>@ref LVNV_NLMS0_LB_ERL_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS0_LB_erl; ///< NLMS0 low-band erl
+
+ /**
+ Length of the high-band (4-8kHz) adaptive echo cancellation filter for the
+ primary channel. The Length should be chosen such that most of the energy of
+ the impulse response is covered by the filter. The length should be a multiple
+ of 8.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVNV_NLMS0_HB_TAPS_MIN (16)</td>
+ <td>@ref LVNV_NLMS0_HB_TAPS_DEFAULT (24)</td>
+ <td>@ref LVNV_NLMS0_HB_TAPS_MAX (64)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 NLMS0_HB_taps; ///< Number of NLMS0 high-band taps.
+
+ /**
+ Step size for the update of the high-band adaptive filter coefficients for the
+ primary channel. It is recommended not to change the default value.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_NLMS0_HB_TWOALPHA_MIN (0)</td>
+ <td>@ref LVNV_NLMS0_HB_TWOALPHA_DEFAULT (8192)</td>
+ <td>@ref LVNV_NLMS0_HB_TWOALPHA_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS0_HB_twoalpha; ///< NLMS0 high-band step size
+
+ /**
+ Adaptive step-size control for the high-band adaptive echo cancellation filter
+ for the primary channel. This parameter is used to slow down the update speed
+ of the adaptive filter during double talk situations.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>9.6</td>
+ <td>@ref LVNV_NLMS0_HB_ERL_MIN (64)</td>
+ <td>@ref LVNV_NLMS0_HB_ERL_DEFAULT (1000)</td>
+ <td>@ref LVNV_NLMS0_HB_ERL_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS0_HB_erl; ///< NLMS0 high-band erl
+
+ /**
+ Indicates whether a preset of adaptive filter coefficients should be done.<br>
+ 0 = No preset (coefficients as they are).<br>
+ 1 = Preset with internally calculated coefficients.<br>
+ 2 = Preset with zero coefficients.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVNV_NLMS0_PRESET_COEFS_MIN (0)</td>
+ <td>@ref LVNV_NLMS0_PRESET_COEFS_DEFAULT (0)</td>
+ <td>@ref LVNV_NLMS0_PRESET_COEFS_MAX (2)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS0_preset_coefs; ///< NLMS0 preset
+
+ /**
+ Offset added to the normalization of the adaptation of the filter.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_NLMS0_OFFSET_MIN (0)</td>
+ <td>@ref LVNV_NLMS0_OFFSET_DEFAULT (776)</td>
+ <td>@ref LVNV_NLMS0_OFFSET_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS0_offset; ///< NLMS0 offset
+
+ /**
+ Length of the low-band (0-4kHz) adaptive echo cancellation filter for the
+ secondary channel. The Length should be chosen such that most of the energy of
+ the impulse response is covered by the filter. The length should be a multiple
+ of 8.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVNV_NLMS1_LB_TAPS_MIN (16)</td>
+ <td>@ref LVNV_NLMS1_LB_TAPS_DEFAULT (32)</td>
+ <td>@ref LVNV_NLMS1_LB_TAPS_MAX (32)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 NLMS1_LB_taps; ///< Number of NLMS1 low-band taps.
+
+ /**
+ Step size for the update of the low-band adaptive filter coefficients for the
+ secondary channel. It is recommended not to change the default value.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_NLMS1_LB_TWOALPHA_MIN (0)</td>
+ <td>@ref LVNV_NLMS1_LB_TWOALPHA_DEFAULT (8192)</td>
+ <td>@ref LVNV_NLMS1_LB_TWOALPHA_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS1_LB_twoalpha; ///< NLMS1 low-band step size
+
+ /**
+ Adaptive step-size control for the low-band adaptive echo cancellation filter
+ for the secondary channel. This parameter is used to slow down the update speed
+ of the adaptive filter during double talk situations.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>9.6</td>
+ <td>@ref LVNV_NLMS1_LB_ERL_MIN (64)</td>
+ <td>@ref LVNV_NLMS1_LB_ERL_DEFAULT (1000)</td>
+ <td>@ref LVNV_NLMS1_LB_ERL_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS1_LB_erl; ///< NLMS1 low-band erl
+
+ /**
+ Length of the high-band (4-8kHz) adaptive echo cancellation filter for the
+ secondary channel. The Length should be chosen such that most of the energy of
+ the impulse response is covered by the filter. The length should be a multiple
+ of 8.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVNV_NLMS1_HB_TAPS_MIN (16)</td>
+ <td>@ref LVNV_NLMS1_HB_TAPS_DEFAULT (24)</td>
+ <td>@ref LVNV_NLMS1_HB_TAPS_MAX (32)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 NLMS1_HB_taps; ///< Number of NLMS1 high-band taps.
+
+ /**
+ Step size for the update of the high-band adaptive filter coefficients for the
+ secondary channel. It is recommended not to change the default value.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_NLMS1_HB_TWOALPHA_MIN (0)</td>
+ <td>@ref LVNV_NLMS1_HB_TWOALPHA_DEFAULT (8192)</td>
+ <td>@ref LVNV_NLMS1_HB_TWOALPHA_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS1_HB_twoalpha; ///< NLMS1 high-band step size
+
+ /**
+ Adaptive step-size control for the high-band adaptive echo cancellation filter
+ for the secondary channel. This parameter is used to slow down the update speed
+ of the adaptive filter during double talk situations.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>9.6</td>
+ <td>@ref LVNV_NLMS1_HB_ERL_MIN (64)</td>
+ <td>@ref LVNV_NLMS1_HB_ERL_DEFAULT (1000)</td>
+ <td>@ref LVNV_NLMS1_HB_ERL_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS1_HB_erl; ///< NLMS1 high-band erl
+
+ /**
+ Indicates whether a preset of adaptive filter coefficients should be done.<br>
+ 0 = No preset (coefficients as they are).<br>
+ 1 = Preset with internally calculated coefficients.<br>
+ 2 = Preset with zero coefficients.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVNV_NLMS1_PRESET_COEFS_MIN (0)</td>
+ <td>@ref LVNV_NLMS1_PRESET_COEFS_DEFAULT (0)</td>
+ <td>@ref LVNV_NLMS1_PRESET_COEFS_MAX (2)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS1_preset_coefs; ///< NLMS1 preset
+
+ /**
+ Offset added to the normalization of the adaptation of the filter.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_NLMS1_OFFSET_MIN (0)</td>
+ <td>@ref LVNV_NLMS1_OFFSET_DEFAULT (776)</td>
+ <td>@ref LVNV_NLMS1_OFFSET_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS1_offset; ///< NLMS1 offset
+
+ /**
+ A parameter representing a threshold for the detection of instrumental noise.
+ The higher the value for this parameter, the lower noise suppression
+ performance.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_CAL_MICPOWFLOORMIN_MIN (0)</td>
+ <td>@ref LVNV_CAL_MICPOWFLOORMIN_DEFAULT (150)</td>
+ <td>@ref LVNV_CAL_MICPOWFLOORMIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 CAL_micPowFloorMin; ///< Instrumental noise threshold
+
+ /**
+ Threshold for Windgush detector. The higher the value, the less sensitive the
+ detection.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>6.9</td>
+ <td>@ref LVNV_WGTHRESHOLD_MIN (0)</td>
+ <td>@ref LVNV_WGTHRESHOLD_DEFAULT (32767)</td>
+ <td>@ref LVNV_WGTHRESHOLD_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 WgThreshold; ///< Windgush threshold
+
+ /**
+ Threshold for speech detector based on power comparison between primary and
+ secondary microphones. The higher the value, the less sensitive the detection.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>3.12</td>
+ <td>@ref LVNV_MPTHRESHOLD_MIN (0)</td>
+ <td>@ref LVNV_MPTHRESHOLD_DEFAULT (6554)</td>
+ <td>@ref LVNV_MPTHRESHOLD_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 MpThreshold; ///< MicPow threshold
+
+ /**
+ Set of first 8 coefficients for adaptive filter FSB0. These values should be
+ determined for the given microphone configuration
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_FSB_INIT_TABLE0_MIN (-32768)</td>
+ <td>@ref LVNV_FSB_INIT_TABLE0_DEFAULT {32767, 0, 0, 0, 0, 0, 0, 0}</td>
+ <td>@ref LVNV_FSB_INIT_TABLE0_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 FSB_init_table0[LVNV_FSB_INIT_TABLE0_LENGTH]; ///< FSB0 initial coefficients.
+
+ /**
+ Set of first 8 coefficients for adaptive filter FSB1. These values should be
+ determined for the given microphone configuration
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_FSB_INIT_TABLE1_MIN (-32768)</td>
+ <td>@ref LVNV_FSB_INIT_TABLE1_DEFAULT {0, 0, 0, 0, 0, 0, 0, 0}</td>
+ <td>@ref LVNV_FSB_INIT_TABLE1_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 FSB_init_table1[LVNV_FSB_INIT_TABLE1_LENGTH]; ///< FSB1 initial coefficients.
+
+ /**
+ Length of the FSB to model the acoustical paths between the speech source and
+ two microphones. The length must be equal to 16 for the handset application.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVNV_FSB_TAPS_MIN (8)</td>
+ <td>@ref LVNV_FSB_TAPS_DEFAULT (16)</td>
+ <td>@ref LVNV_FSB_TAPS_MAX (16)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 FSB_taps; ///< Number of FSB taps
+
+ /**
+ Step-size to update the coefficients of the adaptive filters. A higher value
+ leads to a faster speed of the adaptation, while a lower value provides more
+ stability, but a slow adaption speed.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_FSB_TWOALPHA_MIN (0)</td>
+ <td>@ref LVNV_FSB_TWOALPHA_DEFAULT (655)</td>
+ <td>@ref LVNV_FSB_TWOALPHA_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 FSB_twoalpha; ///< FSB step size control
+
+ /**
+ Gain applied on the samples of the second FSB reference signal (fsbref[1]).
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>5.10</td>
+ <td>@ref LVNV_FSB_REF_GAIN_MIN (0)</td>
+ <td>@ref LVNV_FSB_REF_GAIN_DEFAULT (1024)</td>
+ <td>@ref LVNV_FSB_REF_GAIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 FSB_ref_gain; ///< FSB ref gain
+
+ /**
+ Length of the GSC to model the transfer function between the noise reference
+ and the residual signal, in order to reduce the noise and interfering sounds
+ from the desired signal. This number should be a multiple of 8.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVNV_GSC_TAPS_MIN (8)</td>
+ <td>@ref LVNV_GSC_TAPS_DEFAULT (16)</td>
+ <td>@ref LVNV_GSC_TAPS_MAX (48)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 GSC_taps; ///< Number of GSC taps
+
+ /**
+ Step-size to update the coefficients of the adaptive filter. A higher value
+ leads to a faster speed of the adaptation, while a lower value provides more
+ stability, but a slow adaption speed.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_GSC_TWOALPHA_MIN (0)</td>
+ <td>@ref LVNV_GSC_TWOALPHA_DEFAULT (1638)</td>
+ <td>@ref LVNV_GSC_TWOALPHA_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 GSC_twoalpha; ///< GSC step size control
+
+ /**
+ Adaptive step-size control for GSC to avoid divergence of the adaptive filter
+ during desired speech. In general, GSC_erl is lower than NLMS_erl and ranges
+ between 0 and 30 dB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>9.6</td>
+ <td>@ref LVNV_GSC_ERL_MIN (64)</td>
+ <td>@ref LVNV_GSC_ERL_DEFAULT (256)</td>
+ <td>@ref LVNV_GSC_ERL_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 GSC_erl; ///< GSC erl
+
+ /**
+ Offset added to the computation of the power of the noise reference to avoid
+ that the power converges towards zero when the input is low.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_GSC_OFFSET_MIN (0)</td>
+ <td>@ref LVNV_GSC_OFFSET_DEFAULT (1638)</td>
+ <td>@ref LVNV_GSC_OFFSET_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 GSC_offset; ///< GSC offset
+
+ /**
+ Echo subtraction factor applied during farend-only.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>2.13</td>
+ <td>@ref LVNV_DNNS_ECHOGAMMAHI_MIN (0)</td>
+ <td>@ref LVNV_DNNS_ECHOGAMMAHI_DEFAULT (16384)</td>
+ <td>@ref LVNV_DNNS_ECHOGAMMAHI_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_EchoGammaHi; ///< High echo subtraction factor
+
+ /**
+ Echo subtraction factor applied during double talk and nearend-only.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>2.13</td>
+ <td>@ref LVNV_DNNS_ECHOGAMMALO_MIN (0)</td>
+ <td>@ref LVNV_DNNS_ECHOGAMMALO_DEFAULT (8192)</td>
+ <td>@ref LVNV_DNNS_ECHOGAMMALO_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_EchoGammaLo; ///< Low echo subtraction factor
+
+ /**
+ Parameter related to the reverberation time of the acoustical environment,
+ which represents the decay in energy over time of the echo tail of the impulse
+ response.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_DNNS_ECHOALPHAREV_MIN (0)</td>
+ <td>@ref LVNV_DNNS_ECHOALPHAREV_DEFAULT (12000)</td>
+ <td>@ref LVNV_DNNS_ECHOALPHAREV_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_EchoAlphaRev; ///< Echo reverberation factor
+
+ /**
+ Parameter representing the portion of the echo tail (estimated by the NLMS
+ filter) that has to be extrapolated in time.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_DNNS_ECHOTAILPORTION_MIN (0)</td>
+ <td>@ref LVNV_DNNS_ECHOTAILPORTION_DEFAULT (7000)</td>
+ <td>@ref LVNV_DNNS_ECHOTAILPORTION_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_EchoTailPortion; ///< Echo tail portion
+
+ /**
+ Non-linear echo subtraction factor applied during double talk and nearend-only.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>4.11</td>
+ <td>@ref LVNV_DNNS_NLATTEN_MIN (0)</td>
+ <td>@ref LVNV_DNNS_NLATTEN_DEFAULT (256)</td>
+ <td>@ref LVNV_DNNS_NLATTEN_MAX (2048)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_NlAtten; ///< Non-linear echo subtraction factor
+
+ /**
+ Gain factor for stationary noise oversubtraction.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>2.13</td>
+ <td>@ref LVNV_DNNS_NOISEGAMMAS_MIN (0)</td>
+ <td>@ref LVNV_DNNS_NOISEGAMMAS_DEFAULT (11470)</td>
+ <td>@ref LVNV_DNNS_NOISEGAMMAS_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_NoiseGammaS; ///< Stationary noise oversubtraction factor
+
+ /**
+ Gain factor for non-stationary noise oversubtraction.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>2.13</td>
+ <td>@ref LVNV_DNNS_NOISEGAMMAN_MIN (0)</td>
+ <td>@ref LVNV_DNNS_NOISEGAMMAN_DEFAULT (16384)</td>
+ <td>@ref LVNV_DNNS_NOISEGAMMAN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_NoiseGammaN; ///< Non-stationary noise oversubtraction factor
+
+ /**
+ The maximum amount of stationary noise suppression.<br>
+ DNNS_NoiseGainMinS = \f$2*32767*10^{MaxNoiseReductiondB/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>-1.16</td>
+ <td>@ref LVNV_DNNS_NOISEGAINMINS_MIN (0)</td>
+ <td>@ref LVNV_DNNS_NOISEGAINMINS_DEFAULT (11140)</td>
+ <td>@ref LVNV_DNNS_NOISEGAINMINS_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_NoiseGainMinS; ///< Maximum stationary noise suppression.
+
+ /**
+ The maximum amount of non-stationary noise suppression.<br>
+ DNNS_NoiseGainMinN = \f$2*32767*10^{MaxNoiseReductiondB/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>-1.16</td>
+ <td>@ref LVNV_DNNS_NOISEGAINMINN_MIN (0)</td>
+ <td>@ref LVNV_DNNS_NOISEGAINMINN_DEFAULT (6554)</td>
+ <td>@ref LVNV_DNNS_NOISEGAINMINN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_NoiseGainMinN; ///< Maximum non-stationary noise suppression.
+
+ /**
+ Bias compensation factor for stationary noise estimation.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>2.13</td>
+ <td>@ref LVNV_DNNS_NOISEBIASCOMP_MIN (0)</td>
+ <td>@ref LVNV_DNNS_NOISEBIASCOMP_DEFAULT (9830)</td>
+ <td>@ref LVNV_DNNS_NOISEBIASCOMP_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_NoiseBiasComp; ///< Bias compensation factor.
+
+ /**
+ Echo oversubtraction factor applied to the estimated non-stationary noise
+ floor.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>3.12</td>
+ <td>@ref LVNV_DNNS_GAINETA_MIN (0)</td>
+ <td>@ref LVNV_DNNS_GAINETA_DEFAULT (256)</td>
+ <td>@ref LVNV_DNNS_GAINETA_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_GainEta; ///< Echo oversubtraction factor.
+
+ /**
+ Detection threshold for microphone activity.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>3.12</td>
+ <td>@ref LVNV_DNNS_ACTHRESHOLD_MIN (0)</td>
+ <td>@ref LVNV_DNNS_ACTHRESHOLD_DEFAULT (12288)</td>
+ <td>@ref LVNV_DNNS_ACTHRESHOLD_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_AcThreshold; ///< Activity threshold.
+
+ /**
+ Detection threshold for activity within the beam of FSB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>3.12</td>
+ <td>@ref LVNV_DNNS_WBTHRESHOLD_MIN (0)</td>
+ <td>@ref LVNV_DNNS_WBTHRESHOLD_DEFAULT (9216)</td>
+ <td>@ref LVNV_DNNS_WBTHRESHOLD_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_WbThreshold; ///< WithinBeam threshold.
+
+ /**
+ Detection threshold for lost beam where the nearend speaker is speaking outside
+ the beam of the FSB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>9.6</td>
+ <td>@ref LVNV_DNNS_LOSTBEAMTHRESHOLD_MIN (0)</td>
+ <td>@ref LVNV_DNNS_LOSTBEAMTHRESHOLD_DEFAULT (320)</td>
+ <td>@ref LVNV_DNNS_LOSTBEAMTHRESHOLD_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_LostBeamThreshold; ///< Lost beam threshold.
+
+ /**
+ Smoothing factor applied to get a smoothed value of the inter-channel
+ correlation.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>9.6</td>
+ <td>@ref LVNV_PCD_BETA_MIN (0)</td>
+ <td>@ref LVNV_PCD_BETA_DEFAULT (230)</td>
+ <td>@ref LVNV_PCD_BETA_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 PCD_beta; ///< ICC smoothing factor.
+
+ /**
+ Detection threshold for broadside when the nearend speaker is not in end-fire
+ position with respect to the microphone configuration.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>9.6</td>
+ <td>@ref LVNV_PCD_THRESHOLD_MIN (0)</td>
+ <td>@ref LVNV_PCD_THRESHOLD_DEFAULT (26213)</td>
+ <td>@ref LVNV_PCD_THRESHOLD_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 PCD_Threshold; ///< Broadside detection threshold.
+
+} LVNV_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVHF_SetControlParameters function but they
+* will not take effect until the next call to the LVHF_Process function.
+*
+* @see LVHF_SetControlParameters
+* @see LVHF_Process
+*/
+typedef struct
+{
+ /**
+ */
+ LVM_Mode_en OperatingMode; ///< Operating Mode
+
+ /**
+ The mode word to enable/disable internal algorithm blocks of HandsFree
+ */
+ LVHF_ModeWord_bm Mode; ///< Mode Word
+
+ /**
+ The tuning mode is used to enable/disable internal algorithm tuning
+ capabilities in the different blocks of HandsFree. Only one bit allowed to be
+ enabled at a time.
+ */
+ LVHF_TuningModeWord TuningMode; ///< Tuning Mode
+
+ /**
+ Gain applied at the Tx input of LVHF. Used to scale the microphone signal in
+ order to give the NLMS filter headroom for correct operation.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>2.13</td>
+ <td>@ref LVHF_INPUTGAIN_MIN (0)</td>
+ <td>@ref LVHF_INPUTGAIN_DEFAULT (8192)</td>
+ <td>@ref LVHF_INPUTGAIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 InputGain; ///< Input Gain
+
+ /**
+ Gain applied at the Tx output of LVHF. Compensates the applied InputGain in
+ order to preserve the overall Tx gain.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>4.11</td>
+ <td>@ref LVHF_OUTPUTGAIN_MIN (0)</td>
+ <td>@ref LVHF_OUTPUTGAIN_DEFAULT (2048)</td>
+ <td>@ref LVHF_OUTPUTGAIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 OutputGain; ///< Output Gain
+
+ /**
+ Limit the NLMS reference signal. Value in dB Full Scale.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVHF_NLMS_LIMIT_MIN (-24)</td>
+ <td>@ref LVHF_NLMS_LIMIT_DEFAULT (0)</td>
+ <td>@ref LVHF_NLMS_LIMIT_MAX (0)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS_limit; ///< Limit the NLMS reference signal.
+
+ /**
+ Length of the low-band (0-4kHz) adaptive echo cancellation filter. The Length
+ should be chosen such that most of the energy of the impulse response is
+ covered by the filter. The length should be a multiple of 8.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVHF_NLMS_LB_TAPS_MIN (16)</td>
+ <td>@ref LVHF_NLMS_LB_TAPS_DEFAULT (64)</td>
+ <td>@ref LVHF_NLMS_LB_TAPS_MAX (200)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 NLMS_LB_taps; ///< Number of taps for LB NLMS.
+
+ /**
+ Step size for the update of the low-band (0-4kHz) adaptive filter coefficients.
+ It is recommended not to change the default value.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_NLMS_LB_TWO_ALPHA_MIN (0)</td>
+ <td>@ref LVHF_NLMS_LB_TWO_ALPHA_DEFAULT (8192)</td>
+ <td>@ref LVHF_NLMS_LB_TWO_ALPHA_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS_LB_two_alpha; ///< Step Size of LB NLMS
+
+ /**
+ Adaptive step size control for the low-band (0-4kHz) adaptive echo cancellation
+ filter. This parameter is used to slow down the update speed of the adaptive
+ filter during double talk situations.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>9.6</td>
+ <td>@ref LVHF_NLMS_LB_ERL_MIN (64)</td>
+ <td>@ref LVHF_NLMS_LB_ERL_DEFAULT (128)</td>
+ <td>@ref LVHF_NLMS_LB_ERL_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS_LB_erl; ///< ERL of LB NLMS
+
+ /**
+ Length of the high-band (4-8kHz) adaptive echo cancellation filter. The Length
+ should be chosen such that most of the energy of the impulse response is
+ covered by the filter. The length should be a multiple of 8. In case of
+ narrowband processing, this parameter has no effect.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVHF_NLMS_HB_TAPS_MIN (16)</td>
+ <td>@ref LVHF_NLMS_HB_TAPS_DEFAULT (64)</td>
+ <td>@ref LVHF_NLMS_HB_TAPS_MAX (136)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 NLMS_HB_taps; ///< Number of taps for HB NLMS.
+
+ /**
+ Step size for the update of the high-band (4-8kHz) adaptive filter
+ coefficients. It is recommended not to change the default value. In case of
+ narrowband processing, this parameter has no effect.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_NLMS_HB_TWO_ALPHA_MIN (0)</td>
+ <td>@ref LVHF_NLMS_HB_TWO_ALPHA_DEFAULT (8192)</td>
+ <td>@ref LVHF_NLMS_HB_TWO_ALPHA_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS_HB_two_alpha; ///< Step Size of HB NLMS
+
+ /**
+ Adaptive step size control for the high-band (4-8kHz) adaptive echo
+ cancellation filter. This parameter is used to slow down the update speed of
+ the adaptive filter during double talk situations. In case of narrowband
+ processing, this parameter has no effect.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>9.6</td>
+ <td>@ref LVHF_NLMS_HB_ERL_MIN (64)</td>
+ <td>@ref LVHF_NLMS_HB_ERL_DEFAULT (128)</td>
+ <td>@ref LVHF_NLMS_HB_ERL_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS_HB_erl; ///< ERL of HB NLMS
+
+ /**
+ Indicates whether a preset of adaptive filter coefficients should be done. <br>
+ 0 = No preset (Coefficients as they are)<br>
+ 1= Preset with internally calculated coefficients.<br>
+ 2= Preset with zero coefficients.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVHF_NLMS_PRESET_COEFS_MIN (0)</td>
+ <td>@ref LVHF_NLMS_PRESET_COEFS_DEFAULT (1)</td>
+ <td>@ref LVHF_NLMS_PRESET_COEFS_MAX (2)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS_preset_coefs; ///< Coefficient preset.
+
+ /**
+ Offset added to the normalization of the adaptation of the filter.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_NLMS_OFFSET_MIN (0)</td>
+ <td>@ref LVHF_NLMS_OFFSET_DEFAULT (767)</td>
+ <td>@ref LVHF_NLMS_OFFSET_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS_offset; ///< NLMS offset
+
+ /**
+ Parameter related to the reverberation of the acoustic environment. It
+ represents the decay in time of the energy of the echo tail of the impulse
+ response for the LB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_DENS_TAIL_ALPHA_LB_MIN (0)</td>
+ <td>@ref LVHF_DENS_TAIL_ALPHA_LB_DEFAULT (25395)</td>
+ <td>@ref LVHF_DENS_TAIL_ALPHA_LB_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_tail_alpha_LB;
+ /**
+ Parameter related to the portion of the echo tail that has to be extrapolated
+ in time for LB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_DENS_TAIL_PORTION_LB_MIN (0)</td>
+ <td>@ref LVHF_DENS_TAIL_PORTION_LB_DEFAULT (29491)</td>
+ <td>@ref LVHF_DENS_TAIL_PORTION_LB_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_tail_portion_LB;
+ /**
+ Echo subtraction factor applied during farend-only for the LB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>7.8</td>
+ <td>@ref LVHF_DENS_GAMMA_E_HIGH_LB_MIN (0)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_HIGH_LB_DEFAULT (512)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_HIGH_LB_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_gamma_e_high_LB; ///< FE Echo subtraction LB
+
+ /**
+ Echo subtraction factor applied during double talk for the LB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>7.8</td>
+ <td>@ref LVHF_DENS_GAMMA_E_DT_LB_MIN (0)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_DT_LB_DEFAULT (256)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_DT_LB_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_gamma_e_dt_LB; ///< DT Echo subtraction factor LB
+
+ /**
+ Echo subtraction factor applied during nearend-only for the LB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>7.8</td>
+ <td>@ref LVHF_DENS_GAMMA_E_LOW_LB_MIN (0)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_LOW_LB_DEFAULT (256)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_LOW_LB_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_gamma_e_low_LB; ///< NE Echo subtraction factor LB
+
+ /**
+ The amount of extra non-linear suppression relative to the maximum linear echo
+ suppression for the LB. The use of these non-linear echo suppression mechanisms
+ should be avoided as much as possible since it affects the double talk
+ performance.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>4.11</td>
+ <td>@ref LVHF_DENS_NL_ATTEN_LB_MIN (0)</td>
+ <td>@ref LVHF_DENS_NL_ATTEN_LB_DEFAULT (0)</td>
+ <td>@ref LVHF_DENS_NL_ATTEN_LB_MAX (2048)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_NL_atten_LB; ///< LB Non linear attenuation
+
+ /**
+ Parameter related to the reverberation of the acoustic environment. It
+ represents the decay in time of the energy of the echo tail of the impulse
+ response for the HB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_DENS_TAIL_ALPHA_HB_MIN (0)</td>
+ <td>@ref LVHF_DENS_TAIL_ALPHA_HB_DEFAULT (25395)</td>
+ <td>@ref LVHF_DENS_TAIL_ALPHA_HB_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_tail_alpha_HB;
+ /**
+ Parameter related to the portion of the echo tail that has to be extrapolated
+ in time for HB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_DENS_TAIL_PORTION_HB_MIN (0)</td>
+ <td>@ref LVHF_DENS_TAIL_PORTION_HB_DEFAULT (29491)</td>
+ <td>@ref LVHF_DENS_TAIL_PORTION_HB_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_tail_portion_HB;
+ /**
+ Echo subtraction factor applied during farend-only for the HB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>7.8</td>
+ <td>@ref LVHF_DENS_GAMMA_E_HIGH_HB_MIN (0)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_HIGH_HB_DEFAULT (512)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_HIGH_HB_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_gamma_e_high_HB; ///< FE Echo subtraction HB
+
+ /**
+ Echo subtraction factor applied during double talk for the HB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>7.8</td>
+ <td>@ref LVHF_DENS_GAMMA_E_DT_HB_MIN (0)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_DT_HB_DEFAULT (256)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_DT_HB_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_gamma_e_dt_HB; ///< DT Echo subtraction factor HB
+
+ /**
+ Echo subtraction factor applied during nearend-only for the HB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>7.8</td>
+ <td>@ref LVHF_DENS_GAMMA_E_LOW_HB_MIN (0)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_LOW_HB_DEFAULT (256)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_LOW_HB_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_gamma_e_low_HB; ///< NE Echo subtraction factor HB
+
+ /**
+ The amount of extra non-linear suppression relative to the maximum linear echo
+ suppression. for the HB. The use of these non-linear echo suppression
+ mechanisms should be avoided as much as possible since it affects the double
+ talk performance.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>4.11</td>
+ <td>@ref LVHF_DENS_NL_ATTEN_HB_MIN (0)</td>
+ <td>@ref LVHF_DENS_NL_ATTEN_HB_DEFAULT (0)</td>
+ <td>@ref LVHF_DENS_NL_ATTEN_HB_MAX (2048)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_NL_atten_HB; ///< NE Echo subtraction factor HB
+
+ /**
+ Smoothing factor applied when switching between gamma_e values.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_DENS_GAMMA_E_ALPHA_MIN (0)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_ALPHA_DEFAULT (24000)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_ALPHA_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_gamma_e_alpha; ///< Smoothing factor for gamma_e
+
+ /**
+ Gain factor for Noise subtraction.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>7.8</td>
+ <td>@ref LVHF_DENS_GAMMA_N_MIN (0)</td>
+ <td>@ref LVHF_DENS_GAMMA_N_DEFAULT (280)</td>
+ <td>@ref LVHF_DENS_GAMMA_N_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_gamma_n; ///< Gain factor
+
+ /**
+ Threshold for nearend activity detection.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>7.8</td>
+ <td>@ref LVHF_DENS_SPDET_NEAR_MIN (0)</td>
+ <td>@ref LVHF_DENS_SPDET_NEAR_DEFAULT (512)</td>
+ <td>@ref LVHF_DENS_SPDET_NEAR_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_spdet_near;
+ /**
+ Threshold for microphone activity detection.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>7.8</td>
+ <td>@ref LVHF_DENS_SPDET_ACT_MIN (0)</td>
+ <td>@ref LVHF_DENS_SPDET_ACT_DEFAULT (768)</td>
+ <td>@ref LVHF_DENS_SPDET_ACT_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_spdet_act;
+ /**
+ The maximum amount of noise suppression. <br>
+ DENS_limit_ns = \f$32767*10^{-MaxNoiseReduction[dB]/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_DENS_LIMIT_NS_MIN (0)</td>
+ <td>@ref LVHF_DENS_LIMIT_NS_DEFAULT (10361)</td>
+ <td>@ref LVHF_DENS_LIMIT_NS_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_limit_ns; ///< Maximum noise suppression.
+
+ /**
+ The amount of comfort noise insertion.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>1.14</td>
+ <td>@ref LVHF_DENS_CNI_GAIN_MIN (0)</td>
+ <td>@ref LVHF_DENS_CNI_GAIN_DEFAULT (16384)</td>
+ <td>@ref LVHF_DENS_CNI_GAIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_CNI_Gain; ///< CNI gain
+
+ /**
+ The window length (expressed in integer multiples of 10ms) for the estimation
+ of the noise components. It is recommended to keep this parameter at its
+ default value.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_DENS_NFE_BLOCKSIZE_MIN (0)</td>
+ <td>@ref LVHF_DENS_NFE_BLOCKSIZE_DEFAULT (150)</td>
+ <td>@ref LVHF_DENS_NFE_BLOCKSIZE_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_NFE_blocksize; ///< NFE blocksize
+
+ /**
+ Threshold for farend activity detection.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_SPDET_FAR_MIN (0)</td>
+ <td>@ref LVHF_SPDET_FAR_DEFAULT (16384)</td>
+ <td>@ref LVHF_SPDET_FAR_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 SPDET_far;
+ /**
+ Threshold for microphone activity detection.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_SPDET_MIC_MIN (0)</td>
+ <td>@ref LVHF_SPDET_MIC_DEFAULT (16384)</td>
+ <td>@ref LVHF_SPDET_MIC_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 SPDET_mic;
+ /**
+ Threshold to activate the non-linear echo-suppression.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_SPDET_X_CLIP_MIN (0)</td>
+ <td>@ref LVHF_SPDET_X_CLIP_DEFAULT (0)</td>
+ <td>@ref LVHF_SPDET_X_CLIP_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 SPDET_x_clip;
+ /**
+ Threshold to detect acoustical path changes.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_PCD_THRESHOLD_MIN (0)</td>
+ <td>@ref LVHF_PCD_THRESHOLD_DEFAULT (20000)</td>
+ <td>@ref LVHF_PCD_THRESHOLD_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 PCD_threshold; ///< PCD threshold
+
+ /**
+ Length of the background adaptive filter. The length should be chosen such that
+ only the main peak of the impulse response is covered by the filter. The length
+ should be a multiple of 8.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVHF_PCD_TAPS_MIN (16)</td>
+ <td>@ref LVHF_PCD_TAPS_DEFAULT (16)</td>
+ <td>@ref LVHF_PCD_TAPS_MAX (64)</td>
+ </tr>
+ </table> */
+ LVM_INT16 PCD_taps; ///< Number of taps of background NLMS.
+
+ /**
+ Adaptive step size control for the background adaptive filter.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>9.6</td>
+ <td>@ref LVHF_PCD_ERL_MIN (64)</td>
+ <td>@ref LVHF_PCD_ERL_DEFAULT (64)</td>
+ <td>@ref LVHF_PCD_ERL_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 PCD_erl; ///< Step size of background NLMS.
+
+ /**
+ If a path change is detected, NLMS_erl of the NLMS is set to this value, to
+ ensure a fast adapting filter.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>9.6</td>
+ <td>@ref LVHF_PCD_MINIMUM_ERL_MIN (64)</td>
+ <td>@ref LVHF_PCD_MINIMUM_ERL_DEFAULT (64)</td>
+ <td>@ref LVHF_PCD_MINIMUM_ERL_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 PCD_minimum_erl; ///< Step size of NLMS after PCD.
+
+ /**
+ After a path change the NLMS_erl of the NLMS increases back to the nominal
+ value. The speed to increase can be controlled by this parameter.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>1.14</td>
+ <td>@ref LVHF_PCD_ERL_STEP_MIN (16384)</td>
+ <td>@ref LVHF_PCD_ERL_STEP_DEFAULT (16800)</td>
+ <td>@ref LVHF_PCD_ERL_STEP_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 PCD_erl_step; ///< Step of ERL increase after PCD.
+
+ /**
+ Gain factor applied to the echo subtraction during acoustical path change.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>7.8</td>
+ <td>@ref LVHF_PCD_GAMMA_E_RESCUE_MIN (0)</td>
+ <td>@ref LVHF_PCD_GAMMA_E_RESCUE_DEFAULT (5000)</td>
+ <td>@ref LVHF_PCD_GAMMA_E_RESCUE_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 PCD_gamma_e_rescue; ///< gamma_e after PCD
+
+} LVHF_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVBD_SetControlParameters function but they
+* will not take effect until the next call to the LVBD_Process function.
+*
+* @see LVBD_SetControlParameters
+* @see LVBD_Process
+*/
+typedef struct
+{
+ /**
+ Set Bulk Delay operating mode on/off.
+ */
+ LVM_Mode_en BD_OperatingMode; ///< Set Bulk Delay operating mode on/off
+
+ /**
+ This parameter compensates for the fixed delay in the echo path and can be
+ measured in advance. This delay is caused by the audio I/O buffering, AD/DA
+ converter and propagation time between the loudspeaker and microphone. The unit
+ of 'BulkDelay' is [number of samples] at the respective sampling rate.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVBD_BULKDELAY_MIN (0)</td>
+ <td>@ref LVBD_BULKDELAY_DEFAULT (0)</td>
+ <td>@ref LVBD_BULKDELAY_MAX (6400)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 BulkDelay; ///< Sets Bulk Delay
+
+ /**
+ This param sets the gain for the Echo reference signal. Value 8192 belong to
+ 0dB
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>2.13</td>
+ <td>@ref LVBD_BD_GAIN_MIN (0)</td>
+ <td>@ref LVBD_BD_GAIN_DEFAULT (8192)</td>
+ <td>@ref LVBD_BD_GAIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 BD_Gain; ///< Apply Gain to Echo reference signal
+
+} LVBD_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVVE_Tx_SetControlParameters function but they
+* will not take effect until the next call to the LVVE_Tx_Process function.
+*
+* @see LVVE_Tx_SetControlParameters
+* @see LVVE_Tx_Process
+*/
+typedef struct
+{
+ /**
+ This enumerated type is used to set the operating mode of the Tx path. The
+ processing can be separately set to enable all processing modules (i.e., ON),
+ to disable all processing modules (i.e., OFF) or to bypass all processing
+ modules (i.e., BYPASS). When bypassed, all processing modules keep on running,
+ but their output is not used. When bypassing the Tx processing, the user can
+ select which buffer should be copied to the output buffer, if required: @li
+ Input microphone signal (or secondary microphone signal in case of
+ two-microphone setups); @li Rx reference signal; These operations ensure that
+ the input data is correctly transferred to the output buffer for all
+ combinations of input and output buffer types and input format. When OFF, the
+ input is copied to the output and the LVVE can be provided with invalid
+ parameters for modules. The sub module functions are not executed in this
+ scenario. Their combined functionality is summarized in follwoing table. <br>
+ <div align="center"> <table cellspacing="1" cellpadding="4" border="3">
+ <caption>LVVE Tx operating mode in combination with LVVE microphone routing
+ mode</caption> <tr> <th></th> <th colspan="2">MICROUTING_MODE_DEFAULT</th> <th
+ colspan="2">MICROUTING_MODE_SWAPPED</th> </tr> <tr> <th width="70"></th> <th
+ width="70">Process</th> <th width="70">Output</th> <th width="70">Process</th>
+ <th width="70">Output</th> </tr> <tr align="left"> <td>LVVE_TX_MODE_OFF</td>
+ <td>None</td> <td>Tx input 0</td> <td>None</td> <td>Tx input 1</td> </tr> <tr
+ align="left"> <td>LVVE_TX_MODE_ON</td> <td>Tx input 0</td> <td>Tx output</td>
+ <td>Tx input 1</td> <td>Tx output</td> </tr> <tr align="left">
+ <td>LVVE_TX_MODE_BYPASS_MIC0</td> <td>Tx input 0</td> <td>Tx input 0</td>
+ <td>Tx input 1</td> <td>Tx input 1</td> </tr> <tr align="left">
+ <td>LVVE_TX_MODE_BYPASS_MIC1</td> <td>Tx input 0</td> <td>Tx input 1</td>
+ <td>Tx input 1</td> <td>Tx input 0</td> </tr> <tr align="left">
+ <td>LVVE_TX_MODE_BYPASS_REF</td> <td>Tx input 0</td> <td>Tx ref input</td>
+ <td>Tx input 1</td> <td>Tx ref input</td> </tr> </table> </div>
+ */
+ LVVE_Tx_Mode_en OperatingMode; ///< TX Operating mode
+
+ /**
+ This param can mute unmute the Rx/Tx engine output.
+ */
+ LVM_Mode_en Mute; ///< This param can mute unmute the Rx/Tx engine output
+
+ /**
+ Set Bulk Delay operating mode on/off.
+ */
+ LVM_Mode_en BD_OperatingMode; ///< Set Bulk Delay operating mode on/off
+
+ /**
+ This parameter compensates for the fixed delay in the echo path and can be
+ measured in advance. This delay is caused by the audio I/O buffering, AD/DA
+ converter and propagation time between the loudspeaker and microphone. The unit
+ of 'BulkDelay' is [number of samples] at the respective sampling rate.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVVE_TX_BULKDELAY_MIN (0)</td>
+ <td>@ref LVVE_TX_BULKDELAY_DEFAULT (0)</td>
+ <td>@ref LVVE_TX_BULKDELAY_MAX (6400)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 BulkDelay; ///< Sets Bulk Delay
+
+ /**
+ This param sets the gain for the Echo reference signal. Value 8192 belong to
+ 0dB
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>2.13</td>
+ <td>@ref LVVE_TX_BD_GAIN_MIN (0)</td>
+ <td>@ref LVVE_TX_BD_GAIN_DEFAULT (8192)</td>
+ <td>@ref LVVE_TX_BD_GAIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 BD_Gain; ///< Apply Gain to Echo reference signal
+
+ /**
+ Turns on/off VOL_Gain.
+ */
+ LVM_Mode_en VOL_OperatingMode; ///< Turns on/off VOL_Gain
+
+ /**
+ The volume control gain can be used to set the overall volume level of the
+ signal. The gain is set in dB with steps of 1dB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVVE_TX_VOL_GAIN_MIN (-96)</td>
+ <td>@ref LVVE_TX_VOL_GAIN_DEFAULT (0)</td>
+ <td>@ref LVVE_TX_VOL_GAIN_MAX (24)</td>
+ </tr>
+ </table> */
+ LVM_INT16 VOL_Gain; ///< Apply Gain to Input signal
+
+ /**
+ Turns on/off High Pass filter.
+ */
+ LVM_Mode_en HPF_OperatingMode; ///< Turns on/off High Pass filter
+
+ /**
+ Sets the 3dB corner frequency of the high-pass filter. In case NoiseVoid is
+ enabled, the same high-pass filter will be applied to the second microphone
+ channel.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVVE_TX_MIC_HPF_CORNERFREQ_MIN (50)</td>
+ <td>@ref LVVE_TX_MIC_HPF_CORNERFREQ_DEFAULT (50)</td>
+ <td>@ref LVVE_TX_MIC_HPF_CORNERFREQ_MAX (1500)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 MIC_HPF_CornerFreq; ///< High Pass Filter Corner Frequency in Hz
+
+ /**
+ HandsFree Control Parameter Strcuture.
+ */
+ LVHF_ControlParams_st HF_ControlParams; ///< HandsFree Control Parameter Structure
+
+ /**
+ NoiseVoid Control Parameter Structure.
+ */
+ LVNV_ControlParams_st NV_ControlParams; ///< NoiseVoid Control Parameter Structure
+
+ /**
+ WhisperMode Control Parameter Structure.
+ */
+ LVWM_ControlParams_st WM_ControlParams; ///< WhisperMode Control Parameter Structure
+
+ /**
+ Equalizer Operating mode.
+ */
+ LVM_Mode_en EQ_OperatingMode; ///< Equalizer Operating mode
+
+ /**
+ Equalizer Control Parameter Structure.
+ */
+ LVEQ_ControlParams_st EQ_ControlParams; ///< Equalizer Control Parameters Structure
+
+ /**
+ DRC Control Parameter Structure.
+ */
+ LVDRC_ControlParams_st DRC_ControlParams; ///< DRC Control Parameter Structure
+
+} LVVE_Tx_ControlParams_st;
+
+
+
+/*[Begin] [lvwenhua-2012/3/12]*/
+#define LVVC_VOLUME_NUM 12
+
+typedef struct
+{
+ LVM_INT16 NoiseSensitivity[LVVC_VOLUME_NUM];
+} LVVC_NoiseSens_st;
+/*[End] [lvwenhua-2012/3/12]*/
+
+/*[Begin] [lvwenhua-2011/8/23]*/
+typedef struct
+{
+ LVVE_Tx_ControlParams_st Tx_ControlParams;
+ LVVE_Rx_ControlParams_st Rx_ControlParams;
+ LVEQ_Coefs_st TxEqCoefs;
+ LVEQ_Coefs_st RxEqCoefs;
+ /*[Begin] [lvwenhua-2012/3/12]*/
+ LVVC_NoiseSens_st RxVcNoiseSens;
+ /*[End] [lvwenhua-2012/3/12]*/
+} LVVE_ControlParams_st;
+typedef struct
+{
+ LVM_UINT32 isVpParamInNv;
+ LVVE_ControlParams_st Handset_ControlParams;
+ LVVE_ControlParams_st Handsfree_ControlParams;
+ LVVE_ControlParams_st Headset_ControlParams;
+ LVVE_ControlParams_st Bluetooth_ControlParams;
+} LVVE_ControlParams_All_st;
+/*[End] [lvwenhua-2011/8/23]*/
+
+
+
+
+
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __REL_LVVE_HF_NV1_VC_AGC_RX_DRC_RX_WB_VIDPP_H__ */
+
+/* End of file */
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/tos/PARAM_Default.h b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/tos/PARAM_Default.h
new file mode 100755
index 0000000..857327b
--- /dev/null
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/tos/PARAM_Default.h
@@ -0,0 +1,213 @@
+static LVM_CHAR LVVE_Tx_Preset_Buffer_Voice_Tool[] ={
+0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xBD, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00,
+0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x11, 0x00, 0x00, 0x00,
+0x20, 0x00, 0x08, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x80, 0x00, 0x40, 0x00, 0x00, 0x20, 0x80,
+0x00, 0x01, 0x00, 0xFF, 0x02, 0x33, 0x63, 0x33, 0x73, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x00, 0x33, 0x63, 0x33, 0x73, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0xC0, 0x5D, 0x18,
+0x01, 0x00, 0x02, 0x00, 0x03, 0x79, 0x28, 0x00, 0x40, 0x96, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00,
+0x00, 0x20, 0x4E, 0x10, 0x00, 0x40, 0x00, 0x40, 0x00, 0xA0, 0x41, 0x88, 0x13, 0x00, 0x00, 0x00,
+0x00, 0xF7, 0x49, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x08, 0x20, 0x00, 0x00,
+0x20, 0xE8, 0x03, 0x18, 0x00, 0x00, 0x20, 0xE8, 0x03, 0x00, 0x00, 0x08, 0x03, 0x20, 0x00, 0x00,
+0x20, 0xE8, 0x03, 0x18, 0x00, 0x00, 0x20, 0xE8, 0x03, 0x00, 0x00, 0x08, 0x03, 0x96, 0x00, 0xFF,
+0x7F, 0x9A, 0x19, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x10, 0x00, 0x8F, 0x02, 0x00, 0x04, 0x10, 0x00, 0x66, 0x06, 0x00, 0x01, 0x66,
+0x06, 0x00, 0x40, 0x00, 0x20, 0xE0, 0x2E, 0x58, 0x1B, 0x00, 0x01, 0xCE, 0x2C, 0x00, 0x40, 0x84,
+0x2B, 0x9A, 0x19, 0x66, 0x26, 0x00, 0x01, 0x00, 0x30, 0x00, 0x24, 0x40, 0x01, 0xE6, 0x00, 0x65,
+0x66, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x40, 0x80, 0x00, 0xFD, 0x1F, 0xB0, 0x63, 0xAD,
+0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
+0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA,
+0xFF, 0xF4, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+static LVM_CHAR LVVE_Rx_Preset_Buffer_Voice_Tool []={
+0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xBD, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x2A, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06,
+0x05, 0x20, 0x4E, 0x00, 0x40, 0x00, 0x01, 0x00, 0x20, 0x00, 0x02, 0x17, 0x2F, 0x5C, 0x7F, 0xB9,
+0x7E, 0x82, 0x5A, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
+0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA,
+0xFF, 0xF4, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x40, 0x80, 0x00, 0xFD,
+0x1F, 0xB0, 0x63, 0xAD, 0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xB0,
+0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xB0, 0xFF, 0xCE, 0xFF, 0xE8,
+0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00,
+0xBD, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0xE0, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x05, 0x20, 0x4E, 0x00, 0x40, 0x00, 0x01, 0x00, 0x20,
+0x00, 0x02, 0x17, 0x2F, 0x5C, 0x7F, 0xB9, 0x7E, 0x82, 0x5A, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
+0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF,
+0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA, 0xFF, 0xF4, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x07, 0x00, 0x00, 0x40, 0x80, 0x00, 0xFD, 0x1F, 0xB0, 0x63, 0xAD, 0x7F, 0x9D, 0x5A, 0x00, 0x24,
+0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xB0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00,
+0xA0, 0xFF, 0xB0, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x03, 0x00,
+0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xBD, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x2A, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x05, 0x20,
+0x4E, 0x00, 0x40, 0x00, 0x01, 0x00, 0x20, 0x00, 0x02, 0x17, 0x2F, 0x5C, 0x7F, 0xB9, 0x7E, 0x82,
+0x5A, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xA0,
+0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA, 0xFF, 0xF4,
+0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x40, 0x80, 0x00, 0xFD, 0x1F, 0xB0,
+0x63, 0xAD, 0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xB0, 0xFF, 0xBA,
+0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xB0, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00,
+0x00, 0x32, 0x00, 0x32, 0x00, 0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xBD, 0x02,
+0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x06,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0xE0, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x06, 0x05, 0x20, 0x4E, 0x00, 0x40, 0x00, 0x01, 0x00, 0x20, 0x00, 0x02,
+0x17, 0x2F, 0x5C, 0x7F, 0xB9, 0x7E, 0x82, 0x5A, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00,
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00,
+0xA0, 0xFF, 0xBA, 0xFF, 0xDA, 0xFF, 0xF4, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00,
+0x00, 0x40, 0x80, 0x00, 0xFD, 0x1F, 0xB0, 0x63, 0xAD, 0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00,
+0x00, 0x00, 0x05, 0x00, 0xB0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF,
+0xB0, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x03, 0x00, 0x09, 0x18,
+0x03, 0xD5, 0x07, 0x00, 0x00, 0xBD, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x05, 0x20, 0x4E, 0x00,
+0x40, 0x00, 0x01, 0x00, 0x20, 0x00, 0x02, 0x17, 0x2F, 0x5C, 0x7F, 0xB9, 0x7E, 0x82, 0x5A, 0x00,
+0x04, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xA0, 0xFF, 0xBA,
+0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA, 0xFF, 0xF4, 0xFF, 0x00,
+0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x40, 0x80, 0x00, 0xFD, 0x1F, 0xB0, 0x63, 0xAD,
+0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xB0, 0xFF, 0xBA, 0xFF, 0xCE,
+0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xB0, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0x32,
+0x00, 0x32, 0x00, 0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xBD, 0x02, 0x00, 0x00,
+0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x06, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0xE0, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x06, 0x05, 0x20, 0x4E, 0x00, 0x40, 0x00, 0x01, 0x00, 0x20, 0x00, 0x02, 0x17, 0x2F,
+0x5C, 0x7F, 0xB9, 0x7E, 0x82, 0x5A, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x05, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF,
+0xBA, 0xFF, 0xDA, 0xFF, 0xF4, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x40,
+0x80, 0x00, 0xFD, 0x1F, 0xB0, 0x63, 0xAD, 0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00,
+0x05, 0x00, 0xB0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xB0, 0xFF,
+0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00
+};
+
+static LVM_CHAR LVVE_Tx_Mute_File_Buffer[] ={
+0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xBD, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00,
+0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x11, 0x00, 0x00, 0x00,
+0x20, 0x00, 0x08, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x80, 0x00, 0x40, 0x00, 0x00, 0x20, 0x80,
+0x00, 0x01, 0x00, 0xFF, 0x02, 0x33, 0x63, 0x33, 0x73, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x00, 0x33, 0x63, 0x33, 0x73, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0xC0, 0x5D, 0x18,
+0x01, 0x00, 0x02, 0x00, 0x03, 0x79, 0x28, 0x00, 0x40, 0x96, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00,
+0x00, 0x20, 0x4E, 0x10, 0x00, 0x40, 0x00, 0x40, 0x00, 0xA0, 0x41, 0x88, 0x13, 0x00, 0x00, 0x00,
+0x00, 0xF7, 0x49, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x08, 0x20, 0x00, 0x00,
+0x20, 0xE8, 0x03, 0x18, 0x00, 0x00, 0x20, 0xE8, 0x03, 0x00, 0x00, 0x08, 0x03, 0x20, 0x00, 0x00,
+0x20, 0xE8, 0x03, 0x18, 0x00, 0x00, 0x20, 0xE8, 0x03, 0x00, 0x00, 0x08, 0x03, 0x96, 0x00, 0xFF,
+0x7F, 0x9A, 0x19, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x10, 0x00, 0x8F, 0x02, 0x00, 0x04, 0x10, 0x00, 0x66, 0x06, 0x00, 0x01, 0x66,
+0x06, 0x00, 0x40, 0x00, 0x20, 0xE0, 0x2E, 0x58, 0x1B, 0x00, 0x01, 0xCE, 0x2C, 0x00, 0x40, 0x84,
+0x2B, 0x9A, 0x19, 0x66, 0x26, 0x00, 0x01, 0x00, 0x30, 0x00, 0x24, 0x40, 0x01, 0xE6, 0x00, 0x65,
+0x66, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x40, 0x80, 0x00, 0xFD, 0x1F, 0xB0, 0x63, 0xAD,
+0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
+0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA,
+0xFF, 0xF4, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+static LVM_CHAR LVVE_Tx_Wb_Mute_File_Buffer[] ={
+0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xBD, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00,
+0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x11, 0x00, 0x00, 0x00,
+0x20, 0x00, 0x08, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x80, 0x00, 0x40, 0x00, 0x00, 0x20, 0x80,
+0x00, 0x01, 0x00, 0xFF, 0x02, 0x33, 0x63, 0x33, 0x73, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x00, 0x33, 0x63, 0x33, 0x73, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0xC0, 0x5D, 0x18,
+0x01, 0x00, 0x02, 0x00, 0x03, 0x79, 0x28, 0x00, 0x40, 0x96, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00,
+0x00, 0x20, 0x4E, 0x10, 0x00, 0x40, 0x00, 0x40, 0x00, 0xA0, 0x41, 0x88, 0x13, 0x00, 0x00, 0x00,
+0x00, 0xF7, 0x49, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x08, 0x20, 0x00, 0x00,
+0x20, 0xE8, 0x03, 0x18, 0x00, 0x00, 0x20, 0xE8, 0x03, 0x00, 0x00, 0x08, 0x03, 0x20, 0x00, 0x00,
+0x20, 0xE8, 0x03, 0x18, 0x00, 0x00, 0x20, 0xE8, 0x03, 0x00, 0x00, 0x08, 0x03, 0x96, 0x00, 0xFF,
+0x7F, 0x9A, 0x19, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x10, 0x00, 0x8F, 0x02, 0x00, 0x04, 0x10, 0x00, 0x66, 0x06, 0x00, 0x01, 0x66,
+0x06, 0x00, 0x40, 0x00, 0x20, 0xE0, 0x2E, 0x58, 0x1B, 0x00, 0x01, 0xCE, 0x2C, 0x00, 0x40, 0x84,
+0x2B, 0x9A, 0x19, 0x66, 0x26, 0x00, 0x01, 0x00, 0x30, 0x00, 0x24, 0x40, 0x01, 0xE6, 0x00, 0x65,
+0x66, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x40, 0x80, 0x00, 0xFD, 0x1F, 0xB0, 0x63, 0xAD,
+0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
+0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA,
+0xFF, 0xF4, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/tos/audio_process.a b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/tos/audio_process.a
new file mode 100755
index 0000000..449febf
--- /dev/null
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/tos/audio_process.a
Binary files differ
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/tos/nxp_DrvNvData.h b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/tos/nxp_DrvNvData.h
new file mode 100755
index 0000000..418c259
--- /dev/null
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/tos/nxp_DrvNvData.h
@@ -0,0 +1,6 @@
+//6 level volume
+//add by zhanglixia
+//#define LVWM_TX_FILE_SIZE 463 //×Ö½ÚÊý
+//#define LVWM_RX_FILE_SIZE 1866
+
+//const static LVM_CHAR LVVE_Param_Test[] ={};
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/uclinux/LVC_Types.h b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/uclinux/LVC_Types.h
new file mode 100755
index 0000000..14efe8c
--- /dev/null
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/uclinux/LVC_Types.h
@@ -0,0 +1,383 @@
+/************************************************************************/
+/* Copyright (c) 2004-2014 NXP Software. All rights are reserved. */
+/* Reproduction in whole or in part is prohibited without the prior */
+/* written consent of the copyright owner. */
+/* */
+/* This software and any compilation or derivative thereof is and */
+/* shall remain the proprietary information of NXP Software and is */
+/* highly confidential in nature. Any and all use hereof is restricted */
+/* and is subject to the terms and conditions set forth in the */
+/* software license agreement concluded with NXP Software. */
+/* */
+/* Under no circumstances is this software or any derivative thereof */
+/* to be combined with any Open Source Software in any way or */
+/* licensed under any Open License Terms without the express prior */
+/* written permission of NXP Software. */
+/* */
+/* For the purpose of this clause, the term Open Source Software means */
+/* any software that is licensed under Open License Terms. Open */
+/* License Terms means terms in any license that require as a */
+/* condition of use, modification and/or distribution of a work */
+/* */
+/* 1. the making available of source code or other materials */
+/* preferred for modification, or */
+/* */
+/* 2. the granting of permission for creating derivative */
+/* works, or */
+/* */
+/* 3. the reproduction of certain notices or license terms */
+/* in derivative works or accompanying documentation, or */
+/* */
+/* 4. the granting of a royalty-free license to any party */
+/* under Intellectual Property Rights */
+/* */
+/* regarding the work and/or any work that contains, is combined with, */
+/* requires or otherwise is based on the work. */
+/* */
+/* This software is provided for ease of recompilation only. */
+/* Modification and reverse engineering of this software are strictly */
+/* prohibited. */
+/* */
+/************************************************************************/
+
+/****************************************************************************************
+
+ $Author: beq07720 $
+ $Revision: 55357 $
+ $Date: 2014-03-05 22:16:13 +0530 (Wed, 05 Mar 2014) $
+
+*****************************************************************************************/
+
+/** @file
+ * Header file defining the standard LifeVibes types for use in the application layer
+ * interface of all LifeVibes modules
+ */
+
+#ifndef LVM_TYPES_H
+#define LVM_TYPES_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/****************************************************************************************/
+/* */
+/* definitions */
+/* */
+/****************************************************************************************/
+
+#define LVM_NULL 0 ///< NULL pointer
+
+#define LVM_TRUE 1 ///< Boolean True
+#define LVM_FALSE 0 ///< Boolean False
+
+#define LVM_MAXINT_8 127 ///< Maximum positive integer size
+#define LVM_MAXINT_16 32767 ///< Maximum signed int 16 bits number
+#define LVM_MAXINT_32 2147483647 ///< Maximum signed int 32 bits number
+#define LVM_MAXUINT_32 4294967295U ///< Maximum un-signed int 32 bits number
+
+#if ( defined(VARIANT_24BIT) )
+#define LVM_MAXENUM 8388607L ///< Maximum value for enumerator
+#else
+#define LVM_MAXENUM 2147483647 ///< Maximum value for enumerator
+#endif
+
+#define LVM_MODULEID_MASK 0xFF00 ///< Mask to extract the calling module ID from callbackId
+#define LVM_EVENTID_MASK 0x00FF ///< Mask to extract the callback event from callbackId
+
+/* Memory table*/
+#define LVM_MEMREGION_PERSISTENT_SLOW_DATA 0 ///< Offset to the instance memory region
+#define LVM_MEMREGION_PERSISTENT_FAST_DATA 1 ///< Offset to the persistent data memory region
+#define LVM_MEMREGION_PERSISTENT_FAST_COEF 2 ///< Offset to the persistent coefficient memory region
+#define LVM_MEMREGION_TEMPORARY_FAST 3 ///< Offset to temporary memory region
+
+#define LVM_NR_MEMORY_REGIONS 4 ///< Number of memory regions
+
+#define LVM_MODE_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVM_Mode_en in LVWireFormat
+#define LVM_CONFIG_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVM_Config_en in LVWireFormat
+#define LVM_FS_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVM_Fs_en sample Rate in LVWireFormat
+
+#define LVM_CHAR_LVWIREFORMAT_LENGTH (1)
+#define LVM_INT8_LVWIREFORMAT_LENGTH (1)
+#define LVM_UINT8_LVWIREFORMAT_LENGTH (1)
+
+#define LVM_INT16_LVWIREFORMAT_LENGTH (2)
+#define LVM_UINT16_LVWIREFORMAT_LENGTH (2)
+
+#define LVM_INT32_LVWIREFORMAT_LENGTH (4)
+#define LVM_UINT32_LVWIREFORMAT_LENGTH (4)
+
+
+/****************************************************************************************/
+/* */
+/* Basic types */
+/* */
+/****************************************************************************************/
+
+#if defined(CORE_TIC64)
+typedef char LVM_CHAR; ///< ASCII character
+
+typedef char LVM_INT8; ///< Signed 8-bit word
+typedef unsigned char LVM_UINT8; ///< Unsigned 8-bit word
+
+typedef short LVM_INT16; ///< Signed 16-bit word
+typedef unsigned short LVM_UINT16; ///< Unsigned 16-bit word
+
+typedef int LVM_INT32; ///< Signed 32-bit word
+typedef unsigned int LVM_UINT32; ///< Unsigned 32-bit word
+#else
+
+#if ( defined(VARIANT_FRAC16) || defined (VARIANT_REFREAL16) )
+typedef long DATATYPE; ///< long data type
+
+typedef char LVM_CHAR; ///< ASCII character
+
+typedef char LVM_INT8; ///< Signed 8-bit word
+typedef unsigned char LVM_UINT8; ///< Unsigned 8-bit word
+
+typedef long LVM_INT16; ///< Signed 16-bit word
+typedef long LVM_UINT16; ///< Unsigned 16-bit word
+
+typedef long LVM_INT32; ///< Signed 32-bit word
+typedef long LVM_UINT32; ///< Unsigned 32-bit word
+
+#else
+typedef char LVM_CHAR; ///< ASCII character
+
+typedef char LVM_INT8; ///< Signed 8-bit word
+typedef unsigned char LVM_UINT8; ///< Unsigned 8-bit word
+
+typedef short LVM_INT16; ///< Signed 16-bit word
+typedef unsigned short LVM_UINT16; ///< Unsigned 16-bit word
+
+typedef long LVM_INT32; ///< Signed 32-bit word
+typedef unsigned long LVM_UINT32; ///< Unsigned 32-bit word
+#if ( defined(VARIANT_24BIT) )
+
+#define LVM_MAXINT_24 8388607L ///< 24 bit max int
+#define LVM_MININT_24 -8388608L ///< 24bit min int
+
+#define LVM_MAXINT_48 140737488355327LL ///< 48bit max int
+#define LVM_MININT_48 -140737488355328LL ///< 48bit min int
+
+#endif // VARIANT_24BIT
+
+#endif // VARIANT_FRAC16
+
+#endif // CORE_TIC64
+
+/****************************************************************************************/
+/* */
+/* Standard Enumerated types */
+/* */
+/****************************************************************************************/
+
+/**
+The @ref LVM_Mode_en enumerated type is used to set the operating mode of a particular feature inside the LifeVibes modules.
+The feature can be separately set to enable the feature processing (i.e., ON) or to disable all feature processing
+modules (i.e., OFF).
+*/
+typedef enum
+{
+ LVM_MODE_OFF = 0, ///< LVM module disabled
+ LVM_MODE_ON = 1, ///< LVM module enabled
+ LVM_MODE_DUMMY = LVM_MAXENUM
+} LVM_Mode_en;
+
+/**
+Sets stream Format
+*/
+typedef enum
+{
+ LVM_STEREO = 0, ///<Stereo stream
+ LVM_MONOINSTEREO = 1, ///<Mono in stereo stream
+ LVM_MONO = 2, ///<Mono stream
+ LVM_5DOT1 = 3, ///<stream 5.1 formatted
+ LVM_7DOT1 = 4, ///<stream 7.1 formatted
+ LVM_SOURCE_DUMMY = LVM_MAXENUM
+} LVM_Format_en;
+
+/**
+Sets Speaker type
+*/
+typedef enum
+{
+ LVM_SPEAKER_MONO = 0, ///< Mono type speaker
+ LVM_SPEAKER_STEREO = 1, ///< Stereo type speaker
+ LVM_SPEAKER_DUMMY = LVM_MAXENUM
+} LVM_SpeakerType_en;
+
+/**
+Sets Word length
+*/
+typedef enum
+{
+ LVM_16_BIT = 0, ///< 16 bit word length
+ LVM_32_BIT = 1, ///< 32 bit word length
+ LVM_WORDLENGTH_DUMMY = LVM_MAXENUM
+} LVM_WordLength_en;
+
+/**
+The LVM product supports the sample rates specified in @ref LVM_Fs_en. The input and output sample rates are always the same.
+*/
+typedef enum
+{
+ LVM_FS_8000 = 0, ///< 8k sampling rate
+ LVM_FS_11025 = 1, ///< 11.025k sampling rate
+ LVM_FS_12000 = 2, ///< 12k sampling rate
+ LVM_FS_16000 = 3, ///< 16k sampling rate
+ LVM_FS_22050 = 4, ///< 22.050k sampling rate
+ LVM_FS_24000 = 5, ///< 24k sampling rate
+ LVM_FS_32000 = 6, ///< 32k sampling rate
+ LVM_FS_44100 = 7, ///< 44.1k sampling rate
+ LVM_FS_48000 = 8, ///< 48k sampling rate
+ LVM_FS_COUNT = 9, ///< Max sampling rate count
+ LVM_FS_INVALID = LVM_MAXENUM-1,
+ LVM_FS_DUMMY = LVM_MAXENUM
+} LVM_Fs_en;
+
+/**
+The enumerated type is used to select the reset mode for the module.
+@ref LVM_RESET_SOFT is used to select a soft reset (or partial reset) and @ref LVM_RESET_HARD is
+used to select a hard reset (full re-initialization).
+*/
+typedef enum
+{
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>MODE</b></td>
+ </tr>
+ <tr>
+ <td>ResetType</td>
+ <td>@ref LVM_RESET_SOFT</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>@ref LVM_RESET_HARD</td>
+ </tr>
+</table>
+*/
+ LVM_RESET_SOFT = 0, ///< Reset type for LVM where a partial reset of the module should be performed
+ LVM_RESET_HARD = 1, ///< Reset type for LVM where a full reset of the module should be performed
+ LVM_RESET_DUMMY = LVM_MAXENUM
+} LVM_ResetType_en;
+
+/**
+The @ref LVM_MemoryTypes_en enumerated type identifies the memory region types so that they can be correctly placed in memory
+by the calling application.
+The module initially has no permanent memory storage and makes no use of persistent memory allocation internally.
+The calling application must allocate memory for the module to use.
+
+Four memory regions are required:
+@li @ref LVM_MEMREGION_PERSISTENT_SLOW_DATA : this type of memory is used to store all the control data that needs to be saved between two consecutive calls to the process function.
+@li @ref LVM_MEMREGION_PERSISTENT_FAST_DATA : this type of memory is used to store data such as filter history
+@li @ref LVM_MEMREGION_PERSISTENT_FAST_COEF : this type of memory is used to store filter coefficients.
+@li @ref LVM_MEMREGION_TEMPORARY_FAST (scratch): this type of memory is used to store temporary data. This memory can be reused by the application in between calls to the process function.
+
+This collection of memory regions forms the module instance.
+
+Typically the memory is allocated by the application dynamically; however, it can be allocated statically if required.
+The sizes of the memory regions can be found by running the GetMemoryTable functions on a simulator and noting
+the returned values. Alternatively contact NXP who can provide the figures.
+It is possible that these memory sizes will change between release versions of the library and hence the dynamic memory allocation method is preferred where possible.
+On some target platforms the placement of memory regions is critical for achieving optimal performance of the module.
+*/
+typedef enum
+{
+ LVM_PERSISTENT_SLOW_DATA = LVM_MEMREGION_PERSISTENT_SLOW_DATA, ///< Persistent slow memory region
+ LVM_PERSISTENT_FAST_DATA = LVM_MEMREGION_PERSISTENT_FAST_DATA, ///< Persistent fast memory region
+ LVM_PERSISTENT_FAST_COEF = LVM_MEMREGION_PERSISTENT_FAST_COEF, ///< Persisten fast memory for coefficient storage
+ LVM_TEMPORARY_FAST = LVM_MEMREGION_TEMPORARY_FAST, ///< Temporary fast memory region
+ LVM_MEMORYTYPE_DUMMY = LVM_MAXENUM
+} LVM_MemoryTypes_en;
+
+/**
+Sets mod of Configuration
+*/
+typedef enum
+{
+ LVM_CONFIG_HANDSET = 0, ///< Handset configuration
+ LVM_CONFIG_SPEAKERPHONE = 1, ///< Speaker mod configuration
+ LVM_CONFIG_EARPIECE = 2, ///< Earpiece configuration
+ LVM_CONFIG_DUMMY = LVM_MAXENUM
+} LVM_Config_en;
+
+/**
+The @ref LVM_MemoryRegion_st type defines a memory region by specifying its size in bytes, its region type and its base pointer.
+@see LVM_MemoryTypes_en
+*/
+#if ( defined(VARIANT_24BIT) )
+typedef struct
+{
+ LVM_INT24 Size; ///< The size of the memory region in bytes
+ LVM_MemoryTypes_en Type; ///< Type of memory region
+ void *pBaseAddress; ///< Pointer to the memory region base address
+} LVM_MemoryRegion_st;
+#else
+typedef struct
+{
+ LVM_UINT32 Size; ///< The size of the memory region in bytes
+ LVM_MemoryTypes_en Type; ///< Type of memory region
+ void *pBaseAddress; ///< Pointer to the memory region base address
+} LVM_MemoryRegion_st;
+#endif
+
+/**
+The LVM_MemoryTable_st type defines the memory requirements of the module as an array of region definitions.
+The number of required memory regions is given by the constant @ref LVM_NR_MEMORY_REGIONS
+@see LVM_MemoryRegion_st
+*/
+typedef struct
+{
+ LVM_MemoryRegion_st Region[LVM_NR_MEMORY_REGIONS]; ///< One definition of all memory regions
+} LVM_MemoryTable_st;
+
+/**
+Beats Per Minute Structure
+*/
+typedef struct
+{
+ LVM_INT16 ShortTermMinimum; ///< Beats per minute in Q9.6 format
+ LVM_INT16 ShortTermAverage; ///< Beats per minute in Q9.6 format
+ LVM_INT16 ShortTermMaximum; ///< Beats per minute in Q9.6 format
+
+ LVM_INT16 Confidence; ///< Beat confidence level: 0 = no confidence, 32767 = maximum confidence
+ LVM_INT16 Strength; ///< Beat strength level: 0 = no beat, 32767 = maximum strength beat
+ LVM_INT16 LongTermMinimum; ///< Beats per minute in Q9.6 format
+ LVM_INT16 LongTermAverage; ///< Beats per minute in Q9.6 format
+ LVM_INT16 LongTermMaximum; ///< Beats per minute in Q9.6 format
+
+} LVM_BPMModuleStats_st;
+
+
+/****************************************************************************************/
+/* */
+/* Standard Function Prototypes */
+/* */
+/****************************************************************************************/
+/**
+@brief General purpose callback function
+
+@param pCallbackData Pointer to the callback data structure
+@param pGeneralPurpose General purpose pointer (e.g. to a data structure needed in the callback)
+@param PresetLength General purpose variable (e.g. to be used as callback ID)
+@return \ref LVM_INT32
+*/
+typedef LVM_INT32 (*LVM_Callback)(void *pCallbackData,
+ void *pGeneralPurpose,
+ LVM_INT16 GeneralPurpose );
+
+
+/****************************************************************************************/
+/* */
+/* End of file */
+/* */
+/****************************************************************************************/
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* LVM_TYPES_H */
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/uclinux/LVVE.h b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/uclinux/LVVE.h
new file mode 100755
index 0000000..9c48d8e
--- /dev/null
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/uclinux/LVVE.h
@@ -0,0 +1,1371 @@
+/****************************************************************************************/
+/* Copyright (c) 2004-2014 NXP Software. All rights are reserved. */
+/* Reproduction in whole or in part is prohibited without the prior */
+/* written consent of the copyright owner. */
+/* */
+/* This software and any compilation or derivative thereof is and */
+/* shall remain the proprietary information of NXP Software and is */
+/* highly confidential in nature. Any and all use hereof is restricted */
+/* and is subject to the terms and conditions set forth in the */
+/* software license agreement concluded with NXP Software. */
+/* */
+/* Under no circumstances is this software or any derivative thereof */
+/* to be combined with any Open Source Software in any way or */
+/* licensed under any Open License Terms without the express prior */
+/* written permission of NXP Software. */
+/* */
+/* For the purpose of this clause, the term Open Source Software means */
+/* any software that is licensed under Open License Terms. Open */
+/* License Terms means terms in any license that require as a */
+/* condition of use, modification and/or distribution of a work */
+/* */
+/* 1. the making available of source code or other materials */
+/* preferred for modification, or */
+/* */
+/* 2. the granting of permission for creating derivative */
+/* works, or */
+/* */
+/* 3. the reproduction of certain notices or license terms */
+/* in derivative works or accompanying documentation, or */
+/* */
+/* 4. the granting of a royalty-free license to any party */
+/* under Intellectual Property Rights */
+/* */
+/* regarding the work and/or any work that contains, is combined with, */
+/* requires or otherwise is based on the work. */
+/* */
+/* This software is provided for ease of recompilation only. */
+/* Modification and reverse engineering of this software are strictly */
+/* prohibited. */
+/* */
+/****************************************************************************************/
+
+/****************************************************************************************/
+/* */
+/* $Author: nxp65285 $*/
+/* $Revision: 56908 $*/
+/* $Date: 2014-04-10 17:30:02 +0530 (Thu, 10 Apr 2014) $*/
+/* */
+/****************************************************************************************/
+
+/**
+@file
+Header file for the application layer interface of the LVVE module.
+This files includes all definitions, types, structures and function prototypes
+required by the calling layer. All other types, structures and functions are
+private.
+*/
+
+#ifndef __LVVE_H__
+#define __LVVE_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/****************************************************************************************/
+/* */
+/* Includes */
+/* */
+/****************************************************************************************/
+
+#include "LVVE_VID.h"
+
+/****************************************************************************************/
+/* */
+/* Definitions */
+/* */
+/****************************************************************************************/
+/* Below include logic is designed to reduce checks to 1 or 2 conditions due to limitations in the backend stripping code */
+
+
+
+
+
+#define LVVE_MAX_PCM_FRAME_SIZE 160 ///< LVVE maximum processing frame size
+
+
+#define LVVE_NOISESAMPLES_PER_FRAME 2 ///< Number of samples required for noise estimation per frame
+/**
+@def LVVE_RX_PRESET_LENGTH
+Length of the LVVE_Rx preset buffer (number of bytes).
+@see LVVE_Rx_SetPreset
+@ingroup LVVE_Rx
+*/
+#define LVVE_RX_PRESET_LENGTH (LVVIDHEADER_CONTROLPARAMS_LVWIREFORMAT_LENGTH + LVVE_RX_CONTROLPARAMS_LVWIREFORMAT_LENGTH) ///< RX preset Buffer length
+
+/**
+@def LVVE_TX_PRESET_LENGTH
+Length of the LVVE_Tx preset buffer (number of bytes).
+@see LVVE_Tx_SetPreset
+@ingroup LVVE_Tx
+*/
+#define LVVE_TX_PRESET_LENGTH (LVVIDHEADER_CONTROLPARAMS_LVWIREFORMAT_LENGTH + LVVE_TX_CONTROLPARAMS_LVWIREFORMAT_LENGTH) ///< TX preset buffer length
+
+
+/* Deprecated Definitions */
+
+#define LVVE_MAX_BULK_DELAY LVVE_TX_BULKDELAY_MAX
+#define LVVE_RX_MODE_DUMMY LVVE_RX_MODE_EN_DUMMY
+#define LVVE_TX_MODE_DUMMY LVVE_TX_MODE_EN_DUMMY
+
+#define LVVE_MAX_VOL_GAIN_DB LVVE_TX_VOL_GAIN_MAX
+#define LVVE_MIN_VOL_GAIN_DB LVVE_TX_VOL_GAIN_MIN
+
+#define LVVE_MAX_HPF_CORNER_HZ LVVE_TX_MIC_HPF_CORNERFREQ_MAX
+#define LVVE_MIN_HPF_CORNER_HZ LVVE_TX_MIC_HPF_CORNERFREQ_MIN
+
+#define LVVE_MAX_HPF_RX_CORNER_HZ LVVE_RX_HPF_CORNERFREQ_MAX
+
+#define LVVE_MAX_NLPP_LIMIT_DB LVNLPP_NLPP_LIMIT_MAX
+#define LVVE_MIN_NLPP_LIMIT_DB LVNLPP_NLPP_LIMIT_MIN
+
+
+#define LVVE_MAX_DRC_LEVEL LVDRC_COMPRESSORCURVEINPUTLEVELS_MAX
+#define LVVE_MIN_DRC_LEVEL LVDRC_COMPRESSORCURVEINPUTLEVELS_MIN
+#define LVVE_MIN_DRC_NUMKNEES LVDRC_NUMKNEES_MIN
+#define LVVE_MAX_DRC_NUMKNEES LVDRC_NUMKNEES_MAX
+#define LVVE_MIN_DRC_ATTACKTIME LVDRC_ATTACKTIME_MIN
+#define LVVE_MAX_DRC_ATTACKTIME LVDRC_ATTACKTIME_MAX
+#define LVVE_MIN_DRC_RELEASETIME LVDRC_RELEASETIME_MIN
+#define LVVE_MAX_DRC_RELEASETIME LVDRC_RELEASETIME_MAX
+
+
+/* End deprecated defines*/
+/****************************************************************************************/
+/* */
+/* Types */
+/* */
+/****************************************************************************************/
+
+/**
+LVVE_Tx Instance Handle
+This handle is used by most of the LVVE APIs
+@see LVVE_Tx_GetInstanceHandle
+@ingroup LVVE_Tx
+*/
+typedef void *LVVE_Tx_Handle_t; ///< LVVE Tx handle
+/**
+This handle is used by most of the LVVE APIs
+@see LVVE_Rx_GetInstanceHandle
+@ingroup LVVE_Rx
+*/
+typedef void *LVVE_Rx_Handle_t; ///< LVVE Rx handle
+
+/**
+This enum type specifies the different error codes returned by the API functions
+For the exact meaning see the individual function descriptions
+*/
+typedef enum
+{
+ LVVE_SUCCESS = 0, ///< Successful return from a routine
+ LVVE_ALIGNMENTERROR = 1, ///< Memory alignment error
+ LVVE_NULLADDRESS = 2, ///< NULL allocation address
+ LVVE_OUTOFRANGE = 3, ///< Out of range parameter
+ LVVE_INVALIDNUMSAMPLES = 4, ///< Invalid number of samples
+ LVVE_INVALID_ALGORITHM_CONFIGURATION = 5, ///< Mutually exclusive algorithms configured ON
+ LVVE_INVALID_STATE_CONFIGURATION = 6, ///< Invalid state of the algorithm
+ LVVE_PRESET_INVALID_BUFFER_LENGTH = 7, ///< Incorrect length of buffer used in SetPreset
+ LVVE_PRESET_INVALID_VOLUME_INDEX = 8, ///< The volume index exceeds the buffer content in SetPreset
+ LVVE_PRESET_INVALID_BUFFER_VERSION = 9, ///< The version of the preset buffer does not match this library
+ LVVE_PRESET_INVALID_BASELINE_VERSION = 10, ///< Invalid LVVE Baseline Version in preset buffer
+ LVVE_PRESET_INVALID_MASK = 11, ///< Invalid algorithm mask in preset buffer
+ LVVE_PRESET_INVALID_SAMPLE_RATE = 12, ///< Invalid sample rate @ref LVM_Fs_en in preset buffer
+ LVVE_PRESET_INVALID_LVWIREFORMAT_MESSAGEID = 13, ///< Invalid @ref LVVIDHeader_MessageID_en wire format message id in preset buffer
+
+ LVVE_RETURNSTATUS_DUMMY = LVM_MAXENUM
+} LVVE_ReturnStatus_en;
+
+/**
+Byte array containing encoded LVVE_Rx_ControlParams for one or multiple volumes.
+The length of this array should be a multiple of @ref LVVE_RX_PRESET_LENGTH.
+@see LVVE_Rx_SetPreset
+@ingroup LVVE_Rx
+*/
+typedef LVM_CHAR* LVVE_Rx_Preset_t; ///< LVVE Rx preset buffer
+
+/**
+Byte array containing encoded LVVE_Tx_ControlParams for one or multiple volumes.
+The length of this array should be a multiple of @ref LVVE_TX_PRESET_LENGTH.
+@see LVVE_Tx_SetPreset
+@ingroup LVVE_Tx
+*/
+typedef LVM_CHAR* LVVE_Tx_Preset_t; ///< LVVE Tx preset buffer
+
+
+/****************************************************************************************/
+/* */
+/* Structures */
+/* */
+/****************************************************************************************/
+
+/**
+The instance parameters define certain important operating limits required by the calling application.
+These instance parameters affect how much memory is required by the LVVE and hence must be provided
+when the instance is created.
+@see LVVE_Rx_GetMemoryTable
+@see LVVE_Rx_GetInstanceHandle
+@see LVVE_Tx_GetMemoryTable
+@see LVVE_Tx_GetInstanceHandle
+*/
+/**
+EQ Module Instance Parameters Structure.
+@see LVEQ_InstanceParams_st
+*/
+typedef struct
+{
+/**
+Max Size of Equalizer
+Sets the maximum length of the equalizer impulse response that can be used.
+It must be a multiple of 8.
+<table border>
+<caption>EQ Max Length Table</caption>
+ <tr>
+ <td><b>Unit</b></td>
+ <td><b>Q format</b></td>
+ <td><b>Data Range</b></td>
+ <td><b>Default Values</b></td>
+ </tr>
+ <tr>
+ <td><b>Integer Length in Samples</b></td>
+ <td><b>Q16.0</b></td>
+ <td>[8,\ref LVEQ_EQ_LENGTH_MAX]</td>
+ <td>\ref LVEQ_EQ_LENGTH_DEFAULT</td>
+ </tr>
+</table>
+*/
+ LVM_UINT16 EQ_MaxLength; ///< EQ Max Length
+} LVEQ_InstanceParams_st;
+
+/**
+Tx Instance Parameter Structure
+These parameters are set at initialization time and may not be changed during processing
+@ref LVVE_Tx_GetInstanceHandle
+@ingroup LVVE_Tx
+*/
+typedef struct
+{
+ LVM_Fs_en SampleRate; ///< Sample rate
+/**
+Sets the maximum length of the bulk delay between Rx and Tx expressed in samples.
+The unit of MaxBulkDelay is [number of samples] at the respective sampling rate.
+<table border>
+<caption>Max Bulk Delay Table</caption>
+ <tr>
+ <td><b>Type</b></td>
+ <td><b>Unit</b></td>
+ <td><b>Q format</b></td>
+ <td><b>Data Range</b></td>
+ <td><b>Default Values</b></td>
+ </tr>
+ <tr>
+ <td><b>LVM_UINT16</b></td>
+ <td><b>Integer Length in Samples</b></td>
+ <td><b>Q16.0</b></td>
+ <td>[0,6400]</td>
+ <td>None</td>
+ </tr>
+</table>
+*/
+ LVM_UINT16 MaxBulkDelay; ///< Max bulk delay
+
+ LVEQ_InstanceParams_st EQ_InstParams; ///< EQ instance
+} LVVE_Tx_InstanceParams_st;
+
+/**
+Rx Instance Parameter Structure
+These parameters are set at initialization time and may not be changed during processing.
+@ref LVVE_Rx_GetInstanceHandle
+@ingroup LVVE_Rx
+*/
+typedef struct
+{
+ LVM_Fs_en SampleRate; ///< LVVE sample rate
+ LVEQ_InstanceParams_st EQ_InstParams;///< EQ instance
+
+} LVVE_Rx_InstanceParams_st;
+
+/**
+The version information structure contains one character field to store LVVE version number.
+A call to the @ref LVVE_GetVersionInfo function is needed to retrieve this information.
+*/
+typedef struct
+{
+ LVM_CHAR VersionNumber[64]; ///< Version number of the LifeVibes™ VoiceExperience library
+} LVVE_VersionInfo;
+
+/**
+Used to reset LVVE_Rx module any time.
+@ref LVM_ResetType_en parameter determine the type of reset required
+@ingroup LVVE_Rx
+*/
+typedef struct
+{
+ LVM_ResetType_en ResetType; ///< RX Reset Type
+} LVVE_Rx_ResetParams_st;
+
+/**
+Used to reset LVVE_Tx module any time.
+LVM_ResetType_en parameter determine the type of reset required
+@ingroup LVVE_Tx
+*/
+typedef struct
+{
+ LVM_ResetType_en ResetType; ///< TX Reset Type
+} LVVE_Tx_ResetParams_st;
+
+/**
+@brief Retrieve the memory requirements of the LVVE_Tx module.
+
+This function returns a table of memory records that describe size, type and memory space of all buffers
+required by the instance. The number of initialized memory records is defined by LVVE_NR_MEMORY_REGIONS.
+This function is used for two purposes and is called in two different ways:
+
+@li Memory Allocation: When the LVVE_GetMemoryTable functions are called with a NULL instance handle (hInstance = LVM_NULL)
+ the function returns the memory requirements. The base address pointers in the memory table are set to NULL.
+ All elements of the instance parameters structure (pointed to by pInstParams) must contain valid values as the memory
+ requirements are affected by these settings.
+
+@li Memory Free: When called with a non-NULL instance handle (hInstance = a valid instance handle)
+ the function returns the memory table used when the instance was created.
+ The base address pointers returned will be those supplied by the calling application when the memory
+ was allocated and can now be used for freeing memory. The instance parameters (pointed to by pInstParams)
+ are ignored and the pInstParams parameter may be set to NULL.
+@li In case of memory allocation, all elements of the parameter initialization structure defined by pInstParams
+ must contain valid values as the memory requirements are affected by these settings.
+ In some releases of the bundle library one or more memory regions may have a zero size.
+
+@pre The number of memory records in the array defined by pMemoryTable is equal to @ref LVM_NR_MEMORY_REGIONS.
+@pre Exactly @ref LVM_NR_MEMORY_REGIONS memory records of pMemoryTable are initialized.
+
+@post When this function is called with hInstance = NULL the memory base address pointers
+will be NULL on return.
+@post When the function is called for freeing memory, hInstance = Instance Handle the
+memory table returns the allocated memory and base addresses used during
+initialisation.
+
+@return LVVE_SUCCESS when the function call succeeds and the memory table is filled correctly
+@return LVVE_NULLADDRESS when pMemoryTable was NULL
+@return LVVE_NULLADDRESS when pInstParams was NULL and the call was for memory allocation
+ is NULL.
+@return LVVE_OUTOFRANGE when pInstParams contains parameters out of the excepted range
+
+@note This function may be interrupted by the LVVE_Tx_Process function.
+
+@ingroup LVVE_Tx
+
+LVVE_Tx_GetMemoryTable: Memory Allocation Example:
+
+The following example shows how to get the memory requirements for the LVVE_Tx instance.
+\code
+ InstParams_Tx.SampleRate = LVM_FS_8000;
+ // Include the other instance params here
+
+ LVVE_Status = LVVE_Tx_GetMemoryTable ( LVM_NULL,
+ &MemTab_Tx,
+ &InstParams_Tx );
+
+ if( LVVE_Status != LVVE_SUCCESS )
+ {
+ // Handle Errors
+ }
+
+ for( c1 = 0; c1 < LVVE_NR_MEMORY_REGIONS; c1++ )
+ {
+ if( MemTab_Tx.Region[c1].Size != 0 )
+ {
+ MemTab_Tx.Region[c1].pBaseAddress =
+ malloc(MemTab_Tx.Region[c1].Size);
+ }
+ }
+\endcode
+
+LVVE_Tx_GetMemoryTable: Freeing Memory Example:
+
+The following example shows how to free the memory from the LVVE_Tx instance.
+
+\code
+ LVVE_Status = LVVE_Tx_GetMemoryTable( hInstance,
+ &MemTab_Tx,
+ LVM_NULL);
+
+ if (LVVE_Status != LVVE_SUCCESS)
+ {
+ // Handle errors
+ }
+
+ for( c1 = 0; c1 < LVVE_NR_MEMORY_REGIONS; c1++)
+ {
+ if (MemTab_Tx.Region[c1].Size != 0)
+ {
+ free(MemTab_Tx.Region[c1].pBaseAddress);
+ }
+ }
+\endcode
+
+*/
+
+LVVE_ReturnStatus_en LVVE_Tx_GetMemoryTable(LVVE_Tx_Handle_t hInstance,
+ LVM_MemoryTable_st *pMemoryTable,
+ LVVE_Tx_InstanceParams_st *pInstanceParams);
+
+/**
+@brief Retrieve the memory requirements of the LVVE_Rx module.
+
+This function returns a table of memory records that describe size, type and memory space of all buffers
+required by the instance. The number of initialized memory records is defined by LVVE_NR_MEMORY_REGIONS.
+This function is used for two purposes and is called in two different ways:
+
+@li Memory Allocation: When the LVVE_GetMemoryTable functions are called with a NULL instance handle (hInstance = LVM_NULL)
+ the function returns the memory requirements. The base address pointers in the memory table are set to NULL.
+ All elements of the instance parameters structure (pointed to by pInstParams) must contain valid values as the memory
+ requirements are affected by these settings.
+
+@li Memory Free: When called with a non-NULL instance handle (hInstance = a valid instance handle)
+ the function returns the memory table used when the instance was created.
+ The base address pointers returned will be those supplied by the calling application when the memory
+ was allocated and can now be used for freeing memory. The instance parameters (pointed to by pInstParams)
+ are ignored and the pInstParams parameter may be set to NULL.
+@li In case of memory allocation, all elements of the parameter initialization structure defined by pInstParams
+ must contain valid values as the memory requirements are affected by these settings.
+ In some releases of the bundle library one or more memory regions may have a zero size.
+
+@pre The number of memory records in the array defined by pMemoryTable is equal to @ref LVM_NR_MEMORY_REGIONS.
+@pre Exactly @ref LVM_NR_MEMORY_REGIONS memory records of pMemoryTable are initialized.
+
+@post When this function is called with hInstance = NULL the memory base address pointers
+will be NULL on return.
+@post When the function is called for freeing memory, hInstance = Instance Handle the
+memory table returns the allocated memory and base addresses used during
+initialisation.
+
+@return LVVE_SUCCESS when the function call succeeds and the memory table is filled correctly
+@return LVVE_NULLADDRESS when pMemoryTable was NULL
+@return LVVE_NULLADDRESS when pInstParams was NULL and the call was for memory allocation
+ is NULL.
+@return LVVE_OUTOFRANGE when pInstParams contains parameters out of the excepted range
+
+@note This function may be interrupted by the LVVE_Rx_Process function.
+
+@ingroup LVVE_Rx
+
+LVVE_Rx_GetMemoryTable: Memory Allocation Example:
+
+The following example shows how to get the memory requirements for the LVVE_Rx instance.
+
+\code
+ InstParams_Rx.SampleRate = LVM_FS_8000;
+ // Include the other instance params here
+
+ LVVE_Status = LVVE_Rx_GetMemoryTable ( LVM_NULL,
+ &MemTab_Rx,
+ &InstParams_Rx );
+
+ if( LVVE_Status != LVVE_SUCCESS )
+ {
+ // Handle Errors
+ }
+
+ for( c1 = 0; c1 < LVVE_NR_MEMORY_REGIONS; c1++ )
+ {
+ if( MemTab_Rx.Region[c1].Size != 0 )
+ {
+ MemTab_Rx.Region[c1].pBaseAddress =
+ malloc(MemTab_Rx.Region[c1].Size);
+ }
+ }
+\endcode
+
+LVVE_Rx_GetMemoryTable: Freeing Memory Example:
+
+The following example shows how to free the memory from the LVVE_Rx instance.
+
+\code
+ LVVE_Status = LVVE_Rx_GetMemoryTable( hInstance,
+ &MemTab_Rx,
+ LVM_NULL);
+
+ if (LVVE_Status != LVVE_SUCCESS)
+ {
+ // Handle errors
+ }
+
+ for( c1 = 0; c1 < LVVE_NR_MEMORY_REGIONS; c1++)
+ {
+ if (MemTab_Rx.Region[c1].Size != 0)
+ {
+ free(MemTab_Rx.Region[c1].pBaseAddress);
+ }
+ }
+\endcode
+*/
+
+LVVE_ReturnStatus_en LVVE_Rx_GetMemoryTable(LVVE_Rx_Handle_t hInstance,
+ LVM_MemoryTable_st *pMemoryTable,
+ LVVE_Rx_InstanceParams_st *pInstanceParams);
+
+
+/**
+@brief Created handle to the instance of the LVVE_Tx module
+
+This function is used to create the LVVE_Tx instance. All control parameters are set to invalid values.
+The memory table pointed to by pMemoryTable must be created. If the memory table is not correct then an error will be returned.
+The memory requirements of the Rx and Tx unit are dependent on the instance parameters supplied and so the
+instance parameters provided in this function call must be the same as those used in the @ref LVVE_Tx_GetMemoryTable function calls
+used for memory allocation.
+
+@pre The memory records tables defined by pMemoryTable contains pointers to non-overlapping buffers
+with the size as requested via the prior calls to the LVVE_Tx_GetMemoryTable functions.
+@pre The initialization parameter structure defined by pInstParams is identical to the structure passed
+to prior call to @ref LVVE_Tx_GetMemoryTable functions.
+
+
+@param phInstance Pointer to the instance handle.
+@param pMemoryTable Pointer to the memory definition table.
+@param pInstanceParams Pointer to the instance parameters.
+
+@return LVVE_SUCCESS when creation was successful
+@return LVVE_NULLADDRESS When phInstance or pMemoryTable or pInstanceParams is NULL.
+@return LVVE_NULLADDRESS when one or more of the memory regions with a non-zero size has been
+ given a NULL base address pointer.
+@return LVVE_OUTOFRANGE when pInstParams contains parameters out of the excepted range
+
+@ingroup LVVE_Tx
+
+ LVVE_Tx_GetInstanceHandle Example:
+
+The following example shows how to initialize LVVE_Tx_GetInstanceHandle.
+
+\code
+ hInstance_Tx = LVM_NULL;
+ LVVE_Status = LVVE_Tx_GetInstanceHandle( &hInstance_Tx,
+ &MemTab_Tx,
+ &InstParams_Tx );
+ if( LVVE_Status != LVVE_SUCCESS )
+ {
+ // Handle Errors
+ }
+\endcode
+
+*/
+
+LVVE_ReturnStatus_en LVVE_Tx_GetInstanceHandle(LVVE_Tx_Handle_t *phInstance,
+ LVM_MemoryTable_st *pMemoryTable,
+ LVVE_Tx_InstanceParams_st *pInstanceParams);
+
+/**
+@brief Created handle to the instance of the LVVE_Rx module
+
+This functions is used to create LVVE_Rx instance. All control parameters are set to invalid values.
+The memory table pointed to by pMemoryTable must be created. If the memory table is not correct then an error will be returned.
+The memory requirements of the Rx and Rx unit are dependent on the instance parameters supplied and so the
+instance parameters provided in this function call must be the same as those used in the @ref LVVE_Rx_GetMemoryTable function calls
+used for memory allocation.
+
+@pre The memory records tables defined by pMemoryTable contains pointers to non-overlapping buffers
+with the size as requested via the prior calls to the LVVE_Rx_GetMemoryTable functions.
+@pre The initialization parameter structure defined by pInstParams is identical to the structure passed
+to prior call to @ref LVVE_Rx_GetMemoryTable functions.
+
+
+@param phInstance Pointer to the instance handle.
+@param pMemoryTable Pointer to the memory definition table.
+@param pInstanceParams Pointer to the instance parameters.
+
+@return LVVE_SUCCESS when creation was successful
+@return LVVE_NULLADDRESS When phInstance or pMemoryTable or pInstanceParams is NULL.
+@return LVVE_NULLADDRESS when one or more of the memory regions with a non-zero size has been
+ given a NULL base address pointer.
+@return LVVE_OUTOFRANGE when pInstParams contains parameters out of the excepted range
+
+@ingroup LVVE_Rx
+
+ LVVE_Rx_GetInstanceHandle Example:
+
+The following example shows how to initialize LVVE_Rx_GetInstanceHandle.
+
+\code
+ hInstance_Rx = LVM_NULL;
+ LVVE_Status = LVVE_Rx_GetInstanceHandle( &hInstance_Rx,
+ &MemTab_Rx,
+ &InstParams_Rx );
+ if( LVVE_Status != LVVE_SUCCESS )
+ {
+ // Handle Errors
+ }
+\endcode
+
+*/
+
+LVVE_ReturnStatus_en LVVE_Rx_GetInstanceHandle(LVVE_Rx_Handle_t *phInstance,
+ LVM_MemoryTable_st *pMemoryTable,
+ LVVE_Rx_InstanceParams_st *pInstanceParams);
+
+/**
+@brief Retrieve the current LVVE_Tx control parameters.
+
+This function copies the control parameters from the LVVE_Tx into the supplied
+parameter structure, pControlParams. The values returned are the values given in the last successful
+call to the LVVE_Tx_SetControlParameters function.
+
+@param hInstance Instance handle
+@param pControlParams Pointer to the control parameters
+
+@pre hInstance should be valid handle.
+@pre pControlParams should be allocated by caller.
+@post pControlParams will be filled with the values given in the last successful call to
+ the LVVE_Tx_SetControlParameters function. They are not necessarily the values
+ used in the last call to the LVVE_Tx_Process function, this will be the case if
+ LVVE_Tx_SetControlParameters has been called since the last call to LVVE_Tx_Process.
+
+@return LVVE_SUCCESS Succeeded
+@return LVVE_NULLADDRESS When hInstance or pControlParams is NULL
+
+@note The LVVE_Tx_GetControlParameters function can be called at any time during processing.
+
+@ingroup LVVE_Tx
+
+LVVE_Tx_GetControlParameters Example:
+
+The following example shows how to get different control parameters for the LVVE_Tx instance.
+
+\code
+ LVVE_Status = LVVE_Tx_GetControlParameters( &hInstance_Tx,
+ &ControlParams_Tx );
+
+ if( LVVE_Status != LVVE_SUCCESS )
+ {
+ // Handle Errors
+ }
+\endcode
+
+*/
+
+LVVE_ReturnStatus_en LVVE_Tx_GetControlParameters( LVVE_Tx_Handle_t hInstance,
+ LVVE_Tx_ControlParams_st *pControlParams);
+
+/**
+@brief Retrieve the current LVVE_Rx control parameters.
+
+This function copies the control parameters from the LVVE_Tx into the supplied
+parameter structure, pControlParams. The values returned are the values given in the last successful
+call to the LVVE_Rx_SetControlParameters function.
+
+@param hInstance Instance handle
+@param pControlParams Pointer to the control parameters
+
+@pre hInstance should be valid handle.
+@pre pControlParams should be allocated by caller.
+@post pControlParams will be filled with the values given in the last successful call to
+ the LVVE_Rx_SetControlParameters function. They are not necessarily the values
+ used in the last call to the LVVE_Rx_Process function, this will be the case if
+ LVVE_Tx_SetControlParameters has been called since the last call to LVVE_Tx_Process.
+
+@return LVVE_SUCCESS Succeeded
+@return LVVE_NULLADDRESS When hInstance or pControlParams is NULL
+
+@note The LVVE_Rx_GetControlParameters function can be called at any time during processing.
+
+@ingroup LVVE_Rx
+
+LVVE_Rx_GetControlParameters Example:
+
+The following example shows how to get different control parameters for the LVVE_Rx instance.
+
+\code
+ LVVE_Status = LVVE_Rx_GetControlParameters( &hInstance_Rx,
+ &ControlParams_Rx );
+
+ if( LVVE_Status != LVVE_SUCCESS )
+ {
+ // Handle Errors
+ }
+\endcode
+
+*/
+
+LVVE_ReturnStatus_en LVVE_Rx_GetControlParameters( LVVE_Rx_Handle_t hInstance,
+ LVVE_Rx_ControlParams_st *pControlParams);
+
+/**
+@brief Sets or changes the LVVE_Tx module parameters using C-strcuture.
+
+This function takes the new set of parameters and makes a local copy within
+LVVE_Tx but the parameters are only applied on the next call of the LVVE_Tx_Process
+function. When a parameter is unchanged no action is taken. This function can
+be called at any time during the processing, even when the LVVE_Tx_Process function
+is running. LifeVibes™ VoiceExperience control parameters can be set using two methods.
+Control Parameters can be populated in a \"C\" style structure (as explained in example) and then sent to the library.
+Another method is to populate control parameters in a byte array called Preset Buffer, see @ref LVVE_Tx_SetPreset for example usage.
+
+@param hInstance Instance Handle
+@param pNewParams Pointer to a parameter structure
+
+@pre hInstance should be valid handle.
+
+@return LVVE_SUCCESS Succeeded
+@return LVVE_NULLADDRESS When hInstance or pNewParams is NULL
+@return LVVE_OUTOFRANGE When pNewParams contains parameters of activated modules that are out of the excepted range
+@return LVVE_INVALID_ALGORITHM_CONFIGURATION When two mutual exclusive algorithms are both configured ON at run-time
+ (e.g., NoiseVoid and HandsFree)
+
+
+@note This function may be interrupted by the LVVE_Tx_Process function
+
+@ingroup LVVE_Tx
+
+LVVE_Tx_GetControlParameters: Setting Control Parameters using C-Style structure Example:
+
+The following example shows how to set different control parameters for the LVVE_Tx instance.
+
+\code
+ LVVE_Status = LVVE_Tx_GetControlParameters( &hInstance_Tx,
+ &ControlParams_Tx );
+
+ if( LVVE_Status != LVVE_SUCCESS )
+ {
+ // Handle Errors
+ }
+
+ Change Parameters as required
+ ControlParams_Tx.VOL_Gain = VOL_TABLE[i];
+ ControlParams_Tx.VC_ControlParams = VC_TABLE[i];
+
+ // Update instance with new parameters
+ LVVE_Status = LVVE_Tx_SetControlParameters( &hInstance_Tx,
+ &ControlParams_Tx );
+
+ if( LVVE_Status != LVVE_SUCCESS )
+ {
+ // Handle Errors
+ }
+\endcode
+
+*/
+
+LVVE_ReturnStatus_en LVVE_Tx_SetControlParameters( LVVE_Tx_Handle_t hInstance,
+ const LVVE_Tx_ControlParams_st * const pNewParams);
+
+/**
+@brief Sets or changes the LVVE_Rx module parameters using C-structure.
+
+This function takes the new set of parameters and makes a local copy within
+LVVE_Rx but the parameters are only applied on the next call of the LVVE_Rx_Process
+function. When a parameter is unchanged no action is taken. This function can
+be called at any time during the processing, even when the LVVE_Rx_Process function
+is running. LifeVibes™ VoiceExperience control parameters can be set using two methods.
+Control Parameters can be populated in a \"C\" style structure (as explained in example) and then sent to the library.
+Another method is to populate control parameters in a byte array called Preset Buffer, see @ref LVVE_Rx_SetPreset for example usage.
+
+@param hInstance Instance Handle
+@param pNewParams Pointer to a parameter structure
+
+@pre hInstance should be valid handle.
+
+@return LVVE_SUCCESS Succeeded
+@return LVVE_NULLADDRESS When hInstance or pNewParams is NULL
+@return LVVE_OUTOFRANGE When pNewParams contains parameters of activated modules that are out of the excepted range
+@return LVVE_INVALID_ALGORITHM_CONFIGURATION When two mutual exclusive algorithms are both configured ON at run-time
+ (e.g., NoiseVoid and HandsFree)
+
+
+@note This function may be interrupted by the LVVE_Rx_Process function
+
+@ingroup LVVE_Rx
+
+LVVE_Rx_GetControlParameters: Setting Control Parameters using C-Style structure Example:
+
+The following example shows how to set different control parameters for the LVVE_Rx instance.
+
+\code
+ LVVE_Status = LVVE_Rx_GetControlParameters( &hInstance_Rx,
+ &ControlParams_Rx );
+
+ if( LVVE_Status != LVVE_SUCCESS )
+ {
+ // Handle Errors
+ }
+
+ Change Parameters as required
+ ControlParams_Rx.VOL_Gain = VOL_TABLE[i];
+ ControlParams_Rx.VC_ControlParams = VC_TABLE[i];
+
+ // Update instance with new parameters
+ LVVE_Status = LVVE_Rx_SetControlParameters( &hInstance_Rx,
+ &ControlParams_Rx );
+
+ if( LVVE_Status != LVVE_SUCCESS )
+ {
+ // Handle Errors
+ }
+\endcode
+
+*/
+LVVE_ReturnStatus_en LVVE_Rx_SetControlParameters( LVVE_Rx_Handle_t hInstance,
+ const LVVE_Rx_ControlParams_st * const pNewParams);
+
+/**
+@brief Retrieve the current LVVE_Tx status parameters.
+
+This function copies internal status variables into the supplied status
+parameter structures.
+
+@param hInstance Instance handle
+@param pStatusParams Pointer to the status parameters
+
+@pre hInstance should be valid handle.
+@pre pStatusParams should be allocated by caller.
+@post pStatusParams will be filled with the latest status values of LVVE_Tx.
+
+@return LVVE_SUCCESS Succeeded
+@return LVVE_NULLADDRESS When hInstance or pStatusParams is NULL
+
+@note The LVVE_Tx_GetStatusParameters function can be called at any time during processing.
+This function can run in different threads than the process functions.
+
+
+@ingroup LVVE_Tx
+
+LVVE_Tx_GetStatusParameters: Get Internal Algorithm Status Attributes Example:
+The following example shows how to use LVVE_Tx_GetStatusParameters function call.
+
+\code
+ LVVE_Tx_StatusParams_st Tx_Monitor;
+ Status=LVVE_Tx_GetStatusParameters(hInstance_Tx,&Tx_Monitor);
+ if (Status != LVVE_SUCCESS )
+ {
+ // Error Handling
+ }
+\endcode
+
+*/
+
+LVVE_ReturnStatus_en LVVE_Tx_GetStatusParameters( LVVE_Tx_Handle_t hInstance,
+ LVVE_Tx_StatusParams_st *pStatusParams);
+
+/**
+@brief Retrieve the current LVVE_Rx status parameters.
+
+This function copies internal status variables into the supplied status
+parameter structures.
+
+@param hInstance Instance handle
+@param pStatusParams Pointer to the status parameters
+
+@pre hInstance should be valid handle.
+@pre pStatusParams should be allocated by caller.
+@post pStatusParams will be filled with the latest status values of LVVE_Rx.
+
+@return LVVE_SUCCESS Succeeded
+@return LVVE_NULLADDRESS When hInstance or pStatusParams is NULL
+
+@note The LVVE_Rx_GetStatusParameters function can be called at any time during processing.
+This function can run in different threads than the process functions.
+
+@ingroup LVVE_Rx
+
+LVVE_Rx_GetStatusParameters: Get Internal Algorithm Status Attributes Example:
+The following example shows how to use LVVE_Rx_GetStatusParameters function call.
+
+\code
+ LVVE_Rx_StatusParams_st Rx_Monitor;
+ Status=LVVE_Rx_GetStatusParameters(hInstance_Rx,&Rx_Monitor);
+ if (Status != LVVE_SUCCESS )
+ {
+ // Error Handling
+ }
+\endcode
+
+*/
+
+LVVE_ReturnStatus_en LVVE_Rx_GetStatusParameters( LVVE_Rx_Handle_t hInstance,
+ LVVE_Rx_StatusParams_st *pStatusParams);
+
+/**
+@brief Resets the LVVE_Tx module.
+
+The LVVE_Tx module instance memory contains data which depend on the input
+samples that have been processed previously. These data are buffers
+used for filter tabs and delay lines and also adaptive coefficients of the
+algorithm. The LVVE_Tx_ResetInstance function resets this input dependent data.
+
+The LVVE_Tx_ResetInstance function should be called whenever there is a
+discontinuity in the input audio stream. A discontinuity means that the
+current block of samples is not contiguous with the previous block of samples.
+Examples are
+@li Calling the LVVE_Tx_Process function after a period of inactivity
+@li Buffer underrun or overflow in the audio driver
+The LVVE_ResetInstance function of the Tx and/or Tx Unit should only be called when absolutely necessary as re-adaptation
+of internal algorithms will occur.
+The LVVE_ResetInstance functions can be called at any time, even when LVVE_Process is running. The reset will be
+applied at the start of the next call of the LVVE_Tx_Process function.
+
+
+@param hInstance Instance Handle
+@param pResetParams Reset Type
+
+@pre hInstance should be valid handle.
+
+@post Depending on the ResetType value, the LVVE_Tx_ResetInstance function can
+perform:
+@li Soft reset: partial reset of internal buffers and adaptive behavior. To be used for very short
+interruption or discontinuity, e.g., buffer under-run or overflow in the audio driver influencing the echo path delay.
+@li Hard reset: full reset of all internal buffers and adaptive behavior. To be used for long
+interruption or discontinuity, e.g., before calling the LVVE_Tx_Process function after a long period of inactivity
+in between calls in case instance was not freed.
+
+@return LVVE_SUCCESS Succeeded
+@return LVVE_NULLADDRESS When hInstance or pResetParams is NULL
+@return LVVE_OUTOFRANGE When content of pResetParams is invalid
+
+@note This function may be interrupted by the LVVE_Tx_Process function
+
+@ingroup LVVE_Tx
+
+LVVE_Tx_ResetInstance Example:
+
+The following example shows how to use LVVE_Tx_ResetInstance.
+\code
+ LVVE_Status = LVVE_Tx_ResetInstance(hInstance, pResetParams);
+
+ if (LVVE_Status != LVVE_SUCCESS)
+ {
+ // Handle LVVE_Tx_ResetInstance errors
+ }
+\endcode
+
+*/
+LVVE_ReturnStatus_en LVVE_Tx_ResetInstance( LVVE_Tx_Handle_t hInstance,
+ LVVE_Tx_ResetParams_st *pResetParams );
+
+/**
+@brief Resets the LVVE_Rx module.
+
+The LVVE_Rx module instance memory contains data which depend on the input
+samples that have been processed previously. These data are buffers
+used for filter tabs and delay lines and also adaptive coefficients of the
+algorithm. The LVVE_Rx_ResetInstance function resets this input dependent data.
+
+The LVVE_Rx_ResetInstance function should be called whenever there is a
+discontinuity in the input audio stream. A discontinuity means that the
+current block of samples is not contiguous with the previous block of samples.
+Examples are
+@li Calling the LVVE_Rx_Process function after a period of inactivity
+@li Buffer underrun or overflow in the audio driver
+The LVVE_ResetInstance function of the Rx and/or Tx Unit should only be called when absolutely necessary as re-adaptation
+of internal algorithms will occur.
+The LVVE_ResetInstance functions can be called at any time, even when LVVE_Process is running. The reset will be
+applied at the start of the next call of the LVVE_Rx_Process function.
+
+
+@param hInstance Instance Handle
+@param pResetParams Reset Type
+
+@pre hInstance should be valid handle.
+
+@post Depending on the ResetType value, the LVVE_Rx_ResetInstance function can
+perform:
+@li Soft reset: partial reset of internal buffers and adaptive behavior. To be used for very short
+interruption or discontinuity, e.g., buffer under-run or overflow in the audio driver influencing the echo path delay.
+@li Hard reset: full reset of all internal buffers and adaptive behavior. To be used for long
+interruption or discontinuity, e.g., before calling the LVVE_Rx_Process function after a long period of inactivity
+in between calls in case instance was not freed.
+
+@return LVVE_SUCCESS Succeeded
+@return LVVE_NULLADDRESS When hInstance or pResetParams is NULL
+@return LVVE_OUTOFRANGE When content of pResetParams is invalid
+
+@note This function may be interrupted by the LVVE_Rx_Process function
+
+@ingroup LVVE_Rx
+
+LVVE_Rx_ResetInstance Example:
+
+The following example shows how to use LVVE_Rx_ResetInstance.
+\code
+ LVVE_Status = LVVE_Rx_ResetInstance(hInstance, pResetParams);
+
+ if (LVVE_Status != LVVE_SUCCESS)
+ {
+ // Handle LVVE_Rx_ResetInstance errors
+ }
+\endcode
+
+*/
+LVVE_ReturnStatus_en LVVE_Rx_ResetInstance( LVVE_Rx_Handle_t hInstance,
+ LVVE_Rx_ResetParams_st *pResetParams );
+
+/**
+@brief Processes a block of samples by the LVVE_Tx module.
+
+This function processes the block of samples as configured with the current
+parameter settings. If new parameters have been given since the last call to
+LVVE_Tx_Process then these will be applied at the beginning of this process call.
+
+@param hInstance Instance Handle
+@param pInDataMic0 Pointer to the input speech sample buffer (pimary microphone).
+@param pInDataMic1 Pointer to the input speech sample buffer (secondary microphone).
+@param pRefData Pointer to the input farend reference buffer.
+@param pNoiseData Pointer to the output noise reference buffer.
+@param pOutData Pointer to the output sample buffer.
+@param NumSamples The number of samples to process should be integer multiple(n) of values in table.
+ It is a frquency dependant paramter.
+<table border>
+ <tr>
+ <td><b>Unit</b></td>
+ <td><b>Q format</b></td>
+ <td><b>Data Range</b></td>
+ <td><b>Default Values</b></td>
+ </tr>
+ <tr>
+ <td><b>Samples</b></td>
+ <td><b>Q16.0</b></td>
+ <td>nx80 for 8kHz</td>
+ <td>80 for 8kHz</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td>nx160 for 16kHz</td>
+ <td>160 for 16kHz</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td>nx240 for 24kHz</td>
+ <td>240 for 24kHz</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td>nx320 for 32kHz</td>
+ <td>320 for 32kHz</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td>nx480 for 48kHz</td>
+ <td>480 for 48kHz</td>
+ </tr>
+</table>
+
+@pre hInstance should be valid handle.
+@pre LVVE_Tx_SetControlParameters should be called successfully once before.
+the first call to LVVE_Tx_Process
+@pre pInData is filled with the input samples to process.
+
+@post pOutData contains the processed samples.
+
+@return LVVE_SUCCESS Succeeded
+@return LVVE_NULLADDRESS When hInstance, pInData or pOutData is NULL
+@return LVVE_INVALIDNUMSAMPLES When the NumSamples is outside the allowed
+range
+@return LVVE_INVALID_STATE_CONFIGURATION When invalid state of the algorithm found
+
+@ingroup LVVE_Tx
+
+LVVE_Tx_Process Example:
+
+The following example shows how to use LVVE_Tx_Process function call
+
+\code
+ // Tx Processing
+ LVVE_STATUS = LVVE_Tx_Process( hInstance_Tx,
+ pInData_Tx0,
+ pInData_Tx1,
+ pInData_Ref,
+ pNoiseData,
+ pOutData_Tx,
+ NumSamples );
+ if (LVVE_STATUS != LVVE_SUCCESS )
+ {
+ // Error Handling
+ }
+\endcode
+
+*/
+LVVE_ReturnStatus_en LVVE_Tx_Process( LVVE_Tx_Handle_t hInstance,
+ const LVM_INT16 *pInDataMic0,
+ const LVM_INT16 *pInDataMic1,
+ const LVM_INT16 *pRefData,
+ LVM_INT16 *pNoiseData,
+ LVM_INT16 *pOutData,
+ const LVM_UINT16 NumSamples);
+
+/**
+@brief Processes a block of samples by the LVVE_Rx module.
+
+This function processes the block of samples as configured with the current
+parameter settings. If new parameters have been given since the last call to
+LVVE_Rx_Process then these will be applied at the beginning of this process call.
+
+@param hInstance Instance Handle
+@param pInData Pointer to the input sample buffer
+@param pNoiseData Pointer to the input noise buffer (for LVVC only). Pointer to the input noise reference buffer.
+ The size of this buffer depends on the number of samples to process: NoiseDataBufferSize = 2 (size of the input buffer in ms) / 10ms
+ i.e. for 20 ms input buffer, the NoiseData buffer size should be 4.
+
+@param pOutData Pointer to the output sample buffer
+@param NumSamples The number of samples to process should be integer multiple(n) of values in table.
+ It is a frquency dependant paramter.
+<table border>
+ <tr>
+ <td><b>Unit</b></td>
+ <td><b>Q format</b></td>
+ <td><b>Data Range</b></td>
+ <td><b>Default Values</b></td>
+ </tr>
+ <tr>
+ <td><b>Samples</b></td>
+ <td><b>Q16.0</b></td>
+ <td>nx80 for 8kHz</td>
+ <td>80 for 8kHz</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td>nx160 for 16kHz</td>
+ <td>160 for 16kHz</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td>nx240 for 24kHz</td>
+ <td>240 for 24kHz</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td>nx320 for 32kHz</td>
+ <td>320 for 32kHz</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td>nx480 for 48kHz</td>
+ <td>480 for 48kHz</td>
+ </tr>
+</table>
+
+@pre hInstance should be valid handle.
+@pre LVVE_Rx_SetControlParameters should be called successfully once before.
+the first call to LVVE_Rx_Process
+@pre pInData is filled with the input samples to process.
+
+@post pOutData contains the processed samples.
+
+@return LVVE_SUCCESS Succeeded
+@return LVVE_NULLADDRESS When hInstance, pInData or pOutData is NULL
+@return LVVE_INVALIDNUMSAMPLES When the NumSamples is outside the allowed
+range
+@return LVVE_INVALID_STATE_CONFIGURATION When invalid state of the algorithm found
+
+@ingroup LVVE_Rx
+
+LVVE_Rx_Process Example:
+The following example shows how to use LVVE_Rx_Process function call.
+
+\code
+ // Rx Processing
+ LVVE_STATUS = LVVE_Rx_Process( hInstance_Rx,
+ pInData_Rx,
+ pNoiseData,
+ pOutData_Rx,
+ NumSamples );
+
+ if (LVVE_STATUS != LVVE_SUCCESS )
+ {
+ // Error Handling
+ }
+\endcode
+
+*/
+
+LVVE_ReturnStatus_en LVVE_Rx_Process( LVVE_Rx_Handle_t hInstance,
+ const LVM_INT16 *pInData,
+ const LVM_INT16 *pNoiseData,
+ LVM_INT16 *pOutData,
+ const LVM_UINT16 NumSamples);
+
+
+/**
+\brief get the version number of current of LVVE library.
+
+This function returns, to host, current version of the LVVE library
+@param pVersion version info
+
+@return LVVE_SUCCESS Succeeded
+@return LVVE_NULLADDRESS When one of hInstance, pInData or pOutData is NULL
+
+LVVE_GetVersionInfot Example:
+
+\code
+ //Get the version information
+ LVVE_VersionInfo VersionInfo;
+ LVVE_GetVersionInfo(&VersionInfo);
+\endcode
+
+*/
+LVVE_ReturnStatus_en LVVE_GetVersionInfo( LVVE_VersionInfo *pVersion );
+
+/**
+@brief Sets or changes the LVVE_Tx module parameters through a Preset Buffer.
+
+Sets or changes the LVVE_Tx module parameters through a Preset Buffer. To set parameters using \"C\" structure see
+@ref LVVE_Tx_SetControlParameters
+This function takes the new set of parameters and makes a local copy within the
+LVVE_Tx module but the parameters are only applied on the next call of the LVVE_Tx_Process
+function. When no parameters are changed, no action is taken. This function can
+be called at any time during the processing, even when the LVVE_Tx_Process function
+is running.
+The new parameters are supplied in the form a @ref LVVE_Tx_Preset_t (Byte array).
+The length of the byte array shall be a multiple of @ref LVVE_TX_PRESET_LENGTH.
+
+@param hInstance Instance Handle
+@param pPreset Pointer to a Preset buffer
+@param PresetLength Length in bytes of the Preset buffer
+@param VolumeIndex Volume index to be selected from the Preset buffer
+
+@pre hInstance should be valid handle.
+
+@return @ref LVVE_SUCCESS Succeeded
+@return @ref LVVE_NULLADDRESS When hInstance or pPreset is NULL
+@return @ref LVVE_OUTOFRANGE When PresetLength or any of the new parameters is out of range
+@return @ref LVVE_INVALID_ALGORITHM_CONFIGURATION When mutually exclusive algorithms are enabled in the parameters at the same time
+@return @ref LVVE_PRESET_INVALID_BUFFER_LENGTH When the length of the input buffer is smaller than LVVE_TX_PRESET_LENGTH
+@return @ref LVVE_PRESET_INVALID_VOLUME_INDEX When the volume index exceeds the buffer content
+@return @ref LVVE_PRESET_INVALID_BUFFER_VERSION When the version of the format of the preset buffer does not match the version of the library
+@return @ref LVVE_PRESET_INVALID_BASELINE_VERSION When the baseline version of the provided preset buffer and the baseline version of the library do not match. Is the preset generated for this library ?
+@return @ref LVVE_PRESET_INVALID_MASK When the algorithm mask of the provided preset buffer and the algorithm mask of the library do not match. Is the preset generated for this library ?
+@return @ref LVVE_PRESET_INVALID_SAMPLE_RATE When the sample rate @ref LVM_Fs_en of the preset does not match the sample rate of the hInstance
+@return @ref LVVE_PRESET_INVALID_LVWIREFORMAT_MESSAGEID When the LVWireformat message id @ref LVVIDHeader_MessageID_en of the preset is not valid
+
+@note This function may be interrupted by the LVVE_Tx_Process function
+
+@ingroup LVVE_Tx
+LVVE_Tx_SetPreset: Setting Control Parameters using Preset Buffer Example:
+
+The following example shows how to set different control parameters for the LVVE_Tx instance using Preset Buffer.
+
+\code
+ LVM_CHAR LVVE_Tx_Preset_Buffer[LVVE_TX_PRESET_LENGTH];
+ LVVE_Tx_Preset_t const LVVE_Tx_Preset = LVVE_Tx_Preset_Buffer;
+
+ FILE *PRESETFILE_Tx;
+ LVM_INT32 ReadBytes = 0;
+
+ PRESETFILE_Tx=fopen(filename, "rb" );
+
+ // Read the preset buffer
+ ReadBytes = fread( LVVE_Tx_Preset_Buffer,
+ sizeof(LVM_CHAR),
+ (LVM_UINT32)LVVE_TX_PRESET_LENGTH,
+ PRESETFILE_Tx );
+
+ fclose(PRESETFILE_Tx);
+
+ // Update instance with new preset buffer
+ LVVE_Status = LVVE_Tx_SetPreset( hInstance_Tx,
+ LVVE_Tx_Preset,
+ ReadBytes,
+ 0);
+
+ if ( LVVE_Status != LVVE_SUCCESS )
+ {
+ // Handle Errors
+ }
+\endcode
+
+
+
+*/
+LVVE_ReturnStatus_en LVVE_Tx_SetPreset(LVVE_Tx_Handle_t hInstance,
+ const LVVE_Tx_Preset_t pPreset,
+ LVM_UINT32 PresetLength,
+ LVM_UINT16 VolumeIndex);
+
+/**
+@brief Sets or changes the LVVE_Rx module parameters through a Preset Buffer
+
+Sets or changes the LVVE_Rx module parameters through a Preset Buffer. To set parameters using \"C\" structure see
+@ref LVVE_Rx_SetControlParameters
+This function takes the new set of parameters and makes a local copy within the
+LVVE_Rx module but the parameters are only applied on the next call of the LVVE_Rx_Process
+function. When no parameters are changed, no action is taken. This function can
+be called at any time during the processing, even when the LVVE_Rx_Process function
+is running.
+The new parameters are supplied in the form a @ref LVVE_Rx_Preset_t (Byte array).
+The length of the byte array shall be a multiple of @ref LVVE_RX_PRESET_LENGTH.
+
+@param hInstance Instance Handle
+@param pPreset Pointer to a Preset buffer
+@param PresetLength Length in bytes of the Preset buffer
+@param VolumeIndex Volume index to be selected from the Preset buffer
+
+@pre hInstance should be valid handle.
+
+@return @ref LVVE_SUCCESS Succeeded
+@return @ref LVVE_NULLADDRESS When hInstance or pPreset is NULL
+@return @ref LVVE_OUTOFRANGE When PresetLength or any of the new parameters is out of range
+@return @ref LVVE_INVALID_ALGORITHM_CONFIGURATION When mutually exclusive algorithms are enabled in the parameters at the same time
+@return @ref LVVE_PRESET_INVALID_BUFFER_LENGTH When the length of the input buffer is smaller than LVVE_RX_PRESET_LENGTH
+@return @ref LVVE_PRESET_INVALID_VOLUME_INDEX When the volume index exceeds the buffer content
+@return @ref LVVE_PRESET_INVALID_BUFFER_VERSION When the version of the format of the preset buffer does not match the version of the library
+@return @ref LVVE_PRESET_INVALID_BASELINE_VERSION When the baseline version of the provided preset buffer and the baseline version of the library do not match. Is the preset generated for this library ?
+@return @ref LVVE_PRESET_INVALID_MASK When the algorithm mask of the provided preset buffer and the algorithm mask of the library do not match. Is the preset generated for this library ?
+@return @ref LVVE_PRESET_INVALID_SAMPLE_RATE When the sample rate @ref LVM_Fs_en of the preset does not match the sample rate of the hInstance
+@return @ref LVVE_PRESET_INVALID_LVWIREFORMAT_MESSAGEID When the LVWireformat message id @ref LVVIDHeader_MessageID_en of the preset is not valid
+
+@note This function may be interrupted by the LVVE_Rx_Process function
+
+@ingroup LVVE_Rx
+
+LVVE_Rx_SetPreset: Setting Control Parameters using Preset Buffer Example:
+
+The following example shows how to set different control parameters for the LVVE_Rx instance using Preset Buffer.
+
+\code
+ #define NUM_VOLUMES (5)
+ LVM_CHAR LVVE_Rx_Preset_Buffer[NUM_VOLUMES*LVVE_RX_PRESET_LENGTH];
+ LVVE_Rx_Preset_t const LVVE_Rx_Preset = LVVE_Rx_Preset_Buffer;
+
+ FILE *PRESETFILE_Rx;
+ LVM_INT32 ReadBytes = 0;
+ LVM_UINT16 VolumeIndex = 3;
+
+ PRESETFILE_Rx=fopen(filename, "rb" );
+
+ // Read the preset buffer
+ ReadBytes = fread( LVVE_Rx_Preset_Buffer,
+ sizeof(LVM_CHAR),
+ (LVM_UINT32)(NUM_VOLUMES*LVVE_RX_PRESET_LENGTH),
+ PRESETFILE_Rx );
+
+ fclose(PRESETFILE_Rx);
+
+ // Update instance with new preset buffer
+ LVVE_Status = LVVE_Rx_SetPreset( hInstance_Rx,
+ LVVE_Rx_Preset,
+ ReadBytes,
+ VolumeIndex);
+
+ if ( LVVE_Status != LVVE_SUCCESS )
+ {
+ // Handle Errors
+ }
+\endcode
+
+*/
+LVVE_ReturnStatus_en LVVE_Rx_SetPreset(LVVE_Rx_Handle_t hInstance,
+ const LVVE_Rx_Preset_t pPreset,
+ LVM_UINT32 PresetLength,
+ LVM_UINT16 VolumeIndex);
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __LVVE_H__ */
+
+/* End of file */
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/uclinux/LVVE_VID.h b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/uclinux/LVVE_VID.h
new file mode 100755
index 0000000..79047a8
--- /dev/null
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/uclinux/LVVE_VID.h
@@ -0,0 +1,8413 @@
+/****************************************************************************************/
+/* Copyright (c) 2004-2016 NXP Software. All rights are reserved. */
+/* Reproduction in whole or in part is prohibited without the prior */
+/* written consent of the copyright owner. */
+/* */
+/* This software and any compilation or derivative thereof is and */
+/* shall remain the proprietary information of NXP Software and is */
+/* highly confidential in nature. Any and all use hereof is restricted */
+/* and is subject to the terms and conditions set forth in the */
+/* software license agreement concluded with NXP Software. */
+/* */
+/* Under no circumstances is this software or any derivative thereof */
+/* to be combined with any Open Source Software in any way or */
+/* licensed under any Open License Terms without the express prior */
+/* written permission of NXP Software. */
+/* */
+/* For the purpose of this clause, the term Open Source Software means */
+/* any software that is licensed under Open License Terms. Open */
+/* License Terms means terms in any license that require as a */
+/* condition of use, modification and/or distribution of a work */
+/* */
+/* 1. the making available of source code or other materials */
+/* preferred for modification, or */
+/* */
+/* 2. the granting of permission for creating derivative */
+/* works, or */
+/* */
+/* 3. the reproduction of certain notices or license terms */
+/* in derivative works or accompanying documentation, or */
+/* */
+/* 4. the granting of a royalty-free license to any party */
+/* under Intellectual Property Rights */
+/* */
+/* regarding the work and/or any work that contains, is combined with, */
+/* requires or otherwise is based on the work. */
+/* */
+/* This software is provided for ease of recompilation only. */
+/* Modification and reverse engineering of this software are strictly */
+/* prohibited. */
+/* */
+/****************************************************************************************/
+
+/****************************************************************************************/
+/* */
+/* $Author: nxp65285 $*/
+/* $Revision: 49390 $*/
+/* $Date: 2013-10-16 18:34:35 +0530 (Wed, 16 Oct 2013) $*/
+/* */
+/****************************************************************************************/
+
+/** @file
+ * Header file for the application layer interface of the REL_LVVE_HF_NV1_VC_AGC_RX_DRC_RX module
+ *
+ * The suffix VID in header file stands for Voice Interface Definition
+ * This files includes all definitions, types, and structures required by the calling
+ * layer. Public functions are defined in the protoypes header files.
+ * All other types, structures and functions are private.
+ */
+
+#ifndef __REL_LVVE_HF_NV1_VC_AGC_RX_DRC_RX_VIDPP_H__
+#define __REL_LVVE_HF_NV1_VC_AGC_RX_DRC_RX_VIDPP_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/****************************************************************************************/
+/* */
+/* Includes */
+/* */
+/****************************************************************************************/
+#include "LVC_Types.h"
+
+/****************************************************************************************/
+/* */
+/* Definitions */
+/* */
+/****************************************************************************************/
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_RX_LVFENS_MASK1</td>
+ <td>1</td>
+ <td>Far End Noise Suppression is present in the LVVE_Rx</td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_RX_HPF_MASK1</td>
+ <td>4</td>
+ <td>High Pass Filter is present in the LVVE_Rx</td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_RX_LVNG_MASK1</td>
+ <td>16</td>
+ <td>Noise Gate is present in the LVVE_Rx</td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_RX_EQ_MASK1</td>
+ <td>64</td>
+ <td>Equalizer is present in the LVVE_Rx</td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_RX_AGC_MASK1</td>
+ <td>128</td>
+ <td>Automatic Gain Control is present in the LVVE_Rx</td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_RX_DRC_MASK1</td>
+ <td>256</td>
+ <td>Dynamic Range Control is present in the LVVE_Rx</td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_RX_VOL_MASK1</td>
+ <td>512</td>
+ <td>Volume Control is present in the LVVE_Rx</td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_RX_LVVC_MASK1</td>
+ <td>1024</td>
+ <td>VoiceClarity is present in the LVVE_Rx</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVVIDHeader_LVVE_Rx_Mask1_bm;
+/**
+* @def LVVIDHeader_LVVE_Rx_LVFENS_MASK1
+* Far End Noise Suppression is present in the LVVE_Rx
+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_RX_LVFENS_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)1)
+/**
+* @def LVVIDHeader_LVVE_Rx_HPF_MASK1
+* High Pass Filter is present in the LVVE_Rx
+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_RX_HPF_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)4)
+/**
+* @def LVVIDHeader_LVVE_Rx_LVNG_MASK1
+* Noise Gate is present in the LVVE_Rx
+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_RX_LVNG_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)16)
+/**
+* @def LVVIDHeader_LVVE_Rx_EQ_MASK1
+* Equalizer is present in the LVVE_Rx
+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_RX_EQ_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)64)
+/**
+* @def LVVIDHeader_LVVE_Rx_AGC_MASK1
+* Automatic Gain Control is present in the LVVE_Rx
+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_RX_AGC_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)128)
+/**
+* @def LVVIDHeader_LVVE_Rx_DRC_MASK1
+* Dynamic Range Control is present in the LVVE_Rx
+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_RX_DRC_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)256)
+/**
+* @def LVVIDHeader_LVVE_Rx_VOL_MASK1
+* Volume Control is present in the LVVE_Rx
+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_RX_VOL_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)512)
+/**
+* @def LVVIDHeader_LVVE_Rx_LVVC_MASK1
+* VoiceClarity is present in the LVVE_Rx
+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_RX_LVVC_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)1024)
+/**
+* @def LVVIDHEADER_LVVE_RX_MASK1_BM_MIN
+* Minimal value for LVVIDHeader_LVVE_Rx_Mask1_bm
+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_RX_MASK1_BM_MIN ((LVVIDHeader_LVVE_Rx_Mask1_bm)0)
+/**
+* @def LVVIDHEADER_LVVE_RX_MASK1_BM_MAX
+* Maximal value for LVVIDHeader_LVVE_Rx_Mask1_bm
+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_RX_LVFENS_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)1)
+#define LVVIDHEADER_LVVE_RX_HPF_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)4)
+#define LVVIDHEADER_LVVE_RX_LVNG_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)16)
+#define LVVIDHEADER_LVVE_RX_EQ_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)64)
+#define LVVIDHEADER_LVVE_RX_AGC_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)128)
+#define LVVIDHEADER_LVVE_RX_DRC_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)256)
+#define LVVIDHEADER_LVVE_RX_VOL_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)512)
+#define LVVIDHEADER_LVVE_RX_LVVC_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)1024)
+#define LVVIDHEADER_LVVE_RX_MASK1_BM_MAX (LVVIDHEADER_LVVE_RX_LVFENS_MASK1_FORMAX | LVVIDHEADER_LVVE_RX_HPF_MASK1_FORMAX | LVVIDHEADER_LVVE_RX_LVNG_MASK1_FORMAX | LVVIDHEADER_LVVE_RX_EQ_MASK1_FORMAX | LVVIDHEADER_LVVE_RX_AGC_MASK1_FORMAX | LVVIDHEADER_LVVE_RX_DRC_MASK1_FORMAX | LVVIDHEADER_LVVE_RX_VOL_MASK1_FORMAX | LVVIDHEADER_LVVE_RX_LVVC_MASK1_FORMAX | ((LVVIDHeader_LVVE_Rx_Mask1_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVVIDHeader_LVVE_Rx_Mask2_bm;
+/**
+* @def LVVIDHEADER_LVVE_RX_MASK2_BM_MIN
+* Minimal value for LVVIDHeader_LVVE_Rx_Mask2_bm
+* @see LVVIDHeader_LVVE_Rx_Mask2_bm
+*/
+#define LVVIDHEADER_LVVE_RX_MASK2_BM_MIN ((LVVIDHeader_LVVE_Rx_Mask2_bm)0)
+/**
+* @def LVVIDHEADER_LVVE_RX_MASK2_BM_MAX
+* Maximal value for LVVIDHeader_LVVE_Rx_Mask2_bm
+* @see LVVIDHeader_LVVE_Rx_Mask2_bm
+*/
+#define LVVIDHEADER_LVVE_RX_MASK2_BM_MAX (((LVVIDHeader_LVVE_Rx_Mask2_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_TX_LVHF_MASK1</td>
+ <td>1</td>
+ <td>HandsFree is present in the LVVE_Tx</td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_TX_EQ_MASK1</td>
+ <td>4</td>
+ <td>Equalizer is present in the LVVE_Tx</td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_TX_DRC_MASK1</td>
+ <td>16</td>
+ <td>Dynamic Range Control is present in the LVVE_Tx</td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_TX_VOL_MASK1</td>
+ <td>32</td>
+ <td>Volume Control is present in the LVVE_Tx</td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_TX_HPF_MASK1</td>
+ <td>128</td>
+ <td>HPF is present in the LVVE_Tx</td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_LVVE_TX_LVNV_01_MASK1</td>
+ <td>512</td>
+ <td>NoiseVoid is present in the LVVE_Tx</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVVIDHeader_LVVE_Tx_Mask1_bm;
+/**
+* @def LVVIDHeader_LVVE_Tx_LVHF_MASK1
+* HandsFree is present in the LVVE_Tx
+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_TX_LVHF_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)1)
+/**
+* @def LVVIDHeader_LVVE_Tx_EQ_MASK1
+* Equalizer is present in the LVVE_Tx
+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_TX_EQ_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)4)
+/**
+* @def LVVIDHeader_LVVE_Tx_DRC_MASK1
+* Dynamic Range Control is present in the LVVE_Tx
+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_TX_DRC_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)16)
+/**
+* @def LVVIDHeader_LVVE_Tx_VOL_MASK1
+* Volume Control is present in the LVVE_Tx
+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_TX_VOL_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)32)
+/**
+* @def LVVIDHeader_LVVE_Tx_HPF_MASK1
+* HPF is present in the LVVE_Tx
+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_TX_HPF_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)128)
+/**
+* @def LVVIDHeader_LVVE_Tx_LVNV_01_MASK1
+* NoiseVoid is present in the LVVE_Tx
+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_TX_LVNV_01_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)512)
+/**
+* @def LVVIDHEADER_LVVE_TX_MASK1_BM_MIN
+* Minimal value for LVVIDHeader_LVVE_Tx_Mask1_bm
+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_TX_MASK1_BM_MIN ((LVVIDHeader_LVVE_Tx_Mask1_bm)0)
+/**
+* @def LVVIDHEADER_LVVE_TX_MASK1_BM_MAX
+* Maximal value for LVVIDHeader_LVVE_Tx_Mask1_bm
+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
+*/
+#define LVVIDHEADER_LVVE_TX_LVHF_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)1)
+#define LVVIDHEADER_LVVE_TX_EQ_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)4)
+#define LVVIDHEADER_LVVE_TX_DRC_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)16)
+#define LVVIDHEADER_LVVE_TX_VOL_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)32)
+#define LVVIDHEADER_LVVE_TX_HPF_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)128)
+#define LVVIDHEADER_LVVE_TX_LVNV_01_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)512)
+#define LVVIDHEADER_LVVE_TX_MASK1_BM_MAX (LVVIDHEADER_LVVE_TX_LVHF_MASK1_FORMAX | LVVIDHEADER_LVVE_TX_EQ_MASK1_FORMAX | LVVIDHEADER_LVVE_TX_DRC_MASK1_FORMAX | LVVIDHEADER_LVVE_TX_VOL_MASK1_FORMAX | LVVIDHEADER_LVVE_TX_HPF_MASK1_FORMAX | LVVIDHEADER_LVVE_TX_LVNV_01_MASK1_FORMAX | ((LVVIDHeader_LVVE_Tx_Mask1_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVVIDHeader_LVVE_Tx_Mask2_bm;
+/**
+* @def LVVIDHEADER_LVVE_TX_MASK2_BM_MIN
+* Minimal value for LVVIDHeader_LVVE_Tx_Mask2_bm
+* @see LVVIDHeader_LVVE_Tx_Mask2_bm
+*/
+#define LVVIDHEADER_LVVE_TX_MASK2_BM_MIN ((LVVIDHeader_LVVE_Tx_Mask2_bm)0)
+/**
+* @def LVVIDHEADER_LVVE_TX_MASK2_BM_MAX
+* Maximal value for LVVIDHeader_LVVE_Tx_Mask2_bm
+* @see LVVIDHeader_LVVE_Tx_Mask2_bm
+*/
+#define LVVIDHEADER_LVVE_TX_MASK2_BM_MAX (((LVVIDHeader_LVVE_Tx_Mask2_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref LVVIDHEADER_CONFIGURATIONS_NARROWBAND_MASK1</td>
+ <td>1</td>
+ <td>NarrowBand configuration is present in the LVVE</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVVIDHeader_Configurations_Mask1_bm;
+/**
+* @def LVVIDHEADER_CONFIGURATIONS_NARROWBAND_MASK1
+* NarrowBand configuration is present in the LVVE
+* @see LVVIDHeader_Configurations_Mask1_bm
+*/
+#define LVVIDHEADER_CONFIGURATIONS_NARROWBAND_MASK1 ((LVVIDHeader_Configurations_Mask1_bm)1)
+/**
+* @def LVVIDHEADER_CONFIGURATIONS_MASK1_BM_MIN
+* Minimal value for LVVIDHeader_Configurations_Mask1_bm
+* @see LVVIDHeader_Configurations_Mask1_bm
+*/
+#define LVVIDHEADER_CONFIGURATIONS_MASK1_BM_MIN ((LVVIDHeader_Configurations_Mask1_bm)0)
+/**
+* @def LVVIDHEADER_CONFIGURATIONS_MASK1_BM_MAX
+* Maximal value for LVVIDHeader_Configurations_Mask1_bm
+* @see LVVIDHeader_Configurations_Mask1_bm
+*/
+#define LVVIDHEADER_CONFIGURATIONS_NARROWBAND_MASK1_FORMAX ((LVVIDHeader_Configurations_Mask1_bm)1)
+#define LVVIDHEADER_CONFIGURATIONS_MASK1_BM_MAX (LVVIDHEADER_CONFIGURATIONS_NARROWBAND_MASK1_FORMAX | ((LVVIDHeader_Configurations_Mask1_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVVIDHeader_Configurations_Mask2_bm;
+/**
+* @def LVVIDHEADER_CONFIGURATIONS_MASK2_BM_MIN
+* Minimal value for LVVIDHeader_Configurations_Mask2_bm
+* @see LVVIDHeader_Configurations_Mask2_bm
+*/
+#define LVVIDHEADER_CONFIGURATIONS_MASK2_BM_MIN ((LVVIDHeader_Configurations_Mask2_bm)0)
+/**
+* @def LVVIDHEADER_CONFIGURATIONS_MASK2_BM_MAX
+* Maximal value for LVVIDHeader_Configurations_Mask2_bm
+* @see LVVIDHeader_Configurations_Mask2_bm
+*/
+#define LVVIDHEADER_CONFIGURATIONS_MASK2_BM_MAX (((LVVIDHeader_Configurations_Mask2_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref LVVC_MODE_AVL</td>
+ <td>2</td>
+ <td>Turns on or off the AGC. If off both AGC and Limiter are bypassed.</td>
+ </tr>
+ <tr>
+ <td>@ref LVVC_MODE_AVL_ADAPT</td>
+ <td>4</td>
+ <td>Allows turning off the dependency of the AGC upon the nearend noise level. When turned off, the AGC uses the default parameters.</td>
+ </tr>
+ <tr>
+ <td>@ref LVVC_MODE_AVL_SPDETECT</td>
+ <td>8</td>
+ <td>Allows disabling speech detection in the AGC. When turned off, the AGC adapts its gain all the time.</td>
+ </tr>
+ <tr>
+ <td>@ref LVVC_MODE_LIMITER</td>
+ <td>16</td>
+ <td>Turns on or off the limiter.</td>
+ </tr>
+ <tr>
+ <td>@ref LVVC_MODE_LPF</td>
+ <td>32</td>
+ <td>Turns on or off the low-pass filter.</td>
+ </tr>
+ <tr>
+ <td>@ref LVVC_MODE_HPF</td>
+ <td>64</td>
+ <td>Turns on or off the high-pass filter.</td>
+ </tr>
+ <tr>
+ <td>@ref LVVC_MODE_VC</td>
+ <td>128</td>
+ <td>Turns on or off the VoiceClarity gain.</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVVC_ModeWord_bm;
+/**
+* @def LVVC_MODE_AVL
+* Turns on or off the AGC. If off both AGC and Limiter are bypassed.
+* @see LVVC_ModeWord_bm
+*/
+#define LVVC_MODE_AVL ((LVVC_ModeWord_bm)2)
+/**
+* @def LVVC_MODE_AVL_ADAPT
+* Allows turning off the dependency of the AGC upon the nearend noise level. When turned off, the AGC uses the default parameters.
+* @see LVVC_ModeWord_bm
+*/
+#define LVVC_MODE_AVL_ADAPT ((LVVC_ModeWord_bm)4)
+/**
+* @def LVVC_MODE_AVL_SPDETECT
+* Allows disabling speech detection in the AGC. When turned off, the AGC adapts its gain all the time.
+* @see LVVC_ModeWord_bm
+*/
+#define LVVC_MODE_AVL_SPDETECT ((LVVC_ModeWord_bm)8)
+/**
+* @def LVVC_MODE_LIMITER
+* Turns on or off the limiter.
+* @see LVVC_ModeWord_bm
+*/
+#define LVVC_MODE_LIMITER ((LVVC_ModeWord_bm)16)
+/**
+* @def LVVC_MODE_LPF
+* Turns on or off the low-pass filter.
+* @see LVVC_ModeWord_bm
+*/
+#define LVVC_MODE_LPF ((LVVC_ModeWord_bm)32)
+/**
+* @def LVVC_MODE_HPF
+* Turns on or off the high-pass filter.
+* @see LVVC_ModeWord_bm
+*/
+#define LVVC_MODE_HPF ((LVVC_ModeWord_bm)64)
+/**
+* @def LVVC_MODE_VC
+* Turns on or off the VoiceClarity gain.
+* @see LVVC_ModeWord_bm
+*/
+#define LVVC_MODE_VC ((LVVC_ModeWord_bm)128)
+/**
+* @def LVVC_MODEWORD_BM_MIN
+* Minimal value for LVVC_ModeWord_bm
+* @see LVVC_ModeWord_bm
+*/
+#define LVVC_MODEWORD_BM_MIN ((LVVC_ModeWord_bm)0)
+/**
+* @def LVVC_MODEWORD_BM_MAX
+* Maximal value for LVVC_ModeWord_bm
+* @see LVVC_ModeWord_bm
+*/
+#define LVVC_MODE_AVL_FORMAX ((LVVC_ModeWord_bm)2)
+#define LVVC_MODE_AVL_ADAPT_FORMAX ((LVVC_ModeWord_bm)4)
+#define LVVC_MODE_AVL_SPDETECT_FORMAX ((LVVC_ModeWord_bm)8)
+#define LVVC_MODE_LIMITER_FORMAX ((LVVC_ModeWord_bm)16)
+#define LVVC_MODE_LPF_FORMAX ((LVVC_ModeWord_bm)32)
+#define LVVC_MODE_HPF_FORMAX ((LVVC_ModeWord_bm)64)
+#define LVVC_MODE_VC_FORMAX ((LVVC_ModeWord_bm)128)
+#define LVVC_MODEWORD_BM_MAX (LVVC_MODE_AVL_FORMAX | LVVC_MODE_AVL_ADAPT_FORMAX | LVVC_MODE_AVL_SPDETECT_FORMAX | LVVC_MODE_LIMITER_FORMAX | LVVC_MODE_LPF_FORMAX | LVVC_MODE_HPF_FORMAX | LVVC_MODE_VC_FORMAX | ((LVVC_ModeWord_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref LVFENS_MODE_HS</td>
+ <td>1</td>
+ <td>Switch ON and OFF Horn Suppressor. Currently Horn Suppressor is not supported.</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVFENS_ModeWord_bm;
+/**
+* @def LVFENS_MODE_HS
+* Switch ON and OFF Horn Suppressor. Currently Horn Suppressor is not supported.
+* @see LVFENS_ModeWord_bm
+*/
+#define LVFENS_MODE_HS ((LVFENS_ModeWord_bm)1)
+/**
+* @def LVFENS_MODEWORD_BM_MIN
+* Minimal value for LVFENS_ModeWord_bm
+* @see LVFENS_ModeWord_bm
+*/
+#define LVFENS_MODEWORD_BM_MIN ((LVFENS_ModeWord_bm)0)
+/**
+* @def LVFENS_MODEWORD_BM_MAX
+* Maximal value for LVFENS_ModeWord_bm
+* @see LVFENS_ModeWord_bm
+*/
+#define LVFENS_MODE_HS_FORMAX ((LVFENS_ModeWord_bm)1)
+#define LVFENS_MODEWORD_BM_MAX (LVFENS_MODE_HS_FORMAX | ((LVFENS_ModeWord_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref LVWM_MODE_AVL</td>
+ <td>1</td>
+ <td>Turns on or off the AVL. If off, both AGC and Limiter are bypassed</td>
+ </tr>
+ <tr>
+ <td>@ref LVWM_MODE_SPDETECT</td>
+ <td>2</td>
+ <td>Allows disabling speech detection in the AVL. When turned off, the AGC adapts its gain all the time.</td>
+ </tr>
+ <tr>
+ <td>@ref LVWM_MODE_LIMITER</td>
+ <td>4</td>
+ <td>Turns on or off the limiter.</td>
+ </tr>
+ <tr>
+ <td>@ref LVWM_MODE_EXT_SPDETECT</td>
+ <td>8</td>
+ <td>Used to tell the WhisperMode module if an external speech detection is available (If 0, there is no external speech detector).</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVWM_ModeWord_bm;
+/**
+* @def LVWM_MODE_AVL
+* Turns on or off the AVL. If off, both AGC and Limiter are bypassed
+* @see LVWM_ModeWord_bm
+*/
+#define LVWM_MODE_AVL ((LVWM_ModeWord_bm)1)
+/**
+* @def LVWM_MODE_SPDETECT
+* Allows disabling speech detection in the AVL. When turned off, the AGC adapts its gain all the time.
+* @see LVWM_ModeWord_bm
+*/
+#define LVWM_MODE_SPDETECT ((LVWM_ModeWord_bm)2)
+/**
+* @def LVWM_MODE_LIMITER
+* Turns on or off the limiter.
+* @see LVWM_ModeWord_bm
+*/
+#define LVWM_MODE_LIMITER ((LVWM_ModeWord_bm)4)
+/**
+* @def LVWM_MODE_EXT_SPDETECT
+* Used to tell the WhisperMode module if an external speech detection is available (If 0, there is no external speech detector).
+* @see LVWM_ModeWord_bm
+*/
+#define LVWM_MODE_EXT_SPDETECT ((LVWM_ModeWord_bm)8)
+/**
+* @def LVWM_MODEWORD_BM_MIN
+* Minimal value for LVWM_ModeWord_bm
+* @see LVWM_ModeWord_bm
+*/
+#define LVWM_MODEWORD_BM_MIN ((LVWM_ModeWord_bm)0)
+/**
+* @def LVWM_MODEWORD_BM_MAX
+* Maximal value for LVWM_ModeWord_bm
+* @see LVWM_ModeWord_bm
+*/
+#define LVWM_MODE_AVL_FORMAX ((LVWM_ModeWord_bm)1)
+#define LVWM_MODE_SPDETECT_FORMAX ((LVWM_ModeWord_bm)2)
+#define LVWM_MODE_LIMITER_FORMAX ((LVWM_ModeWord_bm)4)
+#define LVWM_MODE_EXT_SPDETECT_FORMAX ((LVWM_ModeWord_bm)8)
+#define LVWM_MODEWORD_BM_MAX (LVWM_MODE_AVL_FORMAX | LVWM_MODE_SPDETECT_FORMAX | LVWM_MODE_LIMITER_FORMAX | LVWM_MODE_EXT_SPDETECT_FORMAX | ((LVWM_ModeWord_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref MODE_NLMS0</td>
+ <td>1</td>
+ <td>NLMS0 functionality</td>
+ </tr>
+ <tr>
+ <td>@ref MODE_NLMS1</td>
+ <td>2</td>
+ <td>NLMS1 functionality</td>
+ </tr>
+ <tr>
+ <td>@ref MODE_BEAMFORMER</td>
+ <td>4</td>
+ <td>Fiter-and-Sum Beamformer functionality</td>
+ </tr>
+ <tr>
+ <td>@ref MODE_PCD</td>
+ <td>8</td>
+ <td>Switch between PCD (Path change detector) and BSD (Broadside detector)</td>
+ </tr>
+ <tr>
+ <td>@ref MODE_GSC</td>
+ <td>16</td>
+ <td>Generalized Sidelobe Canceller functionality</td>
+ </tr>
+ <tr>
+ <td>@ref MODE_DNNS</td>
+ <td>32</td>
+ <td>Dynamic Non-stationary Noise Suppression functionality</td>
+ </tr>
+ <tr>
+ <td>@ref MODE_DES</td>
+ <td>64</td>
+ <td>Dynamic Echo Suppression functionality</td>
+ </tr>
+ <tr>
+ <td>@ref MODE_NS</td>
+ <td>128</td>
+ <td>Stationary Noise Suppression functionality</td>
+ </tr>
+ <tr>
+ <td>@ref MODE_NS_N</td>
+ <td>256</td>
+ <td>Non-stationary Noise Suppression functionality</td>
+ </tr>
+ <tr>
+ <td>@ref MODE_CAL</td>
+ <td>2048</td>
+ <td>Switch between initial or continuous calibration</td>
+ </tr>
+ <tr>
+ <td>@ref MODE_HB</td>
+ <td>16384</td>
+ <td>High Band mute/activated</td>
+ </tr>
+ <tr>
+ <td>@ref MODE_HS</td>
+ <td>32768</td>
+ <td>Horn Suppressor functionality (if available)</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVNV_ModeWord_bm;
+/**
+* @def MODE_NLMS0
+* NLMS0 functionality
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_NLMS0 ((LVNV_ModeWord_bm)1)
+/**
+* @def MODE_NLMS1
+* NLMS1 functionality
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_NLMS1 ((LVNV_ModeWord_bm)2)
+/**
+* @def MODE_BEAMFORMER
+* Fiter-and-Sum Beamformer functionality
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_BEAMFORMER ((LVNV_ModeWord_bm)4)
+/**
+* @def MODE_PCD
+* Switch between PCD (Path change detector) and BSD (Broadside detector)
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_PCD ((LVNV_ModeWord_bm)8)
+/**
+* @def MODE_GSC
+* Generalized Sidelobe Canceller functionality
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_GSC ((LVNV_ModeWord_bm)16)
+/**
+* @def MODE_DNNS
+* Dynamic Non-stationary Noise Suppression functionality
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_DNNS ((LVNV_ModeWord_bm)32)
+/**
+* @def MODE_DES
+* Dynamic Echo Suppression functionality
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_DES ((LVNV_ModeWord_bm)64)
+/**
+* @def MODE_NS
+* Stationary Noise Suppression functionality
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_NS ((LVNV_ModeWord_bm)128)
+/**
+* @def MODE_NS_N
+* Non-stationary Noise Suppression functionality
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_NS_N ((LVNV_ModeWord_bm)256)
+/**
+* @def MODE_CAL
+* Switch between initial or continuous calibration
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_CAL ((LVNV_ModeWord_bm)2048)
+/**
+* @def MODE_HB
+* High Band mute/activated
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_HB ((LVNV_ModeWord_bm)16384)
+/**
+* @def MODE_HS
+* Horn Suppressor functionality (if available)
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_HS ((LVNV_ModeWord_bm)32768)
+/**
+* @def LVNV_MODEWORD_BM_MIN
+* Minimal value for LVNV_ModeWord_bm
+* @see LVNV_ModeWord_bm
+*/
+#define LVNV_MODEWORD_BM_MIN ((LVNV_ModeWord_bm)0)
+/**
+* @def LVNV_MODEWORD_BM_MAX
+* Maximal value for LVNV_ModeWord_bm
+* @see LVNV_ModeWord_bm
+*/
+#define MODE_NLMS0_FORMAX ((LVNV_ModeWord_bm)1)
+#define MODE_NLMS1_FORMAX ((LVNV_ModeWord_bm)2)
+#define MODE_BEAMFORMER_FORMAX ((LVNV_ModeWord_bm)4)
+#define MODE_PCD_FORMAX ((LVNV_ModeWord_bm)8)
+#define MODE_GSC_FORMAX ((LVNV_ModeWord_bm)16)
+#define MODE_DNNS_FORMAX ((LVNV_ModeWord_bm)32)
+#define MODE_DES_FORMAX ((LVNV_ModeWord_bm)64)
+#define MODE_NS_FORMAX ((LVNV_ModeWord_bm)128)
+#define MODE_NS_N_FORMAX ((LVNV_ModeWord_bm)256)
+#define MODE_CAL_FORMAX ((LVNV_ModeWord_bm)2048)
+#define MODE_HB_FORMAX ((LVNV_ModeWord_bm)16384)
+#define MODE_HS_FORMAX ((LVNV_ModeWord_bm)32768)
+#define LVNV_MODEWORD_BM_MAX (MODE_NLMS0_FORMAX | MODE_NLMS1_FORMAX | MODE_BEAMFORMER_FORMAX | MODE_PCD_FORMAX | MODE_GSC_FORMAX | MODE_DNNS_FORMAX | MODE_DES_FORMAX | MODE_NS_FORMAX | MODE_NS_N_FORMAX | MODE_CAL_FORMAX | MODE_HB_FORMAX | MODE_HS_FORMAX | ((LVNV_ModeWord_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref MODE2_FSB_CARDIOID</td>
+ <td>1</td>
+ <td>FSB update based on speech detection in cardioid</td>
+ </tr>
+ <tr>
+ <td>@ref MODE2_FSB_WITHINBEAM</td>
+ <td>2</td>
+ <td>FSB update based on withinbeam detection</td>
+ </tr>
+ <tr>
+ <td>@ref MODE2_CAL_UPDATE</td>
+ <td>4</td>
+ <td>Switch for calibration functionality between updated or not-updated</td>
+ </tr>
+ <tr>
+ <td>@ref MODE2_BEAMDAMAGE</td>
+ <td>8</td>
+ <td>Microphone coverage protection</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVNV_Mode2Word_bm;
+/**
+* @def MODE2_FSB_CARDIOID
+* FSB update based on speech detection in cardioid
+* @see LVNV_Mode2Word_bm
+*/
+#define MODE2_FSB_CARDIOID ((LVNV_Mode2Word_bm)1)
+/**
+* @def MODE2_FSB_WITHINBEAM
+* FSB update based on withinbeam detection
+* @see LVNV_Mode2Word_bm
+*/
+#define MODE2_FSB_WITHINBEAM ((LVNV_Mode2Word_bm)2)
+/**
+* @def MODE2_CAL_UPDATE
+* Switch for calibration functionality between updated or not-updated
+* @see LVNV_Mode2Word_bm
+*/
+#define MODE2_CAL_UPDATE ((LVNV_Mode2Word_bm)4)
+/**
+* @def MODE2_BEAMDAMAGE
+* Microphone coverage protection
+* @see LVNV_Mode2Word_bm
+*/
+#define MODE2_BEAMDAMAGE ((LVNV_Mode2Word_bm)8)
+/**
+* @def LVNV_MODE2WORD_BM_MIN
+* Minimal value for LVNV_Mode2Word_bm
+* @see LVNV_Mode2Word_bm
+*/
+#define LVNV_MODE2WORD_BM_MIN ((LVNV_Mode2Word_bm)0)
+/**
+* @def LVNV_MODE2WORD_BM_MAX
+* Maximal value for LVNV_Mode2Word_bm
+* @see LVNV_Mode2Word_bm
+*/
+#define MODE2_FSB_CARDIOID_FORMAX ((LVNV_Mode2Word_bm)1)
+#define MODE2_FSB_WITHINBEAM_FORMAX ((LVNV_Mode2Word_bm)2)
+#define MODE2_CAL_UPDATE_FORMAX ((LVNV_Mode2Word_bm)4)
+#define MODE2_BEAMDAMAGE_FORMAX ((LVNV_Mode2Word_bm)8)
+#define LVNV_MODE2WORD_BM_MAX (MODE2_FSB_CARDIOID_FORMAX | MODE2_FSB_WITHINBEAM_FORMAX | MODE2_CAL_UPDATE_FORMAX | MODE2_BEAMDAMAGE_FORMAX | ((LVNV_Mode2Word_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref TUNING_MODE_NLMS1</td>
+ <td>1</td>
+ <td>NLMS1 output</td>
+ </tr>
+ <tr>
+ <td>@ref TUNING_MODE_FSB</td>
+ <td>2</td>
+ <td>FSB noise reference output</td>
+ </tr>
+ <tr>
+ <td>@ref TUNING_MODE_WITHINBEAM</td>
+ <td>8</td>
+ <td>Tuning beep when Withinbeam=1</td>
+ </tr>
+ <tr>
+ <td>@ref TUNING_MODE_UPDATEONOFF</td>
+ <td>16</td>
+ <td>Tuning beep when FSB is updated</td>
+ </tr>
+ <tr>
+ <td>@ref TUNING_MODE_CAL_MICPOW</td>
+ <td>64</td>
+ <td>Tuning beep when MicPow is lower than Cal_micPowFloorMin</td>
+ </tr>
+ <tr>
+ <td>@ref TUNING_MODE_BROADSIDE</td>
+ <td>128</td>
+ <td>Tuning beep when broadside is detected</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVNV_TuningModeWord_bm;
+/**
+* @def TUNING_MODE_NLMS1
+* NLMS1 output
+* @see LVNV_TuningModeWord_bm
+*/
+#define TUNING_MODE_NLMS1 ((LVNV_TuningModeWord_bm)1)
+/**
+* @def TUNING_MODE_FSB
+* FSB noise reference output
+* @see LVNV_TuningModeWord_bm
+*/
+#define TUNING_MODE_FSB ((LVNV_TuningModeWord_bm)2)
+/**
+* @def TUNING_MODE_WITHINBEAM
+* Tuning beep when Withinbeam=1
+* @see LVNV_TuningModeWord_bm
+*/
+#define TUNING_MODE_WITHINBEAM ((LVNV_TuningModeWord_bm)8)
+/**
+* @def TUNING_MODE_UPDATEONOFF
+* Tuning beep when FSB is updated
+* @see LVNV_TuningModeWord_bm
+*/
+#define TUNING_MODE_UPDATEONOFF ((LVNV_TuningModeWord_bm)16)
+/**
+* @def TUNING_MODE_CAL_MICPOW
+* Tuning beep when MicPow is lower than Cal_micPowFloorMin
+* @see LVNV_TuningModeWord_bm
+*/
+#define TUNING_MODE_CAL_MICPOW ((LVNV_TuningModeWord_bm)64)
+/**
+* @def TUNING_MODE_BROADSIDE
+* Tuning beep when broadside is detected
+* @see LVNV_TuningModeWord_bm
+*/
+#define TUNING_MODE_BROADSIDE ((LVNV_TuningModeWord_bm)128)
+/**
+* @def LVNV_TUNINGMODEWORD_BM_MIN
+* Minimal value for LVNV_TuningModeWord_bm
+* @see LVNV_TuningModeWord_bm
+*/
+#define LVNV_TUNINGMODEWORD_BM_MIN ((LVNV_TuningModeWord_bm)0)
+/**
+* @def LVNV_TUNINGMODEWORD_BM_MAX
+* Maximal value for LVNV_TuningModeWord_bm
+* @see LVNV_TuningModeWord_bm
+*/
+#define TUNING_MODE_NLMS1_FORMAX ((LVNV_TuningModeWord_bm)1)
+#define TUNING_MODE_FSB_FORMAX ((LVNV_TuningModeWord_bm)2)
+#define TUNING_MODE_WITHINBEAM_FORMAX ((LVNV_TuningModeWord_bm)8)
+#define TUNING_MODE_UPDATEONOFF_FORMAX ((LVNV_TuningModeWord_bm)16)
+#define TUNING_MODE_CAL_MICPOW_FORMAX ((LVNV_TuningModeWord_bm)64)
+#define TUNING_MODE_BROADSIDE_FORMAX ((LVNV_TuningModeWord_bm)128)
+#define LVNV_TUNINGMODEWORD_BM_MAX (TUNING_MODE_NLMS1_FORMAX | TUNING_MODE_FSB_FORMAX | TUNING_MODE_WITHINBEAM_FORMAX | TUNING_MODE_UPDATEONOFF_FORMAX | TUNING_MODE_CAL_MICPOW_FORMAX | TUNING_MODE_BROADSIDE_FORMAX | ((LVNV_TuningModeWord_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref LVNV_STATUS_LOST_BEAM</td>
+ <td>1</td>
+ <td>LostBeam detections</td>
+ </tr>
+ <tr>
+ <td>@ref LVNV_STATUS_MIC_COV</td>
+ <td>2</td>
+ <td>Microphone Coverage detections</td>
+ </tr>
+ <tr>
+ <td>@ref LVNV_STATUS_FSB_UPDATE</td>
+ <td>4</td>
+ <td>FSB updates</td>
+ </tr>
+ <tr>
+ <td>@ref LVNV_STATUS_BEAM_DAMAGE</td>
+ <td>8</td>
+ <td>BeamDamage detections</td>
+ </tr>
+ <tr>
+ <td>@ref LVNV_STATUS_GSC_UPDATE</td>
+ <td>16</td>
+ <td>GSC updates</td>
+ </tr>
+ <tr>
+ <td>@ref LVNV_STATUS_DNNS_WBEAM</td>
+ <td>32</td>
+ <td>DNNS WithinBeam detections</td>
+ </tr>
+ <tr>
+ <td>@ref LVNV_STATUS_DNNS_ACTIVITY</td>
+ <td>64</td>
+ <td>DNNS activity detections</td>
+ </tr>
+ <tr>
+ <td>@ref LVNV_STATUS_CAL_MICPOW</td>
+ <td>128</td>
+ <td>Calibration Microphone Power</td>
+ </tr>
+ <tr>
+ <td>@ref LVNV_STATUS_MICPOWSP</td>
+ <td>256</td>
+ <td>(LV1008) MicPow Speech detections</td>
+ </tr>
+ <tr>
+ <td>@ref LVNV_STATUS_BROADSIDE_FLAG</td>
+ <td>512</td>
+ <td>(LV2370) Broadside detection flag</td>
+ </tr>
+ <tr>
+ <td>@ref LVNV_STATUS_CAL_UPDATED</td>
+ <td>1024</td>
+ <td>(LV8237) Calibration updated flag</td>
+ </tr>
+ <tr>
+ <td>@ref LVNV_STATUS_WBEAM_FIX</td>
+ <td>2048</td>
+ <td>WithinBeam detection for Fixed Beamformer (if available).</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVNV_StatusWord_bm;
+/**
+* @def LVNV_STATUS_LOST_BEAM
+* LostBeam detections
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_LOST_BEAM ((LVNV_StatusWord_bm)1)
+/**
+* @def LVNV_STATUS_MIC_COV
+* Microphone Coverage detections
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_MIC_COV ((LVNV_StatusWord_bm)2)
+/**
+* @def LVNV_STATUS_FSB_UPDATE
+* FSB updates
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_FSB_UPDATE ((LVNV_StatusWord_bm)4)
+/**
+* @def LVNV_STATUS_BEAM_DAMAGE
+* BeamDamage detections
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_BEAM_DAMAGE ((LVNV_StatusWord_bm)8)
+/**
+* @def LVNV_STATUS_GSC_UPDATE
+* GSC updates
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_GSC_UPDATE ((LVNV_StatusWord_bm)16)
+/**
+* @def LVNV_STATUS_DNNS_WBEAM
+* DNNS WithinBeam detections
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_DNNS_WBEAM ((LVNV_StatusWord_bm)32)
+/**
+* @def LVNV_STATUS_DNNS_ACTIVITY
+* DNNS activity detections
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_DNNS_ACTIVITY ((LVNV_StatusWord_bm)64)
+/**
+* @def LVNV_STATUS_CAL_MICPOW
+* Calibration Microphone Power
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_CAL_MICPOW ((LVNV_StatusWord_bm)128)
+/**
+* @def LVNV_STATUS_MICPOWSP
+* (LV1008) MicPow Speech detections
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_MICPOWSP ((LVNV_StatusWord_bm)256)
+/**
+* @def LVNV_STATUS_BROADSIDE_FLAG
+* (LV2370) Broadside detection flag
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_BROADSIDE_FLAG ((LVNV_StatusWord_bm)512)
+/**
+* @def LVNV_STATUS_CAL_UPDATED
+* (LV8237) Calibration updated flag
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_CAL_UPDATED ((LVNV_StatusWord_bm)1024)
+/**
+* @def LVNV_STATUS_WBEAM_fix
+* WithinBeam detection for Fixed Beamformer (if available).
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_WBEAM_FIX ((LVNV_StatusWord_bm)2048)
+/**
+* @def LVNV_STATUSWORD_BM_MIN
+* Minimal value for LVNV_StatusWord_bm
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUSWORD_BM_MIN ((LVNV_StatusWord_bm)0)
+/**
+* @def LVNV_STATUSWORD_BM_MAX
+* Maximal value for LVNV_StatusWord_bm
+* @see LVNV_StatusWord_bm
+*/
+#define LVNV_STATUS_LOST_BEAM_FORMAX ((LVNV_StatusWord_bm)1)
+#define LVNV_STATUS_MIC_COV_FORMAX ((LVNV_StatusWord_bm)2)
+#define LVNV_STATUS_FSB_UPDATE_FORMAX ((LVNV_StatusWord_bm)4)
+#define LVNV_STATUS_BEAM_DAMAGE_FORMAX ((LVNV_StatusWord_bm)8)
+#define LVNV_STATUS_GSC_UPDATE_FORMAX ((LVNV_StatusWord_bm)16)
+#define LVNV_STATUS_DNNS_WBEAM_FORMAX ((LVNV_StatusWord_bm)32)
+#define LVNV_STATUS_DNNS_ACTIVITY_FORMAX ((LVNV_StatusWord_bm)64)
+#define LVNV_STATUS_CAL_MICPOW_FORMAX ((LVNV_StatusWord_bm)128)
+#define LVNV_STATUS_MICPOWSP_FORMAX ((LVNV_StatusWord_bm)256)
+#define LVNV_STATUS_BROADSIDE_FLAG_FORMAX ((LVNV_StatusWord_bm)512)
+#define LVNV_STATUS_CAL_UPDATED_FORMAX ((LVNV_StatusWord_bm)1024)
+#define LVNV_STATUS_WBEAM_FIX_FORMAX ((LVNV_StatusWord_bm)2048)
+#define LVNV_STATUSWORD_BM_MAX (LVNV_STATUS_LOST_BEAM_FORMAX | LVNV_STATUS_MIC_COV_FORMAX | LVNV_STATUS_FSB_UPDATE_FORMAX | LVNV_STATUS_BEAM_DAMAGE_FORMAX | LVNV_STATUS_GSC_UPDATE_FORMAX | LVNV_STATUS_DNNS_WBEAM_FORMAX | LVNV_STATUS_DNNS_ACTIVITY_FORMAX | LVNV_STATUS_CAL_MICPOW_FORMAX | LVNV_STATUS_MICPOWSP_FORMAX | LVNV_STATUS_BROADSIDE_FLAG_FORMAX | LVNV_STATUS_CAL_UPDATED_FORMAX | LVNV_STATUS_WBEAM_FIX_FORMAX | ((LVNV_StatusWord_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_CONTROL_TUNE_PATHCHANGE</td>
+ <td>1</td>
+ <td>PCD tuning beep</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_CONTROL_TUNE_CLIP</td>
+ <td>2</td>
+ <td>SPDET_x_clip tuning beep</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_CONTROL_TUNE_FAR_SPEAKS</td>
+ <td>4</td>
+ <td>SPDET_far tuning beep</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_CONTROL_TUNE_MIC_SPEAKS</td>
+ <td>8</td>
+ <td>SPDET_mic tuning beep</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_CONTROL_TUNE_HB_MUTE</td>
+ <td>16</td>
+ <td>Mute high band (4kHz-8kHz). Should be disabled by default.</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_CONTROL_TUNE_TB_MUTE</td>
+ <td>32</td>
+ <td>Mute top band (above 8kHz). Should be disabled by default.</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVHF_TuningModeWord;
+/**
+* @def LVHF_CONTROL_TUNE_PATHCHANGE
+* PCD tuning beep
+* @see LVHF_TuningModeWord
+*/
+#define LVHF_CONTROL_TUNE_PATHCHANGE ((LVHF_TuningModeWord)1)
+/**
+* @def LVHF_CONTROL_TUNE_CLIP
+* SPDET_x_clip tuning beep
+* @see LVHF_TuningModeWord
+*/
+#define LVHF_CONTROL_TUNE_CLIP ((LVHF_TuningModeWord)2)
+/**
+* @def LVHF_CONTROL_TUNE_FAR_SPEAKS
+* SPDET_far tuning beep
+* @see LVHF_TuningModeWord
+*/
+#define LVHF_CONTROL_TUNE_FAR_SPEAKS ((LVHF_TuningModeWord)4)
+/**
+* @def LVHF_CONTROL_TUNE_MIC_SPEAKS
+* SPDET_mic tuning beep
+* @see LVHF_TuningModeWord
+*/
+#define LVHF_CONTROL_TUNE_MIC_SPEAKS ((LVHF_TuningModeWord)8)
+/**
+* @def LVHF_CONTROL_TUNE_HB_MUTE
+* Mute high band (4kHz-8kHz). Should be disabled by default.
+* @see LVHF_TuningModeWord
+*/
+#define LVHF_CONTROL_TUNE_HB_MUTE ((LVHF_TuningModeWord)16)
+/**
+* @def LVHF_CONTROL_TUNE_TB_MUTE
+* Mute top band (above 8kHz). Should be disabled by default.
+* @see LVHF_TuningModeWord
+*/
+#define LVHF_CONTROL_TUNE_TB_MUTE ((LVHF_TuningModeWord)32)
+/**
+* @def LVHF_TUNINGMODEWORD_MIN
+* Minimal value for LVHF_TuningModeWord
+* @see LVHF_TuningModeWord
+*/
+#define LVHF_TUNINGMODEWORD_MIN ((LVHF_TuningModeWord)0)
+/**
+* @def LVHF_TUNINGMODEWORD_MAX
+* Maximal value for LVHF_TuningModeWord
+* @see LVHF_TuningModeWord
+*/
+#define LVHF_CONTROL_TUNE_PATHCHANGE_FORMAX ((LVHF_TuningModeWord)1)
+#define LVHF_CONTROL_TUNE_CLIP_FORMAX ((LVHF_TuningModeWord)2)
+#define LVHF_CONTROL_TUNE_FAR_SPEAKS_FORMAX ((LVHF_TuningModeWord)4)
+#define LVHF_CONTROL_TUNE_MIC_SPEAKS_FORMAX ((LVHF_TuningModeWord)8)
+#define LVHF_CONTROL_TUNE_HB_MUTE_FORMAX ((LVHF_TuningModeWord)16)
+#define LVHF_CONTROL_TUNE_TB_MUTE_FORMAX ((LVHF_TuningModeWord)32)
+#define LVHF_TUNINGMODEWORD_MAX (LVHF_CONTROL_TUNE_PATHCHANGE_FORMAX | LVHF_CONTROL_TUNE_CLIP_FORMAX | LVHF_CONTROL_TUNE_FAR_SPEAKS_FORMAX | LVHF_CONTROL_TUNE_MIC_SPEAKS_FORMAX | LVHF_CONTROL_TUNE_HB_MUTE_FORMAX | LVHF_CONTROL_TUNE_TB_MUTE_FORMAX | ((LVHF_TuningModeWord)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_MODE_NLMS</td>
+ <td>1</td>
+ <td>NLMS functionality</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_MODE_DES</td>
+ <td>2</td>
+ <td>DES (Dynamic Echo Suppression)</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_MODE_NS</td>
+ <td>4</td>
+ <td>NS (Noise Suppression)</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_MODE_CNI</td>
+ <td>8</td>
+ <td>CNI (Comfort Noise Injection)</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_MODE_NLES</td>
+ <td>16</td>
+ <td>NLES (Non Linear Echo Suppression)</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_MODE_PCD_DT</td>
+ <td>64</td>
+ <td>DT (Double Talk) protection after PCD</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_MODE_PCD</td>
+ <td>128</td>
+ <td>PCD (Path Change Detector)</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_MODE_INIT_ES</td>
+ <td>256</td>
+ <td>Initial echo suppression setting by PCD_gamma_e_rescue</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_MODE_HS</td>
+ <td>512</td>
+ <td>HornSuppression (if available)</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_MODE_PRENLMS</td>
+ <td>4096</td>
+ <td>Pre-NLMS preprocessing</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVHF_ModeWord_bm;
+/**
+* @def LVHF_MODE_NLMS
+* NLMS functionality
+* @see LVHF_ModeWord_bm
+*/
+#define LVHF_MODE_NLMS ((LVHF_ModeWord_bm)1)
+/**
+* @def LVHF_MODE_DES
+* DES (Dynamic Echo Suppression)
+* @see LVHF_ModeWord_bm
+*/
+#define LVHF_MODE_DES ((LVHF_ModeWord_bm)2)
+/**
+* @def LVHF_MODE_NS
+* NS (Noise Suppression)
+* @see LVHF_ModeWord_bm
+*/
+#define LVHF_MODE_NS ((LVHF_ModeWord_bm)4)
+/**
+* @def LVHF_MODE_CNI
+* CNI (Comfort Noise Injection)
+* @see LVHF_ModeWord_bm
+*/
+#define LVHF_MODE_CNI ((LVHF_ModeWord_bm)8)
+/**
+* @def LVHF_MODE_NLES
+* NLES (Non Linear Echo Suppression)
+* @see LVHF_ModeWord_bm
+*/
+#define LVHF_MODE_NLES ((LVHF_ModeWord_bm)16)
+/**
+* @def LVHF_MODE_PCD_DT
+* DT (Double Talk) protection after PCD
+* @see LVHF_ModeWord_bm
+*/
+#define LVHF_MODE_PCD_DT ((LVHF_ModeWord_bm)64)
+/**
+* @def LVHF_MODE_PCD
+* PCD (Path Change Detector)
+* @see LVHF_ModeWord_bm
+*/
+#define LVHF_MODE_PCD ((LVHF_ModeWord_bm)128)
+/**
+* @def LVHF_MODE_INIT_ES
+* Initial echo suppression setting by PCD_gamma_e_rescue
+* @see LVHF_ModeWord_bm
+*/
+#define LVHF_MODE_INIT_ES ((LVHF_ModeWord_bm)256)
+/**
+* @def LVHF_MODE_HS
+* HornSuppression (if available)
+* @see LVHF_ModeWord_bm
+*/
+#define LVHF_MODE_HS ((LVHF_ModeWord_bm)512)
+/**
+* @def LVHF_MODE_PRENLMS
+* Pre-NLMS preprocessing
+* @see LVHF_ModeWord_bm
+*/
+#define LVHF_MODE_PRENLMS ((LVHF_ModeWord_bm)4096)
+/**
+* @def LVHF_MODEWORD_BM_MIN
+* Minimal value for LVHF_ModeWord_bm
+* @see LVHF_ModeWord_bm
+*/
+#define LVHF_MODEWORD_BM_MIN ((LVHF_ModeWord_bm)0)
+/**
+* @def LVHF_MODEWORD_BM_MAX
+* Maximal value for LVHF_ModeWord_bm
+* @see LVHF_ModeWord_bm
+*/
+#define LVHF_MODE_NLMS_FORMAX ((LVHF_ModeWord_bm)1)
+#define LVHF_MODE_DES_FORMAX ((LVHF_ModeWord_bm)2)
+#define LVHF_MODE_NS_FORMAX ((LVHF_ModeWord_bm)4)
+#define LVHF_MODE_CNI_FORMAX ((LVHF_ModeWord_bm)8)
+#define LVHF_MODE_NLES_FORMAX ((LVHF_ModeWord_bm)16)
+#define LVHF_MODE_PCD_DT_FORMAX ((LVHF_ModeWord_bm)64)
+#define LVHF_MODE_PCD_FORMAX ((LVHF_ModeWord_bm)128)
+#define LVHF_MODE_INIT_ES_FORMAX ((LVHF_ModeWord_bm)256)
+#define LVHF_MODE_HS_FORMAX ((LVHF_ModeWord_bm)512)
+#define LVHF_MODE_PRENLMS_FORMAX ((LVHF_ModeWord_bm)4096)
+#define LVHF_MODEWORD_BM_MAX (LVHF_MODE_NLMS_FORMAX | LVHF_MODE_DES_FORMAX | LVHF_MODE_NS_FORMAX | LVHF_MODE_CNI_FORMAX | LVHF_MODE_NLES_FORMAX | LVHF_MODE_PCD_DT_FORMAX | LVHF_MODE_PCD_FORMAX | LVHF_MODE_INIT_ES_FORMAX | LVHF_MODE_HS_FORMAX | LVHF_MODE_PRENLMS_FORMAX | ((LVHF_ModeWord_bm)0))
+/**
+<table border>
+ <tr>
+ <td><b>Name</b></td>
+ <td><b>Value</b></td>
+ <td><b>Description</b></td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_STATUS_FAR_SPEAKS</td>
+ <td>1</td>
+ <td>FarEnd is speaking</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_STATUS_FAR_STARTS</td>
+ <td>2</td>
+ <td>FarEnd starts to speak</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_STATUS_MIC_SPEAKS</td>
+ <td>4</td>
+ <td>Mic activity detected</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_STATUS_CLIP</td>
+ <td>8</td>
+ <td>Clipping Detected</td>
+ </tr>
+ <tr>
+ <td>@ref LVHF_STATUS_PATHCHANGE</td>
+ <td>16</td>
+ <td>Path Change detected</td>
+ </tr>
+</table> */
+typedef LVM_UINT16 LVHF_StatusWord_bm;
+/**
+* @def LVHF_STATUS_FAR_SPEAKS
+* FarEnd is speaking
+* @see LVHF_StatusWord_bm
+*/
+#define LVHF_STATUS_FAR_SPEAKS ((LVHF_StatusWord_bm)1)
+/**
+* @def LVHF_STATUS_FAR_STARTS
+* FarEnd starts to speak
+* @see LVHF_StatusWord_bm
+*/
+#define LVHF_STATUS_FAR_STARTS ((LVHF_StatusWord_bm)2)
+/**
+* @def LVHF_STATUS_MIC_SPEAKS
+* Mic activity detected
+* @see LVHF_StatusWord_bm
+*/
+#define LVHF_STATUS_MIC_SPEAKS ((LVHF_StatusWord_bm)4)
+/**
+* @def LVHF_STATUS_CLIP
+* Clipping Detected
+* @see LVHF_StatusWord_bm
+*/
+#define LVHF_STATUS_CLIP ((LVHF_StatusWord_bm)8)
+/**
+* @def LVHF_STATUS_PATHCHANGE
+* Path Change detected
+* @see LVHF_StatusWord_bm
+*/
+#define LVHF_STATUS_PATHCHANGE ((LVHF_StatusWord_bm)16)
+/**
+* @def LVHF_STATUSWORD_BM_MIN
+* Minimal value for LVHF_StatusWord_bm
+* @see LVHF_StatusWord_bm
+*/
+#define LVHF_STATUSWORD_BM_MIN ((LVHF_StatusWord_bm)0)
+/**
+* @def LVHF_STATUSWORD_BM_MAX
+* Maximal value for LVHF_StatusWord_bm
+* @see LVHF_StatusWord_bm
+*/
+#define LVHF_STATUS_FAR_SPEAKS_FORMAX ((LVHF_StatusWord_bm)1)
+#define LVHF_STATUS_FAR_STARTS_FORMAX ((LVHF_StatusWord_bm)2)
+#define LVHF_STATUS_MIC_SPEAKS_FORMAX ((LVHF_StatusWord_bm)4)
+#define LVHF_STATUS_CLIP_FORMAX ((LVHF_StatusWord_bm)8)
+#define LVHF_STATUS_PATHCHANGE_FORMAX ((LVHF_StatusWord_bm)16)
+#define LVHF_STATUSWORD_BM_MAX (LVHF_STATUS_FAR_SPEAKS_FORMAX | LVHF_STATUS_FAR_STARTS_FORMAX | LVHF_STATUS_MIC_SPEAKS_FORMAX | LVHF_STATUS_CLIP_FORMAX | LVHF_STATUS_PATHCHANGE_FORMAX | ((LVHF_StatusWord_bm)0))
+
+#define LVVIDHEADER_LVVE_RX_MASK1_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVIDHeader_LVVE_Rx_Mask1_bm in LVWireFormat.
+
+#define LVVIDHEADER_LVVE_RX_MASK2_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVIDHeader_LVVE_Rx_Mask2_bm in LVWireFormat.
+
+#define LVVIDHEADER_LVVE_TX_MASK1_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVIDHeader_LVVE_Tx_Mask1_bm in LVWireFormat.
+
+#define LVVIDHEADER_LVVE_TX_MASK2_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVIDHeader_LVVE_Tx_Mask2_bm in LVWireFormat.
+
+#define LVVIDHEADER_CONFIGURATIONS_MASK1_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVIDHeader_Configurations_Mask1_bm in LVWireFormat.
+
+#define LVVIDHEADER_CONFIGURATIONS_MASK2_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVIDHeader_Configurations_Mask2_bm in LVWireFormat.
+
+#define LVVC_MODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVC_ModeWord_bm in LVWireFormat.
+
+#define LVFENS_MODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVFENS_ModeWord_bm in LVWireFormat.
+
+#define LVWM_MODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVWM_ModeWord_bm in LVWireFormat.
+
+#define LVNV_MODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVNV_ModeWord_bm in LVWireFormat.
+
+#define LVNV_MODE2WORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVNV_Mode2Word_bm in LVWireFormat.
+
+#define LVNV_TUNINGMODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVNV_TuningModeWord_bm in LVWireFormat.
+
+#define LVNV_STATUSWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVNV_StatusWord_bm in LVWireFormat.
+
+#define LVHF_TUNINGMODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVHF_TuningModeWord in LVWireFormat.
+
+#define LVHF_MODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVHF_ModeWord_bm in LVWireFormat.
+
+#define LVHF_STATUSWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVHF_StatusWord_bm in LVWireFormat.
+
+#define LVM_MODE_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVM_Mode_en in LVWireFormat.
+
+#define LVM_CONFIG_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVM_Config_en in LVWireFormat.
+
+#define LVM_FS_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVM_Fs_en in LVWireFormat.
+
+#define LVVIDHEADER_MESSAGEID_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVVIDHeader_MessageID_en in LVWireFormat.
+
+#define LVVIDHEADER_RETURNSTATUS_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVVIDHeader_ReturnStatus_en in LVWireFormat.
+
+#define LVVE_RX_MODE_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVVE_Rx_Mode_en in LVWireFormat.
+
+#define LVVE_TX_MODE_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVVE_Tx_Mode_en in LVWireFormat.
+
+#define LVVIDHEADER_CONTROLPARAMS_LVWIREFORMAT_LENGTH (7 \
+ + LVVIDHEADER_LVVE_RX_MASK1_LVWIREFORMAT_LENGTH \
+ + LVVIDHEADER_LVVE_RX_MASK2_LVWIREFORMAT_LENGTH \
+ + LVVIDHEADER_LVVE_TX_MASK1_LVWIREFORMAT_LENGTH \
+ + LVVIDHEADER_LVVE_TX_MASK2_LVWIREFORMAT_LENGTH \
+ + LVVIDHEADER_CONFIGURATIONS_MASK1_LVWIREFORMAT_LENGTH \
+ + LVVIDHEADER_CONFIGURATIONS_MASK2_LVWIREFORMAT_LENGTH \
+ + LVVIDHEADER_MESSAGEID_LVWIREFORMAT_LENGTH \
+ + LVM_FS_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVVIDHeader ControlParameters in LVWireFormat.
+
+#define LVVC_CONTROLPARAMS_LVWIREFORMAT_LENGTH (22 \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVVC_MODEWORD_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVVC ControlParameters in LVWireFormat.
+
+#define LVFENS_CONTROLPARAMS_LVWIREFORMAT_LENGTH (2 \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVFENS_MODEWORD_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVFENS ControlParameters in LVWireFormat.
+
+#define LVWM_CONTROLPARAMS_LVWIREFORMAT_LENGTH (14 \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVWM_MODEWORD_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVWM ControlParameters in LVWireFormat.
+
+#define LVDRC_CONTROLPARAMS_LVWIREFORMAT_LENGTH (28 \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVM_MODE_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVDRC ControlParameters in LVWireFormat.
+
+#define LVNG_CONTROLPARAMS_LVWIREFORMAT_LENGTH (26 \
+ + LVM_MODE_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVNG ControlParameters in LVWireFormat.
+
+#define LVNLPP_CONTROLPARAMS_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode LVNLPP ControlParameters in LVWireFormat.
+
+#define LVEQ_CONTROLPARAMS_LVWIREFORMAT_LENGTH (66) ///< Number of bytes to encode LVEQ ControlParameters in LVWireFormat.
+
+#define LVVOL_CONTROLPARAMS_LVWIREFORMAT_LENGTH (2 \
+ + LVM_MODE_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVVOL ControlParameters in LVWireFormat.
+
+#define LVHPF_CONTROLPARAMS_LVWIREFORMAT_LENGTH (2 \
+ + LVM_MODE_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVHPF ControlParameters in LVWireFormat.
+
+#define LVMUTE_CONTROLPARAMS_LVWIREFORMAT_LENGTH (LVM_MODE_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVMUTE ControlParameters in LVWireFormat.
+
+#define LVVE_RX_CONTROLPARAMS_LVWIREFORMAT_LENGTH (4 \
+ + LVVE_RX_MODE_LVWIREFORMAT_LENGTH \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVFENS_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVNLPP_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
+ + LVVC_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVEQ_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
+ + LVDRC_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVWM_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
+ + LVNG_CONTROLPARAMS_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVVE_Rx ControlParameters in LVWireFormat.
+
+#define LVNV_CONTROLPARAMS_LVWIREFORMAT_LENGTH (122 \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVNV_MODEWORD_LVWIREFORMAT_LENGTH \
+ + LVNV_MODE2WORD_LVWIREFORMAT_LENGTH \
+ + LVNV_TUNINGMODEWORD_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVNV ControlParameters in LVWireFormat.
+
+#define LVHF_CONTROLPARAMS_LVWIREFORMAT_LENGTH (78 \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVHF_MODEWORD_LVWIREFORMAT_LENGTH \
+ + LVHF_TUNINGMODEWORD_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVHF ControlParameters in LVWireFormat.
+
+#define LVBD_CONTROLPARAMS_LVWIREFORMAT_LENGTH (4 \
+ + LVM_MODE_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVBD ControlParameters in LVWireFormat.
+
+#define LVVE_TX_CONTROLPARAMS_LVWIREFORMAT_LENGTH (8 \
+ + LVVE_TX_MODE_LVWIREFORMAT_LENGTH \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVHF_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
+ + LVNV_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
+ + LVM_MODE_LVWIREFORMAT_LENGTH \
+ + LVEQ_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
+ + LVDRC_CONTROLPARAMS_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVVE_Tx ControlParameters in LVWireFormat.
+
+/**
+* @def LVVIDHEADER_HEADERVERSION_DEFAULT
+* Default of HeaderVersion
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_HEADERVERSION_DEFAULT (3)
+/**
+* @def LVVIDHEADER_HEADERVERSION_MIN
+* MinValue of HeaderVersion
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_HEADERVERSION_MIN (0)
+/**
+* @def LVVIDHEADER_HEADERVERSION_MAX
+* MaxValue of HeaderVersion
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_HEADERVERSION_MAX (255)
+
+/**
+* @def LVVIDHEADER_BASELINEVERSION_DEFAULT
+* Default of BaselineVersion
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_BASELINEVERSION_DEFAULT (51906816)
+/**
+* @def LVVIDHEADER_BASELINEVERSION_MIN
+* MinValue of BaselineVersion
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_BASELINEVERSION_MIN (1)
+/**
+* @def LVVIDHEADER_BASELINEVERSION_MAX
+* MaxValue of BaselineVersion
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_BASELINEVERSION_MAX (4294967295)
+
+/**
+* @def LVVIDHEADER_LVVE_RX_ALGOMASK1_DEFAULT
+* Default of LVVE_Rx_AlgoMask1
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_LVVE_RX_ALGOMASK1_DEFAULT (LVVIDHEADER_LVVE_RX_MASK1_BM_MAX)
+
+/**
+* @def LVVIDHEADER_LVVE_RX_ALGOMASK2_DEFAULT
+* Default of LVVE_Rx_AlgoMask2
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_LVVE_RX_ALGOMASK2_DEFAULT (LVVIDHEADER_LVVE_RX_MASK2_BM_MAX)
+
+/**
+* @def LVVIDHEADER_LVVE_TX_ALGOMASK1_DEFAULT
+* Default of LVVE_Tx_AlgoMask1
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_LVVE_TX_ALGOMASK1_DEFAULT (LVVIDHEADER_LVVE_TX_MASK1_BM_MAX)
+
+/**
+* @def LVVIDHEADER_LVVE_TX_ALGOMASK2_DEFAULT
+* Default of LVVE_Tx_AlgoMask2
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_LVVE_TX_ALGOMASK2_DEFAULT (LVVIDHEADER_LVVE_TX_MASK2_BM_MAX)
+
+/**
+* @def LVVIDHEADER_LVVE_CONFIG_ALGOMASK1_DEFAULT
+* Default of LVVE_Config_AlgoMask1
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_LVVE_CONFIG_ALGOMASK1_DEFAULT (LVVIDHEADER_CONFIGURATIONS_MASK1_BM_MAX)
+
+/**
+* @def LVVIDHEADER_LVVE_CONFIG_ALGOMASK2_DEFAULT
+* Default of LVVE_Config_AlgoMask2
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_LVVE_CONFIG_ALGOMASK2_DEFAULT (LVVIDHEADER_CONFIGURATIONS_MASK2_BM_MAX)
+
+/**
+* @def LVVIDHEADER_MESSAGEID_DEFAULT
+* Default of MessageID
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_MESSAGEID_DEFAULT (LVVE_RX_PRESET)
+
+/**
+* @def LVVIDHEADER_SAMPLERATE_DEFAULT
+* Default of SampleRate
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_SAMPLERATE_DEFAULT (LVM_FS_8000)
+
+/**
+* @def LVVIDHEADER_VOLUMEINDEX_DEFAULT
+* Default of VolumeIndex
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_VOLUMEINDEX_DEFAULT (0)
+/**
+* @def LVVIDHEADER_VOLUMEINDEX_MIN
+* MinValue of VolumeIndex
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_VOLUMEINDEX_MIN (0)
+/**
+* @def LVVIDHEADER_VOLUMEINDEX_MAX
+* MaxValue of VolumeIndex
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_VOLUMEINDEX_MAX (255)
+
+/**
+* @def LVVIDHEADER_NUMVOLUMES_DEFAULT
+* Default of NumVolumes
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_NUMVOLUMES_DEFAULT (1)
+/**
+* @def LVVIDHEADER_NUMVOLUMES_MIN
+* MinValue of NumVolumes
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_NUMVOLUMES_MIN (0)
+/**
+* @def LVVIDHEADER_NUMVOLUMES_MAX
+* MaxValue of NumVolumes
+* @see LVVIDHeader_ControlParams_st
+*/
+#define LVVIDHEADER_NUMVOLUMES_MAX (255)
+
+/**
+* @def LVVC_OPERATINGMODE_DEFAULT
+* Default of OperatingMode
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVVC_MODE_DEFAULT
+* Default of mode
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_MODE_DEFAULT (0)
+
+/**
+* @def LVVC_GAIN_LIN_MAX_DEFAULT
+* Default of Gain_Lin_Max
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_GAIN_LIN_MAX_DEFAULT (1286)
+/**
+* @def LVVC_GAIN_LIN_MAX_MIN
+* MinValue of Gain_Lin_Max
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_GAIN_LIN_MAX_MIN (512)
+/**
+* @def LVVC_GAIN_LIN_MAX_MAX
+* MaxValue of Gain_Lin_Max
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_GAIN_LIN_MAX_MAX (32767)
+
+/**
+* @def LVVC_NOISE_SENSITIVITY_DEFAULT
+* Default of Noise_Sensitivity
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_NOISE_SENSITIVITY_DEFAULT (20000)
+/**
+* @def LVVC_NOISE_SENSITIVITY_MIN
+* MinValue of Noise_Sensitivity
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_NOISE_SENSITIVITY_MIN (-6709)
+/**
+* @def LVVC_NOISE_SENSITIVITY_MAX
+* MaxValue of Noise_Sensitivity
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_NOISE_SENSITIVITY_MAX (32767)
+
+/**
+* @def LVVC_AVL_TARGET_LEVEL_LIN_DEFAULT
+* Default of AVL_Target_level_lin
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_TARGET_LEVEL_LIN_DEFAULT (16384)
+/**
+* @def LVVC_AVL_TARGET_LEVEL_LIN_MIN
+* MinValue of AVL_Target_level_lin
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_TARGET_LEVEL_LIN_MIN (0)
+/**
+* @def LVVC_AVL_TARGET_LEVEL_LIN_MAX
+* MaxValue of AVL_Target_level_lin
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_TARGET_LEVEL_LIN_MAX (32767)
+
+/**
+* @def LVVC_AVL_MINGAINLIN_DEFAULT
+* Default of AVL_MinGainLin
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_MINGAINLIN_DEFAULT (256)
+/**
+* @def LVVC_AVL_MINGAINLIN_MIN
+* MinValue of AVL_MinGainLin
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_MINGAINLIN_MIN (0)
+/**
+* @def LVVC_AVL_MINGAINLIN_MAX
+* MaxValue of AVL_MinGainLin
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_MINGAINLIN_MAX (512)
+
+/**
+* @def LVVC_AVL_MAXGAINLIN_DEFAULT
+* Default of AVL_MaxGainLin
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_MAXGAINLIN_DEFAULT (8192)
+/**
+* @def LVVC_AVL_MAXGAINLIN_MIN
+* MinValue of AVL_MaxGainLin
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_MAXGAINLIN_MIN (512)
+/**
+* @def LVVC_AVL_MAXGAINLIN_MAX
+* MaxValue of AVL_MaxGainLin
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_MAXGAINLIN_MAX (32767)
+
+/**
+* @def LVVC_AVL_NOMINALGAIN_DEFAULT
+* Default of AVL_NominalGain
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_NOMINALGAIN_DEFAULT (512)
+/**
+* @def LVVC_AVL_NOMINALGAIN_MIN
+* MinValue of AVL_NominalGain
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_NOMINALGAIN_MIN (0)
+/**
+* @def LVVC_AVL_NOMINALGAIN_MAX
+* MaxValue of AVL_NominalGain
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_NOMINALGAIN_MAX (32767)
+
+/**
+* @def LVVC_AVL_ATTACK_DEFAULT
+* Default of AVL_Attack
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_ATTACK_DEFAULT (12055)
+/**
+* @def LVVC_AVL_ATTACK_MIN
+* MinValue of AVL_Attack
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_ATTACK_MIN (0)
+/**
+* @def LVVC_AVL_ATTACK_MAX
+* MaxValue of AVL_Attack
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_ATTACK_MAX (32767)
+
+/**
+* @def LVVC_AVL_RELEASE_DEFAULT
+* Default of AVL_Release
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_RELEASE_DEFAULT (32604)
+/**
+* @def LVVC_AVL_RELEASE_MIN
+* MinValue of AVL_Release
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_RELEASE_MIN (0)
+/**
+* @def LVVC_AVL_RELEASE_MAX
+* MaxValue of AVL_Release
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_RELEASE_MAX (32767)
+
+/**
+* @def LVVC_AVL_RELEASEMAX_DEFAULT
+* Default of AVL_ReleaseMax
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_RELEASEMAX_DEFAULT (32441)
+/**
+* @def LVVC_AVL_RELEASEMAX_MIN
+* MinValue of AVL_ReleaseMax
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_RELEASEMAX_MIN (0)
+/**
+* @def LVVC_AVL_RELEASEMAX_MAX
+* MaxValue of AVL_ReleaseMax
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_RELEASEMAX_MAX (32767)
+
+/**
+* @def LVVC_AVL_LIMIT_MAXOUTPUTLIN_DEFAULT
+* Default of AVL_Limit_MaxOutputLin
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_LIMIT_MAXOUTPUTLIN_DEFAULT (23170)
+/**
+* @def LVVC_AVL_LIMIT_MAXOUTPUTLIN_MIN
+* MinValue of AVL_Limit_MaxOutputLin
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_LIMIT_MAXOUTPUTLIN_MIN (0)
+/**
+* @def LVVC_AVL_LIMIT_MAXOUTPUTLIN_MAX
+* MaxValue of AVL_Limit_MaxOutputLin
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_AVL_LIMIT_MAXOUTPUTLIN_MAX (32767)
+
+/**
+* @def LVVC_SPDETECT_THRESHOLD_DEFAULT
+* Default of SpDetect_Threshold
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_SPDETECT_THRESHOLD_DEFAULT (1024)
+/**
+* @def LVVC_SPDETECT_THRESHOLD_MIN
+* MinValue of SpDetect_Threshold
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_SPDETECT_THRESHOLD_MIN (0)
+/**
+* @def LVVC_SPDETECT_THRESHOLD_MAX
+* MaxValue of SpDetect_Threshold
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_SPDETECT_THRESHOLD_MAX (32767)
+
+/**
+* @def LVFENS_OPERATINGMODE_DEFAULT
+* Default of OperatingMode
+* @see LVFENS_ControlParams_st
+*/
+#define LVFENS_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVFENS_FENS_LIMIT_NS_DEFAULT
+* Default of FENS_limit_NS
+* @see LVFENS_ControlParams_st
+*/
+#define LVFENS_FENS_LIMIT_NS_DEFAULT (10976)
+/**
+* @def LVFENS_FENS_LIMIT_NS_MIN
+* MinValue of FENS_limit_NS
+* @see LVFENS_ControlParams_st
+*/
+#define LVFENS_FENS_LIMIT_NS_MIN (0)
+/**
+* @def LVFENS_FENS_LIMIT_NS_MAX
+* MaxValue of FENS_limit_NS
+* @see LVFENS_ControlParams_st
+*/
+#define LVFENS_FENS_LIMIT_NS_MAX (32767)
+
+/**
+* @def LVFENS_MODE_DEFAULT
+* Default of Mode
+* @see LVFENS_ControlParams_st
+*/
+#define LVFENS_MODE_DEFAULT (0)
+
+/**
+* @def LVWM_OPERATINGMODE_DEFAULT
+* Default of OperatingMode
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVWM_MODE_DEFAULT
+* Default of mode
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_MODE_DEFAULT (7)
+
+/**
+* @def LVWM_AVL_TARGET_LEVEL_LIN_DEFAULT
+* Default of AVL_Target_level_lin
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_TARGET_LEVEL_LIN_DEFAULT (16384)
+/**
+* @def LVWM_AVL_TARGET_LEVEL_LIN_MIN
+* MinValue of AVL_Target_level_lin
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_TARGET_LEVEL_LIN_MIN (0)
+/**
+* @def LVWM_AVL_TARGET_LEVEL_LIN_MAX
+* MaxValue of AVL_Target_level_lin
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_TARGET_LEVEL_LIN_MAX (32767)
+
+/**
+* @def LVWM_AVL_MINGAINLIN_DEFAULT
+* Default of AVL_MinGainLin
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_MINGAINLIN_DEFAULT (128)
+/**
+* @def LVWM_AVL_MINGAINLIN_MIN
+* MinValue of AVL_MinGainLin
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_MINGAINLIN_MIN (0)
+/**
+* @def LVWM_AVL_MINGAINLIN_MAX
+* MaxValue of AVL_MinGainLin
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_MINGAINLIN_MAX (512)
+
+/**
+* @def LVWM_AVL_MAXGAINLIN_DEFAULT
+* Default of AVL_MaxGainLin
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_MAXGAINLIN_DEFAULT (8189)
+/**
+* @def LVWM_AVL_MAXGAINLIN_MIN
+* MinValue of AVL_MaxGainLin
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_MAXGAINLIN_MIN (512)
+/**
+* @def LVWM_AVL_MAXGAINLIN_MAX
+* MaxValue of AVL_MaxGainLin
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_MAXGAINLIN_MAX (32767)
+
+/**
+* @def LVWM_AVL_ATTACK_DEFAULT
+* Default of AVL_Attack
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_ATTACK_DEFAULT (25520)
+/**
+* @def LVWM_AVL_ATTACK_MIN
+* MinValue of AVL_Attack
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_ATTACK_MIN (0)
+/**
+* @def LVWM_AVL_ATTACK_MAX
+* MaxValue of AVL_Attack
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_ATTACK_MAX (32767)
+
+/**
+* @def LVWM_AVL_RELEASE_DEFAULT
+* Default of AVL_Release
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_RELEASE_DEFAULT (32685)
+/**
+* @def LVWM_AVL_RELEASE_MIN
+* MinValue of AVL_Release
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_RELEASE_MIN (0)
+/**
+* @def LVWM_AVL_RELEASE_MAX
+* MaxValue of AVL_Release
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_RELEASE_MAX (32767)
+
+/**
+* @def LVWM_AVL_LIMIT_MAXOUTPUTLIN_DEFAULT
+* Default of AVL_Limit_MaxOutputLin
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_LIMIT_MAXOUTPUTLIN_DEFAULT (23197)
+/**
+* @def LVWM_AVL_LIMIT_MAXOUTPUTLIN_MIN
+* MinValue of AVL_Limit_MaxOutputLin
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_LIMIT_MAXOUTPUTLIN_MIN (0)
+/**
+* @def LVWM_AVL_LIMIT_MAXOUTPUTLIN_MAX
+* MaxValue of AVL_Limit_MaxOutputLin
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_LIMIT_MAXOUTPUTLIN_MAX (32767)
+
+/**
+* @def LVWM_SPDETECT_THRESHOLD_DEFAULT
+* Default of SpDetect_Threshold
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_SPDETECT_THRESHOLD_DEFAULT (9216)
+/**
+* @def LVWM_SPDETECT_THRESHOLD_MIN
+* MinValue of SpDetect_Threshold
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_SPDETECT_THRESHOLD_MIN (0)
+/**
+* @def LVWM_SPDETECT_THRESHOLD_MAX
+* MaxValue of SpDetect_Threshold
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_SPDETECT_THRESHOLD_MAX (32767)
+
+/**
+* @def LVDRC_OPERATINGMODE_DEFAULT
+* Default of OperatingMode
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVDRC_NUMKNEES_DEFAULT
+* Default of NumKnees
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_NUMKNEES_DEFAULT (5)
+/**
+* @def LVDRC_NUMKNEES_MIN
+* MinValue of NumKnees
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_NUMKNEES_MIN (1)
+/**
+* @def LVDRC_NUMKNEES_MAX
+* MaxValue of NumKnees
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_NUMKNEES_MAX (5)
+
+/**
+* @def LVDRC_COMPRESSORCURVEINPUTLEVELS_DEFAULT
+* Default of CompressorCurveInputLevels
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_COMPRESSORCURVEINPUTLEVELS_DEFAULT {-96,-70,-50, -24, 0}
+/**
+* @def LVDRC_COMPRESSORCURVEINPUTLEVELS_MIN
+* MinValue of CompressorCurveInputLevels
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_COMPRESSORCURVEINPUTLEVELS_MIN (-96)
+/**
+* @def LVDRC_COMPRESSORCURVEINPUTLEVELS_MAX
+* MaxValue of CompressorCurveInputLevels
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_COMPRESSORCURVEINPUTLEVELS_MAX (0)
+/**
+* @def LVDRC_COMPRESSORCURVEINPUTLEVELS_LENGTH
+* Length of CompressorCurveInputLevels
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_COMPRESSORCURVEINPUTLEVELS_LENGTH (5)
+
+/**
+* @def LVDRC_COMPRESSORCURVEOUTPUTLEVELS_DEFAULT
+* Default of CompressorCurveOutputLevels
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_COMPRESSORCURVEOUTPUTLEVELS_DEFAULT {-96,-70,-38,-12,0}
+/**
+* @def LVDRC_COMPRESSORCURVEOUTPUTLEVELS_MIN
+* MinValue of CompressorCurveOutputLevels
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_COMPRESSORCURVEOUTPUTLEVELS_MIN (-96)
+/**
+* @def LVDRC_COMPRESSORCURVEOUTPUTLEVELS_MAX
+* MaxValue of CompressorCurveOutputLevels
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_COMPRESSORCURVEOUTPUTLEVELS_MAX (0)
+/**
+* @def LVDRC_COMPRESSORCURVEOUTPUTLEVELS_LENGTH
+* Length of CompressorCurveOutputLevels
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_COMPRESSORCURVEOUTPUTLEVELS_LENGTH (5)
+
+/**
+* @def LVDRC_ATTACKTIME_DEFAULT
+* Default of AttackTime
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_ATTACKTIME_DEFAULT (50)
+/**
+* @def LVDRC_ATTACKTIME_MIN
+* MinValue of AttackTime
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_ATTACKTIME_MIN (0)
+/**
+* @def LVDRC_ATTACKTIME_MAX
+* MaxValue of AttackTime
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_ATTACKTIME_MAX (32767)
+
+/**
+* @def LVDRC_RELEASETIME_DEFAULT
+* Default of ReleaseTime
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_RELEASETIME_DEFAULT (50)
+/**
+* @def LVDRC_RELEASETIME_MIN
+* MinValue of ReleaseTime
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_RELEASETIME_MIN (0)
+/**
+* @def LVDRC_RELEASETIME_MAX
+* MaxValue of ReleaseTime
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_RELEASETIME_MAX (32767)
+
+/**
+* @def LVDRC_LIMITEROPERATINGMODE_DEFAULT
+* Default of LimiterOperatingMode
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_LIMITEROPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVDRC_LIMITLEVEL_DEFAULT
+* Default of LimitLevel
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_LIMITLEVEL_DEFAULT (0)
+/**
+* @def LVDRC_LIMITLEVEL_MIN
+* MinValue of LimitLevel
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_LIMITLEVEL_MIN (-96)
+/**
+* @def LVDRC_LIMITLEVEL_MAX
+* MaxValue of LimitLevel
+* @see LVDRC_ControlParams_st
+*/
+#define LVDRC_LIMITLEVEL_MAX (0)
+
+/**
+* @def LVNG_OPERATINGMODE_DEFAULT
+* Default of OperatingMode
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVNG_NUMKNEES_DEFAULT
+* Default of NumKnees
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_NUMKNEES_DEFAULT (5)
+/**
+* @def LVNG_NUMKNEES_MIN
+* MinValue of NumKnees
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_NUMKNEES_MIN (1)
+/**
+* @def LVNG_NUMKNEES_MAX
+* MaxValue of NumKnees
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_NUMKNEES_MAX (5)
+
+/**
+* @def LVNG_COMPRESSORCURVEINPUTLEVELS_DEFAULT
+* Default of CompressorCurveInputLevels
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_COMPRESSORCURVEINPUTLEVELS_DEFAULT {-80,-70,-50, -24, 0}
+/**
+* @def LVNG_COMPRESSORCURVEINPUTLEVELS_MIN
+* MinValue of CompressorCurveInputLevels
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_COMPRESSORCURVEINPUTLEVELS_MIN (-96)
+/**
+* @def LVNG_COMPRESSORCURVEINPUTLEVELS_MAX
+* MaxValue of CompressorCurveInputLevels
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_COMPRESSORCURVEINPUTLEVELS_MAX (0)
+/**
+* @def LVNG_COMPRESSORCURVEINPUTLEVELS_LENGTH
+* Length of CompressorCurveInputLevels
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_COMPRESSORCURVEINPUTLEVELS_LENGTH (5)
+
+/**
+* @def LVNG_COMPRESSORCURVEOUTPUTLEVELS_DEFAULT
+* Default of CompressorCurveOutputLevels
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_COMPRESSORCURVEOUTPUTLEVELS_DEFAULT {-96,-80,-50, -24, 0}
+/**
+* @def LVNG_COMPRESSORCURVEOUTPUTLEVELS_MIN
+* MinValue of CompressorCurveOutputLevels
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_COMPRESSORCURVEOUTPUTLEVELS_MIN (-96)
+/**
+* @def LVNG_COMPRESSORCURVEOUTPUTLEVELS_MAX
+* MaxValue of CompressorCurveOutputLevels
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_COMPRESSORCURVEOUTPUTLEVELS_MAX (0)
+/**
+* @def LVNG_COMPRESSORCURVEOUTPUTLEVELS_LENGTH
+* Length of CompressorCurveOutputLevels
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_COMPRESSORCURVEOUTPUTLEVELS_LENGTH (5)
+
+/**
+* @def LVNG_ATTACKTIME_DEFAULT
+* Default of AttackTime
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_ATTACKTIME_DEFAULT (50)
+/**
+* @def LVNG_ATTACKTIME_MIN
+* MinValue of AttackTime
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_ATTACKTIME_MIN (0)
+/**
+* @def LVNG_ATTACKTIME_MAX
+* MaxValue of AttackTime
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_ATTACKTIME_MAX (32767)
+
+/**
+* @def LVNG_RELEASETIME_DEFAULT
+* Default of ReleaseTime
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_RELEASETIME_DEFAULT (50)
+/**
+* @def LVNG_RELEASETIME_MIN
+* MinValue of ReleaseTime
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_RELEASETIME_MIN (0)
+/**
+* @def LVNG_RELEASETIME_MAX
+* MaxValue of ReleaseTime
+* @see LVNG_ControlParams_st
+*/
+#define LVNG_RELEASETIME_MAX (32767)
+
+/**
+* @def LVNLPP_NLPP_LIMIT_DEFAULT
+* Default of NLPP_Limit
+* @see LVNLPP_ControlParams_st
+*/
+#define LVNLPP_NLPP_LIMIT_DEFAULT (0)
+/**
+* @def LVNLPP_NLPP_LIMIT_MIN
+* MinValue of NLPP_Limit
+* @see LVNLPP_ControlParams_st
+*/
+#define LVNLPP_NLPP_LIMIT_MIN (-24)
+/**
+* @def LVNLPP_NLPP_LIMIT_MAX
+* MaxValue of NLPP_Limit
+* @see LVNLPP_ControlParams_st
+*/
+#define LVNLPP_NLPP_LIMIT_MAX (0)
+
+/**
+* @def LVNLPP_NLPP_HPF_CORNERFREQ_DEFAULT
+* Default of NLPP_HPF_CornerFreq
+* @see LVNLPP_ControlParams_st
+*/
+#define LVNLPP_NLPP_HPF_CORNERFREQ_DEFAULT (50)
+/**
+* @def LVNLPP_NLPP_HPF_CORNERFREQ_MIN
+* MinValue of NLPP_HPF_CornerFreq
+* @see LVNLPP_ControlParams_st
+*/
+#define LVNLPP_NLPP_HPF_CORNERFREQ_MIN (50)
+/**
+* @def LVNLPP_NLPP_HPF_CORNERFREQ_MAX
+* MaxValue of NLPP_HPF_CornerFreq
+* @see LVNLPP_ControlParams_st
+*/
+#define LVNLPP_NLPP_HPF_CORNERFREQ_MAX (1000)
+
+/**
+* @def LVEQ_EQ_LENGTH_DEFAULT
+* Default of EQ_Length
+* @see LVEQ_ControlParams_st
+*/
+#define LVEQ_EQ_LENGTH_DEFAULT (32)
+/**
+* @def LVEQ_EQ_LENGTH_MIN
+* MinValue of EQ_Length
+* @see LVEQ_ControlParams_st
+*/
+#define LVEQ_EQ_LENGTH_MIN (8)
+/**
+* @def LVEQ_EQ_LENGTH_MAX
+* MaxValue of EQ_Length
+* @see LVEQ_ControlParams_st
+*/
+#define LVEQ_EQ_LENGTH_MAX (32)
+
+/**
+* @def LVEQ_EQ_COEFS_DEFAULT
+* Default of EQ_Coefs
+* @see LVEQ_ControlParams_st
+*/
+#define LVEQ_EQ_COEFS_DEFAULT {4096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
+/**
+* @def LVEQ_EQ_COEFS_MIN
+* MinValue of EQ_Coefs
+* @see LVEQ_ControlParams_st
+*/
+#define LVEQ_EQ_COEFS_MIN (-32768)
+/**
+* @def LVEQ_EQ_COEFS_MAX
+* MaxValue of EQ_Coefs
+* @see LVEQ_ControlParams_st
+*/
+#define LVEQ_EQ_COEFS_MAX (32767)
+/**
+* @def LVEQ_EQ_COEFS_LENGTH
+* Length of EQ_Coefs
+* @see LVEQ_ControlParams_st
+*/
+#define LVEQ_EQ_COEFS_LENGTH (32)
+
+/**
+* @def LVVOL_VOL_OPERATINGMODE_DEFAULT
+* Default of VOL_OperatingMode
+* @see LVVOL_ControlParams_st
+*/
+#define LVVOL_VOL_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVVOL_VOL_GAIN_DEFAULT
+* Default of VOL_Gain
+* @see LVVOL_ControlParams_st
+*/
+#define LVVOL_VOL_GAIN_DEFAULT (0)
+/**
+* @def LVVOL_VOL_GAIN_MIN
+* MinValue of VOL_Gain
+* @see LVVOL_ControlParams_st
+*/
+#define LVVOL_VOL_GAIN_MIN (-96)
+/**
+* @def LVVOL_VOL_GAIN_MAX
+* MaxValue of VOL_Gain
+* @see LVVOL_ControlParams_st
+*/
+#define LVVOL_VOL_GAIN_MAX (24)
+
+/**
+* @def LVHPF_HPF_OPERATINGMODE_DEFAULT
+* Default of HPF_OperatingMode
+* @see LVHPF_ControlParams_st
+*/
+#define LVHPF_HPF_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVHPF_HPF_CORNERFREQ_DEFAULT
+* Default of HPF_CornerFreq
+* @see LVHPF_ControlParams_st
+*/
+#define LVHPF_HPF_CORNERFREQ_DEFAULT (50)
+/**
+* @def LVHPF_HPF_CORNERFREQ_MIN
+* MinValue of HPF_CornerFreq
+* @see LVHPF_ControlParams_st
+*/
+#define LVHPF_HPF_CORNERFREQ_MIN (50)
+/**
+* @def LVHPF_HPF_CORNERFREQ_MAX
+* MaxValue of HPF_CornerFreq
+* @see LVHPF_ControlParams_st
+*/
+#define LVHPF_HPF_CORNERFREQ_MAX (1500)
+
+/**
+* @def LVMUTE_MUTE_DEFAULT
+* Default of Mute
+* @see LVMUTE_ControlParams_st
+*/
+#define LVMUTE_MUTE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVVE_RX_OPERATINGMODE_DEFAULT
+* Default of OperatingMode
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_OPERATINGMODE_DEFAULT (LVVE_RX_MODE_OFF)
+
+/**
+* @def LVVE_RX_MUTE_DEFAULT
+* Default of Mute
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_MUTE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVVE_RX_VOL_OPERATINGMODE_DEFAULT
+* Default of VOL_OperatingMode
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_VOL_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVVE_RX_VOL_GAIN_DEFAULT
+* Default of VOL_Gain
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_VOL_GAIN_DEFAULT (0)
+/**
+* @def LVVE_RX_VOL_GAIN_MIN
+* MinValue of VOL_Gain
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_VOL_GAIN_MIN (-96)
+/**
+* @def LVVE_RX_VOL_GAIN_MAX
+* MaxValue of VOL_Gain
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_VOL_GAIN_MAX (24)
+
+
+/**
+* @def LVVE_RX_NLPP_OPERATINGMODE_DEFAULT
+* Default of NLPP_OperatingMode
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_NLPP_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+
+
+/**
+* @def LVVE_RX_EQ_OPERATINGMODE_DEFAULT
+* Default of EQ_OperatingMode
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_EQ_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+
+
+/**
+* @def LVVE_RX_HPF_OPERATINGMODE_DEFAULT
+* Default of HPF_OperatingMode
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_HPF_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVVE_RX_HPF_CORNERFREQ_DEFAULT
+* Default of HPF_CornerFreq
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_HPF_CORNERFREQ_DEFAULT (50)
+/**
+* @def LVVE_RX_HPF_CORNERFREQ_MIN
+* MinValue of HPF_CornerFreq
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_HPF_CORNERFREQ_MIN (50)
+/**
+* @def LVVE_RX_HPF_CORNERFREQ_MAX
+* MaxValue of HPF_CornerFreq
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_HPF_CORNERFREQ_MAX (1500)
+
+
+
+/**
+* @def LVNV_OPERATINGMODE_DEFAULT
+* Default of OperatingMode
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVNV_MODE_DEFAULT
+* Default of Mode
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_MODE_DEFAULT (18935)
+
+/**
+* @def LVNV_MODE2_DEFAULT
+* Default of Mode2
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_MODE2_DEFAULT (14)
+
+/**
+* @def LVNV_TUNING_MODE_DEFAULT
+* Default of Tuning_mode
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_TUNING_MODE_DEFAULT (0)
+
+/**
+* @def LVNV_INPUT_GAIN_MIC0_DEFAULT
+* Default of Input_Gain_Mic0
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_INPUT_GAIN_MIC0_DEFAULT (8192)
+/**
+* @def LVNV_INPUT_GAIN_MIC0_MIN
+* MinValue of Input_Gain_Mic0
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_INPUT_GAIN_MIC0_MIN (0)
+/**
+* @def LVNV_INPUT_GAIN_MIC0_MAX
+* MaxValue of Input_Gain_Mic0
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_INPUT_GAIN_MIC0_MAX (32767)
+
+/**
+* @def LVNV_INPUT_GAIN_MIC1_DEFAULT
+* Default of Input_Gain_Mic1
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_INPUT_GAIN_MIC1_DEFAULT (8192)
+/**
+* @def LVNV_INPUT_GAIN_MIC1_MIN
+* MinValue of Input_Gain_Mic1
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_INPUT_GAIN_MIC1_MIN (0)
+/**
+* @def LVNV_INPUT_GAIN_MIC1_MAX
+* MaxValue of Input_Gain_Mic1
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_INPUT_GAIN_MIC1_MAX (32767)
+
+/**
+* @def LVNV_OUTPUT_GAIN_DEFAULT
+* Default of Output_Gain
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_OUTPUT_GAIN_DEFAULT (2048)
+/**
+* @def LVNV_OUTPUT_GAIN_MIN
+* MinValue of Output_Gain
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_OUTPUT_GAIN_MIN (0)
+/**
+* @def LVNV_OUTPUT_GAIN_MAX
+* MaxValue of Output_Gain
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_OUTPUT_GAIN_MAX (32767)
+
+/**
+* @def LVNV_NLMS0_LB_TAPS_DEFAULT
+* Default of NLMS0_LB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_LB_TAPS_DEFAULT (32)
+/**
+* @def LVNV_NLMS0_LB_TAPS_MIN
+* MinValue of NLMS0_LB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_LB_TAPS_MIN (16)
+/**
+* @def LVNV_NLMS0_LB_TAPS_MAX
+* MaxValue of NLMS0_LB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_LB_TAPS_MAX (64)
+
+/**
+* @def LVNV_NLMS0_LB_TWOALPHA_DEFAULT
+* Default of NLMS0_LB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_LB_TWOALPHA_DEFAULT (8192)
+/**
+* @def LVNV_NLMS0_LB_TWOALPHA_MIN
+* MinValue of NLMS0_LB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_LB_TWOALPHA_MIN (0)
+/**
+* @def LVNV_NLMS0_LB_TWOALPHA_MAX
+* MaxValue of NLMS0_LB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_LB_TWOALPHA_MAX (32767)
+
+/**
+* @def LVNV_NLMS0_LB_ERL_DEFAULT
+* Default of NLMS0_LB_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_LB_ERL_DEFAULT (1000)
+/**
+* @def LVNV_NLMS0_LB_ERL_MIN
+* MinValue of NLMS0_LB_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_LB_ERL_MIN (64)
+/**
+* @def LVNV_NLMS0_LB_ERL_MAX
+* MaxValue of NLMS0_LB_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_LB_ERL_MAX (32767)
+
+/**
+* @def LVNV_NLMS0_HB_TAPS_DEFAULT
+* Default of NLMS0_HB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_HB_TAPS_DEFAULT (24)
+/**
+* @def LVNV_NLMS0_HB_TAPS_MIN
+* MinValue of NLMS0_HB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_HB_TAPS_MIN (16)
+/**
+* @def LVNV_NLMS0_HB_TAPS_MAX
+* MaxValue of NLMS0_HB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_HB_TAPS_MAX (64)
+
+/**
+* @def LVNV_NLMS0_HB_TWOALPHA_DEFAULT
+* Default of NLMS0_HB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_HB_TWOALPHA_DEFAULT (8192)
+/**
+* @def LVNV_NLMS0_HB_TWOALPHA_MIN
+* MinValue of NLMS0_HB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_HB_TWOALPHA_MIN (0)
+/**
+* @def LVNV_NLMS0_HB_TWOALPHA_MAX
+* MaxValue of NLMS0_HB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_HB_TWOALPHA_MAX (32767)
+
+/**
+* @def LVNV_NLMS0_HB_ERL_DEFAULT
+* Default of NLMS0_HB_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_HB_ERL_DEFAULT (1000)
+/**
+* @def LVNV_NLMS0_HB_ERL_MIN
+* MinValue of NLMS0_HB_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_HB_ERL_MIN (64)
+/**
+* @def LVNV_NLMS0_HB_ERL_MAX
+* MaxValue of NLMS0_HB_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_HB_ERL_MAX (32767)
+
+/**
+* @def LVNV_NLMS0_PRESET_COEFS_DEFAULT
+* Default of NLMS0_preset_coefs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_PRESET_COEFS_DEFAULT (0)
+/**
+* @def LVNV_NLMS0_PRESET_COEFS_MIN
+* MinValue of NLMS0_preset_coefs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_PRESET_COEFS_MIN (0)
+/**
+* @def LVNV_NLMS0_PRESET_COEFS_MAX
+* MaxValue of NLMS0_preset_coefs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_PRESET_COEFS_MAX (2)
+
+/**
+* @def LVNV_NLMS0_OFFSET_DEFAULT
+* Default of NLMS0_offset
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_OFFSET_DEFAULT (776)
+/**
+* @def LVNV_NLMS0_OFFSET_MIN
+* MinValue of NLMS0_offset
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_OFFSET_MIN (0)
+/**
+* @def LVNV_NLMS0_OFFSET_MAX
+* MaxValue of NLMS0_offset
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS0_OFFSET_MAX (32767)
+
+/**
+* @def LVNV_NLMS1_LB_TAPS_DEFAULT
+* Default of NLMS1_LB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_LB_TAPS_DEFAULT (32)
+/**
+* @def LVNV_NLMS1_LB_TAPS_MIN
+* MinValue of NLMS1_LB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_LB_TAPS_MIN (16)
+/**
+* @def LVNV_NLMS1_LB_TAPS_MAX
+* MaxValue of NLMS1_LB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_LB_TAPS_MAX (32)
+
+/**
+* @def LVNV_NLMS1_LB_TWOALPHA_DEFAULT
+* Default of NLMS1_LB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_LB_TWOALPHA_DEFAULT (8192)
+/**
+* @def LVNV_NLMS1_LB_TWOALPHA_MIN
+* MinValue of NLMS1_LB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_LB_TWOALPHA_MIN (0)
+/**
+* @def LVNV_NLMS1_LB_TWOALPHA_MAX
+* MaxValue of NLMS1_LB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_LB_TWOALPHA_MAX (32767)
+
+/**
+* @def LVNV_NLMS1_LB_ERL_DEFAULT
+* Default of NLMS1_LB_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_LB_ERL_DEFAULT (1000)
+/**
+* @def LVNV_NLMS1_LB_ERL_MIN
+* MinValue of NLMS1_LB_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_LB_ERL_MIN (64)
+/**
+* @def LVNV_NLMS1_LB_ERL_MAX
+* MaxValue of NLMS1_LB_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_LB_ERL_MAX (32767)
+
+/**
+* @def LVNV_NLMS1_HB_TAPS_DEFAULT
+* Default of NLMS1_HB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_HB_TAPS_DEFAULT (24)
+/**
+* @def LVNV_NLMS1_HB_TAPS_MIN
+* MinValue of NLMS1_HB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_HB_TAPS_MIN (16)
+/**
+* @def LVNV_NLMS1_HB_TAPS_MAX
+* MaxValue of NLMS1_HB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_HB_TAPS_MAX (32)
+
+/**
+* @def LVNV_NLMS1_HB_TWOALPHA_DEFAULT
+* Default of NLMS1_HB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_HB_TWOALPHA_DEFAULT (8192)
+/**
+* @def LVNV_NLMS1_HB_TWOALPHA_MIN
+* MinValue of NLMS1_HB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_HB_TWOALPHA_MIN (0)
+/**
+* @def LVNV_NLMS1_HB_TWOALPHA_MAX
+* MaxValue of NLMS1_HB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_HB_TWOALPHA_MAX (32767)
+
+/**
+* @def LVNV_NLMS1_HB_ERL_DEFAULT
+* Default of NLMS1_HB_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_HB_ERL_DEFAULT (1000)
+/**
+* @def LVNV_NLMS1_HB_ERL_MIN
+* MinValue of NLMS1_HB_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_HB_ERL_MIN (64)
+/**
+* @def LVNV_NLMS1_HB_ERL_MAX
+* MaxValue of NLMS1_HB_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_HB_ERL_MAX (32767)
+
+/**
+* @def LVNV_NLMS1_PRESET_COEFS_DEFAULT
+* Default of NLMS1_preset_coefs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_PRESET_COEFS_DEFAULT (0)
+/**
+* @def LVNV_NLMS1_PRESET_COEFS_MIN
+* MinValue of NLMS1_preset_coefs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_PRESET_COEFS_MIN (0)
+/**
+* @def LVNV_NLMS1_PRESET_COEFS_MAX
+* MaxValue of NLMS1_preset_coefs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_PRESET_COEFS_MAX (2)
+
+/**
+* @def LVNV_NLMS1_OFFSET_DEFAULT
+* Default of NLMS1_offset
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_OFFSET_DEFAULT (776)
+/**
+* @def LVNV_NLMS1_OFFSET_MIN
+* MinValue of NLMS1_offset
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_OFFSET_MIN (0)
+/**
+* @def LVNV_NLMS1_OFFSET_MAX
+* MaxValue of NLMS1_offset
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_NLMS1_OFFSET_MAX (32767)
+
+/**
+* @def LVNV_CAL_MICPOWFLOORMIN_DEFAULT
+* Default of CAL_micPowFloorMin
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_CAL_MICPOWFLOORMIN_DEFAULT (150)
+/**
+* @def LVNV_CAL_MICPOWFLOORMIN_MIN
+* MinValue of CAL_micPowFloorMin
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_CAL_MICPOWFLOORMIN_MIN (0)
+/**
+* @def LVNV_CAL_MICPOWFLOORMIN_MAX
+* MaxValue of CAL_micPowFloorMin
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_CAL_MICPOWFLOORMIN_MAX (32767)
+
+/**
+* @def LVNV_WGTHRESHOLD_DEFAULT
+* Default of WgThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_WGTHRESHOLD_DEFAULT (32767)
+/**
+* @def LVNV_WGTHRESHOLD_MIN
+* MinValue of WgThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_WGTHRESHOLD_MIN (0)
+/**
+* @def LVNV_WGTHRESHOLD_MAX
+* MaxValue of WgThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_WGTHRESHOLD_MAX (32767)
+
+/**
+* @def LVNV_MPTHRESHOLD_DEFAULT
+* Default of MpThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_MPTHRESHOLD_DEFAULT (6554)
+/**
+* @def LVNV_MPTHRESHOLD_MIN
+* MinValue of MpThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_MPTHRESHOLD_MIN (0)
+/**
+* @def LVNV_MPTHRESHOLD_MAX
+* MaxValue of MpThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_MPTHRESHOLD_MAX (32767)
+
+/**
+* @def LVNV_FSB_INIT_TABLE0_DEFAULT
+* Default of FSB_init_table0
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_INIT_TABLE0_DEFAULT {32767, 0, 0, 0, 0, 0, 0, 0}
+/**
+* @def LVNV_FSB_INIT_TABLE0_MIN
+* MinValue of FSB_init_table0
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_INIT_TABLE0_MIN (-32768)
+/**
+* @def LVNV_FSB_INIT_TABLE0_MAX
+* MaxValue of FSB_init_table0
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_INIT_TABLE0_MAX (32767)
+/**
+* @def LVNV_FSB_INIT_TABLE0_LENGTH
+* Length of FSB_init_table0
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_INIT_TABLE0_LENGTH (8)
+
+/**
+* @def LVNV_FSB_INIT_TABLE1_DEFAULT
+* Default of FSB_init_table1
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_INIT_TABLE1_DEFAULT {0, 0, 0, 0, 0, 0, 0, 0}
+/**
+* @def LVNV_FSB_INIT_TABLE1_MIN
+* MinValue of FSB_init_table1
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_INIT_TABLE1_MIN (-32768)
+/**
+* @def LVNV_FSB_INIT_TABLE1_MAX
+* MaxValue of FSB_init_table1
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_INIT_TABLE1_MAX (32767)
+/**
+* @def LVNV_FSB_INIT_TABLE1_LENGTH
+* Length of FSB_init_table1
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_INIT_TABLE1_LENGTH (8)
+
+/**
+* @def LVNV_FSB_TAPS_DEFAULT
+* Default of FSB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_TAPS_DEFAULT (16)
+/**
+* @def LVNV_FSB_TAPS_MIN
+* MinValue of FSB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_TAPS_MIN (8)
+/**
+* @def LVNV_FSB_TAPS_MAX
+* MaxValue of FSB_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_TAPS_MAX (16)
+
+/**
+* @def LVNV_FSB_TWOALPHA_DEFAULT
+* Default of FSB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_TWOALPHA_DEFAULT (655)
+/**
+* @def LVNV_FSB_TWOALPHA_MIN
+* MinValue of FSB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_TWOALPHA_MIN (0)
+/**
+* @def LVNV_FSB_TWOALPHA_MAX
+* MaxValue of FSB_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_TWOALPHA_MAX (32767)
+
+/**
+* @def LVNV_FSB_REF_GAIN_DEFAULT
+* Default of FSB_ref_gain
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_REF_GAIN_DEFAULT (1024)
+/**
+* @def LVNV_FSB_REF_GAIN_MIN
+* MinValue of FSB_ref_gain
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_REF_GAIN_MIN (0)
+/**
+* @def LVNV_FSB_REF_GAIN_MAX
+* MaxValue of FSB_ref_gain
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_FSB_REF_GAIN_MAX (32767)
+
+/**
+* @def LVNV_GSC_TAPS_DEFAULT
+* Default of GSC_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_GSC_TAPS_DEFAULT (16)
+/**
+* @def LVNV_GSC_TAPS_MIN
+* MinValue of GSC_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_GSC_TAPS_MIN (8)
+/**
+* @def LVNV_GSC_TAPS_MAX
+* MaxValue of GSC_taps
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_GSC_TAPS_MAX (48)
+
+/**
+* @def LVNV_GSC_TWOALPHA_DEFAULT
+* Default of GSC_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_GSC_TWOALPHA_DEFAULT (1638)
+/**
+* @def LVNV_GSC_TWOALPHA_MIN
+* MinValue of GSC_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_GSC_TWOALPHA_MIN (0)
+/**
+* @def LVNV_GSC_TWOALPHA_MAX
+* MaxValue of GSC_twoalpha
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_GSC_TWOALPHA_MAX (32767)
+
+/**
+* @def LVNV_GSC_ERL_DEFAULT
+* Default of GSC_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_GSC_ERL_DEFAULT (256)
+/**
+* @def LVNV_GSC_ERL_MIN
+* MinValue of GSC_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_GSC_ERL_MIN (64)
+/**
+* @def LVNV_GSC_ERL_MAX
+* MaxValue of GSC_erl
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_GSC_ERL_MAX (32767)
+
+/**
+* @def LVNV_GSC_OFFSET_DEFAULT
+* Default of GSC_offset
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_GSC_OFFSET_DEFAULT (1638)
+/**
+* @def LVNV_GSC_OFFSET_MIN
+* MinValue of GSC_offset
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_GSC_OFFSET_MIN (0)
+/**
+* @def LVNV_GSC_OFFSET_MAX
+* MaxValue of GSC_offset
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_GSC_OFFSET_MAX (32767)
+
+/**
+* @def LVNV_DNNS_ECHOGAMMAHI_DEFAULT
+* Default of DNNS_EchoGammaHi
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ECHOGAMMAHI_DEFAULT (16384)
+/**
+* @def LVNV_DNNS_ECHOGAMMAHI_MIN
+* MinValue of DNNS_EchoGammaHi
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ECHOGAMMAHI_MIN (0)
+/**
+* @def LVNV_DNNS_ECHOGAMMAHI_MAX
+* MaxValue of DNNS_EchoGammaHi
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ECHOGAMMAHI_MAX (32767)
+
+/**
+* @def LVNV_DNNS_ECHOGAMMALO_DEFAULT
+* Default of DNNS_EchoGammaLo
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ECHOGAMMALO_DEFAULT (8192)
+/**
+* @def LVNV_DNNS_ECHOGAMMALO_MIN
+* MinValue of DNNS_EchoGammaLo
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ECHOGAMMALO_MIN (0)
+/**
+* @def LVNV_DNNS_ECHOGAMMALO_MAX
+* MaxValue of DNNS_EchoGammaLo
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ECHOGAMMALO_MAX (32767)
+
+/**
+* @def LVNV_DNNS_ECHOALPHAREV_DEFAULT
+* Default of DNNS_EchoAlphaRev
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ECHOALPHAREV_DEFAULT (12000)
+/**
+* @def LVNV_DNNS_ECHOALPHAREV_MIN
+* MinValue of DNNS_EchoAlphaRev
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ECHOALPHAREV_MIN (0)
+/**
+* @def LVNV_DNNS_ECHOALPHAREV_MAX
+* MaxValue of DNNS_EchoAlphaRev
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ECHOALPHAREV_MAX (32767)
+
+/**
+* @def LVNV_DNNS_ECHOTAILPORTION_DEFAULT
+* Default of DNNS_EchoTailPortion
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ECHOTAILPORTION_DEFAULT (7000)
+/**
+* @def LVNV_DNNS_ECHOTAILPORTION_MIN
+* MinValue of DNNS_EchoTailPortion
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ECHOTAILPORTION_MIN (0)
+/**
+* @def LVNV_DNNS_ECHOTAILPORTION_MAX
+* MaxValue of DNNS_EchoTailPortion
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ECHOTAILPORTION_MAX (32767)
+
+/**
+* @def LVNV_DNNS_NLATTEN_DEFAULT
+* Default of DNNS_NlAtten
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NLATTEN_DEFAULT (256)
+/**
+* @def LVNV_DNNS_NLATTEN_MIN
+* MinValue of DNNS_NlAtten
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NLATTEN_MIN (0)
+/**
+* @def LVNV_DNNS_NLATTEN_MAX
+* MaxValue of DNNS_NlAtten
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NLATTEN_MAX (2048)
+
+/**
+* @def LVNV_DNNS_NOISEGAMMAS_DEFAULT
+* Default of DNNS_NoiseGammaS
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEGAMMAS_DEFAULT (11470)
+/**
+* @def LVNV_DNNS_NOISEGAMMAS_MIN
+* MinValue of DNNS_NoiseGammaS
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEGAMMAS_MIN (0)
+/**
+* @def LVNV_DNNS_NOISEGAMMAS_MAX
+* MaxValue of DNNS_NoiseGammaS
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEGAMMAS_MAX (32767)
+
+/**
+* @def LVNV_DNNS_NOISEGAMMAN_DEFAULT
+* Default of DNNS_NoiseGammaN
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEGAMMAN_DEFAULT (16384)
+/**
+* @def LVNV_DNNS_NOISEGAMMAN_MIN
+* MinValue of DNNS_NoiseGammaN
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEGAMMAN_MIN (0)
+/**
+* @def LVNV_DNNS_NOISEGAMMAN_MAX
+* MaxValue of DNNS_NoiseGammaN
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEGAMMAN_MAX (32767)
+
+/**
+* @def LVNV_DNNS_NOISEGAINMINS_DEFAULT
+* Default of DNNS_NoiseGainMinS
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEGAINMINS_DEFAULT (11140)
+/**
+* @def LVNV_DNNS_NOISEGAINMINS_MIN
+* MinValue of DNNS_NoiseGainMinS
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEGAINMINS_MIN (0)
+/**
+* @def LVNV_DNNS_NOISEGAINMINS_MAX
+* MaxValue of DNNS_NoiseGainMinS
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEGAINMINS_MAX (32767)
+
+/**
+* @def LVNV_DNNS_NOISEGAINMINN_DEFAULT
+* Default of DNNS_NoiseGainMinN
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEGAINMINN_DEFAULT (6554)
+/**
+* @def LVNV_DNNS_NOISEGAINMINN_MIN
+* MinValue of DNNS_NoiseGainMinN
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEGAINMINN_MIN (0)
+/**
+* @def LVNV_DNNS_NOISEGAINMINN_MAX
+* MaxValue of DNNS_NoiseGainMinN
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEGAINMINN_MAX (32767)
+
+/**
+* @def LVNV_DNNS_NOISEBIASCOMP_DEFAULT
+* Default of DNNS_NoiseBiasComp
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEBIASCOMP_DEFAULT (9830)
+/**
+* @def LVNV_DNNS_NOISEBIASCOMP_MIN
+* MinValue of DNNS_NoiseBiasComp
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEBIASCOMP_MIN (0)
+/**
+* @def LVNV_DNNS_NOISEBIASCOMP_MAX
+* MaxValue of DNNS_NoiseBiasComp
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_NOISEBIASCOMP_MAX (32767)
+
+/**
+* @def LVNV_DNNS_GAINETA_DEFAULT
+* Default of DNNS_GainEta
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_GAINETA_DEFAULT (256)
+/**
+* @def LVNV_DNNS_GAINETA_MIN
+* MinValue of DNNS_GainEta
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_GAINETA_MIN (0)
+/**
+* @def LVNV_DNNS_GAINETA_MAX
+* MaxValue of DNNS_GainEta
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_GAINETA_MAX (32767)
+
+/**
+* @def LVNV_DNNS_ACTHRESHOLD_DEFAULT
+* Default of DNNS_AcThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ACTHRESHOLD_DEFAULT (12288)
+/**
+* @def LVNV_DNNS_ACTHRESHOLD_MIN
+* MinValue of DNNS_AcThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ACTHRESHOLD_MIN (0)
+/**
+* @def LVNV_DNNS_ACTHRESHOLD_MAX
+* MaxValue of DNNS_AcThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_ACTHRESHOLD_MAX (32767)
+
+/**
+* @def LVNV_DNNS_WBTHRESHOLD_DEFAULT
+* Default of DNNS_WbThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_WBTHRESHOLD_DEFAULT (9216)
+/**
+* @def LVNV_DNNS_WBTHRESHOLD_MIN
+* MinValue of DNNS_WbThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_WBTHRESHOLD_MIN (0)
+/**
+* @def LVNV_DNNS_WBTHRESHOLD_MAX
+* MaxValue of DNNS_WbThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_WBTHRESHOLD_MAX (32767)
+
+/**
+* @def LVNV_DNNS_LOSTBEAMTHRESHOLD_DEFAULT
+* Default of DNNS_LostBeamThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_LOSTBEAMTHRESHOLD_DEFAULT (320)
+/**
+* @def LVNV_DNNS_LOSTBEAMTHRESHOLD_MIN
+* MinValue of DNNS_LostBeamThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_LOSTBEAMTHRESHOLD_MIN (0)
+/**
+* @def LVNV_DNNS_LOSTBEAMTHRESHOLD_MAX
+* MaxValue of DNNS_LostBeamThreshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DNNS_LOSTBEAMTHRESHOLD_MAX (32767)
+
+/**
+* @def LVNV_PCD_BETA_DEFAULT
+* Default of PCD_beta
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PCD_BETA_DEFAULT (230)
+/**
+* @def LVNV_PCD_BETA_MIN
+* MinValue of PCD_beta
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PCD_BETA_MIN (0)
+/**
+* @def LVNV_PCD_BETA_MAX
+* MaxValue of PCD_beta
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PCD_BETA_MAX (32767)
+
+/**
+* @def LVNV_PCD_THRESHOLD_DEFAULT
+* Default of PCD_Threshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PCD_THRESHOLD_DEFAULT (26213)
+/**
+* @def LVNV_PCD_THRESHOLD_MIN
+* MinValue of PCD_Threshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PCD_THRESHOLD_MIN (0)
+/**
+* @def LVNV_PCD_THRESHOLD_MAX
+* MaxValue of PCD_Threshold
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PCD_THRESHOLD_MAX (32767)
+
+/**
+* @def LVHF_OPERATINGMODE_DEFAULT
+* Default of OperatingMode
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVHF_MODE_DEFAULT
+* Default of Mode
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_MODE_DEFAULT (4607)
+
+/**
+* @def LVHF_TUNINGMODE_DEFAULT
+* Default of TuningMode
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_TUNINGMODE_DEFAULT (0)
+
+/**
+* @def LVHF_INPUTGAIN_DEFAULT
+* Default of InputGain
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_INPUTGAIN_DEFAULT (8192)
+/**
+* @def LVHF_INPUTGAIN_MIN
+* MinValue of InputGain
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_INPUTGAIN_MIN (0)
+/**
+* @def LVHF_INPUTGAIN_MAX
+* MaxValue of InputGain
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_INPUTGAIN_MAX (32767)
+
+/**
+* @def LVHF_OUTPUTGAIN_DEFAULT
+* Default of OutputGain
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_OUTPUTGAIN_DEFAULT (2048)
+/**
+* @def LVHF_OUTPUTGAIN_MIN
+* MinValue of OutputGain
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_OUTPUTGAIN_MIN (0)
+/**
+* @def LVHF_OUTPUTGAIN_MAX
+* MaxValue of OutputGain
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_OUTPUTGAIN_MAX (32767)
+
+/**
+* @def LVHF_NLMS_LIMIT_DEFAULT
+* Default of NLMS_limit
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_LIMIT_DEFAULT (0)
+/**
+* @def LVHF_NLMS_LIMIT_MIN
+* MinValue of NLMS_limit
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_LIMIT_MIN (-24)
+/**
+* @def LVHF_NLMS_LIMIT_MAX
+* MaxValue of NLMS_limit
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_LIMIT_MAX (0)
+
+/**
+* @def LVHF_NLMS_LB_TAPS_DEFAULT
+* Default of NLMS_LB_taps
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_LB_TAPS_DEFAULT (64)
+/**
+* @def LVHF_NLMS_LB_TAPS_MIN
+* MinValue of NLMS_LB_taps
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_LB_TAPS_MIN (16)
+/**
+* @def LVHF_NLMS_LB_TAPS_MAX
+* MaxValue of NLMS_LB_taps
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_LB_TAPS_MAX (200)
+
+/**
+* @def LVHF_NLMS_LB_TWO_ALPHA_DEFAULT
+* Default of NLMS_LB_two_alpha
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_LB_TWO_ALPHA_DEFAULT (8192)
+/**
+* @def LVHF_NLMS_LB_TWO_ALPHA_MIN
+* MinValue of NLMS_LB_two_alpha
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_LB_TWO_ALPHA_MIN (0)
+/**
+* @def LVHF_NLMS_LB_TWO_ALPHA_MAX
+* MaxValue of NLMS_LB_two_alpha
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_LB_TWO_ALPHA_MAX (32767)
+
+/**
+* @def LVHF_NLMS_LB_ERL_DEFAULT
+* Default of NLMS_LB_erl
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_LB_ERL_DEFAULT (128)
+/**
+* @def LVHF_NLMS_LB_ERL_MIN
+* MinValue of NLMS_LB_erl
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_LB_ERL_MIN (64)
+/**
+* @def LVHF_NLMS_LB_ERL_MAX
+* MaxValue of NLMS_LB_erl
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_LB_ERL_MAX (32767)
+
+/**
+* @def LVHF_NLMS_HB_TAPS_DEFAULT
+* Default of NLMS_HB_taps
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_HB_TAPS_DEFAULT (64)
+/**
+* @def LVHF_NLMS_HB_TAPS_MIN
+* MinValue of NLMS_HB_taps
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_HB_TAPS_MIN (16)
+/**
+* @def LVHF_NLMS_HB_TAPS_MAX
+* MaxValue of NLMS_HB_taps
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_HB_TAPS_MAX (136)
+
+/**
+* @def LVHF_NLMS_HB_TWO_ALPHA_DEFAULT
+* Default of NLMS_HB_two_alpha
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_HB_TWO_ALPHA_DEFAULT (8192)
+/**
+* @def LVHF_NLMS_HB_TWO_ALPHA_MIN
+* MinValue of NLMS_HB_two_alpha
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_HB_TWO_ALPHA_MIN (0)
+/**
+* @def LVHF_NLMS_HB_TWO_ALPHA_MAX
+* MaxValue of NLMS_HB_two_alpha
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_HB_TWO_ALPHA_MAX (32767)
+
+/**
+* @def LVHF_NLMS_HB_ERL_DEFAULT
+* Default of NLMS_HB_erl
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_HB_ERL_DEFAULT (128)
+/**
+* @def LVHF_NLMS_HB_ERL_MIN
+* MinValue of NLMS_HB_erl
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_HB_ERL_MIN (64)
+/**
+* @def LVHF_NLMS_HB_ERL_MAX
+* MaxValue of NLMS_HB_erl
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_HB_ERL_MAX (32767)
+
+/**
+* @def LVHF_NLMS_PRESET_COEFS_DEFAULT
+* Default of NLMS_preset_coefs
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_PRESET_COEFS_DEFAULT (1)
+/**
+* @def LVHF_NLMS_PRESET_COEFS_MIN
+* MinValue of NLMS_preset_coefs
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_PRESET_COEFS_MIN (0)
+/**
+* @def LVHF_NLMS_PRESET_COEFS_MAX
+* MaxValue of NLMS_preset_coefs
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_PRESET_COEFS_MAX (2)
+
+/**
+* @def LVHF_NLMS_OFFSET_DEFAULT
+* Default of NLMS_offset
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_OFFSET_DEFAULT (767)
+/**
+* @def LVHF_NLMS_OFFSET_MIN
+* MinValue of NLMS_offset
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_OFFSET_MIN (0)
+/**
+* @def LVHF_NLMS_OFFSET_MAX
+* MaxValue of NLMS_offset
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_NLMS_OFFSET_MAX (32767)
+
+/**
+* @def LVHF_DENS_TAIL_ALPHA_LB_DEFAULT
+* Default of DENS_tail_alpha_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_TAIL_ALPHA_LB_DEFAULT (25395)
+/**
+* @def LVHF_DENS_TAIL_ALPHA_LB_MIN
+* MinValue of DENS_tail_alpha_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_TAIL_ALPHA_LB_MIN (0)
+/**
+* @def LVHF_DENS_TAIL_ALPHA_LB_MAX
+* MaxValue of DENS_tail_alpha_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_TAIL_ALPHA_LB_MAX (32767)
+
+/**
+* @def LVHF_DENS_TAIL_PORTION_LB_DEFAULT
+* Default of DENS_tail_portion_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_TAIL_PORTION_LB_DEFAULT (29491)
+/**
+* @def LVHF_DENS_TAIL_PORTION_LB_MIN
+* MinValue of DENS_tail_portion_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_TAIL_PORTION_LB_MIN (0)
+/**
+* @def LVHF_DENS_TAIL_PORTION_LB_MAX
+* MaxValue of DENS_tail_portion_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_TAIL_PORTION_LB_MAX (32767)
+
+/**
+* @def LVHF_DENS_GAMMA_E_HIGH_LB_DEFAULT
+* Default of DENS_gamma_e_high_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_HIGH_LB_DEFAULT (512)
+/**
+* @def LVHF_DENS_GAMMA_E_HIGH_LB_MIN
+* MinValue of DENS_gamma_e_high_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_HIGH_LB_MIN (0)
+/**
+* @def LVHF_DENS_GAMMA_E_HIGH_LB_MAX
+* MaxValue of DENS_gamma_e_high_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_HIGH_LB_MAX (32767)
+
+/**
+* @def LVHF_DENS_GAMMA_E_DT_LB_DEFAULT
+* Default of DENS_gamma_e_dt_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_DT_LB_DEFAULT (256)
+/**
+* @def LVHF_DENS_GAMMA_E_DT_LB_MIN
+* MinValue of DENS_gamma_e_dt_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_DT_LB_MIN (0)
+/**
+* @def LVHF_DENS_GAMMA_E_DT_LB_MAX
+* MaxValue of DENS_gamma_e_dt_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_DT_LB_MAX (32767)
+
+/**
+* @def LVHF_DENS_GAMMA_E_LOW_LB_DEFAULT
+* Default of DENS_gamma_e_low_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_LOW_LB_DEFAULT (256)
+/**
+* @def LVHF_DENS_GAMMA_E_LOW_LB_MIN
+* MinValue of DENS_gamma_e_low_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_LOW_LB_MIN (0)
+/**
+* @def LVHF_DENS_GAMMA_E_LOW_LB_MAX
+* MaxValue of DENS_gamma_e_low_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_LOW_LB_MAX (32767)
+
+/**
+* @def LVHF_DENS_NL_ATTEN_LB_DEFAULT
+* Default of DENS_NL_atten_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_NL_ATTEN_LB_DEFAULT (0)
+/**
+* @def LVHF_DENS_NL_ATTEN_LB_MIN
+* MinValue of DENS_NL_atten_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_NL_ATTEN_LB_MIN (0)
+/**
+* @def LVHF_DENS_NL_ATTEN_LB_MAX
+* MaxValue of DENS_NL_atten_LB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_NL_ATTEN_LB_MAX (2048)
+
+/**
+* @def LVHF_DENS_TAIL_ALPHA_HB_DEFAULT
+* Default of DENS_tail_alpha_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_TAIL_ALPHA_HB_DEFAULT (25395)
+/**
+* @def LVHF_DENS_TAIL_ALPHA_HB_MIN
+* MinValue of DENS_tail_alpha_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_TAIL_ALPHA_HB_MIN (0)
+/**
+* @def LVHF_DENS_TAIL_ALPHA_HB_MAX
+* MaxValue of DENS_tail_alpha_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_TAIL_ALPHA_HB_MAX (32767)
+
+/**
+* @def LVHF_DENS_TAIL_PORTION_HB_DEFAULT
+* Default of DENS_tail_portion_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_TAIL_PORTION_HB_DEFAULT (29491)
+/**
+* @def LVHF_DENS_TAIL_PORTION_HB_MIN
+* MinValue of DENS_tail_portion_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_TAIL_PORTION_HB_MIN (0)
+/**
+* @def LVHF_DENS_TAIL_PORTION_HB_MAX
+* MaxValue of DENS_tail_portion_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_TAIL_PORTION_HB_MAX (32767)
+
+/**
+* @def LVHF_DENS_GAMMA_E_HIGH_HB_DEFAULT
+* Default of DENS_gamma_e_high_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_HIGH_HB_DEFAULT (512)
+/**
+* @def LVHF_DENS_GAMMA_E_HIGH_HB_MIN
+* MinValue of DENS_gamma_e_high_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_HIGH_HB_MIN (0)
+/**
+* @def LVHF_DENS_GAMMA_E_HIGH_HB_MAX
+* MaxValue of DENS_gamma_e_high_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_HIGH_HB_MAX (32767)
+
+/**
+* @def LVHF_DENS_GAMMA_E_DT_HB_DEFAULT
+* Default of DENS_gamma_e_dt_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_DT_HB_DEFAULT (256)
+/**
+* @def LVHF_DENS_GAMMA_E_DT_HB_MIN
+* MinValue of DENS_gamma_e_dt_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_DT_HB_MIN (0)
+/**
+* @def LVHF_DENS_GAMMA_E_DT_HB_MAX
+* MaxValue of DENS_gamma_e_dt_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_DT_HB_MAX (32767)
+
+/**
+* @def LVHF_DENS_GAMMA_E_LOW_HB_DEFAULT
+* Default of DENS_gamma_e_low_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_LOW_HB_DEFAULT (256)
+/**
+* @def LVHF_DENS_GAMMA_E_LOW_HB_MIN
+* MinValue of DENS_gamma_e_low_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_LOW_HB_MIN (0)
+/**
+* @def LVHF_DENS_GAMMA_E_LOW_HB_MAX
+* MaxValue of DENS_gamma_e_low_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_LOW_HB_MAX (32767)
+
+/**
+* @def LVHF_DENS_NL_ATTEN_HB_DEFAULT
+* Default of DENS_NL_atten_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_NL_ATTEN_HB_DEFAULT (0)
+/**
+* @def LVHF_DENS_NL_ATTEN_HB_MIN
+* MinValue of DENS_NL_atten_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_NL_ATTEN_HB_MIN (0)
+/**
+* @def LVHF_DENS_NL_ATTEN_HB_MAX
+* MaxValue of DENS_NL_atten_HB
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_NL_ATTEN_HB_MAX (2048)
+
+/**
+* @def LVHF_DENS_GAMMA_E_ALPHA_DEFAULT
+* Default of DENS_gamma_e_alpha
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_ALPHA_DEFAULT (24000)
+/**
+* @def LVHF_DENS_GAMMA_E_ALPHA_MIN
+* MinValue of DENS_gamma_e_alpha
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_ALPHA_MIN (0)
+/**
+* @def LVHF_DENS_GAMMA_E_ALPHA_MAX
+* MaxValue of DENS_gamma_e_alpha
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_E_ALPHA_MAX (32767)
+
+/**
+* @def LVHF_DENS_GAMMA_N_DEFAULT
+* Default of DENS_gamma_n
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_N_DEFAULT (280)
+/**
+* @def LVHF_DENS_GAMMA_N_MIN
+* MinValue of DENS_gamma_n
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_N_MIN (0)
+/**
+* @def LVHF_DENS_GAMMA_N_MAX
+* MaxValue of DENS_gamma_n
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_GAMMA_N_MAX (32767)
+
+/**
+* @def LVHF_DENS_SPDET_NEAR_DEFAULT
+* Default of DENS_spdet_near
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_SPDET_NEAR_DEFAULT (512)
+/**
+* @def LVHF_DENS_SPDET_NEAR_MIN
+* MinValue of DENS_spdet_near
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_SPDET_NEAR_MIN (0)
+/**
+* @def LVHF_DENS_SPDET_NEAR_MAX
+* MaxValue of DENS_spdet_near
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_SPDET_NEAR_MAX (32767)
+
+/**
+* @def LVHF_DENS_SPDET_ACT_DEFAULT
+* Default of DENS_spdet_act
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_SPDET_ACT_DEFAULT (768)
+/**
+* @def LVHF_DENS_SPDET_ACT_MIN
+* MinValue of DENS_spdet_act
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_SPDET_ACT_MIN (0)
+/**
+* @def LVHF_DENS_SPDET_ACT_MAX
+* MaxValue of DENS_spdet_act
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_SPDET_ACT_MAX (32767)
+
+/**
+* @def LVHF_DENS_LIMIT_NS_DEFAULT
+* Default of DENS_limit_ns
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_LIMIT_NS_DEFAULT (10361)
+/**
+* @def LVHF_DENS_LIMIT_NS_MIN
+* MinValue of DENS_limit_ns
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_LIMIT_NS_MIN (0)
+/**
+* @def LVHF_DENS_LIMIT_NS_MAX
+* MaxValue of DENS_limit_ns
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_LIMIT_NS_MAX (32767)
+
+/**
+* @def LVHF_DENS_CNI_GAIN_DEFAULT
+* Default of DENS_CNI_Gain
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_CNI_GAIN_DEFAULT (16384)
+/**
+* @def LVHF_DENS_CNI_GAIN_MIN
+* MinValue of DENS_CNI_Gain
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_CNI_GAIN_MIN (0)
+/**
+* @def LVHF_DENS_CNI_GAIN_MAX
+* MaxValue of DENS_CNI_Gain
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_CNI_GAIN_MAX (32767)
+
+/**
+* @def LVHF_DENS_NFE_BLOCKSIZE_DEFAULT
+* Default of DENS_NFE_blocksize
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_NFE_BLOCKSIZE_DEFAULT (150)
+/**
+* @def LVHF_DENS_NFE_BLOCKSIZE_MIN
+* MinValue of DENS_NFE_blocksize
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_NFE_BLOCKSIZE_MIN (0)
+/**
+* @def LVHF_DENS_NFE_BLOCKSIZE_MAX
+* MaxValue of DENS_NFE_blocksize
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_DENS_NFE_BLOCKSIZE_MAX (32767)
+
+/**
+* @def LVHF_SPDET_FAR_DEFAULT
+* Default of SPDET_far
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_SPDET_FAR_DEFAULT (16384)
+/**
+* @def LVHF_SPDET_FAR_MIN
+* MinValue of SPDET_far
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_SPDET_FAR_MIN (0)
+/**
+* @def LVHF_SPDET_FAR_MAX
+* MaxValue of SPDET_far
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_SPDET_FAR_MAX (32767)
+
+/**
+* @def LVHF_SPDET_MIC_DEFAULT
+* Default of SPDET_mic
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_SPDET_MIC_DEFAULT (16384)
+/**
+* @def LVHF_SPDET_MIC_MIN
+* MinValue of SPDET_mic
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_SPDET_MIC_MIN (0)
+/**
+* @def LVHF_SPDET_MIC_MAX
+* MaxValue of SPDET_mic
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_SPDET_MIC_MAX (32767)
+
+/**
+* @def LVHF_SPDET_X_CLIP_DEFAULT
+* Default of SPDET_x_clip
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_SPDET_X_CLIP_DEFAULT (0)
+/**
+* @def LVHF_SPDET_X_CLIP_MIN
+* MinValue of SPDET_x_clip
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_SPDET_X_CLIP_MIN (0)
+/**
+* @def LVHF_SPDET_X_CLIP_MAX
+* MaxValue of SPDET_x_clip
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_SPDET_X_CLIP_MAX (32767)
+
+/**
+* @def LVHF_PCD_THRESHOLD_DEFAULT
+* Default of PCD_threshold
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_THRESHOLD_DEFAULT (20000)
+/**
+* @def LVHF_PCD_THRESHOLD_MIN
+* MinValue of PCD_threshold
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_THRESHOLD_MIN (0)
+/**
+* @def LVHF_PCD_THRESHOLD_MAX
+* MaxValue of PCD_threshold
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_THRESHOLD_MAX (32767)
+
+/**
+* @def LVHF_PCD_TAPS_DEFAULT
+* Default of PCD_taps
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_TAPS_DEFAULT (16)
+/**
+* @def LVHF_PCD_TAPS_MIN
+* MinValue of PCD_taps
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_TAPS_MIN (16)
+/**
+* @def LVHF_PCD_TAPS_MAX
+* MaxValue of PCD_taps
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_TAPS_MAX (64)
+
+/**
+* @def LVHF_PCD_ERL_DEFAULT
+* Default of PCD_erl
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_ERL_DEFAULT (64)
+/**
+* @def LVHF_PCD_ERL_MIN
+* MinValue of PCD_erl
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_ERL_MIN (64)
+/**
+* @def LVHF_PCD_ERL_MAX
+* MaxValue of PCD_erl
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_ERL_MAX (32767)
+
+/**
+* @def LVHF_PCD_MINIMUM_ERL_DEFAULT
+* Default of PCD_minimum_erl
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_MINIMUM_ERL_DEFAULT (64)
+/**
+* @def LVHF_PCD_MINIMUM_ERL_MIN
+* MinValue of PCD_minimum_erl
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_MINIMUM_ERL_MIN (64)
+/**
+* @def LVHF_PCD_MINIMUM_ERL_MAX
+* MaxValue of PCD_minimum_erl
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_MINIMUM_ERL_MAX (32767)
+
+/**
+* @def LVHF_PCD_ERL_STEP_DEFAULT
+* Default of PCD_erl_step
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_ERL_STEP_DEFAULT (16800)
+/**
+* @def LVHF_PCD_ERL_STEP_MIN
+* MinValue of PCD_erl_step
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_ERL_STEP_MIN (16384)
+/**
+* @def LVHF_PCD_ERL_STEP_MAX
+* MaxValue of PCD_erl_step
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_ERL_STEP_MAX (32767)
+
+/**
+* @def LVHF_PCD_GAMMA_E_RESCUE_DEFAULT
+* Default of PCD_gamma_e_rescue
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_GAMMA_E_RESCUE_DEFAULT (5000)
+/**
+* @def LVHF_PCD_GAMMA_E_RESCUE_MIN
+* MinValue of PCD_gamma_e_rescue
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_GAMMA_E_RESCUE_MIN (0)
+/**
+* @def LVHF_PCD_GAMMA_E_RESCUE_MAX
+* MaxValue of PCD_gamma_e_rescue
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PCD_GAMMA_E_RESCUE_MAX (32767)
+
+/**
+* @def LVBD_BD_OPERATINGMODE_DEFAULT
+* Default of BD_OperatingMode
+* @see LVBD_ControlParams_st
+*/
+#define LVBD_BD_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVBD_BULKDELAY_DEFAULT
+* Default of BulkDelay
+* @see LVBD_ControlParams_st
+*/
+#define LVBD_BULKDELAY_DEFAULT (0)
+/**
+* @def LVBD_BULKDELAY_MIN
+* MinValue of BulkDelay
+* @see LVBD_ControlParams_st
+*/
+#define LVBD_BULKDELAY_MIN (0)
+/**
+* @def LVBD_BULKDELAY_MAX
+* MaxValue of BulkDelay
+* @see LVBD_ControlParams_st
+*/
+#define LVBD_BULKDELAY_MAX (6400)
+
+/**
+* @def LVBD_BD_GAIN_DEFAULT
+* Default of BD_Gain
+* @see LVBD_ControlParams_st
+*/
+#define LVBD_BD_GAIN_DEFAULT (8192)
+/**
+* @def LVBD_BD_GAIN_MIN
+* MinValue of BD_Gain
+* @see LVBD_ControlParams_st
+*/
+#define LVBD_BD_GAIN_MIN (0)
+/**
+* @def LVBD_BD_GAIN_MAX
+* MaxValue of BD_Gain
+* @see LVBD_ControlParams_st
+*/
+#define LVBD_BD_GAIN_MAX (32767)
+
+/**
+* @def LVVE_TX_OPERATINGMODE_DEFAULT
+* Default of OperatingMode
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_OPERATINGMODE_DEFAULT (LVVE_TX_MODE_OFF)
+
+/**
+* @def LVVE_TX_MUTE_DEFAULT
+* Default of Mute
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_MUTE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVVE_TX_BD_OPERATINGMODE_DEFAULT
+* Default of BD_OperatingMode
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_BD_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVVE_TX_BULKDELAY_DEFAULT
+* Default of BulkDelay
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_BULKDELAY_DEFAULT (0)
+/**
+* @def LVVE_TX_BULKDELAY_MIN
+* MinValue of BulkDelay
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_BULKDELAY_MIN (0)
+/**
+* @def LVVE_TX_BULKDELAY_MAX
+* MaxValue of BulkDelay
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_BULKDELAY_MAX (6400)
+
+/**
+* @def LVVE_TX_BD_GAIN_DEFAULT
+* Default of BD_Gain
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_BD_GAIN_DEFAULT (8192)
+/**
+* @def LVVE_TX_BD_GAIN_MIN
+* MinValue of BD_Gain
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_BD_GAIN_MIN (0)
+/**
+* @def LVVE_TX_BD_GAIN_MAX
+* MaxValue of BD_Gain
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_BD_GAIN_MAX (32767)
+
+/**
+* @def LVVE_TX_VOL_OPERATINGMODE_DEFAULT
+* Default of VOL_OperatingMode
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_VOL_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVVE_TX_VOL_GAIN_DEFAULT
+* Default of VOL_Gain
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_VOL_GAIN_DEFAULT (0)
+/**
+* @def LVVE_TX_VOL_GAIN_MIN
+* MinValue of VOL_Gain
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_VOL_GAIN_MIN (-96)
+/**
+* @def LVVE_TX_VOL_GAIN_MAX
+* MaxValue of VOL_Gain
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_VOL_GAIN_MAX (24)
+
+/**
+* @def LVVE_TX_HPF_OPERATINGMODE_DEFAULT
+* Default of HPF_OperatingMode
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_HPF_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+/**
+* @def LVVE_TX_MIC_HPF_CORNERFREQ_DEFAULT
+* Default of MIC_HPF_CornerFreq
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_MIC_HPF_CORNERFREQ_DEFAULT (50)
+/**
+* @def LVVE_TX_MIC_HPF_CORNERFREQ_MIN
+* MinValue of MIC_HPF_CornerFreq
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_MIC_HPF_CORNERFREQ_MIN (50)
+/**
+* @def LVVE_TX_MIC_HPF_CORNERFREQ_MAX
+* MaxValue of MIC_HPF_CornerFreq
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_MIC_HPF_CORNERFREQ_MAX (1500)
+
+
+
+/**
+* @def LVVE_TX_EQ_OPERATINGMODE_DEFAULT
+* Default of EQ_OperatingMode
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_EQ_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
+
+
+
+/**
+* @def LVVC_GAIN_DEFAULT
+* Default of Gain
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_GAIN_DEFAULT (0)
+/**
+* @def LVVC_GAIN_MIN
+* MinValue of Gain
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_GAIN_MIN (0)
+/**
+* @def LVVC_GAIN_MAX
+* MaxValue of Gain
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_GAIN_MAX (32767)
+
+/**
+* @def LVVC_SPDETECTED_DEFAULT
+* Default of SpDetected
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_SPDETECTED_DEFAULT (0)
+/**
+* @def LVVC_SPDETECTED_MIN
+* MinValue of SpDetected
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_SPDETECTED_MIN (0)
+/**
+* @def LVVC_SPDETECTED_MAX
+* MaxValue of SpDetected
+* @see LVVC_ControlParams_st
+*/
+#define LVVC_SPDETECTED_MAX (1)
+
+/**
+* @def LVWM_AVL_GAIN_DEFAULT
+* Default of AVL_Gain
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_GAIN_DEFAULT (0)
+/**
+* @def LVWM_AVL_GAIN_MIN
+* MinValue of AVL_Gain
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_GAIN_MIN (0)
+/**
+* @def LVWM_AVL_GAIN_MAX
+* MaxValue of AVL_Gain
+* @see LVWM_ControlParams_st
+*/
+#define LVWM_AVL_GAIN_MAX (32767)
+
+
+
+/**
+* @def LVVE_RX_DUMMY_DEFAULT
+* Default of dummy
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_DUMMY_DEFAULT (0)
+/**
+* @def LVVE_RX_DUMMY_MIN
+* MinValue of dummy
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_DUMMY_MIN (-128)
+/**
+* @def LVVE_RX_DUMMY_MAX
+* MaxValue of dummy
+* @see LVVE_Rx_ControlParams_st
+*/
+#define LVVE_RX_DUMMY_MAX (127)
+
+/**
+* @def LVNV_STATUS_DEFAULT
+* Default of status
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_STATUS_DEFAULT (0)
+
+/**
+* @def LVNV_DUMMY_DEFAULT
+* Default of Dummy
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DUMMY_DEFAULT (0)
+/**
+* @def LVNV_DUMMY_MIN
+* MinValue of Dummy
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DUMMY_MIN (0)
+/**
+* @def LVNV_DUMMY_MAX
+* MaxValue of Dummy
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_DUMMY_MAX (0)
+
+/**
+* @def LVNV_PNLMS0_LB_COEFFS_DEFAULT
+* Default of pNLMS0_LB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PNLMS0_LB_COEFFS_DEFAULT (0)
+/**
+* @def LVNV_PNLMS0_LB_COEFFS_MIN
+* MinValue of pNLMS0_LB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PNLMS0_LB_COEFFS_MIN (-2147483648)
+/**
+* @def LVNV_PNLMS0_LB_COEFFS_MAX
+* MaxValue of pNLMS0_LB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PNLMS0_LB_COEFFS_MAX (2147483647)
+
+/**
+* @def LVNV_PNLMS0_HB_COEFFS_DEFAULT
+* Default of pNLMS0_HB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PNLMS0_HB_COEFFS_DEFAULT (0)
+/**
+* @def LVNV_PNLMS0_HB_COEFFS_MIN
+* MinValue of pNLMS0_HB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PNLMS0_HB_COEFFS_MIN (-2147483648)
+/**
+* @def LVNV_PNLMS0_HB_COEFFS_MAX
+* MaxValue of pNLMS0_HB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PNLMS0_HB_COEFFS_MAX (2147483647)
+
+/**
+* @def LVNV_PNLMS1_LB_COEFFS_DEFAULT
+* Default of pNLMS1_LB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PNLMS1_LB_COEFFS_DEFAULT (0)
+/**
+* @def LVNV_PNLMS1_LB_COEFFS_MIN
+* MinValue of pNLMS1_LB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PNLMS1_LB_COEFFS_MIN (-2147483648)
+/**
+* @def LVNV_PNLMS1_LB_COEFFS_MAX
+* MaxValue of pNLMS1_LB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PNLMS1_LB_COEFFS_MAX (2147483647)
+
+/**
+* @def LVNV_PNLMS1_HB_COEFFS_DEFAULT
+* Default of pNLMS1_HB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PNLMS1_HB_COEFFS_DEFAULT (0)
+/**
+* @def LVNV_PNLMS1_HB_COEFFS_MIN
+* MinValue of pNLMS1_HB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PNLMS1_HB_COEFFS_MIN (-2147483648)
+/**
+* @def LVNV_PNLMS1_HB_COEFFS_MAX
+* MaxValue of pNLMS1_HB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PNLMS1_HB_COEFFS_MAX (2147483647)
+
+/**
+* @def LVNV_PFSB_COEFFS_DEFAULT
+* Default of pFSB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PFSB_COEFFS_DEFAULT (0)
+/**
+* @def LVNV_PFSB_COEFFS_MIN
+* MinValue of pFSB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PFSB_COEFFS_MIN (-2147483648)
+/**
+* @def LVNV_PFSB_COEFFS_MAX
+* MaxValue of pFSB_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PFSB_COEFFS_MAX (2147483647)
+
+/**
+* @def LVNV_PGSC_COEFFS_DEFAULT
+* Default of pGSC_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PGSC_COEFFS_DEFAULT (0)
+/**
+* @def LVNV_PGSC_COEFFS_MIN
+* MinValue of pGSC_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PGSC_COEFFS_MIN (-2147483648)
+/**
+* @def LVNV_PGSC_COEFFS_MAX
+* MaxValue of pGSC_Coeffs
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PGSC_COEFFS_MAX (2147483647)
+
+/**
+* @def LVNV_PMICPOWSP_DEFAULT
+* Default of pMicPowSp
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PMICPOWSP_DEFAULT (0)
+/**
+* @def LVNV_PMICPOWSP_MIN
+* MinValue of pMicPowSp
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PMICPOWSP_MIN (0)
+/**
+* @def LVNV_PMICPOWSP_MAX
+* MaxValue of pMicPowSp
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PMICPOWSP_MAX (1)
+
+/**
+* @def LVNV_PCALFACTOR_DEFAULT
+* Default of pCalFactor
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PCALFACTOR_DEFAULT (0)
+/**
+* @def LVNV_PCALFACTOR_MIN
+* MinValue of pCalFactor
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PCALFACTOR_MIN (0)
+/**
+* @def LVNV_PCALFACTOR_MAX
+* MaxValue of pCalFactor
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PCALFACTOR_MAX (32767)
+
+/**
+* @def LVNV_PCALREADY_DEFAULT
+* Default of pCalReady
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PCALREADY_DEFAULT (0)
+/**
+* @def LVNV_PCALREADY_MIN
+* MinValue of pCalReady
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PCALREADY_MIN (0)
+/**
+* @def LVNV_PCALREADY_MAX
+* MaxValue of pCalReady
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PCALREADY_MAX (2)
+
+/**
+* @def LVNV_PBROADSIDE_INTERCC_DEFAULT
+* Default of pBroadside_interCC
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PBROADSIDE_INTERCC_DEFAULT (0)
+/**
+* @def LVNV_PBROADSIDE_INTERCC_MIN
+* MinValue of pBroadside_interCC
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PBROADSIDE_INTERCC_MIN (0)
+/**
+* @def LVNV_PBROADSIDE_INTERCC_MAX
+* MaxValue of pBroadside_interCC
+* @see LVNV_ControlParams_st
+*/
+#define LVNV_PBROADSIDE_INTERCC_MAX (32767)
+
+/**
+* @def LVHF_GAMMAE_DEFAULT
+* Default of gammae
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_GAMMAE_DEFAULT (0)
+/**
+* @def LVHF_GAMMAE_MIN
+* MinValue of gammae
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_GAMMAE_MIN (0)
+/**
+* @def LVHF_GAMMAE_MAX
+* MaxValue of gammae
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_GAMMAE_MAX (32767)
+
+/**
+* @def LVHF_STATUS_DEFAULT
+* Default of status
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_STATUS_DEFAULT (0)
+
+/**
+* @def LVHF_PNLMS_LB_COEFS_DEFAULT
+* Default of pNLMS_LB_Coefs
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PNLMS_LB_COEFS_DEFAULT (0)
+/**
+* @def LVHF_PNLMS_LB_COEFS_MIN
+* MinValue of pNLMS_LB_Coefs
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PNLMS_LB_COEFS_MIN (-2147483648)
+/**
+* @def LVHF_PNLMS_LB_COEFS_MAX
+* MaxValue of pNLMS_LB_Coefs
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PNLMS_LB_COEFS_MAX (2147483647)
+
+/**
+* @def LVHF_PNLMS_HB_COEFS_DEFAULT
+* Default of pNLMS_HB_Coefs
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PNLMS_HB_COEFS_DEFAULT (0)
+/**
+* @def LVHF_PNLMS_HB_COEFS_MIN
+* MinValue of pNLMS_HB_Coefs
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PNLMS_HB_COEFS_MIN (-2147483648)
+/**
+* @def LVHF_PNLMS_HB_COEFS_MAX
+* MaxValue of pNLMS_HB_Coefs
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PNLMS_HB_COEFS_MAX (2147483647)
+
+/**
+* @def LVHF_PPCD_COEFS_DEFAULT
+* Default of pPCD_Coefs
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PPCD_COEFS_DEFAULT (0)
+/**
+* @def LVHF_PPCD_COEFS_MIN
+* MinValue of pPCD_Coefs
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PPCD_COEFS_MIN (-2147483648)
+/**
+* @def LVHF_PPCD_COEFS_MAX
+* MaxValue of pPCD_Coefs
+* @see LVHF_ControlParams_st
+*/
+#define LVHF_PPCD_COEFS_MAX (2147483647)
+
+
+
+/**
+* @def LVVE_TX_DUMMY_DEFAULT
+* Default of dummy
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_DUMMY_DEFAULT (0)
+/**
+* @def LVVE_TX_DUMMY_MIN
+* MinValue of dummy
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_DUMMY_MIN (-128)
+/**
+* @def LVVE_TX_DUMMY_MAX
+* MaxValue of dummy
+* @see LVVE_Tx_ControlParams_st
+*/
+#define LVVE_TX_DUMMY_MAX (127)
+
+/**
+* Enum type for LVVIDHeader_MessageID_en
+*/
+typedef enum
+{
+ LVVE_RX_PRESET = 0, ///< VID header Message ID for LVVE_Rx presets
+ LVVE_TX_PRESET = 1, ///< VID header Message ID for LVVE_Tx Presets
+ LVVIDHEADER_MESSAGEID_EN_DUMMY = LVM_MAXENUM
+} LVVIDHeader_MessageID_en;
+
+/**
+* Enum type for LVVIDHeader_ReturnStatus_en
+*/
+typedef enum
+{
+ LVVIDHEADER_NULLADDRESS = 0, ///< LVVIDHeader module returns NULL address error
+ LVVIDHEADER_SUCCESS = 1, ///< LVVIDHeader module returns with success
+ LVVIDHEADER_RETURNSTATUS_EN_DUMMY = LVM_MAXENUM
+} LVVIDHeader_ReturnStatus_en;
+
+/**
+* Enum type for LVVE_Rx_Mode_en
+*/
+typedef enum
+{
+ LVVE_RX_MODE_OFF = 0, ///< Rx voice engine is turned off
+ LVVE_RX_MODE_ON = 1, ///< Rx voice in will run
+ LVVE_RX_MODE_BYPASS = 2, ///< Rx voice engine will run but output will be ignored
+ LVVE_RX_MODE_EN_DUMMY = LVM_MAXENUM
+} LVVE_Rx_Mode_en;
+
+/**
+* Enum type for LVVE_Tx_Mode_en
+*/
+typedef enum
+{
+ LVVE_TX_MODE_OFF = 0, ///< Tx in LVVE engine is disabled
+ LVVE_TX_MODE_ON = 1, ///< TX in LVVE is enabled
+ LVVE_TX_MODE_BYPASS_MIC0 = 2, ///< TX in LVVE engine will run but output will be Mic0 signal
+ LVVE_TX_MODE_BYPASS_MIC1 = 3, ///< Tx in LVVE engine will run but output will be Mic1 signal
+ LVVE_TX_MODE_BYPASS_REF = 4, ///< Tx in LVVE engine will run but output will be Ref signal
+ LVVE_TX_MODE_EN_DUMMY = LVM_MAXENUM
+} LVVE_Tx_Mode_en;
+
+/****************************************************************************************/
+/* */
+/* Structures */
+/* */
+/****************************************************************************************/
+/**
+* The status parameters are used to retrieve the status of the module.
+* @see LVVC_GetStatusParameters
+*/
+typedef struct
+{
+ /**
+ The internal gain setting used by VoiceClarity.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>6.9</td>
+ <td>@ref LVVC_GAIN_MIN (0)</td>
+ <td>@ref LVVC_GAIN_DEFAULT (0)</td>
+ <td>@ref LVVC_GAIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 Gain; ///< Gain
+
+ /**
+ 0 (no detection) or 1 (detection).
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVVC_SPDETECTED_MIN (0)</td>
+ <td>@ref LVVC_SPDETECTED_DEFAULT (0)</td>
+ <td>@ref LVVC_SPDETECTED_MAX (1)</td>
+ </tr>
+ </table> */
+ LVM_INT16 SpDetected; ///< The speech detector flag.
+
+} LVVC_StatusParams_st;
+
+/**
+* The status parameters are used to retrieve the status of the module.
+* @see LVWM_GetStatusParameters
+*/
+typedef struct
+{
+ /**
+ The internal gain setting used by WhisperMode in dB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>6.9</td>
+ <td>@ref LVWM_AVL_GAIN_MIN (0)</td>
+ <td>@ref LVWM_AVL_GAIN_DEFAULT (0)</td>
+ <td>@ref LVWM_AVL_GAIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_Gain; ///< gain (dB)
+
+} LVWM_StatusParams_st;
+
+/**
+* The status parameters are used to retrieve the status of the module.
+* @see LVVE_Rx_GetStatusParameters
+*/
+typedef struct
+{
+ /**
+ Voice Clarity Status Parameter Structure.
+ */
+ LVVC_StatusParams_st VC_StatusParams; ///< Voice Clarity Status Parameter Structure
+
+ /**
+ Whisper Mode Status Parameter Structure.
+ */
+ LVWM_StatusParams_st WM_StatusParams; ///< Whisper Mode Status Parameter Structure
+
+ /**
+ Dummy Param.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>1.7</td>
+ <td>@ref LVVE_RX_DUMMY_MIN (-128)</td>
+ <td>@ref LVVE_RX_DUMMY_DEFAULT (0)</td>
+ <td>@ref LVVE_RX_DUMMY_MAX (127)</td>
+ </tr>
+ </table> */
+ LVM_INT8 dummy; ///< Dummy Param
+
+} LVVE_Rx_StatusParams_st;
+
+/**
+* The status parameters are used to retrieve the status of the module.
+* @see LVNV_GetStatusParameters
+*/
+typedef struct
+{
+ /**
+ Bit mask describing the current state of LVNV, used for debugging.
+ */
+ LVNV_StatusWord_bm status; ///< current state
+
+ /**
+ To keep correct memory alignment. To be removed when LVNV_StatusWord_bm has
+ become int32 as it should.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_DUMMY_MIN (0)</td>
+ <td>@ref LVNV_DUMMY_DEFAULT (0)</td>
+ <td>@ref LVNV_DUMMY_MAX (0)</td>
+ </tr>
+ </table> */
+ LVM_INT16 Dummy; ///< Dummy for memory alignment.
+
+ /**
+ Pointer to the coefficients of the primary low-band (0-4kHz) NLMS filter
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>1.30</td>
+ <td>@ref LVNV_PNLMS0_LB_COEFFS_MIN (-2147483648)</td>
+ <td>@ref LVNV_PNLMS0_LB_COEFFS_DEFAULT (0)</td>
+ <td>@ref LVNV_PNLMS0_LB_COEFFS_MAX (2147483647)</td>
+ </tr>
+ </table> */
+ LVM_INT32* pNLMS0_LB_Coeffs; ///< NLMS0 lowband filter coefficients
+
+ /**
+ Pointer to the coefficients of the primary high-band (4-8kHz) NLMS filter
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>1.30</td>
+ <td>@ref LVNV_PNLMS0_HB_COEFFS_MIN (-2147483648)</td>
+ <td>@ref LVNV_PNLMS0_HB_COEFFS_DEFAULT (0)</td>
+ <td>@ref LVNV_PNLMS0_HB_COEFFS_MAX (2147483647)</td>
+ </tr>
+ </table> */
+ LVM_INT32* pNLMS0_HB_Coeffs; ///< NLMS0 highband filter coefficients
+
+ /**
+ Pointer to the coefficients of the secondary low-band (0-4kHz) NLMS filter
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>1.30</td>
+ <td>@ref LVNV_PNLMS1_LB_COEFFS_MIN (-2147483648)</td>
+ <td>@ref LVNV_PNLMS1_LB_COEFFS_DEFAULT (0)</td>
+ <td>@ref LVNV_PNLMS1_LB_COEFFS_MAX (2147483647)</td>
+ </tr>
+ </table> */
+ LVM_INT32* pNLMS1_LB_Coeffs; ///< NLMS1 lowband filter coefficients
+
+ /**
+ Pointer to the coefficients of the secondary high-band (4-8kHz) NLMS filter
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>1.30</td>
+ <td>@ref LVNV_PNLMS1_HB_COEFFS_MIN (-2147483648)</td>
+ <td>@ref LVNV_PNLMS1_HB_COEFFS_DEFAULT (0)</td>
+ <td>@ref LVNV_PNLMS1_HB_COEFFS_MAX (2147483647)</td>
+ </tr>
+ </table> */
+ LVM_INT32* pNLMS1_HB_Coeffs; ///< NLMS1 highband filter coefficients
+
+ /**
+ Pointer to the coefficients of the FSB0 and FSB1 filters
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.15</td>
+ <td>@ref LVNV_PFSB_COEFFS_MIN (-2147483648)</td>
+ <td>@ref LVNV_PFSB_COEFFS_DEFAULT (0)</td>
+ <td>@ref LVNV_PFSB_COEFFS_MAX (2147483647)</td>
+ </tr>
+ </table> */
+ LVM_INT32* pFSB_Coeffs; ///< FSB0 and FSB1 coefficients
+
+ /**
+ Pointer to the coefficients of the GSC filter
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>1.30</td>
+ <td>@ref LVNV_PGSC_COEFFS_MIN (-2147483648)</td>
+ <td>@ref LVNV_PGSC_COEFFS_DEFAULT (0)</td>
+ <td>@ref LVNV_PGSC_COEFFS_MAX (2147483647)</td>
+ </tr>
+ </table> */
+ LVM_INT32* pGSC_Coeffs; ///< GSC coefficients
+
+ /**
+ Pointer to the MicPowSp detection flag
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVNV_PMICPOWSP_MIN (0)</td>
+ <td>@ref LVNV_PMICPOWSP_DEFAULT (0)</td>
+ <td>@ref LVNV_PMICPOWSP_MAX (1)</td>
+ </tr>
+ </table> */
+ LVM_INT16* pMicPowSp; ///< MicPow Speech detection flag
+
+ /**
+ Pointer to the variable of Calibration factor
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>2.13</td>
+ <td>@ref LVNV_PCALFACTOR_MIN (0)</td>
+ <td>@ref LVNV_PCALFACTOR_DEFAULT (0)</td>
+ <td>@ref LVNV_PCALFACTOR_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16* pCalFactor; ///< Calibration factor value
+
+ /**
+ Pointer to the variable of Calibration ready
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVNV_PCALREADY_MIN (0)</td>
+ <td>@ref LVNV_PCALREADY_DEFAULT (0)</td>
+ <td>@ref LVNV_PCALREADY_MAX (2)</td>
+ </tr>
+ </table> */
+ LVM_INT16* pCalReady; ///< Calibration ready value
+
+ /**
+ Pointer to the inter-channel correlation value used in broadside detection.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_PBROADSIDE_INTERCC_MIN (0)</td>
+ <td>@ref LVNV_PBROADSIDE_INTERCC_DEFAULT (0)</td>
+ <td>@ref LVNV_PBROADSIDE_INTERCC_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16* pBroadside_interCC; ///< Broadside correlation
+
+} LVNV_StatusParams_st;
+
+/**
+* The status parameters are used to retrieve the status of the module.
+* @see LVHF_GetStatusParameters
+*/
+typedef struct
+{
+ /**
+ Current value of the echo subtraction factor.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>5.10</td>
+ <td>@ref LVHF_GAMMAE_MIN (0)</td>
+ <td>@ref LVHF_GAMMAE_DEFAULT (0)</td>
+ <td>@ref LVHF_GAMMAE_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 gammae; ///< multiplicator factor of echo suppression
+
+ /**
+ Bit mask describing the current state of LVHF, used for debugging.
+ */
+ LVHF_StatusWord_bm status; ///< current state
+
+ /**
+ Pointer to the coefficients of the LB NLMS.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>1.30</td>
+ <td>@ref LVHF_PNLMS_LB_COEFS_MIN (-2147483648)</td>
+ <td>@ref LVHF_PNLMS_LB_COEFS_DEFAULT (0)</td>
+ <td>@ref LVHF_PNLMS_LB_COEFS_MAX (2147483647)</td>
+ </tr>
+ </table> */
+ LVM_INT32* pNLMS_LB_Coefs; ///< NLMS lowband filter coefficients
+
+ /**
+ Pointer to the coefficients of the HB NLMS.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>1.30</td>
+ <td>@ref LVHF_PNLMS_HB_COEFS_MIN (-2147483648)</td>
+ <td>@ref LVHF_PNLMS_HB_COEFS_DEFAULT (0)</td>
+ <td>@ref LVHF_PNLMS_HB_COEFS_MAX (2147483647)</td>
+ </tr>
+ </table> */
+ LVM_INT32* pNLMS_HB_Coefs; ///< NLMS highband filter coefficients
+
+ /**
+ Pointer to the coefficients of the PCD NLMS.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>1.30</td>
+ <td>@ref LVHF_PPCD_COEFS_MIN (-2147483648)</td>
+ <td>@ref LVHF_PPCD_COEFS_DEFAULT (0)</td>
+ <td>@ref LVHF_PPCD_COEFS_MAX (2147483647)</td>
+ </tr>
+ </table> */
+ LVM_INT32* pPCD_Coefs; ///< PCD NLMS filter coefficients
+
+} LVHF_StatusParams_st;
+
+/**
+* The status parameters are used to retrieve the status of the module.
+* @see LVVE_Tx_GetStatusParameters
+*/
+typedef struct
+{
+ /**
+ HandsFree Status Parameter Structure.
+ */
+ LVHF_StatusParams_st HF_StatusParams; ///< HandsFree Status Parameters Structure
+
+ /**
+ NoiseVoid Status Parameter Structure.
+ */
+ LVNV_StatusParams_st NV_StatusParams; ///< NoiseVoid Status Parameters Structrue
+
+ /**
+ Dummy Param.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>1.7</td>
+ <td>@ref LVVE_TX_DUMMY_MIN (-128)</td>
+ <td>@ref LVVE_TX_DUMMY_DEFAULT (0)</td>
+ <td>@ref LVVE_TX_DUMMY_MAX (127)</td>
+ </tr>
+ </table> */
+ LVM_INT8 dummy; ///< Dummy Param
+
+} LVVE_Tx_StatusParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVVIDHeader_SetControlParameters function but they
+* will not take effect until the next call to the LVVIDHeader_Process function.
+*
+* @see LVVIDHeader_SetControlParameters
+* @see LVVIDHeader_Process
+*/
+typedef struct
+{
+ /**
+ This number always increments by one when there is change in the header format.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>8.0</td>
+ <td>@ref LVVIDHEADER_HEADERVERSION_MIN (0)</td>
+ <td>@ref LVVIDHEADER_HEADERVERSION_DEFAULT (3)</td>
+ <td>@ref LVVIDHEADER_HEADERVERSION_MAX (255)</td>
+ </tr>
+ </table> */
+ LVM_UINT8 HeaderVersion; ///< Header Format Version
+
+ /**
+ Initially This variable holds value of the baseline version. The value is in
+ format of xxyyzzpp where xx is major number of the library, yy is minor number,
+ zz is second minor number and pp is patch number of the baseline.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>32.0</td>
+ <td>@ref LVVIDHEADER_BASELINEVERSION_MIN (1)</td>
+ <td>@ref LVVIDHEADER_BASELINEVERSION_DEFAULT (51906816)</td>
+ <td>@ref LVVIDHEADER_BASELINEVERSION_MAX (4294967295)</td>
+ </tr>
+ </table> */
+ LVM_UINT32 BaselineVersion; ///< This is LVVE tagged version name
+
+ /**
+ First LVVE_Rx algorithm mask which holds information of which LVVE_Rx
+ algorithms are present.
+ */
+ LVVIDHeader_LVVE_Rx_Mask1_bm LVVE_Rx_AlgoMask1; ///< This variable forms first part of LVVE_Rx algorithm mask
+
+ /**
+ Second LVVE_Rx algorithm mask which holds information of which LVVE_Rx
+ algorithms are present.
+ */
+ LVVIDHeader_LVVE_Rx_Mask2_bm LVVE_Rx_AlgoMask2; ///< This variable forms second part of LVVE_Rx algorithm mask
+
+ /**
+ First LVVE_Tx algorithm mask which holds information of which LVVE_Tx
+ algorithms are present.
+ */
+ LVVIDHeader_LVVE_Tx_Mask1_bm LVVE_Tx_AlgoMask1; ///< This variable forms first part of LVVE_Tx mask
+
+ /**
+ Second LVVE_Tx algorithm mask which holds information of which LVVE_Tx
+ algorithms are present.
+ */
+ LVVIDHeader_LVVE_Tx_Mask2_bm LVVE_Tx_AlgoMask2; ///< This variable forms second part of LVVE_Tx mask
+
+ /**
+ First LVVE configuration mask which holds information of which configurations
+ of LVVE_Tx and LVVE_Rx algorithm are present.
+ */
+ LVVIDHeader_Configurations_Mask1_bm LVVE_Config_AlgoMask1; ///< This variable forms first part of common LVVE_Tx and LVVE_Rx configuration mask
+
+ /**
+ Second LVVE configuration mask which holds information of which configurations
+ of LVVE_Tx and LVVE_Rx algorithm are present.
+ */
+ LVVIDHeader_Configurations_Mask2_bm LVVE_Config_AlgoMask2; ///< This variable forms second part of common LVVE_Tx and LVVE_Rx configuration mask
+
+ /**
+ Messge ID is used to identify stream
+ */
+ LVVIDHeader_MessageID_en MessageID; ///< This param holds message ID of the buffer
+
+ /**
+ This parameter specifies the sample rate information of the buffer.
+ */
+ LVM_Fs_en SampleRate; ///< Sample rate information of the buffer.
+
+ /**
+ This parameter specifies the volume index corresponding to the subsequent data.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>8.0</td>
+ <td>@ref LVVIDHEADER_VOLUMEINDEX_MIN (0)</td>
+ <td>@ref LVVIDHEADER_VOLUMEINDEX_DEFAULT (0)</td>
+ <td>@ref LVVIDHEADER_VOLUMEINDEX_MAX (255)</td>
+ </tr>
+ </table> */
+ LVM_UINT8 VolumeIndex; ///< Volume index corresponding to the subsequent data.
+
+ /**
+ This parameter specifies how many volumes are present in the binary file.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>8.0</td>
+ <td>@ref LVVIDHEADER_NUMVOLUMES_MIN (0)</td>
+ <td>@ref LVVIDHEADER_NUMVOLUMES_DEFAULT (1)</td>
+ <td>@ref LVVIDHEADER_NUMVOLUMES_MAX (255)</td>
+ </tr>
+ </table> */
+ LVM_UINT8 NumVolumes; ///< Number of volumes present in the binary file.
+
+} LVVIDHeader_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVVC_SetControlParameters function but they
+* will not take effect until the next call to the LVVC_Process function.
+*
+* @see LVVC_SetControlParameters
+* @see LVVC_Process
+*/
+typedef struct
+{
+ /**
+ Control the operating mode (ON/OFF) of the algorithm.
+ */
+ LVM_Mode_en OperatingMode; ///< Operating mode
+
+ /**
+ The mode word to enable/disable internal algorithm blocks of VoiceClarity.
+ */
+ LVVC_ModeWord_bm mode; ///< Mode word
+
+ /**
+ Maximum Gain applied to the signal.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>6.9</td>
+ <td>@ref LVVC_GAIN_LIN_MAX_MIN (512)</td>
+ <td>@ref LVVC_GAIN_LIN_MAX_DEFAULT (1286)</td>
+ <td>@ref LVVC_GAIN_LIN_MAX_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 Gain_Lin_Max; ///< Maximum Gain.
+
+ /**
+ The Noise_Sensitivity parameter sets how sensitive VoiceClarity will be to the
+ background noise level. The Noise_Sensitivity parameter allows adjusting the
+ sensitivity of those processing blocks to the nearend noise level. For high
+ values of the Noise_Sensitivity the effect of the mentioned processing blocks
+ will be big, even at low to moderate nearend noise levels. For low values of
+ the Noise_Sensitivity the effect of the processing blocks will be smaller, even
+ for high nearend noise levels.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVVC_NOISE_SENSITIVITY_MIN (-6709)</td>
+ <td>@ref LVVC_NOISE_SENSITIVITY_DEFAULT (20000)</td>
+ <td>@ref LVVC_NOISE_SENSITIVITY_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 Noise_Sensitivity; ///< Noise Sensitivity.
+
+ /**
+ The desired output level of the AGC. <br>
+ AVL_Target_level_lin = \f$32767*10^{Target_Level_dB/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVVC_AVL_TARGET_LEVEL_LIN_MIN (0)</td>
+ <td>@ref LVVC_AVL_TARGET_LEVEL_LIN_DEFAULT (16384)</td>
+ <td>@ref LVVC_AVL_TARGET_LEVEL_LIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_Target_level_lin; ///< The desired output level of the AGC.
+
+ /**
+ The maximal attenuation of the AGC. <br>
+ AVL_MinGainLin = \f$512*10^{MinGain_dB/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>6.9</td>
+ <td>@ref LVVC_AVL_MINGAINLIN_MIN (0)</td>
+ <td>@ref LVVC_AVL_MINGAINLIN_DEFAULT (256)</td>
+ <td>@ref LVVC_AVL_MINGAINLIN_MAX (512)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_MinGainLin; ///< The maximal attenuation of the AGC.
+
+ /**
+ The maximal gain of the AGC. <br>
+ AVL_MaxGainLin = \f$512*10^{MaxGain_dB/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>6.9</td>
+ <td>@ref LVVC_AVL_MAXGAINLIN_MIN (512)</td>
+ <td>@ref LVVC_AVL_MAXGAINLIN_DEFAULT (8192)</td>
+ <td>@ref LVVC_AVL_MAXGAINLIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_MaxGainLin; ///< The maximal gain of the AGC.
+
+ /**
+ The nominal gain of the AGC.<br>
+ AVL_NominalGain = \f$512*10^{NominalGain_dB/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>6.9</td>
+ <td>@ref LVVC_AVL_NOMINALGAIN_MIN (0)</td>
+ <td>@ref LVVC_AVL_NOMINALGAIN_DEFAULT (512)</td>
+ <td>@ref LVVC_AVL_NOMINALGAIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_NominalGain; ///< The nominal gain of the AGC.
+
+ /**
+ The gain of the AGC is smoothed across time. The time constant of the smoothing
+ depends on whether the gain is increasing or decreasing. When a sudden loud
+ signal is encountered (e.g. attack of speech), the attack time is used. When
+ the gain is increasing (e.g. long period of whispered speech), the release time
+ is used. <br>
+
+ AVL_Attack = \f$32767*\exp(-1/(100*AttackTimeSec))\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVVC_AVL_ATTACK_MIN (0)</td>
+ <td>@ref LVVC_AVL_ATTACK_DEFAULT (12055)</td>
+ <td>@ref LVVC_AVL_ATTACK_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_Attack; ///< The attack time of the AGC.
+
+ /**
+ The gain of the AGC is smoothed across time. The time constant of the smoothing
+ depends on whether the gain is increasing or decreasing. When a sudden loud
+ signal is encountered (e.g. attack of speech), the attack time is used. When
+ the gain is increasing (e.g. long period of whispered speech), the release time
+ is used. <br>
+
+ AVL_Release = \f$32767*\exp(-1/(100*ReleaseTimeSec))\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVVC_AVL_RELEASE_MIN (0)</td>
+ <td>@ref LVVC_AVL_RELEASE_DEFAULT (32604)</td>
+ <td>@ref LVVC_AVL_RELEASE_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_Release; ///< The release time of the AGC.
+
+ /**
+ The release time at maximum noise level.<br>
+
+ AVL_ReleaseMax = \f$32767*\exp(-1/(100*ReleaseMaxTimeSec))\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVVC_AVL_RELEASEMAX_MIN (0)</td>
+ <td>@ref LVVC_AVL_RELEASEMAX_DEFAULT (32441)</td>
+ <td>@ref LVVC_AVL_RELEASEMAX_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_ReleaseMax; ///< The release time at maximum noise level.
+
+ /**
+ AVL_Limit_MaxOutputLin = \f$32767*10^{TargetLimiterLeveldB/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVVC_AVL_LIMIT_MAXOUTPUTLIN_MIN (0)</td>
+ <td>@ref LVVC_AVL_LIMIT_MAXOUTPUTLIN_DEFAULT (23170)</td>
+ <td>@ref LVVC_AVL_LIMIT_MAXOUTPUTLIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_Limit_MaxOutputLin; ///< The level to which the signal will be limited.
+
+ /**
+ The higher the value of the threshold, the less speech detections will occur.
+ <br>
+ SpDetect_Threshold = \f$512 * [0,64]\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>6.9</td>
+ <td>@ref LVVC_SPDETECT_THRESHOLD_MIN (0)</td>
+ <td>@ref LVVC_SPDETECT_THRESHOLD_DEFAULT (1024)</td>
+ <td>@ref LVVC_SPDETECT_THRESHOLD_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 SpDetect_Threshold; ///< The threshold used in the speech detector of VoiceClarity.
+
+} LVVC_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVFENS_SetControlParameters function but they
+* will not take effect until the next call to the LVFENS_Process function.
+*
+* @see LVFENS_SetControlParameters
+* @see LVFENS_Process
+*/
+typedef struct
+{
+ /**
+ */
+ LVM_Mode_en OperatingMode; ///< Operating Mode
+
+ /**
+ The maximum amount of noise suppression. <br>
+ Unit: dB<br>
+ FENS_limit_ns = \f$32767*10^{-max noise reduction[dB]/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVFENS_FENS_LIMIT_NS_MIN (0)</td>
+ <td>@ref LVFENS_FENS_LIMIT_NS_DEFAULT (10976)</td>
+ <td>@ref LVFENS_FENS_LIMIT_NS_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 FENS_limit_NS; ///< FENS Noise Suppression Limit
+
+ /**
+ The mode word to control the internal operation of FENS.
+ */
+ LVFENS_ModeWord_bm Mode; ///< Mode word
+
+} LVFENS_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVWM_SetControlParameters function but they
+* will not take effect until the next call to the LVWM_Process function.
+*
+* @see LVWM_SetControlParameters
+* @see LVWM_Process
+*/
+typedef struct
+{
+ /**
+ Control the operating mode (ON/OFF) of the algorithm.
+ */
+ LVM_Mode_en OperatingMode; ///< Operating mode
+
+ /**
+ The mode word to enable/disable internal algorithm blocks of WhisperMode.
+ */
+ LVWM_ModeWord_bm mode; ///< Mode word
+
+ /**
+ The desired output level of the AGC. <br>
+ AVL_Target_level_lin = \f$32767*10^{TargetLeveldB/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVWM_AVL_TARGET_LEVEL_LIN_MIN (0)</td>
+ <td>@ref LVWM_AVL_TARGET_LEVEL_LIN_DEFAULT (16384)</td>
+ <td>@ref LVWM_AVL_TARGET_LEVEL_LIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_Target_level_lin; ///< The desired output level of the AGC.
+
+ /**
+ The maximal attenuation of the AGC. <br>
+ AVL_MinGainLin = \f$512*10^{MinGaindB/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>6.9</td>
+ <td>@ref LVWM_AVL_MINGAINLIN_MIN (0)</td>
+ <td>@ref LVWM_AVL_MINGAINLIN_DEFAULT (128)</td>
+ <td>@ref LVWM_AVL_MINGAINLIN_MAX (512)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_MinGainLin; ///< The maximal attenuation of the AGC.
+
+ /**
+ The maximal gain of the AGC. <br>
+ AVL_MaxGainLin = \f$512*10^{MaxGaindB/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>6.9</td>
+ <td>@ref LVWM_AVL_MAXGAINLIN_MIN (512)</td>
+ <td>@ref LVWM_AVL_MAXGAINLIN_DEFAULT (8189)</td>
+ <td>@ref LVWM_AVL_MAXGAINLIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_MaxGainLin; ///< The maximal gain of the AGC.
+
+ /**
+ The gain of the AGC is smoothed across time. The time constant of the smoothing
+ depends on whether the gain is increasing or decreasing. When a sudden loud
+ signal is encountered (e.g. attack of speech), the attack time is used. When
+ the gain is increasing (e.g. long period of whispered speech), the release time
+ is used. <br>
+
+ AVL_Attack = \f$32767*\exp(-1/(100*AttackTimeSec))\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVWM_AVL_ATTACK_MIN (0)</td>
+ <td>@ref LVWM_AVL_ATTACK_DEFAULT (25520)</td>
+ <td>@ref LVWM_AVL_ATTACK_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_Attack; ///< The attack time of the AGC.
+
+ /**
+ The gain of the AGC is smoothed across time. The time constant of the smoothing
+ depends on whether the gain is increasing or decreasing. When a sudden loud
+ signal is encountered (e.g. attack of speech), the attack time is used. When
+ the gain is increasing (e.g. long period of whispered speech), the release time
+ is used. <br>
+
+ AVL_Release = \f$32767*\exp(-1/(100*ReleasTimeSec))\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVWM_AVL_RELEASE_MIN (0)</td>
+ <td>@ref LVWM_AVL_RELEASE_DEFAULT (32685)</td>
+ <td>@ref LVWM_AVL_RELEASE_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_Release; ///< The release time of the AGC.
+
+ /**
+ AVL_Limit_MaxOutputLin = \f$32767*10^{TargetLimiterLeveldB/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVWM_AVL_LIMIT_MAXOUTPUTLIN_MIN (0)</td>
+ <td>@ref LVWM_AVL_LIMIT_MAXOUTPUTLIN_DEFAULT (23197)</td>
+ <td>@ref LVWM_AVL_LIMIT_MAXOUTPUTLIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AVL_Limit_MaxOutputLin; ///< The level to which the signal will be limited.
+
+ /**
+ The higher the value of the threshold, the less speech detections will occur.
+ <br>
+ SpDetect_Threshold = \f$512 * [0,64]\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>6.9</td>
+ <td>@ref LVWM_SPDETECT_THRESHOLD_MIN (0)</td>
+ <td>@ref LVWM_SPDETECT_THRESHOLD_DEFAULT (9216)</td>
+ <td>@ref LVWM_SPDETECT_THRESHOLD_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 SpDetect_Threshold; ///< The threshold used in the speech detector of WhisperMode.
+
+} LVWM_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVDRC_SetControlParameters function but they
+* will not take effect until the next call to the LVDRC_Process function.
+*
+* @see LVDRC_SetControlParameters
+* @see LVDRC_Process
+*/
+typedef struct
+{
+ /**
+ Operating mode for DRC
+ */
+ LVM_Mode_en OperatingMode; ///< Operating mode
+
+ /**
+ Sets the number of sections (knee points) in the compressor curve
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVDRC_NUMKNEES_MIN (1)</td>
+ <td>@ref LVDRC_NUMKNEES_DEFAULT (5)</td>
+ <td>@ref LVDRC_NUMKNEES_MAX (5)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 NumKnees; ///< Number of Knee points in compressor curve
+
+ /**
+ An array of size 5(maximum) containing the knee points specified by the
+ compression curve in dBFs. The number of knee points in use is limited by the
+ NumKnees parameter. Th input level for the first knee should be equal to or
+ larger than -96dB, and the input level for the last knee should be 0dB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVDRC_COMPRESSORCURVEINPUTLEVELS_MIN (-96)</td>
+ <td>@ref LVDRC_COMPRESSORCURVEINPUTLEVELS_DEFAULT {-96,-70,-50, -24, 0}</td>
+ <td>@ref LVDRC_COMPRESSORCURVEINPUTLEVELS_MAX (0)</td>
+ </tr>
+ </table> */
+ LVM_INT16 CompressorCurveInputLevels[LVDRC_COMPRESSORCURVEINPUTLEVELS_LENGTH]; ///< Compressor Curve Input Levels
+
+ /**
+ An array of size 5(maximum) containing the knee points specified by the
+ compression curve in dBFs. The number of knee points in use is limited by the
+ NumKnees parameter. The output level for the first knee should be equal to or
+ larger than -96dB, and the output level for the last knee should be equal to or
+ smaller than 0dB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVDRC_COMPRESSORCURVEOUTPUTLEVELS_MIN (-96)</td>
+ <td>@ref LVDRC_COMPRESSORCURVEOUTPUTLEVELS_DEFAULT {-96,-70,-38,-12,0}</td>
+ <td>@ref LVDRC_COMPRESSORCURVEOUTPUTLEVELS_MAX (0)</td>
+ </tr>
+ </table> */
+ LVM_INT16 CompressorCurveOutputLevels[LVDRC_COMPRESSORCURVEOUTPUTLEVELS_LENGTH]; ///< Compressor Curve Output Levels
+
+ /**
+ The AttackTime parameter is the time constant controlling the rate of reaction
+ to increase in signal level. The AttackTime is specified in increments of 100µs
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVDRC_ATTACKTIME_MIN (0)</td>
+ <td>@ref LVDRC_ATTACKTIME_DEFAULT (50)</td>
+ <td>@ref LVDRC_ATTACKTIME_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AttackTime; ///< Attack Time
+
+ /**
+ The ReleaseTime parameter is the time constant controlling the rate of reaction
+ to decrease in signal level. The ReleaseTime is specified in increments of
+ 100µs.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVDRC_RELEASETIME_MIN (0)</td>
+ <td>@ref LVDRC_RELEASETIME_DEFAULT (50)</td>
+ <td>@ref LVDRC_RELEASETIME_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 ReleaseTime; ///< Release Time
+
+ /**
+ Enable or Disable limiter with soft clipping.
+ */
+ LVM_Mode_en LimiterOperatingMode; ///< Enable or Disable limiter with soft clipping
+
+ /**
+ Sets the limit level of the compressor in dB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVDRC_LIMITLEVEL_MIN (-96)</td>
+ <td>@ref LVDRC_LIMITLEVEL_DEFAULT (0)</td>
+ <td>@ref LVDRC_LIMITLEVEL_MAX (0)</td>
+ </tr>
+ </table> */
+ LVM_INT16 LimitLevel; ///< Sets the limit level of the compressor in dB
+
+} LVDRC_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVNG_SetControlParameters function but they
+* will not take effect until the next call to the LVNG_Process function.
+*
+* @see LVNG_SetControlParameters
+* @see LVNG_Process
+*/
+typedef struct
+{
+ /**
+ Operating mode for Noise Gate
+ */
+ LVM_Mode_en OperatingMode; ///< Operating mode
+
+ /**
+ Sets the number of sections (knee points) in the compressor curve
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVNG_NUMKNEES_MIN (1)</td>
+ <td>@ref LVNG_NUMKNEES_DEFAULT (5)</td>
+ <td>@ref LVNG_NUMKNEES_MAX (5)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 NumKnees; ///< Number of Knee points in compressor curve
+
+ /**
+ An array of size 5(maximum) containing the knee points specified by the
+ compression curve in dBFs. The number of knee points in use is limited by the
+ NumKnees parameter. The input level for the first knee should be equal to or
+ larger than -96dB, and the input level for the last knee should be 0dB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVNG_COMPRESSORCURVEINPUTLEVELS_MIN (-96)</td>
+ <td>@ref LVNG_COMPRESSORCURVEINPUTLEVELS_DEFAULT {-80,-70,-50, -24, 0}</td>
+ <td>@ref LVNG_COMPRESSORCURVEINPUTLEVELS_MAX (0)</td>
+ </tr>
+ </table> */
+ LVM_INT16 CompressorCurveInputLevels[LVNG_COMPRESSORCURVEINPUTLEVELS_LENGTH]; ///< Compressor Curve Input Levels
+
+ /**
+ An array of size 5(maximum) containing the knee points specified by the
+ compression curve in dBFs. The number of knee points in use is limited by the
+ NumKnees parameter. The output level for the first knee should be equal to or
+ larger than -96dB, and the output level for the last knee should be equal to or
+ smaller than 0dB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVNG_COMPRESSORCURVEOUTPUTLEVELS_MIN (-96)</td>
+ <td>@ref LVNG_COMPRESSORCURVEOUTPUTLEVELS_DEFAULT {-96,-80,-50, -24, 0}</td>
+ <td>@ref LVNG_COMPRESSORCURVEOUTPUTLEVELS_MAX (0)</td>
+ </tr>
+ </table> */
+ LVM_INT16 CompressorCurveOutputLevels[LVNG_COMPRESSORCURVEOUTPUTLEVELS_LENGTH]; ///< Compressor Curve Output Levels
+
+ /**
+ The AttackTime parameter is the time constant controlling the rate of reaction
+ to increase in signal level. The AttackTime is specified in increments of 100µs
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVNG_ATTACKTIME_MIN (0)</td>
+ <td>@ref LVNG_ATTACKTIME_DEFAULT (50)</td>
+ <td>@ref LVNG_ATTACKTIME_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 AttackTime; ///< Attack Time
+
+ /**
+ The ReleaseTime parameter is the time constant controlling the rate of reaction
+ to decrease in signal level. The ReleaseTime is specified in increments of
+ 100µs.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVNG_RELEASETIME_MIN (0)</td>
+ <td>@ref LVNG_RELEASETIME_DEFAULT (50)</td>
+ <td>@ref LVNG_RELEASETIME_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 ReleaseTime; ///< Release Time
+
+} LVNG_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVNLPP_SetControlParameters function but they
+* will not take effect until the next call to the LVNLPP_Process function.
+*
+* @see LVNLPP_SetControlParameters
+* @see LVNLPP_Process
+*/
+typedef struct
+{
+ /**
+ Limits the signal level compared to digital full scale in dB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVNLPP_NLPP_LIMIT_MIN (-24)</td>
+ <td>@ref LVNLPP_NLPP_LIMIT_DEFAULT (0)</td>
+ <td>@ref LVNLPP_NLPP_LIMIT_MAX (0)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLPP_Limit; ///< NLPP Limit
+
+ /**
+ Sets the -3dB corner frequency of the high-pass filter in Hz.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVNLPP_NLPP_HPF_CORNERFREQ_MIN (50)</td>
+ <td>@ref LVNLPP_NLPP_HPF_CORNERFREQ_DEFAULT (50)</td>
+ <td>@ref LVNLPP_NLPP_HPF_CORNERFREQ_MAX (1000)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 NLPP_HPF_CornerFreq; ///< NLPP HPF Corner Frequency
+
+} LVNLPP_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVEQ_SetControlParameters function but they
+* will not take effect until the next call to the LVEQ_Process function.
+*
+* @see LVEQ_SetControlParameters
+* @see LVEQ_Process
+*/
+typedef struct
+{
+ /**
+ Sets the length of the Equalizer impulse response. This must never be more than
+ the value of EQ_MaxLength set at initialization time. The EQ_Length must be a
+ multiple of 8.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVEQ_EQ_LENGTH_MIN (8)</td>
+ <td>@ref LVEQ_EQ_LENGTH_DEFAULT (32)</td>
+ <td>@ref LVEQ_EQ_LENGTH_MAX (32)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 EQ_Length; ///< EQ Tap Length
+
+ /**
+ Pointer to an array containing the samples of the Equalizer impulse response.
+ The format of the array content is specified below. The samples of the
+ Equalizer impulse response must be in Q3.12 format.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>3.12</td>
+ <td>@ref LVEQ_EQ_COEFS_MIN (-32768)</td>
+ <td>@ref LVEQ_EQ_COEFS_DEFAULT {4096,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}</td>
+ <td>@ref LVEQ_EQ_COEFS_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 *pEQ_Coefs; ///< Equalizer impulse response
+
+} LVEQ_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVVOL_SetControlParameters function but they
+* will not take effect until the next call to the LVVOL_Process function.
+*
+* @see LVVOL_SetControlParameters
+* @see LVVOL_Process
+*/
+typedef struct
+{
+ /**
+ Turns on/off VOL_Gain.
+ */
+ LVM_Mode_en VOL_OperatingMode; ///< Turns on/off VOL_Gain
+
+ /**
+ The volume control gain can be used to set the overall volume level of the
+ signal. The gain is set in dB with steps of 1dB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVVOL_VOL_GAIN_MIN (-96)</td>
+ <td>@ref LVVOL_VOL_GAIN_DEFAULT (0)</td>
+ <td>@ref LVVOL_VOL_GAIN_MAX (24)</td>
+ </tr>
+ </table> */
+ LVM_INT16 VOL_Gain; ///< Apply Gain to Input signal
+
+} LVVOL_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVHPF_SetControlParameters function but they
+* will not take effect until the next call to the LVHPF_Process function.
+*
+* @see LVHPF_SetControlParameters
+* @see LVHPF_Process
+*/
+typedef struct
+{
+ /**
+ Turns on/off High Pass filter.
+ */
+ LVM_Mode_en HPF_OperatingMode; ///< Turns on/off High Pass filter
+
+ /**
+ Sets the 3dB corner frequency of the high-pass filter. In case NoiseVoid is
+ enabled, the same high-pass filter will be applied to the second microphone
+ channel.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVHPF_HPF_CORNERFREQ_MIN (50)</td>
+ <td>@ref LVHPF_HPF_CORNERFREQ_DEFAULT (50)</td>
+ <td>@ref LVHPF_HPF_CORNERFREQ_MAX (1500)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 HPF_CornerFreq; ///< High Pass Filter Corner Frequency in Hz
+
+} LVHPF_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVMUTE_SetControlParameters function but they
+* will not take effect until the next call to the LVMUTE_Process function.
+*
+* @see LVMUTE_SetControlParameters
+* @see LVMUTE_Process
+*/
+typedef struct
+{
+ /**
+ This param can mute unmute the Rx/Tx engine output.
+ */
+ LVM_Mode_en Mute; ///< This param can mute unmute the Rx/Tx engine output
+
+} LVMUTE_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVVE_Rx_SetControlParameters function but they
+* will not take effect until the next call to the LVVE_Rx_Process function.
+*
+* @see LVVE_Rx_SetControlParameters
+* @see LVVE_Rx_Process
+*/
+typedef struct
+{
+ /**
+ This enumerated type is used to set the operating mode of the Rx path. The
+ processing can be separately set to enable all processing modules (i.e., ON),
+ to disable all processing modules (i.e., OFF) or to bypass all processing
+ modules (i.e., BYPASS). When bypassed, all processing modules keep on running,
+ but their output is not used.
+ */
+ LVVE_Rx_Mode_en OperatingMode; ///< This param controls the on/off of RX voice engine.
+
+ /**
+ This param can mute unmute the Rx/Tx engine output.
+ */
+ LVM_Mode_en Mute; ///< This param can mute unmute the Rx/Tx engine output
+
+ /**
+ Turns on/off VOL_Gain.
+ */
+ LVM_Mode_en VOL_OperatingMode; ///< Turns on/off VOL_Gain
+
+ /**
+ The volume control gain can be used to set the overall volume level of the
+ signal. The gain is set in dB with steps of 1dB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVVE_RX_VOL_GAIN_MIN (-96)</td>
+ <td>@ref LVVE_RX_VOL_GAIN_DEFAULT (0)</td>
+ <td>@ref LVVE_RX_VOL_GAIN_MAX (24)</td>
+ </tr>
+ </table> */
+ LVM_INT16 VOL_Gain; ///< Apply Gain to Input signal
+
+ /**
+ Far End Noise Suppression Control Parameter Structure.
+ */
+ LVFENS_ControlParams_st FENS_ControlParams; ///< Far End Noise Suppression Control Parameter Structure
+
+ /**
+ Turns on/off NLPP.
+ */
+ LVM_Mode_en NLPP_OperatingMode; ///< Turns on/off NLPP
+
+ /**
+ NLPP Control Parameter Structure.
+ */
+ LVNLPP_ControlParams_st NLPP_ControlParams; ///< NLPP Control Parameter Structure
+
+ /**
+ Voice Clarity Control Parameter Structure.
+ */
+ LVVC_ControlParams_st VC_ControlParams; ///< Voice Clarity Control Parameter Structure
+
+ /**
+ Equalizer Operating mode.
+ */
+ LVM_Mode_en EQ_OperatingMode; ///< Equalizer Operating mode
+
+ /**
+ Equalizer Control Parameters Structure.
+ */
+ LVEQ_ControlParams_st EQ_ControlParams; ///< Equalizer Control Parameters Structure
+
+ /**
+ DRC Control Parameter Strcuture.
+ */
+ LVDRC_ControlParams_st DRC_ControlParams; ///< DRC Control Parameter Strcuture
+
+ /**
+ Turns on/off High Pass filter.
+ */
+ LVM_Mode_en HPF_OperatingMode; ///< Turns on/off High Pass filter
+
+ /**
+ Sets the 3dB corner frequency of the high-pass filter. In case NoiseVoid is
+ enabled, the same high-pass filter will be applied to the second microphone
+ channel.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVVE_RX_HPF_CORNERFREQ_MIN (50)</td>
+ <td>@ref LVVE_RX_HPF_CORNERFREQ_DEFAULT (50)</td>
+ <td>@ref LVVE_RX_HPF_CORNERFREQ_MAX (1500)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 HPF_CornerFreq; ///< High Pass Filter Corner Frequency in Hz
+
+ /**
+ Whisper Mode Control Parameter Strcuture.
+ */
+ LVWM_ControlParams_st WM_ControlParams; ///< Whisper Mode Control Parameter Strcuture
+
+ /**
+ Noise Gate Control Parameter Structure.
+ */
+ LVNG_ControlParams_st NG_ControlParams; ///< Noise Gate Control Parameter Structure
+
+} LVVE_Rx_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVNV_SetControlParameters function but they
+* will not take effect until the next call to the LVNV_Process function.
+*
+* @see LVNV_SetControlParameters
+* @see LVNV_Process
+*/
+typedef struct
+{
+ /**
+ */
+ LVM_Mode_en OperatingMode; ///< Operating Mode
+
+ /**
+ The mode word to enable/disable internal algorithm blocks of LVNV.
+ */
+ LVNV_ModeWord_bm Mode; ///< Mode word
+
+ /**
+ The mode2 word to allow switching or combining different blocks inside LVNV.
+ */
+ LVNV_Mode2Word_bm Mode2; ///< Mode2 word
+
+ /**
+ The tuning mode word to enable/disable internal algorithm tuning capabilities
+ in the different blocks of LVNV. Only one bit is allowed to be enabled at a
+ time.
+ */
+ LVNV_TuningModeWord_bm Tuning_mode; ///< Tuning mode word
+
+ /**
+ Gain applied at the primary channel in the Tx input. Used to scale the
+ microphone signal in order to give the NLMS0_LB and NLMS0_HB filters headroom
+ for correct operation.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>2.13</td>
+ <td>@ref LVNV_INPUT_GAIN_MIC0_MIN (0)</td>
+ <td>@ref LVNV_INPUT_GAIN_MIC0_DEFAULT (8192)</td>
+ <td>@ref LVNV_INPUT_GAIN_MIC0_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 Input_Gain_Mic0; ///< The primary input gain.
+
+ /**
+ Gain applied at the secondary channel in the Tx input. Used to scale the
+ microphone signal in order to give the NLMS1_LB and NLMS1_HB filters headroom
+ for correct operation.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>2.13</td>
+ <td>@ref LVNV_INPUT_GAIN_MIC1_MIN (0)</td>
+ <td>@ref LVNV_INPUT_GAIN_MIC1_DEFAULT (8192)</td>
+ <td>@ref LVNV_INPUT_GAIN_MIC1_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 Input_Gain_Mic1; ///< The secondary input gain.
+
+ /**
+ Gain applied at the Tx output of LVNV. Compensates the applied Input_Gain_Mic0
+ in order to preserve the overall Tx gain.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>4.11</td>
+ <td>@ref LVNV_OUTPUT_GAIN_MIN (0)</td>
+ <td>@ref LVNV_OUTPUT_GAIN_DEFAULT (2048)</td>
+ <td>@ref LVNV_OUTPUT_GAIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 Output_Gain; ///< The output gain.
+
+ /**
+ Length of the low-band (0-4kHz) adaptive echo cancellation filter for the
+ primary channel. The Length should be chosen such that most of the energy of
+ the impulse response is covered by the filter. The length should be a multiple
+ of 8.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVNV_NLMS0_LB_TAPS_MIN (16)</td>
+ <td>@ref LVNV_NLMS0_LB_TAPS_DEFAULT (32)</td>
+ <td>@ref LVNV_NLMS0_LB_TAPS_MAX (64)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 NLMS0_LB_taps; ///< Number of NLMS0 low-band taps.
+
+ /**
+ Step size for the update of the low-band adaptive filter coefficients for the
+ primary channel. It is recommended not to change the default value.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_NLMS0_LB_TWOALPHA_MIN (0)</td>
+ <td>@ref LVNV_NLMS0_LB_TWOALPHA_DEFAULT (8192)</td>
+ <td>@ref LVNV_NLMS0_LB_TWOALPHA_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS0_LB_twoalpha; ///< NLMS0 low-band step size
+
+ /**
+ Adaptive step-size control for the low-band adaptive echo cancellation filter
+ for the primary channel. This parameter is used to slow down the update speed
+ of the adaptive filter during double talk situations.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>9.6</td>
+ <td>@ref LVNV_NLMS0_LB_ERL_MIN (64)</td>
+ <td>@ref LVNV_NLMS0_LB_ERL_DEFAULT (1000)</td>
+ <td>@ref LVNV_NLMS0_LB_ERL_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS0_LB_erl; ///< NLMS0 low-band erl
+
+ /**
+ Length of the high-band (4-8kHz) adaptive echo cancellation filter for the
+ primary channel. The Length should be chosen such that most of the energy of
+ the impulse response is covered by the filter. The length should be a multiple
+ of 8.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVNV_NLMS0_HB_TAPS_MIN (16)</td>
+ <td>@ref LVNV_NLMS0_HB_TAPS_DEFAULT (24)</td>
+ <td>@ref LVNV_NLMS0_HB_TAPS_MAX (64)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 NLMS0_HB_taps; ///< Number of NLMS0 high-band taps.
+
+ /**
+ Step size for the update of the high-band adaptive filter coefficients for the
+ primary channel. It is recommended not to change the default value.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_NLMS0_HB_TWOALPHA_MIN (0)</td>
+ <td>@ref LVNV_NLMS0_HB_TWOALPHA_DEFAULT (8192)</td>
+ <td>@ref LVNV_NLMS0_HB_TWOALPHA_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS0_HB_twoalpha; ///< NLMS0 high-band step size
+
+ /**
+ Adaptive step-size control for the high-band adaptive echo cancellation filter
+ for the primary channel. This parameter is used to slow down the update speed
+ of the adaptive filter during double talk situations.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>9.6</td>
+ <td>@ref LVNV_NLMS0_HB_ERL_MIN (64)</td>
+ <td>@ref LVNV_NLMS0_HB_ERL_DEFAULT (1000)</td>
+ <td>@ref LVNV_NLMS0_HB_ERL_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS0_HB_erl; ///< NLMS0 high-band erl
+
+ /**
+ Indicates whether a preset of adaptive filter coefficients should be done.<br>
+ 0 = No preset (coefficients as they are).<br>
+ 1 = Preset with internally calculated coefficients.<br>
+ 2 = Preset with zero coefficients.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVNV_NLMS0_PRESET_COEFS_MIN (0)</td>
+ <td>@ref LVNV_NLMS0_PRESET_COEFS_DEFAULT (0)</td>
+ <td>@ref LVNV_NLMS0_PRESET_COEFS_MAX (2)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS0_preset_coefs; ///< NLMS0 preset
+
+ /**
+ Offset added to the normalization of the adaptation of the filter.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_NLMS0_OFFSET_MIN (0)</td>
+ <td>@ref LVNV_NLMS0_OFFSET_DEFAULT (776)</td>
+ <td>@ref LVNV_NLMS0_OFFSET_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS0_offset; ///< NLMS0 offset
+
+ /**
+ Length of the low-band (0-4kHz) adaptive echo cancellation filter for the
+ secondary channel. The Length should be chosen such that most of the energy of
+ the impulse response is covered by the filter. The length should be a multiple
+ of 8.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVNV_NLMS1_LB_TAPS_MIN (16)</td>
+ <td>@ref LVNV_NLMS1_LB_TAPS_DEFAULT (32)</td>
+ <td>@ref LVNV_NLMS1_LB_TAPS_MAX (32)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 NLMS1_LB_taps; ///< Number of NLMS1 low-band taps.
+
+ /**
+ Step size for the update of the low-band adaptive filter coefficients for the
+ secondary channel. It is recommended not to change the default value.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_NLMS1_LB_TWOALPHA_MIN (0)</td>
+ <td>@ref LVNV_NLMS1_LB_TWOALPHA_DEFAULT (8192)</td>
+ <td>@ref LVNV_NLMS1_LB_TWOALPHA_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS1_LB_twoalpha; ///< NLMS1 low-band step size
+
+ /**
+ Adaptive step-size control for the low-band adaptive echo cancellation filter
+ for the secondary channel. This parameter is used to slow down the update speed
+ of the adaptive filter during double talk situations.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>9.6</td>
+ <td>@ref LVNV_NLMS1_LB_ERL_MIN (64)</td>
+ <td>@ref LVNV_NLMS1_LB_ERL_DEFAULT (1000)</td>
+ <td>@ref LVNV_NLMS1_LB_ERL_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS1_LB_erl; ///< NLMS1 low-band erl
+
+ /**
+ Length of the high-band (4-8kHz) adaptive echo cancellation filter for the
+ secondary channel. The Length should be chosen such that most of the energy of
+ the impulse response is covered by the filter. The length should be a multiple
+ of 8.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVNV_NLMS1_HB_TAPS_MIN (16)</td>
+ <td>@ref LVNV_NLMS1_HB_TAPS_DEFAULT (24)</td>
+ <td>@ref LVNV_NLMS1_HB_TAPS_MAX (32)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 NLMS1_HB_taps; ///< Number of NLMS1 high-band taps.
+
+ /**
+ Step size for the update of the high-band adaptive filter coefficients for the
+ secondary channel. It is recommended not to change the default value.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_NLMS1_HB_TWOALPHA_MIN (0)</td>
+ <td>@ref LVNV_NLMS1_HB_TWOALPHA_DEFAULT (8192)</td>
+ <td>@ref LVNV_NLMS1_HB_TWOALPHA_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS1_HB_twoalpha; ///< NLMS1 high-band step size
+
+ /**
+ Adaptive step-size control for the high-band adaptive echo cancellation filter
+ for the secondary channel. This parameter is used to slow down the update speed
+ of the adaptive filter during double talk situations.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>9.6</td>
+ <td>@ref LVNV_NLMS1_HB_ERL_MIN (64)</td>
+ <td>@ref LVNV_NLMS1_HB_ERL_DEFAULT (1000)</td>
+ <td>@ref LVNV_NLMS1_HB_ERL_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS1_HB_erl; ///< NLMS1 high-band erl
+
+ /**
+ Indicates whether a preset of adaptive filter coefficients should be done.<br>
+ 0 = No preset (coefficients as they are).<br>
+ 1 = Preset with internally calculated coefficients.<br>
+ 2 = Preset with zero coefficients.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVNV_NLMS1_PRESET_COEFS_MIN (0)</td>
+ <td>@ref LVNV_NLMS1_PRESET_COEFS_DEFAULT (0)</td>
+ <td>@ref LVNV_NLMS1_PRESET_COEFS_MAX (2)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS1_preset_coefs; ///< NLMS1 preset
+
+ /**
+ Offset added to the normalization of the adaptation of the filter.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_NLMS1_OFFSET_MIN (0)</td>
+ <td>@ref LVNV_NLMS1_OFFSET_DEFAULT (776)</td>
+ <td>@ref LVNV_NLMS1_OFFSET_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS1_offset; ///< NLMS1 offset
+
+ /**
+ A parameter representing a threshold for the detection of instrumental noise.
+ The higher the value for this parameter, the lower noise suppression
+ performance.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_CAL_MICPOWFLOORMIN_MIN (0)</td>
+ <td>@ref LVNV_CAL_MICPOWFLOORMIN_DEFAULT (150)</td>
+ <td>@ref LVNV_CAL_MICPOWFLOORMIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 CAL_micPowFloorMin; ///< Instrumental noise threshold
+
+ /**
+ Threshold for Windgush detector. The higher the value, the less sensitive the
+ detection.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>6.9</td>
+ <td>@ref LVNV_WGTHRESHOLD_MIN (0)</td>
+ <td>@ref LVNV_WGTHRESHOLD_DEFAULT (32767)</td>
+ <td>@ref LVNV_WGTHRESHOLD_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 WgThreshold; ///< Windgush threshold
+
+ /**
+ Threshold for speech detector based on power comparison between primary and
+ secondary microphones. The higher the value, the less sensitive the detection.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>3.12</td>
+ <td>@ref LVNV_MPTHRESHOLD_MIN (0)</td>
+ <td>@ref LVNV_MPTHRESHOLD_DEFAULT (6554)</td>
+ <td>@ref LVNV_MPTHRESHOLD_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 MpThreshold; ///< MicPow threshold
+
+ /**
+ Set of first 8 coefficients for adaptive filter FSB0. These values should be
+ determined for the given microphone configuration
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_FSB_INIT_TABLE0_MIN (-32768)</td>
+ <td>@ref LVNV_FSB_INIT_TABLE0_DEFAULT {32767, 0, 0, 0, 0, 0, 0, 0}</td>
+ <td>@ref LVNV_FSB_INIT_TABLE0_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 FSB_init_table0[LVNV_FSB_INIT_TABLE0_LENGTH]; ///< FSB0 initial coefficients.
+
+ /**
+ Set of first 8 coefficients for adaptive filter FSB1. These values should be
+ determined for the given microphone configuration
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_FSB_INIT_TABLE1_MIN (-32768)</td>
+ <td>@ref LVNV_FSB_INIT_TABLE1_DEFAULT {0, 0, 0, 0, 0, 0, 0, 0}</td>
+ <td>@ref LVNV_FSB_INIT_TABLE1_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 FSB_init_table1[LVNV_FSB_INIT_TABLE1_LENGTH]; ///< FSB1 initial coefficients.
+
+ /**
+ Length of the FSB to model the acoustical paths between the speech source and
+ two microphones. The length must be equal to 16 for the handset application.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVNV_FSB_TAPS_MIN (8)</td>
+ <td>@ref LVNV_FSB_TAPS_DEFAULT (16)</td>
+ <td>@ref LVNV_FSB_TAPS_MAX (16)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 FSB_taps; ///< Number of FSB taps
+
+ /**
+ Step-size to update the coefficients of the adaptive filters. A higher value
+ leads to a faster speed of the adaptation, while a lower value provides more
+ stability, but a slow adaption speed.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_FSB_TWOALPHA_MIN (0)</td>
+ <td>@ref LVNV_FSB_TWOALPHA_DEFAULT (655)</td>
+ <td>@ref LVNV_FSB_TWOALPHA_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 FSB_twoalpha; ///< FSB step size control
+
+ /**
+ Gain applied on the samples of the second FSB reference signal (fsbref[1]).
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>5.10</td>
+ <td>@ref LVNV_FSB_REF_GAIN_MIN (0)</td>
+ <td>@ref LVNV_FSB_REF_GAIN_DEFAULT (1024)</td>
+ <td>@ref LVNV_FSB_REF_GAIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 FSB_ref_gain; ///< FSB ref gain
+
+ /**
+ Length of the GSC to model the transfer function between the noise reference
+ and the residual signal, in order to reduce the noise and interfering sounds
+ from the desired signal. This number should be a multiple of 8.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVNV_GSC_TAPS_MIN (8)</td>
+ <td>@ref LVNV_GSC_TAPS_DEFAULT (16)</td>
+ <td>@ref LVNV_GSC_TAPS_MAX (48)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 GSC_taps; ///< Number of GSC taps
+
+ /**
+ Step-size to update the coefficients of the adaptive filter. A higher value
+ leads to a faster speed of the adaptation, while a lower value provides more
+ stability, but a slow adaption speed.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_GSC_TWOALPHA_MIN (0)</td>
+ <td>@ref LVNV_GSC_TWOALPHA_DEFAULT (1638)</td>
+ <td>@ref LVNV_GSC_TWOALPHA_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 GSC_twoalpha; ///< GSC step size control
+
+ /**
+ Adaptive step-size control for GSC to avoid divergence of the adaptive filter
+ during desired speech. In general, GSC_erl is lower than NLMS_erl and ranges
+ between 0 and 30 dB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>9.6</td>
+ <td>@ref LVNV_GSC_ERL_MIN (64)</td>
+ <td>@ref LVNV_GSC_ERL_DEFAULT (256)</td>
+ <td>@ref LVNV_GSC_ERL_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 GSC_erl; ///< GSC erl
+
+ /**
+ Offset added to the computation of the power of the noise reference to avoid
+ that the power converges towards zero when the input is low.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_GSC_OFFSET_MIN (0)</td>
+ <td>@ref LVNV_GSC_OFFSET_DEFAULT (1638)</td>
+ <td>@ref LVNV_GSC_OFFSET_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 GSC_offset; ///< GSC offset
+
+ /**
+ Echo subtraction factor applied during farend-only.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>2.13</td>
+ <td>@ref LVNV_DNNS_ECHOGAMMAHI_MIN (0)</td>
+ <td>@ref LVNV_DNNS_ECHOGAMMAHI_DEFAULT (16384)</td>
+ <td>@ref LVNV_DNNS_ECHOGAMMAHI_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_EchoGammaHi; ///< High echo subtraction factor
+
+ /**
+ Echo subtraction factor applied during double talk and nearend-only.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>2.13</td>
+ <td>@ref LVNV_DNNS_ECHOGAMMALO_MIN (0)</td>
+ <td>@ref LVNV_DNNS_ECHOGAMMALO_DEFAULT (8192)</td>
+ <td>@ref LVNV_DNNS_ECHOGAMMALO_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_EchoGammaLo; ///< Low echo subtraction factor
+
+ /**
+ Parameter related to the reverberation time of the acoustical environment,
+ which represents the decay in energy over time of the echo tail of the impulse
+ response.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_DNNS_ECHOALPHAREV_MIN (0)</td>
+ <td>@ref LVNV_DNNS_ECHOALPHAREV_DEFAULT (12000)</td>
+ <td>@ref LVNV_DNNS_ECHOALPHAREV_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_EchoAlphaRev; ///< Echo reverberation factor
+
+ /**
+ Parameter representing the portion of the echo tail (estimated by the NLMS
+ filter) that has to be extrapolated in time.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVNV_DNNS_ECHOTAILPORTION_MIN (0)</td>
+ <td>@ref LVNV_DNNS_ECHOTAILPORTION_DEFAULT (7000)</td>
+ <td>@ref LVNV_DNNS_ECHOTAILPORTION_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_EchoTailPortion; ///< Echo tail portion
+
+ /**
+ Non-linear echo subtraction factor applied during double talk and nearend-only.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>4.11</td>
+ <td>@ref LVNV_DNNS_NLATTEN_MIN (0)</td>
+ <td>@ref LVNV_DNNS_NLATTEN_DEFAULT (256)</td>
+ <td>@ref LVNV_DNNS_NLATTEN_MAX (2048)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_NlAtten; ///< Non-linear echo subtraction factor
+
+ /**
+ Gain factor for stationary noise oversubtraction.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>2.13</td>
+ <td>@ref LVNV_DNNS_NOISEGAMMAS_MIN (0)</td>
+ <td>@ref LVNV_DNNS_NOISEGAMMAS_DEFAULT (11470)</td>
+ <td>@ref LVNV_DNNS_NOISEGAMMAS_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_NoiseGammaS; ///< Stationary noise oversubtraction factor
+
+ /**
+ Gain factor for non-stationary noise oversubtraction.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>2.13</td>
+ <td>@ref LVNV_DNNS_NOISEGAMMAN_MIN (0)</td>
+ <td>@ref LVNV_DNNS_NOISEGAMMAN_DEFAULT (16384)</td>
+ <td>@ref LVNV_DNNS_NOISEGAMMAN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_NoiseGammaN; ///< Non-stationary noise oversubtraction factor
+
+ /**
+ The maximum amount of stationary noise suppression.<br>
+ DNNS_NoiseGainMinS = \f$2*32767*10^{MaxNoiseReductiondB/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>-1.16</td>
+ <td>@ref LVNV_DNNS_NOISEGAINMINS_MIN (0)</td>
+ <td>@ref LVNV_DNNS_NOISEGAINMINS_DEFAULT (11140)</td>
+ <td>@ref LVNV_DNNS_NOISEGAINMINS_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_NoiseGainMinS; ///< Maximum stationary noise suppression.
+
+ /**
+ The maximum amount of non-stationary noise suppression.<br>
+ DNNS_NoiseGainMinN = \f$2*32767*10^{MaxNoiseReductiondB/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>-1.16</td>
+ <td>@ref LVNV_DNNS_NOISEGAINMINN_MIN (0)</td>
+ <td>@ref LVNV_DNNS_NOISEGAINMINN_DEFAULT (6554)</td>
+ <td>@ref LVNV_DNNS_NOISEGAINMINN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_NoiseGainMinN; ///< Maximum non-stationary noise suppression.
+
+ /**
+ Bias compensation factor for stationary noise estimation.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>2.13</td>
+ <td>@ref LVNV_DNNS_NOISEBIASCOMP_MIN (0)</td>
+ <td>@ref LVNV_DNNS_NOISEBIASCOMP_DEFAULT (9830)</td>
+ <td>@ref LVNV_DNNS_NOISEBIASCOMP_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_NoiseBiasComp; ///< Bias compensation factor.
+
+ /**
+ Echo oversubtraction factor applied to the estimated non-stationary noise
+ floor.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>3.12</td>
+ <td>@ref LVNV_DNNS_GAINETA_MIN (0)</td>
+ <td>@ref LVNV_DNNS_GAINETA_DEFAULT (256)</td>
+ <td>@ref LVNV_DNNS_GAINETA_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_GainEta; ///< Echo oversubtraction factor.
+
+ /**
+ Detection threshold for microphone activity.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>3.12</td>
+ <td>@ref LVNV_DNNS_ACTHRESHOLD_MIN (0)</td>
+ <td>@ref LVNV_DNNS_ACTHRESHOLD_DEFAULT (12288)</td>
+ <td>@ref LVNV_DNNS_ACTHRESHOLD_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_AcThreshold; ///< Activity threshold.
+
+ /**
+ Detection threshold for activity within the beam of FSB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>3.12</td>
+ <td>@ref LVNV_DNNS_WBTHRESHOLD_MIN (0)</td>
+ <td>@ref LVNV_DNNS_WBTHRESHOLD_DEFAULT (9216)</td>
+ <td>@ref LVNV_DNNS_WBTHRESHOLD_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_WbThreshold; ///< WithinBeam threshold.
+
+ /**
+ Detection threshold for lost beam where the nearend speaker is speaking outside
+ the beam of the FSB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>9.6</td>
+ <td>@ref LVNV_DNNS_LOSTBEAMTHRESHOLD_MIN (0)</td>
+ <td>@ref LVNV_DNNS_LOSTBEAMTHRESHOLD_DEFAULT (320)</td>
+ <td>@ref LVNV_DNNS_LOSTBEAMTHRESHOLD_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DNNS_LostBeamThreshold; ///< Lost beam threshold.
+
+ /**
+ Smoothing factor applied to get a smoothed value of the inter-channel
+ correlation.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>9.6</td>
+ <td>@ref LVNV_PCD_BETA_MIN (0)</td>
+ <td>@ref LVNV_PCD_BETA_DEFAULT (230)</td>
+ <td>@ref LVNV_PCD_BETA_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 PCD_beta; ///< ICC smoothing factor.
+
+ /**
+ Detection threshold for broadside when the nearend speaker is not in end-fire
+ position with respect to the microphone configuration.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>9.6</td>
+ <td>@ref LVNV_PCD_THRESHOLD_MIN (0)</td>
+ <td>@ref LVNV_PCD_THRESHOLD_DEFAULT (26213)</td>
+ <td>@ref LVNV_PCD_THRESHOLD_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 PCD_Threshold; ///< Broadside detection threshold.
+
+} LVNV_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVHF_SetControlParameters function but they
+* will not take effect until the next call to the LVHF_Process function.
+*
+* @see LVHF_SetControlParameters
+* @see LVHF_Process
+*/
+typedef struct
+{
+ /**
+ */
+ LVM_Mode_en OperatingMode; ///< Operating Mode
+
+ /**
+ The mode word to enable/disable internal algorithm blocks of HandsFree
+ */
+ LVHF_ModeWord_bm Mode; ///< Mode Word
+
+ /**
+ The tuning mode is used to enable/disable internal algorithm tuning
+ capabilities in the different blocks of HandsFree. Only one bit allowed to be
+ enabled at a time.
+ */
+ LVHF_TuningModeWord TuningMode; ///< Tuning Mode
+
+ /**
+ Gain applied at the Tx input of LVHF. Used to scale the microphone signal in
+ order to give the NLMS filter headroom for correct operation.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>2.13</td>
+ <td>@ref LVHF_INPUTGAIN_MIN (0)</td>
+ <td>@ref LVHF_INPUTGAIN_DEFAULT (8192)</td>
+ <td>@ref LVHF_INPUTGAIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 InputGain; ///< Input Gain
+
+ /**
+ Gain applied at the Tx output of LVHF. Compensates the applied InputGain in
+ order to preserve the overall Tx gain.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>4.11</td>
+ <td>@ref LVHF_OUTPUTGAIN_MIN (0)</td>
+ <td>@ref LVHF_OUTPUTGAIN_DEFAULT (2048)</td>
+ <td>@ref LVHF_OUTPUTGAIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 OutputGain; ///< Output Gain
+
+ /**
+ Limit the NLMS reference signal. Value in dB Full Scale.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVHF_NLMS_LIMIT_MIN (-24)</td>
+ <td>@ref LVHF_NLMS_LIMIT_DEFAULT (0)</td>
+ <td>@ref LVHF_NLMS_LIMIT_MAX (0)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS_limit; ///< Limit the NLMS reference signal.
+
+ /**
+ Length of the low-band (0-4kHz) adaptive echo cancellation filter. The Length
+ should be chosen such that most of the energy of the impulse response is
+ covered by the filter. The length should be a multiple of 8.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVHF_NLMS_LB_TAPS_MIN (16)</td>
+ <td>@ref LVHF_NLMS_LB_TAPS_DEFAULT (64)</td>
+ <td>@ref LVHF_NLMS_LB_TAPS_MAX (200)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 NLMS_LB_taps; ///< Number of taps for LB NLMS.
+
+ /**
+ Step size for the update of the low-band (0-4kHz) adaptive filter coefficients.
+ It is recommended not to change the default value.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_NLMS_LB_TWO_ALPHA_MIN (0)</td>
+ <td>@ref LVHF_NLMS_LB_TWO_ALPHA_DEFAULT (8192)</td>
+ <td>@ref LVHF_NLMS_LB_TWO_ALPHA_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS_LB_two_alpha; ///< Step Size of LB NLMS
+
+ /**
+ Adaptive step size control for the low-band (0-4kHz) adaptive echo cancellation
+ filter. This parameter is used to slow down the update speed of the adaptive
+ filter during double talk situations.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>9.6</td>
+ <td>@ref LVHF_NLMS_LB_ERL_MIN (64)</td>
+ <td>@ref LVHF_NLMS_LB_ERL_DEFAULT (128)</td>
+ <td>@ref LVHF_NLMS_LB_ERL_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS_LB_erl; ///< ERL of LB NLMS
+
+ /**
+ Length of the high-band (4-8kHz) adaptive echo cancellation filter. The Length
+ should be chosen such that most of the energy of the impulse response is
+ covered by the filter. The length should be a multiple of 8. In case of
+ narrowband processing, this parameter has no effect.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVHF_NLMS_HB_TAPS_MIN (16)</td>
+ <td>@ref LVHF_NLMS_HB_TAPS_DEFAULT (64)</td>
+ <td>@ref LVHF_NLMS_HB_TAPS_MAX (136)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 NLMS_HB_taps; ///< Number of taps for HB NLMS.
+
+ /**
+ Step size for the update of the high-band (4-8kHz) adaptive filter
+ coefficients. It is recommended not to change the default value. In case of
+ narrowband processing, this parameter has no effect.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_NLMS_HB_TWO_ALPHA_MIN (0)</td>
+ <td>@ref LVHF_NLMS_HB_TWO_ALPHA_DEFAULT (8192)</td>
+ <td>@ref LVHF_NLMS_HB_TWO_ALPHA_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS_HB_two_alpha; ///< Step Size of HB NLMS
+
+ /**
+ Adaptive step size control for the high-band (4-8kHz) adaptive echo
+ cancellation filter. This parameter is used to slow down the update speed of
+ the adaptive filter during double talk situations. In case of narrowband
+ processing, this parameter has no effect.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>9.6</td>
+ <td>@ref LVHF_NLMS_HB_ERL_MIN (64)</td>
+ <td>@ref LVHF_NLMS_HB_ERL_DEFAULT (128)</td>
+ <td>@ref LVHF_NLMS_HB_ERL_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS_HB_erl; ///< ERL of HB NLMS
+
+ /**
+ Indicates whether a preset of adaptive filter coefficients should be done. <br>
+ 0 = No preset (Coefficients as they are)<br>
+ 1= Preset with internally calculated coefficients.<br>
+ 2= Preset with zero coefficients.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVHF_NLMS_PRESET_COEFS_MIN (0)</td>
+ <td>@ref LVHF_NLMS_PRESET_COEFS_DEFAULT (1)</td>
+ <td>@ref LVHF_NLMS_PRESET_COEFS_MAX (2)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS_preset_coefs; ///< Coefficient preset.
+
+ /**
+ Offset added to the normalization of the adaptation of the filter.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_NLMS_OFFSET_MIN (0)</td>
+ <td>@ref LVHF_NLMS_OFFSET_DEFAULT (767)</td>
+ <td>@ref LVHF_NLMS_OFFSET_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 NLMS_offset; ///< NLMS offset
+
+ /**
+ Parameter related to the reverberation of the acoustic environment. It
+ represents the decay in time of the energy of the echo tail of the impulse
+ response for the LB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_DENS_TAIL_ALPHA_LB_MIN (0)</td>
+ <td>@ref LVHF_DENS_TAIL_ALPHA_LB_DEFAULT (25395)</td>
+ <td>@ref LVHF_DENS_TAIL_ALPHA_LB_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_tail_alpha_LB;
+ /**
+ Parameter related to the portion of the echo tail that has to be extrapolated
+ in time for LB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_DENS_TAIL_PORTION_LB_MIN (0)</td>
+ <td>@ref LVHF_DENS_TAIL_PORTION_LB_DEFAULT (29491)</td>
+ <td>@ref LVHF_DENS_TAIL_PORTION_LB_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_tail_portion_LB;
+ /**
+ Echo subtraction factor applied during farend-only for the LB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>7.8</td>
+ <td>@ref LVHF_DENS_GAMMA_E_HIGH_LB_MIN (0)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_HIGH_LB_DEFAULT (512)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_HIGH_LB_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_gamma_e_high_LB; ///< FE Echo subtraction LB
+
+ /**
+ Echo subtraction factor applied during double talk for the LB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>7.8</td>
+ <td>@ref LVHF_DENS_GAMMA_E_DT_LB_MIN (0)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_DT_LB_DEFAULT (256)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_DT_LB_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_gamma_e_dt_LB; ///< DT Echo subtraction factor LB
+
+ /**
+ Echo subtraction factor applied during nearend-only for the LB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>7.8</td>
+ <td>@ref LVHF_DENS_GAMMA_E_LOW_LB_MIN (0)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_LOW_LB_DEFAULT (256)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_LOW_LB_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_gamma_e_low_LB; ///< NE Echo subtraction factor LB
+
+ /**
+ The amount of extra non-linear suppression relative to the maximum linear echo
+ suppression for the LB. The use of these non-linear echo suppression mechanisms
+ should be avoided as much as possible since it affects the double talk
+ performance.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>4.11</td>
+ <td>@ref LVHF_DENS_NL_ATTEN_LB_MIN (0)</td>
+ <td>@ref LVHF_DENS_NL_ATTEN_LB_DEFAULT (0)</td>
+ <td>@ref LVHF_DENS_NL_ATTEN_LB_MAX (2048)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_NL_atten_LB; ///< LB Non linear attenuation
+
+ /**
+ Parameter related to the reverberation of the acoustic environment. It
+ represents the decay in time of the energy of the echo tail of the impulse
+ response for the HB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_DENS_TAIL_ALPHA_HB_MIN (0)</td>
+ <td>@ref LVHF_DENS_TAIL_ALPHA_HB_DEFAULT (25395)</td>
+ <td>@ref LVHF_DENS_TAIL_ALPHA_HB_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_tail_alpha_HB;
+ /**
+ Parameter related to the portion of the echo tail that has to be extrapolated
+ in time for HB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_DENS_TAIL_PORTION_HB_MIN (0)</td>
+ <td>@ref LVHF_DENS_TAIL_PORTION_HB_DEFAULT (29491)</td>
+ <td>@ref LVHF_DENS_TAIL_PORTION_HB_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_tail_portion_HB;
+ /**
+ Echo subtraction factor applied during farend-only for the HB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>7.8</td>
+ <td>@ref LVHF_DENS_GAMMA_E_HIGH_HB_MIN (0)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_HIGH_HB_DEFAULT (512)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_HIGH_HB_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_gamma_e_high_HB; ///< FE Echo subtraction HB
+
+ /**
+ Echo subtraction factor applied during double talk for the HB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>7.8</td>
+ <td>@ref LVHF_DENS_GAMMA_E_DT_HB_MIN (0)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_DT_HB_DEFAULT (256)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_DT_HB_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_gamma_e_dt_HB; ///< DT Echo subtraction factor HB
+
+ /**
+ Echo subtraction factor applied during nearend-only for the HB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>7.8</td>
+ <td>@ref LVHF_DENS_GAMMA_E_LOW_HB_MIN (0)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_LOW_HB_DEFAULT (256)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_LOW_HB_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_gamma_e_low_HB; ///< NE Echo subtraction factor HB
+
+ /**
+ The amount of extra non-linear suppression relative to the maximum linear echo
+ suppression. for the HB. The use of these non-linear echo suppression
+ mechanisms should be avoided as much as possible since it affects the double
+ talk performance.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>4.11</td>
+ <td>@ref LVHF_DENS_NL_ATTEN_HB_MIN (0)</td>
+ <td>@ref LVHF_DENS_NL_ATTEN_HB_DEFAULT (0)</td>
+ <td>@ref LVHF_DENS_NL_ATTEN_HB_MAX (2048)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_NL_atten_HB; ///< NE Echo subtraction factor HB
+
+ /**
+ Smoothing factor applied when switching between gamma_e values.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_DENS_GAMMA_E_ALPHA_MIN (0)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_ALPHA_DEFAULT (24000)</td>
+ <td>@ref LVHF_DENS_GAMMA_E_ALPHA_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_gamma_e_alpha; ///< Smoothing factor for gamma_e
+
+ /**
+ Gain factor for Noise subtraction.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>7.8</td>
+ <td>@ref LVHF_DENS_GAMMA_N_MIN (0)</td>
+ <td>@ref LVHF_DENS_GAMMA_N_DEFAULT (280)</td>
+ <td>@ref LVHF_DENS_GAMMA_N_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_gamma_n; ///< Gain factor
+
+ /**
+ Threshold for nearend activity detection.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>7.8</td>
+ <td>@ref LVHF_DENS_SPDET_NEAR_MIN (0)</td>
+ <td>@ref LVHF_DENS_SPDET_NEAR_DEFAULT (512)</td>
+ <td>@ref LVHF_DENS_SPDET_NEAR_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_spdet_near;
+ /**
+ Threshold for microphone activity detection.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>7.8</td>
+ <td>@ref LVHF_DENS_SPDET_ACT_MIN (0)</td>
+ <td>@ref LVHF_DENS_SPDET_ACT_DEFAULT (768)</td>
+ <td>@ref LVHF_DENS_SPDET_ACT_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_spdet_act;
+ /**
+ The maximum amount of noise suppression. <br>
+ DENS_limit_ns = \f$32767*10^{-MaxNoiseReduction[dB]/20}\f$
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_DENS_LIMIT_NS_MIN (0)</td>
+ <td>@ref LVHF_DENS_LIMIT_NS_DEFAULT (10361)</td>
+ <td>@ref LVHF_DENS_LIMIT_NS_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_limit_ns; ///< Maximum noise suppression.
+
+ /**
+ The amount of comfort noise insertion.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>1.14</td>
+ <td>@ref LVHF_DENS_CNI_GAIN_MIN (0)</td>
+ <td>@ref LVHF_DENS_CNI_GAIN_DEFAULT (16384)</td>
+ <td>@ref LVHF_DENS_CNI_GAIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_CNI_Gain; ///< CNI gain
+
+ /**
+ The window length (expressed in integer multiples of 10ms) for the estimation
+ of the noise components. It is recommended to keep this parameter at its
+ default value.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_DENS_NFE_BLOCKSIZE_MIN (0)</td>
+ <td>@ref LVHF_DENS_NFE_BLOCKSIZE_DEFAULT (150)</td>
+ <td>@ref LVHF_DENS_NFE_BLOCKSIZE_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 DENS_NFE_blocksize; ///< NFE blocksize
+
+ /**
+ Threshold for farend activity detection.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_SPDET_FAR_MIN (0)</td>
+ <td>@ref LVHF_SPDET_FAR_DEFAULT (16384)</td>
+ <td>@ref LVHF_SPDET_FAR_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 SPDET_far;
+ /**
+ Threshold for microphone activity detection.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_SPDET_MIC_MIN (0)</td>
+ <td>@ref LVHF_SPDET_MIC_DEFAULT (16384)</td>
+ <td>@ref LVHF_SPDET_MIC_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 SPDET_mic;
+ /**
+ Threshold to activate the non-linear echo-suppression.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_SPDET_X_CLIP_MIN (0)</td>
+ <td>@ref LVHF_SPDET_X_CLIP_DEFAULT (0)</td>
+ <td>@ref LVHF_SPDET_X_CLIP_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 SPDET_x_clip;
+ /**
+ Threshold to detect acoustical path changes.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>0.15</td>
+ <td>@ref LVHF_PCD_THRESHOLD_MIN (0)</td>
+ <td>@ref LVHF_PCD_THRESHOLD_DEFAULT (20000)</td>
+ <td>@ref LVHF_PCD_THRESHOLD_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 PCD_threshold; ///< PCD threshold
+
+ /**
+ Length of the background adaptive filter. The length should be chosen such that
+ only the main peak of the impulse response is covered by the filter. The length
+ should be a multiple of 8.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVHF_PCD_TAPS_MIN (16)</td>
+ <td>@ref LVHF_PCD_TAPS_DEFAULT (16)</td>
+ <td>@ref LVHF_PCD_TAPS_MAX (64)</td>
+ </tr>
+ </table> */
+ LVM_INT16 PCD_taps; ///< Number of taps of background NLMS.
+
+ /**
+ Adaptive step size control for the background adaptive filter.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>9.6</td>
+ <td>@ref LVHF_PCD_ERL_MIN (64)</td>
+ <td>@ref LVHF_PCD_ERL_DEFAULT (64)</td>
+ <td>@ref LVHF_PCD_ERL_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 PCD_erl; ///< Step size of background NLMS.
+
+ /**
+ If a path change is detected, NLMS_erl of the NLMS is set to this value, to
+ ensure a fast adapting filter.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>9.6</td>
+ <td>@ref LVHF_PCD_MINIMUM_ERL_MIN (64)</td>
+ <td>@ref LVHF_PCD_MINIMUM_ERL_DEFAULT (64)</td>
+ <td>@ref LVHF_PCD_MINIMUM_ERL_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 PCD_minimum_erl; ///< Step size of NLMS after PCD.
+
+ /**
+ After a path change the NLMS_erl of the NLMS increases back to the nominal
+ value. The speed to increase can be controlled by this parameter.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>1.14</td>
+ <td>@ref LVHF_PCD_ERL_STEP_MIN (16384)</td>
+ <td>@ref LVHF_PCD_ERL_STEP_DEFAULT (16800)</td>
+ <td>@ref LVHF_PCD_ERL_STEP_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 PCD_erl_step; ///< Step of ERL increase after PCD.
+
+ /**
+ Gain factor applied to the echo subtraction during acoustical path change.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>7.8</td>
+ <td>@ref LVHF_PCD_GAMMA_E_RESCUE_MIN (0)</td>
+ <td>@ref LVHF_PCD_GAMMA_E_RESCUE_DEFAULT (5000)</td>
+ <td>@ref LVHF_PCD_GAMMA_E_RESCUE_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 PCD_gamma_e_rescue; ///< gamma_e after PCD
+
+} LVHF_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVBD_SetControlParameters function but they
+* will not take effect until the next call to the LVBD_Process function.
+*
+* @see LVBD_SetControlParameters
+* @see LVBD_Process
+*/
+typedef struct
+{
+ /**
+ Set Bulk Delay operating mode on/off.
+ */
+ LVM_Mode_en BD_OperatingMode; ///< Set Bulk Delay operating mode on/off
+
+ /**
+ This parameter compensates for the fixed delay in the echo path and can be
+ measured in advance. This delay is caused by the audio I/O buffering, AD/DA
+ converter and propagation time between the loudspeaker and microphone. The unit
+ of 'BulkDelay' is [number of samples] at the respective sampling rate.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVBD_BULKDELAY_MIN (0)</td>
+ <td>@ref LVBD_BULKDELAY_DEFAULT (0)</td>
+ <td>@ref LVBD_BULKDELAY_MAX (6400)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 BulkDelay; ///< Sets Bulk Delay
+
+ /**
+ This param sets the gain for the Echo reference signal. Value 8192 belong to
+ 0dB
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>2.13</td>
+ <td>@ref LVBD_BD_GAIN_MIN (0)</td>
+ <td>@ref LVBD_BD_GAIN_DEFAULT (8192)</td>
+ <td>@ref LVBD_BD_GAIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 BD_Gain; ///< Apply Gain to Echo reference signal
+
+} LVBD_ControlParams_st;
+
+/**
+* The control parameters are used to control the overall module behavior. These parameters may
+* be changed at any time during processing using the LVVE_Tx_SetControlParameters function but they
+* will not take effect until the next call to the LVVE_Tx_Process function.
+*
+* @see LVVE_Tx_SetControlParameters
+* @see LVVE_Tx_Process
+*/
+typedef struct
+{
+ /**
+ This enumerated type is used to set the operating mode of the Tx path. The
+ processing can be separately set to enable all processing modules (i.e., ON),
+ to disable all processing modules (i.e., OFF) or to bypass all processing
+ modules (i.e., BYPASS). When bypassed, all processing modules keep on running,
+ but their output is not used. When bypassing the Tx processing, the user can
+ select which buffer should be copied to the output buffer, if required: @li
+ Input microphone signal (or secondary microphone signal in case of
+ two-microphone setups); @li Rx reference signal; These operations ensure that
+ the input data is correctly transferred to the output buffer for all
+ combinations of input and output buffer types and input format. When OFF, the
+ input is copied to the output and the LVVE can be provided with invalid
+ parameters for modules. The sub module functions are not executed in this
+ scenario. Their combined functionality is summarized in follwoing table. <br>
+ <div align="center"> <table cellspacing="1" cellpadding="4" border="3">
+ <caption>LVVE Tx operating mode in combination with LVVE microphone routing
+ mode</caption> <tr> <th></th> <th colspan="2">MICROUTING_MODE_DEFAULT</th> <th
+ colspan="2">MICROUTING_MODE_SWAPPED</th> </tr> <tr> <th width="70"></th> <th
+ width="70">Process</th> <th width="70">Output</th> <th width="70">Process</th>
+ <th width="70">Output</th> </tr> <tr align="left"> <td>LVVE_TX_MODE_OFF</td>
+ <td>None</td> <td>Tx input 0</td> <td>None</td> <td>Tx input 1</td> </tr> <tr
+ align="left"> <td>LVVE_TX_MODE_ON</td> <td>Tx input 0</td> <td>Tx output</td>
+ <td>Tx input 1</td> <td>Tx output</td> </tr> <tr align="left">
+ <td>LVVE_TX_MODE_BYPASS_MIC0</td> <td>Tx input 0</td> <td>Tx input 0</td>
+ <td>Tx input 1</td> <td>Tx input 1</td> </tr> <tr align="left">
+ <td>LVVE_TX_MODE_BYPASS_MIC1</td> <td>Tx input 0</td> <td>Tx input 1</td>
+ <td>Tx input 1</td> <td>Tx input 0</td> </tr> <tr align="left">
+ <td>LVVE_TX_MODE_BYPASS_REF</td> <td>Tx input 0</td> <td>Tx ref input</td>
+ <td>Tx input 1</td> <td>Tx ref input</td> </tr> </table> </div>
+ */
+ LVVE_Tx_Mode_en OperatingMode; ///< TX Operating mode
+
+ /**
+ This param can mute unmute the Rx/Tx engine output.
+ */
+ LVM_Mode_en Mute; ///< This param can mute unmute the Rx/Tx engine output
+
+ /**
+ Set Bulk Delay operating mode on/off.
+ */
+ LVM_Mode_en BD_OperatingMode; ///< Set Bulk Delay operating mode on/off
+
+ /**
+ This parameter compensates for the fixed delay in the echo path and can be
+ measured in advance. This delay is caused by the audio I/O buffering, AD/DA
+ converter and propagation time between the loudspeaker and microphone. The unit
+ of 'BulkDelay' is [number of samples] at the respective sampling rate.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVVE_TX_BULKDELAY_MIN (0)</td>
+ <td>@ref LVVE_TX_BULKDELAY_DEFAULT (0)</td>
+ <td>@ref LVVE_TX_BULKDELAY_MAX (6400)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 BulkDelay; ///< Sets Bulk Delay
+
+ /**
+ This param sets the gain for the Echo reference signal. Value 8192 belong to
+ 0dB
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>2.13</td>
+ <td>@ref LVVE_TX_BD_GAIN_MIN (0)</td>
+ <td>@ref LVVE_TX_BD_GAIN_DEFAULT (8192)</td>
+ <td>@ref LVVE_TX_BD_GAIN_MAX (32767)</td>
+ </tr>
+ </table> */
+ LVM_INT16 BD_Gain; ///< Apply Gain to Echo reference signal
+
+ /**
+ Turns on/off VOL_Gain.
+ */
+ LVM_Mode_en VOL_OperatingMode; ///< Turns on/off VOL_Gain
+
+ /**
+ The volume control gain can be used to set the overall volume level of the
+ signal. The gain is set in dB with steps of 1dB.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>15.0</td>
+ <td>@ref LVVE_TX_VOL_GAIN_MIN (-96)</td>
+ <td>@ref LVVE_TX_VOL_GAIN_DEFAULT (0)</td>
+ <td>@ref LVVE_TX_VOL_GAIN_MAX (24)</td>
+ </tr>
+ </table> */
+ LVM_INT16 VOL_Gain; ///< Apply Gain to Input signal
+
+ /**
+ Turns on/off High Pass filter.
+ */
+ LVM_Mode_en HPF_OperatingMode; ///< Turns on/off High Pass filter
+
+ /**
+ Sets the 3dB corner frequency of the high-pass filter. In case NoiseVoid is
+ enabled, the same high-pass filter will be applied to the second microphone
+ channel.
+ <table border>
+ <tr>
+ <td><b>Q-format</b></td>
+ <td><b>Min</b></td>
+ <td><b>Default</b></td>
+ <td><b>Max</b></td>
+ </tr>
+ <tr>
+ <td>16.0</td>
+ <td>@ref LVVE_TX_MIC_HPF_CORNERFREQ_MIN (50)</td>
+ <td>@ref LVVE_TX_MIC_HPF_CORNERFREQ_DEFAULT (50)</td>
+ <td>@ref LVVE_TX_MIC_HPF_CORNERFREQ_MAX (1500)</td>
+ </tr>
+ </table> */
+ LVM_UINT16 MIC_HPF_CornerFreq; ///< High Pass Filter Corner Frequency in Hz
+
+ /**
+ HandsFree Control Parameter Strcuture.
+ */
+ LVHF_ControlParams_st HF_ControlParams; ///< HandsFree Control Parameter Structure
+
+ /**
+ NoiseVoid Control Parameter Structure.
+ */
+ LVNV_ControlParams_st NV_ControlParams; ///< NoiseVoid Control Parameter Structure
+
+ /**
+ Equalizer Operating mode.
+ */
+ LVM_Mode_en EQ_OperatingMode; ///< Equalizer Operating mode
+
+ /**
+ Equalizer Control Parameter Structure.
+ */
+ LVEQ_ControlParams_st EQ_ControlParams; ///< Equalizer Control Parameters Structure
+
+ /**
+ DRC Control Parameter Structure.
+ */
+ LVDRC_ControlParams_st DRC_ControlParams; ///< DRC Control Parameter Structure
+
+} LVVE_Tx_ControlParams_st;
+
+//adb by xuxinqiang 20150519
+#define LVVE_MAX_EQ_LENGTH_NB 32 /* Maximum equaliser length for narrowband configuration */
+#define LVVE_MAX_EQ_LENGTH_WB 64 /* Maximum equaliser length for wideband configuration */
+/*[Begin] [lvwenhua-2013/10/21]*/
+typedef struct
+{
+ LVM_INT16 EqCoefs[LVVE_MAX_EQ_LENGTH_NB];
+} LVEQ_Coefs_st;
+/*[End] [lvwenhua-2013/10/21]*/
+/*[Begin] [lvwenhua-2012/3/12]*/
+#define LVVC_VOLUME_NUM 12
+
+typedef struct
+{
+ LVM_INT16 NoiseSensitivity[LVVC_VOLUME_NUM];
+} LVVC_NoiseSens_st;
+/*[End] [lvwenhua-2012/3/12]*/
+
+/*[Begin] [lvwenhua-2011/8/23]*/
+typedef struct
+{
+ LVVE_Tx_ControlParams_st Tx_ControlParams;
+ LVVE_Rx_ControlParams_st Rx_ControlParams;
+ LVEQ_Coefs_st TxEqCoefs;
+ LVEQ_Coefs_st RxEqCoefs;
+ /*[Begin] [lvwenhua-2012/3/12]*/
+ LVVC_NoiseSens_st RxVcNoiseSens;
+ /*[End] [lvwenhua-2012/3/12]*/
+} LVVE_ControlParams_st;
+typedef struct
+{
+ LVM_UINT32 isVpParamInNv;
+ LVVE_ControlParams_st Handset_ControlParams;
+ LVVE_ControlParams_st Handsfree_ControlParams;
+ LVVE_ControlParams_st Headset_ControlParams;
+ LVVE_ControlParams_st Bluetooth_ControlParams;
+} LVVE_ControlParams_All_st;
+/*[End] [lvwenhua-2011/8/23]*/
+
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __REL_LVVE_HF_NV1_VC_AGC_RX_DRC_RX_VIDPP_H__ */
+
+/* End of file */
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/uclinux/PARAM_Default.h b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/uclinux/PARAM_Default.h
new file mode 100755
index 0000000..0153e82
--- /dev/null
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/uclinux/PARAM_Default.h
@@ -0,0 +1,178 @@
+static LVM_CHAR LVVE_Tx_Preset_Buffer_Voice_Tool[] ={
+0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xB5, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00,
+0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x11, 0x00, 0x00, 0x00,
+0x20, 0x00, 0x08, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x80, 0x00, 0x40, 0x00, 0x00, 0x20, 0x80,
+0x00, 0x01, 0x00, 0xFF, 0x02, 0x33, 0x63, 0x33, 0x73, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x00, 0x33, 0x63, 0x33, 0x73, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0xC0, 0x5D, 0x18,
+0x01, 0x00, 0x02, 0x00, 0x03, 0x79, 0x28, 0x00, 0x40, 0x96, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00,
+0x00, 0x20, 0x4E, 0x10, 0x00, 0x40, 0x00, 0x40, 0x00, 0xA0, 0x41, 0x88, 0x13, 0x00, 0x00, 0x00,
+0x00, 0xF7, 0x49, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x08, 0x20, 0x00, 0x00,
+0x20, 0xE8, 0x03, 0x18, 0x00, 0x00, 0x20, 0xE8, 0x03, 0x00, 0x00, 0x08, 0x03, 0x20, 0x00, 0x00,
+0x20, 0xE8, 0x03, 0x18, 0x00, 0x00, 0x20, 0xE8, 0x03, 0x00, 0x00, 0x08, 0x03, 0x96, 0x00, 0xFF,
+0x7F, 0x9A, 0x19, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x10, 0x00, 0x8F, 0x02, 0x00, 0x04, 0x10, 0x00, 0x66, 0x06, 0x00, 0x01, 0x66,
+0x06, 0x00, 0x40, 0x00, 0x20, 0xE0, 0x2E, 0x58, 0x1B, 0x00, 0x01, 0xCE, 0x2C, 0x00, 0x40, 0x84,
+0x2B, 0x9A, 0x19, 0x66, 0x26, 0x00, 0x01, 0x00, 0x30, 0x00, 0x24, 0x40, 0x01, 0xE6, 0x00, 0x65,
+0x66, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xA0, 0xFF, 0xBA,
+0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA, 0xFF, 0xF4, 0xFF, 0x00,
+0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+static LVM_CHAR LVVE_Rx_Preset_Buffer_Voice_Tool []={
+0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xB5, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x2A, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06,
+0x05, 0x20, 0x4E, 0x00, 0x40, 0x00, 0x01, 0x00, 0x20, 0x00, 0x02, 0x17, 0x2F, 0x5C, 0x7F, 0xB9,
+0x7E, 0x82, 0x5A, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
+0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA,
+0xFF, 0xF4, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x40, 0x80, 0x00, 0xFD,
+0x1F, 0xB0, 0x63, 0xAD, 0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xB0,
+0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xB0, 0xFF, 0xCE, 0xFF, 0xE8,
+0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00,
+0xB5, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0xE0, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x05, 0x20, 0x4E, 0x00, 0x40, 0x00, 0x01, 0x00, 0x20,
+0x00, 0x02, 0x17, 0x2F, 0x5C, 0x7F, 0xB9, 0x7E, 0x82, 0x5A, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
+0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF,
+0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA, 0xFF, 0xF4, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x07, 0x00, 0x00, 0x40, 0x80, 0x00, 0xFD, 0x1F, 0xB0, 0x63, 0xAD, 0x7F, 0x9D, 0x5A, 0x00, 0x24,
+0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xB0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00,
+0xA0, 0xFF, 0xB0, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x03, 0x00,
+0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xB5, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x2A, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x05, 0x20,
+0x4E, 0x00, 0x40, 0x00, 0x01, 0x00, 0x20, 0x00, 0x02, 0x17, 0x2F, 0x5C, 0x7F, 0xB9, 0x7E, 0x82,
+0x5A, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xA0,
+0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA, 0xFF, 0xF4,
+0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x40, 0x80, 0x00, 0xFD, 0x1F, 0xB0,
+0x63, 0xAD, 0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xB0, 0xFF, 0xBA,
+0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xB0, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00,
+0x00, 0x32, 0x00, 0x32, 0x00, 0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xB5, 0x02,
+0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x06,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0xE0, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x06, 0x05, 0x20, 0x4E, 0x00, 0x40, 0x00, 0x01, 0x00, 0x20, 0x00, 0x02,
+0x17, 0x2F, 0x5C, 0x7F, 0xB9, 0x7E, 0x82, 0x5A, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00,
+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00,
+0xA0, 0xFF, 0xBA, 0xFF, 0xDA, 0xFF, 0xF4, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00,
+0x00, 0x40, 0x80, 0x00, 0xFD, 0x1F, 0xB0, 0x63, 0xAD, 0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00,
+0x00, 0x00, 0x05, 0x00, 0xB0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF,
+0xB0, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x03, 0x00, 0x09, 0x18,
+0x03, 0xD5, 0x07, 0x00, 0x00, 0xB5, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x05, 0x20, 0x4E, 0x00,
+0x40, 0x00, 0x01, 0x00, 0x20, 0x00, 0x02, 0x17, 0x2F, 0x5C, 0x7F, 0xB9, 0x7E, 0x82, 0x5A, 0x00,
+0x04, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xA0, 0xFF, 0xBA,
+0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA, 0xFF, 0xF4, 0xFF, 0x00,
+0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x40, 0x80, 0x00, 0xFD, 0x1F, 0xB0, 0x63, 0xAD,
+0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xB0, 0xFF, 0xBA, 0xFF, 0xCE,
+0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xB0, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0x32,
+0x00, 0x32, 0x00, 0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xB5, 0x02, 0x00, 0x00,
+0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x06, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0xE0, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x06, 0x05, 0x20, 0x4E, 0x00, 0x40, 0x00, 0x01, 0x00, 0x20, 0x00, 0x02, 0x17, 0x2F,
+0x5C, 0x7F, 0xB9, 0x7E, 0x82, 0x5A, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x05, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF,
+0xBA, 0xFF, 0xDA, 0xFF, 0xF4, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x40,
+0x80, 0x00, 0xFD, 0x1F, 0xB0, 0x63, 0xAD, 0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00,
+0x05, 0x00, 0xB0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xB0, 0xFF,
+0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00
+};
+const static LVM_CHAR LVVE_Tx_Mute_File_Buffer[] ={
+0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xB5, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00,
+0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x11, 0x00, 0x00, 0x00,
+0x20, 0x00, 0x08, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x80, 0x00, 0x40, 0x00, 0x00, 0x20, 0x80,
+0x00, 0x01, 0x00, 0xFF, 0x02, 0x33, 0x63, 0x33, 0x73, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x00, 0x33, 0x63, 0x33, 0x73, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0xC0, 0x5D, 0x18,
+0x01, 0x00, 0x02, 0x00, 0x03, 0x79, 0x28, 0x00, 0x40, 0x96, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00,
+0x00, 0x20, 0x4E, 0x10, 0x00, 0x40, 0x00, 0x40, 0x00, 0xA0, 0x41, 0x88, 0x13, 0x00, 0x00, 0x00,
+0x00, 0xF7, 0x49, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x08, 0x20, 0x00, 0x00,
+0x20, 0xE8, 0x03, 0x18, 0x00, 0x00, 0x20, 0xE8, 0x03, 0x00, 0x00, 0x08, 0x03, 0x20, 0x00, 0x00,
+0x20, 0xE8, 0x03, 0x18, 0x00, 0x00, 0x20, 0xE8, 0x03, 0x00, 0x00, 0x08, 0x03, 0x96, 0x00, 0xFF,
+0x7F, 0x9A, 0x19, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x10, 0x00, 0x8F, 0x02, 0x00, 0x04, 0x10, 0x00, 0x66, 0x06, 0x00, 0x01, 0x66,
+0x06, 0x00, 0x40, 0x00, 0x20, 0xE0, 0x2E, 0x58, 0x1B, 0x00, 0x01, 0xCE, 0x2C, 0x00, 0x40, 0x84,
+0x2B, 0x9A, 0x19, 0x66, 0x26, 0x00, 0x01, 0x00, 0x30, 0x00, 0x24, 0x40, 0x01, 0xE6, 0x00, 0x65,
+0x66, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xA0, 0xFF, 0xBA,
+0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA, 0xFF, 0xF4, 0xFF, 0x00,
+0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+const static LVM_CHAR LVVE_Tx_Wb_Mute_File_Buffer[] ={
+0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xBD, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00,
+0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x11, 0x00, 0x00, 0x00,
+0x20, 0x00, 0x08, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x80, 0x00, 0x40, 0x00, 0x00, 0x20, 0x80,
+0x00, 0x01, 0x00, 0xFF, 0x02, 0x33, 0x63, 0x33, 0x73, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x00, 0x33, 0x63, 0x33, 0x73, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0xC0, 0x5D, 0x18,
+0x01, 0x00, 0x02, 0x00, 0x03, 0x79, 0x28, 0x00, 0x40, 0x96, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00,
+0x00, 0x20, 0x4E, 0x10, 0x00, 0x40, 0x00, 0x40, 0x00, 0xA0, 0x41, 0x88, 0x13, 0x00, 0x00, 0x00,
+0x00, 0xF7, 0x49, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x08, 0x20, 0x00, 0x00,
+0x20, 0xE8, 0x03, 0x18, 0x00, 0x00, 0x20, 0xE8, 0x03, 0x00, 0x00, 0x08, 0x03, 0x20, 0x00, 0x00,
+0x20, 0xE8, 0x03, 0x18, 0x00, 0x00, 0x20, 0xE8, 0x03, 0x00, 0x00, 0x08, 0x03, 0x96, 0x00, 0xFF,
+0x7F, 0x9A, 0x19, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x10, 0x00, 0x8F, 0x02, 0x00, 0x04, 0x10, 0x00, 0x66, 0x06, 0x00, 0x01, 0x66,
+0x06, 0x00, 0x40, 0x00, 0x20, 0xE0, 0x2E, 0x58, 0x1B, 0x00, 0x01, 0xCE, 0x2C, 0x00, 0x40, 0x84,
+0x2B, 0x9A, 0x19, 0x66, 0x26, 0x00, 0x01, 0x00, 0x30, 0x00, 0x24, 0x40, 0x01, 0xE6, 0x00, 0x65,
+0x66, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x40, 0x80, 0x00, 0xFD, 0x1F, 0xB0, 0x63, 0xAD,
+0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
+0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA,
+0xFF, 0xF4, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/uclinux/audio_process.a b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/uclinux/audio_process.a
new file mode 100755
index 0000000..449febf
--- /dev/null
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/uclinux/audio_process.a
Binary files differ
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/uclinux/nxp_DrvNvData.h b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/uclinux/nxp_DrvNvData.h
new file mode 100755
index 0000000..ce95a87
--- /dev/null
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/uclinux/nxp_DrvNvData.h
@@ -0,0 +1,10 @@
+//6 level volume
+//#define LVWM_TX_FILE_SIZE 463 //×Ö½ÚÊý
+//#define LVWM_RX_FILE_SIZE 1866
+//uc actual size
+//#define LVWM_TX_FILE_SIZE 379 //×Ö½ÚÊý
+//#define LVWM_RX_FILE_SIZE 1482
+
+
+
+//const static LVM_CHAR LVVE_Param_Test[] ={};
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/tdm/hal_tdm.c b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/tdm/hal_tdm.c
index 322aea4..50e28da 100755
--- a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/tdm/hal_tdm.c
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/tdm/hal_tdm.c
@@ -54,6 +54,7 @@
#define TDM_DRIVER_VERSION 1
//#define ARM_TDM_LOOP_SET *((volatile unsigned int *)(ZX_SOC_SYS_BASE + 0x60))
+#define ARM_TDM_LOOP_CFG *((volatile UINT32 *)(SOC_SYS_REG_BASE+0x60))
/* version register */
#define TDM_VERSION 0x0104 /*TDM Version V1.4*/
@@ -2415,7 +2416,12 @@
memset(temp, 0, sizeof(temp));
tdmDmaState[TDM_RX].channel = DMA_CH_TDM_RX0;
tdmDmaState[TDM_RX].ch = dma_request_channel(mask, zx29_dma_filter_fn, (void*)(tdmDmaState[TDM_RX].channel));
-
+ if(!tdmDmaState[TDM_RX].ch){
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO,"%s: dma_request_channel fail, dma_id(%d).\n",__func__,tdmDmaState[TDM_RX].channel);
+ return DRV_ERR_BUSY;
+
+ }
for (i = 0; i < TDM_OUT_BUF_NUM; i++) {
temp[i].dest_addr = tdmDmaState[TDM_RX].dma_phyaddr + (tdmStream->rxLen) * i;
temp[i].src_addr = ZX29_TDM_PHYS + 0x24;
@@ -2484,6 +2490,12 @@
memset(temp, 0, sizeof(temp));
tdmDmaState[TDM_TX].channel = DMA_CH_TDM_TX0;
tdmDmaState[TDM_TX].ch = dma_request_channel(mask, zx29_dma_filter_fn, (void*)(tdmDmaState[TDM_TX].channel));
+ if(!tdmDmaState[TDM_TX].ch){
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO,"%s: dma_request_channel fail, dma_id(%d).\n",__func__,tdmDmaState[TDM_TX].channel);
+ return DRV_ERR_BUSY;
+
+ }
for (i = 0; i < TDM_OUT_BUF_NUM; i++) {
temp[i].src_addr = tdmDmaState[TDM_TX].dma_phyaddr + (txStream->txLen) * i;
@@ -2840,6 +2852,7 @@
SINT32 ret = DRV_SUCCESS;
ret = tdm_Reset();
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvTDM_Reset , ret=%d",ret);
return ret;
}
@@ -3751,6 +3764,21 @@
VOID vp_SetTopTdmConfig(VOID)
{
+ UINT32 AmrRegBit = 0;
+
+ /* inter loop */
+ AmrRegBit = ARM_TDM_LOOP_CFG;
+
+ AmrRegBit &= 0xfffffe07;
+ AmrRegBit |= 0x000000a8; /* 0x000000a8 loop dsp afe(loop i2s1)--arm i2s2(loop i2s2) 0x00000150 loop dsp arm(loop i2s1)--afe i2s2(loop i2s2)*/
+
+ ARM_TDM_LOOP_CFG = AmrRegBit;
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_SetTopTDMConfig ARM_TDM_LOOP_CFG=0x%x\n", ARM_TDM_LOOP_CFG);
+
+
+
+
#if 0
UINT32 AmrRegBit = 0;
int ret = 0;
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/voiceprocess/hal_voicebuffer.c b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/voiceprocess/hal_voicebuffer.c
new file mode 100755
index 0000000..8d0e5f7
--- /dev/null
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/voiceprocess/hal_voicebuffer.c
@@ -0,0 +1,1065 @@
+/*******************************************************************************
+ * Copyright (C) 2007, ZTE Corporation.
+ *
+ * File Name:hal_voicebuffer.c
+ * File Mark:
+ * Description: voice buffer function.
+ * Others:
+ * Version:
+ * Author: xxq
+ * Date: 2024-07-03
+ * History 1:
+ * Date:
+ * Version:
+ * Author:
+ * Modification: edit for union version
+ * History 2:
+ ********************************************************************************/
+
+/****************************************************************************
+* Include files
+****************************************************************************/
+#include "drvs_general.h"
+#include "drvs_volte.h"
+#include "drvs_i2s.h"
+#include "drvs_voiceprocess.h"
+#include "hal_voiceprocess.h"
+#include "drvs_voice_config.h"
+//#include "hal_pcmmixer.h"
+#include "NvParam_drv.h"
+#include "drvs_io_voice.h"
+#include "hal_ringdata.h"
+#include "drvs_tdm.h"
+#include "hal_dtmf_detect.h"
+#include "hal_audio_data.h"
+//#define TEST_WHITE_NOISE
+
+//#define VB_DATA_LOSS_TEST
+#ifdef TEST_WHITE_NOISE
+#include "Fs8000_WhiteNoise_Mon.h"
+//#include "Fs8000_Sine_440Hz_Mon.h"
+#endif
+
+#include "drvs_icp.h"
+#include "drvs_rpmsg.h"
+//#include <linux/completion.h>
+#include "hal_voicebuffer.h"
+
+/****************************************************************************
+* Local Macros
+****************************************************************************/
+//#define USE_AUDIO_RING
+//#define VP_GET_TX_ALL_DATA
+
+
+/****************************************************************************
+* Local Types
+****************************************************************************/
+
+
+/****************************************************************************
+* Local Constants
+****************************************************************************/
+static SINT32 vp_Get_Add_RpMsg_Vbuffer(VOID);
+
+/****************************************************************************
+* Local Function Prototypes
+****************************************************************************/
+
+/****************************************************************************
+* Global Constants
+****************************************************************************/
+
+
+/****************************************************************************
+* Global Variables
+****************************************************************************/
+//static T_zDrvVp_SpeechState *s_pSpeechState = NULL;
+extern T_zDrvVp_SpeechState s_speechState; //104 bytes
+extern T_zDrvVoice_GbVar g_voiceVar;
+extern T_zDrvVp_State s_vpState;
+
+
+#ifdef ECALL_SUPPORT
+extern int eWrErr;
+extern UINT8 e_reg_flag;
+
+#endif
+
+//for test whiteNoise
+#ifdef TEST_WHITE_NOISE
+extern UINT32 tempCount;
+extern UINT8 *pVoiceTempBuf;
+#endif
+
+
+extern T_ZDrv_VpInOutBuffer vpInOutBuffer;
+
+extern T_HalMixerToneInfo mixerToneInfo;
+
+static int vbuffer_init_flag = 0;
+
+/****************************************************************************
+* Global Function Prototypes
+****************************************************************************/
+//aduvoice config code
+
+
+
+
+
+
+extern SINT32 voice_ToneMixerData(UINT8 *pvdata, UINT32 size, UINT8 *pmixdata);//xiu gai chu sheng ming
+extern SINT32 zDrvI2S_Read_Start(T_ZDrvI2S_Id tId, T_ZDrvI2s_Params *params, T_ZDrvI2S_Cfg *ptCfg);//xiu gai chu sheng ming
+extern SINT32 zDrvI2S_Write_Start(T_ZDrvI2S_Id tId, T_ZDrvI2s_Params *params, T_ZDrvI2S_Cfg *ptCfg);//xiu gai chu sheng ming
+
+
+
+/****************************************************************************
+* Function Definitions
+****************************************************************************/
+ZOSS_TIMER_ID s_voiceTimerId ;
+ZOSS_SEMAPHORE_ID s_voiceRdSema;
+ZOSS_SEMAPHORE_ID s_voiceWrSema;
+
+//#ifdef CONFIG_VOICE_BUFFER_DRV
+//#ifdef _VBUFF_IN_MULTI_CORE
+//voice buffer use in multi core
+//#define RPMSG_CAP_ID 1
+
+
+
+int timer_cb_count = 0;
+int first_full_flag = 0;
+int first_empty_flag = 0;
+
+int vb_read_count = 0;
+int vb_write_count = 0;
+
+
+
+struct voice_ring_buffer *voice_buff[2] = {NULL,NULL};
+
+
+
+static bool voice_buff_is_full(int read_pos, int write_pos)
+{
+
+
+ if ((write_pos - read_pos) >= 20000000) {
+ write_pos = write_pos - 20000000;
+ //voice_buff[UP_LINK]->write_pos = write_pos;
+ voice_buff[DOWN_LINK]->write_pos = write_pos;
+ }
+ return ((write_pos - read_pos) == MAX_BUF_NUM);
+}
+static bool voice_buff_is_empty(int read_pos, int write_pos)
+{
+
+ return (write_pos == read_pos);
+}
+static int voice_buffer_write( char *buf, int count)
+{
+ int read_pos, write_pos;
+
+
+ read_pos = voice_buff[DOWN_LINK]->read_pos;
+ write_pos = voice_buff[DOWN_LINK]->write_pos;
+ if(vb_write_count == 0){
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO,"%s: first read_pos=%d write_pos=%d \n",__FUNCTION__,read_pos,write_pos);
+ }
+
+
+ if(voice_buff_is_full(read_pos, write_pos)){
+ //zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "voice_buffer_read readbuffer is full \n");
+ first_full_flag++;
+ VB_INT_OVERFLOW(first_full_flag);
+ if(first_full_flag == 1)
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: writebuffer is full read_pos %d,write_pos %d,vb_write_count %d,count %d\n",__FUNCTION__,read_pos,write_pos,vb_write_count,count);
+ return DRV_ERROR_FULL;
+ }
+ else {
+ vb_write_count++;
+
+ VB_INT_OVERFLOW(vb_write_count);
+ first_full_flag = 0;
+ zOss_Memcpy(&(voice_buff[DOWN_LINK]->data[(write_pos%MAX_BUF_NUM)*MAX_BUF_SIZE]), buf, count);
+
+ write_pos++;
+
+ voice_buff[DOWN_LINK]->write_pos = write_pos;
+
+ }
+
+ return DRV_SUCCESS;
+}
+static int voice_buffer_read(char *buf, size_t count)
+{
+ int read_pos, write_pos;
+ int* buf_int;
+ int i;
+
+ read_pos = voice_buff[UP_LINK]->read_pos;
+ write_pos = voice_buff[UP_LINK]->write_pos;
+ if(vb_read_count == 0){
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO,"%s: first read_pos=%d write_pos=%d \n",__FUNCTION__,read_pos,write_pos);
+ }
+
+ if ((count > 0) && (count <= MAX_BUF_SIZE)) {
+ if(voice_buff_is_empty(read_pos, write_pos)){
+ first_empty_flag++;
+ VB_INT_OVERFLOW(first_empty_flag);
+ if(first_empty_flag ==1)
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO,"%s: readbuffer is empty,read_pos %d,write_pos %d,vb_read_count %d,count %d\n",__FUNCTION__,read_pos,write_pos,vb_read_count,count);
+ //add memset,del return . edit for far end hear near end repreat voice pcm, FROM MBB TEST
+
+ #ifndef VB_DATA_LOSS_TEST
+ zOss_Memset(&(voice_buff[UP_LINK]->data[(read_pos%MAX_BUF_NUM)*MAX_BUF_SIZE]),0, count);
+ zOss_Memset(buf,0, count);
+ #endif
+ //return DRV_ERROR_EMPTY;
+
+
+ }
+ else {
+
+ vb_read_count++;
+ VB_INT_OVERFLOW(vb_read_count);
+ first_empty_flag = 0;
+
+ zOss_Memcpy(buf, &(voice_buff[UP_LINK]->data[(read_pos%MAX_BUF_NUM)*MAX_BUF_SIZE]), count);
+ //zOss_Memset(&(voice_buff[UP_LINK]->data[(read_pos%MAX_BUF_NUM)*MAX_BUF_SIZE]),0, count);
+
+#ifdef VB_DATA_LOSS_TEST
+
+
+ if(vb_read_count < 5){
+ pr_info("ps :count=%d vb_read_count=%d,read_pos=%d,write_pos=%d\n",count,vb_read_count,read_pos,write_pos);
+
+
+ buf_int =( int*) &voice_buff[UP_LINK]->data[(write_pos%MAX_BUF_NUM)*MAX_BUF_SIZE];
+
+ for(i=0;i<(count/4);i++){
+ //*(buf_int+i) = i;
+ //buf_int[i] = i;
+ if(i>0x1f)
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO,"ps: *(buf_int+%d)=%d\n",i,*(buf_int+i));
+ }
+
+ }
+#endif
+ read_pos++;
+ if(read_pos == 20000000)
+ read_pos = 0;
+ voice_buff[UP_LINK]->read_pos = read_pos;
+ }
+
+
+ }
+
+
+ return DRV_SUCCESS;
+}
+
+
+//voice buffer use in single core
+extern int voicebuffer_ulqueue_read(void *buf, unsigned int size);
+extern int voicebuffer_dlqueue_write(void *buf, unsigned int size);
+extern void voice_inform_to_app(void);
+//static DECLARE_COMPLETION(s_voice_completion);
+//ZOSS_TIMER_ID s_voiceTimerId ;
+//ZOSS_SEMAPHORE_ID s_voiceRdSema;
+//ZOSS_SEMAPHORE_ID s_voiceWrSema;
+static void voiceTimerCallBack(SINT32 para)
+{
+
+
+ if (g_voiceVar.voiceBufferType == 1)//multi core
+ {
+
+
+ T_ZDrvRpMsg_Msg icp_pMsg = {0};
+
+ UINT8 s = 1;
+ icp_pMsg.actorID = RPMSG_CAP_ID;
+
+ icp_pMsg.chID = channel_41;
+ icp_pMsg.flag |= RPMSG_WRITE_INT;
+ icp_pMsg.buf = (void *)&s;
+ icp_pMsg.len = 1;
+
+
+ zOss_PutSemaphore(s_voiceWrSema);
+ zOss_PutSemaphore(s_voiceRdSema);
+ //zDrvRpMsg_Write(&icp_pMsg);
+#ifdef _USE_VEHICLE_DC
+ zDrvRpMsg_Write_Cap(&icp_pMsg);
+#endif
+ timer_cb_count++;
+ VB_INT_OVERFLOW(timer_cb_count);
+#ifdef VB_DATA_LOSS_TEST
+
+ if((timer_cb_count%1000 ) == 0){
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s:timer_cb_count(%d)\n",__FUNCTION__,timer_cb_count);
+ if(timer_cb_count> 10000000)
+ timer_cb_count=0;
+ }
+
+#endif
+
+
+ }
+ else{
+
+
+
+ // complete_all(&s_voice_completion);
+ zOss_PutSemaphore(s_voiceWrSema);
+ zOss_PutSemaphore(s_voiceRdSema);
+ voice_inform_to_app();
+ // zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "voiceTimerCallBack timer=%u\n", cpu_clock(0)>>10);
+ }
+
+
+}
+
+
+
+
+
+static SINT32 vp_rxsem_count_Init(void)
+{
+ UINT32 i = 0;
+ UINT32 semCount = 0;
+ SINT32 Count = 0;
+
+ semCount = zOss_GetSemaphoreCount(s_voiceRdSema);
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_rxsem_count_Init rxSem count=%d\n", semCount);
+
+ Count = semCount;
+ if(Count > 0) {
+ for(i = 0; i < Count; i++) {
+ zOss_GetSemaphore(s_voiceRdSema, ZOSS_NO_WAIT);
+ }
+ }
+
+ return DRV_SUCCESS;
+}
+
+static SINT32 vp_txsem_count_Init(void)
+{
+ UINT32 i = 0;
+ UINT32 semCount = 0;
+ SINT32 Count = 0;
+
+ semCount = zOss_GetSemaphoreCount(s_voiceWrSema);
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_txsem_count_Init txSem count=%d \n", semCount);
+
+ Count = 3 - semCount;
+ if(Count > 0) {
+ for(i = 0; i < Count; i++) {
+ zOss_PutSemaphore(s_voiceWrSema);
+ }
+ } else if(Count < 0) {
+ Count = 0 - Count;
+ for(i = 0; i < Count; i++) {
+ zOss_GetSemaphore(s_voiceWrSema, ZOSS_NO_WAIT);
+ }
+ }
+
+ return DRV_SUCCESS;
+}
+
+
+
+
+
+SINT32 vp_Open_Vbuffer(void)
+{
+ SINT32 ret = DRV_SUCCESS;
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: start \n", __func__);
+ if (g_voiceVar.voiceBufferType == 1)//multi core
+ {
+ vp_Get_Add_RpMsg_Vbuffer();
+
+ vp_rxsem_count_Init();
+ vp_txsem_count_Init();
+ voice_buff[UP_LINK]->read_pos = 0;
+ voice_buff[UP_LINK]->write_pos = 0;
+ voice_buff[DOWN_LINK]->read_pos = 0;
+ voice_buff[DOWN_LINK]->write_pos = 0;
+ zOss_Memset(&(voice_buff[DOWN_LINK]->data[0]),0, MAX_BUF_NUM*MAX_BUF_SIZE);
+ zOss_Memset(&(voice_buff[UP_LINK]->data[0]),0, MAX_BUF_NUM*MAX_BUF_SIZE);
+ //for debug
+ timer_cb_count = 0;
+ first_full_flag = 0;
+ first_empty_flag = 0;
+
+ vb_read_count = 0;
+ vb_write_count = 0;
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_Open_Vbuffer init voice buffer val!\n");
+
+
+ }else{
+
+ // INIT_COMPLETION(s_voice_copletion);
+ vp_rxsem_count_Init();
+ vp_txsem_count_Init();
+ }
+
+ return DRV_SUCCESS;
+
+}
+
+
+SINT32 vp_Close_Vbuffer(void)
+{
+ SINT32 ret = DRV_SUCCESS;
+
+ if (g_voiceVar.voiceBufferType == 1)//multi core
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: timer_cb_count %d,first_full_flag %d,first_empty_flag %d,vb_read_count %d,vb_write_count %d!\n",__FUNCTION__,timer_cb_count,first_full_flag,first_empty_flag,vb_read_count,vb_write_count);
+ }
+
+ return DRV_SUCCESS;
+}
+
+SINT32 vp_VoiceI2sStart_Vbuffer(VOID)
+{
+ SINT32 ret = DRV_SUCCESS;
+
+ UINT8 *read_buf = NULL;
+ UINT8 *write_buf = NULL;
+ UINT32 read_len = 0;
+ UINT32 write_len = 0;
+
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: start.\n",__func__);
+
+
+ ret = zDrvI2S_Read_Start(I2S_2, &s_speechState.i2sReadParam, s_vpState.pVpInnerI2sCfg);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart_Vbuffer failed ret is %d .\n", ret);
+ return DRV_ERROR;
+ }
+
+ zOss_StartTimer(s_voiceTimerId, 20, voiceTimerCallBack, 0);
+
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart_Vbuffer VB zOss_StartTimer\n");
+
+ ret = zDrvI2S_Write_Start(I2S_2, &s_speechState.i2sWriteParam, s_vpState.pVpInnerI2sCfg);
+
+ ret += zDrvI2S_GetBuf(I2S_2, &write_buf, &write_len);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart_Vbuffer error7:zDrvI2S_GetBuf I2S_2 ret=%d", ret);
+ return DRV_ERROR;
+ }
+ zOss_Memset(write_buf, 0, write_len);
+ ret = zDrvI2S_Write(I2S_2, write_buf, write_len);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart_Vbuffer error12:zDrvI2S_Write I2S_2 ret=%d", ret);
+ }
+
+ ret += zDrvI2S_GetBuf(I2S_2, &write_buf, &write_len);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart_Vbuffer error13:zDrvI2S_GetBuf I2S_2 ret=%d", ret);
+ return DRV_ERROR;
+ }
+ zOss_Memset(write_buf, 0, write_len);
+ ret = zDrvI2S_Write(I2S_2, write_buf, write_len);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart_Vbuffer error14:zDrvI2S_Write I2S_2 ret=%d", ret);
+ }
+
+ if (g_voiceVar.voiceBufferType == 1)//multi core
+ {
+
+ voice_buffer_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
+
+ }else{
+ voicebuffer_dlqueue_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
+ }
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: end.\n",__func__);
+ return ret;
+}
+VOID vp_VoiceI2sStop_Vbuffer(VOID)
+{
+ SINT32 ret = DRV_SUCCESS;
+ return ret;
+}
+
+
+
+SINT32 zDrvVp_VoiceWorkStop_Vbuffer(VOID)
+{
+ SINT32 ret = DRV_SUCCESS;
+
+ //complete_all(&s_voice_completion);
+ zOss_PutSemaphore(s_voiceRdSema);
+ zOss_PutSemaphore(s_voiceWrSema);
+ zOss_StopTimer(s_voiceTimerId);
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: zOss_StopTimer\n",__func__);
+
+
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: success",__func__);
+ return DRV_SUCCESS;
+}
+
+
+SINT32 vp_VolteReadStart_Vbuffer(VOID)
+{
+ SINT32 ret = DRV_SUCCESS;
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteReadStart_Vbuffer start\n");
+
+ zOss_StartTimer(s_voiceTimerId, 20, voiceTimerCallBack, 0);
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteReadStart_Vbuffer zOss_StartTimer start\n");
+
+ return DRV_SUCCESS;
+}
+//whole replace
+SINT32 vp_VolteReadStop_Vbuffer(VOID)
+{
+ SINT32 ret = DRV_SUCCESS;
+
+ if (g_voiceVar.useVoiceBuffer == 1)
+ {
+ zOss_PutSemaphore(s_voiceRdSema);
+
+ }
+ else
+ {
+
+#ifdef CONFIG_VOICE_BUFFER_DRV
+ zOss_PutSemaphore(s_voiceRdSema);
+#else
+
+ //zDrvI2s_RxRlsSemaBeforeStop(I2S_1);
+ zDrvExtAudio_RxRlsSemaBeforeStop();
+
+#if 0//move to close lvwenhua 20150910
+ ret = zDrvExtAudio_Read_Stop();
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvVolte_ReadStop I2S1 Stop wrong ret=%d", ret);
+ }
+#endif
+#endif
+
+ }
+
+ if (s_speechState.volteVpCfgEnFlag == 1)
+ {
+ ret = halVpCfg_Disable();
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: halVpCfg_Enable err ret=%x !\n",__func__, ret);
+ }
+ else
+ {
+ s_speechState.volteVpCfgEnFlag = 0;
+ }
+ }
+
+ s_speechState.volteVpReadStopFlag = 1;//together control vp s_speechState
+ if ((s_speechState.volteVpWriteStopFlag == 1) && (s_speechState.volteVpReadStopFlag == 1))
+ {
+ g_voiceVar.vpI2sStatus = VP_I2S_OPEN;
+
+ if (g_voiceVar.useVoiceBuffer == 1)
+ {
+ zOss_StopTimer(s_voiceTimerId);
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: zOss_StopTimer\n",__func__);
+
+ }
+ else
+ {
+#ifdef CONFIG_VOICE_BUFFER_DRV
+ zOss_StopTimer(s_voiceTimerId);
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteReadStop_Vbuffer zOss_StopTimer\n");
+#endif
+ }
+ }
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: end\n",__func__);
+ return ret;
+}
+
+SINT32 vp_VolteWriteStart_Vbuffer(VOID)
+{
+ SINT32 ret = DRV_SUCCESS;
+
+ //???? for check
+ if (g_voiceVar.voiceBufferType == 1)//multi core
+ {
+ voice_buffer_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
+ }
+ else
+ {
+ voicebuffer_dlqueue_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
+ }
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s:end \n",__func__);
+
+ return ret;
+}
+//whole replace
+SINT32 vp_VolteWriteStop_Vbuffer(VOID)
+{
+ SINT32 ret = DRV_SUCCESS;
+ if (g_voiceVar.useVoiceBuffer == 1)
+ {
+ zOss_PutSemaphore(s_voiceWrSema);
+
+ }
+ else
+ {
+
+#ifdef CONFIG_VOICE_BUFFER_DRV
+ //complete_all(&s_voice_completion);
+ zOss_PutSemaphore(s_voiceWrSema);
+#else
+ //zDrvI2s_TxRlsSemaBeforeStop(I2S_1);
+ zDrvExtAudio_TxRlsSemaBeforeStop();
+#endif
+ }
+#if 0//move to close lvwenhua 20150910
+ //wait for write drain semaphore
+#ifdef VOICE_TONE_MIXER_FUNCTION
+ voice_ToneMixerStop();
+#endif
+
+ ret = zDrvExtAudio_Write_Stop();
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvVolte_WriteStop I2S1 Stop wrong ret=%d", ret);
+ }
+
+ //s_VolteWriteSema = 0;
+#endif
+
+ if (s_speechState.volteVpCfgEnFlag == 1)
+ {
+ ret = halVpCfg_Disable();
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStop_Vbuffer halVpCfg_Enable err ret=%x !\n", ret);
+ }
+ else
+ {
+ s_speechState.volteVpCfgEnFlag = 0;
+ }
+ }
+
+ s_speechState.volteVpWriteStopFlag = 1;//together control vp s_speechState
+ if ((s_speechState.volteVpWriteStopFlag == 1) && (s_speechState.volteVpReadStopFlag == 1))
+ {
+ g_voiceVar.vpI2sStatus = VP_I2S_OPEN;
+
+ if (g_voiceVar.useVoiceBuffer == 1)
+ {
+
+ zOss_StopTimer(s_voiceTimerId);
+
+ }
+ else
+ {
+
+#ifdef CONFIG_VOICE_BUFFER_DRV
+ zOss_StopTimer(s_voiceTimerId);
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStop_Vbuffer zOss_StopTimer\n");
+#endif
+ }
+ }
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStop_Vbuffer \n");
+ return ret;
+}
+
+
+/*******************************************************************************
+ * For union version
+ * Others:
+ ********************************************************************************/
+SINT32 vp_WriteDataToCodec_Vbuffer(UINT8 *pBuf, UINT32 count)
+{
+ SINT32 ret = DRV_SUCCESS;
+ SINT32 e_ret = DRV_SUCCESS;
+ UINT8 *write_buf = NULL;
+ UINT32 write_len = 0;
+ UINT8 *e_write_buf = NULL;
+ UINT32 e_write_len = 0;
+ UINT32 i = 0, j = 0;
+#ifdef TEST_WHITE_NOISE
+ // UINT32 tempCount = 0;
+ //zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "test the white noise");
+ //UINT8 *pVoiceTempBuf = s_voiceTempBuffer;
+#endif
+
+
+
+ if (pBuf == NULL)
+ {
+ return DRV_ERR_INVALID_PARAM;
+ }
+
+ if (count != s_speechState.i2sWriteParam.buffersize)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_WriteDataToCodec_Vbuffer write data length err,count=%d,writebuffersize=%d \n", count, s_speechState.i2sWriteParam.buffersize);
+ return DRV_ERR_INVALID_PARAM;
+ }
+ #ifdef ECALL_SUPPORT
+
+ if(e_reg_flag == 1)
+ {
+ e_ret = update_ecall_state(DIR_RX);
+ if (e_ret == DRV_ERR_NOT_SUPPORTED)
+ {
+ zOss_Printf(SUBMDL_HAL, PRINT_LEVEL_NORMAL, "vp_WriteDataToCodec_Vbuffer get__ecall_state fun not register or invalid para,e_ret=%d !\n",e_ret);
+
+ }
+ }
+ #endif
+
+
+
+ #ifdef TEST_WHITE_NOISE
+
+ zOss_Memcpy(s_speechState.pVpTempRxInBuffer, pVoiceTempBuf, s_speechState.totalFrameBufSize);
+
+ pVoiceTempBuf += s_speechState.totalFrameBufSize;
+ tempCount += s_speechState.totalFrameBufSize;
+ if (tempCount >= 0x4df80) //307200
+ //if(tempCount >= 0x4e200) //320000
+ {
+ pVoiceTempBuf = s_voiceTempBuffer;
+ tempCount = 0;
+ }
+ #endif
+
+ #ifdef VOICE_TONE_MIXER_FUNCTION
+
+ if (mixerToneInfo.StartMixer == TRUE)
+ {
+ //voice_ToneMixerData( s_speechState.pVpTempRxInBuffer);
+ if ((g_voiceVar.voiceInVolteMode == 1) && (g_voiceVar.volteIsWb == 1))
+ {
+ voice_ToneMixerData(s_speechState.pVpTempRxInBuffer, 640, s_speechState.pVpTempRxInBuffer);
+ }
+ else
+ {
+ voice_ToneMixerData(s_speechState.pVpTempRxInBuffer, 320, s_speechState.pVpTempRxInBuffer);
+ }
+
+ }
+
+ #endif
+ if (pBuf != s_speechState.pVpTempRxInBuffer)
+ {
+ zOss_Memcpy(s_speechState.pVpTempRxInBuffer, pBuf, s_speechState.totalFrameBufSize);
+ }
+
+ if (g_voiceVar.vProcIsNormal == TRUE)
+ {
+ VoiceProc_RxProcess(& s_speechState.pVpTempRxInBuffer, & s_speechState.pVpTempRxOutPutBuffer, s_speechState.frameCount);
+ }
+ else
+ {
+ zOss_Memcpy((VOID *)(s_speechState.pVpTempRxOutPutBuffer), (VOID *) s_speechState.pVpTempRxInBuffer, s_speechState.totalFrameBufSize);
+ }
+ //wait_for_completion_timeout(&s_voice_completion, 60);
+ zOss_GetSemaphore(s_voiceWrSema, 60);
+ //#ifdef _VBUFF_IN_MULTI_CORE
+ if (g_voiceVar.voiceBufferType == 1)
+ {
+ voice_buffer_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
+ }
+ else
+ {
+ voicebuffer_dlqueue_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
+ }
+ if (g_voiceVar.voiceInVolteMode == 1)
+ {
+ s_speechState.rxSaveLen += s_speechState.totalFrameBufSize;
+ if (s_speechState.rxSaveLen >= s_speechState.inOutBufUseSize)
+ {
+ s_speechState.rxSaveLen = 0;
+ }
+ s_speechState.pVpTempRxInBuffer = s_vpState.pVpRxInBuffer + s_speechState.rxSaveLen;
+ #ifdef _USE_VP_OUTPUT_RXOUT_DATA
+ s_speechState.pVpTempRxOutPutBuffer = s_vpState.pVpRxOutPutBuffer + s_speechState.rxSaveLen;
+ #else
+ s_speechState.pVpTempRxOutPutBuffer = s_vpState.pVpRxOutPutBuffer;
+ #endif
+ }
+
+
+ if (s_speechState.firstWriteDataFlag == FALSE)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_WriteDataToCodec_Vbuffer first write ret=%d,tick=%d.\n", ret, zOss_GetTickCount());
+ s_speechState.firstWriteDataFlag = TRUE;
+ }
+
+ return ret;
+}
+
+
+
+SINT32 vp_ReadDataFromCodec_Vbuffer(UINT8 *pBuf, UINT32 count)
+{
+ SINT32 ret = DRV_SUCCESS;
+ UINT8 *read_buf = NULL;
+ UINT32 read_len = 0;
+
+ UINT32 i = 0, j = 0;
+#ifdef CONFIG_ARCH_ZX297520V3_CPE_SWITCH
+ UINT8 temp8bit = 0;
+ UINT8 *ptemp8bit = NULL;
+#endif
+
+ if (pBuf == NULL)
+ {
+ return DRV_ERR_INVALID_PARAM;
+ }
+
+ if (count != s_speechState.i2sReadParam.buffersize)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: read data length err,count=%d,readbuffersize=%d \n",__func__, count, s_speechState.i2sReadParam.buffersize);
+ return DRV_ERR_INVALID_PARAM;
+ }
+#ifdef ECALL_SUPPORT
+
+ if(e_reg_flag == 1)
+ {
+ ret = update_ecall_state(DIR_TX);
+ if (ret == DRV_ERR_NOT_SUPPORTED)
+ {
+ zOss_Printf(SUBMDL_HAL, PRINT_LEVEL_NORMAL, "vp_ReadDataFromCodecvp_ReadDataFromCodec get__ecall_state fun not register,ret=%d !\n",ret);
+
+ }
+ }
+#endif
+
+
+// wait_for_completion_timeout(&s_voice_completion, 60);
+ zOss_GetSemaphore(s_voiceRdSema, 60);
+ if (g_voiceVar.voiceBufferType == 1)
+ {
+ voice_buffer_read(s_speechState.pVpTempTxInBuffer, s_speechState.totalFrameBufSize);
+
+ }
+ else
+ {
+ voicebuffer_ulqueue_read(s_speechState.pVpTempTxInBuffer, s_speechState.totalFrameBufSize);
+ }
+ if (g_voiceVar.vProcIsNormal == TRUE)
+ {
+ VoiceProc_TxProcess(&s_speechState.pVpTempTxInBuffer, NULL, &s_speechState.pVpTempTxOutPutBuffer, s_speechState.frameCount);
+ }
+ else
+ {
+ zOss_Memcpy((VOID *)(s_speechState.pVpTempTxOutPutBuffer), (VOID *) s_speechState.pVpTempTxInBuffer, s_speechState.totalFrameBufSize);
+ }
+
+ if (pBuf != s_speechState.pVpTempTxOutPutBuffer)
+ {
+ zOss_Memcpy(pBuf, s_speechState.pVpTempTxOutPutBuffer, s_speechState.totalFrameBufSize);
+ }
+
+ if (g_voiceVar.voiceInVolteMode == 1)
+ {
+ // s_speechState.txSaveLen += VP_FRAME_BUFFER_SIZE;
+ s_speechState.txSaveLen += s_speechState.totalFrameBufSize;
+ if (s_speechState.txSaveLen >= s_speechState.inOutBufUseSize)
+ {
+ s_speechState.txSaveLen = 0;
+ }
+ s_speechState.pVpTempTxInBuffer = s_vpState.pVpTxInBuffer + s_speechState.txSaveLen;
+ s_speechState.pVpTempTxOutPutBuffer = s_vpState.pVpTxOutPutBuffer + s_speechState.txSaveLen;
+ }
+
+
+ if (s_speechState.firstReadDataFlag == FALSE)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_ReadDataFromCodec first read tick=%d.\n", zOss_GetTickCount());
+ s_speechState.firstReadDataFlag = TRUE;
+ }
+
+ return ret;
+}
+
+
+
+
+SINT32 vp_CreateThreadSemaph_Vbuffer(VOID)
+{
+ SINT32 ret = 0;
+//#ifdef CONFIG_VOICE_BUFFER_DRV
+// init_completion(&s_voice_completion);
+ /*
+ if(vbuffer_init_flag == 1){
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vbuffer already init,return! \n");
+ return DRV_SUCCESS;
+
+ }
+ */
+ s_voiceRdSema = zOss_CreateSemaphore("voice_rx_sem", 0);
+ if(NULL == s_voiceRdSema) {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "create voice_rx_sem err \n");
+ return DRV_ERROR;
+ }
+
+ s_voiceWrSema = zOss_CreateSemaphore("voice_tx_sem", 0);
+ if(NULL == s_voiceWrSema) {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "create voice_tx_sem err \n");
+ return DRV_ERROR;
+ }
+
+
+
+ s_voiceTimerId = zOss_CreateTimer("voice_frameTimer", voiceTimerCallBack, 0, TRUE);
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "s_voiceTimerId=%p\n", s_voiceTimerId);
+ if(!s_voiceTimerId)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "voice_frameTimer failed\n");
+ return DRV_ERROR;
+ }
+
+
+
+
+ //ret = zDrvRpMsg_CreateChannel(IPC_MSG_ACTOR_A9,channel_41,0x10);
+#ifdef _USE_VEHICLE_DC
+ ret = zDrvRpMsg_CreateChannel_Cap(RPMSG_CAP_ID,channel_41,0x10);
+
+ if(DRV_SUCCESS != ret) {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "create rpmsg err(%d) \n",ret);
+ return DRV_ERROR;
+ }
+/*
+ volatile T_ZDrvRpMsg_Msg icp_pMsg = {0};
+ volatile unsigned int rpMsgBuf[2] = {0,0};
+ //printk( "vir_buf1:0x%x, vir_buf2:0x%x, phy_buf1:0x%x, phy_buf2:0x%x,\n",voice_buff[0],voice_buff[1],rpMsgBuf[0],rpMsgBuf[1]);
+ icp_pMsg.actorID = RPMSG_CAP_ID;
+ icp_pMsg.chID = channel_41;
+ icp_pMsg.flag &= ~RPMSG_READ_POLL;
+ icp_pMsg.buf = rpMsgBuf;
+ icp_pMsg.len = 8;
+
+
+ ret = zDrvRpMsg_Read_Cap(&icp_pMsg);
+ if(ret <= 0){
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "voice buffer rpmsg addr read fail,ret=%d \n",ret);
+ zOss_Printf(SUBMDL_HAL, PRINT_LEVEL_NORMAL, "ps voice buffer rpmsg addr read fail,ret=%d \n",ret);
+
+
+ }
+ else{
+ #if 0
+
+ voice_buff[UP_LINK] = (struct voice_ring_buffer *)(rpMsgBuf[0]);
+ voice_buff[DOWN_LINK] = (struct voice_ring_buffer *)(rpMsgBuf[1]);
+ #else
+
+ voice_buff[UP_LINK] = (struct voice_ring_buffer *)ioremap_wc(rpMsgBuf[0], (sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
+ voice_buff[DOWN_LINK] = (struct voice_ring_buffer *)ioremap_wc(rpMsgBuf[1],(sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
+ #endif
+
+ zOss_Printf(SUBMDL_HAL, PRINT_LEVEL_NORMAL, "ps rpmsg voice buffer addr,up vir buf=0x%x, down vir buf=0x%x ,up phy buf=0x%x, down phy buf=0x%x,size=%d \n" \
+ ,voice_buff[0],voice_buff[1],rpMsgBuf[0],rpMsgBuf[1],(sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "voice buffer addr,up vir buf=0x%x, down vir buf=0x%x ,up phy buf=0x%x, down phy buf=0x%x,size=%d \n" \
+ ,voice_buff[0],voice_buff[1],rpMsgBuf[0],rpMsgBuf[1],(sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
+ }
+*/
+
+
+#endif
+ //vbuffer_init_flag = 1;
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_CreateThreadSemaph success. \r\n");
+ return DRV_SUCCESS;
+}
+
+
+
+
+static SINT32 vp_Get_Add_RpMsg_Vbuffer(VOID)
+{
+ SINT32 ret = 0;
+//#ifdef CONFIG_VOICE_BUFFER_DRV
+// init_completion(&s_voice_completion);
+
+ if(vbuffer_init_flag == 1){
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vbuffer already init,return! \n");
+ return DRV_SUCCESS;
+
+ }
+
+ //ret = zDrvRpMsg_CreateChannel(IPC_MSG_ACTOR_A9,channel_41,0x10);
+#ifdef _USE_VEHICLE_DC
+
+ volatile T_ZDrvRpMsg_Msg icp_pMsg = {0};
+ volatile unsigned int rpMsgBuf[2] = {0,0};
+ //printk( "vir_buf1:0x%x, vir_buf2:0x%x, phy_buf1:0x%x, phy_buf2:0x%x,\n",voice_buff[0],voice_buff[1],rpMsgBuf[0],rpMsgBuf[1]);
+ icp_pMsg.actorID = RPMSG_CAP_ID;
+ icp_pMsg.chID = channel_41;
+ icp_pMsg.flag &= ~RPMSG_READ_POLL;
+ icp_pMsg.buf = rpMsgBuf;
+ icp_pMsg.len = 8;
+
+
+ ret = zDrvRpMsg_Read_Cap(&icp_pMsg);
+ if(ret <= 0){
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "voice buffer rpmsg addr read fail,ret=%d \n",ret);
+ zOss_Printf(SUBMDL_HAL, PRINT_LEVEL_NORMAL, "ps voice buffer rpmsg addr read fail,ret=%d \n",ret);
+
+
+ }
+ else{
+ #if 0
+
+ voice_buff[UP_LINK] = (struct voice_ring_buffer *)(rpMsgBuf[0]);
+ voice_buff[DOWN_LINK] = (struct voice_ring_buffer *)(rpMsgBuf[1]);
+ #else
+
+ voice_buff[UP_LINK] = (struct voice_ring_buffer *)ioremap_wc(rpMsgBuf[0], (sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
+ voice_buff[DOWN_LINK] = (struct voice_ring_buffer *)ioremap_wc(rpMsgBuf[1],(sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
+ #endif
+
+ zOss_Printf(SUBMDL_HAL, PRINT_LEVEL_NORMAL, "ps rpmsg voice buffer addr,up vir buf=0x%x, down vir buf=0x%x ,up phy buf=0x%x, down phy buf=0x%x,size=%d \n" \
+ ,voice_buff[0],voice_buff[1],rpMsgBuf[0],rpMsgBuf[1],(sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "voice buffer addr,up vir buf=0x%x, down vir buf=0x%x ,up phy buf=0x%x, down phy buf=0x%x,size=%d \n" \
+ ,voice_buff[0],voice_buff[1],rpMsgBuf[0],rpMsgBuf[1],(sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
+
+ vbuffer_init_flag = 1;
+
+ }
+
+
+
+#endif
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: success. \r\n",__func__);
+ return DRV_SUCCESS;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/voiceprocess/hal_voiceprocess.c b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/voiceprocess/hal_voiceprocess.c
index f34d0b7..3296dad 100755
--- a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/voiceprocess/hal_voiceprocess.c
+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/voiceprocess/hal_voiceprocess.c
@@ -34,9 +34,7 @@
#include "drvs_tdm.h"
#include "hal_dtmf_detect.h"
#include "hal_audio_data.h"
-//#define TEST_WHITE_NOISE
-//#define VB_DATA_LOSS_TEST
#ifdef TEST_WHITE_NOISE
#include "Fs8000_WhiteNoise_Mon.h"
//#include "Fs8000_Sine_440Hz_Mon.h"
@@ -45,40 +43,19 @@
#include "drvs_icp.h"
#include "drvs_rpmsg.h"
//#include <linux/completion.h>
+
+#include "hal_voicebuffer.h"
+
/****************************************************************************
* Local Macros
****************************************************************************/
//#define USE_AUDIO_RING
//#define VP_GET_TX_ALL_DATA
-#define VP_BUF_LENGTH 0x7FF80 //0xFFD80 //0x7FE40 //0x4df80// (0.5M 0x80000)
-#define VP_FRAME_BUFFER_SIZE 320 //20ms 800KHZ
-#define VP_I2S_BUFFER_SIZE 320
-#define VOICE_SYNC_TIMEOUT_TIME 100
-
-#define VP_INOUT_BAK_BUFFER_SIZE 0x30000 // 0x60000
-#define VP_INOUT_NOBAK_BUFSIZE 640
-#define VB_MAX_INT 0x7fffffff
-#define VB_MIN_INT 0 //(0-2<<31)//0x80000000
-
-#define VB_INT_OVERFLOW(x) if((x < VB_MIN_INT)||(x > VB_MAX_INT)) x = 0;
/****************************************************************************
* Local Types
****************************************************************************/
- typedef enum
- {
- VBUF_SEM = 0,//voice buffer
- ECALL_SEM,
- SEM_MAX
- } T_Sem_Owner;
- typedef enum
- {
- DIR_RX,
- DIR_TX,
- DIR_ALL,
- DIR_MAX
- } T_Data_Dir_Type;
/****************************************************************************
* Local Constants
@@ -104,7 +81,46 @@
* Global Variables
****************************************************************************/
//static T_zDrvVp_SpeechState *s_pSpeechState = NULL;
+#if 0
static T_zDrvVp_SpeechState s_speechState = {0}; //104 bytes
+#else
+T_zDrvVp_SpeechState s_speechState = {
+ //use for vp data process
+ .pVpTempRxInBuffer = NULL,
+ .pVpTempTxInBuffer = NULL,
+ .pVpTempRxOutPutBuffer = NULL,
+ .pVpTempTxOutPutBuffer = NULL,
+
+ .pVpI2sCfg = NULL,
+
+ .vpCfgParam = {0},
+
+ .i2sWriteParam = {0},
+ .i2sReadParam = {0},
+
+ .frameCount = 0,
+ .totalFrameBufSize = 0,
+ .inOutBufUseSize = 0,
+ .rxSaveLen = 0,
+ .txSaveLen = 0,
+ .saveLen = 0,
+
+ .pcmSlotNum = 0,
+ .pcmWbSecDataPosition = 0,
+
+ .volteVpWriteStopFlag = 0,
+ .volteVpReadStopFlag = 0,
+ . volteVpCfgEnFlag = 0,
+ .firstWriteDataFlag = FALSE,
+ .firstReadDataFlag = FALSE,
+ .i2sIsRstFlag = FALSE,
+
+};
+
+
+#endif
+
+#if 0
T_zDrvVoice_GbVar g_voiceVar =
{
@@ -138,32 +154,104 @@
#endif
0 //27 voice_nv_update
};
+#else
+T_zDrvVoice_GbVar g_voiceVar =
+{
+ .volteIsWb = 0, //volteIsWb
+ .isUseSlicCodec = 0, //isUseSlicCodec
+ .g_isUseTdm = 0, //g_isUseTdm
+ .voiceInGsmTdMode = 0, //voiceInGsmTdMode
+ .voiceInVolteMode = 0, //voiceInVolteMode
+ .innerI2sIsMaster = FALSE, //innerI2sIsMaster
+ .innerI2sIsI2sMode = TRUE, //innerI2sIsI2sMode
+ .vpLoopRuning = FALSE, //vpLoopRunning
+ .muteEn = FALSE, //muteEn
+ .vProcIsNormal = FALSE, //vProcIsNormal
+ .vpI2sStatus = VP_I2S_IDLE, //vpI2sStatus
+ .vpPath = VP_PATH_HANDSET, //vpPath
+ .vpLoopPath = VP_PATH_HANDSET, //vpLoopPath
+ .vpVol = VP_VOL_3, //vpVol
+ .voiceMode = MAX_VOICE_MODE, //voiceMode
+ .vpInitGain = -1, //vpInitGain
+ .audio_ctrlFlag = {0}, //audio_ctrlFlag
+
+ .dtmfDirSel = DTMF_IDLE, //dtmfDirSel
+ .sample_rate = 0, //sample_rate
+ .useDtmfLoop = 0, //useDtmfLoop
+ .muteCount = 0, //muteCount
+ .vpLoopBkRunning = FALSE, //vpLoopBkRunning
+ .rxMuteEn = FALSE, //rxMuteEn
+ .firstRegZCATFlag = FALSE,
+#ifdef ECALL_SUPPORT
+ .ecallData = {0}, //ecallData
+#endif
+ .voice_nv_update = 0, // voice_nv_update
+ .useVoiceBuffer = 0,// 0 not use,1 use
+ .voiceBufferType = 0, //0 single core, 1 dual core
+
+};
+
+#endif
+
+#if 0
+
static T_zDrvVp_State s_vpState =
{
- NULL,
- NULL,
- NULL,
- NULL,
- 0,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- {0},
- {0},
- 0,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
+ NULL,//1 pVpRxInBuffer
+ NULL,//2 pVpTxInBuffer
+ NULL,//3 pVpRxOutPutBuffer
+ NULL,//4 pVpTxOutPutBuffer
+ 0,//5 inOutBufSize
+ NULL,//6 pVpInnerI2sCfg
+ NULL,//7 pVpExtI2sCfg
+ NULL,//8 pVpExtI2sWbCfg
+ NULL,//9 s_pVpTdmCfg
+ NULL,//10 s_pVpTdmWbCfg
+ NULL,//11 pVpTdmCfg
+ {0},//12 pMsg
+ {0},//13 pMsgBuf[2]
+ //0,//14
+ NULL,//15 vpThread
+ NULL,//16 rcvDtmfThread
+ NULL,//17 vpSemaphore
+ NULL,//18 vpThreadQuitSema
+ NULL,//19 vpLoopThread
+ NULL,//20 vpLoopSemaphore
+ NULL//21 vpState
// {0}
};
+#else
+T_zDrvVp_State s_vpState =
+{
+ .pVpRxInBuffer = NULL,//1
+ .pVpTxInBuffer = NULL,//2
+ .pVpRxOutPutBuffer = NULL,//3
+ .pVpTxOutPutBuffer = NULL,//4
+ .inOutBufSize = 0,//5
+ .pVpInnerI2sCfg = NULL,//6
+ .pVpExtI2sCfg = NULL,//7
+ .pVpExtI2sWbCfg = NULL,//8
+ .s_pVpTdmCfg = NULL,//9
+ .s_pVpTdmWbCfg = NULL,//10
+ .pVpTdmCfg = NULL,//11
+ .pMsg = {0},//12
+ .pMsgBuf = {0},//13
+ .vpThread = NULL,//14
+ .rcvDtmfThread = NULL,//15
+ .vpSemaphore = NULL,//16
+ .vpThreadQuitSema = NULL,//17
+ .vpLoopThread = NULL,//18
+ .vpLoopSemaphore = NULL,//19
+
+ .vpState = NULL,//
+// {0}
+};
+
+
+#endif
+
+
//for test whiteNoise
#ifdef TEST_WHITE_NOISE
@@ -271,8 +359,8 @@
****************************************************************************/
#ifdef CONFIG_VOICE_BUFFER_DRV
#ifdef _VBUFF_IN_MULTI_CORE
-#define RPMSG_CAP_ID 1
-
+//#define RPMSG_CAP_ID 1
+#if 0
ZOSS_TIMER_ID s_voiceTimerId ;
ZOSS_SEMAPHORE_ID s_voiceRdSema;
ZOSS_SEMAPHORE_ID s_voiceWrSema;
@@ -283,9 +371,22 @@
int vb_read_count = 0;
int vb_write_count = 0;
+#else
+//define in hal_voicebuffer.c
+extern ZOSS_TIMER_ID s_voiceTimerId ;
+extern ZOSS_SEMAPHORE_ID s_voiceRdSema;
+extern ZOSS_SEMAPHORE_ID s_voiceWrSema;
+extern int timer_cb_count;
+extern int first_full_flag;
+extern int first_empty_flag;
-void voiceTimerCallBack(SINT32 para)
+extern int vb_read_count;
+extern int vb_write_count;
+
+#endif
+
+static void voiceTimerCallBack(SINT32 para)
{
T_ZDrvRpMsg_Msg icp_pMsg = {0};
@@ -316,22 +417,8 @@
// zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "voiceTimerCallBack timer=%u\n", cpu_clock(0)>>10);
}
-#define MAX_BUF_SIZE 640
-#define MAX_BUF_NUM 3
-
-enum{
- UP_LINK,
- DOWN_LINK
-};
-
-struct voice_ring_buffer {
- volatile uint read_pos;
- volatile uint write_pos;
- volatile char data[];
-
-};
-struct voice_ring_buffer *voice_buff[2] = {NULL,NULL};
+extern struct voice_ring_buffer *voice_buff[2];
@@ -460,10 +547,10 @@
extern int voicebuffer_dlqueue_write(void *buf, unsigned int size);
extern void voice_inform_to_app(void);
//static DECLARE_COMPLETION(s_voice_completion);
-ZOSS_TIMER_ID s_voiceTimerId ;
-ZOSS_SEMAPHORE_ID s_voiceRdSema;
-ZOSS_SEMAPHORE_ID s_voiceWrSema;
-void voiceTimerCallBack(SINT32 para)
+extern ZOSS_TIMER_ID s_voiceTimerId ;
+extern ZOSS_SEMAPHORE_ID s_voiceRdSema;
+extern ZOSS_SEMAPHORE_ID s_voiceWrSema;
+static void voiceTimerCallBack(SINT32 para)
{
// complete_all(&s_voice_completion);
zOss_PutSemaphore(s_voiceWrSema);
@@ -476,7 +563,7 @@
#endif
-SINT32 vp_rxsem_count_Init(void)
+static SINT32 vp_rxsem_count_Init(void)
{
UINT32 i = 0;
UINT32 semCount = 0;
@@ -495,7 +582,7 @@
return DRV_SUCCESS;
}
-SINT32 vp_txsem_count_Init(void)
+static SINT32 vp_txsem_count_Init(void)
{
UINT32 i = 0;
UINT32 semCount = 0;
@@ -522,6 +609,7 @@
#endif
+
#ifdef ECALL_SUPPORT
int eWrErr = 0;
UINT8 e_reg_flag = 0;
@@ -533,6 +621,7 @@
T_Ecall_State preEcallRxSta = 0;
T_Ecall_State preEcallTxSta = 0;
+
//tx
SINT32 rdsem_count_Init(T_Sem_Owner owner)
{
@@ -706,7 +795,7 @@
e_startCount = 0;
e_stopCount = 0;
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "ecall_Open end!\n");
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "ecall_Open bufsize=%d end!\n",bufsize);
return DRV_SUCCESS;
@@ -758,7 +847,7 @@
{
SINT32 ret = DRV_SUCCESS;
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s start e_startCount=%d \n",__FUNCTION__,e_startCount);
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: start e_startCount=%d \n",__FUNCTION__,e_startCount);
if(g_voiceVar.ecallData.ecallSta == ECALL_ST_START)
{
zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "ecall_Start repeat ecallSta=%d\n",g_voiceVar.ecallData.ecallSta);
@@ -785,7 +874,7 @@
SINT32 ecall_Stop(VOID)
{
SINT32 ret = DRV_SUCCESS;
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s start e_stopCount=%d \n",__FUNCTION__,e_stopCount);
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: start e_stopCount=%d \n",__FUNCTION__,e_stopCount);
if((g_voiceVar.ecallData.ecallSta == ECALL_ST_STOP)||(g_voiceVar.ecallData.ecallSta == ECALL_ST_CLOSE))
{
@@ -833,7 +922,7 @@
{
if(dir == DIR_RX)
{
-
+
preEcallRxSta = g_voiceVar.ecallData.ecallRxSta;
g_voiceVar.ecallData.ecallRxSta = ECALL_ST_RX_INUSE;
//zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "update_ecall_state rx state change to ecallRxSta = %d\n", g_voiceVar.ecallData.ecallRxSta);
@@ -964,9 +1053,15 @@
return DRV_SUCCESS;
}
+
SINT32 zDrvExtAudio_Open(T_ZDrvI2s_TransMode i2sTransMode)
{
+
int ret = 0;
+ if (g_voiceVar.useVoiceBuffer == 1){
+ return ret;
+ }
+
#ifdef CONFIG_VOICE_BUFFER_DRV
#else
if (g_voiceVar.g_isUseTdm != 1)
@@ -984,6 +1079,9 @@
SINT32 zDrvExtAudio_Reset()
{
int ret = 0;
+ if (g_voiceVar.useVoiceBuffer == 1){
+ return ret;
+ }
#ifdef CONFIG_VOICE_BUFFER_DRV
#else
if (g_voiceVar.g_isUseTdm != 1)
@@ -1000,6 +1098,9 @@
SINT32 zDrvExtAudio_Close()
{
int ret = 0;
+ if (g_voiceVar.useVoiceBuffer == 1){
+ return ret;
+ }
#ifdef CONFIG_VOICE_BUFFER_DRV
#else
if (g_voiceVar.g_isUseTdm != 1)
@@ -1017,6 +1118,9 @@
SINT32 zDrvExtAudio_Write_Prepare(T_ZDrvI2S_Cfg *i2sCfg, T_ZDrvTdm_Cfg *tdmCfg)
{
int ret = 0;
+ if (g_voiceVar.useVoiceBuffer == 1){
+ return ret;
+ }
#ifdef CONFIG_VOICE_BUFFER_DRV
#else
if (g_voiceVar.g_isUseTdm != 1)
@@ -1035,6 +1139,9 @@
T_ZDrvTdm_Params *tdmParams, T_ZDrvTdm_Cfg *tdmCfg)
{
int ret = 0;
+ if (g_voiceVar.useVoiceBuffer == 1){
+ return ret;
+ }
#ifdef CONFIG_VOICE_BUFFER_DRV
#else
if (g_voiceVar.g_isUseTdm != 1)
@@ -1052,6 +1159,9 @@
T_ZDrvTdm_Params *tdmParams, T_ZDrvTdm_Cfg *tdmCfg)
{
int ret = 0;
+ if (g_voiceVar.useVoiceBuffer == 1){
+ return ret;
+ }
#ifdef CONFIG_VOICE_BUFFER_DRV
#else
if (g_voiceVar.g_isUseTdm != 1)
@@ -1068,6 +1178,9 @@
SINT32 zDrvExtAudio_Read_Prepare(T_ZDrvI2S_Cfg *i2sCfg, T_ZDrvTdm_Cfg *tdmCfg)
{
int ret = 0;
+ if (g_voiceVar.useVoiceBuffer == 1){
+ return ret;
+ }
#ifdef CONFIG_VOICE_BUFFER_DRV
#else
if (g_voiceVar.g_isUseTdm != 1)
@@ -1086,6 +1199,9 @@
T_ZDrvTdm_Params *tdmParams, T_ZDrvTdm_Cfg *tdmCfg)
{
int ret = 0;
+ if (g_voiceVar.useVoiceBuffer == 1){
+ return ret;
+ }
#ifdef CONFIG_VOICE_BUFFER_DRV
#else
if (g_voiceVar.g_isUseTdm != 1)
@@ -1103,6 +1219,9 @@
T_ZDrvTdm_Params *tdmParams, T_ZDrvTdm_Cfg *tdmCfg)
{
int ret = 0;
+ if (g_voiceVar.useVoiceBuffer == 1){
+ return ret;
+ }
#ifdef CONFIG_VOICE_BUFFER_DRV
#else
if (g_voiceVar.g_isUseTdm != 1)
@@ -1119,6 +1238,9 @@
SINT32 zDrvExtAudio_Write(const UINT8 *pBuf, UINT32 uiLen)
{
int ret = 0;
+ if (g_voiceVar.useVoiceBuffer == 1){
+ return ret;
+ }
#ifdef CONFIG_VOICE_BUFFER_DRV
#else
if (g_voiceVar.g_isUseTdm != 1)
@@ -1136,6 +1258,9 @@
SINT32 zDrvExtAudio_Read(const UINT8 **pBuf, UINT32 *uiLen)
{
int ret = 0;
+ if (g_voiceVar.useVoiceBuffer == 1){
+ return ret;
+ }
#ifdef CONFIG_VOICE_BUFFER_DRV
#else
if (g_voiceVar.g_isUseTdm != 1)
@@ -1195,9 +1320,13 @@
return ret;
}
#endif
+
SINT32 zDrvExtAudio_Write_Stop()
{
int ret = 0;
+ if (g_voiceVar.useVoiceBuffer == 1){
+ return ret;
+ }
#ifdef CONFIG_VOICE_BUFFER_DRV
#else
if (g_voiceVar.g_isUseTdm != 1)
@@ -1215,6 +1344,9 @@
SINT32 zDrvExtAudio_Read_Stop()
{
int ret = 0;
+ if (g_voiceVar.useVoiceBuffer == 1){
+ return ret;
+ }
#ifdef CONFIG_VOICE_BUFFER_DRV
#else
if (g_voiceVar.g_isUseTdm != 1)
@@ -1232,6 +1364,9 @@
SINT32 zDrvExtAudio_GetBuf(UINT8 **pBuf, UINT32 *uiLen)
{
int ret = 0;
+ if (g_voiceVar.useVoiceBuffer == 1){
+ return ret;
+ }
#ifdef CONFIG_VOICE_BUFFER_DRV
#else
if (g_voiceVar.g_isUseTdm != 1)
@@ -1263,6 +1398,9 @@
SINT32 zDrvExtAudio_FreeBuf(UINT8 *pBuf)
{
int ret = 0;
+ if (g_voiceVar.useVoiceBuffer == 1){
+ return ret;
+ }
#ifdef CONFIG_VOICE_BUFFER_DRV
#else
if (g_voiceVar.g_isUseTdm != 1)
@@ -1279,6 +1417,10 @@
void zDrvExtAudio_RlsAllSemaBeforeStop(void)
{
+ if (g_voiceVar.useVoiceBuffer == 1){
+ return;
+ }
+
#ifdef CONFIG_VOICE_BUFFER_DRV
#else
if (g_voiceVar.g_isUseTdm == 1)
@@ -1296,6 +1438,10 @@
void zDrvExtAudio_RxRlsSemaBeforeStop(void)
{
+ if (g_voiceVar.useVoiceBuffer == 1){
+ return;
+ }
+
#ifdef CONFIG_VOICE_BUFFER_DRV
#else
if (g_voiceVar.g_isUseTdm == 1)
@@ -1311,6 +1457,10 @@
void zDrvExtAudio_TxRlsSemaBeforeStop(void)
{
+ if (g_voiceVar.useVoiceBuffer == 1){
+ return;
+ }
+
#ifdef CONFIG_VOICE_BUFFER_DRV
#else
if (g_voiceVar.g_isUseTdm == 1)
@@ -1595,7 +1745,19 @@
ext_aRdCount = 0;
ext_aRdFBufCount = 0;
+
+
+ if (g_voiceVar.useVoiceBuffer == 1)
+ {
+ ret = vp_Open_Vbuffer();
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_Open_Vbuffer ret=%d!\n",ret);
+ }
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_Open_Vbuffer useVoiceBuffer=%d voiceBufferType=%d!\n",g_voiceVar.useVoiceBuffer,g_voiceVar.voiceBufferType);
+
+
+
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_Open end!\n");
return DRV_SUCCESS;
@@ -2282,7 +2444,7 @@
ret = ecall_Close();
if (ret != DRV_SUCCESS)
{
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "ecall_Open error,ret=%d", ret);
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s:ecall_Close error,ret=%d",__func__,ret);
}
e_reg_flag = 0;
}
@@ -2305,6 +2467,12 @@
zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: timer_cb_count %d,first_full_flag %d,first_empty_flag %d,vb_read_count %d,vb_write_count %d!\n",__FUNCTION__,timer_cb_count,first_full_flag,first_empty_flag,vb_read_count,vb_write_count);
#endif
+ if(g_voiceVar.useVoiceBuffer == 1)
+ {
+ ret = vp_Close_Vbuffer();
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_Close_Vbuffer ret=%d!\n",ret);
+
+ }
zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: ext_aRdCount %d,ext_aRdFBufCount %d!\n",__FUNCTION__,ext_aRdCount,ext_aRdFBufCount);
@@ -2337,176 +2505,185 @@
// {
// zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "is the i2s loopback mode");
// }
+
+ if (g_voiceVar.useVoiceBuffer == 1)
+ {
+ ret = vp_VoiceI2sStart_Vbuffer();
+ }
+ else
+ {
+
#ifdef CONFIG_VOICE_BUFFER_DRV
- ret = zDrvI2S_Read_Start(I2S_2, &s_speechState.i2sReadParam, s_vpState.pVpInnerI2sCfg);
- if (ret != DRV_SUCCESS)
- {
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvI2S2_Read_Start failed ret is %d .\n", ret);
- return DRV_ERROR;
- }
-
- zOss_StartTimer(s_voiceTimerId, 20, voiceTimerCallBack, 0);
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart VB zOss_StartTimer\n");
+ ret = zDrvI2S_Read_Start(I2S_2, &s_speechState.i2sReadParam, s_vpState.pVpInnerI2sCfg);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvI2S2_Read_Start failed ret is %d .\n", ret);
+ return DRV_ERROR;
+ }
+
+ zOss_StartTimer(s_voiceTimerId, 20, voiceTimerCallBack, 0);
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart VB zOss_StartTimer\n");
- ret = zDrvI2S_Write_Start(I2S_2, &s_speechState.i2sWriteParam, s_vpState.pVpInnerI2sCfg);
+ ret = zDrvI2S_Write_Start(I2S_2, &s_speechState.i2sWriteParam, s_vpState.pVpInnerI2sCfg);
- ret += zDrvI2S_GetBuf(I2S_2, &write_buf, &write_len);
- if (ret != DRV_SUCCESS)
- {
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error7:zDrvI2S_GetBuf I2S_2 ret=%d", ret);
- return DRV_ERROR;
- }
- zOss_Memset(write_buf, 0, write_len);
- ret = zDrvI2S_Write(I2S_2, write_buf, write_len);
- if (ret != DRV_SUCCESS)
- {
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error12:zDrvI2S_Write I2S_2 ret=%d", ret);
- }
-
- ret += zDrvI2S_GetBuf(I2S_2, &write_buf, &write_len);
- if (ret != DRV_SUCCESS)
- {
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error13:zDrvI2S_GetBuf I2S_2 ret=%d", ret);
- return DRV_ERROR;
- }
- zOss_Memset(write_buf, 0, write_len);
- ret = zDrvI2S_Write(I2S_2, write_buf, write_len);
- if (ret != DRV_SUCCESS)
- {
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error14:zDrvI2S_Write I2S_2 ret=%d", ret);
- }
+ ret += zDrvI2S_GetBuf(I2S_2, &write_buf, &write_len);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error7:zDrvI2S_GetBuf I2S_2 ret=%d", ret);
+ return DRV_ERROR;
+ }
+ zOss_Memset(write_buf, 0, write_len);
+ ret = zDrvI2S_Write(I2S_2, write_buf, write_len);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error12:zDrvI2S_Write I2S_2 ret=%d", ret);
+ }
+
+ ret += zDrvI2S_GetBuf(I2S_2, &write_buf, &write_len);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error13:zDrvI2S_GetBuf I2S_2 ret=%d", ret);
+ return DRV_ERROR;
+ }
+ zOss_Memset(write_buf, 0, write_len);
+ ret = zDrvI2S_Write(I2S_2, write_buf, write_len);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error14:zDrvI2S_Write I2S_2 ret=%d", ret);
+ }
#ifdef _VBUFF_IN_MULTI_CORE
- voice_buffer_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
+ voice_buffer_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
#else
- voicebuffer_dlqueue_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
+ voicebuffer_dlqueue_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
#endif
#else
- if (g_voiceVar.isUseSlicCodec == 1)
- {
-
- if (s_speechState.i2sIsRstFlag == FALSE)
+ if (g_voiceVar.isUseSlicCodec == 1)
{
- ret = zDrvExtAudio_Reset();
- if (ret != DRV_SUCCESS)
+
+ if (s_speechState.i2sIsRstFlag == FALSE)
{
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart zDrvExtAudio_Reset() err ret=%d ", ret);
- return DRV_ERROR;
+ ret = zDrvExtAudio_Reset();
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart zDrvExtAudio_Reset() err ret=%d ", ret);
+ return DRV_ERROR;
+ }
+ s_speechState.i2sIsRstFlag = TRUE;
}
- s_speechState.i2sIsRstFlag = TRUE;
+
}
- }
+ ret = zDrvI2S_Read_Start(I2S_2, &s_speechState.i2sReadParam, s_vpState.pVpInnerI2sCfg);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvI2S2_Read_Start failed ret is %d .\n", ret);
+ return DRV_ERROR;
+ }
- ret = zDrvI2S_Read_Start(I2S_2, &s_speechState.i2sReadParam, s_vpState.pVpInnerI2sCfg);
- if (ret != DRV_SUCCESS)
- {
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvI2S2_Read_Start failed ret is %d .\n", ret);
- return DRV_ERROR;
- }
+ ret += zDrvExtAudio_Read_Start(&s_speechState.i2sReadParam, s_speechState.pVpI2sCfg, &s_vpTdmReadParam, s_vpState.pVpTdmCfg);
- ret += zDrvExtAudio_Read_Start(&s_speechState.i2sReadParam, s_speechState.pVpI2sCfg, &s_vpTdmReadParam, s_vpState.pVpTdmCfg);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvI2S1_Read_Start failed ret is %d .\n", ret);
+ zDrvI2S_Read_Stop(I2S_2);
+ return DRV_ERROR;
+ }
- if (ret != DRV_SUCCESS)
- {
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvI2S1_Read_Start failed ret is %d .\n", ret);
- zDrvI2S_Read_Stop(I2S_2);
- return DRV_ERROR;
- }
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart zDrvI2S_Read_Start ret=%d", ret);
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart zDrvI2S_Read_Start ret=%d", ret);
+ ret = zDrvI2S_Read(I2S_2, &read_buf, &read_len);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error:zDrvI2S_Read I2S_2 ret=%d", ret);
+ return DRV_ERROR;
+ }
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart zDrvI2S_Read I2S_2 ret=%d", ret);
- ret = zDrvI2S_Read(I2S_2, &read_buf, &read_len);
- if (ret != DRV_SUCCESS)
- {
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error:zDrvI2S_Read I2S_2 ret=%d", ret);
- return DRV_ERROR;
- }
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart zDrvI2S_Read I2S_2 ret=%d", ret);
+ ret = zDrvExtAudio_Read(&read_buf, &read_len);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error:zDrvI2S_Read ret=%d", ret);
+ return DRV_ERROR;
+ }
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart zDrvI2S_Read I2S_1 ret=%d", ret);
- ret = zDrvExtAudio_Read(&read_buf, &read_len);
- if (ret != DRV_SUCCESS)
- {
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error:zDrvI2S_Read ret=%d", ret);
- return DRV_ERROR;
- }
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart zDrvI2S_Read I2S_1 ret=%d", ret);
+ ret += zDrvExtAudio_Read_Stop();
+ ret += zDrvI2S_Read_Stop(I2S_2);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error:zDrvI2S_Read ret=%d", ret);
+ return DRV_ERROR;
+ }
- ret += zDrvExtAudio_Read_Stop();
- ret += zDrvI2S_Read_Stop(I2S_2);
- if (ret != DRV_SUCCESS)
- {
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error:zDrvI2S_Read ret=%d", ret);
- return DRV_ERROR;
- }
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart first read/write stop ret=%d", ret);
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart first read/write stop ret=%d", ret);
+ ret += zDrvExtAudio_Read_Start(&s_speechState.i2sReadParam, s_speechState.pVpI2sCfg, &s_vpTdmReadParam, s_vpState.pVpTdmCfg);
- ret += zDrvExtAudio_Read_Start(&s_speechState.i2sReadParam, s_speechState.pVpI2sCfg, &s_vpTdmReadParam, s_vpState.pVpTdmCfg);
+ ret += zDrvI2S_Read_Start(I2S_2, &s_speechState.i2sReadParam, s_vpState.pVpInnerI2sCfg);
- ret += zDrvI2S_Read_Start(I2S_2, &s_speechState.i2sReadParam, s_vpState.pVpInnerI2sCfg);
+ ret += zDrvExtAudio_Write_Start(&s_speechState.i2sWriteParam, s_speechState.pVpI2sCfg, &s_VpTdmWriteParam, s_vpState.pVpTdmCfg);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error4:zDrvI2S_Write_Start ret=%d", ret);
+ return DRV_ERROR;
+ }
+ ret += zDrvExtAudio_GetBuf(&write_buf, &write_len);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error5:zDrvI2S_GetBuf ret=%d", ret);
+ return DRV_ERROR;
+ }
- ret += zDrvExtAudio_Write_Start(&s_speechState.i2sWriteParam, s_speechState.pVpI2sCfg, &s_VpTdmWriteParam, s_vpState.pVpTdmCfg);
- if (ret != DRV_SUCCESS)
- {
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error4:zDrvI2S_Write_Start ret=%d", ret);
- return DRV_ERROR;
- }
- ret += zDrvExtAudio_GetBuf(&write_buf, &write_len);
- if (ret != DRV_SUCCESS)
- {
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error5:zDrvI2S_GetBuf ret=%d", ret);
- return DRV_ERROR;
- }
-
- zOss_Memset(write_buf, 0, write_len);
- ret += zDrvExtAudio_Write(write_buf, write_len);
- if (ret != DRV_SUCCESS)
- {
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error6:zDrvI2S_Write ret=%d", ret);
- return DRV_ERROR;
- }
- ret = zDrvI2S_Write_Start(I2S_2, &s_speechState.i2sWriteParam, s_vpState.pVpInnerI2sCfg);
- ret += zDrvI2S_GetBuf(I2S_2, &write_buf, &write_len);
- if (ret != DRV_SUCCESS)
- {
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error7:zDrvI2S_GetBuf I2S_2 ret=%d", ret);
- return DRV_ERROR;
- }
- zOss_Memset(write_buf, 0, write_len);
- ret = zDrvI2S_Write(I2S_2, write_buf, write_len);
- if (ret != DRV_SUCCESS)
- {
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error8:zDrvI2S_Write I2S_2 ret=%d", ret);
- return DRV_ERROR;
- }
- ret += zDrvExtAudio_GetBuf(&write_buf, &write_len);
- if (ret != DRV_SUCCESS)
- {
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error9:zDrvI2S_GetBuf ret=%d", ret);
- return DRV_ERROR;
- }
- zOss_Memset(write_buf, 0, write_len);
- ret += zDrvExtAudio_Write(write_buf, write_len);
- if (ret != DRV_SUCCESS)
- {
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error10:zDrvI2S_Write ret=%d", ret);
- return DRV_ERROR;
- }
- ret += zDrvI2S_GetBuf(I2S_2, &write_buf, &write_len);
- if (ret != DRV_SUCCESS)
- {
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error11:zDrvI2S_GetBuf I2S_2 ret=%d", ret);
- return DRV_ERROR;
- }
- zOss_Memset(write_buf, 0, write_len);
- ret = zDrvI2S_Write(I2S_2, write_buf, write_len);
- if (ret != DRV_SUCCESS)
- {
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error12:zDrvI2S_Write I2S_2 ret=%d", ret);
- }
+ zOss_Memset(write_buf, 0, write_len);
+ ret += zDrvExtAudio_Write(write_buf, write_len);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error6:zDrvI2S_Write ret=%d", ret);
+ return DRV_ERROR;
+ }
+ ret = zDrvI2S_Write_Start(I2S_2, &s_speechState.i2sWriteParam, s_vpState.pVpInnerI2sCfg);
+ ret += zDrvI2S_GetBuf(I2S_2, &write_buf, &write_len);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error7:zDrvI2S_GetBuf I2S_2 ret=%d", ret);
+ return DRV_ERROR;
+ }
+ zOss_Memset(write_buf, 0, write_len);
+ ret = zDrvI2S_Write(I2S_2, write_buf, write_len);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error8:zDrvI2S_Write I2S_2 ret=%d", ret);
+ return DRV_ERROR;
+ }
+ ret += zDrvExtAudio_GetBuf(&write_buf, &write_len);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error9:zDrvI2S_GetBuf ret=%d", ret);
+ return DRV_ERROR;
+ }
+ zOss_Memset(write_buf, 0, write_len);
+ ret += zDrvExtAudio_Write(write_buf, write_len);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error10:zDrvI2S_Write ret=%d", ret);
+ return DRV_ERROR;
+ }
+ ret += zDrvI2S_GetBuf(I2S_2, &write_buf, &write_len);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error11:zDrvI2S_GetBuf I2S_2 ret=%d", ret);
+ return DRV_ERROR;
+ }
+ zOss_Memset(write_buf, 0, write_len);
+ ret = zDrvI2S_Write(I2S_2, write_buf, write_len);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error12:zDrvI2S_Write I2S_2 ret=%d", ret);
+ }
#endif
+ }
#ifdef ECALL_SUPPORT
if((g_voiceVar.audio_ctrlFlag.isUseEcall == 1)&&(e_reg_flag == 1))
{
@@ -2657,18 +2834,27 @@
zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvVp_VoiceWorkStop call voice_ToneMixerStop !\n");
g_voiceVar.vpI2sStatus = VP_I2S_OPEN;
-#ifdef CONFIG_VOICE_BUFFER_DRV
- //complete_all(&s_voice_completion);
- zOss_PutSemaphore(s_voiceRdSema);
- zOss_PutSemaphore(s_voiceWrSema);
- zOss_StopTimer(s_voiceTimerId);
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvVp_VoiceWorkStop zOss_StopTimer\n");
-#else
- //zDrvI2s_RxRlsSemaBeforeStop(I2S_1);
- //zDrvI2s_TxRlsSemaBeforeStop(I2S_1);
- zDrvExtAudio_RlsAllSemaBeforeStop();
-#endif
+
+
+ if (g_voiceVar.useVoiceBuffer == 1)
+ {
+ ret = zDrvVp_VoiceWorkStop_Vbuffer();
+ }
+ else
+ {
+#ifdef CONFIG_VOICE_BUFFER_DRV
+ //complete_all(&s_voice_completion);
+ zOss_PutSemaphore(s_voiceRdSema);
+ zOss_PutSemaphore(s_voiceWrSema);
+ zOss_StopTimer(s_voiceTimerId);
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvVp_VoiceWorkStop zOss_StopTimer\n");
+#else
+ //zDrvI2s_RxRlsSemaBeforeStop(I2S_1);
+ //zDrvI2s_TxRlsSemaBeforeStop(I2S_1);
+ zDrvExtAudio_RlsAllSemaBeforeStop();
+#endif
+ }
zDrvI2s_RxRlsSemaBeforeStop(I2S_2);
zDrvI2s_TxRlsSemaBeforeStop(I2S_2);
@@ -2736,10 +2922,19 @@
}
g_voiceVar.vpI2sStatus = VP_I2S_INUSE;
+
+
+ if (g_voiceVar.useVoiceBuffer == 1)
+ {
+ ret = vp_VolteReadStart_Vbuffer();
+ }
+ else
+ {
#ifdef CONFIG_VOICE_BUFFER_DRV
- zOss_StartTimer(s_voiceTimerId, 20, voiceTimerCallBack, 0);
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteReadStart zOss_StartTimer start\n");
-#endif
+ zOss_StartTimer(s_voiceTimerId, 20, voiceTimerCallBack, 0);
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteReadStart zOss_StartTimer start\n");
+#endif
+ }
zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteReadStart \n");
return DRV_SUCCESS;
@@ -2748,6 +2943,15 @@
SINT32 vp_VolteReadStop(VOID)
{
SINT32 ret = DRV_SUCCESS;
+
+
+ if (g_voiceVar.useVoiceBuffer == 1)
+ {
+ ret = vp_VolteReadStop_Vbuffer();
+ return ret;
+ }
+
+
#ifdef CONFIG_VOICE_BUFFER_DRV
zOss_PutSemaphore(s_voiceRdSema);
#else
@@ -2844,46 +3048,54 @@
}
g_voiceVar.vpI2sStatus = VP_I2S_INUSE;
+
+ if (g_voiceVar.useVoiceBuffer == 1)
+ {
+ vp_VolteWriteStart_Vbuffer();
+ }
+ else
+ {
#ifdef CONFIG_VOICE_BUFFER_DRV
#ifdef _VBUFF_IN_MULTI_CORE
- voice_buffer_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
+ voice_buffer_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
#else
- voicebuffer_dlqueue_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
+ voicebuffer_dlqueue_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
#endif
#else
- ret = zDrvExtAudio_GetBuf(&write_buf, &write_len);
- if (ret != DRV_SUCCESS)
- {
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStart error1:zDrvI2S_GetBuf I2S_1 ret=%d", ret);
- zDrvExtAudio_Write_Stop();
- return DRV_ERROR;
- }
- zOss_Memset(write_buf, 0, write_len);
- ret = zDrvExtAudio_Write(write_buf, write_len);
- if (ret != DRV_SUCCESS)
- {
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStart error2:zDrvI2S_Write I2S_1 ret=%d", ret);
- zDrvExtAudio_Write_Stop();
- return DRV_ERROR;
- }
- ret = zDrvExtAudio_GetBuf(&write_buf, &write_len);
- if (ret != DRV_SUCCESS)
- {
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStart error3:zDrvI2S_GetBuf I2S_1 ret=%d", ret);
- zDrvExtAudio_Write_Stop();
- return DRV_ERROR;
- }
- zOss_Memset(write_buf, 0, write_len);
- ret = zDrvExtAudio_Write(write_buf, write_len);
- if (ret != DRV_SUCCESS)
- {
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStart error4:zDrvI2S_Write I2S_1 ret=%d", ret);
- zDrvExtAudio_Write_Stop();
- return DRV_ERROR;
- }
+ ret = zDrvExtAudio_GetBuf(&write_buf, &write_len);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStart error1:zDrvI2S_GetBuf I2S_1 ret=%d", ret);
+ zDrvExtAudio_Write_Stop();
+ return DRV_ERROR;
+ }
+ zOss_Memset(write_buf, 0, write_len);
+ ret = zDrvExtAudio_Write(write_buf, write_len);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStart error2:zDrvI2S_Write I2S_1 ret=%d", ret);
+ zDrvExtAudio_Write_Stop();
+ return DRV_ERROR;
+ }
+ ret = zDrvExtAudio_GetBuf(&write_buf, &write_len);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStart error3:zDrvI2S_GetBuf I2S_1 ret=%d", ret);
+ zDrvExtAudio_Write_Stop();
+ return DRV_ERROR;
+ }
+ zOss_Memset(write_buf, 0, write_len);
+ ret = zDrvExtAudio_Write(write_buf, write_len);
+ if (ret != DRV_SUCCESS)
+ {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStart error4:zDrvI2S_Write I2S_1 ret=%d", ret);
+ zDrvExtAudio_Write_Stop();
+ return DRV_ERROR;
+ }
#endif
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStart \n");
+ }
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStart end\n");
return DRV_SUCCESS;
}
@@ -2891,6 +3103,13 @@
SINT32 vp_VolteWriteStop(VOID)
{
SINT32 ret = DRV_SUCCESS;
+ if (g_voiceVar.useVoiceBuffer == 1)
+ {
+ ret = vp_VolteWriteStop_Vbuffer();
+ return ret;
+ }
+
+
#ifdef CONFIG_VOICE_BUFFER_DRV
//complete_all(&s_voice_completion);
@@ -2961,6 +3180,11 @@
//UINT8 *pVoiceTempBuf = s_voiceTempBuffer;
#endif
+ if (g_voiceVar.useVoiceBuffer == 1)
+ {
+ ret = vp_WriteDataToCodec_Vbuffer(pBuf, count);
+ return ret;
+ }
if (pBuf == NULL)
@@ -3285,6 +3509,14 @@
UINT8 *ptemp8bit = NULL;
#endif
+ if (g_voiceVar.useVoiceBuffer == 1)
+ {
+ ret = vp_ReadDataFromCodec_Vbuffer(pBuf, count);
+ return ret;
+ }
+
+
+
if (pBuf == NULL)
{
return DRV_ERR_INVALID_PARAM;
@@ -3313,6 +3545,8 @@
// wait_for_completion_timeout(&s_voice_completion, 60);
zOss_GetSemaphore(s_voiceRdSema, 60);
#ifdef _VBUFF_IN_MULTI_CORE
+
+
voice_buffer_read(s_speechState.pVpTempTxInBuffer, s_speechState.totalFrameBufSize);
#else
@@ -3911,11 +4145,14 @@
SINT32 vp_CreateThreadSemaph(VOID)
{
+ SINT32 ret = 0;
+
s_vpState.vpSemaphore = zOss_CreateSemaphore("VpI2sReadWriteSemaphore", 0);
#ifdef _USE_WEBRTC_AUD
s_vpState.vpThread = zOss_CreateThread("vp_DataProcessThreadEntry", vp_DataProcessThreadEntry, 0, 8192, 15, 0, 1);
#else
- s_vpState.vpThread = zOss_CreateThread("vp_DataProcessThreadEntry", vp_DataProcessThreadEntry, 0, 1024, 15, 0, 1);
+ //s_vpState.vpThread = zOss_CreateThread("vp_DataProcessThreadEntry", vp_DataProcessThreadEntry, 0, 1024, 15, 0, 1);
+ s_vpState.vpThread = zOss_CreateThread("vp_DataProcessThreadEntry", vp_DataProcessThreadEntry, 0, 8192, 15, 0, 1);
#endif
#ifdef _OS_TOS
@@ -3937,6 +4174,9 @@
zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "create vp Thread sem err s_vpState.vpThread=%p,s_vpState.vpSemaphore=%p !\r\n", s_vpState.vpThread, s_vpState.vpSemaphore);
return DRV_ERROR;
}
+
+
+
#ifdef CONFIG_VOICE_BUFFER_DRV
// init_completion(&s_voice_completion);
s_voiceRdSema = zOss_CreateSemaphore("voice_rx_sem", 0);
@@ -3959,50 +4199,57 @@
return DRV_ERROR;
}
#ifdef _VBUFF_IN_MULTI_CORE
- SINT32 ret = 0;
+ //SINT32 ret = 0;
- //ret = zDrvRpMsg_CreateChannel(IPC_MSG_ACTOR_A9,channel_41,0x10);
- ret = zDrvRpMsg_CreateChannel_Cap(RPMSG_CAP_ID,channel_41,0x10);
+ //ret = zDrvRpMsg_CreateChannel(IPC_MSG_ACTOR_A9,channel_41,0x10);
+ ret = zDrvRpMsg_CreateChannel_Cap(RPMSG_CAP_ID,channel_41,0x10);
- if(DRV_SUCCESS != ret) {
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "create rpmsg err(%d) \n",ret);
- return DRV_ERROR;
- }
+ if(DRV_SUCCESS != ret) {
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "create rpmsg err(%d) \n",ret);
+ return DRV_ERROR;
+ }
+
+ volatile T_ZDrvRpMsg_Msg icp_pMsg = {0};
+ volatile unsigned int rpMsgBuf[2] = {0,0};
+ //printk( "vir_buf1:0x%x, vir_buf2:0x%x, phy_buf1:0x%x, phy_buf2:0x%x,\n",voice_buff[0],voice_buff[1],rpMsgBuf[0],rpMsgBuf[1]);
+ icp_pMsg.actorID = RPMSG_CAP_ID;
+ icp_pMsg.chID = channel_41;
+ icp_pMsg.flag &= ~RPMSG_READ_POLL;
+ icp_pMsg.buf = rpMsgBuf;
+ icp_pMsg.len = 8;
+ ret = zDrvRpMsg_Read_Cap(&icp_pMsg);
+ if(ret <= 0){
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "voice buffer rpmsg addr read fail,ret=%d \n",ret);
+ zOss_Printf(SUBMDL_HAL, PRINT_LEVEL_NORMAL, "ps voice buffer rpmsg addr read fail,ret=%d \n",ret);
- volatile T_ZDrvRpMsg_Msg icp_pMsg = {0};
- volatile unsigned int rpMsgBuf[2] = {0,0};
- //printk( "vir_buf1:0x%x, vir_buf2:0x%x, phy_buf1:0x%x, phy_buf2:0x%x,\n",voice_buff[0],voice_buff[1],rpMsgBuf[0],rpMsgBuf[1]);
- icp_pMsg.actorID = RPMSG_CAP_ID;
- icp_pMsg.chID = channel_41;
- icp_pMsg.flag &= ~RPMSG_READ_POLL;
- icp_pMsg.buf = rpMsgBuf;
- icp_pMsg.len = 8;
- ret = zDrvRpMsg_Read_Cap(&icp_pMsg);
- if(ret <= 0){
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "voice buffer rpmsg addr read fail,ret=%d \n",ret);
- zOss_Printf(SUBMDL_HAL, PRINT_LEVEL_NORMAL, "ps voice buffer rpmsg addr read fail,ret=%d \n",ret);
-
- }
- else{
- #if 0
+ }
+ else{
+ #if 0
- voice_buff[UP_LINK] = (struct voice_ring_buffer *)(rpMsgBuf[0]);
- voice_buff[DOWN_LINK] = (struct voice_ring_buffer *)(rpMsgBuf[1]);
- #else
+ voice_buff[UP_LINK] = (struct voice_ring_buffer *)(rpMsgBuf[0]);
+ voice_buff[DOWN_LINK] = (struct voice_ring_buffer *)(rpMsgBuf[1]);
+ #else
- voice_buff[UP_LINK] = (struct voice_ring_buffer *)ioremap_wc(rpMsgBuf[0], (sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
- voice_buff[DOWN_LINK] = (struct voice_ring_buffer *)ioremap_wc(rpMsgBuf[1],(sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
- #endif
-
- zOss_Printf(SUBMDL_HAL, PRINT_LEVEL_NORMAL, "ps rpmsg voice buffer addr,up vir buf=0x%x, down vir buf=0x%x ,up phy buf=0x%x, down phy buf=0x%x,size=%d \n" \
+ voice_buff[UP_LINK] = (struct voice_ring_buffer *)ioremap_wc(rpMsgBuf[0], (sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
+ voice_buff[DOWN_LINK] = (struct voice_ring_buffer *)ioremap_wc(rpMsgBuf[1],(sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
+ #endif
+
+ zOss_Printf(SUBMDL_HAL, PRINT_LEVEL_NORMAL, "ps rpmsg voice buffer addr,up vir buf=0x%x, down vir buf=0x%x ,up phy buf=0x%x, down phy buf=0x%x,size=%d \n" \
+ ,voice_buff[0],voice_buff[1],rpMsgBuf[0],rpMsgBuf[1],(sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "voice buffer addr,up vir buf=0x%x, down vir buf=0x%x ,up phy buf=0x%x, down phy buf=0x%x,size=%d \n" \
,voice_buff[0],voice_buff[1],rpMsgBuf[0],rpMsgBuf[1],(sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "voice buffer addr,up vir buf=0x%x, down vir buf=0x%x ,up phy buf=0x%x, down phy buf=0x%x,size=%d \n" \
- ,voice_buff[0],voice_buff[1],rpMsgBuf[0],rpMsgBuf[1],(sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
- }
+ }
#endif
+
+#else
+ //flag ctrl voicebuffer func
+ vp_CreateThreadSemaph_Vbuffer();
+
+
#endif
-
+
+
zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_CreateThreadSemaph success. \r\n");
return DRV_SUCCESS;
}
diff --git a/Uboot/cp/ps/modem/com/src/appstart/inc/version_number.h b/Uboot/cp/ps/modem/com/src/appstart/inc/version_number.h
index 072f131..a9ae08f 100755
--- a/Uboot/cp/ps/modem/com/src/appstart/inc/version_number.h
+++ b/Uboot/cp/ps/modem/com/src/appstart/inc/version_number.h
@@ -1,9 +1,9 @@
#if defined _CHIP_ZX297520
-#define VERSION_NUMBER "7520SCV2.01.01.02P56U06"
+#define VERSION_NUMBER "7520SCV2.01.01.02P56U09"
#endif
#if defined _CHIP_ZX297520V2
-#define VERSION_NUMBER "7520V2SCV2.01.01.02P56U06"
+#define VERSION_NUMBER "7520V2SCV2.01.01.02P56U09"
#endif
#if defined _CHIP_ZX297520V3
-#define VERSION_NUMBER "7520V3SCV2.01.01.02P56U06"
+#define VERSION_NUMBER "7520V3SCV2.01.01.02P56U09"
#endif
diff --git a/Uboot/cp/ps/modem/ps/inc/apuiccint.h b/Uboot/cp/ps/modem/ps/inc/apuiccint.h
index 57d364f..6d07534 100755
--- a/Uboot/cp/ps/modem/ps/inc/apuiccint.h
+++ b/Uboot/cp/ps/modem/ps/inc/apuiccint.h
@@ -1614,6 +1614,11 @@
#define Z_APUICC_EID_LEN (BYTE)10
+#define Z_UICC_CARD_READY (BYTE)0
+#define Z_UICC_CARD_PWROFF (BYTE)1
+#define Z_UICC_CARD_REMOVE (BYTE)2
+#define Z_UICC_CARD_ERROR (BYTE)3
+
/**************************************************************************
* È«¾ÖÊý¾ÝÀàÐͶ¨Òå *
**************************************************************************/
diff --git a/Uboot/cp/ps/modem/ps/inc/atipscom.h b/Uboot/cp/ps/modem/ps/inc/atipscom.h
index 72560ba..19bf907 100755
--- a/Uboot/cp/ps/modem/ps/inc/atipscom.h
+++ b/Uboot/cp/ps/modem/ps/inc/atipscom.h
@@ -429,6 +429,15 @@
#define Z_DEV_NV_RAT_VERSION_GSM_PRIORITY (BYTE)3
#define Z_DEV_NV_RAT_VERSION_DEFAULT (BYTE)4
+/*************************CEER¼Ç¼ģ¿éÃû*******************/
+#define Z_CEER_MM_ID (BYTE)0
+#define Z_CEER_SM_ID (BYTE)1
+#define Z_CEER_UICCMNG_ID (BYTE)2
+#define Z_CEER_ATI_ID (BYTE)3
+#define Z_CEER_CC_ID (BYTE)4
+#define Z_CEER_SMS_ID (BYTE)5
+#define Z_CEER_SS_ID (BYTE)6
+
/*V2-V3Ãû×Ö¼æÈÝend*/
#define Z_SUBMDL_NUM (BYTE)((SUBMDL_PSEND - SUBMDL_PSBASE) + 1)
diff --git a/Uboot/cp/ps/modem/ps/inc/atipsint.h b/Uboot/cp/ps/modem/ps/inc/atipsint.h
index 5a79eba..d037340 100755
--- a/Uboot/cp/ps/modem/ps/inc/atipsint.h
+++ b/Uboot/cp/ps/modem/ps/inc/atipsint.h
@@ -258,8 +258,14 @@
#define Z_ATIUMM_MsgNormalWithNewCell_Err (BYTE)180 //retry upon entry into a new cell
#define Z_ATIUMM_UeSecurityCapaMismatch (BYTE)181 //UE security capabilities mismatch
#define Z_ATIUMM_Securitymoderejected (BYTE)182 //Security mode rejected, unspecified
-#define Z_ATIUMM_TemperatureStart (BYTE)183 //οؿªÊ¼
-#define Z_ATIUMM_TemperatureStop (BYTE)184 //οؽáÊø
+#define Z_ATIUMM_TemperatureStart (BYTE)183 //οؿªÊ¼
+#define Z_ATIUMM_TemperatureStop (BYTE)184 //οؽáÊø
+#define Z_ATIUMM_GsmRfOnFail (BYTE)190 //GSM¿ªÉäÆµÊ§°Ü
+#define Z_ATIUMM_GsmRfOffFail (BYTE)191 //GSM¹ØÉäÆµÊ§°Ü
+#define Z_ATIUMM_WRfOnFail (BYTE)192 //W¿ªÉäÆµÊ§°Ü
+#define Z_ATIUMM_WRfOffFail (BYTE)193 //W¹ØÉäÆµÊ§°Ü
+#define Z_ATIUMM_LteRfOnFail (BYTE)194 //LTE¿ªÉäÆµÊ§°Ü
+#define Z_ATIUMM_LteRfOffFail (BYTE)195 //LTE¹ØÉäÆµÊ§°Ü
/*============MMÄ£¿éCEER´íÎóÂë=============================== */
#define Z_ATIMM_ImsiUnknownInHlr (BYTE)2 //IMSI unknown in HLR
@@ -315,7 +321,17 @@
#define Z_ATIMM_MsgNotCompatProtocolState (BYTE)101 //Message not compatible with protocol state
#define Z_ATIMM_ProtocolError (BYTE)111 //Protocol error, unspecified
-#define Z_ATIMM_UnspecifiedFail (BYTE)120 //Unspecified Failure
+#define Z_ATIMM_UnspecifiedFail (BYTE)120 //Unspecified Failure
+#define Z_ATIMM_RrcFailUnspecifiedFail (BYTE)121 //RRCÁ´Â·Ê§°Ü£¬·ÇÌØÊâÔÒò
+
+#define Z_ATIMM_T3210Exipre (BYTE)123 //3210³¬Ê±
+#define Z_ATIMM_T3213Exipre (BYTE)123 //3213³¬Ê±
+#define Z_ATIMM_T3214_16Exipre (BYTE)124 //3214/3216³¬Ê±
+#define Z_ATIMM_T3220Exipre (BYTE)125 //3220³¬Ê±
+#define Z_ATIMM_T3230Exipre (BYTE)126 //3230³¬Ê±
+#define Z_ATIMM_T3225Exipre (BYTE)127 //3225³¬Ê±
+#define Z_ATIMM_T3231Exipre (BYTE)128 //3231³¬Ê±
+#define Z_ATIMM_TwpgrExipre (BYTE)129 //Twpgr³¬Ê±
/*================ Ë«¿¨Ë«´ýÅжÏÁ½ÕÅ¿¨ÊÇ·ñÐèÒª½»»»===============================*/
#define Z_NO_NEED_CHANGE (BYTE)0
@@ -7674,7 +7690,12 @@
BYTE bRxlev; /*LTE Rsrp 0-97 GSM Rxlev 0-64 TD&W Rscp 0-91*/
BYTE bBlerFlg; /*ÊÇ·ñ´æÔÚBLERÖµÉϱ¨.bBlerFlg = 1±íʾÓÐÎóÂëÂÊÉϱ¨,bBlerFlg = 0±íʾÎÞÎóÂëÂÊÉϱ¨*/
BYTE bBler;
- BYTE abPadding[3];
+ BYTE bRsrq;/*LTE·þÎñÐ¡ÇøµÄRSRQ,ÎÞЧֵ0xff*/
+ BYTE bSinrInt; /*LTE·þÎñÐ¡ÇøµÄSINRµÄÕûÊýÖµ,ȡֵ·¶Î§0~60; ÕæÊµÖµ»ù´¡ÉϼÓ20;ÕæÊµÖµÈ¡Öµ·¶Î§: -20~40*/
+ BYTE bSinrDec; /*LTE·þÎñÐ¡ÇøµÄSINRȡֵ·¶Î§ 0~9*/
+ BYTE bRssiInt; /*LTE·þÎñÐ¡ÇøµÄRSSIµÄÕûÊýÖµ,ȡֵ·¶Î§0~133,0xffΪÎÞЧֵ; ÕæÊµÖµ»ù´¡ÉϼÓ129;ÕæÊµÖµÈ¡Öµ·¶Î§: -129~-4*/
+ BYTE bEcno; /*W·þÎñÐ¡ÇøµÄECNOµÄ²âÁ¿Öµ,ȡֵ·¶Î§0~49,0xffΪÎÞЧֵ*/
+ BYTE abPadding[2];
}T_zMmiaAs_RptRxlev_Ind;
/*==============================================================================
@@ -7689,7 +7710,7 @@
BYTE bSrcIndex; /* Ô´Ë÷Òý */
BYTE bDesIndex; /* Ä¿µÄË÷Òý*/
BYTE bAction; /*1:´ò¿ªÐ¡ÇøÐÅÏ¢Ö÷¶¯Éϱ¨£¬0:¹Ø±ÕÐ¡ÇøÐÅÏ¢Ö÷¶¯Éϱ¨*/
- BYTE bPadding;
+ BYTE bAtType;
}T_zMmiaAs_EM_CellInfo_Req;
/*==============================================================================
@@ -9040,5 +9061,8 @@
extern int get_cid_state(unsigned char cid);
extern BYTE zAti_GetS0Value(VOID);
extern DWORD zAti_GetUlRateIndTimerVal(BYTE bInsIdx);
+
+extern VOID zAs_AddNasTraceInfo(BYTE bRat, WORD bCeer, BYTE ModeId, BYTE bDomain);
+
#endif
diff --git a/Uboot/cp/ps/modem/ps/inc/pstraceint.h b/Uboot/cp/ps/modem/ps/inc/pstraceint.h
index 5e1b179..35ced57 100755
--- a/Uboot/cp/ps/modem/ps/inc/pstraceint.h
+++ b/Uboot/cp/ps/modem/ps/inc/pstraceint.h
@@ -3445,9 +3445,10 @@
WORD wDrx; //DRXÖÜÆÚ£¬µ¥Î»ms
WORD wTac;
WORD wT3412; //T3412¶¨Ê±Æ÷³¤¶È£¬µ¥Î»s
- WORD wPadding;
+ BYTE bSinrInt; /*·þÎñÐ¡ÇøµÄSINRµÄÕûÊýÖµ,ȡֵ·¶Î§0~60; ÕæÊµÖµ»ù´¡ÉϼÓ20;ÕæÊµÖµÈ¡Öµ·¶Î§: -20~40*/
+ BYTE bSinrDec; /*·þÎñÐ¡ÇøµÄSINRȡֵ·¶Î§ 0~9*/
T_zEM_PlmnId tPlmnId; /*µ±Ç°×¤ÁôµÄplmnid*/
- BYTE bPadding;
+ BYTE bRssiInt; /*·þÎñÐ¡ÇøµÄRSSIµÄÕûÊýÖµ,ȡֵ·¶Î§0~133,0xffΪÎÞЧֵ;ÕæÊµÖµ»ù´¡ÉϼÓ129;ÕæÊµÖµÈ¡Öµ·¶Î§: -129~-4*/
}T_zEm_Lte_NasInfo;
/* QoS Ïà¹ØÐÅÏ¢ */
@@ -4412,6 +4413,52 @@
}uEmInfo;
}T_zEM_EmInfo_Ind;
+typedef struct {
+ DWORD dwCellId;
+ WORD wLac;
+ BYTE bBer;
+ BYTE bPadding;
+ BYTE bRssi;
+ T_zEM_PlmnId tPlmn;
+}T_zAt_Gsm_SCellInfo;
+
+typedef struct {
+ BYTE bStateInd;
+ T_zEM_PlmnId tPlmn;
+ DWORD dwCellId;
+ WORD wLac;
+ WORD wPsc;
+ BYTE bRscp;
+ BYTE bEcNo;
+ BYTE abPadding[2];
+}T_zAt_W_SCellInfo;
+
+typedef struct {
+ DWORD dwEarfcn;
+ DWORD dwCellId;
+ WORD wPci;
+ WORD wTac;
+ T_zEM_PlmnId tPlmnId;
+ BYTE bScellRsrp; //·þÎñÐ¡Çø²âÁ¿½á¹û
+ BYTE bScellRsrq;
+ BYTE bSinrInt; /*·þÎñÐ¡ÇøµÄSINRµÄÕûÊýÖµ,ȡֵ·¶Î§0~60; ÕæÊµÖµ»ù´¡ÉϼÓ20;ÕæÊµÖµÈ¡Öµ·¶Î§: -20~40*/
+ BYTE bSinrDec; /*·þÎñÐ¡ÇøµÄSINRȡֵ·¶Î§ 0~9*/
+ BYTE bRssiInt; /*·þÎñÐ¡ÇøµÄRSSIµÄÕûÊýÖµ,ȡֵ·¶Î§0~133,0xffΪÎÞЧֵ;ÕæÊµÖµ»ù´¡ÉϼÓ129;ÕæÊµÖµÈ¡Öµ·¶Î§: -129~-4*/
+}T_zAt_Lte_SCellInfo;
+
+typedef struct {
+ BYTE bVersion;
+ BYTE bRatType;/* ÖÆÊ½Ö¸Ê¾£º0x04-GSM¡¢0x01-TDSCDMA¡¢0x02-WCDMA¡¢0x10-LTE¡¢0x20-NRÆäËûÖµ±£Áô*/
+ BYTE bSrcIndex;/*Ô±¾Îªpaddingλ,ÏÖË÷ÒýÖµ·ÅÔÚ´Ë´¦±ÜÃâ¶ÔAP²àµÄʹÓòúÉúÓ°Ïì*/
+ BYTE bDesIndex;
+
+ union{
+ T_zAt_Gsm_SCellInfo tGsmScellInfo;
+ T_zAt_W_SCellInfo tWScellInfo;
+ T_zAt_Lte_SCellInfo tLteScellInfo;
+ }uScellInfo;
+}T_zAt_CellInfo_Ind;
+
/**************************************************************************
* º¯ÊýÀàÐͶ¨Òå *
diff --git a/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zat_api.h b/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zat_api.h
index 58bc12f..957fa25 100755
--- a/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zat_api.h
+++ b/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zat_api.h
@@ -114,6 +114,7 @@
ZAT2_CFG_ZVREG,
ZAT2_CFG_ZPOWSTAT,
ZAT2_CFG_ZLOWPWR,
+ ZAT2_CFG_ZPSABNORMAL,
ZAT2_CFG_END,
/*-----------MMÄ£¿é-------------*/
@@ -406,6 +407,8 @@
ZAT2_EM_CESQ,
ZAT2_EM_ZEMLTEHO,
ZAT2_EM_ZLOCKCELL,
+ ZAT2_EM_ZSCIQ,
+ ZAT2_EM_ZSCIND,
/*-----------USATÄ£¿é--------------*/
ZAT2_USAT_ZUEC,
diff --git a/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zat_fnc.h b/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zat_fnc.h
index 68e2b53..66c3225 100755
--- a/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zat_fnc.h
+++ b/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zat_fnc.h
@@ -1298,6 +1298,7 @@
T_ZAt_ParseCmd2MsgRslt zAt_PsDecZpowstatQry(T_ZAt_DecCmdInfo * pDecCmdInfo);
T_ZAt_ParseCmd2MsgRslt zAt_PsDecZlowPwrSetReq(T_ZAt_DecCmdInfo * pDecCmdInfo);
T_ZAt_ParseCmd2MsgRslt zAt_PsDecZlowPwrQryReq(T_ZAt_DecCmdInfo * pDecCmdInfo);
+T_ZAt_ParseCmd2MsgRslt zAt_PsDecZpsabnormalQryReq(T_ZAt_DecCmdInfo * pDecCmdInfo);
#ifdef DSDS_VSIM
T_ZAt_ParseCmd2MsgRslt zAt_PsDecZcardSwitchReq(T_ZAt_DecCmdInfo *pDecCmdInfo);
UINT16 zAt_PsEncCardSwitchReqCnf(T_ZAt_EncCmdInfo * pEncCmdInfo);
diff --git a/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zati_com.h b/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zati_com.h
index 4a047e7..5eb21d6 100755
--- a/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zati_com.h
+++ b/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zati_com.h
@@ -109,6 +109,9 @@
/* ATIÔ´Ë÷Òý*/
#define Z_ATI_SRCINDEX (BYTE)0xff
+#define Z_ATI_PS_NORMAL (BYTE)0
+#define Z_ATI_PS_ABNORMAL (BYTE)1
+
/* ÈÎÎñÄ£¿éID */
#define Z_ATI_TASKID_MMIA (BYTE)(SUBMDL_Z_ATI - SUBMDL_PSBASE)
@@ -1169,7 +1172,7 @@
BYTE bSearchPlmnFg; /*¼Ç¼ÊÇ·ñ½øÐйýËÑÍø*/
BYTE bZcwaFg; /*¼Ç¼ZCWAÉèÖõÄÖµ£¬0:ÊÕµ½waiting callʱֱ½Ó¾Ü¾ø²»Éϱ¨£¬1:Õý³£Éϱ¨*/
BYTE bZemsciqIndex;/*¼Ç¼¹¤³Ìģʽ²éѯ¸ñʽ¶ÔÓ¦µÄË÷Òý*/
- BYTE bZemPadding;
+ BYTE bZemsciType;/*Çø·Ö¹¤³ÌģʽÖ÷¶¯Éϱ¨ÃüÁîÀàÐÍ,0-ZEMSCI,1-ZSCIND*/
#ifdef Z_DUALSTANDBY
BYTE bZpsStat; /*¼Ç¼PSÒµÎñ״̬*/
#endif
@@ -1277,6 +1280,7 @@
#ifdef DSDS_VSIM
T_zAti_CardSitchStat tCardSwitch;
#endif
+ BYTE bPsAbnormal;
} T_zAti_Data;
typedef struct {
@@ -1788,7 +1792,7 @@
BYTE zAti_GetRegState(VOID);
extern BOOL zAti_IsHasValidFg(BYTE *pbFg, BYTE bLen);
-
+extern VOID zAt_PsAbnormalStatusInd(BYTE bStat);
extern VOID zAti_SetS0Value(BYTE bS0Value);
extern BYTE zAti_GetS0Value(VOID);
BYTE zAt_IsBeepCallNum(T_z_CallNum *ptCheckedNum);
diff --git a/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zati_int.h b/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zati_int.h
index 73cd495..8db7567 100755
--- a/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zati_int.h
+++ b/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zati_int.h
@@ -1496,6 +1496,9 @@
#define AP_MMIA_ZEPCG_SET (BYTE)0
#define AP_MMIA_ZEPCG_QRY (BYTE)1
+
+#define Z_AT_ZEMSCI_IND (BYTE)0
+#define Z_AT_ZSCIND (BYTE)1
/************************************************************************************
* ½Ó¿ÚÊý¾Ý½á¹¹¶¨Òå *
************************************************************************************/
@@ -8704,9 +8707,27 @@
*/
BYTE bAct;
BYTE abPadding[3];
-}T_zApMmia_Rxlev_Cnf, T_zApMmia_ZRptRxlev_Ind;
+}T_zApMmia_Rxlev_Cnf;
-
+typedef struct {
+ BYTE bSrcIndex;
+ BYTE bDesIndex;
+ BYTE bRxlev; /* ÐźÅÇ¿¶È
+ * TDDȡֵ£º100£199 ÌØÊâÖµ 99
+ * GSMȡֵ£º0£31 ÌØÊâÖµ 99
+ */
+ BYTE bBler; /* ÐŵÀÎóÂëÂÊ
+ * TDDȡֵ£ºTDÇé¿öÏ´ËÖµÎÞЧ£¬Îª99
+ * GSMȡֵ£ºbBler £º 0£7 ÎÞЧֵ99
+ */
+ BYTE bAct;
+ BYTE bRsrq;/*LTE·þÎñÐ¡ÇøµÄRSRQ,ÎÞЧֵ0xff*/
+ BYTE bSinrInt; /*LTE·þÎñÐ¡ÇøµÄSINRµÄÕûÊýÖµ,ȡֵ·¶Î§0~60; ÕæÊµÖµ»ù´¡ÉϼÓ20;ÕæÊµÖµÈ¡Öµ·¶Î§: -20~40*/
+ BYTE bSinrDec; /*LTE·þÎñÐ¡ÇøµÄSINRȡֵ·¶Î§ 0~9*/
+ BYTE bRssiInt; /*LTE·þÎñÐ¡ÇøµÄRSSIµÄÕûÊýÖµ,ȡֵ·¶Î§0~133,0xffΪÎÞЧֵ; ÕæÊµÖµ»ù´¡ÉϼÓ129;ÕæÊµÖµÈ¡Öµ·¶Î§: -129~-4*/
+ BYTE bEcno; /*W·þÎñÐ¡ÇøµÄECNOµÄ²âÁ¿Öµ,ȡֵ·¶Î§0~49,0xffΪÎÞЧֵ*/
+ BYTE abPadding[2];
+}T_zApMmia_ZRptRxlev_Ind;
/****************************************************************************
ÔÓï:Z_APMMIA_ZRptRxlevQueryCnf_Ev(MMMIA->ATI)
¹¦ÄÜ:²éѯÊÇ·ñÉèÖÃÁËÖ÷¶¯Éϱ¨ÐźÅÇ¿¶ÈµÄ»Ø¸´
diff --git a/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zati_othr.h b/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zati_othr.h
index 62cb645..5b9dc6a 100755
--- a/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zati_othr.h
+++ b/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zati_othr.h
@@ -76,6 +76,7 @@
VOID zAti_EM_CpyGrrCellInfo(T_z_CellInfo_Ind *ptApMmiaInd, T_zMmiaAs_EM_GCellInfo_Ind *ptMmiaAsInd);
VOID zAti_EM_CpyUmcrCellInfo(T_z_CellInfo_Ind *ptApMmiaInd, T_zMmiaAs_EM_UCellInfo_Ind *ptMmiaAsInd);
VOID zAti_EM_CpyEumcrCellInfo(T_z_CellInfo_Ind *ptApMmiaInd, T_zMmiaAs_EM_EUCellInfo_Ind *ptMmiaAsInd);
+VOID zAt_EM_CpyScellInfo(T_zEM_EmInfo_Ind *ptEmInfoInd, T_zAt_CellInfo_Ind *ptCellInfoInd);
VOID zAti_ZulrtindTimerExpir(VOID);
#endif
diff --git a/Uboot/cp/ps/modem/ps/src/nas/ati/src/zat_fnc.c b/Uboot/cp/ps/modem/ps/src/nas/ati/src/zat_fnc.c
index 0aca45e..bd32a78 100755
--- a/Uboot/cp/ps/modem/ps/src/nas/ati/src/zat_fnc.c
+++ b/Uboot/cp/ps/modem/ps/src/nas/ati/src/zat_fnc.c
@@ -13095,7 +13095,12 @@
if(!zAt_PsDecNextParamDecimalNumByteNeed( &prsCmd2Msg, strSubBuf, &pDecCmdStr, &zemciSetReq.bAction, NULL)
|| (zemciSetReq.bAction > Z_ATI_EM_TIMER_MAXLEN))
{
- return zAt_GetParseRslt2(&prsCmd2Msg,ZAT2_CMD_PARAM_ERR);
+ return zAt_GetParseRslt2(&prsCmd2Msg, ZAT2_CMD_PARAM_ERR);
+ }
+
+ if(pDecCmdInfo->curCmdId == ZAT2_EM_ZSCIND)
+ {
+ zemciSetReq.bAtType = Z_AT_ZSCIND;
}
return zAt_PsDecFinishParse(&prsCmd2Msg, pDecCmdStr, &zemciSetReq, sizeof(T_zMmiaAs_EM_CellInfo_Req), TRUE);
@@ -19458,7 +19463,9 @@
T_zApMmia_ZRptRxlev_Ind *pZsqrInd = (T_zApMmia_ZRptRxlev_Ind*) pEncCmdInfo->pMsgBody;
/* +ZSQR: <rssi>[,<ber>] */
- return (UINT16)sprintf((char *)pEncCmdInfo->pStrCmd, "%s+ZSQR: %d,%d,%d%s", g_zAt_CRLF, pZsqrInd->bRssi, pZsqrInd->bBler, pZsqrInd->bAct, g_zAt_CRLF);
+ return (UINT16)sprintf((char *)pEncCmdInfo->pStrCmd, "%s+ZSQR: %d,%d,%d,%d,%d,%d,%d,%d%s", g_zAt_CRLF,
+ pZsqrInd->bRxlev, pZsqrInd->bBler, pZsqrInd->bAct, pZsqrInd->bEcno, pZsqrInd->bSinrInt, pZsqrInd->bSinrDec,
+ pZsqrInd->bRssiInt, pZsqrInd->bRsrq, g_zAt_CRLF);
}
@@ -25952,6 +25959,30 @@
prsCmd2Msg.decRslt2nd = ZAT2_CMD_REPLY_DIRECT;
return prsCmd2Msg;
}
+
+T_ZAt_ParseCmd2MsgRslt zAt_PsDecZpsabnormalQryReq(T_ZAt_DecCmdInfo * pDecCmdInfo)
+{
+ T_ZAt_ParseCmd2MsgRslt prsCmd2Msg = {0};
+
+ sprintf((char *)g_zAt_EncBuf, "%s+ZPSABNORMAL: %d%s%s", g_zAt_CRLF, g_zAti_ptData->bPsAbnormal, g_zAt_CRLF, g_zAt_OK);
+
+ prsCmd2Msg.decRslt2nd = ZAT2_CMD_REPLY_DIRECT;
+ return prsCmd2Msg;
+}
+
+VOID zAt_PsAbnormalStatusInd(BYTE bStat)
+{
+ UINT16 strLen=0;
+ CHAR abStr[30] = {0};
+
+ /*+ZPSABNORMAL: <status>*/
+ sprintf((char *)abStr, "%s+ZPSABNORMAL: %d%s", g_zAt_CRLF, bStat, g_zAt_CRLF);
+ strLen = (UINT16)strlen((const char *)abStr);
+
+ zAti_DeliverAllMsg(AP_MMIA_ZPSABNORMAL_IND_EV, abStr, strLen);
+
+ return;
+}
/**************************************************************************
* º¯ÊýÃû³Æ£º zAt_PsDecZtpmrReq
* ¹¦ÄÜÃèÊö£º ¸ù¾ÝµÚ1²½½âÎö½á¹û£¬ÌîдÏûÏ¢¶ÔÓ¦µÄ½á¹¹Ìå
diff --git a/Uboot/cp/ps/modem/ps/src/nas/ati/src/zat_fnc_sup.c b/Uboot/cp/ps/modem/ps/src/nas/ati/src/zat_fnc_sup.c
index 4ac962d..7825509 100755
--- a/Uboot/cp/ps/modem/ps/src/nas/ati/src/zat_fnc_sup.c
+++ b/Uboot/cp/ps/modem/ps/src/nas/ati/src/zat_fnc_sup.c
@@ -5505,25 +5505,46 @@
UINT16 __ps_static_func zAt_PsEncEmZemsciInd(T_ZAt_EncCmdInfo * pEncCmdInfo)
{
CHAR * pStrWalk = pEncCmdInfo->pStrCmd;
- WORD wInfoLen = sizeof(T_zEM_EmInfo_Ind);
+ WORD wInfoLen = 0;
WORD wLen = 0;
T_zEM_EmInfo_Ind *ptEmInfoInd = (T_zEM_EmInfo_Ind*)pEncCmdInfo->pMsgBody;
+ T_zAt_CellInfo_Ind *ptAtCellInfo = ZOSS_NULL;
/* ³¬³¤ÃüÁÐèÒª·ÖÅäZAT2_LONG_CMD_LEN * 2³¤¶È¿Õ¼ä */
if (g_zAti_atDataEx[g_zAti_CurInstance].bCellInfSet != Z_APMMIA_EM_IND_DISABLE)
{
#ifndef BTRUNK_SUPPORT
- zAti_RetUB((VOID**)&pEncCmdInfo->pStrCmd);
- pEncCmdInfo->pStrCmd = (CHAR *)zAti_GetUB(sizeof(T_zEM_EmInfo_Ind) * 2 + 100);//100ÊÇΪÃüÁîÍ·ºÍÃüÁîβÁôµÄ
- pStrWalk = pEncCmdInfo->pStrCmd;
-
- pStrWalk += sprintf((char *)pStrWalk, "%s+ZEMSCI: ", g_zAt_CRLF);
-
- for(wLen = 0; wLen < wInfoLen; wLen++)
+ if(g_zAti_atDataEx[g_zAti_CurInstance].bZemsciType == Z_AT_ZSCIND)
{
- pStrWalk += sprintf((char *)pStrWalk, "%02X", *((PBYTE)(ptEmInfoInd)+wLen));
- }
+ wInfoLen = sizeof(T_zAt_CellInfo_Ind);
+ ptAtCellInfo = (T_zAt_CellInfo_Ind*)zAti_GetUB(wInfoLen);
+ zAt_EM_CpyScellInfo(ptEmInfoInd, ptAtCellInfo);
+
+ pStrWalk += sprintf((char *)pStrWalk, "%s+ZSCIND: ", g_zAt_CRLF);
+
+ for(wLen = 0; wLen < wInfoLen; wLen++)
+ {
+ pStrWalk += sprintf((char *)pStrWalk, "%02X", *((PBYTE)(ptAtCellInfo)+wLen));
+ }
+
+ zAti_RetUB((VOID**)&ptAtCellInfo);
+ }
+ else
+ {
+ zAti_RetUB((VOID**)&pEncCmdInfo->pStrCmd);
+ pEncCmdInfo->pStrCmd = (CHAR *)zAti_GetUB(sizeof(T_zEM_EmInfo_Ind) * 2 + 100);//100ÊÇΪÃüÁîÍ·ºÍÃüÁîβÁôµÄ
+ pStrWalk = pEncCmdInfo->pStrCmd;
+
+ pStrWalk += sprintf((char *)pStrWalk, "%s+ZEMSCI: ", g_zAt_CRLF);
+
+ wInfoLen = sizeof(T_zEM_EmInfo_Ind);
+
+ for(wLen = 0; wLen < wInfoLen; wLen++)
+ {
+ pStrWalk += sprintf((char *)pStrWalk, "%02X", *((PBYTE)(ptEmInfoInd)+wLen));
+ }
+ }
sprintf((char *)pStrWalk, "%s", g_zAt_CRLF);
#else
if(ptEmInfoInd->bRatType == Z_LTE_ACT)
@@ -5583,25 +5604,47 @@
UINT16 zAt_PsEncZemsciQCnf(T_ZAt_EncCmdInfo * pEncCmdInfo)
{
CHAR * pStrWalk = pEncCmdInfo->pStrCmd;
- WORD wInfoLen = sizeof(T_zEM_EmInfo_Ind);
+ WORD wInfoLen = 0;
WORD wLen = 0;
T_zEM_EmInfo_Ind *ptAscellInfoCnf = (T_zEM_EmInfo_Ind*)pEncCmdInfo->pMsgBody;
+ T_zAt_CellInfo_Ind *ptAtCellInfo = ZOSS_NULL;
if(Z_NO_ACT == ptAscellInfoCnf->bRatType)
{
zAti_SendExpt2TraceAgt(ERR_InvalidPara, TRACE_ERR_LEVEL_NORMAL,"");
return zAt_EncErrorCode(pStrWalk, pEncCmdInfo->cmdId, ZAT2_CMEE_GETNOINFO_ERR);
}
- zAti_RetUB((VOID**)&pEncCmdInfo->pStrCmd);
- pEncCmdInfo->pStrCmd = (CHAR *)zAti_GetUB(sizeof(T_zEM_EmInfo_Ind) * 2 + 100);//100ÊÇΪÃüÁîÍ·ºÍÃüÁîβÁôµÄ
- pStrWalk = pEncCmdInfo->pStrCmd;
- pStrWalk += sprintf((char *)pStrWalk, "%s+ZEMSCIQ: ", g_zAt_CRLF);
- for(wLen = 0; wLen < wInfoLen; wLen++)
+ if(pEncCmdInfo->cmdId == ZAT2_EM_ZSCIQ)
{
- pStrWalk += sprintf((char *)pStrWalk, "%02X", *((PBYTE)ptAscellInfoCnf+wLen));
- }
+ wInfoLen = sizeof(T_zAt_CellInfo_Ind);
+ ptAtCellInfo = (T_zAt_CellInfo_Ind*)zAti_GetUB(wInfoLen);
+ zAt_EM_CpyScellInfo(ptAscellInfoCnf, ptAtCellInfo);
+
+ pStrWalk += sprintf((char *)pStrWalk, "%s+ZSCIQ: ", g_zAt_CRLF);
+
+ for(wLen = 0; wLen < wInfoLen; wLen++)
+ {
+ pStrWalk += sprintf((char *)pStrWalk, "%02X", *((PBYTE)ptAtCellInfo+wLen));
+ }
+
+ zAti_RetUB((VOID**)&ptAtCellInfo);
+ }
+ else
+ {
+ zAti_RetUB((VOID**)&pEncCmdInfo->pStrCmd);
+ pEncCmdInfo->pStrCmd = (CHAR *)zAti_GetUB(sizeof(T_zEM_EmInfo_Ind) * 2 + 100);//100ÊÇΪÃüÁîÍ·ºÍÃüÁîβÁôµÄ
+ pStrWalk = pEncCmdInfo->pStrCmd;
+
+ wInfoLen = sizeof(T_zEM_EmInfo_Ind);
+
+ pStrWalk += sprintf((char *)pStrWalk, "%s+ZEMSCIQ: ", g_zAt_CRLF);
+ for(wLen = 0; wLen < wInfoLen; wLen++)
+ {
+ pStrWalk += sprintf((char *)pStrWalk, "%02X", *((PBYTE)ptAscellInfoCnf+wLen));
+ }
+ }
sprintf((char *)pStrWalk, "%s%s", g_zAt_CRLF, g_zAt_OK);
return (UINT16)strlen((const char *)pEncCmdInfo->pStrCmd);
diff --git a/Uboot/cp/ps/modem/ps/src/nas/ati/src/zat_var.c b/Uboot/cp/ps/modem/ps/src/nas/ati/src/zat_var.c
index 82ab961..3a6ce62 100755
--- a/Uboot/cp/ps/modem/ps/src/nas/ati/src/zat_var.c
+++ b/Uboot/cp/ps/modem/ps/src/nas/ati/src/zat_var.c
@@ -101,6 +101,7 @@
{ "+ZULRTIND", ZAT2_CFG_ZULRTIND, "" },
{ "+ZPOWSTAT", ZAT2_CFG_ZPOWSTAT, "+ZPOWSTAT: (0-2)" },
{ "+ZLOWPWR", ZAT2_CFG_ZLOWPWR, "+ZLOWPWR: (0,1)" },
+ { "+ZPSABNORMAL", ZAT2_CFG_ZPSABNORMAL, "" },
/********************************* MMÄ£¿é ************************************/
{ "+CREG", ZAT2_MM_CREG, "+CREG: (0-2)" },
@@ -391,6 +392,8 @@
#if !defined (BTRUNK_SUPPORT) && (defined (_CHIP_ZX297520_LATER) || defined (_CHIP_ZX2804))
{ "+ZEMSCI", ZAT2_EM_ZEMSCI, "" },
{ "+ZEMSCIQ", ZAT2_EM_ZEMSCIQ, "" },
+ { "+ZSCIQ", ZAT2_EM_ZSCIQ, "" },
+ { "+ZSCIND", ZAT2_EM_ZSCIND, "" },
#else
{ "+ZEMCI", ZAT2_EM_ZEMCI, "" },
{ "+ZEMCIQ", ZAT2_EM_ZEMCIQ, "" },
@@ -724,7 +727,11 @@
/***********************************+ZLOWPWR*********************************************/
{ ZAT2_CFG_ZLOWPWR, ZAT2_CO_SET_REQ, ATI_DISTRIBUTE_FUNC_ZLOWPWR_REQ_EV, zAt_PsDecZlowPwrSetReq },
- { ZAT2_CFG_ZLOWPWR, ZAT2_CO_QUERY_REQ, 0, zAt_PsDecZlowPwrQryReq},
+ { ZAT2_CFG_ZLOWPWR, ZAT2_CO_QUERY_REQ, 0, zAt_PsDecZlowPwrQryReq },
+
+ /***********************************+ZPSABNORMAL************************************/
+ { ZAT2_CFG_ZPSABNORMAL, ZAT2_CO_QUERY_REQ, 0, zAt_PsDecZpsabnormalQryReq },
+
/***********************************************************************************************
MMÄ£¿é
***********************************************************************************************/
@@ -1439,6 +1446,8 @@
{ ZAT2_EM_ZEMSCI, ZAT2_CO_QUERY_REQ, AP_MMIA_EM_CELL_INFO_QUERY_REQ_EV, zAt_PsDecCommonReq },
{ ZAT2_EM_ZEMSCIQ, ZAT2_CO_QUERY_REQ, ATI_DISTRIBUTE_FUNC_CELLINFO_QRY_REQ_EV, zAt_PsDecCommonReq},
{ ZAT2_EM_ZEMSCIQ, ZAT2_CO_SET_REQ, ATI_DISTRIBUTE_FUNC_CELLQRY_REQ_EV, zAt_PsDecEmZemsciqByIndexReq},
+ { ZAT2_EM_ZSCIND, ZAT2_CO_SET_REQ, ATI_DISTRIBUTE_FUNC_EM_CELL_INFO_REQ_EV, zAt_PsDecEmZemciSetReq},
+ { ZAT2_EM_ZSCIQ, ZAT2_CO_QUERY_REQ, ATI_DISTRIBUTE_FUNC_CELLINFO_QRY_REQ_EV, zAt_PsDecCommonReq},
#else
/******************************************* +ZEMCI *******************************************/
{ ZAT2_EM_ZEMCI, ZAT2_CO_SET_REQ, ATI_DISTRIBUTE_FUNC_EM_CELL_INFO_REQ_EV, zAt_PsDecEmZemciSetReq },
diff --git a/Uboot/cp/ps/modem/ps/src/nas/ati/src/zati_distribute_fnc.c b/Uboot/cp/ps/modem/ps/src/nas/ati/src/zati_distribute_fnc.c
index 9a3235c..3fb3142 100755
--- a/Uboot/cp/ps/modem/ps/src/nas/ati/src/zati_distribute_fnc.c
+++ b/Uboot/cp/ps/modem/ps/src/nas/ati/src/zati_distribute_fnc.c
@@ -2458,6 +2458,8 @@
else
{
g_zAti_atDataEx[g_zAti_CurInstance].bCellInfSet = ptApMmiaReq->bAction;
+ g_zAti_atDataEx[g_zAti_CurInstance].bZemsciType = ptApMmiaReq->bAtType;
+
sprintf((char *)g_zAt_EncBuf, "%s", g_zAt_OK);
return Z_APMMIA_NOERROR_ERR;
}
@@ -2709,21 +2711,26 @@
·µ »Ø£ºT_zApMmia_ZRptRxlev_Ind ½á¹¹Ö¸Õë
************************************************************************/
-T_zApMmia_ZRptRxlev_Ind* __ps_2g_func zAti_CreateZRptRxlevIndMsg(BYTE bSourceIndex, BYTE bDestIndex, BYTE bRssi, BYTE bBler, BYTE bAct)
+T_zApMmia_ZRptRxlev_Ind* __ps_2g_func zAti_CreateZRptRxlevIndMsg(BYTE bRxlev, BYTE bBler, BYTE bAct, T_zMmiaAs_RptRxlev_Ind *ptAsInd)
{
T_zApMmia_ZRptRxlev_Ind * ptApInd = (T_zApMmia_ZRptRxlev_Ind*)zAti_GetUB(sizeof(T_zApMmia_ZRptRxlev_Ind));
- ptApInd->bSrcIndex = bSourceIndex;
- ptApInd->bDesIndex = bDestIndex;
- ptApInd->bRssi = bRssi;
+ ptApInd->bRxlev = bRxlev;
ptApInd->bBler = bBler;
ptApInd->bAct = bAct;
+ ptApInd->bRsrq = ptAsInd->bRsrq;
+ ptApInd->bSinrInt = ptAsInd->bSinrInt;
+ ptApInd->bSinrDec = ptAsInd->bSinrDec;
+ ptApInd->bRssiInt = ptAsInd->bRssiInt;
+ ptApInd->bEcno = ptAsInd->bEcno;
return ptApInd;
}
DWORD zAti_ZRptRxlevEnable (T_zApMmia_ZRptRxlev_Req *ptRxlevReq)
{
+ T_zMmiaAs_RptRxlev_Ind tRptInd = {0};
+ T_zApMmia_ZRptRxlev_Ind *ptApInd = ZOSS_NULL;
BYTE bRegState = Z_APMMIA_REGSTATE_UNKNOWN;
BYTE bInsNo = ((g_zAti_CurInstance == Z_ATI_INSNO_1)? Z_ATI_INSNO_1 : Z_ATI_INSNO_2);
@@ -2749,7 +2756,10 @@
if (bRegState == Z_APMMIA_REGSTATE_REGDENIED || bRegState == Z_APMMIA_REGSTATE_UNKNOWN)
{
- T_zApMmia_ZRptRxlev_Ind *ptApInd = zAti_CreateZRptRxlevIndMsg(ptRxlevReq->bDesIndex, ptRxlevReq->bSrcIndex, 0, 99, Z_APMMIA_NOSERVE);
+ zOss_Memset(&tRptInd, 255, sizeof(T_zMmiaAs_RptRxlev_Ind));
+ ptApInd = zAti_CreateZRptRxlevIndMsg(0, 99, Z_APMMIA_NOSERVE, &tRptInd);
+ ptApInd->bDesIndex = ptRxlevReq->bSrcIndex;
+ ptApInd->bSrcIndex = ptRxlevReq->bDesIndex;
zAti_MsgSend(AP_MMIA_ZRPT_RXLEVIND_EV, (PBYTE)ptApInd, sizeof(T_zApMmia_ZRptRxlev_Ind), Z_ATI_TASKID_ATI);
}
return zAti_ZRptRxlevProc (ptRxlevReq);
@@ -4817,6 +4827,10 @@
if (Z_FAIL == ptRfCtrl->bResult) /* ʧ°Ü */
{
g_zAti_atDataEx[g_zAti_CurInstance].tFun.bFunBak = Z_ATI_INVALID_BYTE;
+
+ g_zAti_ptData->bPsAbnormal = Z_ATI_PS_ABNORMAL;
+ zAt_PsAbnormalStatusInd(Z_ATI_PS_ABNORMAL);
+
return Z_APMMIA_UNKNOWN_ERR;
}
else /* ³É¹¦ */
@@ -4825,6 +4839,8 @@
g_zAti_atDataEx[g_zAti_CurInstance].tFun.bRfVal = g_zAti_atDataEx[g_zAti_CurInstance].tFun.bFunBak;
g_zAti_atDataEx[g_zAti_CurInstance].tFun.bFunBak = Z_ATI_INVALID_BYTE;
+ g_zAti_ptData->bPsAbnormal = Z_ATI_PS_NORMAL;
+
zDev_AtMemReadItem(Z_AtMem_ID_MmiaPrvtMem, 0, (PBYTE)&tAtData, g_zAti_CurInstance);
if (Z_APMMIA_CFUNFUN_FULLFUN == g_zAti_atDataEx[g_zAti_CurInstance].tFun.bFunVal)
@@ -7435,6 +7451,11 @@
ºÍµ±Ç°ÎÞפÁôÇÒδËÑÍøÊ±²Å±¨£¬*/
if (Z_VALID == zAti_ZsqrInvalidRxlevProc(&ptAsInd->bRxlev, &bAct))
{
+ ptAsInd->bEcno = 0xff;
+ ptAsInd->bRsrq = 0xff;
+ ptAsInd->bRssiInt = 0xff;
+ ptAsInd->bSinrInt = 0xff;
+ ptAsInd->bSinrDec = 0xff;
g_zAti_atDataEx[g_zAti_CurInstance].bPreLevel = 0xff;
bRssi = zAti_GetTdRssi(ptAsInd->bRxlev);
bAct = Z_APMMIA_NOSERVE;
@@ -7446,16 +7467,26 @@
if (tTaskId == zDev_GetTaskId(Z_ATI_TASKID_EUMCR, 0) ||tTaskId == zDev_GetTaskId(Z_ATI_TASKID_EUMCR, 1))
{
flag = zAti_IsLtePowerLevelChng(ptAsInd->bRxlev);
+ ptAsInd->bEcno = 0xff;
bAct = Z_APMMIA_LTE;
}
else if(tTaskId == zDev_GetTaskId(Z_ATI_TASKID_WMCR, 0) ||tTaskId == zDev_GetTaskId(Z_ATI_TASKID_WMCR, 1))
{
flag = zAti_IsWPowerLevelChng(ptAsInd->bRxlev);
+ ptAsInd->bRsrq = 0xff;
+ ptAsInd->bRssiInt = 0xff;
+ ptAsInd->bSinrInt = 0xff;
+ ptAsInd->bSinrDec = 0xff;
bAct = Z_APMMIA_WCDMA;
}
else //MCR
{
flag = zAti_IsTdPowerLevelChng(ptAsInd->bRxlev);
+ ptAsInd->bEcno = 0xff;
+ ptAsInd->bRsrq = 0xff;
+ ptAsInd->bRssiInt = 0xff;
+ ptAsInd->bSinrInt = 0xff;
+ ptAsInd->bSinrDec = 0xff;
bAct = Z_APMMIA_TDSCDMA;
}
}
@@ -7463,7 +7494,9 @@
if (flag == Z_VALID)
{
bBler = (ptAsInd->bBlerFlg == Z_VALID)? ptAsInd->bBler : 99;
- ptApInd = zAti_CreateZRptRxlevIndMsg(0xfe, 0xff, bRssi, bBler, bAct);
+ ptApInd = zAti_CreateZRptRxlevIndMsg(bRssi, bBler, bAct, ptAsInd);
+ ptApInd->bDesIndex = 0xff;
+ ptApInd->bSrcIndex = 0xfe;
zAti_RecvServerHandlerSlaver(AP_MMIA_ZRPT_RXLEVIND_EV, (UINT8 *)ptApInd, sizeof(T_zApMmia_ZRptRxlev_Ind));
}
}
@@ -7635,6 +7668,12 @@
zAti_SendExpt2TraceAgt(ERR_InvalidPara, TRACE_ERR_LEVEL_SEVERE,"");
return ;
}
+
+ ptAsInd->bRsrq = 0xff;
+ ptAsInd->bSinrInt = 0xff;
+ ptAsInd->bSinrDec = 0xff;
+ ptAsInd->bRssiInt = 0xff;
+ ptAsInd->bEcno = 0xff;
/*ÎÞЧֵ99Ê±ÖÆÊ½Í³Ò»±¨NOSERVE*/
if(ptAsInd->bRxlev == 99)
{
@@ -7657,7 +7696,9 @@
if (flag == Z_VALID)
{
bBler = (ptAsInd->bBlerFlg == Z_VALID)? ptAsInd->bBler : 99;
- ptApInd = zAti_CreateZRptRxlevIndMsg(0xfe, 0xff, bRssi, bBler, bAct);
+ ptApInd = zAti_CreateZRptRxlevIndMsg(bRssi, bBler, bAct, ptAsInd);
+ ptApInd->bDesIndex = 0xff;
+ ptApInd->bSrcIndex = 0xfe;
zAti_RecvServerHandlerSlaver(AP_MMIA_ZRPT_RXLEVIND_EV, (UINT8 *)ptApInd, sizeof(T_zApMmia_ZRptRxlev_Ind));
}
}
@@ -7784,11 +7825,13 @@
g_zAti_atDataEx[g_zAti_CurInstance].bPreCsqAct = bAct;
}
- ptApRxlevCnf = (T_zApMmia_Rxlev_Cnf*)zAti_CreateZRptRxlevIndMsg(
- ptAsRptRxlevInd->bSrcIndex,
- ptAsRptRxlevInd->bDesIndex,
- zAti_GetGsmRssi(ptAsRptRxlevInd->bRxlev),
- (BYTE)((ptAsRptRxlevInd->bBlerFlg == Z_VALID)? ptAsRptRxlevInd->bBler : 99),bAct);
+ ptApRxlevCnf = (T_zApMmia_Rxlev_Cnf*)zAti_GetUB(sizeof(T_zApMmia_Rxlev_Cnf));
+
+ ptApRxlevCnf->bDesIndex = ptAsRptRxlevInd->bDesIndex;
+ ptApRxlevCnf->bSrcIndex = ptAsRptRxlevInd->bSrcIndex;
+ ptApRxlevCnf->bRssi = zAti_GetGsmRssi(ptAsRptRxlevInd->bRxlev);
+ ptApRxlevCnf->bBler = (ptAsRptRxlevInd->bBlerFlg == Z_VALID)? ptAsRptRxlevInd->bBler : 99;
+ ptApRxlevCnf->bAct = bAct;
zAti_RecvServerHandlerSlaver(AP_MMIA_RXLEV_CNF_EV, (UINT8 *)ptApRxlevCnf, sizeof(T_zApMmia_Rxlev_Cnf));
}
diff --git a/Uboot/cp/ps/modem/ps/src/nas/ati/src/zati_fnc.c b/Uboot/cp/ps/modem/ps/src/nas/ati/src/zati_fnc.c
index ab3a03f..55236e0 100755
--- a/Uboot/cp/ps/modem/ps/src/nas/ati/src/zati_fnc.c
+++ b/Uboot/cp/ps/modem/ps/src/nas/ati/src/zati_fnc.c
@@ -3152,6 +3152,17 @@
}
/**************************************************************************
+*º¯ÊýÃû³Æ:zAt_AddAtiTraceInfo
+*º¯Êý¹¦ÄÜ:ͨµÀ¶ÂÈûÐÅÏ¢¼ÓÈëά²âÐÅÏ¢
+**************************************************************************/
+VOID zAt_AddAtiTraceInfo(WORD wCmdId, BYTE bChnelID)
+{
+ BYTE bCurAct = zAti_GetCurAct_ByIndex(g_zAti_CurInstance);
+
+ zAs_AddNasTraceInfo(bCurAct, wCmdId, Z_CEER_ATI_ID, bChnelID);
+}
+
+/**************************************************************************
* º¯ÊýÃû³Æ : zAti_ProcessCmd
* ¹¦ÄÜÃèÊö : ´¦ÀíÉϲ㷢À´µÄÃüÁî
* ²ÎÊý˵Ã÷£º (IN)£º
@@ -3178,6 +3189,10 @@
if ( ZAT2_NO_COMMAND != pChnelNode->cmd_id && ZAT2_CO_INVALID != pChnelNode->cmd_op)
{
+ CHAR abStr[30] = {0};
+ sprintf(abStr, "Conflict Cmd id=%d\n", pChnelNode->cmd_id);
+ zAti_SendExpt2TraceAgt(ERR_InvalidMsg, TRACE_ERR_LEVEL_NORMAL, abStr);
+ zAt_AddAtiTraceInfo(pChnelNode->cmd_id, pChnelNode->iChnelId);
zAti_ProcChnelConflict(pChnelNode);
return;
}
diff --git a/Uboot/cp/ps/modem/ps/src/nas/ati/src/zati_main.c b/Uboot/cp/ps/modem/ps/src/nas/ati/src/zati_main.c
index 32f9fe7..ea68869 100755
--- a/Uboot/cp/ps/modem/ps/src/nas/ati/src/zati_main.c
+++ b/Uboot/cp/ps/modem/ps/src/nas/ati/src/zati_main.c
@@ -392,7 +392,8 @@
g_zAti_atDataEx[bInstance].tFun.bRfVal = Z_APMMIA_CFUNFUN_MINIFUN;
zAti_RetUB((VOID **)&g_zAti_atDataEx[bInstance].ptUrrcHoInd);
zAti_RetUB((VOID **)&g_zAti_atDataEx[bInstance].ptGrrcHoInd);
- g_zAti_atDataEx[bInstance].bCellInfSet = 0;
+ g_zAti_atDataEx[bInstance].bCellInfSet = 0;
+ g_zAti_atDataEx[bInstance].bZemsciType = 0;
g_zAti_atDataEx[bInstance].bHoInfoSet = 0;
g_zAti_atDataEx[bInstance].bZsqrSet = 0;
g_zAti_atDataEx[bInstance].bRange = 0;
@@ -475,6 +476,7 @@
g_zAti_ptData->bEModeType = 0xff;
g_zAti_ptData->bPowerIndFlag = FALSE;
g_zAti_ptData->bSmOnlyL2PFlag = FALSE;
+ g_zAti_ptData->bPsAbnormal = Z_ATI_PS_NORMAL;
#ifdef DSDS_VSIM
g_zAti_ptData->tCardSwitch.bSim1Stat = Z_ATI_CARD_ACT;
g_zAti_ptData->tCardSwitch.bSim2Stat = Z_ATI_CARD_DEACT;
@@ -622,7 +624,8 @@
g_zAti_atDataEx[bInstance].tFun.bFunVal = Z_APMMIA_CFUNFUN_MINIFUN;
zAti_RetUB((VOID **)&g_zAti_atDataEx[bInstance].ptUrrcHoInd);
zAti_RetUB((VOID **)&g_zAti_atDataEx[bInstance].ptGrrcHoInd);
- g_zAti_atDataEx[bInstance].bCellInfSet = 0;
+ g_zAti_atDataEx[bInstance].bCellInfSet = 0;
+ g_zAti_atDataEx[bInstance].bZemsciType = 0;
g_zAti_atDataEx[bInstance].bHoInfoSet = 0;
g_zAti_atDataEx[bInstance].bZsqrSet = 0;
g_zAti_atDataEx[bInstance].bRange = 0;
@@ -687,6 +690,7 @@
zAti_RetUB((VOID **)&g_zAti_atDataEx[bInstance].ptUrrcHoInd);
zAti_RetUB((VOID **)&g_zAti_atDataEx[bInstance].ptGrrcHoInd);
g_zAti_atDataEx[bInstance].bCellInfSet = 0;
+ g_zAti_atDataEx[bInstance].bZemsciType = 0;
g_zAti_atDataEx[bInstance].bHoInfoSet = 0;
g_zAti_atDataEx[bInstance].bZsqrSet = 0;
g_zAti_atDataEx[bInstance].bRange = 0;
diff --git a/Uboot/cp/ps/modem/ps/src/nas/ati/src/zati_othr.c b/Uboot/cp/ps/modem/ps/src/nas/ati/src/zati_othr.c
index 6880eeb..a5009fd 100755
--- a/Uboot/cp/ps/modem/ps/src/nas/ati/src/zati_othr.c
+++ b/Uboot/cp/ps/modem/ps/src/nas/ati/src/zati_othr.c
@@ -1647,6 +1647,73 @@
zAti_EM_CpyEumcrCellInfoLtePart(ptApMmiaInd, ptMmiaAsInd);
}
+VOID zAt_EM_CpyScellInfo(T_zEM_EmInfo_Ind *ptEmInfoInd, T_zAt_CellInfo_Ind *ptCellInfoInd)
+{
+ T_zEm_W_DchMeasInfo *ptDchInfo = ZOSS_NULL;
+ T_zEm_W_NotDchMeasInfo *ptNotDchInfo = ZOSS_NULL;
+
+ if(ptEmInfoInd == ZOSS_NULL || ptCellInfoInd == ZOSS_NULL)
+ {
+ return;
+ }
+
+ ptCellInfoInd->bRatType = ptEmInfoInd->bRatType;
+ ptCellInfoInd->bVersion = ptEmInfoInd->bVersion;
+ ptCellInfoInd->bDesIndex = ptEmInfoInd->bDesIndex;
+ ptCellInfoInd->bSrcIndex = ptEmInfoInd->bSrcIndex;
+
+ if(ptEmInfoInd->bRatType == Z_LTE_ACT)
+ {
+ ptCellInfoInd->uScellInfo.tLteScellInfo.dwEarfcn = ptEmInfoInd->uEmInfo.tLteEmInfo.tScellPara.tScellInfo.dwEarfcn;
+ ptCellInfoInd->uScellInfo.tLteScellInfo.dwCellId = ptEmInfoInd->uEmInfo.tLteEmInfo.tScellPara.tScellInfo.dwCellId;
+ ptCellInfoInd->uScellInfo.tLteScellInfo.wPci = ptEmInfoInd->uEmInfo.tLteEmInfo.tScellPara.tScellInfo.wPci;
+ ptCellInfoInd->uScellInfo.tLteScellInfo.wTac = ptEmInfoInd->uEmInfo.tLteEmInfo.tScellPara.tNasInfo.wTac;
+ ptCellInfoInd->uScellInfo.tLteScellInfo.tPlmnId = ptEmInfoInd->uEmInfo.tLteEmInfo.tScellPara.tNasInfo.tPlmnId;
+ ptCellInfoInd->uScellInfo.tLteScellInfo.bScellRsrp = ptEmInfoInd->uEmInfo.tLteEmInfo.tMeasInfo.bScellRsrp;
+ ptCellInfoInd->uScellInfo.tLteScellInfo.bScellRsrq = ptEmInfoInd->uEmInfo.tLteEmInfo.tMeasInfo.bScellRsrq;
+ ptCellInfoInd->uScellInfo.tLteScellInfo.bSinrInt = ptEmInfoInd->uEmInfo.tLteEmInfo.tScellPara.tNasInfo.bSinrInt;
+ ptCellInfoInd->uScellInfo.tLteScellInfo.bSinrDec = ptEmInfoInd->uEmInfo.tLteEmInfo.tScellPara.tNasInfo.bSinrDec;
+ ptCellInfoInd->uScellInfo.tLteScellInfo.bRssiInt = ptEmInfoInd->uEmInfo.tLteEmInfo.tScellPara.tNasInfo.bRssiInt;
+ }
+ else if(ptEmInfoInd->bRatType == Z_W_ACT)
+ {
+ ptCellInfoInd->uScellInfo.tWScellInfo.bStateInd = ptEmInfoInd->uEmInfo.tWEmInfo.bStateInd;
+ ptCellInfoInd->uScellInfo.tWScellInfo.dwCellId = ptEmInfoInd->uEmInfo.tWEmInfo.tCampPara.dwCellId;
+ ptCellInfoInd->uScellInfo.tWScellInfo.tPlmn = ptEmInfoInd->uEmInfo.tWEmInfo.tCampPara.tNasInfo.tPlmn;
+ ptCellInfoInd->uScellInfo.tWScellInfo.wLac = ptEmInfoInd->uEmInfo.tWEmInfo.tCampPara.tNasInfo.wLac;
+
+ if(ptEmInfoInd->uEmInfo.tWEmInfo.bStateInd == 0)
+ {
+ ptDchInfo = &ptEmInfoInd->uEmInfo.tWEmInfo.uWcellMeasInfo.tDchInfo;
+
+ ptCellInfoInd->uScellInfo.tWScellInfo.bRscp = ptDchInfo->tFreqAsVasInfo.tUsedFreqAsInfo.atAsVasCell[0].bRscp;
+ ptCellInfoInd->uScellInfo.tWScellInfo.wPsc = ptDchInfo->tFreqAsVasInfo.tUsedFreqAsInfo.atAsVasCell[0].wPsc;
+ ptCellInfoInd->uScellInfo.tWScellInfo.bEcNo = ptDchInfo->tFreqAsVasInfo.tUsedFreqAsInfo.atAsVasCell[0].bEcNo;
+ }
+ else
+ {
+ ptNotDchInfo = &ptEmInfoInd->uEmInfo.tWEmInfo.uWcellMeasInfo.tNotDchInfo;
+
+ ptCellInfoInd->uScellInfo.tWScellInfo.bRscp = ptNotDchInfo->tFddSCellReselInfo.tScellInfo.bRscp;
+ ptCellInfoInd->uScellInfo.tWScellInfo.wPsc = ptNotDchInfo->tFddSCellReselInfo.tScellInfo.wPsc;
+ ptCellInfoInd->uScellInfo.tWScellInfo.bEcNo = ptNotDchInfo->tFddSCellReselInfo.tScellInfo.bEcNo;
+ }
+ }
+ else if(ptEmInfoInd->bRatType == Z_GSM_ACT)
+ {
+ ptCellInfoInd->uScellInfo.tGsmScellInfo.dwCellId = ptEmInfoInd->uEmInfo.tGsmEmInfo.tScellPara.tScellInfo.dwCellId;
+ ptCellInfoInd->uScellInfo.tGsmScellInfo.wLac = ptEmInfoInd->uEmInfo.tGsmEmInfo.tScellPara.tNasInfo.wLac;
+ ptCellInfoInd->uScellInfo.tGsmScellInfo.tPlmn = ptEmInfoInd->uEmInfo.tGsmEmInfo.tScellPara.tNasInfo.tPlmn;
+ ptCellInfoInd->uScellInfo.tGsmScellInfo.bRssi = ptEmInfoInd->uEmInfo.tGsmEmInfo.tMeasInfo.bRssi;
+ ptCellInfoInd->uScellInfo.tGsmScellInfo.bBer = ptEmInfoInd->uEmInfo.tGsmEmInfo.tScellInfo.bBER;
+
+ if(ptCellInfoInd->uScellInfo.tGsmScellInfo.bBer == 255)
+ {
+ ptCellInfoInd->uScellInfo.tGsmScellInfo.bBer = 99;//¸úCSQÎÞЧֵ±£³ÖÒ»ÖÂ
+ }
+ }
+}
+
VOID zAti_ZulrtindTimerExpir(VOID)
{
DWORD dwAckCnt = 0;
diff --git a/Uboot/cp/ps/plat/inc/oss/oss_sup.h b/Uboot/cp/ps/plat/inc/oss/oss_sup.h
index 686c318..313ccd4 100755
--- a/Uboot/cp/ps/plat/inc/oss/oss_sup.h
+++ b/Uboot/cp/ps/plat/inc/oss/oss_sup.h
@@ -462,7 +462,7 @@
VOID zOss_RamPrintf(VOID);
/* ά²â */
-UINT32 zOss_DebugInfoRecord(UINT32 id, const VOID *pFormat, ...);
+UINT32 zOss_DebugInfoRecord(char *id, const VOID *pFormat, ...);
/* shellÄ£¿é */
UINT32 zOss_AddShellCmd(const CHAR *cmd_name, const Shell_Func func, const CHAR *description);
diff --git a/Uboot/cp/ps/plat/src/oss/sup/src/sup_except.c b/Uboot/cp/ps/plat/src/oss/sup/src/sup_except.c
index fd355b2..8c87a48 100755
--- a/Uboot/cp/ps/plat/src/oss/sup/src/sup_except.c
+++ b/Uboot/cp/ps/plat/src/oss/sup/src/sup_except.c
@@ -371,7 +371,7 @@
* ·µ »Ø Öµ£º ³É¹¦: дÈ볤¶È; ʧ°Ü: ZOSS_ERROR
* ÆäËü˵Ã÷£º
**************************************************************************/
-UINT32 zOss_DebugInfoRecord(UINT32 id, const VOID *pFormat, ...)
+UINT32 zOss_DebugInfoRecord(char *id, const VOID *pFormat, ...)
{
#ifdef _OS_WIN
return ZOSS_ERROR;
@@ -387,7 +387,7 @@
#endif
}
#else
-UINT32 zOss_DebugInfoRecord(UINT32 id, const VOID *pFormat, ...)
+UINT32 zOss_DebugInfoRecord(char *id, const VOID *pFormat, ...)
{
return ZOSS_SUCCESS;
}
diff --git a/Uboot/pub/include/infra/pub_debug_info.h b/Uboot/pub/include/infra/pub_debug_info.h
index 10357aa..95a480f 100755
--- a/Uboot/pub/include/infra/pub_debug_info.h
+++ b/Uboot/pub/include/infra/pub_debug_info.h
@@ -6,62 +6,43 @@
#define DEBUG_INFO_DEV_PATH "/dev/debug_info"
/* AP²àºÍCAP²àµÄPS\KERNEL\DRIVER\FS\APP ÒÔSTART~ENDÎªÇø¼ä£¬¸÷²¿·ÖÔ¤ÁôÁË100¸öID */
-#define MODULE_ID_PS_START (1)
-#define MODULE_ID_PS_NAS (1)
-#define MODULE_ID_PS_RRC (2)
-#define MODULE_ID_PS_L2 (3)
-#define MODULE_ID_PS_UICC (99)
-#define MODULE_ID_PS_END (100)
-#define MODULE_ID_AP_KERNEL_START (101)
-#define MODULE_ID_AP_KERNEL_END (200)
+#define MODULE_ID_PS_NAS ("ps_nas")
+#define MODULE_ID_PS_RRC ("ps_rrc")
+#define MODULE_ID_PS_L2 ("ps_l2")
+#define MODULE_ID_PS_UICC ("ps_uicc")
+#define MODULE_ID_AP_USB ("ap_usb")
+#define MODULE_ID_AP_REBOOT ("ap_reboot")
+#define MODULE_ID_AP_TSC ("ap_tsc")
+#define MODULE_ID_AP_PSM ("ap_psm")
+#define MODULE_ID_AP_NAND ("ap_nand")
+#define MODULE_ID_AP_MMC ("ap_mmc")
+#define MODULE_ID_AP_WIFI ("ap_wifi")
-#define MODULE_ID_CAP_KERNEL_START (201)
-#define MODULE_ID_CAP_KERNEL_END (300)
-#define MODULE_ID_AP_DRIVES_START (301)
-#define MODULE_ID_AP_USB (301)
-#define MODULE_ID_AP_REBOOT (302)
-#define MODULE_ID_AP_TSC (303)
-#define MODULE_ID_AP_PSM (304)
-#define MODULE_ID_AP_NAND (305)
-#define MODULE_ID_AP_MMC (306)
-#define MODULE_ID_AP_WIFI (307)
-#define MODULE_ID_AP_DRIVES_END (400)
+#define MODULE_ID_CAP_USB ("cap_usb")
+#define MODULE_ID_CAP_TSC ("cap_tsc")
+#define MODULE_ID_CAP_PSM ("cap_psm")
+#define MODULE_ID_CAP_NAND ("cap_nand")
+#define MODULE_ID_CAP_SPI ("cap_spi")
+#define MODULE_ID_CAP_MMC ("cap_mmc")
+#define MODULE_ID_CAP_UART ("cap_uart")
+#define MODULE_ID_CAP_PM ("cap_pm")
-#define MODULE_ID_CAP_DRIVES_START (401)
-#define MODULE_ID_CAP_USB (401)
-#define MODULE_ID_CAP_TSC (402)
-#define MODULE_ID_CAP_PSM (403)
-#define MODULE_ID_CAP_NAND (404)
-#define MODULE_ID_CAP_SPI (405)
-#define MODULE_ID_CAP_MMC (406)
-#define MODULE_ID_CAP_UART (407)
-#define MODULE_ID_CAP_DRIVES_END (500)
-#define MODULE_ID_AP_FS_START (501)
-#define MODULE_ID_AP_JFFS2 (501)
-#define MODULE_ID_AP_FS_END (600)
+#define MODULE_ID_AP_JFFS2 ("ap_jffs2")
+#define MODULE_ID_AP_FOTA ("ap_fota")
+#define MODULE_ID_AP_FS_CHECK ("ap_fs_check")
-#define MODULE_ID_CAP_FS_START (601)
-#define MODULE_ID_CAP_FS_END (700)
-
-#define MODULE_ID_AP_APP_START (701)
-#define MODULE_ID_AP_FOTA (701)
-#define MODULE_ID_AP_FS_CHECK (702)
-#define MODULE_ID_AP_APP_END (800)
-
-#define MODULE_ID_CAP_APP_START (801)
-#define MODULE_ID_CAP_FOTA (801)
-#define MODULE_ID_CAP_FS_CHECK (802)
-#define MODULE_ID_CAP_APP_END (900)
-
-#if defined(_USE_ZXIC_DEBUG_INFO) && !defined(CONFIG_SYSTEM_RECOVERY)
-int sc_debug_info_vrecord(unsigned int id, const char *format, va_list args);
-int sc_debug_info_record(unsigned int id, const char *format, ...);
+#define MODULE_ID_CAP_FOTA ("cap_fota")
+#define MODULE_ID_CAP_FS_CHECK ("cap_fs_check")
+
+#if defined(_USE_ZXIC_DEBUG_INFO)
+int sc_debug_info_vrecord(char *id, const char *format, va_list args);
+int sc_debug_info_record(char *id, const char *format, ...);
#else
-static inline int sc_debug_info_vrecord(unsigned int id, const char *format, va_list args) { return 0; }
-static inline int sc_debug_info_record(unsigned int id, const char *format, ...) { return 0; }
+static inline int sc_debug_info_vrecord(char *id, const char *format, va_list args) { return 0; }
+static inline int sc_debug_info_record(char *id, const char *format, ...) { return 0; }
#endif
#endif
\ No newline at end of file
diff --git a/Uboot/pub/include/ps_phy/atipsevent.h b/Uboot/pub/include/ps_phy/atipsevent.h
index 2bd5386..92e71e6 100755
--- a/Uboot/pub/include/ps_phy/atipsevent.h
+++ b/Uboot/pub/include/ps_phy/atipsevent.h
@@ -421,6 +421,7 @@
#define AP_MMIA_ZCOPS_TEST_CNF_EV (DWORD)(AP_MMIA_MM_RSP_EVENT + 25)
#define AP_MMIA_TIMEZONE_IND_EV (DWORD)(AP_MMIA_MM_RSP_EVENT + 26)
#define AP_MMIA_ZULRTIND_IND_EV (DWORD)(AP_MMIA_MM_RSP_EVENT + 27)
+#define AP_MMIA_ZPSABNORMAL_IND_EV (DWORD)(AP_MMIA_MM_RSP_EVENT + 28)
/* ========================================================================
AP-MMIA CCÏà¹Ø²¿·ÖÏûÏ¢ºÅ
======================================================================== */
diff --git a/Uboot/pub/project/zx297520v3/include/drv/NvParam_drv.h b/Uboot/pub/project/zx297520v3/include/drv/NvParam_drv.h
index 66c6f6d..95c3158 100755
--- a/Uboot/pub/project/zx297520v3/include/drv/NvParam_drv.h
+++ b/Uboot/pub/project/zx297520v3/include/drv/NvParam_drv.h
@@ -214,8 +214,10 @@
UINT8 isUseTxDtmfDet;
UINT8 isUseRxMixData;
UINT8 isUseTxMixData;//12
- UINT8 isUseEcall;
- UINT8 reserved[19];//32-13
+ UINT8 isUseEcall; //13
+ UINT8 isUseVoiceBuffer; //14 0 not use,1 use
+ UINT8 selVoiceBufferType; //15 0 single core, 1 dual core
+ UINT8 reserved[17];//32-15
} T_Audio_NvFlag;
diff --git a/Uboot/pub/project/zx297520v3/include/infra/ram_base_config_7520v3.h b/Uboot/pub/project/zx297520v3/include/infra/ram_base_config_7520v3.h
index 6a1626d..edb3bfb 100755
--- a/Uboot/pub/project/zx297520v3/include/infra/ram_base_config_7520v3.h
+++ b/Uboot/pub/project/zx297520v3/include/infra/ram_base_config_7520v3.h
@@ -163,7 +163,7 @@
#define DDR_BASE_OFF_CAP (DDR_BASE_OFF_CAP_BUF + DDR_BASE_LEN_CAP_BUF)
/* capºËµÄdtbµØÖ·¹©ubootºËcap kernelʹÓà */
-#define DDR_BASE_CAP_DTB_ADDR (DDR_BASE_ADDR_CAP_BUF + (0x00100000UL>>CPU_SHIFT))
+#define DDR_BASE_CAP_DTB_ADDR (DDR_BASE_ADDR_CAP_BUF + (0x00194000UL>>CPU_SHIFT))
#else
/* 42.75M£¬AP¹²ºË°æ±¾(´Ë´óСÊǰ´ÕÕº¬CAPºËµÄ64MÄÚ´æÅäÖö¨Ò壬¸Ãºê±ð´¦²»»á±»Ê¹ÓÃ) */
#define DDR_BASE_ADDR_AP (DDR_BASE_ADDR_RAMDUMP + DDR_BASE_LEN_RAMDUMP)
@@ -253,6 +253,13 @@
#define TEE_SHARE_BUF_ADDR (RAMDUMP_AP_TO_CAP_BUF_ADDR + RAMDUMP_AP_TO_CAP_BUF_LEN)
#define TEE_SHARE_BUF_LEN ((384 * 1024UL)>>CPU_SHIFT)
+/* psά²â¿Õ¼ä(Êý¾Ý + ¿ØÖÆ)¸´ÓÃAP_TO_CAPµÄramdump´æ´¢¿Õ¼ä */
+#define PS_DEBUG_INFO_LEN_ADDR (RAMDUMP_AP_TO_CAP_BUF_ADDR + ((4 * 1024UL)>>CPU_SHIFT))
+#define PS_DEBUG_INFO_LEN_SIZE ((4 * 1024UL)>>CPU_SHIFT)
+
+#define PS_DEBUG_INFO_ADDR (PS_DEBUG_INFO_LEN_ADDR + PS_DEBUG_INFO_LEN_SIZE)
+#define PS_DEBUG_INFO_SIZE ((64 * 1024UL)>>CPU_SHIFT)
+
#define ICP_CAP_BUF_ADDR_PA DDR_BASE_CAPBUF_ADDR_PA
#define TOOL_CAP_BUF_ADDR_PA (ICP_CAP_BUF_ADDR_PA + ICP_CAP_BUF_LEN)
#define RINGBUF_CAP_TO_AP_ADDR_PA (TOOL_CAP_BUF_ADDR_PA + TOOL_CAP_BUF_LEN)
@@ -262,6 +269,9 @@
#define TOOL_ZSP_TO_CAP_LOG_ADDR_PA (RINGBUF_AP_TO_CAP_ADDR_PA + RINGBUF_AP_TO_CAP_LEN)
#define RAMDUMP_AP_TO_CAP_BUF_ADDR_PA (TOOL_ZSP_TO_CAP_LOG_ADDR_PA + TOOL_ZSP_TO_CAP_LOG_LEN)
#define TEE_SHARE_BUF_ADDR_PA (RAMDUMP_AP_TO_CAP_BUF_ADDR_PA + RAMDUMP_AP_TO_CAP_BUF_LEN)
+
+#define PS_DEBUG_INFO_LEN_ADDR_PA (RAMDUMP_AP_TO_CAP_BUF_ADDR_PA + ((4 * 1024UL)>>CPU_SHIFT))
+#define PS_DEBUG_INFO_ADDR_PA (PS_DEBUG_INFO_LEN_ADDR_PA + PS_DEBUG_INFO_LEN_SIZE)
#endif
/* 7520V3оƬIRAM0ѹËõ£¬ÐÒéÕ»ÎïÀí²ã½»»¥¿Õ¼äÒÆ¶¯µ½DDR£¬¸´ÓÃRamdump¿Õ¼ä */
diff --git a/Uboot/rpm/project/zx297520v3/bin/tos/modem_7520v3/evb_cpurpm.elf b/Uboot/rpm/project/zx297520v3/bin/tos/modem_7520v3/evb_cpurpm.elf
index 25435d8..e955a1c 100755
--- a/Uboot/rpm/project/zx297520v3/bin/tos/modem_7520v3/evb_cpurpm.elf
+++ b/Uboot/rpm/project/zx297520v3/bin/tos/modem_7520v3/evb_cpurpm.elf
Binary files differ
diff --git a/Uboot/rpm/project/zx297520v3/bin/tos/modem_7520v3/evb_cpurpm.img b/Uboot/rpm/project/zx297520v3/bin/tos/modem_7520v3/evb_cpurpm.img
index c177ef6..23e491e 100755
--- a/Uboot/rpm/project/zx297520v3/bin/tos/modem_7520v3/evb_cpurpm.img
+++ b/Uboot/rpm/project/zx297520v3/bin/tos/modem_7520v3/evb_cpurpm.img
Binary files differ
diff --git a/Uboot/rpm/project/zx297520v3/bin/tos/modem_7520v3/evb_cpurpm.map b/Uboot/rpm/project/zx297520v3/bin/tos/modem_7520v3/evb_cpurpm.map
index 0bc39a0..191ab18 100755
--- a/Uboot/rpm/project/zx297520v3/bin/tos/modem_7520v3/evb_cpurpm.map
+++ b/Uboot/rpm/project/zx297520v3/bin/tos/modem_7520v3/evb_cpurpm.map
@@ -246,9 +246,9 @@
0x00000000 0xb8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
.text.zDrvSysSpinlock_SoftUnlock
0x00000000 0x80 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
- .rodata.__FUNCTION__.5142
+ .rodata.__FUNCTION__.5154
0x00000000 0x1c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
- .bss.lock_count.5134
+ .bss.lock_count.5146
0x00000000 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
.text 0x00000000 0x0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
.data 0x00000000 0x0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
@@ -429,22 +429,22 @@
0x00000000 0x168 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
.text.zDrvI2c_DevWrite_ByteStream
0x00000000 0x140 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
- .rodata.__FUNCTION__.5357
+ .rodata.__FUNCTION__.5362
0x00000000 0x1c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
- .rodata.__FUNCTION__.5298
+ .rodata.__FUNCTION__.5303
0x00000000 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
- .rodata.__FUNCTION__.5376
+ .rodata.__FUNCTION__.5381
0x00000000 0x1c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
- .rodata.__FUNCTION__.5318
+ .rodata.__FUNCTION__.5323
0x00000000 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
- .rodata.__FUNCTION__.5278
+ .rodata.__FUNCTION__.5283
0x00000000 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
.text 0x00000000 0x0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
.data 0x00000000 0x0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
.bss 0x00000000 0x0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
.text.wdt_set_switch
- 0x00000000 0x4c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- .rodata.__FUNCTION__.5281
+ 0x00000000 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ .rodata.__FUNCTION__.5324
0x00000000 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
.text 0x00000000 0x0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
.data 0x00000000 0x0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
@@ -453,10 +453,10 @@
0x00000000 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
.text.zDrvSysClk_IsAutoGate
0x00000000 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- .rodata.__FUNCTION__.5162
- 0x00000000 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- .rodata.__FUNCTION__.5167
+ .rodata.__FUNCTION__.5172
0x00000000 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ .rodata.__FUNCTION__.5167
+ 0x00000000 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
.text 0x00000000 0x0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
.data 0x00000000 0x0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
.bss 0x00000000 0x0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
@@ -1449,7 +1449,7 @@
0x000001f0 hal_virtual_vector_table_end = (hal_virtual_vector_table + 0x100)
0x0000c000 hal_startup_stack = 0xc000
-.debug_aranges 0x00000000 0x1530
+.debug_aranges 0x00000000 0x1540
*(.debug_aranges)
.debug_aranges
0x00000000 0x20 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/vectors.o
@@ -1462,274 +1462,274 @@
.debug_aranges
0x000000f8 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_init.o)
.debug_aranges
- 0x00000118 0x68 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
+ 0x00000118 0x70 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
.debug_aranges
- 0x00000180 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
+ 0x00000188 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
.debug_aranges
- 0x000001a8 0xa0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x000001b0 0xa0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
.debug_aranges
- 0x00000248 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
+ 0x00000250 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
.debug_aranges
- 0x00000268 0xa8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ 0x00000278 0xa8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
.debug_aranges
- 0x00000310 0x78 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
+ 0x00000320 0x78 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
.debug_aranges
- 0x00000388 0x60 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ 0x00000398 0x60 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
.debug_aranges
- 0x000003e8 0x70 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x000003f8 0x70 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
.debug_aranges
- 0x00000458 0x150 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
+ 0x00000468 0x150 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
.debug_aranges
- 0x000005a8 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
+ 0x000005b8 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
.debug_aranges
- 0x000005e8 0xa8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x000005f8 0xa8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
.debug_aranges
- 0x00000690 0x78 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
+ 0x000006a0 0x78 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
.debug_aranges
- 0x00000708 0xa8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x00000718 0xa8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
.debug_aranges
- 0x000007b0 0x98 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ 0x000007c0 0x98 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
.debug_aranges
- 0x00000848 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
+ 0x00000858 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
.debug_aranges
- 0x00000860 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(int_cfg.o)
+ 0x00000870 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(int_cfg.o)
.debug_aranges
- 0x00000878 0x38 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
+ 0x00000888 0x38 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
.debug_aranges
- 0x000008b0 0xa8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
+ 0x000008c0 0xa8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
.debug_aranges
- 0x00000958 0x60 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
+ 0x00000968 0x60 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
.debug_aranges
- 0x000009b8 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
+ 0x000009c8 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
.debug_aranges
- 0x000009e0 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
+ 0x000009f0 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
.debug_aranges
- 0x00000a20 0xb8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
+ 0x00000a30 0xb8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
.debug_aranges
- 0x00000ad8 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
+ 0x00000ae8 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
.debug_aranges
- 0x00000b00 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
+ 0x00000b10 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
.debug_aranges
- 0x00000b48 0xb0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
+ 0x00000b58 0xb0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
.debug_aranges
- 0x00000bf8 0x48 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
+ 0x00000c08 0x48 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
.debug_aranges
- 0x00000c40 0x28 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
+ 0x00000c50 0x28 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
.debug_aranges
- 0x00000c68 0x30 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
+ 0x00000c78 0x30 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
.debug_aranges
- 0x00000c98 0x20 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
+ 0x00000ca8 0x20 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
.debug_aranges
- 0x00000cb8 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
+ 0x00000cc8 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
.debug_aranges
- 0x00000cf0 0x3c8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ 0x00000d00 0x3c8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
.debug_aranges
- 0x000010b8 0xe0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ 0x000010c8 0xe0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
.debug_aranges
- 0x00001198 0xd0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ 0x000011a8 0xd0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
.debug_aranges
- 0x00001268 0x90 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
+ 0x00001278 0x90 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
.debug_aranges
- 0x000012f8 0x58 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
+ 0x00001308 0x58 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
.debug_aranges
- 0x00001350 0x48 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
+ 0x00001360 0x48 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
.debug_aranges
- 0x00001398 0x98 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
+ 0x000013a8 0x98 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
.debug_aranges
- 0x00001430 0x20 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_context.o)
+ 0x00001440 0x20 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_context.o)
.debug_aranges
- 0x00001450 0xe0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
+ 0x00001460 0xe0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
.debug_pubnames
*(.debug_pubnames)
-.debug_info 0x00000000 0x3172f
+.debug_info 0x00000000 0x31a2c
*(.debug_info)
.debug_info 0x00000000 0xbf K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/vectors.o
.debug_info 0x000000bf 0x112 K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/SysEntry.o
.debug_info 0x000001d1 0xbe K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/appstart.o
.debug_info 0x0000028f 0x34f K:/rpm/project/zx297520v3/obj/tos/all/debug/os/tos/tos_irq.o
.debug_info 0x000005de 0x23e K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_init.o)
- .debug_info 0x0000081c 0x934 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
- .debug_info 0x00001150 0x3a4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
- .debug_info 0x000014f4 0x1bd4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
- .debug_info 0x000030c8 0x367 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
- .debug_info 0x0000342f 0xe82 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
- .debug_info 0x000042b1 0xf82 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
- .debug_info 0x00005233 0xf47 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
- .debug_info 0x0000617a 0x1cf6 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
- .debug_info 0x00007e70 0xb40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
- .debug_info 0x000089b0 0x8a8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
- .debug_info 0x00009258 0x2343 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
- .debug_info 0x0000b59b 0x2286 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
- .debug_info 0x0000d821 0x1825 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- .debug_info 0x0000f046 0x1073 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- .debug_info 0x000100b9 0x486 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
- .debug_info 0x0001053f 0xeb K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(int_cfg.o)
- .debug_info 0x0001062a 0xe0d K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
- .debug_info 0x00011437 0xf45 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
- .debug_info 0x0001237c 0x89f K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
- .debug_info 0x00012c1b 0x34e K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
- .debug_info 0x00012f69 0x368 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
- .debug_info 0x000132d1 0xbba K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
- .debug_info 0x00013e8b 0x4f4 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
- .debug_info 0x0001437f 0xa45 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
- .debug_info 0x00014dc4 0xc60 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
- .debug_info 0x00015a24 0x254 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
- .debug_info 0x00015c78 0x1b5 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
- .debug_info 0x00015e2d 0x217 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
- .debug_info 0x00016044 0xd7 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
- .debug_info 0x0001611b 0x175d K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
- .debug_info 0x00017878 0x67a7 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
- .debug_info 0x0001e01f 0x445c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
- .debug_info 0x0002247b 0x2a7c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
- .debug_info 0x00024ef7 0x1fa9 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
- .debug_info 0x00026ea0 0x25c5 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
- .debug_info 0x00029465 0x2232 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
- .debug_info 0x0002b697 0x387d K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
- .debug_info 0x0002ef14 0xbf K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_context.o)
- .debug_info 0x0002efd3 0x275c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
+ .debug_info 0x0000081c 0xa3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
+ .debug_info 0x00001258 0x3a4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
+ .debug_info 0x000015fc 0x1bd4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ .debug_info 0x000031d0 0x3eb K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
+ .debug_info 0x000035bb 0xe82 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ .debug_info 0x0000443d 0xf82 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
+ .debug_info 0x000053bf 0xf4e K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ .debug_info 0x0000630d 0x1cf6 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ .debug_info 0x00008003 0xb40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
+ .debug_info 0x00008b43 0x8a8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
+ .debug_info 0x000093eb 0x2343 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ .debug_info 0x0000b72e 0x228c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
+ .debug_info 0x0000d9ba 0x1989 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ .debug_info 0x0000f343 0x1073 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ .debug_info 0x000103b6 0x486 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
+ .debug_info 0x0001083c 0xeb K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(int_cfg.o)
+ .debug_info 0x00010927 0xe0d K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
+ .debug_info 0x00011734 0xf45 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
+ .debug_info 0x00012679 0x89f K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
+ .debug_info 0x00012f18 0x34e K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
+ .debug_info 0x00013266 0x368 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
+ .debug_info 0x000135ce 0xbba K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
+ .debug_info 0x00014188 0x4f4 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
+ .debug_info 0x0001467c 0xa45 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
+ .debug_info 0x000150c1 0xc60 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
+ .debug_info 0x00015d21 0x254 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
+ .debug_info 0x00015f75 0x1b5 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
+ .debug_info 0x0001612a 0x217 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
+ .debug_info 0x00016341 0xd7 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
+ .debug_info 0x00016418 0x175d K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
+ .debug_info 0x00017b75 0x67a7 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ .debug_info 0x0001e31c 0x445c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ .debug_info 0x00022778 0x2a7c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ .debug_info 0x000251f4 0x1fa9 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
+ .debug_info 0x0002719d 0x25c5 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
+ .debug_info 0x00029762 0x2232 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
+ .debug_info 0x0002b994 0x387d K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
+ .debug_info 0x0002f211 0xbf K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_context.o)
+ .debug_info 0x0002f2d0 0x275c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
-.debug_abbrev 0x00000000 0x80f5
+.debug_abbrev 0x00000000 0x8138
*(.debug_abbrev)
.debug_abbrev 0x00000000 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/vectors.o
.debug_abbrev 0x00000014 0xab K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/SysEntry.o
.debug_abbrev 0x000000bf 0x87 K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/appstart.o
.debug_abbrev 0x00000146 0x187 K:/rpm/project/zx297520v3/obj/tos/all/debug/os/tos/tos_irq.o
.debug_abbrev 0x000002cd 0xdd K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_init.o)
- .debug_abbrev 0x000003aa 0x278 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
- .debug_abbrev 0x00000622 0x109 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
- .debug_abbrev 0x0000072b 0x3c2 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
- .debug_abbrev 0x00000aed 0xd0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
- .debug_abbrev 0x00000bbd 0x378 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
- .debug_abbrev 0x00000f35 0x30c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
- .debug_abbrev 0x00001241 0x29b K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
- .debug_abbrev 0x000014dc 0x407 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
- .debug_abbrev 0x000018e3 0x2f0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
- .debug_abbrev 0x00001bd3 0x21c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
- .debug_abbrev 0x00001def 0x2fb K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
- .debug_abbrev 0x000020ea 0x33b K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
- .debug_abbrev 0x00002425 0x304 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- .debug_abbrev 0x00002729 0x216 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- .debug_abbrev 0x0000293f 0xc6 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
- .debug_abbrev 0x00002a05 0x72 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(int_cfg.o)
- .debug_abbrev 0x00002a77 0x24c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
- .debug_abbrev 0x00002cc3 0x2b6 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
- .debug_abbrev 0x00002f79 0x1f3 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
- .debug_abbrev 0x0000316c 0x148 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
- .debug_abbrev 0x000032b4 0x1be K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
- .debug_abbrev 0x00003472 0x26f K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
- .debug_abbrev 0x000036e1 0x197 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
- .debug_abbrev 0x00003878 0x314 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
- .debug_abbrev 0x00003b8c 0x31c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
- .debug_abbrev 0x00003ea8 0x14d K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
- .debug_abbrev 0x00003ff5 0x104 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
- .debug_abbrev 0x000040f9 0x167 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
- .debug_abbrev 0x00004260 0x9d K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
- .debug_abbrev 0x000042fd 0x3d2 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
- .debug_abbrev 0x000046cf 0x985 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
- .debug_abbrev 0x00005054 0x84e K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
- .debug_abbrev 0x000058a2 0x7cb K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
- .debug_abbrev 0x0000606d 0x5ba K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
- .debug_abbrev 0x00006627 0x735 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
- .debug_abbrev 0x00006d5c 0x5b6 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
- .debug_abbrev 0x00007312 0x62c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
- .debug_abbrev 0x0000793e 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_context.o)
- .debug_abbrev 0x00007952 0x7a3 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
+ .debug_abbrev 0x000003aa 0x283 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
+ .debug_abbrev 0x0000062d 0x109 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
+ .debug_abbrev 0x00000736 0x3c2 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ .debug_abbrev 0x00000af8 0x108 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
+ .debug_abbrev 0x00000c00 0x378 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ .debug_abbrev 0x00000f78 0x30c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
+ .debug_abbrev 0x00001284 0x29b K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ .debug_abbrev 0x0000151f 0x407 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ .debug_abbrev 0x00001926 0x2f0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
+ .debug_abbrev 0x00001c16 0x21c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
+ .debug_abbrev 0x00001e32 0x2fb K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ .debug_abbrev 0x0000212d 0x33b K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
+ .debug_abbrev 0x00002468 0x304 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ .debug_abbrev 0x0000276c 0x216 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ .debug_abbrev 0x00002982 0xc6 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
+ .debug_abbrev 0x00002a48 0x72 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(int_cfg.o)
+ .debug_abbrev 0x00002aba 0x24c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
+ .debug_abbrev 0x00002d06 0x2b6 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
+ .debug_abbrev 0x00002fbc 0x1f3 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
+ .debug_abbrev 0x000031af 0x148 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
+ .debug_abbrev 0x000032f7 0x1be K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
+ .debug_abbrev 0x000034b5 0x26f K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
+ .debug_abbrev 0x00003724 0x197 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
+ .debug_abbrev 0x000038bb 0x314 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
+ .debug_abbrev 0x00003bcf 0x31c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
+ .debug_abbrev 0x00003eeb 0x14d K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
+ .debug_abbrev 0x00004038 0x104 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
+ .debug_abbrev 0x0000413c 0x167 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
+ .debug_abbrev 0x000042a3 0x9d K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
+ .debug_abbrev 0x00004340 0x3d2 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
+ .debug_abbrev 0x00004712 0x985 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ .debug_abbrev 0x00005097 0x84e K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ .debug_abbrev 0x000058e5 0x7cb K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ .debug_abbrev 0x000060b0 0x5ba K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
+ .debug_abbrev 0x0000666a 0x735 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
+ .debug_abbrev 0x00006d9f 0x5b6 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
+ .debug_abbrev 0x00007355 0x62c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
+ .debug_abbrev 0x00007981 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_context.o)
+ .debug_abbrev 0x00007995 0x7a3 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
-.debug_line 0x00000000 0x94e0
+.debug_line 0x00000000 0x957c
*(.debug_line)
.debug_line 0x00000000 0xf0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/vectors.o
.debug_line 0x000000f0 0x8e K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/SysEntry.o
.debug_line 0x0000017e 0xb0 K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/appstart.o
.debug_line 0x0000022e 0x178 K:/rpm/project/zx297520v3/obj/tos/all/debug/os/tos/tos_irq.o
.debug_line 0x000003a6 0xa4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_init.o)
- .debug_line 0x0000044a 0x24f K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
- .debug_line 0x00000699 0xd8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
- .debug_line 0x00000771 0x493 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
- .debug_line 0x00000c04 0xac K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
- .debug_line 0x00000cb0 0x345 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
- .debug_line 0x00000ff5 0x2b3 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
- .debug_line 0x000012a8 0x288 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
- .debug_line 0x00001530 0x3c4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
- .debug_line 0x000018f4 0x568 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
- .debug_line 0x00001e5c 0x147 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
- .debug_line 0x00001fa3 0x5ea K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
- .debug_line 0x0000258d 0x52c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
- .debug_line 0x00002ab9 0x3b2 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- .debug_line 0x00002e6b 0x2ff K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- .debug_line 0x0000316a 0x96 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
- .debug_line 0x00003200 0x82 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(int_cfg.o)
- .debug_line 0x00003282 0x19b K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
- .debug_line 0x0000341d 0x319 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
- .debug_line 0x00003736 0x192 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
- .debug_line 0x000038c8 0xda K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
- .debug_line 0x000039a2 0x1d3 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
- .debug_line 0x00003b75 0x32f K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
- .debug_line 0x00003ea4 0x110 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
- .debug_line 0x00003fb4 0x317 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
- .debug_line 0x000042cb 0x486 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
- .debug_line 0x00004751 0x18c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
- .debug_line 0x000048dd 0x16c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
- .debug_line 0x00004a49 0x156 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
- .debug_line 0x00004b9f 0x126 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
- .debug_line 0x00004cc5 0x1d2 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
- .debug_line 0x00004e97 0x1292 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
- .debug_line 0x00006129 0xddd K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
- .debug_line 0x00006f06 0x593 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
- .debug_line 0x00007499 0x3eb K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
- .debug_line 0x00007884 0x526 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
- .debug_line 0x00007daa 0x4b7 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
- .debug_line 0x00008261 0xabe K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
- .debug_line 0x00008d1f 0xb9 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_context.o)
- .debug_line 0x00008dd8 0x708 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
+ .debug_line 0x0000044a 0x29f K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
+ .debug_line 0x000006e9 0xd8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
+ .debug_line 0x000007c1 0x493 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ .debug_line 0x00000c54 0xe2 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
+ .debug_line 0x00000d36 0x345 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ .debug_line 0x0000107b 0x2b3 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
+ .debug_line 0x0000132e 0x288 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ .debug_line 0x000015b6 0x3c4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ .debug_line 0x0000197a 0x568 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
+ .debug_line 0x00001ee2 0x147 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
+ .debug_line 0x00002029 0x5ea K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ .debug_line 0x00002613 0x52c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
+ .debug_line 0x00002b3f 0x3c8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ .debug_line 0x00002f07 0x2ff K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ .debug_line 0x00003206 0x96 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
+ .debug_line 0x0000329c 0x82 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(int_cfg.o)
+ .debug_line 0x0000331e 0x19b K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
+ .debug_line 0x000034b9 0x319 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
+ .debug_line 0x000037d2 0x192 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
+ .debug_line 0x00003964 0xda K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
+ .debug_line 0x00003a3e 0x1d3 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
+ .debug_line 0x00003c11 0x32f K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
+ .debug_line 0x00003f40 0x110 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
+ .debug_line 0x00004050 0x317 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
+ .debug_line 0x00004367 0x486 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
+ .debug_line 0x000047ed 0x18c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
+ .debug_line 0x00004979 0x16c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
+ .debug_line 0x00004ae5 0x156 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
+ .debug_line 0x00004c3b 0x126 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
+ .debug_line 0x00004d61 0x1d2 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
+ .debug_line 0x00004f33 0x1292 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ .debug_line 0x000061c5 0xddd K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ .debug_line 0x00006fa2 0x593 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ .debug_line 0x00007535 0x3eb K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
+ .debug_line 0x00007920 0x526 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
+ .debug_line 0x00007e46 0x4b7 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
+ .debug_line 0x000082fd 0xabe K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
+ .debug_line 0x00008dbb 0xb9 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_context.o)
+ .debug_line 0x00008e74 0x708 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
-.debug_frame 0x00000000 0x37a8
+.debug_frame 0x00000000 0x37ec
*(.debug_frame)
.debug_frame 0x00000000 0x28 K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/SysEntry.o
.debug_frame 0x00000028 0x38 K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/appstart.o
.debug_frame 0x00000060 0x120 K:/rpm/project/zx297520v3/obj/tos/all/debug/os/tos/tos_irq.o
.debug_frame 0x00000180 0x2c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_init.o)
- .debug_frame 0x000001ac 0x13c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
- .debug_frame 0x000002e8 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
- .debug_frame 0x00000328 0x220 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
- .debug_frame 0x00000548 0x2c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
- .debug_frame 0x00000574 0x194 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
- .debug_frame 0x00000708 0x13c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
- .debug_frame 0x00000844 0x128 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
- .debug_frame 0x0000096c 0x128 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
- .debug_frame 0x00000a94 0x310 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
- .debug_frame 0x00000da4 0x70 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
- .debug_frame 0x00000e14 0x1c4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
- .debug_frame 0x00000fd8 0x1a8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
- .debug_frame 0x00001180 0x1f8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- .debug_frame 0x00001378 0x1d0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- .debug_frame 0x00001548 0x7c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
- .debug_frame 0x000015c4 0x1c0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
- .debug_frame 0x00001784 0x118 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
- .debug_frame 0x0000189c 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
- .debug_frame 0x000018e0 0x7c K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
- .debug_frame 0x0000195c 0x1f8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
- .debug_frame 0x00001b54 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
- .debug_frame 0x00001b9c 0xb8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
- .debug_frame 0x00001c54 0x1d0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
- .debug_frame 0x00001e24 0x98 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
- .debug_frame 0x00001ebc 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
- .debug_frame 0x00001ef4 0x50 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
- .debug_frame 0x00001f44 0x28 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
- .debug_frame 0x00001f6c 0x6c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
- .debug_frame 0x00001fd8 0xadc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
- .debug_frame 0x00002ab4 0x2e0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
- .debug_frame 0x00002d94 0x24c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
- .debug_frame 0x00002fe0 0x15c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
- .debug_frame 0x0000313c 0xe8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
- .debug_frame 0x00003224 0xcc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
- .debug_frame 0x000032f0 0x214 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
- .debug_frame 0x00003504 0x254 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
- .debug_frame 0x00003758 0x20 /cygdrive/k/build/compiler/gcc_arm/arm-eabi/bin/../lib/gcc/arm-eabi/4.7.1/thumb/libgcc.a(_udivsi3.o)
- .debug_frame 0x00003778 0x30 /cygdrive/k/build/compiler/gcc_arm/arm-eabi/bin/../lib/gcc/arm-eabi/4.7.1/thumb/libgcc.a(_muldi3.o)
+ .debug_frame 0x000001ac 0x168 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
+ .debug_frame 0x00000314 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
+ .debug_frame 0x00000354 0x220 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ .debug_frame 0x00000574 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
+ .debug_frame 0x000005b8 0x194 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ .debug_frame 0x0000074c 0x13c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
+ .debug_frame 0x00000888 0x128 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ .debug_frame 0x000009b0 0x128 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ .debug_frame 0x00000ad8 0x310 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
+ .debug_frame 0x00000de8 0x70 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
+ .debug_frame 0x00000e58 0x1c4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ .debug_frame 0x0000101c 0x1a8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
+ .debug_frame 0x000011c4 0x1f8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ .debug_frame 0x000013bc 0x1d0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ .debug_frame 0x0000158c 0x7c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
+ .debug_frame 0x00001608 0x1c0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
+ .debug_frame 0x000017c8 0x118 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
+ .debug_frame 0x000018e0 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
+ .debug_frame 0x00001924 0x7c K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
+ .debug_frame 0x000019a0 0x1f8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
+ .debug_frame 0x00001b98 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
+ .debug_frame 0x00001be0 0xb8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
+ .debug_frame 0x00001c98 0x1d0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
+ .debug_frame 0x00001e68 0x98 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
+ .debug_frame 0x00001f00 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
+ .debug_frame 0x00001f38 0x50 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
+ .debug_frame 0x00001f88 0x28 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
+ .debug_frame 0x00001fb0 0x6c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
+ .debug_frame 0x0000201c 0xadc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ .debug_frame 0x00002af8 0x2e0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ .debug_frame 0x00002dd8 0x24c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ .debug_frame 0x00003024 0x15c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
+ .debug_frame 0x00003180 0xe8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
+ .debug_frame 0x00003268 0xcc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
+ .debug_frame 0x00003334 0x214 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
+ .debug_frame 0x00003548 0x254 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
+ .debug_frame 0x0000379c 0x20 /cygdrive/k/build/compiler/gcc_arm/arm-eabi/bin/../lib/gcc/arm-eabi/4.7.1/thumb/libgcc.a(_udivsi3.o)
+ .debug_frame 0x000037bc 0x30 /cygdrive/k/build/compiler/gcc_arm/arm-eabi/bin/../lib/gcc/arm-eabi/4.7.1/thumb/libgcc.a(_muldi3.o)
-.debug_str 0x00000000 0xb073
+.debug_str 0x00000000 0xb0f6
*(.debug_str)
.debug_str 0x00000000 0xec K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/SysEntry.o
0x12c (size before relaxing)
@@ -1739,125 +1739,125 @@
0x23b (size before relaxing)
.debug_str 0x000002dd 0x3c6 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_init.o)
0x491 (size before relaxing)
- .debug_str 0x000006a3 0x3e7 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
- 0x809 (size before relaxing)
- .debug_str 0x00000a8a 0x2d3 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
+ .debug_str 0x000006a3 0x42c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
+ 0x85a (size before relaxing)
+ .debug_str 0x00000acf 0x2d3 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
0x6e3 (size before relaxing)
- .debug_str 0x00000d5d 0x80e K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ .debug_str 0x00000da2 0x80e K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
0xdd8 (size before relaxing)
- .debug_str 0x0000156b 0xb6 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
- 0x68e (size before relaxing)
- .debug_str 0x00001621 0x513 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ .debug_str 0x000015b0 0xfc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
+ 0x6e1 (size before relaxing)
+ .debug_str 0x000016ac 0x513 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
0xc6c (size before relaxing)
- .debug_str 0x00001b34 0x4ae K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
+ .debug_str 0x00001bbf 0x4ae K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
0xcdf (size before relaxing)
- .debug_str 0x00001fe2 0x8ba K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
- 0xdc3 (size before relaxing)
- .debug_str 0x0000289c 0xb59 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ .debug_str 0x0000206d 0x8ba K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ 0xdce (size before relaxing)
+ .debug_str 0x00002927 0xb59 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
0x18df (size before relaxing)
- .debug_str 0x000033f5 0x434 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
+ .debug_str 0x00003480 0x434 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
0x567 (size before relaxing)
- .debug_str 0x00003829 0x16a K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
+ .debug_str 0x000038b4 0x16a K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
0x827 (size before relaxing)
- .debug_str 0x00003993 0xd33 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ .debug_str 0x00003a1e 0xd33 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
0x15c4 (size before relaxing)
- .debug_str 0x000046c6 0x5d2 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
- 0xf68 (size before relaxing)
- .debug_str 0x00004c98 0x33c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- 0xff2 (size before relaxing)
- .debug_str 0x00004fd4 0x236 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ .debug_str 0x00004751 0x5ca K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
+ 0xf77 (size before relaxing)
+ .debug_str 0x00004d1b 0x33c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x11ea (size before relaxing)
+ .debug_str 0x00005057 0x236 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
0xbc6 (size before relaxing)
- .debug_str 0x0000520a 0x37 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
+ .debug_str 0x0000528d 0x37 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
0x5fd (size before relaxing)
- .debug_str 0x00005241 0x33 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(int_cfg.o)
+ .debug_str 0x000052c4 0x33 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(int_cfg.o)
0x127 (size before relaxing)
- .debug_str 0x00005274 0x17a K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
+ .debug_str 0x000052f7 0x17a K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
0x10a1 (size before relaxing)
- .debug_str 0x000053ee 0x8fc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
+ .debug_str 0x00005471 0x8fc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
0xec6 (size before relaxing)
- .debug_str 0x00005cea 0xc7 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
+ .debug_str 0x00005d6d 0xc7 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
0x777 (size before relaxing)
- .debug_str 0x00005db1 0xc6 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
+ .debug_str 0x00005e34 0xc6 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
0x527 (size before relaxing)
- .debug_str 0x00005e77 0x1b6 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
+ .debug_str 0x00005efa 0x1b6 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
0x2ba (size before relaxing)
- .debug_str 0x0000602d 0x653 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
+ .debug_str 0x000060b0 0x653 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
0x84d (size before relaxing)
- .debug_str 0x00006680 0xac K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
+ .debug_str 0x00006703 0xac K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
0x703 (size before relaxing)
- .debug_str 0x0000672c 0x260 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
+ .debug_str 0x000067af 0x260 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
0x54c (size before relaxing)
- .debug_str 0x0000698c 0x3bb K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
+ .debug_str 0x00006a0f 0x3bb K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
0x55f (size before relaxing)
- .debug_str 0x00006d47 0x132 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
+ .debug_str 0x00006dca 0x132 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
0x280 (size before relaxing)
- .debug_str 0x00006e79 0xbb K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
+ .debug_str 0x00006efc 0xbb K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
0x1de (size before relaxing)
- .debug_str 0x00006f34 0xda K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
+ .debug_str 0x00006fb7 0xda K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
0x1fc (size before relaxing)
- .debug_str 0x0000700e 0xbc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
+ .debug_str 0x00007091 0xbc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
0x16e (size before relaxing)
- .debug_str 0x000070ca 0x14c4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
+ .debug_str 0x0000714d 0x14c4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
0x194b (size before relaxing)
- .debug_str 0x0000858e 0x1b2a K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ .debug_str 0x00008611 0x1b2a K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
0x38f7 (size before relaxing)
- .debug_str 0x0000a0b8 0x774 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ .debug_str 0x0000a13b 0x774 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
0x2380 (size before relaxing)
- .debug_str 0x0000a82c 0x232 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ .debug_str 0x0000a8af 0x232 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
0x2365 (size before relaxing)
- .debug_str 0x0000aa5e 0xdb K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
+ .debug_str 0x0000aae1 0xdb K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
0x1f06 (size before relaxing)
- .debug_str 0x0000ab39 0x179 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
+ .debug_str 0x0000abbc 0x179 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
0x22c8 (size before relaxing)
- .debug_str 0x0000acb2 0xa4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
+ .debug_str 0x0000ad35 0xa4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
0x1c8c (size before relaxing)
- .debug_str 0x0000ad56 0xe5 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
+ .debug_str 0x0000add9 0xe5 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
0x1ec0 (size before relaxing)
- .debug_str 0x0000ae3b 0x238 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
+ .debug_str 0x0000aebe 0x238 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
0x14ca (size before relaxing)
-.debug_loc 0x00000000 0x147e4
+.debug_loc 0x00000000 0x14b33
*(.debug_loc)
.debug_loc 0x00000000 0x20 K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/SysEntry.o
.debug_loc 0x00000020 0x20 K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/appstart.o
.debug_loc 0x00000040 0x160 K:/rpm/project/zx297520v3/obj/tos/all/debug/os/tos/tos_irq.o
.debug_loc 0x000001a0 0x47 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_init.o)
- .debug_loc 0x000001e7 0x552 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
- .debug_loc 0x00000739 0x165 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
- .debug_loc 0x0000089e 0x1238 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
- .debug_loc 0x00001ad6 0x70 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
- .debug_loc 0x00001b46 0x7cc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
- .debug_loc 0x00002312 0x60c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
- .debug_loc 0x0000291e 0xae3 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
- .debug_loc 0x00003401 0x711 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
- .debug_loc 0x00003b12 0x572 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
- .debug_loc 0x00004084 0x116 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
- .debug_loc 0x0000419a 0x1686 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
- .debug_loc 0x00005820 0x1fed K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
- .debug_loc 0x0000780d 0x90e K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- .debug_loc 0x0000811b 0xe69 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- .debug_loc 0x00008f84 0x512 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
- .debug_loc 0x00009496 0xb9b K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
- .debug_loc 0x0000a031 0x6c6 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
- .debug_loc 0x0000a6f7 0xdc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
- .debug_loc 0x0000a7d3 0x1b7 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
- .debug_loc 0x0000a98a 0x658 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
- .debug_loc 0x0000afe2 0x15b K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
- .debug_loc 0x0000b13d 0xb70 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
- .debug_loc 0x0000bcad 0x7e0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
- .debug_loc 0x0000c48d 0x147 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
- .debug_loc 0x0000c5d4 0x20 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
- .debug_loc 0x0000c5f4 0xed K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
- .debug_loc 0x0000c6e1 0x20 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
- .debug_loc 0x0000c701 0x146 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
- .debug_loc 0x0000c847 0x2a0e K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
- .debug_loc 0x0000f255 0x1cf1 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
- .debug_loc 0x00010f46 0x87e K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
- .debug_loc 0x000117c4 0x58e K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
- .debug_loc 0x00011d52 0x6e8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
- .debug_loc 0x0001243a 0x5c7 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
- .debug_loc 0x00012a01 0xfdc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
- .debug_loc 0x000139dd 0xe07 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
+ .debug_loc 0x000001e7 0x6bd K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
+ .debug_loc 0x000008a4 0x165 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
+ .debug_loc 0x00000a09 0x1238 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ .debug_loc 0x00001c41 0x254 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
+ .debug_loc 0x00001e95 0x7cc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ .debug_loc 0x00002661 0x60c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
+ .debug_loc 0x00002c6d 0xae3 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ .debug_loc 0x00003750 0x711 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ .debug_loc 0x00003e61 0x572 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
+ .debug_loc 0x000043d3 0x116 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
+ .debug_loc 0x000044e9 0x1686 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ .debug_loc 0x00005b6f 0x1fed K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
+ .debug_loc 0x00007b5c 0x90e K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ .debug_loc 0x0000846a 0xe69 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ .debug_loc 0x000092d3 0x512 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
+ .debug_loc 0x000097e5 0xb9b K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
+ .debug_loc 0x0000a380 0x6c6 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
+ .debug_loc 0x0000aa46 0xdc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
+ .debug_loc 0x0000ab22 0x1b7 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
+ .debug_loc 0x0000acd9 0x658 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
+ .debug_loc 0x0000b331 0x15b K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
+ .debug_loc 0x0000b48c 0xb70 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
+ .debug_loc 0x0000bffc 0x7e0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
+ .debug_loc 0x0000c7dc 0x147 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
+ .debug_loc 0x0000c923 0x20 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
+ .debug_loc 0x0000c943 0xed K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
+ .debug_loc 0x0000ca30 0x20 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
+ .debug_loc 0x0000ca50 0x146 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
+ .debug_loc 0x0000cb96 0x2a0e K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ .debug_loc 0x0000f5a4 0x1cf1 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ .debug_loc 0x00011295 0x87e K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ .debug_loc 0x00011b13 0x58e K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
+ .debug_loc 0x000120a1 0x6e8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
+ .debug_loc 0x00012789 0x5c7 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
+ .debug_loc 0x00012d50 0xfdc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
+ .debug_loc 0x00013d2c 0xe07 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
.debug_macinfo
*(.debug_macinfo)
@@ -1964,7 +1964,7 @@
0x000001f8 . = .
0x000001f8 __exidx_end = ABSOLUTE (.)
-.text 0x000001f8 0x6aec
+.text 0x000001f8 0x6c28
*(.text*)
.text 0x000001f8 0xc4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/vectors.o
0x000001f8 _start
@@ -2011,693 +2011,699 @@
.text.zDrvSysSpinlock_SoftLockPsm
0x000003b8 0x80 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
0x000003b8 zDrvSysSpinlock_SoftLockPsm
+ .text.zDrvSysSpinlock_SoftLockPsmTimeout
+ 0x00000438 0xb0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
+ 0x00000438 zDrvSysSpinlock_SoftLockPsmTimeout
.text.zDrvSysSpinlock_SoftUnlockPsm
- 0x00000438 0x84 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
- 0x00000438 zDrvSysSpinlock_SoftUnlockPsm
+ 0x000004e8 0x80 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
+ 0x000004e8 zDrvSysSpinlock_SoftUnlockPsm
.text.zDrvSysSpinlock_RegLock
- 0x000004bc 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
- 0x000004bc zDrvSysSpinlock_RegLock
+ 0x00000568 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
+ 0x00000568 zDrvSysSpinlock_RegLock
.text.zDrvSysSpinlock_RegUnlock
- 0x000004f8 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
- 0x000004f8 zDrvSysSpinlock_RegUnlock
+ 0x000005a4 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
+ 0x000005a4 zDrvSysSpinlock_RegUnlock
.text.zDrvSysSpinlock_Initiate
- 0x00000510 0x90 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
- 0x00000510 zDrvSysSpinlock_Initiate
+ 0x000005bc 0x94 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
+ 0x000005bc zDrvSysSpinlock_Initiate
.text.zDrvSys_Initiate
- 0x000005a0 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
- 0x000005a0 zDrvSys_Initiate
- .text.mem_cpy 0x000005ac 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x00000650 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
+ 0x00000650 zDrvSys_Initiate
+ .text.mem_cpy 0x0000065c 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
.text.Icp_IsRecvChEmpty
- 0x000005cc 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x0000067c 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
.text.rpMsg_Write.part.2
- 0x000005e4 0xa0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x00000694 0xa0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
.text.rpMsg_read.part.3
- 0x00000684 0x60 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x00000734 0x60 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
.text.Icp_DispatchRpMsg
- 0x000006e4 0xe4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x00000794 0xe4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
.text.Icp_AllIsr
- 0x000007c8 0xbc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
- 0x000007c8 Icp_AllIsr
+ 0x00000878 0xbc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x00000878 Icp_AllIsr
.text.Icp_PHYIsr
- 0x00000884 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x00000934 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
.text.Icp_PSIsr
- 0x00000890 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x00000940 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
.text.Icp_APIsr
- 0x0000089c 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x0000094c 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
.text.zDrvRpMsg_UnMask
- 0x000008a8 0x74 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
- 0x000008a8 zDrvRpMsg_UnMask
+ 0x00000958 0x74 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x00000958 zDrvRpMsg_UnMask
.text.zDrvRpMsg_Write
- 0x0000091c 0x16c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
- 0x0000091c zDrvRpMsg_Write
+ 0x000009cc 0x16c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x000009cc zDrvRpMsg_Write
.text.zDrvRpMsg_CreateChannel
- 0x00000a88 0xec K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
- 0x00000a88 zDrvRpMsg_CreateChannel
+ 0x00000b38 0xec K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x00000b38 zDrvRpMsg_CreateChannel
.text.zDrvRpMsg_RegCallBack
- 0x00000b74 0x58 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
- 0x00000b74 zDrvRpMsg_RegCallBack
+ 0x00000c24 0x58 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x00000c24 zDrvRpMsg_RegCallBack
.text.zDrvRpMsg_Initiate
- 0x00000bcc 0xd0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
- 0x00000bcc zDrvRpMsg_Initiate
+ 0x00000c7c 0xd0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x00000c7c zDrvRpMsg_Initiate
+ .text.zDrvGpio_SetValue
+ 0x00000d4c 0x70 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
+ 0x00000d4c zDrvGpio_SetValue
.text.zDrvGpio_Initiate
- 0x00000c9c 0x4c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
- 0x00000c9c zDrvGpio_Initiate
+ 0x00000dbc 0x4c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
+ 0x00000dbc zDrvGpio_Initiate
.text.__disable_irq
- 0x00000ce8 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
- 0x00000ce8 __disable_irq
+ 0x00000e08 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ 0x00000e08 __disable_irq
.text.zDrvInt_MaskIrq
- 0x00000cec 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
- 0x00000cec zDrvInt_MaskIrq
+ 0x00000e0c 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ 0x00000e0c zDrvInt_MaskIrq
.text.zDrvInt_UnmaskIrq
- 0x00000d04 0x2c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
- 0x00000d04 zDrvInt_UnmaskIrq
+ 0x00000e24 0x2c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ 0x00000e24 zDrvInt_UnmaskIrq
.text.zDrvInt_PreInit
- 0x00000d30 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
- 0x00000d30 zDrvInt_PreInit
+ 0x00000e50 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ 0x00000e50 zDrvInt_PreInit
.text.zDrvInt_InstallIsrDsr
- 0x00000d78 0xd4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
- 0x00000d78 zDrvInt_InstallIsrDsr
+ 0x00000e98 0xd4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ 0x00000e98 zDrvInt_InstallIsrDsr
.text.zDrvInt_InstallIsr
- 0x00000e4c 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
- 0x00000e4c zDrvInt_InstallIsr
+ 0x00000f6c 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ 0x00000f6c zDrvInt_InstallIsr
.text.zDrvInt_UninstallIsr
- 0x00000e58 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
- 0x00000e58 zDrvInt_UninstallIsr
+ 0x00000f78 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ 0x00000f78 zDrvInt_UninstallIsr
.text.zDrvPcu_ClearInt
- 0x00000ea0 0x98 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
- 0x00000ea0 zDrvPcu_ClearInt
+ 0x00000fc0 0x98 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ 0x00000fc0 zDrvPcu_ClearInt
.text.zDrvPcu_SetIntLevel
- 0x00000f38 0xf4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
- 0x00000f38 zDrvPcu_SetIntLevel
+ 0x00001058 0xf4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ 0x00001058 zDrvPcu_SetIntLevel
.text.zDrvInt_IrqMaskSave
- 0x0000102c 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
- 0x0000102c zDrvInt_IrqMaskSave
+ 0x0000114c 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ 0x0000114c zDrvInt_IrqMaskSave
.text.zDrvInt_IrqMaskAllIrq
- 0x00001044 0x1c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
- 0x00001044 zDrvInt_IrqMaskAllIrq
+ 0x00001164 0x1c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ 0x00001164 zDrvInt_IrqMaskAllIrq
.text.zDrvInt_IrqMaskRestore
- 0x00001060 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
- 0x00001060 zDrvInt_IrqMaskRestore
+ 0x00001180 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ 0x00001180 zDrvInt_IrqMaskRestore
.text.zDrvInt_DisSysTickInt
- 0x00001074 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
- 0x00001074 zDrvInt_DisSysTickInt
+ 0x00001194 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ 0x00001194 zDrvInt_DisSysTickInt
.text.zDrvInt_EnableSysTickInt
- 0x00001084 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
- 0x00001084 zDrvInt_EnableSysTickInt
+ 0x000011a4 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ 0x000011a4 zDrvInt_EnableSysTickInt
.text.zDrvTimer_Initiate
- 0x00001094 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
- 0x00001094 zDrvTimer_Initiate
+ 0x000011b4 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
+ 0x000011b4 zDrvTimer_Initiate
.text.zDrvTimer_PreInit
- 0x00001098 0x94 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
- 0x00001098 zDrvTimer_PreInit
+ 0x000011b8 0x94 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
+ 0x000011b8 zDrvTimer_PreInit
.text.dma_ResetChannel
- 0x0000112c 0x74 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
- 0x0000112c dma_ResetChannel
+ 0x0000124c 0x74 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ 0x0000124c dma_ResetChannel
.text.zDrvDma_GetStatus
- 0x000011a0 0x84 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
- 0x000011a0 zDrvDma_GetStatus
+ 0x000012c0 0x84 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ 0x000012c0 zDrvDma_GetStatus
.text.zDrvDma_Initiate
- 0x00001224 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
- 0x00001224 zDrvDma_Initiate
+ 0x00001344 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ 0x00001344 zDrvDma_Initiate
.text.zDrvDma_AllocChannel
- 0x00001264 0x38 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
- 0x00001264 zDrvDma_AllocChannel
+ 0x00001384 0x38 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ 0x00001384 zDrvDma_AllocChannel
.text.zDrvDma_ConfigChannel
- 0x0000129c 0x11c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
- 0x0000129c zDrvDma_ConfigChannel
+ 0x000013bc 0x11c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ 0x000013bc zDrvDma_ConfigChannel
.text.zDrvDma_StartChannel
- 0x000013b8 0x60 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
- 0x000013b8 zDrvDma_StartChannel
+ 0x000014d8 0x60 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ 0x000014d8 zDrvDma_StartChannel
.text.zDrvDma_DeAllocChannel
- 0x00001418 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
- 0x00001418 zDrvDma_DeAllocChannel
+ 0x00001538 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ 0x00001538 zDrvDma_DeAllocChannel
.text.zDrvDma_M2mPsm
- 0x00001454 0x11c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
- 0x00001454 zDrvDma_M2mPsm
+ 0x00001574 0x11c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ 0x00001574 zDrvDma_M2mPsm
.text.pow_SetVcoreOnOff.part.0
- 0x00001570 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x00001690 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
.text.pow_Pcu2M0IntStatu
- 0x00001588 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x000016a8 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
.text.pow_PsmCallBackRpMsg
- 0x000015c8 0x58 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x000016e8 0x58 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
.text.pow_hwen_set.part.5
- 0x00001620 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x00001740 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
.text.pow_PsmIdleThread
- 0x00001664 0x38 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x00001784 0x38 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
.text.pow_hwen_set
- 0x0000169c 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
- 0x0000169c pow_hwen_set
+ 0x000017bc 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x000017bc pow_hwen_set
.text.pow_SaveRestoreDsr
- 0x000016ec 0x3c8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x0000180c 0x3c8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
.text.pow_IcpInit
- 0x00001ab4 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
- 0x00001ab4 pow_IcpInit
+ 0x00001bd4 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x00001bd4 pow_IcpInit
.text.zDrvPow_CoreIsActive
- 0x00001afc 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
- 0x00001afc zDrvPow_CoreIsActive
+ 0x00001c1c 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x00001c1c zDrvPow_CoreIsActive
.text.zDrvPow_Init
- 0x00001b38 0x20c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
- 0x00001b38 zDrvPow_Init
+ 0x00001c58 0x20c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x00001c58 zDrvPow_Init
.text.pow_DdrGetSize
- 0x00001d44 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
- 0x00001d44 pow_DdrGetSize
+ 0x00001e64 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
+ 0x00001e64 pow_DdrGetSize
.text.pow_DdrPhyConfig
- 0x00001d84 0x188 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
- 0x00001d84 pow_DdrPhyConfig
+ 0x00001ea4 0x188 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
+ 0x00001ea4 pow_DdrPhyConfig
.text.pow_DdrCtrlConfig
- 0x00001f0c 0x234 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
- 0x00001f0c pow_DdrCtrlConfig
+ 0x0000202c 0x234 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
+ 0x0000202c pow_DdrCtrlConfig
.text.pow_DdrPllDllLock
- 0x00002140 0x70 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
- 0x00002140 pow_DdrPllDllLock
+ 0x00002260 0x70 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
+ 0x00002260 pow_DdrPllDllLock
.text.pow_DdrReinit
- 0x000021b0 0x194 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
- 0x000021b0 pow_DdrReinit
+ 0x000022d0 0x194 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
+ 0x000022d0 pow_DdrReinit
.text.pow_DdrDfiInitCompleteEn
- 0x00002344 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
- 0x00002344 pow_DdrDfiInitCompleteEn
+ 0x00002464 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
+ 0x00002464 pow_DdrDfiInitCompleteEn
.text.zDrvPow_DdrHwSrEnable
- 0x00002364 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
- 0x00002364 zDrvPow_DdrHwSrEnable
+ 0x00002484 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
+ 0x00002484 zDrvPow_DdrHwSrEnable
.text.zDrvPow_DdrHwSrDisable
- 0x000023a4 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
- 0x000023a4 zDrvPow_DdrHwSrDisable
+ 0x000024c4 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
+ 0x000024c4 zDrvPow_DdrHwSrDisable
.text.zDrvPow_DdrAutoLpEnable
- 0x000023e8 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
- 0x000023e8 zDrvPow_DdrAutoLpEnable
+ 0x00002508 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
+ 0x00002508 zDrvPow_DdrAutoLpEnable
.text.pow_DdrInit
- 0x00002428 0x78 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
- 0x00002428 pow_DdrInit
+ 0x00002548 0x78 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
+ 0x00002548 pow_DdrInit
.text.pow_DdrLpEnable
- 0x000024a0 0x1c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
- 0x000024a0 pow_DdrLpEnable
+ 0x000025c0 0x1c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
+ 0x000025c0 pow_DdrLpEnable
.text.zDrvPow_DdrAutoLpDisable
- 0x000024bc 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
- 0x000024bc zDrvPow_DdrAutoLpDisable
+ 0x000025dc 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
+ 0x000025dc zDrvPow_DdrAutoLpDisable
.text.pow_DdrLpDisable
- 0x00002500 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
- 0x00002500 pow_DdrLpDisable
+ 0x00002620 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
+ 0x00002620 pow_DdrLpDisable
.text.zDrvPow_DdrLpEnterHandle
- 0x00002520 0x2f4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
- 0x00002520 zDrvPow_DdrLpEnterHandle
+ 0x00002640 0x2f4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
+ 0x00002640 zDrvPow_DdrLpEnterHandle
.text.zDrvPow_DdrLpExitHandle
- 0x00002814 0xc4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
- 0x00002814 zDrvPow_DdrLpExitHandle
+ 0x00002934 0xc4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
+ 0x00002934 zDrvPow_DdrLpExitHandle
.text.Pow_DebugIramInit
- 0x000028d8 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
- 0x000028d8 Pow_DebugIramInit
+ 0x000029f8 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
+ 0x000029f8 Pow_DebugIramInit
.text.pow_LpTypeCheck
- 0x00002928 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
- 0x00002928 pow_LpTypeCheck
+ 0x00002a48 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
+ 0x00002a48 pow_LpTypeCheck
.text.pow_SetLpModeCallback
- 0x0000293c 0x124 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
- 0x0000293c pow_SetLpModeCallback
+ 0x00002a5c 0x124 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
+ 0x00002a5c pow_SetLpModeCallback
.text.pow_SpifcSave
- 0x00002a60 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
- 0x00002a60 pow_SpifcSave
+ 0x00002b80 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x00002b80 pow_SpifcSave
.text.pow_SpifcRestore
- 0x00002aa4 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
- 0x00002aa4 pow_SpifcRestore
+ 0x00002bc4 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x00002bc4 pow_SpifcRestore
.text.pow_IcpSave
- 0x00002ae8 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
- 0x00002ae8 pow_IcpSave
+ 0x00002c08 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x00002c08 pow_IcpSave
.text.pow_IcpRestore
- 0x00002b30 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
- 0x00002b30 pow_IcpRestore
+ 0x00002c50 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x00002c50 pow_IcpRestore
.text.pow_SpiSave
- 0x00002b74 0x68 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
- 0x00002b74 pow_SpiSave
+ 0x00002c94 0x68 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x00002c94 pow_SpiSave
.text.pow_SpiRestore
- 0x00002bdc 0x84 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
- 0x00002bdc pow_SpiRestore
+ 0x00002cfc 0x84 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x00002cfc pow_SpiRestore
.text.pow_VouSave
- 0x00002c60 0x64 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
- 0x00002c60 pow_VouSave
+ 0x00002d80 0x64 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x00002d80 pow_VouSave
.text.pow_VouRestore
- 0x00002cc4 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
- 0x00002cc4 pow_VouRestore
+ 0x00002de4 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x00002de4 pow_VouRestore
.text.pow_Iram0Save
- 0x00002d04 0x2c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
- 0x00002d04 pow_Iram0Save
+ 0x00002e24 0x2c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x00002e24 pow_Iram0Save
.text.pow_Iram0Restore
- 0x00002d30 0x30 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
- 0x00002d30 pow_Iram0Restore
+ 0x00002e50 0x30 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x00002e50 pow_Iram0Restore
.text.zDrvPow_PdcoreRegsSave
- 0x00002d60 0x66c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
- 0x00002d60 zDrvPow_PdcoreRegsSave
+ 0x00002e80 0x66c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x00002e80 zDrvPow_PdcoreRegsSave
.text.zDrvPow_PdcoreRegsRestore
- 0x000033cc 0x7ec K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
- 0x000033cc zDrvPow_PdcoreRegsRestore
+ 0x000034ec 0x7ec K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x000034ec zDrvPow_PdcoreRegsRestore
.text.i2c_WaitTransferOver.isra.0
- 0x00003bb8 0x68 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
+ 0x00003cd8 0x68 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
.text.i2c_SetMode.isra.1
- 0x00003c20 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
+ 0x00003d40 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
.text.i2c_SetSlaveAddress
- 0x00003c70 0x24 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
+ 0x00003d90 0x24 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
.text.zDrvI2c_DevWrite_PSM
- 0x00003c94 0x160 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
- 0x00003c94 zDrvI2c_DevWrite_PSM
+ 0x00003db4 0x160 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
+ 0x00003db4 zDrvI2c_DevWrite_PSM
.text.zDrvI2c_Initiate
- 0x00003df4 0x98 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
- 0x00003df4 zDrvI2c_Initiate
+ 0x00003f14 0x98 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
+ 0x00003f14 zDrvI2c_Initiate
.text.wdt_rpmsg_callback
- 0x00003e8c 0x38 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x00003fac 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
.text.wdt_get_switch
- 0x00003ec4 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- 0x00003ec4 wdt_get_switch
+ 0x00003fe8 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x00003fe8 wdt_get_switch
.text.wdt_get_time_out
- 0x00003f04 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- 0x00003f04 wdt_get_time_out
+ 0x00004028 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x00004028 wdt_get_time_out
.text.wdt_set_time_out
- 0x00003f44 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- 0x00003f44 wdt_set_time_out
+ 0x00004068 0x4c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x00004068 wdt_set_time_out
.text.wdt_set_value
- 0x00003f94 0x54 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- 0x00003f94 wdt_set_value
+ 0x000040b4 0x58 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x000040b4 wdt_set_value
.text.wdt_set_int_value
- 0x00003fe8 0x58 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- 0x00003fe8 wdt_set_int_value
+ 0x0000410c 0x54 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x0000410c wdt_set_int_value
.text.wdt_start_config
- 0x00004040 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- 0x00004040 wdt_start_config
+ 0x00004160 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x00004160 wdt_start_config
.text.wdt_refresh_config
- 0x00004090 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- 0x00004090 wdt_refresh_config
+ 0x000041b0 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x000041b0 wdt_refresh_config
.text.wdt_set_clk_div
- 0x000040d4 0x54 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- 0x000040d4 wdt_set_clk_div
+ 0x000041f4 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x000041f4 wdt_set_clk_div
.text.wdt_set_src_clk
- 0x00004128 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- 0x00004128 wdt_set_src_clk
+ 0x00004244 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x00004244 wdt_set_src_clk
.text.wdt_reset_all_config
- 0x00004178 0x2c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- 0x00004178 wdt_reset_all_config
+ 0x00004294 0x2c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x00004294 wdt_reset_all_config
.text.wdt_feed_dog
- 0x000041a4 0x8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- 0x000041a4 wdt_feed_dog
+ 0x000042c0 0x8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x000042c0 wdt_feed_dog
.text.wdt_icp_wake_up
- 0x000041ac 0xec K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- 0x000041ac wdt_icp_wake_up
- .text.wdt_isr 0x00004298 0x12c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- 0x00004298 wdt_isr
+ 0x000042c8 0xec K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x000042c8 wdt_icp_wake_up
+ .text.wdt_isr 0x000043b4 0x14c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x000043b4 wdt_isr
.text.wdt_IsWdtFuncOpen
- 0x000043c4 0x54 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- 0x000043c4 wdt_IsWdtFuncOpen
+ 0x00004500 0x54 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x00004500 wdt_IsWdtFuncOpen
.text.zDrvWdt_RpmRebootRecord
- 0x00004418 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- 0x00004418 zDrvWdt_RpmRebootRecord
+ 0x00004554 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x00004554 zDrvWdt_RpmRebootRecord
.text.zDrvWdt_Initiate
- 0x00004454 0xe0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- 0x00004454 zDrvWdt_Initiate
+ 0x00004590 0xe0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x00004590 zDrvWdt_Initiate
.text.sysclk_CommSetFreq
- 0x00004534 0x9c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- 0x00004534 sysclk_CommSetFreq
+ 0x00004670 0x9c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ 0x00004670 sysclk_CommSetFreq
.text.sysclk_CommResetCtrl
- 0x000045d0 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- 0x000045d0 sysclk_CommResetCtrl
+ 0x0000470c 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ 0x0000470c sysclk_CommResetCtrl
.text.sysclk_CommHwGateCtrl
- 0x00004610 0x7c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- 0x00004610 sysclk_CommHwGateCtrl
+ 0x0000474c 0x7c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ 0x0000474c sysclk_CommHwGateCtrl
.text.sysclk_MatrixAxiHwGate
- 0x0000468c 0x24 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- 0x0000468c sysclk_MatrixAxiHwGate
+ 0x000047c8 0x24 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ 0x000047c8 sysclk_MatrixAxiHwGate
.text.sysclk_CommSwGateCtrl
- 0x000046b0 0x7c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- 0x000046b0 sysclk_CommSwGateCtrl
+ 0x000047ec 0x7c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ 0x000047ec sysclk_CommSwGateCtrl
.text.sysclk_SwGateCtrl0
- 0x0000472c 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- 0x0000472c sysclk_SwGateCtrl0
+ 0x00004868 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ 0x00004868 sysclk_SwGateCtrl0
.text.sysclk_MatrixAxiSwGate
- 0x00004740 0x24 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- 0x00004740 sysclk_MatrixAxiSwGate
+ 0x0000487c 0x24 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ 0x0000487c sysclk_MatrixAxiSwGate
.text.sysclk_DisableUnused
- 0x00004764 0x64 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- 0x00004764 sysclk_DisableUnused
+ 0x000048a0 0x64 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ 0x000048a0 sysclk_DisableUnused
.text.sysclk_AutoGateInit
- 0x000047c8 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- 0x000047c8 sysclk_AutoGateInit
+ 0x00004904 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ 0x00004904 sysclk_AutoGateInit
.text.zDrvSysClk_SetGate
- 0x00004808 0xac K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- 0x00004808 zDrvSysClk_SetGate
+ 0x00004944 0xac K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ 0x00004944 zDrvSysClk_SetGate
.text.zDrvSysClk_SetFreq
- 0x000048b4 0x5c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- 0x000048b4 zDrvSysClk_SetFreq
+ 0x000049f0 0x5c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ 0x000049f0 zDrvSysClk_SetFreq
.text.zDrvSysClk_Reset
- 0x00004910 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- 0x00004910 zDrvSysClk_Reset
+ 0x00004a4c 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ 0x00004a4c zDrvSysClk_Reset
.text.zDrvSysClk_Release
- 0x00004960 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- 0x00004960 zDrvSysClk_Release
+ 0x00004a9c 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ 0x00004a9c zDrvSysClk_Release
.text.sysclk_Initiate
- 0x000049b0 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- 0x000049b0 sysclk_Initiate
+ 0x00004aec 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ 0x00004aec sysclk_Initiate
.text.pow_ClkGateInit
- 0x000049d0 0x24 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
- 0x000049d0 pow_ClkGateInit
+ 0x00004b0c 0x24 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
+ 0x00004b0c pow_ClkGateInit
.text.pow_AxiClk_Change
- 0x000049f4 0x240 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
- 0x000049f4 pow_AxiClk_Change
+ 0x00004b30 0x240 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
+ 0x00004b30 pow_AxiClk_Change
.text.zDrvPow_AxiChangeClk
- 0x00004c34 0x5c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
- 0x00004c34 zDrvPow_AxiChangeClk
+ 0x00004d70 0x5c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
+ 0x00004d70 zDrvPow_AxiChangeClk
.text.zDrvPmic_SetVcoreOnOffPSM
- 0x00004c90 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
- 0x00004c90 zDrvPmic_SetVcoreOnOffPSM
+ 0x00004dcc 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
+ 0x00004dcc zDrvPmic_SetVcoreOnOffPSM
.text.zDrvPmic_I2cWrite_PSM
- 0x00004cb8 0x2c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
- 0x00004cb8 zDrvPmic_I2cWrite_PSM
+ 0x00004df4 0x2c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
+ 0x00004df4 zDrvPmic_I2cWrite_PSM
.text.zDrvExcep_Handler
- 0x00004ce4 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
- 0x00004ce4 zDrvExcep_Handler
+ 0x00004e20 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
+ 0x00004e20 zDrvExcep_Handler
.text.tos_assert_failed
- 0x00004d24 0x30 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
- 0x00004d24 tos_assert_failed
+ 0x00004e60 0x30 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
+ 0x00004e60 tos_assert_failed
.text.tos_idle_thread
- 0x00004d54 0x8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
- 0x00004d54 tos_idle_thread
+ 0x00004e90 0x8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
+ 0x00004e90 tos_idle_thread
.text.tos_default_isr
- 0x00004d5c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
- 0x00004d5c tos_default_isr
+ 0x00004e98 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
+ 0x00004e98 tos_default_isr
.text.tos_create_irq
- 0x00004d60 0x78 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
- 0x00004d60 tos_create_irq
+ 0x00004e9c 0x78 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
+ 0x00004e9c tos_create_irq
.text.tos_delete_irq
- 0x00004dd8 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
- 0x00004dd8 tos_delete_irq
+ 0x00004f14 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
+ 0x00004f14 tos_delete_irq
.text.zLogCtrl_NotifyCapWakeUp
- 0x00004e14 0x4c K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
+ 0x00004f50 0x4c K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
.text.zOss_LogWakeUpInit
- 0x00004e60 0x54 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
- 0x00004e60 zOss_LogWakeUpInit
- .text.memset 0x00004eb4 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
- 0x00004eb4 memset
+ 0x00004f9c 0x54 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
+ 0x00004f9c zOss_LogWakeUpInit
+ .text.memset 0x00004ff0 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
+ 0x00004ff0 memset
.text.zOss_RamdumpInit
- 0x00004ecc 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
- 0x00004ecc zOss_RamdumpInit
+ 0x00005008 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
+ 0x00005008 zOss_RamdumpInit
.text.zOss_RamdumpHandle
- 0x00004eec 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
- 0x00004eec zOss_RamdumpHandle
+ 0x00005028 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
+ 0x00005028 zOss_RamdumpHandle
.text.hal_reset_vsr
- 0x00004f34 0x130 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
- 0x00004f34 hal_reset_vsr
+ 0x00005070 0x130 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
+ 0x00005070 hal_reset_vsr
.text.hal_deliver_exception
- 0x00005064 0x24 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
- 0x00005064 hal_deliver_exception
+ 0x000051a0 0x24 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
+ 0x000051a0 hal_deliver_exception
.text.hal_interrupt_end
- 0x00005088 0x1c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
- 0x00005088 hal_interrupt_end
+ 0x000051c4 0x1c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
+ 0x000051c4 hal_interrupt_end
.text.hal_interrupt_mask
- 0x000050a4 0x34 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
- 0x000050a4 hal_interrupt_mask
+ 0x000051e0 0x34 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
+ 0x000051e0 hal_interrupt_mask
.text.hal_deliver_interrupt
- 0x000050d8 0x60 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
- 0x000050d8 hal_deliver_interrupt
+ 0x00005214 0x60 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
+ 0x00005214 hal_deliver_interrupt
.text.hal_interrupt_unmask
- 0x00005138 0x40 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
- 0x00005138 hal_interrupt_unmask
+ 0x00005274 0x40 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
+ 0x00005274 hal_interrupt_unmask
.text.hal_interrupt_unmask_safe
- 0x00005178 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
- 0x00005178 hal_interrupt_unmask_safe
+ 0x000052b4 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
+ 0x000052b4 hal_interrupt_unmask_safe
.text.hal_interrupt_set_level
- 0x00005180 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
- 0x00005180 hal_interrupt_set_level
+ 0x000052bc 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
+ 0x000052bc hal_interrupt_set_level
.text.hal_interrupt_set_priority
- 0x00005184 0x6c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
- 0x00005184 hal_interrupt_set_priority
+ 0x000052c0 0x6c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
+ 0x000052c0 hal_interrupt_set_priority
.text.hal_arch_default_isr
- 0x000051f0 0x24 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
- 0x000051f0 hal_arch_default_isr
+ 0x0000532c 0x24 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
+ 0x0000532c hal_arch_default_isr
.text.hal_lsbindex
- 0x00005214 0x20 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
- 0x00005214 hal_lsbindex
+ 0x00005350 0x20 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
+ 0x00005350 hal_lsbindex
.text.hal_clock_initialize
- 0x00005234 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
- 0x00005234 hal_clock_initialize
+ 0x00005370 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
+ 0x00005370 hal_clock_initialize
.text.hal_clock_isr
- 0x00005248 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
- 0x00005248 hal_clock_isr
+ 0x00005384 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
+ 0x00005384 hal_clock_isr
.text.hal_variant_init
- 0x00005250 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
- 0x00005250 hal_variant_init
+ 0x0000538c 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
+ 0x0000538c hal_variant_init
.text.hal_system_init
- 0x00005264 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
- 0x00005264 hal_system_init
+ 0x000053a0 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
+ 0x000053a0 hal_system_init
.text.hal_platform_init
- 0x00005268 0x4c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
- 0x00005268 hal_platform_init
+ 0x000053a4 0x4c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
+ 0x000053a4 hal_platform_init
.text.hal_default_isr
- 0x000052b4 0x28 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
- 0x000052b4 hal_default_isr
+ 0x000053f0 0x28 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
+ 0x000053f0 hal_default_isr
.text.cyg_start
- 0x000052dc 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
- 0x000052dc cyg_start
+ 0x00005418 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
+ 0x00005418 cyg_start
.text.cyg_assert_fail
- 0x000052e8 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
- 0x000052e8 cyg_assert_fail
+ 0x00005424 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
+ 0x00005424 cyg_assert_fail
.text.cyg_check_data_ptr
- 0x000052fc 0x28 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
- 0x000052fc cyg_check_data_ptr
+ 0x00005438 0x28 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
+ 0x00005438 cyg_check_data_ptr
.text.unlikely._ZnwjPv.isra.2.part.3
- 0x00005324 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ 0x00005460 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
.text.cyg_thread_create
- 0x00005338 0x70 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
- 0x00005338 cyg_thread_create
+ 0x00005474 0x70 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ 0x00005474 cyg_thread_create
.text.cyg_thread_resume
- 0x000053a8 0x18 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
- 0x000053a8 cyg_thread_resume
+ 0x000054e4 0x18 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ 0x000054e4 cyg_thread_resume
.text.cyg_interrupt_create
- 0x000053c0 0x70 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
- 0x000053c0 cyg_interrupt_create
+ 0x000054fc 0x70 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ 0x000054fc cyg_interrupt_create
.text.cyg_interrupt_delete
- 0x00005430 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
- 0x00005430 cyg_interrupt_delete
+ 0x0000556c 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ 0x0000556c cyg_interrupt_delete
.text.cyg_interrupt_attach
- 0x00005438 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
- 0x00005438 cyg_interrupt_attach
+ 0x00005574 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ 0x00005574 cyg_interrupt_attach
.text.cyg_interrupt_detach
- 0x00005440 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
- 0x00005440 cyg_interrupt_detach
+ 0x0000557c 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ 0x0000557c cyg_interrupt_detach
.text.cyg_interrupt_mask
- 0x00005448 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
- 0x00005448 cyg_interrupt_mask
+ 0x00005584 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ 0x00005584 cyg_interrupt_mask
.text.cyg_interrupt_unmask
- 0x00005450 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
- 0x00005450 cyg_interrupt_unmask
+ 0x0000558c 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ 0x0000558c cyg_interrupt_unmask
.text.cyg_semaphore_init
- 0x00005458 0x28 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
- 0x00005458 cyg_semaphore_init
+ 0x00005594 0x28 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ 0x00005594 cyg_semaphore_init
.text.cyg_semaphore_post
- 0x00005480 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
- 0x00005480 cyg_semaphore_post
+ 0x000055bc 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ 0x000055bc cyg_semaphore_post
.text.cyg_mutex_init
- 0x00005488 0x24 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
- 0x00005488 cyg_mutex_init
+ 0x000055c4 0x24 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ 0x000055c4 cyg_mutex_init
.text.cyg_mutex_lock
- 0x000054ac 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
- 0x000054ac cyg_mutex_lock
+ 0x000055e8 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ 0x000055e8 cyg_mutex_lock
.text.cyg_mutex_unlock
- 0x000054b4 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
- 0x000054b4 cyg_mutex_unlock
+ 0x000055f0 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ 0x000055f0 cyg_mutex_unlock
.text.startup._GLOBAL__sub_I_cyg_scheduler_start
- 0x000054bc 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ 0x000055f8 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
.text._Z16idle_thread_mainj
- 0x000054c8 0x40 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
- 0x000054c8 idle_thread_main(unsigned int)
+ 0x00005604 0x40 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ 0x00005604 idle_thread_main(unsigned int)
.text._ZN10Cyg_ThreadC2EjPFvjEjPcjj
- 0x00005508 0x270 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
- 0x00005508 Cyg_Thread::Cyg_Thread(unsigned int, void (*)(unsigned int), unsigned int, char*, unsigned int, unsigned int)
- 0x00005508 Cyg_Thread::Cyg_Thread(unsigned int, void (*)(unsigned int), unsigned int, char*, unsigned int, unsigned int)
+ 0x00005644 0x270 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ 0x00005644 Cyg_Thread::Cyg_Thread(unsigned int, void (*)(unsigned int), unsigned int, char*, unsigned int, unsigned int)
+ 0x00005644 Cyg_Thread::Cyg_Thread(unsigned int, void (*)(unsigned int), unsigned int, char*, unsigned int, unsigned int)
.text._ZNK10Cyg_Thread10check_thisE21cyg_assert_class_zeal
- 0x00005778 0x40 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
- 0x00005778 Cyg_Thread::check_this(cyg_assert_class_zeal) const
+ 0x000058b4 0x40 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ 0x000058b4 Cyg_Thread::check_this(cyg_assert_class_zeal) const
.text._ZN10Cyg_Thread12reinitializeEv
- 0x000057b8 0xc0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
- 0x000057b8 Cyg_Thread::reinitialize()
+ 0x000058f4 0xc0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ 0x000058f4 Cyg_Thread::reinitialize()
.text._ZN10Cyg_Thread5sleepEv
- 0x00005878 0x90 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
- 0x00005878 Cyg_Thread::sleep()
+ 0x000059b4 0x90 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ 0x000059b4 Cyg_Thread::sleep()
.text._ZN10Cyg_Thread4wakeEv
- 0x00005908 0x78 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
- 0x00005908 Cyg_Thread::wake()
+ 0x00005a44 0x78 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ 0x00005a44 Cyg_Thread::wake()
.text._ZN15Cyg_ThreadTimer5alarmEP9Cyg_Alarmj
- 0x00005980 0x8c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
- 0x00005980 Cyg_ThreadTimer::alarm(Cyg_Alarm*, unsigned int)
+ 0x00005abc 0x8c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ 0x00005abc Cyg_ThreadTimer::alarm(Cyg_Alarm*, unsigned int)
.text._ZN10Cyg_Thread6resumeEv
- 0x00005a0c 0x94 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
- 0x00005a0c Cyg_Thread::resume()
+ 0x00005b48 0x94 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ 0x00005b48 Cyg_Thread::resume()
.text._ZN10Cyg_Thread4exitEv
- 0x00005aa0 0x3c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
- 0x00005aa0 Cyg_Thread::exit()
+ 0x00005bdc 0x3c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ 0x00005bdc Cyg_Thread::exit()
.text._ZN18Cyg_HardwareThread12thread_entryEP10Cyg_Thread
- 0x00005adc 0x1c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
- 0x00005adc Cyg_HardwareThread::thread_entry(Cyg_Thread*)
+ 0x00005c18 0x1c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ 0x00005c18 Cyg_HardwareThread::thread_entry(Cyg_Thread*)
.text._ZN14Cyg_IdleThreadC2Ev
- 0x00005af8 0x54 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
- 0x00005af8 Cyg_IdleThread::Cyg_IdleThread()
- 0x00005af8 Cyg_IdleThread::Cyg_IdleThread()
+ 0x00005c34 0x54 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ 0x00005c34 Cyg_IdleThread::Cyg_IdleThread()
+ 0x00005c34 Cyg_IdleThread::Cyg_IdleThread()
.text.startup._GLOBAL__sub_I.15000__ZN18Cyg_HardwareThread12thread_entryEP10Cyg_Thread
- 0x00005b4c 0x10 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ 0x00005c88 0x10 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
.text._ZN13Cyg_InterruptC2EjijPFjjjEPFvjjjE
- 0x00005b5c 0x10 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
- 0x00005b5c Cyg_Interrupt::Cyg_Interrupt(unsigned int, int, unsigned int, unsigned int (*)(unsigned int, unsigned int), void (*)(unsigned int, unsigned int, unsigned int))
- 0x00005b5c Cyg_Interrupt::Cyg_Interrupt(unsigned int, int, unsigned int, unsigned int (*)(unsigned int, unsigned int), void (*)(unsigned int, unsigned int, unsigned int))
+ 0x00005c98 0x10 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ 0x00005c98 Cyg_Interrupt::Cyg_Interrupt(unsigned int, int, unsigned int, unsigned int (*)(unsigned int, unsigned int), void (*)(unsigned int, unsigned int, unsigned int))
+ 0x00005c98 Cyg_Interrupt::Cyg_Interrupt(unsigned int, int, unsigned int, unsigned int (*)(unsigned int, unsigned int), void (*)(unsigned int, unsigned int, unsigned int))
.text._ZN13Cyg_Interrupt17call_pending_DSRsEv
- 0x00005b6c 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
- 0x00005b6c Cyg_Interrupt::call_pending_DSRs()
+ 0x00005ca8 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ 0x00005ca8 Cyg_Interrupt::call_pending_DSRs()
.text.cyg_interrupt_post_dsr
- 0x00005ba4 0x30 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
- 0x00005ba4 cyg_interrupt_post_dsr
+ 0x00005ce0 0x30 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ 0x00005ce0 cyg_interrupt_post_dsr
.text.interrupt_end
- 0x00005bd4 0x74 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
- 0x00005bd4 interrupt_end
+ 0x00005d10 0x74 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ 0x00005d10 interrupt_end
.text._ZN13Cyg_Interrupt6attachEv
- 0x00005c48 0x8c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
- 0x00005c48 Cyg_Interrupt::attach()
+ 0x00005d84 0x8c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ 0x00005d84 Cyg_Interrupt::attach()
.text._ZN13Cyg_Interrupt6detachEv
- 0x00005cd4 0x60 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
- 0x00005cd4 Cyg_Interrupt::detach()
+ 0x00005e10 0x60 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ 0x00005e10 Cyg_Interrupt::detach()
.text._ZN13Cyg_InterruptD2Ev
- 0x00005d34 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
- 0x00005d34 Cyg_Interrupt::~Cyg_Interrupt()
- 0x00005d34 Cyg_Interrupt::~Cyg_Interrupt()
+ 0x00005e70 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ 0x00005e70 Cyg_Interrupt::~Cyg_Interrupt()
+ 0x00005e70 Cyg_Interrupt::~Cyg_Interrupt()
.text._ZN13Cyg_Interrupt14mask_interruptEj
- 0x00005d40 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
- 0x00005d40 Cyg_Interrupt::mask_interrupt(unsigned int)
+ 0x00005e7c 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ 0x00005e7c Cyg_Interrupt::mask_interrupt(unsigned int)
.text._ZN13Cyg_Interrupt16unmask_interruptEj
- 0x00005d78 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
- 0x00005d78 Cyg_Interrupt::unmask_interrupt(unsigned int)
+ 0x00005eb4 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ 0x00005eb4 Cyg_Interrupt::unmask_interrupt(unsigned int)
.text._ZN13Cyg_Interrupt23call_pending_DSRs_innerEv
- 0x00005db0 0x88 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
- 0x00005db0 Cyg_Interrupt::call_pending_DSRs_inner()
+ 0x00005eec 0x88 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ 0x00005eec Cyg_Interrupt::call_pending_DSRs_inner()
.text.cyg_interrupt_call_pending_DSRs
- 0x00005e38 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
- 0x00005e38 cyg_interrupt_call_pending_DSRs
+ 0x00005f74 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ 0x00005f74 cyg_interrupt_call_pending_DSRs
.text.startup._GLOBAL__sub_I.12000__ZN13Cyg_Interrupt15disable_counterE
- 0x00005e40 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ 0x00005f7c 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
.text._ZN28Cyg_Scheduler_ImplementationC2Ev
- 0x00005e4c 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
- 0x00005e4c Cyg_Scheduler_Implementation::Cyg_Scheduler_Implementation()
- 0x00005e4c Cyg_Scheduler_Implementation::Cyg_Scheduler_Implementation()
+ 0x00005f88 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
+ 0x00005f88 Cyg_Scheduler_Implementation::Cyg_Scheduler_Implementation()
+ 0x00005f88 Cyg_Scheduler_Implementation::Cyg_Scheduler_Implementation()
.text._ZN28Cyg_Scheduler_Implementation8scheduleEv
- 0x00005e58 0x30 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
- 0x00005e58 Cyg_Scheduler_Implementation::schedule()
+ 0x00005f94 0x30 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
+ 0x00005f94 Cyg_Scheduler_Implementation::schedule()
.text._ZN28Cyg_Scheduler_Implementation10add_threadEP10Cyg_Thread
- 0x00005e88 0x8c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
- 0x00005e88 Cyg_Scheduler_Implementation::add_thread(Cyg_Thread*)
+ 0x00005fc4 0x8c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
+ 0x00005fc4 Cyg_Scheduler_Implementation::add_thread(Cyg_Thread*)
.text._ZN28Cyg_Scheduler_Implementation10rem_threadEP10Cyg_Thread
- 0x00005f14 0x68 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
- 0x00005f14 Cyg_Scheduler_Implementation::rem_thread(Cyg_Thread*)
+ 0x00006050 0x68 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
+ 0x00006050 Cyg_Scheduler_Implementation::rem_thread(Cyg_Thread*)
.text._ZN28Cyg_Scheduler_Implementation15set_idle_threadEP10Cyg_Threadj
- 0x00005f7c 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
- 0x00005f7c Cyg_Scheduler_Implementation::set_idle_thread(Cyg_Thread*, unsigned int)
+ 0x000060b8 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
+ 0x000060b8 Cyg_Scheduler_Implementation::set_idle_thread(Cyg_Thread*, unsigned int)
.text._ZN28Cyg_Scheduler_Implementation15register_threadEP10Cyg_Thread
- 0x00005f90 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
- 0x00005f90 Cyg_Scheduler_Implementation::register_thread(Cyg_Thread*)
+ 0x000060cc 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
+ 0x000060cc Cyg_Scheduler_Implementation::register_thread(Cyg_Thread*)
.text._ZN28Cyg_Scheduler_Implementation17deregister_threadEP10Cyg_Thread
- 0x00005fc8 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
- 0x00005fc8 Cyg_Scheduler_Implementation::deregister_thread(Cyg_Thread*)
+ 0x00006104 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
+ 0x00006104 Cyg_Scheduler_Implementation::deregister_thread(Cyg_Thread*)
.text._ZN28Cyg_Scheduler_Implementation6uniqueEi
- 0x00006000 0x30 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
- 0x00006000 Cyg_Scheduler_Implementation::unique(int)
+ 0x0000613c 0x30 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
+ 0x0000613c Cyg_Scheduler_Implementation::unique(int)
.text._ZN30Cyg_SchedThread_ImplementationC2Ej
- 0x00006030 0x24 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
- 0x00006030 Cyg_SchedThread_Implementation::Cyg_SchedThread_Implementation(unsigned int)
- 0x00006030 Cyg_SchedThread_Implementation::Cyg_SchedThread_Implementation(unsigned int)
+ 0x0000616c 0x24 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
+ 0x0000616c Cyg_SchedThread_Implementation::Cyg_SchedThread_Implementation(unsigned int)
+ 0x0000616c Cyg_SchedThread_Implementation::Cyg_SchedThread_Implementation(unsigned int)
.text._ZN30Cyg_ThreadQueue_ImplementationC2Ev
- 0x00006054 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
- 0x00006054 Cyg_ThreadQueue_Implementation::Cyg_ThreadQueue_Implementation()
- 0x00006054 Cyg_ThreadQueue_Implementation::Cyg_ThreadQueue_Implementation()
+ 0x00006190 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
+ 0x00006190 Cyg_ThreadQueue_Implementation::Cyg_ThreadQueue_Implementation()
+ 0x00006190 Cyg_ThreadQueue_Implementation::Cyg_ThreadQueue_Implementation()
.text._ZN30Cyg_ThreadQueue_Implementation7enqueueEP10Cyg_Thread
- 0x0000605c 0x10 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
- 0x0000605c Cyg_ThreadQueue_Implementation::enqueue(Cyg_Thread*)
+ 0x00006198 0x10 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
+ 0x00006198 Cyg_ThreadQueue_Implementation::enqueue(Cyg_Thread*)
.text._ZN30Cyg_ThreadQueue_Implementation7dequeueEv
- 0x0000606c 0x2c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
- 0x0000606c Cyg_ThreadQueue_Implementation::dequeue()
+ 0x000061a8 0x2c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
+ 0x000061a8 Cyg_ThreadQueue_Implementation::dequeue()
.text._ZN30Cyg_ThreadQueue_Implementation6removeEP10Cyg_Thread
- 0x00006098 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
- 0x00006098 Cyg_ThreadQueue_Implementation::remove(Cyg_Thread*)
+ 0x000061d4 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
+ 0x000061d4 Cyg_ThreadQueue_Implementation::remove(Cyg_Thread*)
.text._ZN13Cyg_Scheduler12unlock_innerEj
- 0x000060ac 0x324 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
- 0x000060ac Cyg_Scheduler::unlock_inner(unsigned int)
+ 0x000061e8 0x324 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
+ 0x000061e8 Cyg_Scheduler::unlock_inner(unsigned int)
.text._ZN13Cyg_Scheduler12thread_entryEP10Cyg_Thread
- 0x000063d0 0x60 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
- 0x000063d0 Cyg_Scheduler::thread_entry(Cyg_Thread*)
+ 0x0000650c 0x60 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
+ 0x0000650c Cyg_Scheduler::thread_entry(Cyg_Thread*)
.text._ZN13Cyg_Scheduler9start_cpuEv
- 0x00006430 0x58 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
- 0x00006430 Cyg_Scheduler::start_cpu()
+ 0x0000656c 0x58 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
+ 0x0000656c Cyg_Scheduler::start_cpu()
.text._ZN13Cyg_Scheduler5startEv
- 0x00006488 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
- 0x00006488 Cyg_Scheduler::start()
+ 0x000065c4 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
+ 0x000065c4 Cyg_Scheduler::start()
.text._ZN15Cyg_SchedThreadC2EP10Cyg_Threadj
- 0x00006490 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
- 0x00006490 Cyg_SchedThread::Cyg_SchedThread(Cyg_Thread*, unsigned int)
- 0x00006490 Cyg_SchedThread::Cyg_SchedThread(Cyg_Thread*, unsigned int)
+ 0x000065cc 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
+ 0x000065cc Cyg_SchedThread::Cyg_SchedThread(Cyg_Thread*, unsigned int)
+ 0x000065cc Cyg_SchedThread::Cyg_SchedThread(Cyg_Thread*, unsigned int)
.text.startup._GLOBAL__sub_I.11000_cyg_scheduler_sched_lock
- 0x000064a4 0x10 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
+ 0x000065e0 0x10 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
.text._ZN22Cyg_Counting_SemaphoreC2Ei
- 0x000064b4 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
- 0x000064b4 Cyg_Counting_Semaphore::Cyg_Counting_Semaphore(int)
- 0x000064b4 Cyg_Counting_Semaphore::Cyg_Counting_Semaphore(int)
+ 0x000065f0 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
+ 0x000065f0 Cyg_Counting_Semaphore::Cyg_Counting_Semaphore(int)
+ 0x000065f0 Cyg_Counting_Semaphore::Cyg_Counting_Semaphore(int)
.text._ZN22Cyg_Counting_Semaphore4postEv
- 0x000064c8 0x68 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
- 0x000064c8 Cyg_Counting_Semaphore::post()
+ 0x00006604 0x68 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
+ 0x00006604 Cyg_Counting_Semaphore::post()
.text._ZN9Cyg_MutexC2Ev
- 0x00006530 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
- 0x00006530 Cyg_Mutex::Cyg_Mutex()
- 0x00006530 Cyg_Mutex::Cyg_Mutex()
+ 0x0000666c 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
+ 0x0000666c Cyg_Mutex::Cyg_Mutex()
+ 0x0000666c Cyg_Mutex::Cyg_Mutex()
.text._ZNK9Cyg_Mutex10check_thisE21cyg_assert_class_zeal
- 0x00006544 0x40 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
- 0x00006544 Cyg_Mutex::check_this(cyg_assert_class_zeal) const
+ 0x00006680 0x40 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
+ 0x00006680 Cyg_Mutex::check_this(cyg_assert_class_zeal) const
.text._ZN9Cyg_Mutex4lockEv
- 0x00006584 0x16c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
- 0x00006584 Cyg_Mutex::lock()
+ 0x000066c0 0x16c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
+ 0x000066c0 Cyg_Mutex::lock()
.text._ZN9Cyg_Mutex6unlockEv
- 0x000066f0 0x118 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
- 0x000066f0 Cyg_Mutex::unlock()
- .text 0x00006808 0x52 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_context.o)
- 0x00006808 hal_thread_switch_context
- 0x0000682e hal_thread_load_context
- 0x0000684e hal_setjmp
- 0x00006854 hal_longjmp
- *fill* 0x0000685a 0x2
+ 0x0000682c 0x118 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
+ 0x0000682c Cyg_Mutex::unlock()
+ .text 0x00006944 0x52 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_context.o)
+ 0x00006944 hal_thread_switch_context
+ 0x0000696a hal_thread_load_context
+ 0x0000698a hal_setjmp
+ 0x00006990 hal_longjmp
+ *fill* 0x00006996 0x2
.text._ZN17Cyg_RealTimeClock3isrEjj
- 0x0000685c 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
- 0x0000685c Cyg_RealTimeClock::isr(unsigned int, unsigned int)
+ 0x00006998 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
+ 0x00006998 Cyg_RealTimeClock::isr(unsigned int, unsigned int)
.text._ZN11Cyg_Counter9add_alarmEP9Cyg_Alarm
- 0x00006868 0xc4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
- 0x00006868 Cyg_Counter::add_alarm(Cyg_Alarm*)
+ 0x000069a4 0xc4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
+ 0x000069a4 Cyg_Counter::add_alarm(Cyg_Alarm*)
.text._ZN11Cyg_Counter4tickEj
- 0x0000692c 0x140 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
- 0x0000692c Cyg_Counter::tick(unsigned int)
+ 0x00006a68 0x140 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
+ 0x00006a68 Cyg_Counter::tick(unsigned int)
.text._ZN17Cyg_RealTimeClock3dsrEjjj
- 0x00006a6c 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
- 0x00006a6c Cyg_RealTimeClock::dsr(unsigned int, unsigned int, unsigned int)
+ 0x00006ba8 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
+ 0x00006ba8 Cyg_RealTimeClock::dsr(unsigned int, unsigned int, unsigned int)
.text._ZN11Cyg_Counter9rem_alarmEP9Cyg_Alarm
- 0x00006a78 0x98 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
- 0x00006a78 Cyg_Counter::rem_alarm(Cyg_Alarm*)
+ 0x00006bb4 0x98 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
+ 0x00006bb4 Cyg_Counter::rem_alarm(Cyg_Alarm*)
.text._ZN9Cyg_AlarmC2EP11Cyg_CounterPFvPS_jEj
- 0x00006b10 0x1c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
- 0x00006b10 Cyg_Alarm::Cyg_Alarm(Cyg_Counter*, void (*)(Cyg_Alarm*, unsigned int), unsigned int)
- 0x00006b10 Cyg_Alarm::Cyg_Alarm(Cyg_Counter*, void (*)(Cyg_Alarm*, unsigned int), unsigned int)
+ 0x00006c4c 0x1c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
+ 0x00006c4c Cyg_Alarm::Cyg_Alarm(Cyg_Counter*, void (*)(Cyg_Alarm*, unsigned int), unsigned int)
+ 0x00006c4c Cyg_Alarm::Cyg_Alarm(Cyg_Counter*, void (*)(Cyg_Alarm*, unsigned int), unsigned int)
.text._ZN9Cyg_Alarm7disableEv
- 0x00006b2c 0x54 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
- 0x00006b2c Cyg_Alarm::disable()
+ 0x00006c68 0x54 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
+ 0x00006c68 Cyg_Alarm::disable()
.text._ZN17Cyg_RealTimeClockC2Ev
- 0x00006b80 0x70 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
- 0x00006b80 Cyg_RealTimeClock::Cyg_RealTimeClock()
- 0x00006b80 Cyg_RealTimeClock::Cyg_RealTimeClock()
+ 0x00006cbc 0x70 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
+ 0x00006cbc Cyg_RealTimeClock::Cyg_RealTimeClock()
+ 0x00006cbc Cyg_RealTimeClock::Cyg_RealTimeClock()
.text.startup._GLOBAL__sub_I.14000__ZN9Cyg_Clock15real_time_clockE
- 0x00006bf0 0x10 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
- .text 0x00006c00 0x9c /cygdrive/k/build/compiler/gcc_arm/arm-eabi/bin/../lib/gcc/arm-eabi/4.7.1/thumb/libgcc.a(_udivsi3.o)
- 0x00006c00 __udivsi3
- 0x00006c00 __aeabi_uidiv
- 0x00006c88 __aeabi_uidivmod
- .text 0x00006c9c 0x4 /cygdrive/k/build/compiler/gcc_arm/arm-eabi/bin/../lib/gcc/arm-eabi/4.7.1/thumb/libgcc.a(_dvmd_tls.o)
- 0x00006c9c __aeabi_ldiv0
- 0x00006c9c __aeabi_idiv0
- .text 0x00006ca0 0x44 /cygdrive/k/build/compiler/gcc_arm/arm-eabi/bin/../lib/gcc/arm-eabi/4.7.1/thumb/libgcc.a(_muldi3.o)
- 0x00006ca0 __aeabi_lmul
- 0x00006ca0 __muldi3
+ 0x00006d2c 0x10 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
+ .text 0x00006d3c 0x9c /cygdrive/k/build/compiler/gcc_arm/arm-eabi/bin/../lib/gcc/arm-eabi/4.7.1/thumb/libgcc.a(_udivsi3.o)
+ 0x00006d3c __udivsi3
+ 0x00006d3c __aeabi_uidiv
+ 0x00006dc4 __aeabi_uidivmod
+ .text 0x00006dd8 0x4 /cygdrive/k/build/compiler/gcc_arm/arm-eabi/bin/../lib/gcc/arm-eabi/4.7.1/thumb/libgcc.a(_dvmd_tls.o)
+ 0x00006dd8 __aeabi_ldiv0
+ 0x00006dd8 __aeabi_idiv0
+ .text 0x00006ddc 0x44 /cygdrive/k/build/compiler/gcc_arm/arm-eabi/bin/../lib/gcc/arm-eabi/4.7.1/thumb/libgcc.a(_muldi3.o)
+ 0x00006ddc __aeabi_lmul
+ 0x00006ddc __muldi3
*(.gnu.warning)
*(.gnu.linkonce.t.*)
*(.init)
@@ -2705,321 +2711,321 @@
.glue_7 0x00000000 0x0 linker stubs
*(.glue_7t)
.glue_7t 0x00000000 0x0 linker stubs
- 0x00006ce4 __CTOR_LIST__ = ABSOLUTE (.)
+ 0x00006e20 __CTOR_LIST__ = ABSOLUTE (.)
*(SORT(.ctors*))
- 0x00006ce4 __CTOR_END__ = ABSOLUTE (.)
- 0x00006ce4 __DTOR_LIST__ = ABSOLUTE (.)
+ 0x00006e20 __CTOR_END__ = ABSOLUTE (.)
+ 0x00006e20 __DTOR_LIST__ = ABSOLUTE (.)
*(SORT(.dtors*))
- 0x00006ce4 __DTOR_END__ = ABSOLUTE (.)
- 0x00006ce4 _etext = .
- 0x00006ce4 PROVIDE (__etext, .)
+ 0x00006e20 __DTOR_END__ = ABSOLUTE (.)
+ 0x00006e20 _etext = .
+ 0x00006e20 PROVIDE (__etext, .)
-.vfp11_veneer 0x00006ce4 0x0
+.vfp11_veneer 0x00006e20 0x0
.vfp11_veneer 0x00000000 0x0 linker stubs
-.v4_bx 0x00006ce4 0x0
+.v4_bx 0x00006e20 0x0
.v4_bx 0x00000000 0x0 linker stubs
-.iplt 0x00006ce4 0x0
+.iplt 0x00006e20 0x0
.iplt 0x00000000 0x0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/vectors.o
-.fini 0x00006ce8 0x0
- 0x00006ce8 . = .
+.fini 0x00006e20 0x0
+ 0x00006e20 . = .
*(.fini)
-.rodata 0x00006ce8 0xa5c
- 0x00006ce8 . = .
+.rodata 0x00006e20 0xa5c
+ 0x00006e20 . = .
*(.rodata*)
.rodata.gHal_DevRegisterTbl
- 0x00006ce8 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_init.o)
- .rodata.__FUNCTION__.5124
- 0x00006d10 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
+ 0x00006e20 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_init.o)
+ .rodata.__FUNCTION__.5185
+ 0x00006e48 0x1c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
.rodata.hwlock_regs
- 0x00006d20 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
- .rodata.__FUNCTION__.5153
- 0x00006d30 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
+ 0x00006e64 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
+ .rodata.__FUNCTION__.5136
+ 0x00006e74 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
.rodata.str1.4
- 0x00006d50 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
- .rodata.__FUNCTION__.5164
- 0x00006d8c 0x1c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
+ 0x00006e84 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
+ .rodata.__FUNCTION__.5174
+ 0x00006ec0 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
.rodata.__FUNCTION__.5196
- 0x00006da8 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x00006ee0 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
.rodata.__FUNCTION__.5220
- 0x00006dbc 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x00006ef4 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
.rodata.__FUNCTION__.5155
- 0x00006dd4 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x00006f0c 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
.rodata.str1.4
- 0x00006de8 0x35 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x00006f20 0x35 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
0x3c (size before relaxing)
- *fill* 0x00006e1d 0x3
+ *fill* 0x00006f55 0x3
.rodata.__FUNCTION__.5203
- 0x00006e20 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x00006f58 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
.rodata.__FUNCTION__.5172
- 0x00006e30 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x00006f68 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
.rodata.__FUNCTION__.5226
- 0x00006e44 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x00006f7c 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
.rodata.__FUNCTION__.5095
- 0x00006e5c 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ 0x00006f94 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
.rodata.str1.4
- 0x00006e70 0x33 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ 0x00006fa8 0x33 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
0x38 (size before relaxing)
- *fill* 0x00006ea3 0x1
- .rodata.__FUNCTION__.5167
- 0x00006ea4 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
- .rodata.__FUNCTION__.5142
- 0x00006ebc 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
- .rodata.__FUNCTION__.5129
- 0x00006ed0 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ *fill* 0x00006fdb 0x1
+ .rodata.__FUNCTION__.5134
+ 0x00006fdc 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ .rodata.__FUNCTION__.5172
+ 0x00006ff0 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ .rodata.__FUNCTION__.5147
+ 0x00007008 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ .rodata.__FUNCTION__.5179
+ 0x0000701c 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
.rodata.str1.4
- 0x00006ee4 0x33 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ 0x00007034 0x33 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
0x38 (size before relaxing)
- *fill* 0x00006f17 0x1
- .rodata.__FUNCTION__.5174
- 0x00006f18 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ *fill* 0x00007067 0x1
.rodata.__FUNCTION__.6260
- 0x00006f30 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x00007068 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
.rodata.str1.4
- 0x00006f44 0x5a K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x0000707c 0x5a K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
0x60 (size before relaxing)
- *fill* 0x00006f9e 0x2
+ *fill* 0x000070d6 0x2
.rodata.__FUNCTION__.6335
- 0x00006fa0 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
- .rodata 0x00006fb8 0x2c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
- .rodata.__FUNCTION__.5394
- 0x00006fe4 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
+ 0x000070d8 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ .rodata 0x000070f0 0x2c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
.rodata.str1.4
- 0x00006ff0 0x33 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
+ 0x0000711c 0x33 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
0x38 (size before relaxing)
- *fill* 0x00007023 0x1
- .rodata.__FUNCTION__.5385
- 0x00007024 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
- .rodata.__FUNCTION__.5338
- 0x00007030 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
- .rodata.__FUNCTION__.5351
- 0x00007048 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- .rodata.__FUNCTION__.5298
- 0x0000705c 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- .rodata.__FUNCTION__.5342
- 0x00007070 0x8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ *fill* 0x0000714f 0x1
+ .rodata.__FUNCTION__.5390
+ 0x00007150 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
+ .rodata.__FUNCTION__.5343
+ 0x0000715c 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
+ .rodata.__FUNCTION__.5399
+ 0x00007174 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
.rodata.__FUNCTION__.5355
- 0x00007078 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- .rodata.__FUNCTION__.5302
- 0x0000708c 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- .rodata.__FUNCTION__.5312
- 0x000070a0 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- .rodata.__FUNCTION__.5290
- 0x000070b0 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- .rodata.__FUNCTION__.5331
- 0x000070c4 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x00007180 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ .rodata.__FUNCTION__.5385
+ 0x00007190 0x8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ .rodata.__FUNCTION__.5408
+ 0x00007198 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ .rodata.__FUNCTION__.5345
+ 0x000071ac 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ .rodata.__FUNCTION__.5374
+ 0x000071c0 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ .rodata.__FUNCTION__.5328
+ 0x000071d0 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
.rodata.str1.4
- 0x000070d4 0x33 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x000071e4 0x33 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
0x38 (size before relaxing)
- *fill* 0x00007107 0x1
- .rodata.__FUNCTION__.5276
- 0x00007108 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- .rodata.__FUNCTION__.5285
- 0x00007118 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- .rodata.__FUNCTION__.5365
- 0x0000712c 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- .rodata.__FUNCTION__.5294
- 0x00007140 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- .rodata.__FUNCTION__.5188
- 0x00007150 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- .rodata.__FUNCTION__.5194
- 0x00007164 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- .rodata.__FUNCTION__.5200
- 0x00007178 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- .rodata.gClkOpsMatrixAxi
- 0x0000718c 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- 0x0000718c gClkOpsMatrixAxi
- .rodata.str1.4
- 0x0000719c 0x36 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- 0x3c (size before relaxing)
- *fill* 0x000071d2 0x2
- .rodata.gClkOpsSpecial0
- 0x000071d4 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- 0x000071d4 gClkOpsSpecial0
- .rodata.__FUNCTION__.5174
- 0x000071e4 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ *fill* 0x00007217 0x1
+ .rodata.__FUNCTION__.5319
+ 0x00007218 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ .rodata.__FUNCTION__.5333
+ 0x00007228 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ .rodata.__FUNCTION__.5394
+ 0x0000723c 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ .rodata.__FUNCTION__.5398
+ 0x00007250 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ .rodata.__FUNCTION__.5341
+ 0x00007264 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ .rodata.__FUNCTION__.5337
+ 0x00007278 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
.rodata.gCommonClkOps
- 0x000071f8 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- 0x000071f8 gCommonClkOps
- .rodata.pow_AxiClk_Change
- 0x00007208 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
- .rodata.__FUNCTION__.5696
- 0x00007228 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
+ 0x00007288 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ 0x00007288 gCommonClkOps
+ .rodata.__FUNCTION__.5193
+ 0x00007298 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ .rodata.gClkOpsMatrixAxi
+ 0x000072ac 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ 0x000072ac gClkOpsMatrixAxi
+ .rodata.__FUNCTION__.5205
+ 0x000072bc 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
.rodata.str1.4
- 0x00007238 0x37 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
+ 0x000072d0 0x36 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
0x3c (size before relaxing)
- *fill* 0x0000726f 0x1
+ *fill* 0x00007306 0x2
+ .rodata.__FUNCTION__.5199
+ 0x00007308 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ .rodata.gClkOpsSpecial0
+ 0x0000731c 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ 0x0000731c gClkOpsSpecial0
+ .rodata.__FUNCTION__.5179
+ 0x0000732c 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ .rodata.pow_AxiClk_Change
+ 0x00007340 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
+ .rodata.__FUNCTION__.5696
+ 0x00007360 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
+ .rodata.str1.4
+ 0x00007370 0x37 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
+ 0x3c (size before relaxing)
+ *fill* 0x000073a7 0x1
.rodata.s_pmicI2cDev0
- 0x00007270 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
+ 0x000073a8 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
.rodata.str1.4
- 0x00007284 0x33 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
+ 0x000073bc 0x33 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
0x34 (size before relaxing)
- *fill* 0x000072b7 0x1
+ *fill* 0x000073ef 0x1
.rodata.str1.4
- 0x000072b8 0x5d K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
+ 0x000073f0 0x5d K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
0x60 (size before relaxing)
- *fill* 0x00007315 0x3
+ *fill* 0x0000744d 0x3
.rodata.str1.4
- 0x00007318 0x66 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
+ 0x00007450 0x66 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
0x68 (size before relaxing)
- *fill* 0x0000737e 0x2
+ *fill* 0x000074b6 0x2
.rodata.str1.4
- 0x00007380 0x57 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
+ 0x000074b8 0x57 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
0x58 (size before relaxing)
- *fill* 0x000073d7 0x1
+ *fill* 0x0000750f 0x1
.rodata.str1.4
- 0x000073d8 0x9c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ 0x00007510 0x9c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
.rodata.str1.4
- 0x00007474 0xb4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ 0x000075ac 0xb4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
0xf8 (size before relaxing)
.rodata.str1.4
- 0x00007528 0x56 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ 0x00007660 0x56 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
0x9c (size before relaxing)
- *fill* 0x0000757e 0x2
+ *fill* 0x000076b6 0x2
.rodata.str1.4
- 0x00007580 0x59 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
+ 0x000076b8 0x59 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
0x5c (size before relaxing)
- *fill* 0x000075d9 0x3
+ *fill* 0x00007711 0x3
.rodata.str1.4
- 0x000075dc 0x58 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
+ 0x00007714 0x58 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
0xe4 (size before relaxing)
.rodata.str1.4
- 0x00007634 0x59 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
+ 0x0000776c 0x59 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
0xa0 (size before relaxing)
- *fill* 0x0000768d 0x3
+ *fill* 0x000077c5 0x3
.rodata.str1.4
- 0x00007690 0x57 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
+ 0x000077c8 0x57 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
0x9c (size before relaxing)
- *fill* 0x000076e7 0x1
+ *fill* 0x0000781f 0x1
.rodata.str1.4
- 0x000076e8 0x5c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
+ 0x00007820 0x5c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
0xa0 (size before relaxing)
*(.gnu.linkonce.r.*)
-.rodata1 0x00007748 0x0
- 0x00007748 . = .
+.rodata1 0x00007880 0x0
+ 0x00007880 . = .
*(.rodata1)
-.fixup 0x00007748 0x0
- 0x00007748 . = .
+.fixup 0x00007880 0x0
+ 0x00007880 . = .
*(.fixup)
.gcc_except_table
- 0x00007748 0x0
- 0x00007748 . = .
+ 0x00007880 0x0
+ 0x00007880 . = .
*(.gcc_except_table)
*(.gcc_except_table.*)
-.eh_frame 0x00007748 0x8
- 0x00007748 . = .
- 0x00007748 __EH_FRAME_BEGIN__ = .
+.eh_frame 0x00007880 0x8
+ 0x00007880 . = .
+ 0x00007880 __EH_FRAME_BEGIN__ = .
*(.eh_frame)
- 0x00007748 __FRAME_END__ = .
- 0x00007750 . = (. + 0x8)
- *fill* 0x00007748 0x8 00000000
+ 0x00007880 __FRAME_END__ = .
+ 0x00007888 . = (. + 0x8)
+ *fill* 0x00007880 0x8 00000000
-.got 0x00007750 0x0
- 0x00007750 . = .
+.got 0x00007888 0x0
+ 0x00007888 . = .
*(.got.plt)
*(.got)
- 0x00007750 _GOT1_START_ = ABSOLUTE (.)
+ 0x00007888 _GOT1_START_ = ABSOLUTE (.)
*(.got1)
- 0x00007750 _GOT1_END_ = ABSOLUTE (.)
- 0x00007750 _GOT2_START_ = ABSOLUTE (.)
+ 0x00007888 _GOT1_END_ = ABSOLUTE (.)
+ 0x00007888 _GOT2_START_ = ABSOLUTE (.)
*(.got2)
- 0x00007750 _GOT2_END_ = ABSOLUTE (.)
+ 0x00007888 _GOT2_END_ = ABSOLUTE (.)
-.data 0x00007750 0xc54
- 0x00007750 __ram_data_start = ABSOLUTE (.)
+.data 0x00007888 0xc54
+ 0x00007888 __ram_data_start = ABSOLUTE (.)
*(.data*)
.data.s_IcpRpmsgResource2M0
- 0x00007750 0xc0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x00007888 0xc0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
.data.s_IcpRpmsgResource
- 0x00007810 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
- 0x00007810 s_IcpRpmsgResource
+ 0x00007948 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x00007948 s_IcpRpmsgResource
.data.int_PCUTbl
- 0x00007814 0x54 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
- 0x00007814 int_PCUTbl
+ 0x0000794c 0x54 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ 0x0000794c int_PCUTbl
.data.gHalTimer_ptDev
- 0x00007868 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
+ 0x000079a0 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
.data.g_check_psmchannel_id
- 0x0000786c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
- 0x0000786c g_check_psmchannel_id
+ 0x000079a4 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ 0x000079a4 g_check_psmchannel_id
.data.s_dma0ChConfig
- 0x00007870 0x98 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ 0x000079a8 0x98 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
.data.gHalPow_ptDev
- 0x00007908 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
- 0x00007908 gHalPow_ptDev
+ 0x00007a40 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x00007a40 gHalPow_ptDev
.data.g_dcdc1pwrmode
- 0x0000790c 0x1 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
- *fill* 0x0000790d 0x3
+ 0x00007a44 0x1 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ *fill* 0x00007a45 0x3
.data.g_wdt_dev
- 0x00007910 0x34 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x00007a48 0x34 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
.data.gClkNumMax
- 0x00007944 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
- 0x00007944 gClkNumMax
+ 0x00007a7c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
+ 0x00007a7c gClkNumMax
.data.gClockInfoTable
- 0x00007948 0x8e8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
- 0x00007948 gClockInfoTable
+ 0x00007a80 0x8e8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
+ 0x00007a80 gClockInfoTable
.data.g_IntTable
- 0x00008230 0x144 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(int_cfg.o)
- 0x00008230 g_IntTable
+ 0x00008368 0x144 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(int_cfg.o)
+ 0x00008368 g_IntTable
.data.g_zTos_Dgb_Level
- 0x00008374 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
- 0x00008374 g_zTos_Dgb_Level
+ 0x000084ac 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
+ 0x000084ac g_zTos_Dgb_Level
.data.etext_addr
- 0x00008378 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
- 0x00008378 etext_addr
+ 0x000084b0 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
+ 0x000084b0 etext_addr
.data.stext_addr
- 0x0000837c 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
- 0x0000837c stext_addr
+ 0x000084b4 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
+ 0x000084b4 stext_addr
.data._ZL14next_unique_id
- 0x00008380 0x2 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
- *fill* 0x00008382 0x2
+ 0x000084b8 0x2 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ *fill* 0x000084ba 0x2
.data.cyg_scheduler_sched_lock
- 0x00008384 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
- 0x00008384 cyg_scheduler_sched_lock
+ 0x000084bc 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
+ 0x000084bc cyg_scheduler_sched_lock
.data.rtc_resolution
- 0x00008388 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
- 0x00008388 rtc_resolution
+ 0x000084c0 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
+ 0x000084c0 rtc_resolution
*(.data1)
*(.gnu.linkonce.d.*)
- 0x00008390 . = ALIGN (0x4)
+ 0x000084c8 . = ALIGN (0x4)
*(SORT(.ecos.table.*))
- 0x00008390 . = ALIGN (0x4)
- 0x00008390 __init_array_start__ = ABSOLUTE (.)
+ 0x000084c8 . = ALIGN (0x4)
+ 0x000084c8 __init_array_start__ = ABSOLUTE (.)
*(SORT(.init_array.*))
.init_array.11000
- 0x00008390 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
+ 0x000084c8 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
.init_array.12000
- 0x00008394 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ 0x000084cc 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
.init_array.14000
- 0x00008398 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
+ 0x000084d0 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
.init_array.15000
- 0x0000839c 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ 0x000084d4 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
*(SORT(.init_array))
- .init_array 0x000083a0 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
- 0x000083a4 __init_array_end__ = ABSOLUTE (.)
+ .init_array 0x000084d8 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ 0x000084dc __init_array_end__ = ABSOLUTE (.)
*(.dynamic)
*(.sdata*)
*(.gnu.linkonce.s.*)
- 0x000083a4 . = ALIGN (0x4)
+ 0x000084dc . = ALIGN (0x4)
*(.2ram.*)
- 0x00007750 __rom_data_start = LOADADDR (.data)
- 0x000083a4 __ram_data_end = .
- 0x000083a4 PROVIDE (__ram_data_end, .)
- 0x000083a4 _edata = .
- 0x000083a4 PROVIDE (edata, .)
- 0x000083a4 PROVIDE (__rom_data_end, (LOADADDR (.data) + SIZEOF (.data)))
+ 0x00007888 __rom_data_start = LOADADDR (.data)
+ 0x000084dc __ram_data_end = .
+ 0x000084dc PROVIDE (__ram_data_end, .)
+ 0x000084dc _edata = .
+ 0x000084dc PROVIDE (edata, .)
+ 0x000084dc PROVIDE (__rom_data_end, (LOADADDR (.data) + SIZEOF (.data)))
-.igot.plt 0x000083a4 0x0
+.igot.plt 0x000084dc 0x0
.igot.plt 0x00000000 0x0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/vectors.o
-.bss 0x000083a8 0x27b4
- 0x000083a8 __bss_start = ABSOLUTE (.)
+.bss 0x000084e0 0x27b4
+ 0x000084e0 __bss_start = ABSOLUTE (.)
*(.scommon)
*(.dynsbss)
*(.sbss*)
@@ -3027,227 +3033,227 @@
*(.dynbss)
*(.bss*)
.bss.softlock_desc
- 0x000083a8 0x80 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
+ 0x000084e0 0x80 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
.bss.s_hwSpinlockMsr
- 0x00008428 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
+ 0x00008560 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
.bss.dwSendPos
- 0x0000842c 0x78 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x00008564 0x78 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
.bss.rpmsg_cache_buffer
- 0x000084a4 0x200 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
- .bss.IcpSem 0x000086a4 0xf0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
- 0x000086a4 IcpSem
+ 0x000085dc 0x200 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ .bss.IcpSem 0x000087dc 0xf0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x000087dc IcpSem
.bss.s_RpMsgCallbackList
- 0x00008794 0x78 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
- 0x00008794 s_RpMsgCallbackList
+ 0x000088cc 0x78 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x000088cc s_RpMsgCallbackList
.bss.RpMsg_ChMutex
- 0x0000880c 0x24 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
- 0x0000880c RpMsg_ChMutex
- .bss.g_IntDev 0x00008830 0x108 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
- 0x00008830 g_IntDev
+ 0x00008944 0x24 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ 0x00008944 RpMsg_ChMutex
+ .bss.g_IntDev 0x00008968 0x108 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ 0x00008968 g_IntDev
.bss.interrupt
- 0x00008938 0x280 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ 0x00008a70 0x280 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
.bss.m0_intmask_save
- 0x00008bb8 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ 0x00008cf0 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
.bss.gHalTimerDev
- 0x00008bbc 0x6c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
+ 0x00008cf4 0x6c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
.bss.g_save_restore_flow
- 0x00008c28 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
- 0x00008c28 g_save_restore_flow
- .bss.gDmaDev 0x00008c2c 0x64 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
- 0x00008c2c gDmaDev
+ 0x00008d60 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ 0x00008d60 g_save_restore_flow
+ .bss.gDmaDev 0x00008d64 0x64 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ 0x00008d64 gDmaDev
.bss.g_PsmIdleThreadStack
- 0x00008c90 0x800 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x00008dc8 0x800 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
.bss.g_ChipSleepTime
- 0x00009490 0x8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x000095c8 0x8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
.bss.g_ChipSleepMode
- 0x00009498 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x000095d0 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
.bss.g_M0SleepFlag
- 0x0000949c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x000095d4 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
.bss.g_DdrSaveRestoreIram0
- 0x000094a0 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
- 0x000094a0 g_DdrSaveRestoreIram0
+ 0x000095d8 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x000095d8 g_DdrSaveRestoreIram0
.bss.g_ChipstandbyCnt
- 0x000094a4 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
- 0x000094a4 g_ChipstandbyCnt
+ 0x000095dc 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x000095dc g_ChipstandbyCnt
.bss.g_FlashMode
- 0x000094a8 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
- 0x000094a8 g_FlashMode
- *fill* 0x000094ac 0x4
+ 0x000095e0 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x000095e0 g_FlashMode
+ *fill* 0x000095e4 0x4
.bss.g_PsmIdleThread
- 0x000094b0 0x68 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x000095e8 0x68 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
.bss.g_PdcoreEn
- 0x00009518 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
- 0x00009518 g_PdcoreEn
+ 0x00009650 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x00009650 g_PdcoreEn
.bss.g_Iram0BaseAddr
- 0x0000951c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
- 0x0000951c g_Iram0BaseAddr
+ 0x00009654 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x00009654 g_Iram0BaseAddr
.bss.gHalPowDev
- 0x00009520 0x1c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x00009658 0x1c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
.bss.g_ChipsleepCnt
- 0x0000953c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
- 0x0000953c g_ChipsleepCnt
+ 0x00009674 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x00009674 g_ChipsleepCnt
.bss.g_PsmIdleThreadHandle
- 0x00009540 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ 0x00009678 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
.bss.ddrRegInRam
- 0x00009544 0xdc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
+ 0x0000967c 0xdc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
.bss.g_DdrSize
- 0x00009620 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
+ 0x00009758 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
.bss.g_DdrAutoDis
- 0x00009624 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
- 0x00009624 g_DdrAutoDis
+ 0x0000975c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
+ 0x0000975c g_DdrAutoDis
.bss.g_PdddrSdDis
- 0x00009628 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
- 0x00009628 g_PdddrSdDis
+ 0x00009760 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
+ 0x00009760 g_PdddrSdDis
.bss.g_26mClkOffDis
- 0x0000962c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
- 0x0000962c g_26mClkOffDis
+ 0x00009764 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
+ 0x00009764 g_26mClkOffDis
.bss.lspCrmRegInRam
- 0x00009630 0x64 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x00009768 0x64 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
.bss.g_Clken_Pdcore
- 0x00009694 0x54 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x000097cc 0x54 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
.bss.stdCrmRegInRam
- 0x000096e8 0x108 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x00009820 0x108 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
.bss.pinMuxRegInRam
- 0x000097f0 0x38 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x00009928 0x38 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
.bss.sdRegInRam
- 0x00009828 0x64 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x00009960 0x64 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
.bss.timerRegInRam
- 0x0000988c 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x000099c4 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
.bss.spifcRegInRam
- 0x000098c8 0x24 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x00009a00 0x24 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
.bss.wdtRegInRam
- 0x000098ec 0x38 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x00009a24 0x38 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
.bss.icpRegInRam
- 0x00009924 0xa0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x00009a5c 0xa0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
.bss.i2CRegInRam
- 0x000099c4 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x00009afc 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
.bss.uartRegInRam
- 0x000099ec 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x00009b24 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
.bss.spiRegInRam
- 0x00009a28 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x00009b60 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
.bss.nandRegInRam
- 0x00009a50 0x68 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x00009b88 0x68 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
.bss.vouRegInRam
- 0x00009ab8 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ 0x00009bf0 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
.bss.dmaRegInRam
- 0x00009ac8 0x2f8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
- .bss.s_i2cBus 0x00009dc0 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
- .bss.s_mutex_tmp.5386
- 0x00009de0 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
- .bss.s_pmutex_tmp.5387
- 0x00009dec 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
- .bss.s_pmutex_tmp.5396
- 0x00009df0 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
- .bss.s_mutex_tmp.5395
- 0x00009df4 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
- .bss.g_flag1 0x00009e00 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- 0x00009e00 g_flag1
- .bss.g_flag2 0x00009e10 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- 0x00009e10 g_flag2
- .bss.g_flag0 0x00009e14 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- 0x00009e14 g_flag0
+ 0x00009c00 0x2f8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ .bss.s_i2cBus 0x00009ef8 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
+ .bss.s_mutex_tmp.5391
+ 0x00009f18 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
+ .bss.s_pmutex_tmp.5392
+ 0x00009f24 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
+ .bss.s_mutex_tmp.5400
+ 0x00009f28 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
+ .bss.s_pmutex_tmp.5401
+ 0x00009f34 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
+ .bss.g_flag0 0x00009f38 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x00009f38 g_flag0
+ .bss.g_flag2 0x00009f3c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x00009f3c g_flag2
+ .bss.g_flag1 0x00009f40 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x00009f40 g_flag1
.bss.global_wdt_count
- 0x00009e18 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- 0x00009e18 global_wdt_count
+ 0x00009f50 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ 0x00009f50 global_wdt_count
.bss.g_apVolExp
- 0x00009e1c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
- 0x00009e1c g_apVolExp
+ 0x00009f54 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
+ 0x00009f54 g_apVolExp
.bss.g_psVolExp
- 0x00009e20 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
- 0x00009e20 g_psVolExp
+ 0x00009f58 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
+ 0x00009f58 g_psVolExp
.bss.g_phyVolExp
- 0x00009e24 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
- 0x00009e24 g_phyVolExp
+ 0x00009f5c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
+ 0x00009f5c g_phyVolExp
.bss.g_apAxiExp
- 0x00009e28 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
- 0x00009e28 g_apAxiExp
+ 0x00009f60 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
+ 0x00009f60 g_apAxiExp
.bss.g_psAxiExp
- 0x00009e2c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
- 0x00009e2c g_psAxiExp
+ 0x00009f64 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
+ 0x00009f64 g_psAxiExp
.bss.g_phyAxiExp
- 0x00009e30 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
- 0x00009e30 g_phyAxiExp
+ 0x00009f68 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
+ 0x00009f68 g_phyAxiExp
.bss.g_zDrvAssertInfo
- 0x00009e34 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
+ 0x00009f6c 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
.bss.tos_except
- 0x00009e48 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
+ 0x00009f80 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
.bss.s_zLogCtrl_InitFlag
- 0x00009e60 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
+ 0x00009f98 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
.bss.ramdump_ret
- 0x00009e64 0x8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
+ 0x00009f9c 0x8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
.bss.ramdump_init_flag
- 0x00009e6c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
+ 0x00009fa4 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
.bss.ramdump_count
- 0x00009e70 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
+ 0x00009fa8 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
.bss.tos_isr_level
- 0x00009e74 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
- 0x00009e74 tos_isr_level
- .bss._period 0x00009e78 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
+ 0x00009fac 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
+ 0x00009fac tos_isr_level
+ .bss._period 0x00009fb0 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
.bss._ZL30cyg_kapi_check_structure_sizes
- 0x00009e7c 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ 0x00009fb4 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
.bss._ZL17idle_thread_stack
- 0x00009e80 0x800 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ 0x00009fb8 0x800 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
.bss.idle_thread
- 0x0000a680 0x68 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
- 0x0000a680 idle_thread
+ 0x0000a7b8 0x68 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ 0x0000a7b8 idle_thread
.bss._ZN10Cyg_Thread11thread_listE
- 0x0000a6e8 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
- 0x0000a6e8 Cyg_Thread::thread_list
+ 0x0000a820 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ 0x0000a820 Cyg_Thread::thread_list
.bss.idle_thread_loops
- 0x0000a6ec 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
- 0x0000a6ec idle_thread_loops
+ 0x0000a824 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ 0x0000a824 idle_thread_loops
.bss._ZN13Cyg_Interrupt9dsr_tableE
- 0x0000a6f0 0x200 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
- 0x0000a6f0 Cyg_Interrupt::dsr_table
+ 0x0000a828 0x200 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ 0x0000a828 Cyg_Interrupt::dsr_table
.bss._ZN13Cyg_Interrupt26interrupt_disable_spinlockE
- 0x0000a8f0 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
- 0x0000a8f0 Cyg_Interrupt::interrupt_disable_spinlock
+ 0x0000aa28 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ 0x0000aa28 Cyg_Interrupt::interrupt_disable_spinlock
.bss._ZN13Cyg_Interrupt14dsr_table_tailE
- 0x0000a8f4 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
- 0x0000a8f4 Cyg_Interrupt::dsr_table_tail
+ 0x0000aa2c 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ 0x0000aa2c Cyg_Interrupt::dsr_table_tail
.bss._ZN13Cyg_Interrupt14dsr_table_headE
- 0x0000a8f8 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
- 0x0000a8f8 Cyg_Interrupt::dsr_table_head
+ 0x0000aa30 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ 0x0000aa30 Cyg_Interrupt::dsr_table_head
.bss._ZN18Cyg_Scheduler_Base15need_rescheduleE
- 0x0000a8fc 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
- 0x0000a8fc Cyg_Scheduler_Base::need_reschedule
+ 0x0000aa34 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
+ 0x0000aa34 Cyg_Scheduler_Base::need_reschedule
.bss._ZN13Cyg_Scheduler9schedulerE
- 0x0000a900 0x84 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
- 0x0000a900 Cyg_Scheduler::scheduler
+ 0x0000aa38 0x84 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
+ 0x0000aa38 Cyg_Scheduler::scheduler
.bss._ZN18Cyg_Scheduler_Base15thread_switchesE
- 0x0000a984 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
- 0x0000a984 Cyg_Scheduler_Base::thread_switches
+ 0x0000aabc 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
+ 0x0000aabc Cyg_Scheduler_Base::thread_switches
.bss._ZN18Cyg_Scheduler_Base14current_threadE
- 0x0000a988 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
- 0x0000a988 Cyg_Scheduler_Base::current_thread
+ 0x0000aac0 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
+ 0x0000aac0 Cyg_Scheduler_Base::current_thread
.bss._ZN9Cyg_Clock15real_time_clockE
- 0x0000a98c 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
- 0x0000a98c Cyg_Clock::real_time_clock
+ 0x0000aac4 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
+ 0x0000aac4 Cyg_Clock::real_time_clock
.bss._ZN17Cyg_RealTimeClock3rtcE
- 0x0000a990 0x30 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
- 0x0000a990 Cyg_RealTimeClock::rtc
+ 0x0000aac8 0x30 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
+ 0x0000aac8 Cyg_RealTimeClock::rtc
*(.gnu.linkonce.b.*)
*(COMMON)
- COMMON 0x0000a9c0 0x198 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
- 0x0000a9c0 hal_interrupt_handlers
- 0x0000aa48 hal_interrupt_data
- 0x0000aad0 hal_interrupt_objects
- COMMON 0x0000ab58 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
- 0x0000ab58 hal_cortexm_systick_clock
- 0x0000ab5c __bss_end = ABSOLUTE (.)
+ COMMON 0x0000aaf8 0x198 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
+ 0x0000aaf8 hal_interrupt_handlers
+ 0x0000ab80 hal_interrupt_data
+ 0x0000ac08 hal_interrupt_objects
+ COMMON 0x0000ac90 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
+ 0x0000ac90 hal_cortexm_systick_clock
+ 0x0000ac94 __bss_end = ABSOLUTE (.)
-.sram 0x0000ab60 0x0
- 0x0000ab60 __sram_data_start = ABSOLUTE (.)
+.sram 0x0000ac98 0x0
+ 0x0000ac98 __sram_data_start = ABSOLUTE (.)
*(.sram*)
- 0x0000ab60 . = ALIGN (0x4)
- 0x0000ab60 __srom_data_start = LOADADDR (.sram)
- 0x0000ab60 __sram_data_end = .
- 0x0000ab60 PROVIDE (__sram_data_end, .)
- 0x0000ab60 PROVIDE (__srom_data_end, (LOADADDR (.sram) + SIZEOF (.sram)))
- 0x0000ab60 __heap1 = ALIGN (0x8)
- 0x0000ab60 . = ALIGN (0x4)
- 0x0000ab60 _end = .
- 0x0000ab60 PROVIDE (end, .)
+ 0x0000ac98 . = ALIGN (0x4)
+ 0x0000ac98 __srom_data_start = LOADADDR (.sram)
+ 0x0000ac98 __sram_data_end = .
+ 0x0000ac98 PROVIDE (__sram_data_end, .)
+ 0x0000ac98 PROVIDE (__srom_data_end, (LOADADDR (.sram) + SIZEOF (.sram)))
+ 0x0000ac98 __heap1 = ALIGN (0x8)
+ 0x0000ac98 . = ALIGN (0x4)
+ 0x0000ac98 _end = .
+ 0x0000ac98 PROVIDE (end, .)
OUTPUT(K:/rpm/project/zx297520v3/bin/tos/modem_7520v3/evb_cpurpm.elf elf32-littlearm)
.ARM.attributes
@@ -3392,47 +3398,47 @@
.comment 0x00000000 0x18 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
.comment 0x00000000 0x18 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
-.debug_ranges 0x00000000 0x4210
+.debug_ranges 0x00000000 0x4280
.debug_ranges 0x00000000 0x10 K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/SysEntry.o
.debug_ranges 0x00000010 0x18 K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/appstart.o
.debug_ranges 0x00000028 0x80 K:/rpm/project/zx297520v3/obj/tos/all/debug/os/tos/tos_irq.o
.debug_ranges 0x000000a8 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_init.o)
- .debug_ranges 0x000000b8 0xb8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
- .debug_ranges 0x00000170 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
- .debug_ranges 0x00000188 0x1d0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
- .debug_ranges 0x00000358 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
- .debug_ranges 0x00000368 0x108 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
- .debug_ranges 0x00000470 0x68 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
- .debug_ranges 0x000004d8 0xb8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
- .debug_ranges 0x00000590 0x138 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
- .debug_ranges 0x000006c8 0x170 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
- .debug_ranges 0x00000838 0x30 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
- .debug_ranges 0x00000868 0xf8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
- .debug_ranges 0x00000960 0x290 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
- .debug_ranges 0x00000bf0 0x98 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
- .debug_ranges 0x00000c88 0x88 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
- .debug_ranges 0x00000d10 0xc8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
- .debug_ranges 0x00000dd8 0x98 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
- .debug_ranges 0x00000e70 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
- .debug_ranges 0x00000ec0 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
- .debug_ranges 0x00000ed8 0x30 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
- .debug_ranges 0x00000f08 0xa8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
- .debug_ranges 0x00000fb0 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
- .debug_ranges 0x00000fc8 0x1a8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
- .debug_ranges 0x00001170 0xd8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
- .debug_ranges 0x00001248 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
- .debug_ranges 0x00001280 0x18 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
- .debug_ranges 0x00001298 0x20 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
- .debug_ranges 0x000012b8 0x10 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
- .debug_ranges 0x000012c8 0x28 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
- .debug_ranges 0x000012f0 0xd78 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
- .debug_ranges 0x00002068 0xae0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
- .debug_ranges 0x00002b48 0x298 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
- .debug_ranges 0x00002de0 0x108 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
- .debug_ranges 0x00002ee8 0x2f0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
- .debug_ranges 0x000031d8 0x320 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
- .debug_ranges 0x000034f8 0x7b0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
- .debug_ranges 0x00003ca8 0x568 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
+ .debug_ranges 0x000000b8 0x120 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
+ .debug_ranges 0x000001d8 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
+ .debug_ranges 0x000001f0 0x1d0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
+ .debug_ranges 0x000003c0 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
+ .debug_ranges 0x000003d8 0x108 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
+ .debug_ranges 0x000004e0 0x68 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
+ .debug_ranges 0x00000548 0xb8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
+ .debug_ranges 0x00000600 0x138 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
+ .debug_ranges 0x00000738 0x170 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
+ .debug_ranges 0x000008a8 0x30 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
+ .debug_ranges 0x000008d8 0xf8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
+ .debug_ranges 0x000009d0 0x290 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
+ .debug_ranges 0x00000c60 0x98 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
+ .debug_ranges 0x00000cf8 0x88 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
+ .debug_ranges 0x00000d80 0xc8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
+ .debug_ranges 0x00000e48 0x98 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
+ .debug_ranges 0x00000ee0 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
+ .debug_ranges 0x00000f30 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
+ .debug_ranges 0x00000f48 0x30 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
+ .debug_ranges 0x00000f78 0xa8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
+ .debug_ranges 0x00001020 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
+ .debug_ranges 0x00001038 0x1a8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
+ .debug_ranges 0x000011e0 0xd8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
+ .debug_ranges 0x000012b8 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
+ .debug_ranges 0x000012f0 0x18 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
+ .debug_ranges 0x00001308 0x20 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
+ .debug_ranges 0x00001328 0x10 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
+ .debug_ranges 0x00001338 0x28 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
+ .debug_ranges 0x00001360 0xd78 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
+ .debug_ranges 0x000020d8 0xae0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
+ .debug_ranges 0x00002bb8 0x298 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
+ .debug_ranges 0x00002e50 0x108 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
+ .debug_ranges 0x00002f58 0x2f0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
+ .debug_ranges 0x00003248 0x320 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
+ .debug_ranges 0x00003568 0x7b0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
+ .debug_ranges 0x00003d18 0x568 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
link component sizes
@@ -3444,10 +3450,10 @@
0 0 0 K:/rpm/project/zx297520v3/obj/tos/all/debug/os/tos/tos_pool.o
48 0 0 K:/rpm/project/zx297520v3/obj/tos/all/debug/os/tos/tos_irq.o
72 0 0 hal_init.o
- 780 0 132 hal_spinlock.o
+ 956 0 132 hal_spinlock.o
12 0 0 hal_sys.o
1953 196 1028 icp_rpMsg.o
- 76 0 0 hal_gpio.o
+ 188 0 0 hal_gpio.o
1011 84 908 hal_int.o
152 4 108 hal_timer.o
1231 156 104 hal_dma.o
@@ -3456,7 +3462,7 @@
392 0 12 hal_pow_debug.o
4484 0 1936 hal_pd_context.o
823 0 64 hal_i2c.o
- 1967 52 28 hal_wdt.o
+ 1995 52 28 hal_wdt.o
1362 0 0 hal_sysclk.o
0 2284 0 hal_clkinfo.o
0 324 0 int_cfg.o
@@ -3499,7 +3505,7 @@
0 0 0 _clzsi2.o
---------------------------------------------------------
- 20224 3105 6792 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a
+ 20540 3105 6792 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a
104 0 0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a
64 0 20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a
0 0 0 K:/rpm/project/zx297520v3/lib/tos/all/debug/appstart/appstart.a
@@ -3509,6 +3515,6 @@
228 0 0 /cygdrive/k/build/compiler/gcc_arm/arm-eabi/bin/../lib/gcc/arm-eabi/4.7.1/thumb/libgcc.a
===============================================================
-Total text size : 30032
+Total text size : 30348
Total data size : 3156
Total bss size : 10172
diff --git a/Uboot/tools/SignTool/SignImage b/Uboot/tools/SignTool/SignImage
index 552a4de..0b03078 100755
--- a/Uboot/tools/SignTool/SignImage
+++ b/Uboot/tools/SignTool/SignImage
Binary files differ
diff --git a/Uboot/tools/SignTool/SignImage.exe b/Uboot/tools/SignTool/SignImage.exe
index 6905638..7a58d11 100755
--- a/Uboot/tools/SignTool/SignImage.exe
+++ b/Uboot/tools/SignTool/SignImage.exe
Binary files differ
diff --git a/Uboot/tools/SignTool/private.k b/Uboot/tools/SignTool/private.k
new file mode 100755
index 0000000..9b72371
--- /dev/null
+++ b/Uboot/tools/SignTool/private.k
Binary files differ