blob: 601962c2f56d0589e205acfd82b0b2c173e472f8 [file] [log] [blame]
l.yangd8a9a302024-10-11 15:20:32 +08001From c3c1e4d65703a16df8d78c4137a5ccb4bcbaf1ce Mon Sep 17 00:00:00 2001
2From: l.yang <l.yang@mobiletek.cn>
3Date: Thu, 10 Oct 2024 15:12:55 +0800
4Subject: [PATCH] [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
5
6Only Configure: No
7Affected branch: master
8Affected module: unknow
9Is it affected on both ZXIC and MTK: only ZXIC
10Self-test: Yes
11Doc Update: No
12
13Change-Id: I0d82c355a0fe633dc3ce2770f3091d496abfa89b
14---
15
16diff --git a/Uboot/boot/common/src/loader/lib/board.c b/Uboot/boot/common/src/loader/lib/board.c
17index b72ce93..3ddc41f 100755
18--- a/Uboot/boot/common/src/loader/lib/board.c
19+++ b/Uboot/boot/common/src/loader/lib/board.c
20@@ -146,6 +146,7 @@
21 int32_t add;
22 uint32_t amt_value = 0;
23 int32_t err_flag = 0;
24+ int32_t switch_flag = 0;
25 T_BOOT_TARGET bootTarget;
26 T_FLAGS flagsData;
27 T_FLAGS_INFO *fotaFlag;
28@@ -267,44 +268,127 @@
29 if (fotaFlag->boot_fota_flag.system.status == DUALSYSTEM_STATUS_UNBOOTABLE)
30 {
31 printf("dual_system status is unbootable!");
32- goto error;
33+ //goto error;
34+ if(fotaFlag->boot_fota_flag.system2.status == DUALSYSTEM_STATUS_UNBOOTABLE)
35+ {
36+ printf("system status is both unbootable,restart system1!");
37+ err_flag = 1;
38+ /*ĬÈÏflags·ÖÇøÊý¾Ý*/
39+ flagsData.magic_start = FLAGS_MAGIC;
40+ flagsData.boot_fota_flag.boot_to = DUAL_SYSTEM;
41+ flagsData.boot_fota_flag.fota_status = 1;
42+ flagsData.boot_fota_flag.system.status = DUALSYSTEM_STATUS_BOOTABLE;
43+ flagsData.boot_fota_flag.system2.status = DUALSYSTEM_STATUS_BOOTABLE;
44+ flagsData.magic_end = FLAGS_MAGIC;
45+ fotaFlag = &flagsData;
46+ }
47+ else
48+ {
49+ writel(DUALSYSTEM_STATUS_UNBOOTABLE, BOOT_FLAG_ADDR);
50+ printf("restart system2!");
51+ switch_flag = 1;
52+ }
53+
54 }
55- ret = read_uboot_image((uint8_t *)UBOOT_IMAGE, &uboot_entry_point);
56- if( ret != 0)
57- {
58- printf("read uboot1 image error, goto uboot2!");
59- writel(DUALSYSTEM_STATUS_UNBOOTABLE, BOOT_FLAG_ADDR);
60- ret = read_uboot_image((uint8_t *)UBOOT2_IMAGE, &uboot_entry_point);
61+
62+ if(1 == switch_flag)
63+ {
64+ ret = read_uboot_image((uint8_t *)UBOOT2_IMAGE, &uboot_entry_point);
65 if( ret != 0)
66 {
67- printf("read uboot2 iamge error!");
68- goto error;
69+ printf("read uboot2 image error, goto uboot!");
70+ writel(DUALSYSTEM_STATUS_UNBOOTABLE, BOOT_FLAG_ADDR);
71+ ret = read_uboot_image((uint8_t *)UBOOT_IMAGE, &uboot_entry_point);
72+ if( ret != 0)
73+ {
74+ printf("read uboot image error!");
75+ goto error;
76+ }
77 }
78+ else
79+ printf("goto uboot2!");
80 }
81- else
82- printf("goto uboot!");
83+ else
84+ {
85+ ret = read_uboot_image((uint8_t *)UBOOT_IMAGE, &uboot_entry_point);
86+ if( ret != 0)
87+ {
88+ printf("read uboot1 image error, goto uboot2!");
89+ writel(DUALSYSTEM_STATUS_UNBOOTABLE, BOOT_FLAG_ADDR);
90+ ret = read_uboot_image((uint8_t *)UBOOT2_IMAGE, &uboot_entry_point);
91+ if( ret != 0)
92+ {
93+ printf("read uboot2 image error!");
94+ goto error;
95+ }
96+ }
97+ else
98+ printf("goto uboot!");
99+ }
100+
101 }
102 else if(bootTarget == DUAL_SYSTEM2)
103 {
104 if (fotaFlag->boot_fota_flag.system2.status == DUALSYSTEM_STATUS_UNBOOTABLE)
105 {
106 printf("dual_system2 status is unbootable!");
107- goto error;
108- }
109- ret = read_uboot_image((uint8_t *)UBOOT2_IMAGE, &uboot_entry_point);
110- if( ret != 0)
111- {
112- printf("read uboot2 iamge error, goto uboot!");
113- writel(DUALSYSTEM_STATUS_UNBOOTABLE, BOOT_FLAG_ADDR);
114- ret = read_uboot_image((uint8_t *)UBOOT_IMAGE, &uboot_entry_point);
115- if( ret != 0)
116- {
117- printf("read uboot iamge error!");
118- goto error;
119+ //goto error;
120+ if(fotaFlag->boot_fota_flag.system.status == DUALSYSTEM_STATUS_UNBOOTABLE)
121+ {
122+ printf("system status is both unbootable,restart system2!");
123+ err_flag = 1;
124+ /*ĬÈÏflags·ÖÇøÊý¾Ý*/
125+ flagsData.magic_start = FLAGS_MAGIC;
126+ flagsData.boot_fota_flag.boot_to = DUAL_SYSTEM2;
127+ flagsData.boot_fota_flag.fota_status = 1;
128+ flagsData.boot_fota_flag.system.status = DUALSYSTEM_STATUS_BOOTABLE;
129+ flagsData.boot_fota_flag.system2.status = DUALSYSTEM_STATUS_BOOTABLE;
130+ flagsData.magic_end = FLAGS_MAGIC;
131+ fotaFlag = &flagsData;
132+ }
133+ else
134+ {
135+ writel(DUALSYSTEM_STATUS_UNBOOTABLE, BOOT_FLAG_ADDR);
136+ printf("restart system1!");
137+ switch_flag = 1;
138 }
139 }
140+
141+ if(1 == switch_flag)
142+ {
143+ ret = read_uboot_image((uint8_t *)UBOOT_IMAGE, &uboot_entry_point);
144+ if( ret != 0)
145+ {
146+ printf("read uboot image error, goto uboot2!");
147+ writel(DUALSYSTEM_STATUS_UNBOOTABLE, BOOT_FLAG_ADDR);
148+ ret = read_uboot_image((uint8_t *)UBOOT2_IMAGE, &uboot_entry_point);
149+ if( ret != 0)
150+ {
151+ printf("read uboot2 image error!");
152+ goto error;
153+ }
154+ }
155+ else
156+ printf("goto uboot!");
157+ }
158 else
159- printf("goto uboot2!");
160+ {
161+ ret = read_uboot_image((uint8_t *)UBOOT2_IMAGE, &uboot_entry_point);
162+ if( ret != 0)
163+ {
164+ printf("read uboot2 image error, goto uboot!");
165+ writel(DUALSYSTEM_STATUS_UNBOOTABLE, BOOT_FLAG_ADDR);
166+ ret = read_uboot_image((uint8_t *)UBOOT_IMAGE, &uboot_entry_point);
167+ if( ret != 0)
168+ {
169+ printf("read uboot image error!");
170+ goto error;
171+ }
172+ }
173+ else
174+ printf("goto uboot2!");
175+ }
176+
177 }
178 else
179 {
180diff --git a/Uboot/boot/common/src/uboot/arch/arm/lib/Makefile b/Uboot/boot/common/src/uboot/arch/arm/lib/Makefile
181index b5625a6..c35e97e 100755
182--- a/Uboot/boot/common/src/uboot/arch/arm/lib/Makefile
183+++ b/Uboot/boot/common/src/uboot/arch/arm/lib/Makefile
184@@ -49,9 +49,9 @@
185 SOBJS-$(CONFIG_USE_ARCH_MEMCPY) += memcpy.o
186 endif
187 #xf.li@2023.04.14 modify for ZXW-25 start
188-LYNQ_CONFIG_VERSION = "T106-W-V2.01.01.02P56U06.AP.15.05_CAP.15.05"
189+LYNQ_CONFIG_VERSION = "T106-V2.01.01.02P56U09.AP.17.02_CAP.17.02.02"
190 CFLAGS += -DLYNQ_VERSION=\"$(LYNQ_CONFIG_VERSION)\"
191-LYNQ_CONFIG_COMMITID = "c33b177c8b861ee957b6c8b0dea003278a3671d6"
192+LYNQ_CONFIG_COMMITID = "9aea88bb79cfb2fae9ddab87f8307126d618aec2"
193 CFLAGS += -DLYNQ_COMMITID=\"$(LYNQ_CONFIG_COMMITID)\"
194 #xf.li@2023.04.14 modify for ZXW-25 end
195 SRCS := $(GLSOBJS:.o=.S) $(GLCOBJS:.o=.c) \
196diff --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
197index bf9a900..78f48a4 100755
198--- a/Uboot/boot/common/src/uboot/board/zte/zx297520v3/zx297520v3_mdl_ab.c
199+++ b/Uboot/boot/common/src/uboot/board/zte/zx297520v3/zx297520v3_mdl_ab.c
200@@ -635,6 +635,7 @@
201 ret = rewrite_flags();
202 if(ret != 0)
203 return -1;
204+ system_reset();
205 return 0;
206 #endif
207 }
208diff --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
209index 2f9dde8..d538891 100755
210--- a/Uboot/boot/common/src/uboot/board/zte/zx297520v3/zx297520v3_vehicle_dc.c
211+++ b/Uboot/boot/common/src/uboot/board/zte/zx297520v3/zx297520v3_vehicle_dc.c
212@@ -636,6 +636,7 @@
213 ret = rewrite_flags();
214 if(ret != 0)
215 return -1;
216+ system_reset();
217 return 0;
218 #endif
219 }
220diff --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
221index 7703ad0..8e767d2 100755
222--- a/Uboot/boot/common/src/uboot/board/zte/zx297520v3/zx297520v3_vehicle_dc_ref.c
223+++ b/Uboot/boot/common/src/uboot/board/zte/zx297520v3/zx297520v3_vehicle_dc_ref.c
224@@ -638,6 +638,7 @@
225 ret = rewrite_flags();
226 if(ret != 0)
227 return -1;
228+ system_reset();
229 return 0;
230 #endif
231 }
232diff --git a/Uboot/boot/common/src/uboot/downloader/cmd_compat_write.c b/Uboot/boot/common/src/uboot/downloader/cmd_compat_write.c
233index 4d5e339..4d6ae9d 100755
234--- a/Uboot/boot/common/src/uboot/downloader/cmd_compat_write.c
235+++ b/Uboot/boot/common/src/uboot/downloader/cmd_compat_write.c
236@@ -34,9 +34,10 @@
237 /****************************************************************************
238 * Global Function Prototypes
239 ****************************************************************************/
240-T_IMG_SIZE img_size[IMG_NUM] = {{"uboot",0,0},{"imagefs",0,0},{"rootfs",0,0},{"caprootfs",0,0},{"oem",0,0}};
241+//T_IMG_SIZE img_size[IMG_NUM] = {{"uboot",0,0},{"imagefs",0,0},{"rootfs",0,0},{"caprootfs",0,0},{"oem",0,0}};
242+T_IMG_SIZE img_size[IMG_NUM_MAX];
243+int img_num = 0;
244 int flags_partiton_write = 0;
245-
246 extern int g_iftype;
247 extern partition_table_t * g_partition_table_dl;
248 /*******************************************************************************
249@@ -56,11 +57,14 @@
250 {
251 partition_entry_t *part = NULL;
252 char *par = NULL;
253+ char *par_tmp = NULL;
254 char ack[64]={0};
255 unsigned int offset = 0;
256 unsigned int size = 0;
257 unsigned int ret = 0;
258 unsigned int i = 0;
259+ unsigned int len = 0;
260+ unsigned int found = 0;
261 flags_partiton_write = 1;
262
263 if(argc<4)
264@@ -80,23 +84,55 @@
265 }
266
267 /*record image size*/
268- for(i=0; i<IMG_NUM; i++)
269+ len = strlen(par);
270+/* Started by AICoder, pid:q5743g3f62rd9291419e086de0327502c5d710ce */
271+ par_tmp = (char *)malloc(len + 1);
272+ if (par[len - 1] == '2') {
273+ strncpy(par_tmp, par, len - 1);
274+ par_tmp[len - 1] = '\0';
275+ } else {
276+ strcpy(par_tmp, par);
277+ }
278+/* Ended by AICoder, pid:q5743g3f62rd9291419e086de0327502c5d710ce */
279+
280+/* Started by AICoder, pid:ye4dcm700en8c6e14cdf0ac390813e36dc075765 */
281+ for(i=0; i<img_num; i++)
282 {
283- if(memcmp((char *)img_size[i].name , par, strlen(img_size[i].name)) == 0){
284- if(!memcmp(par,"oemdata",7))
285- break;
286- if(strlen(img_size[i].name) == strlen(par))
287- {
288- img_size[i].size_a = size;
289- printf("partition is %s,size_a is 0x%x.\n",par,size);
290- }
291- else
292- {
293- img_size[i].size_b = size;
294- printf("partition is %s,size_b is 0x%x.\n",par,size);
295- }
296- }
297+ if(strcmp((char *)img_size[i].name, par_tmp) == 0 && strlen((char *)img_size[i].name) == strlen(par_tmp))
298+ {
299+ found = 1;
300+ if(strcmp(par_tmp,par) == 0)
301+ {
302+ img_size[i].size_a = size;
303+ printf("partition is %s,size_a is 0x%x.\n",par,size);
304+ }
305+ else
306+ {
307+ img_size[i].size_b = size;
308+ printf("partition is %s,size_b is 0x%x.\n",par,size);
309+ }
310+
311+ break;
312+ }
313 }
314+ if (!found)
315+ {
316+ strcpy(img_size[img_num].name,par_tmp);
317+ if(strcmp(par_tmp,par) == 0)
318+ {
319+ img_size[img_num].size_a = size;
320+ printf("partition is %s,size_a is 0x%x.\n",par,size);
321+ }
322+ else
323+ {
324+ img_size[img_num].size_b = size;
325+ printf("partition is %s,size_b is 0x%x.\n",par,size);
326+ }
327+
328+ img_num += 1;
329+ }
330+ free(par_tmp);
331+/* Ended by AICoder, pid:ye4dcm700en8c6e14cdf0ac390813e36dc075765 */
332
333 #if defined (CONFIG_ZX297520V3E_VEHICLE_DC) || defined (CONFIG_ZX297520V3E_VEHICLE_DC_REF)
334 if(g_nor_flag == 1)
335diff --git a/Uboot/boot/common/src/uboot/include/partition_table.h b/Uboot/boot/common/src/uboot/include/partition_table.h
336index 306a64c..febd365 100755
337--- a/Uboot/boot/common/src/uboot/include/partition_table.h
338+++ b/Uboot/boot/common/src/uboot/include/partition_table.h
339@@ -211,7 +211,7 @@
340 #define PARTITION_CRC 0x12345678
341 #define PARTITION_SIZE 0X1000 /* ·ÖÇø±íµÄ´óС */
342
343-#define IMG_NUM 5
344+#define IMG_NUM 15
345
346 typedef struct partition_entry {
347 unsigned char part_name[16];
348diff --git a/Uboot/boot/prj/zx297520v3/bootrom/dl_off/loader2.bin b/Uboot/boot/prj/zx297520v3/bootrom/dl_off/loader2.bin
349index 343a176..9f59920 100755
350--- a/Uboot/boot/prj/zx297520v3/bootrom/dl_off/loader2.bin
351+++ b/Uboot/boot/prj/zx297520v3/bootrom/dl_off/loader2.bin
352Binary files differ
353diff --git a/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load b/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load
354index 305591e..adb25a4 100755
355--- a/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load
356+++ b/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load
357Binary files differ
358diff --git a/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load.map b/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load.map
359index 07ae1fd..b4ee310 100755
360--- a/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load.map
361+++ b/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load.map
362@@ -300,20 +300,20 @@
363 .stabstr 0x0000000000000000 0x67
364 .stabstr 0x0000000000000000 0x67 cpu/m0/start.o
365
366-.debug_info 0x0000000000000000 0x34d2
367- .debug_info 0x0000000000000000 0x70b lib/libarm.a(board.o)
368- .debug_info 0x000000000000070b 0x22b lib/libarm.a(string.o)
369- .debug_info 0x0000000000000936 0x329 drivers/libdrivers.a(ddr.o)
370- .debug_info 0x0000000000000c5f 0x2a0 drivers/libdrivers.a(uart.o)
371- .debug_info 0x0000000000000eff 0x6d3 drivers/libdrivers.a(image.o)
372- .debug_info 0x00000000000015d2 0x1c3 drivers/libdrivers.a(efuse.o)
373- .debug_info 0x0000000000001795 0x62d drivers/libdrivers.a(secure_verify.o)
374- .debug_info 0x0000000000001dc2 0xd5f drivers/libdrivers.a(nor.o)
375- .debug_info 0x0000000000002b21 0x1e8 drivers/libdrivers.a(drv_hash.o)
376- .debug_info 0x0000000000002d09 0x3b4 drivers/libdrivers.a(drv_rsa.o)
377- .debug_info 0x00000000000030bd 0x20f drivers/libdrivers.a(flash.o)
378- .debug_info 0x00000000000032cc 0x17b cpu/m0/libm0.a(cpu.o)
379- .debug_info 0x0000000000003447 0x8b cpu/m0/libm0.a(clk.o)
380+.debug_info 0x0000000000000000 0x34df
381+ .debug_info 0x0000000000000000 0x718 lib/libarm.a(board.o)
382+ .debug_info 0x0000000000000718 0x22b lib/libarm.a(string.o)
383+ .debug_info 0x0000000000000943 0x329 drivers/libdrivers.a(ddr.o)
384+ .debug_info 0x0000000000000c6c 0x2a0 drivers/libdrivers.a(uart.o)
385+ .debug_info 0x0000000000000f0c 0x6d3 drivers/libdrivers.a(image.o)
386+ .debug_info 0x00000000000015df 0x1c3 drivers/libdrivers.a(efuse.o)
387+ .debug_info 0x00000000000017a2 0x62d drivers/libdrivers.a(secure_verify.o)
388+ .debug_info 0x0000000000001dcf 0xd5f drivers/libdrivers.a(nor.o)
389+ .debug_info 0x0000000000002b2e 0x1e8 drivers/libdrivers.a(drv_hash.o)
390+ .debug_info 0x0000000000002d16 0x3b4 drivers/libdrivers.a(drv_rsa.o)
391+ .debug_info 0x00000000000030ca 0x20f drivers/libdrivers.a(flash.o)
392+ .debug_info 0x00000000000032d9 0x17b cpu/m0/libm0.a(cpu.o)
393+ .debug_info 0x0000000000003454 0x8b cpu/m0/libm0.a(clk.o)
394
395 .debug_abbrev 0x0000000000000000 0x12c2
396 .debug_abbrev 0x0000000000000000 0x2b8 lib/libarm.a(board.o)
397@@ -395,32 +395,32 @@
398 .debug_line 0x000000000000131d 0xa7 cpu/m0/libm0.a(cpu.o)
399 .debug_line 0x00000000000013c4 0x61 cpu/m0/libm0.a(clk.o)
400
401-.debug_str 0x0000000000000000 0xebb
402- .debug_str 0x0000000000000000 0x4d5 lib/libarm.a(board.o)
403- 0x554 (松开之前的大小)
404- .debug_str 0x00000000000004d5 0x4c lib/libarm.a(string.o)
405+.debug_str 0x0000000000000000 0xec7
406+ .debug_str 0x0000000000000000 0x4e1 lib/libarm.a(board.o)
407+ 0x560 (松开之前的大小)
408+ .debug_str 0x00000000000004e1 0x4c lib/libarm.a(string.o)
409 0x214 (松开之前的大小)
410- .debug_str 0x0000000000000521 0xa1 drivers/libdrivers.a(ddr.o)
411+ .debug_str 0x000000000000052d 0xa1 drivers/libdrivers.a(ddr.o)
412 0x216 (松开之前的大小)
413- .debug_str 0x00000000000005c2 0x8a drivers/libdrivers.a(uart.o)
414+ .debug_str 0x00000000000005ce 0x8a drivers/libdrivers.a(uart.o)
415 0x253 (松开之前的大小)
416- .debug_str 0x000000000000064c 0x229 drivers/libdrivers.a(image.o)
417+ .debug_str 0x0000000000000658 0x229 drivers/libdrivers.a(image.o)
418 0x4a0 (松开之前的大小)
419- .debug_str 0x0000000000000875 0x7b drivers/libdrivers.a(efuse.o)
420+ .debug_str 0x0000000000000881 0x7b drivers/libdrivers.a(efuse.o)
421 0x255 (松开之前的大小)
422- .debug_str 0x00000000000008f0 0x177 drivers/libdrivers.a(secure_verify.o)
423+ .debug_str 0x00000000000008fc 0x177 drivers/libdrivers.a(secure_verify.o)
424 0x407 (松开之前的大小)
425- .debug_str 0x0000000000000a67 0x2c3 drivers/libdrivers.a(nor.o)
426+ .debug_str 0x0000000000000a73 0x2c3 drivers/libdrivers.a(nor.o)
427 0x5f3 (松开之前的大小)
428- .debug_str 0x0000000000000d2a 0x87 drivers/libdrivers.a(drv_hash.o)
429+ .debug_str 0x0000000000000d36 0x87 drivers/libdrivers.a(drv_hash.o)
430 0x25a (松开之前的大小)
431- .debug_str 0x0000000000000db1 0x79 drivers/libdrivers.a(drv_rsa.o)
432+ .debug_str 0x0000000000000dbd 0x79 drivers/libdrivers.a(drv_rsa.o)
433 0x29c (松开之前的大小)
434- .debug_str 0x0000000000000e2a 0x12 drivers/libdrivers.a(flash.o)
435+ .debug_str 0x0000000000000e36 0x12 drivers/libdrivers.a(flash.o)
436 0x2a8 (松开之前的大小)
437- .debug_str 0x0000000000000e3c 0x79 cpu/m0/libm0.a(cpu.o)
438+ .debug_str 0x0000000000000e48 0x79 cpu/m0/libm0.a(cpu.o)
439 0x1f8 (松开之前的大小)
440- .debug_str 0x0000000000000eb5 0x6 cpu/m0/libm0.a(clk.o)
441+ .debug_str 0x0000000000000ec1 0x6 cpu/m0/libm0.a(clk.o)
442 0x1bd (松开之前的大小)
443
444 .debug_frame 0x0000000000000000 0x6a0
445diff --git a/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load2 b/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load2
446index 65ef38e..be71fcd 100755
447--- a/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load2
448+++ b/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load2
449Binary files differ
450diff --git a/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load2.map b/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load2.map
451index 0163e41..c906aa5 100755
452--- a/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load2.map
453+++ b/Uboot/boot/prj/zx297520v3/bootrom/dl_off/z-load2.map
454@@ -34,7 +34,7 @@
455 0x0000000000000000 . = 0x0
456 0x0000000000000000 . = ALIGN (0x4)
457
458-.text 0x0000000020300000 0x4ddc
459+.text 0x0000000020300000 0x4ea4
460 cpu/m0/start.o(.text)
461 .text 0x0000000020300000 0x220 cpu/m0/start.o
462 0x00000000203001a4 _bss_start
463@@ -44,7 +44,7 @@
464 0x00000000203001b8 _start
465 0x00000000203001fe run_at
466 *(.text)
467- .text 0x0000000020300220 0x4ec lib/libarm.a(board.o)
468+ .text 0x0000000020300220 0x5b4 lib/libarm.a(board.o)
469 0x0000000020300220 print_info
470 0x0000000020300230 copy_to_iram1
471 0x0000000020300250 clear_iram
472@@ -55,201 +55,201 @@
473 0x0000000020300338 pmu_read
474 0x0000000020300404 pmu_write
475 0x00000000203004d0 start_armboot
476- .text 0x000000002030070c 0x80 lib/libarm.a(string.o)
477- 0x000000002030070c strlen
478- 0x000000002030071c memset
479- 0x000000002030075e memcmp
480- 0x000000002030077a memcpy
481- .text 0x000000002030078c 0x82c drivers/libdrivers.a(ddr.o)
482- 0x000000002030078c nsdelay
483- 0x00000000203007a6 ddr_clk_init
484- 0x00000000203007bc ddr_phy_init
485- 0x00000000203008b8 ddr_ctrl_init
486- 0x0000000020300c74 ddr_prio_init
487- 0x0000000020300d98 ddr_init
488- .text 0x0000000020300fb8 0x138 drivers/libdrivers.a(uart.o)
489- 0x0000000020300fb8 uart_init
490- 0x0000000020301038 uart_putc
491- 0x0000000020301060 uart_puts
492- 0x0000000020301074 uart_getc
493- 0x0000000020301090 uart_tstc
494- 0x00000000203010a0 UART_Read
495- 0x00000000203010bc UART_Write
496- 0x00000000203010d8 UART_Check_Sync
497- .text 0x00000000203010f0 0x338 drivers/libdrivers.a(image.o)
498- 0x00000000203010f4 page_align
499- 0x000000002030110c find_partition_para
500- 0x000000002030113c read_image_part_offset
501- 0x0000000020301190 read_flags_image
502- 0x0000000020301278 read_uboot_image
503- 0x0000000020301358 nand_read_m0
504- 0x00000000203013c4 read_zloader_image
505- .text 0x0000000020301428 0x2b0 drivers/libdrivers.a(secure_verify.o)
506- 0x0000000020301446 BIG2SMALL
507- 0x0000000020301476 bin2hex
508- 0x00000000203014c0 secure_verify_zloader
509- 0x00000000203015b4 SecureVerify
510- .text 0x00000000203016d8 0x648 drivers/libdrivers.a(spifc_loader2.o)
511- 0x00000000203017cc zDrvGpio_SetFunc
512- 0x0000000020301804 zDrvGpio_SetDirection
513- 0x0000000020301854 zDrvGpio_SetOutputValue
514- 0x0000000020301890 spi_nand_cs
515- 0x00000000203018cc spifc_clear_fifo
516- 0x00000000203018e0 spifc_clear_int
517- 0x0000000020301a3c spifc_read_oob
518- 0x0000000020301a80 spifc_read_page_raw
519- 0x0000000020301abc spifc_read_page
520- 0x0000000020301b38 spifc_read
521- 0x0000000020301b7c read_data
522- 0x0000000020301bd0 read_id
523- 0x0000000020301c54 spifc_init
524- 0x0000000020301cd8 zloader_flash_init
525- .text 0x0000000020301d20 0x1c0 drivers/libdrivers.a(bbt.o)
526- 0x0000000020301d80 nand_creat_ram_bbt
527- 0x0000000020301dc4 nand_search_bbt
528- 0x0000000020301e50 nand_creat_bbt
529- 0x0000000020301ecc nand_block_isbad
530- .text 0x0000000020301ee0 0x2688 drivers/libdrivers.a(sha256.o)
531- 0x0000000020304400 sha256_starts
532- 0x0000000020304448 sha256_update
533- 0x0000000020304454 sha256_finish
534- 0x0000000020304540 sha256_csum_wd
535- .text 0x0000000020304568 0x424 drivers/libdrivers.a(nor.o)
536- 0x0000000020304568 spifc_enable
537- 0x0000000020304598 spifc_disable
538- 0x00000000203045bc spifc_setup_cmd
539- 0x0000000020304640 spifc_wait_cmd_end
540- 0x000000002030466c spifc_read_fifo
541- 0x00000000203046a8 spifc_start
542- 0x00000000203046b8 cmd_seek
543- 0x00000000203046d8 nor_read_reg
544- 0x0000000020304738 nor_read_id
545- 0x00000000203047a0 spi_nor_read
546- 0x00000000203047fc nor_read
547- 0x0000000020304850 spi_nor_read_security_register
548- 0x00000000203048ac nor_read_security_register
549- 0x0000000020304900 nor_init
550- 0x0000000020304950 board_flash_init
551- .text 0x000000002030498c 0xa4 drivers/libdrivers.a(drv_hash.o)
552- 0x000000002030498c Hash_Calculate
553- .text 0x0000000020304a30 0x174 drivers/libdrivers.a(drv_rsa.o)
554- 0x0000000020304a4a Rsa_Calculate
555- .text 0x0000000020304ba4 0x28 drivers/libdrivers.a(flash.o)
556- 0x0000000020304ba4 get_boot_mode
557- .text 0x0000000020304bcc 0x1bc drivers/libdrivers.a(efuse.o)
558- 0x0000000020304bcc efuse_init
559- 0x0000000020304bf0 get_ddr_flag
560- 0x0000000020304d10 get_secure_verify_status
561- 0x0000000020304d54 get_otp_secure_verify_status
562- .text 0x0000000020304d88 0x54 cpu/m0/libm0.a(cpu.o)
563- 0x0000000020304d88 timer_init
564- 0x0000000020304da0 usdelay
565+ .text 0x00000000203007d4 0x80 lib/libarm.a(string.o)
566+ 0x00000000203007d4 strlen
567+ 0x00000000203007e4 memset
568+ 0x0000000020300826 memcmp
569+ 0x0000000020300842 memcpy
570+ .text 0x0000000020300854 0x82c drivers/libdrivers.a(ddr.o)
571+ 0x0000000020300854 nsdelay
572+ 0x000000002030086e ddr_clk_init
573+ 0x0000000020300884 ddr_phy_init
574+ 0x0000000020300980 ddr_ctrl_init
575+ 0x0000000020300d3c ddr_prio_init
576+ 0x0000000020300e60 ddr_init
577+ .text 0x0000000020301080 0x138 drivers/libdrivers.a(uart.o)
578+ 0x0000000020301080 uart_init
579+ 0x0000000020301100 uart_putc
580+ 0x0000000020301128 uart_puts
581+ 0x000000002030113c uart_getc
582+ 0x0000000020301158 uart_tstc
583+ 0x0000000020301168 UART_Read
584+ 0x0000000020301184 UART_Write
585+ 0x00000000203011a0 UART_Check_Sync
586+ .text 0x00000000203011b8 0x338 drivers/libdrivers.a(image.o)
587+ 0x00000000203011bc page_align
588+ 0x00000000203011d4 find_partition_para
589+ 0x0000000020301204 read_image_part_offset
590+ 0x0000000020301258 read_flags_image
591+ 0x0000000020301340 read_uboot_image
592+ 0x0000000020301420 nand_read_m0
593+ 0x000000002030148c read_zloader_image
594+ .text 0x00000000203014f0 0x2b0 drivers/libdrivers.a(secure_verify.o)
595+ 0x000000002030150e BIG2SMALL
596+ 0x000000002030153e bin2hex
597+ 0x0000000020301588 secure_verify_zloader
598+ 0x000000002030167c SecureVerify
599+ .text 0x00000000203017a0 0x648 drivers/libdrivers.a(spifc_loader2.o)
600+ 0x0000000020301894 zDrvGpio_SetFunc
601+ 0x00000000203018cc zDrvGpio_SetDirection
602+ 0x000000002030191c zDrvGpio_SetOutputValue
603+ 0x0000000020301958 spi_nand_cs
604+ 0x0000000020301994 spifc_clear_fifo
605+ 0x00000000203019a8 spifc_clear_int
606+ 0x0000000020301b04 spifc_read_oob
607+ 0x0000000020301b48 spifc_read_page_raw
608+ 0x0000000020301b84 spifc_read_page
609+ 0x0000000020301c00 spifc_read
610+ 0x0000000020301c44 read_data
611+ 0x0000000020301c98 read_id
612+ 0x0000000020301d1c spifc_init
613+ 0x0000000020301da0 zloader_flash_init
614+ .text 0x0000000020301de8 0x1c0 drivers/libdrivers.a(bbt.o)
615+ 0x0000000020301e48 nand_creat_ram_bbt
616+ 0x0000000020301e8c nand_search_bbt
617+ 0x0000000020301f18 nand_creat_bbt
618+ 0x0000000020301f94 nand_block_isbad
619+ .text 0x0000000020301fa8 0x2688 drivers/libdrivers.a(sha256.o)
620+ 0x00000000203044c8 sha256_starts
621+ 0x0000000020304510 sha256_update
622+ 0x000000002030451c sha256_finish
623+ 0x0000000020304608 sha256_csum_wd
624+ .text 0x0000000020304630 0x424 drivers/libdrivers.a(nor.o)
625+ 0x0000000020304630 spifc_enable
626+ 0x0000000020304660 spifc_disable
627+ 0x0000000020304684 spifc_setup_cmd
628+ 0x0000000020304708 spifc_wait_cmd_end
629+ 0x0000000020304734 spifc_read_fifo
630+ 0x0000000020304770 spifc_start
631+ 0x0000000020304780 cmd_seek
632+ 0x00000000203047a0 nor_read_reg
633+ 0x0000000020304800 nor_read_id
634+ 0x0000000020304868 spi_nor_read
635+ 0x00000000203048c4 nor_read
636+ 0x0000000020304918 spi_nor_read_security_register
637+ 0x0000000020304974 nor_read_security_register
638+ 0x00000000203049c8 nor_init
639+ 0x0000000020304a18 board_flash_init
640+ .text 0x0000000020304a54 0xa4 drivers/libdrivers.a(drv_hash.o)
641+ 0x0000000020304a54 Hash_Calculate
642+ .text 0x0000000020304af8 0x174 drivers/libdrivers.a(drv_rsa.o)
643+ 0x0000000020304b12 Rsa_Calculate
644+ .text 0x0000000020304c6c 0x28 drivers/libdrivers.a(flash.o)
645+ 0x0000000020304c6c get_boot_mode
646+ .text 0x0000000020304c94 0x1bc drivers/libdrivers.a(efuse.o)
647+ 0x0000000020304c94 efuse_init
648+ 0x0000000020304cb8 get_ddr_flag
649+ 0x0000000020304dd8 get_secure_verify_status
650+ 0x0000000020304e1c get_otp_secure_verify_status
651+ .text 0x0000000020304e50 0x54 cpu/m0/libm0.a(cpu.o)
652+ 0x0000000020304e50 timer_init
653+ 0x0000000020304e68 usdelay
654
655-.glue_7 0x0000000020304ddc 0x0
656+.glue_7 0x0000000020304ea4 0x0
657 .glue_7 0x0000000000000000 0x0 linker stubs
658
659-.glue_7t 0x0000000020304ddc 0x0
660+.glue_7t 0x0000000020304ea4 0x0
661 .glue_7t 0x0000000000000000 0x0 linker stubs
662
663-.vfp11_veneer 0x0000000020304ddc 0x0
664+.vfp11_veneer 0x0000000020304ea4 0x0
665 .vfp11_veneer 0x0000000000000000 0x0 linker stubs
666
667-.v4_bx 0x0000000020304ddc 0x0
668+.v4_bx 0x0000000020304ea4 0x0
669 .v4_bx 0x0000000000000000 0x0 linker stubs
670
671-.iplt 0x0000000020304ddc 0x0
672+.iplt 0x0000000020304ea4 0x0
673 .iplt 0x0000000000000000 0x0 cpu/m0/start.o
674- 0x0000000020304ddc . = ALIGN (0x4)
675+ 0x0000000020304ea4 . = ALIGN (0x4)
676
677-.rodata 0x0000000020304ddc 0x3f0
678+.rodata 0x0000000020304ea4 0x3f0
679 *(.rodata)
680- .rodata 0x0000000020304ddc 0x270 drivers/libdrivers.a(spifc_loader2.o)
681- .rodata 0x000000002030504c 0x13 drivers/libdrivers.a(sha256.o)
682- 0x000000002030504c sha256_der_prefix
683- *fill* 0x000000002030505f 0x1
684- .rodata 0x0000000020305060 0x16c drivers/libdrivers.a(nor.o)
685+ .rodata 0x0000000020304ea4 0x270 drivers/libdrivers.a(spifc_loader2.o)
686+ .rodata 0x0000000020305114 0x13 drivers/libdrivers.a(sha256.o)
687+ 0x0000000020305114 sha256_der_prefix
688+ *fill* 0x0000000020305127 0x1
689+ .rodata 0x0000000020305128 0x16c drivers/libdrivers.a(nor.o)
690
691-.rodata.str1.1 0x00000000203051cc 0x48d
692+.rodata.str1.1 0x0000000020305294 0x516
693 .rodata.str1.1
694- 0x00000000203051cc 0x18a lib/libarm.a(board.o)
695- 0x1a3 (松开之前的大小)
696+ 0x0000000020305294 0x213 lib/libarm.a(board.o)
697+ 0x24e (松开之前的大小)
698 .rodata.str1.1
699- 0x0000000020305356 0xef drivers/libdrivers.a(image.o)
700+ 0x00000000203054a7 0xef drivers/libdrivers.a(image.o)
701 0x115 (松开之前的大小)
702 .rodata.str1.1
703- 0x0000000020305445 0x5b drivers/libdrivers.a(secure_verify.o)
704+ 0x0000000020305596 0x5b drivers/libdrivers.a(secure_verify.o)
705 0x5d (松开之前的大小)
706 .rodata.str1.1
707- 0x00000000203054a0 0x3d drivers/libdrivers.a(spifc_loader2.o)
708+ 0x00000000203055f1 0x3d drivers/libdrivers.a(spifc_loader2.o)
709 0x4a (松开之前的大小)
710 .rodata.str1.1
711- 0x00000000203054dd 0x9 drivers/libdrivers.a(bbt.o)
712+ 0x000000002030562e 0x9 drivers/libdrivers.a(bbt.o)
713 .rodata.str1.1
714- 0x00000000203054e6 0x15c drivers/libdrivers.a(nor.o)
715+ 0x0000000020305637 0x15c drivers/libdrivers.a(nor.o)
716 .rodata.str1.1
717- 0x0000000020305642 0x17 drivers/libdrivers.a(efuse.o)
718+ 0x0000000020305793 0x17 drivers/libdrivers.a(efuse.o)
719
720-.rel.dyn 0x000000002030565c 0x0
721+.rel.dyn 0x00000000203057ac 0x0
722 .rel.iplt 0x0000000000000000 0x0 cpu/m0/start.o
723- 0x000000002030565c . = ALIGN (0x4)
724+ 0x00000000203057ac . = ALIGN (0x4)
725
726-.data 0x000000002030565c 0xd0
727+.data 0x00000000203057ac 0xd0
728 *(.data)
729- .data 0x000000002030565c 0x0 cpu/m0/start.o
730- .data 0x000000002030565c 0x0 lib/libarm.a(board.o)
731- .data 0x000000002030565c 0x0 lib/libarm.a(string.o)
732- .data 0x000000002030565c 0x0 drivers/libdrivers.a(ddr.o)
733- .data 0x000000002030565c 0x0 drivers/libdrivers.a(uart.o)
734- .data 0x000000002030565c 0x0 drivers/libdrivers.a(image.o)
735- .data 0x000000002030565c 0x0 drivers/libdrivers.a(secure_verify.o)
736- .data 0x000000002030565c 0x0 drivers/libdrivers.a(spifc_loader2.o)
737- .data 0x000000002030565c 0x40 drivers/libdrivers.a(bbt.o)
738- .data 0x000000002030569c 0x40 drivers/libdrivers.a(sha256.o)
739- .data 0x00000000203056dc 0x50 drivers/libdrivers.a(nor.o)
740- 0x00000000203056dc nor_cmd_table
741- .data 0x000000002030572c 0x0 drivers/libdrivers.a(drv_hash.o)
742- .data 0x000000002030572c 0x0 drivers/libdrivers.a(drv_rsa.o)
743- .data 0x000000002030572c 0x0 drivers/libdrivers.a(flash.o)
744- .data 0x000000002030572c 0x0 drivers/libdrivers.a(efuse.o)
745- .data 0x000000002030572c 0x0 cpu/m0/libm0.a(cpu.o)
746+ .data 0x00000000203057ac 0x0 cpu/m0/start.o
747+ .data 0x00000000203057ac 0x0 lib/libarm.a(board.o)
748+ .data 0x00000000203057ac 0x0 lib/libarm.a(string.o)
749+ .data 0x00000000203057ac 0x0 drivers/libdrivers.a(ddr.o)
750+ .data 0x00000000203057ac 0x0 drivers/libdrivers.a(uart.o)
751+ .data 0x00000000203057ac 0x0 drivers/libdrivers.a(image.o)
752+ .data 0x00000000203057ac 0x0 drivers/libdrivers.a(secure_verify.o)
753+ .data 0x00000000203057ac 0x0 drivers/libdrivers.a(spifc_loader2.o)
754+ .data 0x00000000203057ac 0x40 drivers/libdrivers.a(bbt.o)
755+ .data 0x00000000203057ec 0x40 drivers/libdrivers.a(sha256.o)
756+ .data 0x000000002030582c 0x50 drivers/libdrivers.a(nor.o)
757+ 0x000000002030582c nor_cmd_table
758+ .data 0x000000002030587c 0x0 drivers/libdrivers.a(drv_hash.o)
759+ .data 0x000000002030587c 0x0 drivers/libdrivers.a(drv_rsa.o)
760+ .data 0x000000002030587c 0x0 drivers/libdrivers.a(flash.o)
761+ .data 0x000000002030587c 0x0 drivers/libdrivers.a(efuse.o)
762+ .data 0x000000002030587c 0x0 cpu/m0/libm0.a(cpu.o)
763
764-.igot.plt 0x000000002030572c 0x0
765+.igot.plt 0x000000002030587c 0x0
766 .igot.plt 0x0000000000000000 0x0 cpu/m0/start.o
767- 0x000000002030572c . = ALIGN (0x4)
768+ 0x000000002030587c . = ALIGN (0x4)
769
770 .got
771 *(.got)
772- 0x000000002030572c . = ALIGN (0x4)
773- 0x000000002030572c __bss_start = .
774+ 0x000000002030587c . = ALIGN (0x4)
775+ 0x000000002030587c __bss_start = .
776
777-.bss 0x000000002030572c 0x1e8
778+.bss 0x000000002030587c 0x1e8
779 *(.bss)
780- .bss 0x000000002030572c 0x0 cpu/m0/start.o
781- .bss 0x000000002030572c 0x4 lib/libarm.a(board.o)
782- 0x000000002030572c zloader_entry_point
783- .bss 0x0000000020305730 0x0 lib/libarm.a(string.o)
784- .bss 0x0000000020305730 0x0 drivers/libdrivers.a(ddr.o)
785- .bss 0x0000000020305730 0x0 drivers/libdrivers.a(uart.o)
786- .bss 0x0000000020305730 0x0 drivers/libdrivers.a(image.o)
787- .bss 0x0000000020305730 0x104 drivers/libdrivers.a(secure_verify.o)
788- 0x0000000020305730 result
789- .bss 0x0000000020305834 0x4 drivers/libdrivers.a(spifc_loader2.o)
790- .bss 0x0000000020305838 0x80 drivers/libdrivers.a(bbt.o)
791- .bss 0x00000000203058b8 0x0 drivers/libdrivers.a(sha256.o)
792- .bss 0x00000000203058b8 0x28 drivers/libdrivers.a(nor.o)
793- 0x00000000203058b8 spi_nor_flash
794- 0x00000000203058bc otp_data
795- .bss 0x00000000203058e0 0x0 drivers/libdrivers.a(drv_hash.o)
796- .bss 0x00000000203058e0 0x0 drivers/libdrivers.a(drv_rsa.o)
797- .bss 0x00000000203058e0 0x24 drivers/libdrivers.a(flash.o)
798- 0x00000000203058e0 flash
799- .bss 0x0000000020305904 0x0 drivers/libdrivers.a(efuse.o)
800- .bss 0x0000000020305904 0x10 cpu/m0/libm0.a(cpu.o)
801- 0x0000000020305904 g_tick
802- 0x0000000020305914 __bss_end = .
803- 0x0000000020305914 . = ALIGN (0x4)
804+ .bss 0x000000002030587c 0x0 cpu/m0/start.o
805+ .bss 0x000000002030587c 0x4 lib/libarm.a(board.o)
806+ 0x000000002030587c zloader_entry_point
807+ .bss 0x0000000020305880 0x0 lib/libarm.a(string.o)
808+ .bss 0x0000000020305880 0x0 drivers/libdrivers.a(ddr.o)
809+ .bss 0x0000000020305880 0x0 drivers/libdrivers.a(uart.o)
810+ .bss 0x0000000020305880 0x0 drivers/libdrivers.a(image.o)
811+ .bss 0x0000000020305880 0x104 drivers/libdrivers.a(secure_verify.o)
812+ 0x0000000020305880 result
813+ .bss 0x0000000020305984 0x4 drivers/libdrivers.a(spifc_loader2.o)
814+ .bss 0x0000000020305988 0x80 drivers/libdrivers.a(bbt.o)
815+ .bss 0x0000000020305a08 0x0 drivers/libdrivers.a(sha256.o)
816+ .bss 0x0000000020305a08 0x28 drivers/libdrivers.a(nor.o)
817+ 0x0000000020305a08 spi_nor_flash
818+ 0x0000000020305a0c otp_data
819+ .bss 0x0000000020305a30 0x0 drivers/libdrivers.a(drv_hash.o)
820+ .bss 0x0000000020305a30 0x0 drivers/libdrivers.a(drv_rsa.o)
821+ .bss 0x0000000020305a30 0x24 drivers/libdrivers.a(flash.o)
822+ 0x0000000020305a30 flash
823+ .bss 0x0000000020305a54 0x0 drivers/libdrivers.a(efuse.o)
824+ .bss 0x0000000020305a54 0x10 cpu/m0/libm0.a(cpu.o)
825+ 0x0000000020305a54 g_tick
826+ 0x0000000020305a64 __bss_end = .
827+ 0x0000000020305a64 . = ALIGN (0x4)
828
829-.para 0x0000000082000000 0x0 加载地址 0x0000000020305914
830+.para 0x0000000082000000 0x0 加载地址 0x0000000020305a64
831 0x0000000082000000 __para_start = .
832 *(.para)
833 0x0000000082000000 __para_end = .
834@@ -356,22 +356,22 @@
835 .stabstr 0x0000000000000000 0x67
836 .stabstr 0x0000000000000000 0x67 cpu/m0/start.o
837
838-.debug_info 0x0000000000000000 0x65ab
839- .debug_info 0x0000000000000000 0x9a2 lib/libarm.a(board.o)
840- .debug_info 0x00000000000009a2 0x22b lib/libarm.a(string.o)
841- .debug_info 0x0000000000000bcd 0x329 drivers/libdrivers.a(ddr.o)
842- .debug_info 0x0000000000000ef6 0x2a0 drivers/libdrivers.a(uart.o)
843- .debug_info 0x0000000000001196 0xdd6 drivers/libdrivers.a(image.o)
844- .debug_info 0x0000000000001f6c 0xb01 drivers/libdrivers.a(secure_verify.o)
845- .debug_info 0x0000000000002a6d 0x1661 drivers/libdrivers.a(spifc_loader2.o)
846- .debug_info 0x00000000000040ce 0x70f drivers/libdrivers.a(bbt.o)
847- .debug_info 0x00000000000047dd 0x586 drivers/libdrivers.a(sha256.o)
848- .debug_info 0x0000000000004d63 0xd5f drivers/libdrivers.a(nor.o)
849- .debug_info 0x0000000000005ac2 0x1e8 drivers/libdrivers.a(drv_hash.o)
850- .debug_info 0x0000000000005caa 0x3b4 drivers/libdrivers.a(drv_rsa.o)
851- .debug_info 0x000000000000605e 0x20f drivers/libdrivers.a(flash.o)
852- .debug_info 0x000000000000626d 0x1c3 drivers/libdrivers.a(efuse.o)
853- .debug_info 0x0000000000006430 0x17b cpu/m0/libm0.a(cpu.o)
854+.debug_info 0x0000000000000000 0x66af
855+ .debug_info 0x0000000000000000 0xaa6 lib/libarm.a(board.o)
856+ .debug_info 0x0000000000000aa6 0x22b lib/libarm.a(string.o)
857+ .debug_info 0x0000000000000cd1 0x329 drivers/libdrivers.a(ddr.o)
858+ .debug_info 0x0000000000000ffa 0x2a0 drivers/libdrivers.a(uart.o)
859+ .debug_info 0x000000000000129a 0xdd6 drivers/libdrivers.a(image.o)
860+ .debug_info 0x0000000000002070 0xb01 drivers/libdrivers.a(secure_verify.o)
861+ .debug_info 0x0000000000002b71 0x1661 drivers/libdrivers.a(spifc_loader2.o)
862+ .debug_info 0x00000000000041d2 0x70f drivers/libdrivers.a(bbt.o)
863+ .debug_info 0x00000000000048e1 0x586 drivers/libdrivers.a(sha256.o)
864+ .debug_info 0x0000000000004e67 0xd5f drivers/libdrivers.a(nor.o)
865+ .debug_info 0x0000000000005bc6 0x1e8 drivers/libdrivers.a(drv_hash.o)
866+ .debug_info 0x0000000000005dae 0x3b4 drivers/libdrivers.a(drv_rsa.o)
867+ .debug_info 0x0000000000006162 0x20f drivers/libdrivers.a(flash.o)
868+ .debug_info 0x0000000000006371 0x1c3 drivers/libdrivers.a(efuse.o)
869+ .debug_info 0x0000000000006534 0x17b cpu/m0/libm0.a(cpu.o)
870
871 .debug_abbrev 0x0000000000000000 0x1c94
872 .debug_abbrev 0x0000000000000000 0x304 lib/libarm.a(board.o)
873@@ -390,22 +390,22 @@
874 .debug_abbrev 0x0000000000001aaf 0x11d drivers/libdrivers.a(efuse.o)
875 .debug_abbrev 0x0000000000001bcc 0xc8 cpu/m0/libm0.a(cpu.o)
876
877-.debug_loc 0x0000000000000000 0x9737
878- .debug_loc 0x0000000000000000 0x345 lib/libarm.a(board.o)
879- .debug_loc 0x0000000000000345 0x29d lib/libarm.a(string.o)
880- .debug_loc 0x00000000000005e2 0x2d8 drivers/libdrivers.a(ddr.o)
881- .debug_loc 0x00000000000008ba 0x228 drivers/libdrivers.a(uart.o)
882- .debug_loc 0x0000000000000ae2 0x6a2 drivers/libdrivers.a(image.o)
883- .debug_loc 0x0000000000001184 0x790 drivers/libdrivers.a(secure_verify.o)
884- .debug_loc 0x0000000000001914 0xef4 drivers/libdrivers.a(spifc_loader2.o)
885- .debug_loc 0x0000000000002808 0x282 drivers/libdrivers.a(bbt.o)
886- .debug_loc 0x0000000000002a8a 0x5f3f drivers/libdrivers.a(sha256.o)
887- .debug_loc 0x00000000000089c9 0x80a drivers/libdrivers.a(nor.o)
888- .debug_loc 0x00000000000091d3 0x1b8 drivers/libdrivers.a(drv_hash.o)
889- .debug_loc 0x000000000000938b 0x238 drivers/libdrivers.a(drv_rsa.o)
890- .debug_loc 0x00000000000095c3 0x1f drivers/libdrivers.a(flash.o)
891- .debug_loc 0x00000000000095e2 0xab drivers/libdrivers.a(efuse.o)
892- .debug_loc 0x000000000000968d 0xaa cpu/m0/libm0.a(cpu.o)
893+.debug_loc 0x0000000000000000 0x9807
894+ .debug_loc 0x0000000000000000 0x415 lib/libarm.a(board.o)
895+ .debug_loc 0x0000000000000415 0x29d lib/libarm.a(string.o)
896+ .debug_loc 0x00000000000006b2 0x2d8 drivers/libdrivers.a(ddr.o)
897+ .debug_loc 0x000000000000098a 0x228 drivers/libdrivers.a(uart.o)
898+ .debug_loc 0x0000000000000bb2 0x6a2 drivers/libdrivers.a(image.o)
899+ .debug_loc 0x0000000000001254 0x790 drivers/libdrivers.a(secure_verify.o)
900+ .debug_loc 0x00000000000019e4 0xef4 drivers/libdrivers.a(spifc_loader2.o)
901+ .debug_loc 0x00000000000028d8 0x282 drivers/libdrivers.a(bbt.o)
902+ .debug_loc 0x0000000000002b5a 0x5f3f drivers/libdrivers.a(sha256.o)
903+ .debug_loc 0x0000000000008a99 0x80a drivers/libdrivers.a(nor.o)
904+ .debug_loc 0x00000000000092a3 0x1b8 drivers/libdrivers.a(drv_hash.o)
905+ .debug_loc 0x000000000000945b 0x238 drivers/libdrivers.a(drv_rsa.o)
906+ .debug_loc 0x0000000000009693 0x1f drivers/libdrivers.a(flash.o)
907+ .debug_loc 0x00000000000096b2 0xab drivers/libdrivers.a(efuse.o)
908+ .debug_loc 0x000000000000975d 0xaa cpu/m0/libm0.a(cpu.o)
909
910 .debug_aranges 0x0000000000000000 0x1e0
911 .debug_aranges
912@@ -449,53 +449,53 @@
913 .debug_ranges 0x00000000000001d8 0x28 drivers/libdrivers.a(drv_hash.o)
914 .debug_ranges 0x0000000000000200 0x38 drivers/libdrivers.a(drv_rsa.o)
915
916-.debug_line 0x0000000000000000 0x203f
917- .debug_line 0x0000000000000000 0x3a4 lib/libarm.a(board.o)
918- .debug_line 0x00000000000003a4 0x152 lib/libarm.a(string.o)
919- .debug_line 0x00000000000004f6 0x299 drivers/libdrivers.a(ddr.o)
920- .debug_line 0x000000000000078f 0x112 drivers/libdrivers.a(uart.o)
921- .debug_line 0x00000000000008a1 0x3b8 drivers/libdrivers.a(image.o)
922- .debug_line 0x0000000000000c59 0x38e drivers/libdrivers.a(secure_verify.o)
923- .debug_line 0x0000000000000fe7 0x442 drivers/libdrivers.a(spifc_loader2.o)
924- .debug_line 0x0000000000001429 0x251 drivers/libdrivers.a(bbt.o)
925- .debug_line 0x000000000000167a 0x2bb drivers/libdrivers.a(sha256.o)
926- .debug_line 0x0000000000001935 0x2a2 drivers/libdrivers.a(nor.o)
927- .debug_line 0x0000000000001bd7 0x88 drivers/libdrivers.a(drv_hash.o)
928- .debug_line 0x0000000000001c5f 0x117 drivers/libdrivers.a(drv_rsa.o)
929- .debug_line 0x0000000000001d76 0x10a drivers/libdrivers.a(flash.o)
930- .debug_line 0x0000000000001e80 0x118 drivers/libdrivers.a(efuse.o)
931- .debug_line 0x0000000000001f98 0xa7 cpu/m0/libm0.a(cpu.o)
932+.debug_line 0x0000000000000000 0x2078
933+ .debug_line 0x0000000000000000 0x3dd lib/libarm.a(board.o)
934+ .debug_line 0x00000000000003dd 0x152 lib/libarm.a(string.o)
935+ .debug_line 0x000000000000052f 0x299 drivers/libdrivers.a(ddr.o)
936+ .debug_line 0x00000000000007c8 0x112 drivers/libdrivers.a(uart.o)
937+ .debug_line 0x00000000000008da 0x3b8 drivers/libdrivers.a(image.o)
938+ .debug_line 0x0000000000000c92 0x38e drivers/libdrivers.a(secure_verify.o)
939+ .debug_line 0x0000000000001020 0x442 drivers/libdrivers.a(spifc_loader2.o)
940+ .debug_line 0x0000000000001462 0x251 drivers/libdrivers.a(bbt.o)
941+ .debug_line 0x00000000000016b3 0x2bb drivers/libdrivers.a(sha256.o)
942+ .debug_line 0x000000000000196e 0x2a2 drivers/libdrivers.a(nor.o)
943+ .debug_line 0x0000000000001c10 0x88 drivers/libdrivers.a(drv_hash.o)
944+ .debug_line 0x0000000000001c98 0x117 drivers/libdrivers.a(drv_rsa.o)
945+ .debug_line 0x0000000000001daf 0x10a drivers/libdrivers.a(flash.o)
946+ .debug_line 0x0000000000001eb9 0x118 drivers/libdrivers.a(efuse.o)
947+ .debug_line 0x0000000000001fd1 0xa7 cpu/m0/libm0.a(cpu.o)
948
949-.debug_str 0x0000000000000000 0x160a
950- .debug_str 0x0000000000000000 0x55d lib/libarm.a(board.o)
951- 0x5d3 (松开之前的大小)
952- .debug_str 0x000000000000055d 0x3f lib/libarm.a(string.o)
953+.debug_str 0x0000000000000000 0x1616
954+ .debug_str 0x0000000000000000 0x569 lib/libarm.a(board.o)
955+ 0x5df (松开之前的大小)
956+ .debug_str 0x0000000000000569 0x3f lib/libarm.a(string.o)
957 0x214 (松开之前的大小)
958- .debug_str 0x000000000000059c 0xa2 drivers/libdrivers.a(ddr.o)
959+ .debug_str 0x00000000000005a8 0xa2 drivers/libdrivers.a(ddr.o)
960 0x216 (松开之前的大小)
961- .debug_str 0x000000000000063e 0x94 drivers/libdrivers.a(uart.o)
962+ .debug_str 0x000000000000064a 0x94 drivers/libdrivers.a(uart.o)
963 0x253 (松开之前的大小)
964- .debug_str 0x00000000000006d2 0x35b drivers/libdrivers.a(image.o)
965+ .debug_str 0x00000000000006de 0x35b drivers/libdrivers.a(image.o)
966 0x854 (松开之前的大小)
967- .debug_str 0x0000000000000a2d 0x2f9 drivers/libdrivers.a(secure_verify.o)
968+ .debug_str 0x0000000000000a39 0x2f9 drivers/libdrivers.a(secure_verify.o)
969 0x61f (松开之前的大小)
970- .debug_str 0x0000000000000d26 0x3bb drivers/libdrivers.a(spifc_loader2.o)
971+ .debug_str 0x0000000000000d32 0x3bb drivers/libdrivers.a(spifc_loader2.o)
972 0x6c1 (松开之前的大小)
973- .debug_str 0x00000000000010e1 0x103 drivers/libdrivers.a(bbt.o)
974+ .debug_str 0x00000000000010ed 0x103 drivers/libdrivers.a(bbt.o)
975 0x3fe (松开之前的大小)
976- .debug_str 0x00000000000011e4 0xc3 drivers/libdrivers.a(sha256.o)
977+ .debug_str 0x00000000000011f0 0xc3 drivers/libdrivers.a(sha256.o)
978 0x2b7 (松开之前的大小)
979- .debug_str 0x00000000000012a7 0x1ad drivers/libdrivers.a(nor.o)
980+ .debug_str 0x00000000000012b3 0x1ad drivers/libdrivers.a(nor.o)
981 0x5f3 (松开之前的大小)
982- .debug_str 0x0000000000001454 0x87 drivers/libdrivers.a(drv_hash.o)
983+ .debug_str 0x0000000000001460 0x87 drivers/libdrivers.a(drv_hash.o)
984 0x25a (松开之前的大小)
985- .debug_str 0x00000000000014db 0x79 drivers/libdrivers.a(drv_rsa.o)
986+ .debug_str 0x00000000000014e7 0x79 drivers/libdrivers.a(drv_rsa.o)
987 0x29c (松开之前的大小)
988- .debug_str 0x0000000000001554 0x12 drivers/libdrivers.a(flash.o)
989+ .debug_str 0x0000000000001560 0x12 drivers/libdrivers.a(flash.o)
990 0x2a8 (松开之前的大小)
991- .debug_str 0x0000000000001566 0x20 drivers/libdrivers.a(efuse.o)
992+ .debug_str 0x0000000000001572 0x20 drivers/libdrivers.a(efuse.o)
993 0x255 (松开之前的大小)
994- .debug_str 0x0000000000001586 0x84 cpu/m0/libm0.a(cpu.o)
995+ .debug_str 0x0000000000001592 0x84 cpu/m0/libm0.a(cpu.o)
996 0x1f8 (松开之前的大小)
997
998 .debug_frame 0x0000000000000000 0xaf0
999diff --git a/Uboot/boot/prj/zx297520v3/bootrom/dl_on/loader2.bin b/Uboot/boot/prj/zx297520v3/bootrom/dl_on/loader2.bin
1000index e13e6d9..6cf279f 100755
1001--- a/Uboot/boot/prj/zx297520v3/bootrom/dl_on/loader2.bin
1002+++ b/Uboot/boot/prj/zx297520v3/bootrom/dl_on/loader2.bin
1003Binary files differ
1004diff --git a/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load b/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load
1005index 2bc2831..fea89a9 100755
1006--- a/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load
1007+++ b/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load
1008Binary files differ
1009diff --git a/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load.map b/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load.map
1010index 07ae1fd..b4ee310 100755
1011--- a/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load.map
1012+++ b/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load.map
1013@@ -300,20 +300,20 @@
1014 .stabstr 0x0000000000000000 0x67
1015 .stabstr 0x0000000000000000 0x67 cpu/m0/start.o
1016
1017-.debug_info 0x0000000000000000 0x34d2
1018- .debug_info 0x0000000000000000 0x70b lib/libarm.a(board.o)
1019- .debug_info 0x000000000000070b 0x22b lib/libarm.a(string.o)
1020- .debug_info 0x0000000000000936 0x329 drivers/libdrivers.a(ddr.o)
1021- .debug_info 0x0000000000000c5f 0x2a0 drivers/libdrivers.a(uart.o)
1022- .debug_info 0x0000000000000eff 0x6d3 drivers/libdrivers.a(image.o)
1023- .debug_info 0x00000000000015d2 0x1c3 drivers/libdrivers.a(efuse.o)
1024- .debug_info 0x0000000000001795 0x62d drivers/libdrivers.a(secure_verify.o)
1025- .debug_info 0x0000000000001dc2 0xd5f drivers/libdrivers.a(nor.o)
1026- .debug_info 0x0000000000002b21 0x1e8 drivers/libdrivers.a(drv_hash.o)
1027- .debug_info 0x0000000000002d09 0x3b4 drivers/libdrivers.a(drv_rsa.o)
1028- .debug_info 0x00000000000030bd 0x20f drivers/libdrivers.a(flash.o)
1029- .debug_info 0x00000000000032cc 0x17b cpu/m0/libm0.a(cpu.o)
1030- .debug_info 0x0000000000003447 0x8b cpu/m0/libm0.a(clk.o)
1031+.debug_info 0x0000000000000000 0x34df
1032+ .debug_info 0x0000000000000000 0x718 lib/libarm.a(board.o)
1033+ .debug_info 0x0000000000000718 0x22b lib/libarm.a(string.o)
1034+ .debug_info 0x0000000000000943 0x329 drivers/libdrivers.a(ddr.o)
1035+ .debug_info 0x0000000000000c6c 0x2a0 drivers/libdrivers.a(uart.o)
1036+ .debug_info 0x0000000000000f0c 0x6d3 drivers/libdrivers.a(image.o)
1037+ .debug_info 0x00000000000015df 0x1c3 drivers/libdrivers.a(efuse.o)
1038+ .debug_info 0x00000000000017a2 0x62d drivers/libdrivers.a(secure_verify.o)
1039+ .debug_info 0x0000000000001dcf 0xd5f drivers/libdrivers.a(nor.o)
1040+ .debug_info 0x0000000000002b2e 0x1e8 drivers/libdrivers.a(drv_hash.o)
1041+ .debug_info 0x0000000000002d16 0x3b4 drivers/libdrivers.a(drv_rsa.o)
1042+ .debug_info 0x00000000000030ca 0x20f drivers/libdrivers.a(flash.o)
1043+ .debug_info 0x00000000000032d9 0x17b cpu/m0/libm0.a(cpu.o)
1044+ .debug_info 0x0000000000003454 0x8b cpu/m0/libm0.a(clk.o)
1045
1046 .debug_abbrev 0x0000000000000000 0x12c2
1047 .debug_abbrev 0x0000000000000000 0x2b8 lib/libarm.a(board.o)
1048@@ -395,32 +395,32 @@
1049 .debug_line 0x000000000000131d 0xa7 cpu/m0/libm0.a(cpu.o)
1050 .debug_line 0x00000000000013c4 0x61 cpu/m0/libm0.a(clk.o)
1051
1052-.debug_str 0x0000000000000000 0xebb
1053- .debug_str 0x0000000000000000 0x4d5 lib/libarm.a(board.o)
1054- 0x554 (松开之前的大小)
1055- .debug_str 0x00000000000004d5 0x4c lib/libarm.a(string.o)
1056+.debug_str 0x0000000000000000 0xec7
1057+ .debug_str 0x0000000000000000 0x4e1 lib/libarm.a(board.o)
1058+ 0x560 (松开之前的大小)
1059+ .debug_str 0x00000000000004e1 0x4c lib/libarm.a(string.o)
1060 0x214 (松开之前的大小)
1061- .debug_str 0x0000000000000521 0xa1 drivers/libdrivers.a(ddr.o)
1062+ .debug_str 0x000000000000052d 0xa1 drivers/libdrivers.a(ddr.o)
1063 0x216 (松开之前的大小)
1064- .debug_str 0x00000000000005c2 0x8a drivers/libdrivers.a(uart.o)
1065+ .debug_str 0x00000000000005ce 0x8a drivers/libdrivers.a(uart.o)
1066 0x253 (松开之前的大小)
1067- .debug_str 0x000000000000064c 0x229 drivers/libdrivers.a(image.o)
1068+ .debug_str 0x0000000000000658 0x229 drivers/libdrivers.a(image.o)
1069 0x4a0 (松开之前的大小)
1070- .debug_str 0x0000000000000875 0x7b drivers/libdrivers.a(efuse.o)
1071+ .debug_str 0x0000000000000881 0x7b drivers/libdrivers.a(efuse.o)
1072 0x255 (松开之前的大小)
1073- .debug_str 0x00000000000008f0 0x177 drivers/libdrivers.a(secure_verify.o)
1074+ .debug_str 0x00000000000008fc 0x177 drivers/libdrivers.a(secure_verify.o)
1075 0x407 (松开之前的大小)
1076- .debug_str 0x0000000000000a67 0x2c3 drivers/libdrivers.a(nor.o)
1077+ .debug_str 0x0000000000000a73 0x2c3 drivers/libdrivers.a(nor.o)
1078 0x5f3 (松开之前的大小)
1079- .debug_str 0x0000000000000d2a 0x87 drivers/libdrivers.a(drv_hash.o)
1080+ .debug_str 0x0000000000000d36 0x87 drivers/libdrivers.a(drv_hash.o)
1081 0x25a (松开之前的大小)
1082- .debug_str 0x0000000000000db1 0x79 drivers/libdrivers.a(drv_rsa.o)
1083+ .debug_str 0x0000000000000dbd 0x79 drivers/libdrivers.a(drv_rsa.o)
1084 0x29c (松开之前的大小)
1085- .debug_str 0x0000000000000e2a 0x12 drivers/libdrivers.a(flash.o)
1086+ .debug_str 0x0000000000000e36 0x12 drivers/libdrivers.a(flash.o)
1087 0x2a8 (松开之前的大小)
1088- .debug_str 0x0000000000000e3c 0x79 cpu/m0/libm0.a(cpu.o)
1089+ .debug_str 0x0000000000000e48 0x79 cpu/m0/libm0.a(cpu.o)
1090 0x1f8 (松开之前的大小)
1091- .debug_str 0x0000000000000eb5 0x6 cpu/m0/libm0.a(clk.o)
1092+ .debug_str 0x0000000000000ec1 0x6 cpu/m0/libm0.a(clk.o)
1093 0x1bd (松开之前的大小)
1094
1095 .debug_frame 0x0000000000000000 0x6a0
1096diff --git a/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load2 b/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load2
1097index aa9d47a..88a41ea 100755
1098--- a/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load2
1099+++ b/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load2
1100Binary files differ
1101diff --git a/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load2.map b/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load2.map
1102index 0163e41..c906aa5 100755
1103--- a/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load2.map
1104+++ b/Uboot/boot/prj/zx297520v3/bootrom/dl_on/z-load2.map
1105@@ -34,7 +34,7 @@
1106 0x0000000000000000 . = 0x0
1107 0x0000000000000000 . = ALIGN (0x4)
1108
1109-.text 0x0000000020300000 0x4ddc
1110+.text 0x0000000020300000 0x4ea4
1111 cpu/m0/start.o(.text)
1112 .text 0x0000000020300000 0x220 cpu/m0/start.o
1113 0x00000000203001a4 _bss_start
1114@@ -44,7 +44,7 @@
1115 0x00000000203001b8 _start
1116 0x00000000203001fe run_at
1117 *(.text)
1118- .text 0x0000000020300220 0x4ec lib/libarm.a(board.o)
1119+ .text 0x0000000020300220 0x5b4 lib/libarm.a(board.o)
1120 0x0000000020300220 print_info
1121 0x0000000020300230 copy_to_iram1
1122 0x0000000020300250 clear_iram
1123@@ -55,201 +55,201 @@
1124 0x0000000020300338 pmu_read
1125 0x0000000020300404 pmu_write
1126 0x00000000203004d0 start_armboot
1127- .text 0x000000002030070c 0x80 lib/libarm.a(string.o)
1128- 0x000000002030070c strlen
1129- 0x000000002030071c memset
1130- 0x000000002030075e memcmp
1131- 0x000000002030077a memcpy
1132- .text 0x000000002030078c 0x82c drivers/libdrivers.a(ddr.o)
1133- 0x000000002030078c nsdelay
1134- 0x00000000203007a6 ddr_clk_init
1135- 0x00000000203007bc ddr_phy_init
1136- 0x00000000203008b8 ddr_ctrl_init
1137- 0x0000000020300c74 ddr_prio_init
1138- 0x0000000020300d98 ddr_init
1139- .text 0x0000000020300fb8 0x138 drivers/libdrivers.a(uart.o)
1140- 0x0000000020300fb8 uart_init
1141- 0x0000000020301038 uart_putc
1142- 0x0000000020301060 uart_puts
1143- 0x0000000020301074 uart_getc
1144- 0x0000000020301090 uart_tstc
1145- 0x00000000203010a0 UART_Read
1146- 0x00000000203010bc UART_Write
1147- 0x00000000203010d8 UART_Check_Sync
1148- .text 0x00000000203010f0 0x338 drivers/libdrivers.a(image.o)
1149- 0x00000000203010f4 page_align
1150- 0x000000002030110c find_partition_para
1151- 0x000000002030113c read_image_part_offset
1152- 0x0000000020301190 read_flags_image
1153- 0x0000000020301278 read_uboot_image
1154- 0x0000000020301358 nand_read_m0
1155- 0x00000000203013c4 read_zloader_image
1156- .text 0x0000000020301428 0x2b0 drivers/libdrivers.a(secure_verify.o)
1157- 0x0000000020301446 BIG2SMALL
1158- 0x0000000020301476 bin2hex
1159- 0x00000000203014c0 secure_verify_zloader
1160- 0x00000000203015b4 SecureVerify
1161- .text 0x00000000203016d8 0x648 drivers/libdrivers.a(spifc_loader2.o)
1162- 0x00000000203017cc zDrvGpio_SetFunc
1163- 0x0000000020301804 zDrvGpio_SetDirection
1164- 0x0000000020301854 zDrvGpio_SetOutputValue
1165- 0x0000000020301890 spi_nand_cs
1166- 0x00000000203018cc spifc_clear_fifo
1167- 0x00000000203018e0 spifc_clear_int
1168- 0x0000000020301a3c spifc_read_oob
1169- 0x0000000020301a80 spifc_read_page_raw
1170- 0x0000000020301abc spifc_read_page
1171- 0x0000000020301b38 spifc_read
1172- 0x0000000020301b7c read_data
1173- 0x0000000020301bd0 read_id
1174- 0x0000000020301c54 spifc_init
1175- 0x0000000020301cd8 zloader_flash_init
1176- .text 0x0000000020301d20 0x1c0 drivers/libdrivers.a(bbt.o)
1177- 0x0000000020301d80 nand_creat_ram_bbt
1178- 0x0000000020301dc4 nand_search_bbt
1179- 0x0000000020301e50 nand_creat_bbt
1180- 0x0000000020301ecc nand_block_isbad
1181- .text 0x0000000020301ee0 0x2688 drivers/libdrivers.a(sha256.o)
1182- 0x0000000020304400 sha256_starts
1183- 0x0000000020304448 sha256_update
1184- 0x0000000020304454 sha256_finish
1185- 0x0000000020304540 sha256_csum_wd
1186- .text 0x0000000020304568 0x424 drivers/libdrivers.a(nor.o)
1187- 0x0000000020304568 spifc_enable
1188- 0x0000000020304598 spifc_disable
1189- 0x00000000203045bc spifc_setup_cmd
1190- 0x0000000020304640 spifc_wait_cmd_end
1191- 0x000000002030466c spifc_read_fifo
1192- 0x00000000203046a8 spifc_start
1193- 0x00000000203046b8 cmd_seek
1194- 0x00000000203046d8 nor_read_reg
1195- 0x0000000020304738 nor_read_id
1196- 0x00000000203047a0 spi_nor_read
1197- 0x00000000203047fc nor_read
1198- 0x0000000020304850 spi_nor_read_security_register
1199- 0x00000000203048ac nor_read_security_register
1200- 0x0000000020304900 nor_init
1201- 0x0000000020304950 board_flash_init
1202- .text 0x000000002030498c 0xa4 drivers/libdrivers.a(drv_hash.o)
1203- 0x000000002030498c Hash_Calculate
1204- .text 0x0000000020304a30 0x174 drivers/libdrivers.a(drv_rsa.o)
1205- 0x0000000020304a4a Rsa_Calculate
1206- .text 0x0000000020304ba4 0x28 drivers/libdrivers.a(flash.o)
1207- 0x0000000020304ba4 get_boot_mode
1208- .text 0x0000000020304bcc 0x1bc drivers/libdrivers.a(efuse.o)
1209- 0x0000000020304bcc efuse_init
1210- 0x0000000020304bf0 get_ddr_flag
1211- 0x0000000020304d10 get_secure_verify_status
1212- 0x0000000020304d54 get_otp_secure_verify_status
1213- .text 0x0000000020304d88 0x54 cpu/m0/libm0.a(cpu.o)
1214- 0x0000000020304d88 timer_init
1215- 0x0000000020304da0 usdelay
1216+ .text 0x00000000203007d4 0x80 lib/libarm.a(string.o)
1217+ 0x00000000203007d4 strlen
1218+ 0x00000000203007e4 memset
1219+ 0x0000000020300826 memcmp
1220+ 0x0000000020300842 memcpy
1221+ .text 0x0000000020300854 0x82c drivers/libdrivers.a(ddr.o)
1222+ 0x0000000020300854 nsdelay
1223+ 0x000000002030086e ddr_clk_init
1224+ 0x0000000020300884 ddr_phy_init
1225+ 0x0000000020300980 ddr_ctrl_init
1226+ 0x0000000020300d3c ddr_prio_init
1227+ 0x0000000020300e60 ddr_init
1228+ .text 0x0000000020301080 0x138 drivers/libdrivers.a(uart.o)
1229+ 0x0000000020301080 uart_init
1230+ 0x0000000020301100 uart_putc
1231+ 0x0000000020301128 uart_puts
1232+ 0x000000002030113c uart_getc
1233+ 0x0000000020301158 uart_tstc
1234+ 0x0000000020301168 UART_Read
1235+ 0x0000000020301184 UART_Write
1236+ 0x00000000203011a0 UART_Check_Sync
1237+ .text 0x00000000203011b8 0x338 drivers/libdrivers.a(image.o)
1238+ 0x00000000203011bc page_align
1239+ 0x00000000203011d4 find_partition_para
1240+ 0x0000000020301204 read_image_part_offset
1241+ 0x0000000020301258 read_flags_image
1242+ 0x0000000020301340 read_uboot_image
1243+ 0x0000000020301420 nand_read_m0
1244+ 0x000000002030148c read_zloader_image
1245+ .text 0x00000000203014f0 0x2b0 drivers/libdrivers.a(secure_verify.o)
1246+ 0x000000002030150e BIG2SMALL
1247+ 0x000000002030153e bin2hex
1248+ 0x0000000020301588 secure_verify_zloader
1249+ 0x000000002030167c SecureVerify
1250+ .text 0x00000000203017a0 0x648 drivers/libdrivers.a(spifc_loader2.o)
1251+ 0x0000000020301894 zDrvGpio_SetFunc
1252+ 0x00000000203018cc zDrvGpio_SetDirection
1253+ 0x000000002030191c zDrvGpio_SetOutputValue
1254+ 0x0000000020301958 spi_nand_cs
1255+ 0x0000000020301994 spifc_clear_fifo
1256+ 0x00000000203019a8 spifc_clear_int
1257+ 0x0000000020301b04 spifc_read_oob
1258+ 0x0000000020301b48 spifc_read_page_raw
1259+ 0x0000000020301b84 spifc_read_page
1260+ 0x0000000020301c00 spifc_read
1261+ 0x0000000020301c44 read_data
1262+ 0x0000000020301c98 read_id
1263+ 0x0000000020301d1c spifc_init
1264+ 0x0000000020301da0 zloader_flash_init
1265+ .text 0x0000000020301de8 0x1c0 drivers/libdrivers.a(bbt.o)
1266+ 0x0000000020301e48 nand_creat_ram_bbt
1267+ 0x0000000020301e8c nand_search_bbt
1268+ 0x0000000020301f18 nand_creat_bbt
1269+ 0x0000000020301f94 nand_block_isbad
1270+ .text 0x0000000020301fa8 0x2688 drivers/libdrivers.a(sha256.o)
1271+ 0x00000000203044c8 sha256_starts
1272+ 0x0000000020304510 sha256_update
1273+ 0x000000002030451c sha256_finish
1274+ 0x0000000020304608 sha256_csum_wd
1275+ .text 0x0000000020304630 0x424 drivers/libdrivers.a(nor.o)
1276+ 0x0000000020304630 spifc_enable
1277+ 0x0000000020304660 spifc_disable
1278+ 0x0000000020304684 spifc_setup_cmd
1279+ 0x0000000020304708 spifc_wait_cmd_end
1280+ 0x0000000020304734 spifc_read_fifo
1281+ 0x0000000020304770 spifc_start
1282+ 0x0000000020304780 cmd_seek
1283+ 0x00000000203047a0 nor_read_reg
1284+ 0x0000000020304800 nor_read_id
1285+ 0x0000000020304868 spi_nor_read
1286+ 0x00000000203048c4 nor_read
1287+ 0x0000000020304918 spi_nor_read_security_register
1288+ 0x0000000020304974 nor_read_security_register
1289+ 0x00000000203049c8 nor_init
1290+ 0x0000000020304a18 board_flash_init
1291+ .text 0x0000000020304a54 0xa4 drivers/libdrivers.a(drv_hash.o)
1292+ 0x0000000020304a54 Hash_Calculate
1293+ .text 0x0000000020304af8 0x174 drivers/libdrivers.a(drv_rsa.o)
1294+ 0x0000000020304b12 Rsa_Calculate
1295+ .text 0x0000000020304c6c 0x28 drivers/libdrivers.a(flash.o)
1296+ 0x0000000020304c6c get_boot_mode
1297+ .text 0x0000000020304c94 0x1bc drivers/libdrivers.a(efuse.o)
1298+ 0x0000000020304c94 efuse_init
1299+ 0x0000000020304cb8 get_ddr_flag
1300+ 0x0000000020304dd8 get_secure_verify_status
1301+ 0x0000000020304e1c get_otp_secure_verify_status
1302+ .text 0x0000000020304e50 0x54 cpu/m0/libm0.a(cpu.o)
1303+ 0x0000000020304e50 timer_init
1304+ 0x0000000020304e68 usdelay
1305
1306-.glue_7 0x0000000020304ddc 0x0
1307+.glue_7 0x0000000020304ea4 0x0
1308 .glue_7 0x0000000000000000 0x0 linker stubs
1309
1310-.glue_7t 0x0000000020304ddc 0x0
1311+.glue_7t 0x0000000020304ea4 0x0
1312 .glue_7t 0x0000000000000000 0x0 linker stubs
1313
1314-.vfp11_veneer 0x0000000020304ddc 0x0
1315+.vfp11_veneer 0x0000000020304ea4 0x0
1316 .vfp11_veneer 0x0000000000000000 0x0 linker stubs
1317
1318-.v4_bx 0x0000000020304ddc 0x0
1319+.v4_bx 0x0000000020304ea4 0x0
1320 .v4_bx 0x0000000000000000 0x0 linker stubs
1321
1322-.iplt 0x0000000020304ddc 0x0
1323+.iplt 0x0000000020304ea4 0x0
1324 .iplt 0x0000000000000000 0x0 cpu/m0/start.o
1325- 0x0000000020304ddc . = ALIGN (0x4)
1326+ 0x0000000020304ea4 . = ALIGN (0x4)
1327
1328-.rodata 0x0000000020304ddc 0x3f0
1329+.rodata 0x0000000020304ea4 0x3f0
1330 *(.rodata)
1331- .rodata 0x0000000020304ddc 0x270 drivers/libdrivers.a(spifc_loader2.o)
1332- .rodata 0x000000002030504c 0x13 drivers/libdrivers.a(sha256.o)
1333- 0x000000002030504c sha256_der_prefix
1334- *fill* 0x000000002030505f 0x1
1335- .rodata 0x0000000020305060 0x16c drivers/libdrivers.a(nor.o)
1336+ .rodata 0x0000000020304ea4 0x270 drivers/libdrivers.a(spifc_loader2.o)
1337+ .rodata 0x0000000020305114 0x13 drivers/libdrivers.a(sha256.o)
1338+ 0x0000000020305114 sha256_der_prefix
1339+ *fill* 0x0000000020305127 0x1
1340+ .rodata 0x0000000020305128 0x16c drivers/libdrivers.a(nor.o)
1341
1342-.rodata.str1.1 0x00000000203051cc 0x48d
1343+.rodata.str1.1 0x0000000020305294 0x516
1344 .rodata.str1.1
1345- 0x00000000203051cc 0x18a lib/libarm.a(board.o)
1346- 0x1a3 (松开之前的大小)
1347+ 0x0000000020305294 0x213 lib/libarm.a(board.o)
1348+ 0x24e (松开之前的大小)
1349 .rodata.str1.1
1350- 0x0000000020305356 0xef drivers/libdrivers.a(image.o)
1351+ 0x00000000203054a7 0xef drivers/libdrivers.a(image.o)
1352 0x115 (松开之前的大小)
1353 .rodata.str1.1
1354- 0x0000000020305445 0x5b drivers/libdrivers.a(secure_verify.o)
1355+ 0x0000000020305596 0x5b drivers/libdrivers.a(secure_verify.o)
1356 0x5d (松开之前的大小)
1357 .rodata.str1.1
1358- 0x00000000203054a0 0x3d drivers/libdrivers.a(spifc_loader2.o)
1359+ 0x00000000203055f1 0x3d drivers/libdrivers.a(spifc_loader2.o)
1360 0x4a (松开之前的大小)
1361 .rodata.str1.1
1362- 0x00000000203054dd 0x9 drivers/libdrivers.a(bbt.o)
1363+ 0x000000002030562e 0x9 drivers/libdrivers.a(bbt.o)
1364 .rodata.str1.1
1365- 0x00000000203054e6 0x15c drivers/libdrivers.a(nor.o)
1366+ 0x0000000020305637 0x15c drivers/libdrivers.a(nor.o)
1367 .rodata.str1.1
1368- 0x0000000020305642 0x17 drivers/libdrivers.a(efuse.o)
1369+ 0x0000000020305793 0x17 drivers/libdrivers.a(efuse.o)
1370
1371-.rel.dyn 0x000000002030565c 0x0
1372+.rel.dyn 0x00000000203057ac 0x0
1373 .rel.iplt 0x0000000000000000 0x0 cpu/m0/start.o
1374- 0x000000002030565c . = ALIGN (0x4)
1375+ 0x00000000203057ac . = ALIGN (0x4)
1376
1377-.data 0x000000002030565c 0xd0
1378+.data 0x00000000203057ac 0xd0
1379 *(.data)
1380- .data 0x000000002030565c 0x0 cpu/m0/start.o
1381- .data 0x000000002030565c 0x0 lib/libarm.a(board.o)
1382- .data 0x000000002030565c 0x0 lib/libarm.a(string.o)
1383- .data 0x000000002030565c 0x0 drivers/libdrivers.a(ddr.o)
1384- .data 0x000000002030565c 0x0 drivers/libdrivers.a(uart.o)
1385- .data 0x000000002030565c 0x0 drivers/libdrivers.a(image.o)
1386- .data 0x000000002030565c 0x0 drivers/libdrivers.a(secure_verify.o)
1387- .data 0x000000002030565c 0x0 drivers/libdrivers.a(spifc_loader2.o)
1388- .data 0x000000002030565c 0x40 drivers/libdrivers.a(bbt.o)
1389- .data 0x000000002030569c 0x40 drivers/libdrivers.a(sha256.o)
1390- .data 0x00000000203056dc 0x50 drivers/libdrivers.a(nor.o)
1391- 0x00000000203056dc nor_cmd_table
1392- .data 0x000000002030572c 0x0 drivers/libdrivers.a(drv_hash.o)
1393- .data 0x000000002030572c 0x0 drivers/libdrivers.a(drv_rsa.o)
1394- .data 0x000000002030572c 0x0 drivers/libdrivers.a(flash.o)
1395- .data 0x000000002030572c 0x0 drivers/libdrivers.a(efuse.o)
1396- .data 0x000000002030572c 0x0 cpu/m0/libm0.a(cpu.o)
1397+ .data 0x00000000203057ac 0x0 cpu/m0/start.o
1398+ .data 0x00000000203057ac 0x0 lib/libarm.a(board.o)
1399+ .data 0x00000000203057ac 0x0 lib/libarm.a(string.o)
1400+ .data 0x00000000203057ac 0x0 drivers/libdrivers.a(ddr.o)
1401+ .data 0x00000000203057ac 0x0 drivers/libdrivers.a(uart.o)
1402+ .data 0x00000000203057ac 0x0 drivers/libdrivers.a(image.o)
1403+ .data 0x00000000203057ac 0x0 drivers/libdrivers.a(secure_verify.o)
1404+ .data 0x00000000203057ac 0x0 drivers/libdrivers.a(spifc_loader2.o)
1405+ .data 0x00000000203057ac 0x40 drivers/libdrivers.a(bbt.o)
1406+ .data 0x00000000203057ec 0x40 drivers/libdrivers.a(sha256.o)
1407+ .data 0x000000002030582c 0x50 drivers/libdrivers.a(nor.o)
1408+ 0x000000002030582c nor_cmd_table
1409+ .data 0x000000002030587c 0x0 drivers/libdrivers.a(drv_hash.o)
1410+ .data 0x000000002030587c 0x0 drivers/libdrivers.a(drv_rsa.o)
1411+ .data 0x000000002030587c 0x0 drivers/libdrivers.a(flash.o)
1412+ .data 0x000000002030587c 0x0 drivers/libdrivers.a(efuse.o)
1413+ .data 0x000000002030587c 0x0 cpu/m0/libm0.a(cpu.o)
1414
1415-.igot.plt 0x000000002030572c 0x0
1416+.igot.plt 0x000000002030587c 0x0
1417 .igot.plt 0x0000000000000000 0x0 cpu/m0/start.o
1418- 0x000000002030572c . = ALIGN (0x4)
1419+ 0x000000002030587c . = ALIGN (0x4)
1420
1421 .got
1422 *(.got)
1423- 0x000000002030572c . = ALIGN (0x4)
1424- 0x000000002030572c __bss_start = .
1425+ 0x000000002030587c . = ALIGN (0x4)
1426+ 0x000000002030587c __bss_start = .
1427
1428-.bss 0x000000002030572c 0x1e8
1429+.bss 0x000000002030587c 0x1e8
1430 *(.bss)
1431- .bss 0x000000002030572c 0x0 cpu/m0/start.o
1432- .bss 0x000000002030572c 0x4 lib/libarm.a(board.o)
1433- 0x000000002030572c zloader_entry_point
1434- .bss 0x0000000020305730 0x0 lib/libarm.a(string.o)
1435- .bss 0x0000000020305730 0x0 drivers/libdrivers.a(ddr.o)
1436- .bss 0x0000000020305730 0x0 drivers/libdrivers.a(uart.o)
1437- .bss 0x0000000020305730 0x0 drivers/libdrivers.a(image.o)
1438- .bss 0x0000000020305730 0x104 drivers/libdrivers.a(secure_verify.o)
1439- 0x0000000020305730 result
1440- .bss 0x0000000020305834 0x4 drivers/libdrivers.a(spifc_loader2.o)
1441- .bss 0x0000000020305838 0x80 drivers/libdrivers.a(bbt.o)
1442- .bss 0x00000000203058b8 0x0 drivers/libdrivers.a(sha256.o)
1443- .bss 0x00000000203058b8 0x28 drivers/libdrivers.a(nor.o)
1444- 0x00000000203058b8 spi_nor_flash
1445- 0x00000000203058bc otp_data
1446- .bss 0x00000000203058e0 0x0 drivers/libdrivers.a(drv_hash.o)
1447- .bss 0x00000000203058e0 0x0 drivers/libdrivers.a(drv_rsa.o)
1448- .bss 0x00000000203058e0 0x24 drivers/libdrivers.a(flash.o)
1449- 0x00000000203058e0 flash
1450- .bss 0x0000000020305904 0x0 drivers/libdrivers.a(efuse.o)
1451- .bss 0x0000000020305904 0x10 cpu/m0/libm0.a(cpu.o)
1452- 0x0000000020305904 g_tick
1453- 0x0000000020305914 __bss_end = .
1454- 0x0000000020305914 . = ALIGN (0x4)
1455+ .bss 0x000000002030587c 0x0 cpu/m0/start.o
1456+ .bss 0x000000002030587c 0x4 lib/libarm.a(board.o)
1457+ 0x000000002030587c zloader_entry_point
1458+ .bss 0x0000000020305880 0x0 lib/libarm.a(string.o)
1459+ .bss 0x0000000020305880 0x0 drivers/libdrivers.a(ddr.o)
1460+ .bss 0x0000000020305880 0x0 drivers/libdrivers.a(uart.o)
1461+ .bss 0x0000000020305880 0x0 drivers/libdrivers.a(image.o)
1462+ .bss 0x0000000020305880 0x104 drivers/libdrivers.a(secure_verify.o)
1463+ 0x0000000020305880 result
1464+ .bss 0x0000000020305984 0x4 drivers/libdrivers.a(spifc_loader2.o)
1465+ .bss 0x0000000020305988 0x80 drivers/libdrivers.a(bbt.o)
1466+ .bss 0x0000000020305a08 0x0 drivers/libdrivers.a(sha256.o)
1467+ .bss 0x0000000020305a08 0x28 drivers/libdrivers.a(nor.o)
1468+ 0x0000000020305a08 spi_nor_flash
1469+ 0x0000000020305a0c otp_data
1470+ .bss 0x0000000020305a30 0x0 drivers/libdrivers.a(drv_hash.o)
1471+ .bss 0x0000000020305a30 0x0 drivers/libdrivers.a(drv_rsa.o)
1472+ .bss 0x0000000020305a30 0x24 drivers/libdrivers.a(flash.o)
1473+ 0x0000000020305a30 flash
1474+ .bss 0x0000000020305a54 0x0 drivers/libdrivers.a(efuse.o)
1475+ .bss 0x0000000020305a54 0x10 cpu/m0/libm0.a(cpu.o)
1476+ 0x0000000020305a54 g_tick
1477+ 0x0000000020305a64 __bss_end = .
1478+ 0x0000000020305a64 . = ALIGN (0x4)
1479
1480-.para 0x0000000082000000 0x0 加载地址 0x0000000020305914
1481+.para 0x0000000082000000 0x0 加载地址 0x0000000020305a64
1482 0x0000000082000000 __para_start = .
1483 *(.para)
1484 0x0000000082000000 __para_end = .
1485@@ -356,22 +356,22 @@
1486 .stabstr 0x0000000000000000 0x67
1487 .stabstr 0x0000000000000000 0x67 cpu/m0/start.o
1488
1489-.debug_info 0x0000000000000000 0x65ab
1490- .debug_info 0x0000000000000000 0x9a2 lib/libarm.a(board.o)
1491- .debug_info 0x00000000000009a2 0x22b lib/libarm.a(string.o)
1492- .debug_info 0x0000000000000bcd 0x329 drivers/libdrivers.a(ddr.o)
1493- .debug_info 0x0000000000000ef6 0x2a0 drivers/libdrivers.a(uart.o)
1494- .debug_info 0x0000000000001196 0xdd6 drivers/libdrivers.a(image.o)
1495- .debug_info 0x0000000000001f6c 0xb01 drivers/libdrivers.a(secure_verify.o)
1496- .debug_info 0x0000000000002a6d 0x1661 drivers/libdrivers.a(spifc_loader2.o)
1497- .debug_info 0x00000000000040ce 0x70f drivers/libdrivers.a(bbt.o)
1498- .debug_info 0x00000000000047dd 0x586 drivers/libdrivers.a(sha256.o)
1499- .debug_info 0x0000000000004d63 0xd5f drivers/libdrivers.a(nor.o)
1500- .debug_info 0x0000000000005ac2 0x1e8 drivers/libdrivers.a(drv_hash.o)
1501- .debug_info 0x0000000000005caa 0x3b4 drivers/libdrivers.a(drv_rsa.o)
1502- .debug_info 0x000000000000605e 0x20f drivers/libdrivers.a(flash.o)
1503- .debug_info 0x000000000000626d 0x1c3 drivers/libdrivers.a(efuse.o)
1504- .debug_info 0x0000000000006430 0x17b cpu/m0/libm0.a(cpu.o)
1505+.debug_info 0x0000000000000000 0x66af
1506+ .debug_info 0x0000000000000000 0xaa6 lib/libarm.a(board.o)
1507+ .debug_info 0x0000000000000aa6 0x22b lib/libarm.a(string.o)
1508+ .debug_info 0x0000000000000cd1 0x329 drivers/libdrivers.a(ddr.o)
1509+ .debug_info 0x0000000000000ffa 0x2a0 drivers/libdrivers.a(uart.o)
1510+ .debug_info 0x000000000000129a 0xdd6 drivers/libdrivers.a(image.o)
1511+ .debug_info 0x0000000000002070 0xb01 drivers/libdrivers.a(secure_verify.o)
1512+ .debug_info 0x0000000000002b71 0x1661 drivers/libdrivers.a(spifc_loader2.o)
1513+ .debug_info 0x00000000000041d2 0x70f drivers/libdrivers.a(bbt.o)
1514+ .debug_info 0x00000000000048e1 0x586 drivers/libdrivers.a(sha256.o)
1515+ .debug_info 0x0000000000004e67 0xd5f drivers/libdrivers.a(nor.o)
1516+ .debug_info 0x0000000000005bc6 0x1e8 drivers/libdrivers.a(drv_hash.o)
1517+ .debug_info 0x0000000000005dae 0x3b4 drivers/libdrivers.a(drv_rsa.o)
1518+ .debug_info 0x0000000000006162 0x20f drivers/libdrivers.a(flash.o)
1519+ .debug_info 0x0000000000006371 0x1c3 drivers/libdrivers.a(efuse.o)
1520+ .debug_info 0x0000000000006534 0x17b cpu/m0/libm0.a(cpu.o)
1521
1522 .debug_abbrev 0x0000000000000000 0x1c94
1523 .debug_abbrev 0x0000000000000000 0x304 lib/libarm.a(board.o)
1524@@ -390,22 +390,22 @@
1525 .debug_abbrev 0x0000000000001aaf 0x11d drivers/libdrivers.a(efuse.o)
1526 .debug_abbrev 0x0000000000001bcc 0xc8 cpu/m0/libm0.a(cpu.o)
1527
1528-.debug_loc 0x0000000000000000 0x9737
1529- .debug_loc 0x0000000000000000 0x345 lib/libarm.a(board.o)
1530- .debug_loc 0x0000000000000345 0x29d lib/libarm.a(string.o)
1531- .debug_loc 0x00000000000005e2 0x2d8 drivers/libdrivers.a(ddr.o)
1532- .debug_loc 0x00000000000008ba 0x228 drivers/libdrivers.a(uart.o)
1533- .debug_loc 0x0000000000000ae2 0x6a2 drivers/libdrivers.a(image.o)
1534- .debug_loc 0x0000000000001184 0x790 drivers/libdrivers.a(secure_verify.o)
1535- .debug_loc 0x0000000000001914 0xef4 drivers/libdrivers.a(spifc_loader2.o)
1536- .debug_loc 0x0000000000002808 0x282 drivers/libdrivers.a(bbt.o)
1537- .debug_loc 0x0000000000002a8a 0x5f3f drivers/libdrivers.a(sha256.o)
1538- .debug_loc 0x00000000000089c9 0x80a drivers/libdrivers.a(nor.o)
1539- .debug_loc 0x00000000000091d3 0x1b8 drivers/libdrivers.a(drv_hash.o)
1540- .debug_loc 0x000000000000938b 0x238 drivers/libdrivers.a(drv_rsa.o)
1541- .debug_loc 0x00000000000095c3 0x1f drivers/libdrivers.a(flash.o)
1542- .debug_loc 0x00000000000095e2 0xab drivers/libdrivers.a(efuse.o)
1543- .debug_loc 0x000000000000968d 0xaa cpu/m0/libm0.a(cpu.o)
1544+.debug_loc 0x0000000000000000 0x9807
1545+ .debug_loc 0x0000000000000000 0x415 lib/libarm.a(board.o)
1546+ .debug_loc 0x0000000000000415 0x29d lib/libarm.a(string.o)
1547+ .debug_loc 0x00000000000006b2 0x2d8 drivers/libdrivers.a(ddr.o)
1548+ .debug_loc 0x000000000000098a 0x228 drivers/libdrivers.a(uart.o)
1549+ .debug_loc 0x0000000000000bb2 0x6a2 drivers/libdrivers.a(image.o)
1550+ .debug_loc 0x0000000000001254 0x790 drivers/libdrivers.a(secure_verify.o)
1551+ .debug_loc 0x00000000000019e4 0xef4 drivers/libdrivers.a(spifc_loader2.o)
1552+ .debug_loc 0x00000000000028d8 0x282 drivers/libdrivers.a(bbt.o)
1553+ .debug_loc 0x0000000000002b5a 0x5f3f drivers/libdrivers.a(sha256.o)
1554+ .debug_loc 0x0000000000008a99 0x80a drivers/libdrivers.a(nor.o)
1555+ .debug_loc 0x00000000000092a3 0x1b8 drivers/libdrivers.a(drv_hash.o)
1556+ .debug_loc 0x000000000000945b 0x238 drivers/libdrivers.a(drv_rsa.o)
1557+ .debug_loc 0x0000000000009693 0x1f drivers/libdrivers.a(flash.o)
1558+ .debug_loc 0x00000000000096b2 0xab drivers/libdrivers.a(efuse.o)
1559+ .debug_loc 0x000000000000975d 0xaa cpu/m0/libm0.a(cpu.o)
1560
1561 .debug_aranges 0x0000000000000000 0x1e0
1562 .debug_aranges
1563@@ -449,53 +449,53 @@
1564 .debug_ranges 0x00000000000001d8 0x28 drivers/libdrivers.a(drv_hash.o)
1565 .debug_ranges 0x0000000000000200 0x38 drivers/libdrivers.a(drv_rsa.o)
1566
1567-.debug_line 0x0000000000000000 0x203f
1568- .debug_line 0x0000000000000000 0x3a4 lib/libarm.a(board.o)
1569- .debug_line 0x00000000000003a4 0x152 lib/libarm.a(string.o)
1570- .debug_line 0x00000000000004f6 0x299 drivers/libdrivers.a(ddr.o)
1571- .debug_line 0x000000000000078f 0x112 drivers/libdrivers.a(uart.o)
1572- .debug_line 0x00000000000008a1 0x3b8 drivers/libdrivers.a(image.o)
1573- .debug_line 0x0000000000000c59 0x38e drivers/libdrivers.a(secure_verify.o)
1574- .debug_line 0x0000000000000fe7 0x442 drivers/libdrivers.a(spifc_loader2.o)
1575- .debug_line 0x0000000000001429 0x251 drivers/libdrivers.a(bbt.o)
1576- .debug_line 0x000000000000167a 0x2bb drivers/libdrivers.a(sha256.o)
1577- .debug_line 0x0000000000001935 0x2a2 drivers/libdrivers.a(nor.o)
1578- .debug_line 0x0000000000001bd7 0x88 drivers/libdrivers.a(drv_hash.o)
1579- .debug_line 0x0000000000001c5f 0x117 drivers/libdrivers.a(drv_rsa.o)
1580- .debug_line 0x0000000000001d76 0x10a drivers/libdrivers.a(flash.o)
1581- .debug_line 0x0000000000001e80 0x118 drivers/libdrivers.a(efuse.o)
1582- .debug_line 0x0000000000001f98 0xa7 cpu/m0/libm0.a(cpu.o)
1583+.debug_line 0x0000000000000000 0x2078
1584+ .debug_line 0x0000000000000000 0x3dd lib/libarm.a(board.o)
1585+ .debug_line 0x00000000000003dd 0x152 lib/libarm.a(string.o)
1586+ .debug_line 0x000000000000052f 0x299 drivers/libdrivers.a(ddr.o)
1587+ .debug_line 0x00000000000007c8 0x112 drivers/libdrivers.a(uart.o)
1588+ .debug_line 0x00000000000008da 0x3b8 drivers/libdrivers.a(image.o)
1589+ .debug_line 0x0000000000000c92 0x38e drivers/libdrivers.a(secure_verify.o)
1590+ .debug_line 0x0000000000001020 0x442 drivers/libdrivers.a(spifc_loader2.o)
1591+ .debug_line 0x0000000000001462 0x251 drivers/libdrivers.a(bbt.o)
1592+ .debug_line 0x00000000000016b3 0x2bb drivers/libdrivers.a(sha256.o)
1593+ .debug_line 0x000000000000196e 0x2a2 drivers/libdrivers.a(nor.o)
1594+ .debug_line 0x0000000000001c10 0x88 drivers/libdrivers.a(drv_hash.o)
1595+ .debug_line 0x0000000000001c98 0x117 drivers/libdrivers.a(drv_rsa.o)
1596+ .debug_line 0x0000000000001daf 0x10a drivers/libdrivers.a(flash.o)
1597+ .debug_line 0x0000000000001eb9 0x118 drivers/libdrivers.a(efuse.o)
1598+ .debug_line 0x0000000000001fd1 0xa7 cpu/m0/libm0.a(cpu.o)
1599
1600-.debug_str 0x0000000000000000 0x160a
1601- .debug_str 0x0000000000000000 0x55d lib/libarm.a(board.o)
1602- 0x5d3 (松开之前的大小)
1603- .debug_str 0x000000000000055d 0x3f lib/libarm.a(string.o)
1604+.debug_str 0x0000000000000000 0x1616
1605+ .debug_str 0x0000000000000000 0x569 lib/libarm.a(board.o)
1606+ 0x5df (松开之前的大小)
1607+ .debug_str 0x0000000000000569 0x3f lib/libarm.a(string.o)
1608 0x214 (松开之前的大小)
1609- .debug_str 0x000000000000059c 0xa2 drivers/libdrivers.a(ddr.o)
1610+ .debug_str 0x00000000000005a8 0xa2 drivers/libdrivers.a(ddr.o)
1611 0x216 (松开之前的大小)
1612- .debug_str 0x000000000000063e 0x94 drivers/libdrivers.a(uart.o)
1613+ .debug_str 0x000000000000064a 0x94 drivers/libdrivers.a(uart.o)
1614 0x253 (松开之前的大小)
1615- .debug_str 0x00000000000006d2 0x35b drivers/libdrivers.a(image.o)
1616+ .debug_str 0x00000000000006de 0x35b drivers/libdrivers.a(image.o)
1617 0x854 (松开之前的大小)
1618- .debug_str 0x0000000000000a2d 0x2f9 drivers/libdrivers.a(secure_verify.o)
1619+ .debug_str 0x0000000000000a39 0x2f9 drivers/libdrivers.a(secure_verify.o)
1620 0x61f (松开之前的大小)
1621- .debug_str 0x0000000000000d26 0x3bb drivers/libdrivers.a(spifc_loader2.o)
1622+ .debug_str 0x0000000000000d32 0x3bb drivers/libdrivers.a(spifc_loader2.o)
1623 0x6c1 (松开之前的大小)
1624- .debug_str 0x00000000000010e1 0x103 drivers/libdrivers.a(bbt.o)
1625+ .debug_str 0x00000000000010ed 0x103 drivers/libdrivers.a(bbt.o)
1626 0x3fe (松开之前的大小)
1627- .debug_str 0x00000000000011e4 0xc3 drivers/libdrivers.a(sha256.o)
1628+ .debug_str 0x00000000000011f0 0xc3 drivers/libdrivers.a(sha256.o)
1629 0x2b7 (松开之前的大小)
1630- .debug_str 0x00000000000012a7 0x1ad drivers/libdrivers.a(nor.o)
1631+ .debug_str 0x00000000000012b3 0x1ad drivers/libdrivers.a(nor.o)
1632 0x5f3 (松开之前的大小)
1633- .debug_str 0x0000000000001454 0x87 drivers/libdrivers.a(drv_hash.o)
1634+ .debug_str 0x0000000000001460 0x87 drivers/libdrivers.a(drv_hash.o)
1635 0x25a (松开之前的大小)
1636- .debug_str 0x00000000000014db 0x79 drivers/libdrivers.a(drv_rsa.o)
1637+ .debug_str 0x00000000000014e7 0x79 drivers/libdrivers.a(drv_rsa.o)
1638 0x29c (松开之前的大小)
1639- .debug_str 0x0000000000001554 0x12 drivers/libdrivers.a(flash.o)
1640+ .debug_str 0x0000000000001560 0x12 drivers/libdrivers.a(flash.o)
1641 0x2a8 (松开之前的大小)
1642- .debug_str 0x0000000000001566 0x20 drivers/libdrivers.a(efuse.o)
1643+ .debug_str 0x0000000000001572 0x20 drivers/libdrivers.a(efuse.o)
1644 0x255 (松开之前的大小)
1645- .debug_str 0x0000000000001586 0x84 cpu/m0/libm0.a(cpu.o)
1646+ .debug_str 0x0000000000001592 0x84 cpu/m0/libm0.a(cpu.o)
1647 0x1f8 (松开之前的大小)
1648
1649 .debug_frame 0x0000000000000000 0xaf0
1650diff --git a/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/loader2.bin b/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/loader2.bin
1651index 16a20a9..dc24875 100755
1652--- a/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/loader2.bin
1653+++ b/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/loader2.bin
1654Binary files differ
1655diff --git a/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load b/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load
1656index 0134c20..449447a 100755
1657--- a/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load
1658+++ b/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load
1659Binary files differ
1660diff --git a/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load.map b/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load.map
1661index 72c0ac3..71722dc 100755
1662--- a/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load.map
1663+++ b/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load.map
1664@@ -300,20 +300,20 @@
1665 .stabstr 0x0000000000000000 0x67
1666 .stabstr 0x0000000000000000 0x67 cpu/m0/start.o
1667
1668-.debug_info 0x0000000000000000 0x34d5
1669- .debug_info 0x0000000000000000 0x70e lib/libarm.a(board.o)
1670- .debug_info 0x000000000000070e 0x22b lib/libarm.a(string.o)
1671- .debug_info 0x0000000000000939 0x329 drivers/libdrivers.a(ddr.o)
1672- .debug_info 0x0000000000000c62 0x2a0 drivers/libdrivers.a(uart.o)
1673- .debug_info 0x0000000000000f02 0x6d3 drivers/libdrivers.a(image.o)
1674- .debug_info 0x00000000000015d5 0x1c3 drivers/libdrivers.a(efuse.o)
1675- .debug_info 0x0000000000001798 0x62d drivers/libdrivers.a(secure_verify.o)
1676- .debug_info 0x0000000000001dc5 0xd5f drivers/libdrivers.a(nor.o)
1677- .debug_info 0x0000000000002b24 0x1e8 drivers/libdrivers.a(drv_hash.o)
1678- .debug_info 0x0000000000002d0c 0x3b4 drivers/libdrivers.a(drv_rsa.o)
1679- .debug_info 0x00000000000030c0 0x20f drivers/libdrivers.a(flash.o)
1680- .debug_info 0x00000000000032cf 0x17b cpu/m0/libm0.a(cpu.o)
1681- .debug_info 0x000000000000344a 0x8b cpu/m0/libm0.a(clk.o)
1682+.debug_info 0x0000000000000000 0x34e2
1683+ .debug_info 0x0000000000000000 0x71b lib/libarm.a(board.o)
1684+ .debug_info 0x000000000000071b 0x22b lib/libarm.a(string.o)
1685+ .debug_info 0x0000000000000946 0x329 drivers/libdrivers.a(ddr.o)
1686+ .debug_info 0x0000000000000c6f 0x2a0 drivers/libdrivers.a(uart.o)
1687+ .debug_info 0x0000000000000f0f 0x6d3 drivers/libdrivers.a(image.o)
1688+ .debug_info 0x00000000000015e2 0x1c3 drivers/libdrivers.a(efuse.o)
1689+ .debug_info 0x00000000000017a5 0x62d drivers/libdrivers.a(secure_verify.o)
1690+ .debug_info 0x0000000000001dd2 0xd5f drivers/libdrivers.a(nor.o)
1691+ .debug_info 0x0000000000002b31 0x1e8 drivers/libdrivers.a(drv_hash.o)
1692+ .debug_info 0x0000000000002d19 0x3b4 drivers/libdrivers.a(drv_rsa.o)
1693+ .debug_info 0x00000000000030cd 0x20f drivers/libdrivers.a(flash.o)
1694+ .debug_info 0x00000000000032dc 0x17b cpu/m0/libm0.a(cpu.o)
1695+ .debug_info 0x0000000000003457 0x8b cpu/m0/libm0.a(clk.o)
1696
1697 .debug_abbrev 0x0000000000000000 0x12c2
1698 .debug_abbrev 0x0000000000000000 0x2b8 lib/libarm.a(board.o)
1699@@ -395,32 +395,32 @@
1700 .debug_line 0x000000000000132b 0xa7 cpu/m0/libm0.a(cpu.o)
1701 .debug_line 0x00000000000013d2 0x61 cpu/m0/libm0.a(clk.o)
1702
1703-.debug_str 0x0000000000000000 0xebb
1704- .debug_str 0x0000000000000000 0x4d5 lib/libarm.a(board.o)
1705- 0x554 (松开之前的大小)
1706- .debug_str 0x00000000000004d5 0x4c lib/libarm.a(string.o)
1707+.debug_str 0x0000000000000000 0xec7
1708+ .debug_str 0x0000000000000000 0x4e1 lib/libarm.a(board.o)
1709+ 0x560 (松开之前的大小)
1710+ .debug_str 0x00000000000004e1 0x4c lib/libarm.a(string.o)
1711 0x214 (松开之前的大小)
1712- .debug_str 0x0000000000000521 0xa1 drivers/libdrivers.a(ddr.o)
1713+ .debug_str 0x000000000000052d 0xa1 drivers/libdrivers.a(ddr.o)
1714 0x216 (松开之前的大小)
1715- .debug_str 0x00000000000005c2 0x8a drivers/libdrivers.a(uart.o)
1716+ .debug_str 0x00000000000005ce 0x8a drivers/libdrivers.a(uart.o)
1717 0x253 (松开之前的大小)
1718- .debug_str 0x000000000000064c 0x229 drivers/libdrivers.a(image.o)
1719+ .debug_str 0x0000000000000658 0x229 drivers/libdrivers.a(image.o)
1720 0x4a0 (松开之前的大小)
1721- .debug_str 0x0000000000000875 0x7b drivers/libdrivers.a(efuse.o)
1722+ .debug_str 0x0000000000000881 0x7b drivers/libdrivers.a(efuse.o)
1723 0x255 (松开之前的大小)
1724- .debug_str 0x00000000000008f0 0x177 drivers/libdrivers.a(secure_verify.o)
1725+ .debug_str 0x00000000000008fc 0x177 drivers/libdrivers.a(secure_verify.o)
1726 0x407 (松开之前的大小)
1727- .debug_str 0x0000000000000a67 0x2c3 drivers/libdrivers.a(nor.o)
1728+ .debug_str 0x0000000000000a73 0x2c3 drivers/libdrivers.a(nor.o)
1729 0x5f3 (松开之前的大小)
1730- .debug_str 0x0000000000000d2a 0x87 drivers/libdrivers.a(drv_hash.o)
1731+ .debug_str 0x0000000000000d36 0x87 drivers/libdrivers.a(drv_hash.o)
1732 0x25a (松开之前的大小)
1733- .debug_str 0x0000000000000db1 0x79 drivers/libdrivers.a(drv_rsa.o)
1734+ .debug_str 0x0000000000000dbd 0x79 drivers/libdrivers.a(drv_rsa.o)
1735 0x29c (松开之前的大小)
1736- .debug_str 0x0000000000000e2a 0x12 drivers/libdrivers.a(flash.o)
1737+ .debug_str 0x0000000000000e36 0x12 drivers/libdrivers.a(flash.o)
1738 0x2a8 (松开之前的大小)
1739- .debug_str 0x0000000000000e3c 0x79 cpu/m0/libm0.a(cpu.o)
1740+ .debug_str 0x0000000000000e48 0x79 cpu/m0/libm0.a(cpu.o)
1741 0x1f8 (松开之前的大小)
1742- .debug_str 0x0000000000000eb5 0x6 cpu/m0/libm0.a(clk.o)
1743+ .debug_str 0x0000000000000ec1 0x6 cpu/m0/libm0.a(clk.o)
1744 0x1bd (松开之前的大小)
1745
1746 .debug_frame 0x0000000000000000 0x6a0
1747diff --git a/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load2 b/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load2
1748index cbc092e..44de20a 100755
1749--- a/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load2
1750+++ b/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load2
1751Binary files differ
1752diff --git a/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load2.map b/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load2.map
1753index 69d87e4..d4b4270 100755
1754--- a/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load2.map
1755+++ b/Uboot/boot/prj/zx297520v3/bootrom2/dl_off/z-load2.map
1756@@ -34,7 +34,7 @@
1757 0x0000000000000000 . = 0x0
1758 0x0000000000000000 . = ALIGN (0x4)
1759
1760-.text 0x0000000020300000 0x4d44
1761+.text 0x0000000020300000 0x4e0c
1762 cpu/m0/start.o(.text)
1763 .text 0x0000000020300000 0x220 cpu/m0/start.o
1764 0x00000000203001a4 _bss_start
1765@@ -44,7 +44,7 @@
1766 0x00000000203001b8 _start
1767 0x00000000203001fe run_at
1768 *(.text)
1769- .text 0x0000000020300220 0x454 lib/libarm.a(board.o)
1770+ .text 0x0000000020300220 0x51c lib/libarm.a(board.o)
1771 0x0000000020300220 print_info
1772 0x0000000020300230 copy_to_iram1
1773 0x0000000020300250 clear_iram
1774@@ -55,201 +55,201 @@
1775 0x0000000020300338 pmu_read
1776 0x0000000020300404 pmu_write
1777 0x00000000203004d0 start_armboot
1778- .text 0x0000000020300674 0x80 lib/libarm.a(string.o)
1779- 0x0000000020300674 strlen
1780- 0x0000000020300684 memset
1781- 0x00000000203006c6 memcmp
1782- 0x00000000203006e2 memcpy
1783- .text 0x00000000203006f4 0x138 drivers/libdrivers.a(uart.o)
1784- 0x00000000203006f4 uart_init
1785- 0x0000000020300774 uart_putc
1786- 0x000000002030079c uart_puts
1787- 0x00000000203007b0 uart_getc
1788- 0x00000000203007cc uart_tstc
1789- 0x00000000203007dc UART_Read
1790- 0x00000000203007f8 UART_Write
1791- 0x0000000020300814 UART_Check_Sync
1792- .text 0x000000002030082c 0x338 drivers/libdrivers.a(image.o)
1793- 0x0000000020300830 page_align
1794- 0x0000000020300848 find_partition_para
1795- 0x0000000020300878 read_image_part_offset
1796- 0x00000000203008cc read_flags_image
1797- 0x00000000203009b4 read_uboot_image
1798- 0x0000000020300a94 nand_read_m0
1799- 0x0000000020300b00 read_zloader_image
1800- .text 0x0000000020300b64 0x2b0 drivers/libdrivers.a(secure_verify.o)
1801- 0x0000000020300b82 BIG2SMALL
1802- 0x0000000020300bb2 bin2hex
1803- 0x0000000020300bfc secure_verify_zloader
1804- 0x0000000020300cf0 SecureVerify
1805- .text 0x0000000020300e14 0x648 drivers/libdrivers.a(spifc_loader2.o)
1806- 0x0000000020300f08 zDrvGpio_SetFunc
1807- 0x0000000020300f40 zDrvGpio_SetDirection
1808- 0x0000000020300f90 zDrvGpio_SetOutputValue
1809- 0x0000000020300fcc spi_nand_cs
1810- 0x0000000020301008 spifc_clear_fifo
1811- 0x000000002030101c spifc_clear_int
1812- 0x0000000020301178 spifc_read_oob
1813- 0x00000000203011bc spifc_read_page_raw
1814- 0x00000000203011f8 spifc_read_page
1815- 0x0000000020301274 spifc_read
1816- 0x00000000203012b8 read_data
1817- 0x000000002030130c read_id
1818- 0x0000000020301390 spifc_init
1819- 0x0000000020301414 zloader_flash_init
1820- .text 0x000000002030145c 0x1c0 drivers/libdrivers.a(bbt.o)
1821- 0x00000000203014bc nand_creat_ram_bbt
1822- 0x0000000020301500 nand_search_bbt
1823- 0x000000002030158c nand_creat_bbt
1824- 0x0000000020301608 nand_block_isbad
1825- .text 0x000000002030161c 0x2688 drivers/libdrivers.a(sha256.o)
1826- 0x0000000020303b3c sha256_starts
1827- 0x0000000020303b84 sha256_update
1828- 0x0000000020303b90 sha256_finish
1829- 0x0000000020303c7c sha256_csum_wd
1830- .text 0x0000000020303ca4 0x424 drivers/libdrivers.a(nor.o)
1831- 0x0000000020303ca4 spifc_enable
1832- 0x0000000020303cd4 spifc_disable
1833- 0x0000000020303cf8 spifc_setup_cmd
1834- 0x0000000020303d7c spifc_wait_cmd_end
1835- 0x0000000020303da8 spifc_read_fifo
1836- 0x0000000020303de4 spifc_start
1837- 0x0000000020303df4 cmd_seek
1838- 0x0000000020303e14 nor_read_reg
1839- 0x0000000020303e74 nor_read_id
1840- 0x0000000020303edc spi_nor_read
1841- 0x0000000020303f38 nor_read
1842- 0x0000000020303f8c spi_nor_read_security_register
1843- 0x0000000020303fe8 nor_read_security_register
1844- 0x000000002030403c nor_init
1845- 0x000000002030408c board_flash_init
1846- .text 0x00000000203040c8 0x82c drivers/libdrivers.a(ddr.o)
1847- 0x00000000203040c8 nsdelay
1848- 0x00000000203040e2 ddr_clk_init
1849- 0x00000000203040f8 ddr_phy_init
1850- 0x00000000203041f4 ddr_ctrl_init
1851- 0x00000000203045b0 ddr_prio_init
1852- 0x00000000203046d4 ddr_init
1853- .text 0x00000000203048f4 0xa4 drivers/libdrivers.a(drv_hash.o)
1854- 0x00000000203048f4 Hash_Calculate
1855- .text 0x0000000020304998 0x174 drivers/libdrivers.a(drv_rsa.o)
1856- 0x00000000203049b2 Rsa_Calculate
1857- .text 0x0000000020304b0c 0x28 drivers/libdrivers.a(flash.o)
1858- 0x0000000020304b0c get_boot_mode
1859- .text 0x0000000020304b34 0x1bc drivers/libdrivers.a(efuse.o)
1860- 0x0000000020304b34 efuse_init
1861- 0x0000000020304b58 get_ddr_flag
1862- 0x0000000020304c78 get_secure_verify_status
1863- 0x0000000020304cbc get_otp_secure_verify_status
1864- .text 0x0000000020304cf0 0x54 cpu/m0/libm0.a(cpu.o)
1865- 0x0000000020304cf0 timer_init
1866- 0x0000000020304d08 usdelay
1867+ .text 0x000000002030073c 0x80 lib/libarm.a(string.o)
1868+ 0x000000002030073c strlen
1869+ 0x000000002030074c memset
1870+ 0x000000002030078e memcmp
1871+ 0x00000000203007aa memcpy
1872+ .text 0x00000000203007bc 0x138 drivers/libdrivers.a(uart.o)
1873+ 0x00000000203007bc uart_init
1874+ 0x000000002030083c uart_putc
1875+ 0x0000000020300864 uart_puts
1876+ 0x0000000020300878 uart_getc
1877+ 0x0000000020300894 uart_tstc
1878+ 0x00000000203008a4 UART_Read
1879+ 0x00000000203008c0 UART_Write
1880+ 0x00000000203008dc UART_Check_Sync
1881+ .text 0x00000000203008f4 0x338 drivers/libdrivers.a(image.o)
1882+ 0x00000000203008f8 page_align
1883+ 0x0000000020300910 find_partition_para
1884+ 0x0000000020300940 read_image_part_offset
1885+ 0x0000000020300994 read_flags_image
1886+ 0x0000000020300a7c read_uboot_image
1887+ 0x0000000020300b5c nand_read_m0
1888+ 0x0000000020300bc8 read_zloader_image
1889+ .text 0x0000000020300c2c 0x2b0 drivers/libdrivers.a(secure_verify.o)
1890+ 0x0000000020300c4a BIG2SMALL
1891+ 0x0000000020300c7a bin2hex
1892+ 0x0000000020300cc4 secure_verify_zloader
1893+ 0x0000000020300db8 SecureVerify
1894+ .text 0x0000000020300edc 0x648 drivers/libdrivers.a(spifc_loader2.o)
1895+ 0x0000000020300fd0 zDrvGpio_SetFunc
1896+ 0x0000000020301008 zDrvGpio_SetDirection
1897+ 0x0000000020301058 zDrvGpio_SetOutputValue
1898+ 0x0000000020301094 spi_nand_cs
1899+ 0x00000000203010d0 spifc_clear_fifo
1900+ 0x00000000203010e4 spifc_clear_int
1901+ 0x0000000020301240 spifc_read_oob
1902+ 0x0000000020301284 spifc_read_page_raw
1903+ 0x00000000203012c0 spifc_read_page
1904+ 0x000000002030133c spifc_read
1905+ 0x0000000020301380 read_data
1906+ 0x00000000203013d4 read_id
1907+ 0x0000000020301458 spifc_init
1908+ 0x00000000203014dc zloader_flash_init
1909+ .text 0x0000000020301524 0x1c0 drivers/libdrivers.a(bbt.o)
1910+ 0x0000000020301584 nand_creat_ram_bbt
1911+ 0x00000000203015c8 nand_search_bbt
1912+ 0x0000000020301654 nand_creat_bbt
1913+ 0x00000000203016d0 nand_block_isbad
1914+ .text 0x00000000203016e4 0x2688 drivers/libdrivers.a(sha256.o)
1915+ 0x0000000020303c04 sha256_starts
1916+ 0x0000000020303c4c sha256_update
1917+ 0x0000000020303c58 sha256_finish
1918+ 0x0000000020303d44 sha256_csum_wd
1919+ .text 0x0000000020303d6c 0x424 drivers/libdrivers.a(nor.o)
1920+ 0x0000000020303d6c spifc_enable
1921+ 0x0000000020303d9c spifc_disable
1922+ 0x0000000020303dc0 spifc_setup_cmd
1923+ 0x0000000020303e44 spifc_wait_cmd_end
1924+ 0x0000000020303e70 spifc_read_fifo
1925+ 0x0000000020303eac spifc_start
1926+ 0x0000000020303ebc cmd_seek
1927+ 0x0000000020303edc nor_read_reg
1928+ 0x0000000020303f3c nor_read_id
1929+ 0x0000000020303fa4 spi_nor_read
1930+ 0x0000000020304000 nor_read
1931+ 0x0000000020304054 spi_nor_read_security_register
1932+ 0x00000000203040b0 nor_read_security_register
1933+ 0x0000000020304104 nor_init
1934+ 0x0000000020304154 board_flash_init
1935+ .text 0x0000000020304190 0x82c drivers/libdrivers.a(ddr.o)
1936+ 0x0000000020304190 nsdelay
1937+ 0x00000000203041aa ddr_clk_init
1938+ 0x00000000203041c0 ddr_phy_init
1939+ 0x00000000203042bc ddr_ctrl_init
1940+ 0x0000000020304678 ddr_prio_init
1941+ 0x000000002030479c ddr_init
1942+ .text 0x00000000203049bc 0xa4 drivers/libdrivers.a(drv_hash.o)
1943+ 0x00000000203049bc Hash_Calculate
1944+ .text 0x0000000020304a60 0x174 drivers/libdrivers.a(drv_rsa.o)
1945+ 0x0000000020304a7a Rsa_Calculate
1946+ .text 0x0000000020304bd4 0x28 drivers/libdrivers.a(flash.o)
1947+ 0x0000000020304bd4 get_boot_mode
1948+ .text 0x0000000020304bfc 0x1bc drivers/libdrivers.a(efuse.o)
1949+ 0x0000000020304bfc efuse_init
1950+ 0x0000000020304c20 get_ddr_flag
1951+ 0x0000000020304d40 get_secure_verify_status
1952+ 0x0000000020304d84 get_otp_secure_verify_status
1953+ .text 0x0000000020304db8 0x54 cpu/m0/libm0.a(cpu.o)
1954+ 0x0000000020304db8 timer_init
1955+ 0x0000000020304dd0 usdelay
1956
1957-.glue_7 0x0000000020304d44 0x0
1958+.glue_7 0x0000000020304e0c 0x0
1959 .glue_7 0x0000000000000000 0x0 linker stubs
1960
1961-.glue_7t 0x0000000020304d44 0x0
1962+.glue_7t 0x0000000020304e0c 0x0
1963 .glue_7t 0x0000000000000000 0x0 linker stubs
1964
1965-.vfp11_veneer 0x0000000020304d44 0x0
1966+.vfp11_veneer 0x0000000020304e0c 0x0
1967 .vfp11_veneer 0x0000000000000000 0x0 linker stubs
1968
1969-.v4_bx 0x0000000020304d44 0x0
1970+.v4_bx 0x0000000020304e0c 0x0
1971 .v4_bx 0x0000000000000000 0x0 linker stubs
1972
1973-.iplt 0x0000000020304d44 0x0
1974+.iplt 0x0000000020304e0c 0x0
1975 .iplt 0x0000000000000000 0x0 cpu/m0/start.o
1976- 0x0000000020304d44 . = ALIGN (0x4)
1977+ 0x0000000020304e0c . = ALIGN (0x4)
1978
1979-.rodata 0x0000000020304d44 0x3f0
1980+.rodata 0x0000000020304e0c 0x3f0
1981 *(.rodata)
1982- .rodata 0x0000000020304d44 0x270 drivers/libdrivers.a(spifc_loader2.o)
1983- .rodata 0x0000000020304fb4 0x13 drivers/libdrivers.a(sha256.o)
1984- 0x0000000020304fb4 sha256_der_prefix
1985- *fill* 0x0000000020304fc7 0x1
1986- .rodata 0x0000000020304fc8 0x16c drivers/libdrivers.a(nor.o)
1987+ .rodata 0x0000000020304e0c 0x270 drivers/libdrivers.a(spifc_loader2.o)
1988+ .rodata 0x000000002030507c 0x13 drivers/libdrivers.a(sha256.o)
1989+ 0x000000002030507c sha256_der_prefix
1990+ *fill* 0x000000002030508f 0x1
1991+ .rodata 0x0000000020305090 0x16c drivers/libdrivers.a(nor.o)
1992
1993-.rodata.str1.1 0x0000000020305134 0x48d
1994+.rodata.str1.1 0x00000000203051fc 0x516
1995 .rodata.str1.1
1996- 0x0000000020305134 0x18a lib/libarm.a(board.o)
1997- 0x1a3 (松开之前的大小)
1998+ 0x00000000203051fc 0x213 lib/libarm.a(board.o)
1999+ 0x24e (松开之前的大小)
2000 .rodata.str1.1
2001- 0x00000000203052be 0xef drivers/libdrivers.a(image.o)
2002+ 0x000000002030540f 0xef drivers/libdrivers.a(image.o)
2003 0x115 (松开之前的大小)
2004 .rodata.str1.1
2005- 0x00000000203053ad 0x5b drivers/libdrivers.a(secure_verify.o)
2006+ 0x00000000203054fe 0x5b drivers/libdrivers.a(secure_verify.o)
2007 0x5d (松开之前的大小)
2008 .rodata.str1.1
2009- 0x0000000020305408 0x3d drivers/libdrivers.a(spifc_loader2.o)
2010+ 0x0000000020305559 0x3d drivers/libdrivers.a(spifc_loader2.o)
2011 0x4a (松开之前的大小)
2012 .rodata.str1.1
2013- 0x0000000020305445 0x9 drivers/libdrivers.a(bbt.o)
2014+ 0x0000000020305596 0x9 drivers/libdrivers.a(bbt.o)
2015 .rodata.str1.1
2016- 0x000000002030544e 0x15c drivers/libdrivers.a(nor.o)
2017+ 0x000000002030559f 0x15c drivers/libdrivers.a(nor.o)
2018 .rodata.str1.1
2019- 0x00000000203055aa 0x17 drivers/libdrivers.a(efuse.o)
2020+ 0x00000000203056fb 0x17 drivers/libdrivers.a(efuse.o)
2021
2022-.rel.dyn 0x00000000203055c4 0x0
2023+.rel.dyn 0x0000000020305714 0x0
2024 .rel.iplt 0x0000000000000000 0x0 cpu/m0/start.o
2025- 0x00000000203055c4 . = ALIGN (0x4)
2026+ 0x0000000020305714 . = ALIGN (0x4)
2027
2028-.data 0x00000000203055c4 0xd0
2029+.data 0x0000000020305714 0xd0
2030 *(.data)
2031- .data 0x00000000203055c4 0x0 cpu/m0/start.o
2032- .data 0x00000000203055c4 0x0 lib/libarm.a(board.o)
2033- .data 0x00000000203055c4 0x0 lib/libarm.a(string.o)
2034- .data 0x00000000203055c4 0x0 drivers/libdrivers.a(uart.o)
2035- .data 0x00000000203055c4 0x0 drivers/libdrivers.a(image.o)
2036- .data 0x00000000203055c4 0x0 drivers/libdrivers.a(secure_verify.o)
2037- .data 0x00000000203055c4 0x0 drivers/libdrivers.a(spifc_loader2.o)
2038- .data 0x00000000203055c4 0x40 drivers/libdrivers.a(bbt.o)
2039- .data 0x0000000020305604 0x40 drivers/libdrivers.a(sha256.o)
2040- .data 0x0000000020305644 0x50 drivers/libdrivers.a(nor.o)
2041- 0x0000000020305644 nor_cmd_table
2042- .data 0x0000000020305694 0x0 drivers/libdrivers.a(ddr.o)
2043- .data 0x0000000020305694 0x0 drivers/libdrivers.a(drv_hash.o)
2044- .data 0x0000000020305694 0x0 drivers/libdrivers.a(drv_rsa.o)
2045- .data 0x0000000020305694 0x0 drivers/libdrivers.a(flash.o)
2046- .data 0x0000000020305694 0x0 drivers/libdrivers.a(efuse.o)
2047- .data 0x0000000020305694 0x0 cpu/m0/libm0.a(cpu.o)
2048+ .data 0x0000000020305714 0x0 cpu/m0/start.o
2049+ .data 0x0000000020305714 0x0 lib/libarm.a(board.o)
2050+ .data 0x0000000020305714 0x0 lib/libarm.a(string.o)
2051+ .data 0x0000000020305714 0x0 drivers/libdrivers.a(uart.o)
2052+ .data 0x0000000020305714 0x0 drivers/libdrivers.a(image.o)
2053+ .data 0x0000000020305714 0x0 drivers/libdrivers.a(secure_verify.o)
2054+ .data 0x0000000020305714 0x0 drivers/libdrivers.a(spifc_loader2.o)
2055+ .data 0x0000000020305714 0x40 drivers/libdrivers.a(bbt.o)
2056+ .data 0x0000000020305754 0x40 drivers/libdrivers.a(sha256.o)
2057+ .data 0x0000000020305794 0x50 drivers/libdrivers.a(nor.o)
2058+ 0x0000000020305794 nor_cmd_table
2059+ .data 0x00000000203057e4 0x0 drivers/libdrivers.a(ddr.o)
2060+ .data 0x00000000203057e4 0x0 drivers/libdrivers.a(drv_hash.o)
2061+ .data 0x00000000203057e4 0x0 drivers/libdrivers.a(drv_rsa.o)
2062+ .data 0x00000000203057e4 0x0 drivers/libdrivers.a(flash.o)
2063+ .data 0x00000000203057e4 0x0 drivers/libdrivers.a(efuse.o)
2064+ .data 0x00000000203057e4 0x0 cpu/m0/libm0.a(cpu.o)
2065
2066-.igot.plt 0x0000000020305694 0x0
2067+.igot.plt 0x00000000203057e4 0x0
2068 .igot.plt 0x0000000000000000 0x0 cpu/m0/start.o
2069- 0x0000000020305694 . = ALIGN (0x4)
2070+ 0x00000000203057e4 . = ALIGN (0x4)
2071
2072 .got
2073 *(.got)
2074- 0x0000000020305694 . = ALIGN (0x4)
2075- 0x0000000020305694 __bss_start = .
2076+ 0x00000000203057e4 . = ALIGN (0x4)
2077+ 0x00000000203057e4 __bss_start = .
2078
2079-.bss 0x0000000020305694 0x1e8
2080+.bss 0x00000000203057e4 0x1e8
2081 *(.bss)
2082- .bss 0x0000000020305694 0x0 cpu/m0/start.o
2083- .bss 0x0000000020305694 0x4 lib/libarm.a(board.o)
2084- 0x0000000020305694 zloader_entry_point
2085- .bss 0x0000000020305698 0x0 lib/libarm.a(string.o)
2086- .bss 0x0000000020305698 0x0 drivers/libdrivers.a(uart.o)
2087- .bss 0x0000000020305698 0x0 drivers/libdrivers.a(image.o)
2088- .bss 0x0000000020305698 0x104 drivers/libdrivers.a(secure_verify.o)
2089- 0x0000000020305698 result
2090- .bss 0x000000002030579c 0x4 drivers/libdrivers.a(spifc_loader2.o)
2091- .bss 0x00000000203057a0 0x80 drivers/libdrivers.a(bbt.o)
2092- .bss 0x0000000020305820 0x0 drivers/libdrivers.a(sha256.o)
2093- .bss 0x0000000020305820 0x28 drivers/libdrivers.a(nor.o)
2094- 0x0000000020305820 spi_nor_flash
2095- 0x0000000020305824 otp_data
2096- .bss 0x0000000020305848 0x0 drivers/libdrivers.a(ddr.o)
2097- .bss 0x0000000020305848 0x0 drivers/libdrivers.a(drv_hash.o)
2098- .bss 0x0000000020305848 0x0 drivers/libdrivers.a(drv_rsa.o)
2099- .bss 0x0000000020305848 0x24 drivers/libdrivers.a(flash.o)
2100- 0x0000000020305848 flash
2101- .bss 0x000000002030586c 0x0 drivers/libdrivers.a(efuse.o)
2102- .bss 0x000000002030586c 0x10 cpu/m0/libm0.a(cpu.o)
2103- 0x000000002030586c g_tick
2104- 0x000000002030587c __bss_end = .
2105- 0x000000002030587c . = ALIGN (0x4)
2106+ .bss 0x00000000203057e4 0x0 cpu/m0/start.o
2107+ .bss 0x00000000203057e4 0x4 lib/libarm.a(board.o)
2108+ 0x00000000203057e4 zloader_entry_point
2109+ .bss 0x00000000203057e8 0x0 lib/libarm.a(string.o)
2110+ .bss 0x00000000203057e8 0x0 drivers/libdrivers.a(uart.o)
2111+ .bss 0x00000000203057e8 0x0 drivers/libdrivers.a(image.o)
2112+ .bss 0x00000000203057e8 0x104 drivers/libdrivers.a(secure_verify.o)
2113+ 0x00000000203057e8 result
2114+ .bss 0x00000000203058ec 0x4 drivers/libdrivers.a(spifc_loader2.o)
2115+ .bss 0x00000000203058f0 0x80 drivers/libdrivers.a(bbt.o)
2116+ .bss 0x0000000020305970 0x0 drivers/libdrivers.a(sha256.o)
2117+ .bss 0x0000000020305970 0x28 drivers/libdrivers.a(nor.o)
2118+ 0x0000000020305970 spi_nor_flash
2119+ 0x0000000020305974 otp_data
2120+ .bss 0x0000000020305998 0x0 drivers/libdrivers.a(ddr.o)
2121+ .bss 0x0000000020305998 0x0 drivers/libdrivers.a(drv_hash.o)
2122+ .bss 0x0000000020305998 0x0 drivers/libdrivers.a(drv_rsa.o)
2123+ .bss 0x0000000020305998 0x24 drivers/libdrivers.a(flash.o)
2124+ 0x0000000020305998 flash
2125+ .bss 0x00000000203059bc 0x0 drivers/libdrivers.a(efuse.o)
2126+ .bss 0x00000000203059bc 0x10 cpu/m0/libm0.a(cpu.o)
2127+ 0x00000000203059bc g_tick
2128+ 0x00000000203059cc __bss_end = .
2129+ 0x00000000203059cc . = ALIGN (0x4)
2130
2131-.para 0x0000000082000000 0x0 加载地址 0x000000002030587c
2132+.para 0x0000000082000000 0x0 加载地址 0x00000000203059cc
2133 0x0000000082000000 __para_start = .
2134 *(.para)
2135 0x0000000082000000 __para_end = .
2136@@ -356,22 +356,22 @@
2137 .stabstr 0x0000000000000000 0x67
2138 .stabstr 0x0000000000000000 0x67 cpu/m0/start.o
2139
2140-.debug_info 0x0000000000000000 0x6536
2141- .debug_info 0x0000000000000000 0x92d lib/libarm.a(board.o)
2142- .debug_info 0x000000000000092d 0x22b lib/libarm.a(string.o)
2143- .debug_info 0x0000000000000b58 0x2a0 drivers/libdrivers.a(uart.o)
2144- .debug_info 0x0000000000000df8 0xdd6 drivers/libdrivers.a(image.o)
2145- .debug_info 0x0000000000001bce 0xb01 drivers/libdrivers.a(secure_verify.o)
2146- .debug_info 0x00000000000026cf 0x1661 drivers/libdrivers.a(spifc_loader2.o)
2147- .debug_info 0x0000000000003d30 0x70f drivers/libdrivers.a(bbt.o)
2148- .debug_info 0x000000000000443f 0x586 drivers/libdrivers.a(sha256.o)
2149- .debug_info 0x00000000000049c5 0xd5f drivers/libdrivers.a(nor.o)
2150- .debug_info 0x0000000000005724 0x329 drivers/libdrivers.a(ddr.o)
2151- .debug_info 0x0000000000005a4d 0x1e8 drivers/libdrivers.a(drv_hash.o)
2152- .debug_info 0x0000000000005c35 0x3b4 drivers/libdrivers.a(drv_rsa.o)
2153- .debug_info 0x0000000000005fe9 0x20f drivers/libdrivers.a(flash.o)
2154- .debug_info 0x00000000000061f8 0x1c3 drivers/libdrivers.a(efuse.o)
2155- .debug_info 0x00000000000063bb 0x17b cpu/m0/libm0.a(cpu.o)
2156+.debug_info 0x0000000000000000 0x663a
2157+ .debug_info 0x0000000000000000 0xa31 lib/libarm.a(board.o)
2158+ .debug_info 0x0000000000000a31 0x22b lib/libarm.a(string.o)
2159+ .debug_info 0x0000000000000c5c 0x2a0 drivers/libdrivers.a(uart.o)
2160+ .debug_info 0x0000000000000efc 0xdd6 drivers/libdrivers.a(image.o)
2161+ .debug_info 0x0000000000001cd2 0xb01 drivers/libdrivers.a(secure_verify.o)
2162+ .debug_info 0x00000000000027d3 0x1661 drivers/libdrivers.a(spifc_loader2.o)
2163+ .debug_info 0x0000000000003e34 0x70f drivers/libdrivers.a(bbt.o)
2164+ .debug_info 0x0000000000004543 0x586 drivers/libdrivers.a(sha256.o)
2165+ .debug_info 0x0000000000004ac9 0xd5f drivers/libdrivers.a(nor.o)
2166+ .debug_info 0x0000000000005828 0x329 drivers/libdrivers.a(ddr.o)
2167+ .debug_info 0x0000000000005b51 0x1e8 drivers/libdrivers.a(drv_hash.o)
2168+ .debug_info 0x0000000000005d39 0x3b4 drivers/libdrivers.a(drv_rsa.o)
2169+ .debug_info 0x00000000000060ed 0x20f drivers/libdrivers.a(flash.o)
2170+ .debug_info 0x00000000000062fc 0x1c3 drivers/libdrivers.a(efuse.o)
2171+ .debug_info 0x00000000000064bf 0x17b cpu/m0/libm0.a(cpu.o)
2172
2173 .debug_abbrev 0x0000000000000000 0x1c94
2174 .debug_abbrev 0x0000000000000000 0x304 lib/libarm.a(board.o)
2175@@ -390,22 +390,22 @@
2176 .debug_abbrev 0x0000000000001aaf 0x11d drivers/libdrivers.a(efuse.o)
2177 .debug_abbrev 0x0000000000001bcc 0xc8 cpu/m0/libm0.a(cpu.o)
2178
2179-.debug_loc 0x0000000000000000 0x96e6
2180- .debug_loc 0x0000000000000000 0x2f4 lib/libarm.a(board.o)
2181- .debug_loc 0x00000000000002f4 0x29d lib/libarm.a(string.o)
2182- .debug_loc 0x0000000000000591 0x228 drivers/libdrivers.a(uart.o)
2183- .debug_loc 0x00000000000007b9 0x6a2 drivers/libdrivers.a(image.o)
2184- .debug_loc 0x0000000000000e5b 0x790 drivers/libdrivers.a(secure_verify.o)
2185- .debug_loc 0x00000000000015eb 0xef4 drivers/libdrivers.a(spifc_loader2.o)
2186- .debug_loc 0x00000000000024df 0x282 drivers/libdrivers.a(bbt.o)
2187- .debug_loc 0x0000000000002761 0x5f3f drivers/libdrivers.a(sha256.o)
2188- .debug_loc 0x00000000000086a0 0x80a drivers/libdrivers.a(nor.o)
2189- .debug_loc 0x0000000000008eaa 0x2d8 drivers/libdrivers.a(ddr.o)
2190- .debug_loc 0x0000000000009182 0x1b8 drivers/libdrivers.a(drv_hash.o)
2191- .debug_loc 0x000000000000933a 0x238 drivers/libdrivers.a(drv_rsa.o)
2192- .debug_loc 0x0000000000009572 0x1f drivers/libdrivers.a(flash.o)
2193- .debug_loc 0x0000000000009591 0xab drivers/libdrivers.a(efuse.o)
2194- .debug_loc 0x000000000000963c 0xaa cpu/m0/libm0.a(cpu.o)
2195+.debug_loc 0x0000000000000000 0x97b8
2196+ .debug_loc 0x0000000000000000 0x3c6 lib/libarm.a(board.o)
2197+ .debug_loc 0x00000000000003c6 0x29d lib/libarm.a(string.o)
2198+ .debug_loc 0x0000000000000663 0x228 drivers/libdrivers.a(uart.o)
2199+ .debug_loc 0x000000000000088b 0x6a2 drivers/libdrivers.a(image.o)
2200+ .debug_loc 0x0000000000000f2d 0x790 drivers/libdrivers.a(secure_verify.o)
2201+ .debug_loc 0x00000000000016bd 0xef4 drivers/libdrivers.a(spifc_loader2.o)
2202+ .debug_loc 0x00000000000025b1 0x282 drivers/libdrivers.a(bbt.o)
2203+ .debug_loc 0x0000000000002833 0x5f3f drivers/libdrivers.a(sha256.o)
2204+ .debug_loc 0x0000000000008772 0x80a drivers/libdrivers.a(nor.o)
2205+ .debug_loc 0x0000000000008f7c 0x2d8 drivers/libdrivers.a(ddr.o)
2206+ .debug_loc 0x0000000000009254 0x1b8 drivers/libdrivers.a(drv_hash.o)
2207+ .debug_loc 0x000000000000940c 0x238 drivers/libdrivers.a(drv_rsa.o)
2208+ .debug_loc 0x0000000000009644 0x1f drivers/libdrivers.a(flash.o)
2209+ .debug_loc 0x0000000000009663 0xab drivers/libdrivers.a(efuse.o)
2210+ .debug_loc 0x000000000000970e 0xaa cpu/m0/libm0.a(cpu.o)
2211
2212 .debug_aranges 0x0000000000000000 0x1e0
2213 .debug_aranges
2214@@ -449,53 +449,53 @@
2215 .debug_ranges 0x00000000000001d8 0x28 drivers/libdrivers.a(drv_hash.o)
2216 .debug_ranges 0x0000000000000200 0x38 drivers/libdrivers.a(drv_rsa.o)
2217
2218-.debug_line 0x0000000000000000 0x2022
2219- .debug_line 0x0000000000000000 0x387 lib/libarm.a(board.o)
2220- .debug_line 0x0000000000000387 0x152 lib/libarm.a(string.o)
2221- .debug_line 0x00000000000004d9 0x112 drivers/libdrivers.a(uart.o)
2222- .debug_line 0x00000000000005eb 0x3b8 drivers/libdrivers.a(image.o)
2223- .debug_line 0x00000000000009a3 0x38e drivers/libdrivers.a(secure_verify.o)
2224- .debug_line 0x0000000000000d31 0x442 drivers/libdrivers.a(spifc_loader2.o)
2225- .debug_line 0x0000000000001173 0x251 drivers/libdrivers.a(bbt.o)
2226- .debug_line 0x00000000000013c4 0x2bb drivers/libdrivers.a(sha256.o)
2227- .debug_line 0x000000000000167f 0x2a2 drivers/libdrivers.a(nor.o)
2228- .debug_line 0x0000000000001921 0x299 drivers/libdrivers.a(ddr.o)
2229- .debug_line 0x0000000000001bba 0x88 drivers/libdrivers.a(drv_hash.o)
2230- .debug_line 0x0000000000001c42 0x117 drivers/libdrivers.a(drv_rsa.o)
2231- .debug_line 0x0000000000001d59 0x10a drivers/libdrivers.a(flash.o)
2232- .debug_line 0x0000000000001e63 0x118 drivers/libdrivers.a(efuse.o)
2233- .debug_line 0x0000000000001f7b 0xa7 cpu/m0/libm0.a(cpu.o)
2234+.debug_line 0x0000000000000000 0x205d
2235+ .debug_line 0x0000000000000000 0x3c2 lib/libarm.a(board.o)
2236+ .debug_line 0x00000000000003c2 0x152 lib/libarm.a(string.o)
2237+ .debug_line 0x0000000000000514 0x112 drivers/libdrivers.a(uart.o)
2238+ .debug_line 0x0000000000000626 0x3b8 drivers/libdrivers.a(image.o)
2239+ .debug_line 0x00000000000009de 0x38e drivers/libdrivers.a(secure_verify.o)
2240+ .debug_line 0x0000000000000d6c 0x442 drivers/libdrivers.a(spifc_loader2.o)
2241+ .debug_line 0x00000000000011ae 0x251 drivers/libdrivers.a(bbt.o)
2242+ .debug_line 0x00000000000013ff 0x2bb drivers/libdrivers.a(sha256.o)
2243+ .debug_line 0x00000000000016ba 0x2a2 drivers/libdrivers.a(nor.o)
2244+ .debug_line 0x000000000000195c 0x299 drivers/libdrivers.a(ddr.o)
2245+ .debug_line 0x0000000000001bf5 0x88 drivers/libdrivers.a(drv_hash.o)
2246+ .debug_line 0x0000000000001c7d 0x117 drivers/libdrivers.a(drv_rsa.o)
2247+ .debug_line 0x0000000000001d94 0x10a drivers/libdrivers.a(flash.o)
2248+ .debug_line 0x0000000000001e9e 0x118 drivers/libdrivers.a(efuse.o)
2249+ .debug_line 0x0000000000001fb6 0xa7 cpu/m0/libm0.a(cpu.o)
2250
2251-.debug_str 0x0000000000000000 0x160a
2252- .debug_str 0x0000000000000000 0x555 lib/libarm.a(board.o)
2253- 0x5cb (松开之前的大小)
2254- .debug_str 0x0000000000000555 0x3f lib/libarm.a(string.o)
2255+.debug_str 0x0000000000000000 0x1616
2256+ .debug_str 0x0000000000000000 0x561 lib/libarm.a(board.o)
2257+ 0x5d7 (松开之前的大小)
2258+ .debug_str 0x0000000000000561 0x3f lib/libarm.a(string.o)
2259 0x214 (松开之前的大小)
2260- .debug_str 0x0000000000000594 0xe2 drivers/libdrivers.a(uart.o)
2261+ .debug_str 0x00000000000005a0 0xe2 drivers/libdrivers.a(uart.o)
2262 0x253 (松开之前的大小)
2263- .debug_str 0x0000000000000676 0x35b drivers/libdrivers.a(image.o)
2264+ .debug_str 0x0000000000000682 0x35b drivers/libdrivers.a(image.o)
2265 0x854 (松开之前的大小)
2266- .debug_str 0x00000000000009d1 0x2f9 drivers/libdrivers.a(secure_verify.o)
2267+ .debug_str 0x00000000000009dd 0x2f9 drivers/libdrivers.a(secure_verify.o)
2268 0x61f (松开之前的大小)
2269- .debug_str 0x0000000000000cca 0x3c3 drivers/libdrivers.a(spifc_loader2.o)
2270+ .debug_str 0x0000000000000cd6 0x3c3 drivers/libdrivers.a(spifc_loader2.o)
2271 0x6c1 (松开之前的大小)
2272- .debug_str 0x000000000000108d 0x103 drivers/libdrivers.a(bbt.o)
2273+ .debug_str 0x0000000000001099 0x103 drivers/libdrivers.a(bbt.o)
2274 0x3fe (松开之前的大小)
2275- .debug_str 0x0000000000001190 0xc3 drivers/libdrivers.a(sha256.o)
2276+ .debug_str 0x000000000000119c 0xc3 drivers/libdrivers.a(sha256.o)
2277 0x2b7 (松开之前的大小)
2278- .debug_str 0x0000000000001253 0x1ad drivers/libdrivers.a(nor.o)
2279+ .debug_str 0x000000000000125f 0x1ad drivers/libdrivers.a(nor.o)
2280 0x5f3 (松开之前的大小)
2281- .debug_str 0x0000000000001400 0x54 drivers/libdrivers.a(ddr.o)
2282+ .debug_str 0x000000000000140c 0x54 drivers/libdrivers.a(ddr.o)
2283 0x216 (松开之前的大小)
2284- .debug_str 0x0000000000001454 0x87 drivers/libdrivers.a(drv_hash.o)
2285+ .debug_str 0x0000000000001460 0x87 drivers/libdrivers.a(drv_hash.o)
2286 0x25a (松开之前的大小)
2287- .debug_str 0x00000000000014db 0x79 drivers/libdrivers.a(drv_rsa.o)
2288+ .debug_str 0x00000000000014e7 0x79 drivers/libdrivers.a(drv_rsa.o)
2289 0x29c (松开之前的大小)
2290- .debug_str 0x0000000000001554 0x12 drivers/libdrivers.a(flash.o)
2291+ .debug_str 0x0000000000001560 0x12 drivers/libdrivers.a(flash.o)
2292 0x2a8 (松开之前的大小)
2293- .debug_str 0x0000000000001566 0x20 drivers/libdrivers.a(efuse.o)
2294+ .debug_str 0x0000000000001572 0x20 drivers/libdrivers.a(efuse.o)
2295 0x255 (松开之前的大小)
2296- .debug_str 0x0000000000001586 0x84 cpu/m0/libm0.a(cpu.o)
2297+ .debug_str 0x0000000000001592 0x84 cpu/m0/libm0.a(cpu.o)
2298 0x1f8 (松开之前的大小)
2299
2300 .debug_frame 0x0000000000000000 0xaf0
2301diff --git a/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/loader2.bin b/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/loader2.bin
2302index 0428da1..e7d499c 100755
2303--- a/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/loader2.bin
2304+++ b/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/loader2.bin
2305Binary files differ
2306diff --git a/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load b/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load
2307index c79fda1..176acbd 100755
2308--- a/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load
2309+++ b/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load
2310Binary files differ
2311diff --git a/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load.map b/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load.map
2312index 72c0ac3..71722dc 100755
2313--- a/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load.map
2314+++ b/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load.map
2315@@ -300,20 +300,20 @@
2316 .stabstr 0x0000000000000000 0x67
2317 .stabstr 0x0000000000000000 0x67 cpu/m0/start.o
2318
2319-.debug_info 0x0000000000000000 0x34d5
2320- .debug_info 0x0000000000000000 0x70e lib/libarm.a(board.o)
2321- .debug_info 0x000000000000070e 0x22b lib/libarm.a(string.o)
2322- .debug_info 0x0000000000000939 0x329 drivers/libdrivers.a(ddr.o)
2323- .debug_info 0x0000000000000c62 0x2a0 drivers/libdrivers.a(uart.o)
2324- .debug_info 0x0000000000000f02 0x6d3 drivers/libdrivers.a(image.o)
2325- .debug_info 0x00000000000015d5 0x1c3 drivers/libdrivers.a(efuse.o)
2326- .debug_info 0x0000000000001798 0x62d drivers/libdrivers.a(secure_verify.o)
2327- .debug_info 0x0000000000001dc5 0xd5f drivers/libdrivers.a(nor.o)
2328- .debug_info 0x0000000000002b24 0x1e8 drivers/libdrivers.a(drv_hash.o)
2329- .debug_info 0x0000000000002d0c 0x3b4 drivers/libdrivers.a(drv_rsa.o)
2330- .debug_info 0x00000000000030c0 0x20f drivers/libdrivers.a(flash.o)
2331- .debug_info 0x00000000000032cf 0x17b cpu/m0/libm0.a(cpu.o)
2332- .debug_info 0x000000000000344a 0x8b cpu/m0/libm0.a(clk.o)
2333+.debug_info 0x0000000000000000 0x34e2
2334+ .debug_info 0x0000000000000000 0x71b lib/libarm.a(board.o)
2335+ .debug_info 0x000000000000071b 0x22b lib/libarm.a(string.o)
2336+ .debug_info 0x0000000000000946 0x329 drivers/libdrivers.a(ddr.o)
2337+ .debug_info 0x0000000000000c6f 0x2a0 drivers/libdrivers.a(uart.o)
2338+ .debug_info 0x0000000000000f0f 0x6d3 drivers/libdrivers.a(image.o)
2339+ .debug_info 0x00000000000015e2 0x1c3 drivers/libdrivers.a(efuse.o)
2340+ .debug_info 0x00000000000017a5 0x62d drivers/libdrivers.a(secure_verify.o)
2341+ .debug_info 0x0000000000001dd2 0xd5f drivers/libdrivers.a(nor.o)
2342+ .debug_info 0x0000000000002b31 0x1e8 drivers/libdrivers.a(drv_hash.o)
2343+ .debug_info 0x0000000000002d19 0x3b4 drivers/libdrivers.a(drv_rsa.o)
2344+ .debug_info 0x00000000000030cd 0x20f drivers/libdrivers.a(flash.o)
2345+ .debug_info 0x00000000000032dc 0x17b cpu/m0/libm0.a(cpu.o)
2346+ .debug_info 0x0000000000003457 0x8b cpu/m0/libm0.a(clk.o)
2347
2348 .debug_abbrev 0x0000000000000000 0x12c2
2349 .debug_abbrev 0x0000000000000000 0x2b8 lib/libarm.a(board.o)
2350@@ -395,32 +395,32 @@
2351 .debug_line 0x000000000000132b 0xa7 cpu/m0/libm0.a(cpu.o)
2352 .debug_line 0x00000000000013d2 0x61 cpu/m0/libm0.a(clk.o)
2353
2354-.debug_str 0x0000000000000000 0xebb
2355- .debug_str 0x0000000000000000 0x4d5 lib/libarm.a(board.o)
2356- 0x554 (松开之前的大小)
2357- .debug_str 0x00000000000004d5 0x4c lib/libarm.a(string.o)
2358+.debug_str 0x0000000000000000 0xec7
2359+ .debug_str 0x0000000000000000 0x4e1 lib/libarm.a(board.o)
2360+ 0x560 (松开之前的大小)
2361+ .debug_str 0x00000000000004e1 0x4c lib/libarm.a(string.o)
2362 0x214 (松开之前的大小)
2363- .debug_str 0x0000000000000521 0xa1 drivers/libdrivers.a(ddr.o)
2364+ .debug_str 0x000000000000052d 0xa1 drivers/libdrivers.a(ddr.o)
2365 0x216 (松开之前的大小)
2366- .debug_str 0x00000000000005c2 0x8a drivers/libdrivers.a(uart.o)
2367+ .debug_str 0x00000000000005ce 0x8a drivers/libdrivers.a(uart.o)
2368 0x253 (松开之前的大小)
2369- .debug_str 0x000000000000064c 0x229 drivers/libdrivers.a(image.o)
2370+ .debug_str 0x0000000000000658 0x229 drivers/libdrivers.a(image.o)
2371 0x4a0 (松开之前的大小)
2372- .debug_str 0x0000000000000875 0x7b drivers/libdrivers.a(efuse.o)
2373+ .debug_str 0x0000000000000881 0x7b drivers/libdrivers.a(efuse.o)
2374 0x255 (松开之前的大小)
2375- .debug_str 0x00000000000008f0 0x177 drivers/libdrivers.a(secure_verify.o)
2376+ .debug_str 0x00000000000008fc 0x177 drivers/libdrivers.a(secure_verify.o)
2377 0x407 (松开之前的大小)
2378- .debug_str 0x0000000000000a67 0x2c3 drivers/libdrivers.a(nor.o)
2379+ .debug_str 0x0000000000000a73 0x2c3 drivers/libdrivers.a(nor.o)
2380 0x5f3 (松开之前的大小)
2381- .debug_str 0x0000000000000d2a 0x87 drivers/libdrivers.a(drv_hash.o)
2382+ .debug_str 0x0000000000000d36 0x87 drivers/libdrivers.a(drv_hash.o)
2383 0x25a (松开之前的大小)
2384- .debug_str 0x0000000000000db1 0x79 drivers/libdrivers.a(drv_rsa.o)
2385+ .debug_str 0x0000000000000dbd 0x79 drivers/libdrivers.a(drv_rsa.o)
2386 0x29c (松开之前的大小)
2387- .debug_str 0x0000000000000e2a 0x12 drivers/libdrivers.a(flash.o)
2388+ .debug_str 0x0000000000000e36 0x12 drivers/libdrivers.a(flash.o)
2389 0x2a8 (松开之前的大小)
2390- .debug_str 0x0000000000000e3c 0x79 cpu/m0/libm0.a(cpu.o)
2391+ .debug_str 0x0000000000000e48 0x79 cpu/m0/libm0.a(cpu.o)
2392 0x1f8 (松开之前的大小)
2393- .debug_str 0x0000000000000eb5 0x6 cpu/m0/libm0.a(clk.o)
2394+ .debug_str 0x0000000000000ec1 0x6 cpu/m0/libm0.a(clk.o)
2395 0x1bd (松开之前的大小)
2396
2397 .debug_frame 0x0000000000000000 0x6a0
2398diff --git a/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load2 b/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load2
2399index 50274d5..1f69c86 100755
2400--- a/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load2
2401+++ b/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load2
2402Binary files differ
2403diff --git a/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load2.map b/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load2.map
2404index 69d87e4..d4b4270 100755
2405--- a/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load2.map
2406+++ b/Uboot/boot/prj/zx297520v3/bootrom2/dl_on/z-load2.map
2407@@ -34,7 +34,7 @@
2408 0x0000000000000000 . = 0x0
2409 0x0000000000000000 . = ALIGN (0x4)
2410
2411-.text 0x0000000020300000 0x4d44
2412+.text 0x0000000020300000 0x4e0c
2413 cpu/m0/start.o(.text)
2414 .text 0x0000000020300000 0x220 cpu/m0/start.o
2415 0x00000000203001a4 _bss_start
2416@@ -44,7 +44,7 @@
2417 0x00000000203001b8 _start
2418 0x00000000203001fe run_at
2419 *(.text)
2420- .text 0x0000000020300220 0x454 lib/libarm.a(board.o)
2421+ .text 0x0000000020300220 0x51c lib/libarm.a(board.o)
2422 0x0000000020300220 print_info
2423 0x0000000020300230 copy_to_iram1
2424 0x0000000020300250 clear_iram
2425@@ -55,201 +55,201 @@
2426 0x0000000020300338 pmu_read
2427 0x0000000020300404 pmu_write
2428 0x00000000203004d0 start_armboot
2429- .text 0x0000000020300674 0x80 lib/libarm.a(string.o)
2430- 0x0000000020300674 strlen
2431- 0x0000000020300684 memset
2432- 0x00000000203006c6 memcmp
2433- 0x00000000203006e2 memcpy
2434- .text 0x00000000203006f4 0x138 drivers/libdrivers.a(uart.o)
2435- 0x00000000203006f4 uart_init
2436- 0x0000000020300774 uart_putc
2437- 0x000000002030079c uart_puts
2438- 0x00000000203007b0 uart_getc
2439- 0x00000000203007cc uart_tstc
2440- 0x00000000203007dc UART_Read
2441- 0x00000000203007f8 UART_Write
2442- 0x0000000020300814 UART_Check_Sync
2443- .text 0x000000002030082c 0x338 drivers/libdrivers.a(image.o)
2444- 0x0000000020300830 page_align
2445- 0x0000000020300848 find_partition_para
2446- 0x0000000020300878 read_image_part_offset
2447- 0x00000000203008cc read_flags_image
2448- 0x00000000203009b4 read_uboot_image
2449- 0x0000000020300a94 nand_read_m0
2450- 0x0000000020300b00 read_zloader_image
2451- .text 0x0000000020300b64 0x2b0 drivers/libdrivers.a(secure_verify.o)
2452- 0x0000000020300b82 BIG2SMALL
2453- 0x0000000020300bb2 bin2hex
2454- 0x0000000020300bfc secure_verify_zloader
2455- 0x0000000020300cf0 SecureVerify
2456- .text 0x0000000020300e14 0x648 drivers/libdrivers.a(spifc_loader2.o)
2457- 0x0000000020300f08 zDrvGpio_SetFunc
2458- 0x0000000020300f40 zDrvGpio_SetDirection
2459- 0x0000000020300f90 zDrvGpio_SetOutputValue
2460- 0x0000000020300fcc spi_nand_cs
2461- 0x0000000020301008 spifc_clear_fifo
2462- 0x000000002030101c spifc_clear_int
2463- 0x0000000020301178 spifc_read_oob
2464- 0x00000000203011bc spifc_read_page_raw
2465- 0x00000000203011f8 spifc_read_page
2466- 0x0000000020301274 spifc_read
2467- 0x00000000203012b8 read_data
2468- 0x000000002030130c read_id
2469- 0x0000000020301390 spifc_init
2470- 0x0000000020301414 zloader_flash_init
2471- .text 0x000000002030145c 0x1c0 drivers/libdrivers.a(bbt.o)
2472- 0x00000000203014bc nand_creat_ram_bbt
2473- 0x0000000020301500 nand_search_bbt
2474- 0x000000002030158c nand_creat_bbt
2475- 0x0000000020301608 nand_block_isbad
2476- .text 0x000000002030161c 0x2688 drivers/libdrivers.a(sha256.o)
2477- 0x0000000020303b3c sha256_starts
2478- 0x0000000020303b84 sha256_update
2479- 0x0000000020303b90 sha256_finish
2480- 0x0000000020303c7c sha256_csum_wd
2481- .text 0x0000000020303ca4 0x424 drivers/libdrivers.a(nor.o)
2482- 0x0000000020303ca4 spifc_enable
2483- 0x0000000020303cd4 spifc_disable
2484- 0x0000000020303cf8 spifc_setup_cmd
2485- 0x0000000020303d7c spifc_wait_cmd_end
2486- 0x0000000020303da8 spifc_read_fifo
2487- 0x0000000020303de4 spifc_start
2488- 0x0000000020303df4 cmd_seek
2489- 0x0000000020303e14 nor_read_reg
2490- 0x0000000020303e74 nor_read_id
2491- 0x0000000020303edc spi_nor_read
2492- 0x0000000020303f38 nor_read
2493- 0x0000000020303f8c spi_nor_read_security_register
2494- 0x0000000020303fe8 nor_read_security_register
2495- 0x000000002030403c nor_init
2496- 0x000000002030408c board_flash_init
2497- .text 0x00000000203040c8 0x82c drivers/libdrivers.a(ddr.o)
2498- 0x00000000203040c8 nsdelay
2499- 0x00000000203040e2 ddr_clk_init
2500- 0x00000000203040f8 ddr_phy_init
2501- 0x00000000203041f4 ddr_ctrl_init
2502- 0x00000000203045b0 ddr_prio_init
2503- 0x00000000203046d4 ddr_init
2504- .text 0x00000000203048f4 0xa4 drivers/libdrivers.a(drv_hash.o)
2505- 0x00000000203048f4 Hash_Calculate
2506- .text 0x0000000020304998 0x174 drivers/libdrivers.a(drv_rsa.o)
2507- 0x00000000203049b2 Rsa_Calculate
2508- .text 0x0000000020304b0c 0x28 drivers/libdrivers.a(flash.o)
2509- 0x0000000020304b0c get_boot_mode
2510- .text 0x0000000020304b34 0x1bc drivers/libdrivers.a(efuse.o)
2511- 0x0000000020304b34 efuse_init
2512- 0x0000000020304b58 get_ddr_flag
2513- 0x0000000020304c78 get_secure_verify_status
2514- 0x0000000020304cbc get_otp_secure_verify_status
2515- .text 0x0000000020304cf0 0x54 cpu/m0/libm0.a(cpu.o)
2516- 0x0000000020304cf0 timer_init
2517- 0x0000000020304d08 usdelay
2518+ .text 0x000000002030073c 0x80 lib/libarm.a(string.o)
2519+ 0x000000002030073c strlen
2520+ 0x000000002030074c memset
2521+ 0x000000002030078e memcmp
2522+ 0x00000000203007aa memcpy
2523+ .text 0x00000000203007bc 0x138 drivers/libdrivers.a(uart.o)
2524+ 0x00000000203007bc uart_init
2525+ 0x000000002030083c uart_putc
2526+ 0x0000000020300864 uart_puts
2527+ 0x0000000020300878 uart_getc
2528+ 0x0000000020300894 uart_tstc
2529+ 0x00000000203008a4 UART_Read
2530+ 0x00000000203008c0 UART_Write
2531+ 0x00000000203008dc UART_Check_Sync
2532+ .text 0x00000000203008f4 0x338 drivers/libdrivers.a(image.o)
2533+ 0x00000000203008f8 page_align
2534+ 0x0000000020300910 find_partition_para
2535+ 0x0000000020300940 read_image_part_offset
2536+ 0x0000000020300994 read_flags_image
2537+ 0x0000000020300a7c read_uboot_image
2538+ 0x0000000020300b5c nand_read_m0
2539+ 0x0000000020300bc8 read_zloader_image
2540+ .text 0x0000000020300c2c 0x2b0 drivers/libdrivers.a(secure_verify.o)
2541+ 0x0000000020300c4a BIG2SMALL
2542+ 0x0000000020300c7a bin2hex
2543+ 0x0000000020300cc4 secure_verify_zloader
2544+ 0x0000000020300db8 SecureVerify
2545+ .text 0x0000000020300edc 0x648 drivers/libdrivers.a(spifc_loader2.o)
2546+ 0x0000000020300fd0 zDrvGpio_SetFunc
2547+ 0x0000000020301008 zDrvGpio_SetDirection
2548+ 0x0000000020301058 zDrvGpio_SetOutputValue
2549+ 0x0000000020301094 spi_nand_cs
2550+ 0x00000000203010d0 spifc_clear_fifo
2551+ 0x00000000203010e4 spifc_clear_int
2552+ 0x0000000020301240 spifc_read_oob
2553+ 0x0000000020301284 spifc_read_page_raw
2554+ 0x00000000203012c0 spifc_read_page
2555+ 0x000000002030133c spifc_read
2556+ 0x0000000020301380 read_data
2557+ 0x00000000203013d4 read_id
2558+ 0x0000000020301458 spifc_init
2559+ 0x00000000203014dc zloader_flash_init
2560+ .text 0x0000000020301524 0x1c0 drivers/libdrivers.a(bbt.o)
2561+ 0x0000000020301584 nand_creat_ram_bbt
2562+ 0x00000000203015c8 nand_search_bbt
2563+ 0x0000000020301654 nand_creat_bbt
2564+ 0x00000000203016d0 nand_block_isbad
2565+ .text 0x00000000203016e4 0x2688 drivers/libdrivers.a(sha256.o)
2566+ 0x0000000020303c04 sha256_starts
2567+ 0x0000000020303c4c sha256_update
2568+ 0x0000000020303c58 sha256_finish
2569+ 0x0000000020303d44 sha256_csum_wd
2570+ .text 0x0000000020303d6c 0x424 drivers/libdrivers.a(nor.o)
2571+ 0x0000000020303d6c spifc_enable
2572+ 0x0000000020303d9c spifc_disable
2573+ 0x0000000020303dc0 spifc_setup_cmd
2574+ 0x0000000020303e44 spifc_wait_cmd_end
2575+ 0x0000000020303e70 spifc_read_fifo
2576+ 0x0000000020303eac spifc_start
2577+ 0x0000000020303ebc cmd_seek
2578+ 0x0000000020303edc nor_read_reg
2579+ 0x0000000020303f3c nor_read_id
2580+ 0x0000000020303fa4 spi_nor_read
2581+ 0x0000000020304000 nor_read
2582+ 0x0000000020304054 spi_nor_read_security_register
2583+ 0x00000000203040b0 nor_read_security_register
2584+ 0x0000000020304104 nor_init
2585+ 0x0000000020304154 board_flash_init
2586+ .text 0x0000000020304190 0x82c drivers/libdrivers.a(ddr.o)
2587+ 0x0000000020304190 nsdelay
2588+ 0x00000000203041aa ddr_clk_init
2589+ 0x00000000203041c0 ddr_phy_init
2590+ 0x00000000203042bc ddr_ctrl_init
2591+ 0x0000000020304678 ddr_prio_init
2592+ 0x000000002030479c ddr_init
2593+ .text 0x00000000203049bc 0xa4 drivers/libdrivers.a(drv_hash.o)
2594+ 0x00000000203049bc Hash_Calculate
2595+ .text 0x0000000020304a60 0x174 drivers/libdrivers.a(drv_rsa.o)
2596+ 0x0000000020304a7a Rsa_Calculate
2597+ .text 0x0000000020304bd4 0x28 drivers/libdrivers.a(flash.o)
2598+ 0x0000000020304bd4 get_boot_mode
2599+ .text 0x0000000020304bfc 0x1bc drivers/libdrivers.a(efuse.o)
2600+ 0x0000000020304bfc efuse_init
2601+ 0x0000000020304c20 get_ddr_flag
2602+ 0x0000000020304d40 get_secure_verify_status
2603+ 0x0000000020304d84 get_otp_secure_verify_status
2604+ .text 0x0000000020304db8 0x54 cpu/m0/libm0.a(cpu.o)
2605+ 0x0000000020304db8 timer_init
2606+ 0x0000000020304dd0 usdelay
2607
2608-.glue_7 0x0000000020304d44 0x0
2609+.glue_7 0x0000000020304e0c 0x0
2610 .glue_7 0x0000000000000000 0x0 linker stubs
2611
2612-.glue_7t 0x0000000020304d44 0x0
2613+.glue_7t 0x0000000020304e0c 0x0
2614 .glue_7t 0x0000000000000000 0x0 linker stubs
2615
2616-.vfp11_veneer 0x0000000020304d44 0x0
2617+.vfp11_veneer 0x0000000020304e0c 0x0
2618 .vfp11_veneer 0x0000000000000000 0x0 linker stubs
2619
2620-.v4_bx 0x0000000020304d44 0x0
2621+.v4_bx 0x0000000020304e0c 0x0
2622 .v4_bx 0x0000000000000000 0x0 linker stubs
2623
2624-.iplt 0x0000000020304d44 0x0
2625+.iplt 0x0000000020304e0c 0x0
2626 .iplt 0x0000000000000000 0x0 cpu/m0/start.o
2627- 0x0000000020304d44 . = ALIGN (0x4)
2628+ 0x0000000020304e0c . = ALIGN (0x4)
2629
2630-.rodata 0x0000000020304d44 0x3f0
2631+.rodata 0x0000000020304e0c 0x3f0
2632 *(.rodata)
2633- .rodata 0x0000000020304d44 0x270 drivers/libdrivers.a(spifc_loader2.o)
2634- .rodata 0x0000000020304fb4 0x13 drivers/libdrivers.a(sha256.o)
2635- 0x0000000020304fb4 sha256_der_prefix
2636- *fill* 0x0000000020304fc7 0x1
2637- .rodata 0x0000000020304fc8 0x16c drivers/libdrivers.a(nor.o)
2638+ .rodata 0x0000000020304e0c 0x270 drivers/libdrivers.a(spifc_loader2.o)
2639+ .rodata 0x000000002030507c 0x13 drivers/libdrivers.a(sha256.o)
2640+ 0x000000002030507c sha256_der_prefix
2641+ *fill* 0x000000002030508f 0x1
2642+ .rodata 0x0000000020305090 0x16c drivers/libdrivers.a(nor.o)
2643
2644-.rodata.str1.1 0x0000000020305134 0x48d
2645+.rodata.str1.1 0x00000000203051fc 0x516
2646 .rodata.str1.1
2647- 0x0000000020305134 0x18a lib/libarm.a(board.o)
2648- 0x1a3 (松开之前的大小)
2649+ 0x00000000203051fc 0x213 lib/libarm.a(board.o)
2650+ 0x24e (松开之前的大小)
2651 .rodata.str1.1
2652- 0x00000000203052be 0xef drivers/libdrivers.a(image.o)
2653+ 0x000000002030540f 0xef drivers/libdrivers.a(image.o)
2654 0x115 (松开之前的大小)
2655 .rodata.str1.1
2656- 0x00000000203053ad 0x5b drivers/libdrivers.a(secure_verify.o)
2657+ 0x00000000203054fe 0x5b drivers/libdrivers.a(secure_verify.o)
2658 0x5d (松开之前的大小)
2659 .rodata.str1.1
2660- 0x0000000020305408 0x3d drivers/libdrivers.a(spifc_loader2.o)
2661+ 0x0000000020305559 0x3d drivers/libdrivers.a(spifc_loader2.o)
2662 0x4a (松开之前的大小)
2663 .rodata.str1.1
2664- 0x0000000020305445 0x9 drivers/libdrivers.a(bbt.o)
2665+ 0x0000000020305596 0x9 drivers/libdrivers.a(bbt.o)
2666 .rodata.str1.1
2667- 0x000000002030544e 0x15c drivers/libdrivers.a(nor.o)
2668+ 0x000000002030559f 0x15c drivers/libdrivers.a(nor.o)
2669 .rodata.str1.1
2670- 0x00000000203055aa 0x17 drivers/libdrivers.a(efuse.o)
2671+ 0x00000000203056fb 0x17 drivers/libdrivers.a(efuse.o)
2672
2673-.rel.dyn 0x00000000203055c4 0x0
2674+.rel.dyn 0x0000000020305714 0x0
2675 .rel.iplt 0x0000000000000000 0x0 cpu/m0/start.o
2676- 0x00000000203055c4 . = ALIGN (0x4)
2677+ 0x0000000020305714 . = ALIGN (0x4)
2678
2679-.data 0x00000000203055c4 0xd0
2680+.data 0x0000000020305714 0xd0
2681 *(.data)
2682- .data 0x00000000203055c4 0x0 cpu/m0/start.o
2683- .data 0x00000000203055c4 0x0 lib/libarm.a(board.o)
2684- .data 0x00000000203055c4 0x0 lib/libarm.a(string.o)
2685- .data 0x00000000203055c4 0x0 drivers/libdrivers.a(uart.o)
2686- .data 0x00000000203055c4 0x0 drivers/libdrivers.a(image.o)
2687- .data 0x00000000203055c4 0x0 drivers/libdrivers.a(secure_verify.o)
2688- .data 0x00000000203055c4 0x0 drivers/libdrivers.a(spifc_loader2.o)
2689- .data 0x00000000203055c4 0x40 drivers/libdrivers.a(bbt.o)
2690- .data 0x0000000020305604 0x40 drivers/libdrivers.a(sha256.o)
2691- .data 0x0000000020305644 0x50 drivers/libdrivers.a(nor.o)
2692- 0x0000000020305644 nor_cmd_table
2693- .data 0x0000000020305694 0x0 drivers/libdrivers.a(ddr.o)
2694- .data 0x0000000020305694 0x0 drivers/libdrivers.a(drv_hash.o)
2695- .data 0x0000000020305694 0x0 drivers/libdrivers.a(drv_rsa.o)
2696- .data 0x0000000020305694 0x0 drivers/libdrivers.a(flash.o)
2697- .data 0x0000000020305694 0x0 drivers/libdrivers.a(efuse.o)
2698- .data 0x0000000020305694 0x0 cpu/m0/libm0.a(cpu.o)
2699+ .data 0x0000000020305714 0x0 cpu/m0/start.o
2700+ .data 0x0000000020305714 0x0 lib/libarm.a(board.o)
2701+ .data 0x0000000020305714 0x0 lib/libarm.a(string.o)
2702+ .data 0x0000000020305714 0x0 drivers/libdrivers.a(uart.o)
2703+ .data 0x0000000020305714 0x0 drivers/libdrivers.a(image.o)
2704+ .data 0x0000000020305714 0x0 drivers/libdrivers.a(secure_verify.o)
2705+ .data 0x0000000020305714 0x0 drivers/libdrivers.a(spifc_loader2.o)
2706+ .data 0x0000000020305714 0x40 drivers/libdrivers.a(bbt.o)
2707+ .data 0x0000000020305754 0x40 drivers/libdrivers.a(sha256.o)
2708+ .data 0x0000000020305794 0x50 drivers/libdrivers.a(nor.o)
2709+ 0x0000000020305794 nor_cmd_table
2710+ .data 0x00000000203057e4 0x0 drivers/libdrivers.a(ddr.o)
2711+ .data 0x00000000203057e4 0x0 drivers/libdrivers.a(drv_hash.o)
2712+ .data 0x00000000203057e4 0x0 drivers/libdrivers.a(drv_rsa.o)
2713+ .data 0x00000000203057e4 0x0 drivers/libdrivers.a(flash.o)
2714+ .data 0x00000000203057e4 0x0 drivers/libdrivers.a(efuse.o)
2715+ .data 0x00000000203057e4 0x0 cpu/m0/libm0.a(cpu.o)
2716
2717-.igot.plt 0x0000000020305694 0x0
2718+.igot.plt 0x00000000203057e4 0x0
2719 .igot.plt 0x0000000000000000 0x0 cpu/m0/start.o
2720- 0x0000000020305694 . = ALIGN (0x4)
2721+ 0x00000000203057e4 . = ALIGN (0x4)
2722
2723 .got
2724 *(.got)
2725- 0x0000000020305694 . = ALIGN (0x4)
2726- 0x0000000020305694 __bss_start = .
2727+ 0x00000000203057e4 . = ALIGN (0x4)
2728+ 0x00000000203057e4 __bss_start = .
2729
2730-.bss 0x0000000020305694 0x1e8
2731+.bss 0x00000000203057e4 0x1e8
2732 *(.bss)
2733- .bss 0x0000000020305694 0x0 cpu/m0/start.o
2734- .bss 0x0000000020305694 0x4 lib/libarm.a(board.o)
2735- 0x0000000020305694 zloader_entry_point
2736- .bss 0x0000000020305698 0x0 lib/libarm.a(string.o)
2737- .bss 0x0000000020305698 0x0 drivers/libdrivers.a(uart.o)
2738- .bss 0x0000000020305698 0x0 drivers/libdrivers.a(image.o)
2739- .bss 0x0000000020305698 0x104 drivers/libdrivers.a(secure_verify.o)
2740- 0x0000000020305698 result
2741- .bss 0x000000002030579c 0x4 drivers/libdrivers.a(spifc_loader2.o)
2742- .bss 0x00000000203057a0 0x80 drivers/libdrivers.a(bbt.o)
2743- .bss 0x0000000020305820 0x0 drivers/libdrivers.a(sha256.o)
2744- .bss 0x0000000020305820 0x28 drivers/libdrivers.a(nor.o)
2745- 0x0000000020305820 spi_nor_flash
2746- 0x0000000020305824 otp_data
2747- .bss 0x0000000020305848 0x0 drivers/libdrivers.a(ddr.o)
2748- .bss 0x0000000020305848 0x0 drivers/libdrivers.a(drv_hash.o)
2749- .bss 0x0000000020305848 0x0 drivers/libdrivers.a(drv_rsa.o)
2750- .bss 0x0000000020305848 0x24 drivers/libdrivers.a(flash.o)
2751- 0x0000000020305848 flash
2752- .bss 0x000000002030586c 0x0 drivers/libdrivers.a(efuse.o)
2753- .bss 0x000000002030586c 0x10 cpu/m0/libm0.a(cpu.o)
2754- 0x000000002030586c g_tick
2755- 0x000000002030587c __bss_end = .
2756- 0x000000002030587c . = ALIGN (0x4)
2757+ .bss 0x00000000203057e4 0x0 cpu/m0/start.o
2758+ .bss 0x00000000203057e4 0x4 lib/libarm.a(board.o)
2759+ 0x00000000203057e4 zloader_entry_point
2760+ .bss 0x00000000203057e8 0x0 lib/libarm.a(string.o)
2761+ .bss 0x00000000203057e8 0x0 drivers/libdrivers.a(uart.o)
2762+ .bss 0x00000000203057e8 0x0 drivers/libdrivers.a(image.o)
2763+ .bss 0x00000000203057e8 0x104 drivers/libdrivers.a(secure_verify.o)
2764+ 0x00000000203057e8 result
2765+ .bss 0x00000000203058ec 0x4 drivers/libdrivers.a(spifc_loader2.o)
2766+ .bss 0x00000000203058f0 0x80 drivers/libdrivers.a(bbt.o)
2767+ .bss 0x0000000020305970 0x0 drivers/libdrivers.a(sha256.o)
2768+ .bss 0x0000000020305970 0x28 drivers/libdrivers.a(nor.o)
2769+ 0x0000000020305970 spi_nor_flash
2770+ 0x0000000020305974 otp_data
2771+ .bss 0x0000000020305998 0x0 drivers/libdrivers.a(ddr.o)
2772+ .bss 0x0000000020305998 0x0 drivers/libdrivers.a(drv_hash.o)
2773+ .bss 0x0000000020305998 0x0 drivers/libdrivers.a(drv_rsa.o)
2774+ .bss 0x0000000020305998 0x24 drivers/libdrivers.a(flash.o)
2775+ 0x0000000020305998 flash
2776+ .bss 0x00000000203059bc 0x0 drivers/libdrivers.a(efuse.o)
2777+ .bss 0x00000000203059bc 0x10 cpu/m0/libm0.a(cpu.o)
2778+ 0x00000000203059bc g_tick
2779+ 0x00000000203059cc __bss_end = .
2780+ 0x00000000203059cc . = ALIGN (0x4)
2781
2782-.para 0x0000000082000000 0x0 加载地址 0x000000002030587c
2783+.para 0x0000000082000000 0x0 加载地址 0x00000000203059cc
2784 0x0000000082000000 __para_start = .
2785 *(.para)
2786 0x0000000082000000 __para_end = .
2787@@ -356,22 +356,22 @@
2788 .stabstr 0x0000000000000000 0x67
2789 .stabstr 0x0000000000000000 0x67 cpu/m0/start.o
2790
2791-.debug_info 0x0000000000000000 0x6536
2792- .debug_info 0x0000000000000000 0x92d lib/libarm.a(board.o)
2793- .debug_info 0x000000000000092d 0x22b lib/libarm.a(string.o)
2794- .debug_info 0x0000000000000b58 0x2a0 drivers/libdrivers.a(uart.o)
2795- .debug_info 0x0000000000000df8 0xdd6 drivers/libdrivers.a(image.o)
2796- .debug_info 0x0000000000001bce 0xb01 drivers/libdrivers.a(secure_verify.o)
2797- .debug_info 0x00000000000026cf 0x1661 drivers/libdrivers.a(spifc_loader2.o)
2798- .debug_info 0x0000000000003d30 0x70f drivers/libdrivers.a(bbt.o)
2799- .debug_info 0x000000000000443f 0x586 drivers/libdrivers.a(sha256.o)
2800- .debug_info 0x00000000000049c5 0xd5f drivers/libdrivers.a(nor.o)
2801- .debug_info 0x0000000000005724 0x329 drivers/libdrivers.a(ddr.o)
2802- .debug_info 0x0000000000005a4d 0x1e8 drivers/libdrivers.a(drv_hash.o)
2803- .debug_info 0x0000000000005c35 0x3b4 drivers/libdrivers.a(drv_rsa.o)
2804- .debug_info 0x0000000000005fe9 0x20f drivers/libdrivers.a(flash.o)
2805- .debug_info 0x00000000000061f8 0x1c3 drivers/libdrivers.a(efuse.o)
2806- .debug_info 0x00000000000063bb 0x17b cpu/m0/libm0.a(cpu.o)
2807+.debug_info 0x0000000000000000 0x663a
2808+ .debug_info 0x0000000000000000 0xa31 lib/libarm.a(board.o)
2809+ .debug_info 0x0000000000000a31 0x22b lib/libarm.a(string.o)
2810+ .debug_info 0x0000000000000c5c 0x2a0 drivers/libdrivers.a(uart.o)
2811+ .debug_info 0x0000000000000efc 0xdd6 drivers/libdrivers.a(image.o)
2812+ .debug_info 0x0000000000001cd2 0xb01 drivers/libdrivers.a(secure_verify.o)
2813+ .debug_info 0x00000000000027d3 0x1661 drivers/libdrivers.a(spifc_loader2.o)
2814+ .debug_info 0x0000000000003e34 0x70f drivers/libdrivers.a(bbt.o)
2815+ .debug_info 0x0000000000004543 0x586 drivers/libdrivers.a(sha256.o)
2816+ .debug_info 0x0000000000004ac9 0xd5f drivers/libdrivers.a(nor.o)
2817+ .debug_info 0x0000000000005828 0x329 drivers/libdrivers.a(ddr.o)
2818+ .debug_info 0x0000000000005b51 0x1e8 drivers/libdrivers.a(drv_hash.o)
2819+ .debug_info 0x0000000000005d39 0x3b4 drivers/libdrivers.a(drv_rsa.o)
2820+ .debug_info 0x00000000000060ed 0x20f drivers/libdrivers.a(flash.o)
2821+ .debug_info 0x00000000000062fc 0x1c3 drivers/libdrivers.a(efuse.o)
2822+ .debug_info 0x00000000000064bf 0x17b cpu/m0/libm0.a(cpu.o)
2823
2824 .debug_abbrev 0x0000000000000000 0x1c94
2825 .debug_abbrev 0x0000000000000000 0x304 lib/libarm.a(board.o)
2826@@ -390,22 +390,22 @@
2827 .debug_abbrev 0x0000000000001aaf 0x11d drivers/libdrivers.a(efuse.o)
2828 .debug_abbrev 0x0000000000001bcc 0xc8 cpu/m0/libm0.a(cpu.o)
2829
2830-.debug_loc 0x0000000000000000 0x96e6
2831- .debug_loc 0x0000000000000000 0x2f4 lib/libarm.a(board.o)
2832- .debug_loc 0x00000000000002f4 0x29d lib/libarm.a(string.o)
2833- .debug_loc 0x0000000000000591 0x228 drivers/libdrivers.a(uart.o)
2834- .debug_loc 0x00000000000007b9 0x6a2 drivers/libdrivers.a(image.o)
2835- .debug_loc 0x0000000000000e5b 0x790 drivers/libdrivers.a(secure_verify.o)
2836- .debug_loc 0x00000000000015eb 0xef4 drivers/libdrivers.a(spifc_loader2.o)
2837- .debug_loc 0x00000000000024df 0x282 drivers/libdrivers.a(bbt.o)
2838- .debug_loc 0x0000000000002761 0x5f3f drivers/libdrivers.a(sha256.o)
2839- .debug_loc 0x00000000000086a0 0x80a drivers/libdrivers.a(nor.o)
2840- .debug_loc 0x0000000000008eaa 0x2d8 drivers/libdrivers.a(ddr.o)
2841- .debug_loc 0x0000000000009182 0x1b8 drivers/libdrivers.a(drv_hash.o)
2842- .debug_loc 0x000000000000933a 0x238 drivers/libdrivers.a(drv_rsa.o)
2843- .debug_loc 0x0000000000009572 0x1f drivers/libdrivers.a(flash.o)
2844- .debug_loc 0x0000000000009591 0xab drivers/libdrivers.a(efuse.o)
2845- .debug_loc 0x000000000000963c 0xaa cpu/m0/libm0.a(cpu.o)
2846+.debug_loc 0x0000000000000000 0x97b8
2847+ .debug_loc 0x0000000000000000 0x3c6 lib/libarm.a(board.o)
2848+ .debug_loc 0x00000000000003c6 0x29d lib/libarm.a(string.o)
2849+ .debug_loc 0x0000000000000663 0x228 drivers/libdrivers.a(uart.o)
2850+ .debug_loc 0x000000000000088b 0x6a2 drivers/libdrivers.a(image.o)
2851+ .debug_loc 0x0000000000000f2d 0x790 drivers/libdrivers.a(secure_verify.o)
2852+ .debug_loc 0x00000000000016bd 0xef4 drivers/libdrivers.a(spifc_loader2.o)
2853+ .debug_loc 0x00000000000025b1 0x282 drivers/libdrivers.a(bbt.o)
2854+ .debug_loc 0x0000000000002833 0x5f3f drivers/libdrivers.a(sha256.o)
2855+ .debug_loc 0x0000000000008772 0x80a drivers/libdrivers.a(nor.o)
2856+ .debug_loc 0x0000000000008f7c 0x2d8 drivers/libdrivers.a(ddr.o)
2857+ .debug_loc 0x0000000000009254 0x1b8 drivers/libdrivers.a(drv_hash.o)
2858+ .debug_loc 0x000000000000940c 0x238 drivers/libdrivers.a(drv_rsa.o)
2859+ .debug_loc 0x0000000000009644 0x1f drivers/libdrivers.a(flash.o)
2860+ .debug_loc 0x0000000000009663 0xab drivers/libdrivers.a(efuse.o)
2861+ .debug_loc 0x000000000000970e 0xaa cpu/m0/libm0.a(cpu.o)
2862
2863 .debug_aranges 0x0000000000000000 0x1e0
2864 .debug_aranges
2865@@ -449,53 +449,53 @@
2866 .debug_ranges 0x00000000000001d8 0x28 drivers/libdrivers.a(drv_hash.o)
2867 .debug_ranges 0x0000000000000200 0x38 drivers/libdrivers.a(drv_rsa.o)
2868
2869-.debug_line 0x0000000000000000 0x2022
2870- .debug_line 0x0000000000000000 0x387 lib/libarm.a(board.o)
2871- .debug_line 0x0000000000000387 0x152 lib/libarm.a(string.o)
2872- .debug_line 0x00000000000004d9 0x112 drivers/libdrivers.a(uart.o)
2873- .debug_line 0x00000000000005eb 0x3b8 drivers/libdrivers.a(image.o)
2874- .debug_line 0x00000000000009a3 0x38e drivers/libdrivers.a(secure_verify.o)
2875- .debug_line 0x0000000000000d31 0x442 drivers/libdrivers.a(spifc_loader2.o)
2876- .debug_line 0x0000000000001173 0x251 drivers/libdrivers.a(bbt.o)
2877- .debug_line 0x00000000000013c4 0x2bb drivers/libdrivers.a(sha256.o)
2878- .debug_line 0x000000000000167f 0x2a2 drivers/libdrivers.a(nor.o)
2879- .debug_line 0x0000000000001921 0x299 drivers/libdrivers.a(ddr.o)
2880- .debug_line 0x0000000000001bba 0x88 drivers/libdrivers.a(drv_hash.o)
2881- .debug_line 0x0000000000001c42 0x117 drivers/libdrivers.a(drv_rsa.o)
2882- .debug_line 0x0000000000001d59 0x10a drivers/libdrivers.a(flash.o)
2883- .debug_line 0x0000000000001e63 0x118 drivers/libdrivers.a(efuse.o)
2884- .debug_line 0x0000000000001f7b 0xa7 cpu/m0/libm0.a(cpu.o)
2885+.debug_line 0x0000000000000000 0x205d
2886+ .debug_line 0x0000000000000000 0x3c2 lib/libarm.a(board.o)
2887+ .debug_line 0x00000000000003c2 0x152 lib/libarm.a(string.o)
2888+ .debug_line 0x0000000000000514 0x112 drivers/libdrivers.a(uart.o)
2889+ .debug_line 0x0000000000000626 0x3b8 drivers/libdrivers.a(image.o)
2890+ .debug_line 0x00000000000009de 0x38e drivers/libdrivers.a(secure_verify.o)
2891+ .debug_line 0x0000000000000d6c 0x442 drivers/libdrivers.a(spifc_loader2.o)
2892+ .debug_line 0x00000000000011ae 0x251 drivers/libdrivers.a(bbt.o)
2893+ .debug_line 0x00000000000013ff 0x2bb drivers/libdrivers.a(sha256.o)
2894+ .debug_line 0x00000000000016ba 0x2a2 drivers/libdrivers.a(nor.o)
2895+ .debug_line 0x000000000000195c 0x299 drivers/libdrivers.a(ddr.o)
2896+ .debug_line 0x0000000000001bf5 0x88 drivers/libdrivers.a(drv_hash.o)
2897+ .debug_line 0x0000000000001c7d 0x117 drivers/libdrivers.a(drv_rsa.o)
2898+ .debug_line 0x0000000000001d94 0x10a drivers/libdrivers.a(flash.o)
2899+ .debug_line 0x0000000000001e9e 0x118 drivers/libdrivers.a(efuse.o)
2900+ .debug_line 0x0000000000001fb6 0xa7 cpu/m0/libm0.a(cpu.o)
2901
2902-.debug_str 0x0000000000000000 0x160a
2903- .debug_str 0x0000000000000000 0x555 lib/libarm.a(board.o)
2904- 0x5cb (松开之前的大小)
2905- .debug_str 0x0000000000000555 0x3f lib/libarm.a(string.o)
2906+.debug_str 0x0000000000000000 0x1616
2907+ .debug_str 0x0000000000000000 0x561 lib/libarm.a(board.o)
2908+ 0x5d7 (松开之前的大小)
2909+ .debug_str 0x0000000000000561 0x3f lib/libarm.a(string.o)
2910 0x214 (松开之前的大小)
2911- .debug_str 0x0000000000000594 0xe2 drivers/libdrivers.a(uart.o)
2912+ .debug_str 0x00000000000005a0 0xe2 drivers/libdrivers.a(uart.o)
2913 0x253 (松开之前的大小)
2914- .debug_str 0x0000000000000676 0x35b drivers/libdrivers.a(image.o)
2915+ .debug_str 0x0000000000000682 0x35b drivers/libdrivers.a(image.o)
2916 0x854 (松开之前的大小)
2917- .debug_str 0x00000000000009d1 0x2f9 drivers/libdrivers.a(secure_verify.o)
2918+ .debug_str 0x00000000000009dd 0x2f9 drivers/libdrivers.a(secure_verify.o)
2919 0x61f (松开之前的大小)
2920- .debug_str 0x0000000000000cca 0x3c3 drivers/libdrivers.a(spifc_loader2.o)
2921+ .debug_str 0x0000000000000cd6 0x3c3 drivers/libdrivers.a(spifc_loader2.o)
2922 0x6c1 (松开之前的大小)
2923- .debug_str 0x000000000000108d 0x103 drivers/libdrivers.a(bbt.o)
2924+ .debug_str 0x0000000000001099 0x103 drivers/libdrivers.a(bbt.o)
2925 0x3fe (松开之前的大小)
2926- .debug_str 0x0000000000001190 0xc3 drivers/libdrivers.a(sha256.o)
2927+ .debug_str 0x000000000000119c 0xc3 drivers/libdrivers.a(sha256.o)
2928 0x2b7 (松开之前的大小)
2929- .debug_str 0x0000000000001253 0x1ad drivers/libdrivers.a(nor.o)
2930+ .debug_str 0x000000000000125f 0x1ad drivers/libdrivers.a(nor.o)
2931 0x5f3 (松开之前的大小)
2932- .debug_str 0x0000000000001400 0x54 drivers/libdrivers.a(ddr.o)
2933+ .debug_str 0x000000000000140c 0x54 drivers/libdrivers.a(ddr.o)
2934 0x216 (松开之前的大小)
2935- .debug_str 0x0000000000001454 0x87 drivers/libdrivers.a(drv_hash.o)
2936+ .debug_str 0x0000000000001460 0x87 drivers/libdrivers.a(drv_hash.o)
2937 0x25a (松开之前的大小)
2938- .debug_str 0x00000000000014db 0x79 drivers/libdrivers.a(drv_rsa.o)
2939+ .debug_str 0x00000000000014e7 0x79 drivers/libdrivers.a(drv_rsa.o)
2940 0x29c (松开之前的大小)
2941- .debug_str 0x0000000000001554 0x12 drivers/libdrivers.a(flash.o)
2942+ .debug_str 0x0000000000001560 0x12 drivers/libdrivers.a(flash.o)
2943 0x2a8 (松开之前的大小)
2944- .debug_str 0x0000000000001566 0x20 drivers/libdrivers.a(efuse.o)
2945+ .debug_str 0x0000000000001572 0x20 drivers/libdrivers.a(efuse.o)
2946 0x255 (松开之前的大小)
2947- .debug_str 0x0000000000001586 0x84 cpu/m0/libm0.a(cpu.o)
2948+ .debug_str 0x0000000000001592 0x84 cpu/m0/libm0.a(cpu.o)
2949 0x1f8 (松开之前的大小)
2950
2951 .debug_frame 0x0000000000000000 0xaf0
2952diff --git a/Uboot/cp/ps/driver/inc/misc/drvs_voiceprocess.h b/Uboot/cp/ps/driver/inc/misc/drvs_voiceprocess.h
2953index 67cc84d..acceb20 100755
2954--- a/Uboot/cp/ps/driver/inc/misc/drvs_voiceprocess.h
2955+++ b/Uboot/cp/ps/driver/inc/misc/drvs_voiceprocess.h
2956@@ -283,6 +283,10 @@
2957 BOOL firstRegZCATFlag; //25
2958 T_Hal_EcallData ecallData;//26
2959 UINT8 voice_nv_update;//27
2960+ UINT8 useVoiceBuffer; // 0 not use,1 use
2961+ UINT8 voiceBufferType; //0 single core, 1 dual core
2962+
2963+
2964 } T_zDrvVoice_GbVar; //T_zDrvVoice_GbVar
2965
2966 typedef struct
2967diff --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
2968index 7489d52..20c1ddc 100755
2969--- a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/audio_config/audioRef_cfg.c
2970+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/audio_config/audioRef_cfg.c
2971@@ -25,6 +25,7 @@
2972 #include "drvs_general.h"
2973 #include "drvs_i2s.h"
2974 #include "drvs_voiceprocess.h"
2975+#include "hal_voiceprocess.h"
2976 #include "drvs_voice_config.h"
2977 #include "drvs_i2c.h"
2978 #include "NvParam_drv.h"
2979@@ -132,7 +133,7 @@
2980
2981 //#define AUDIO_USE_FIXED_ADDRESS
2982
2983-#define VP_INOUT_BAK_BUFFER_SIZE 0x30000 // 0x60000
2984+//#define VP_INOUT_BAK_BUFFER_SIZE 0x30000 // 0x60000
2985 #define VP_INOUT_NOBAK_BUFSIZE 640
2986
2987 /**************************************************************************
2988@@ -595,7 +596,8 @@
2989 //ret = zDrvNand_Read(OS_FLASH_VOICE_DRV_RW_NONFAC_BASE_ADDR, sizeof(audionvflag), ((UINT8 *)(&audionvflag)));
2990 ret = zOss_NvItemRead(OS_FLASH_VOICE_DRV_RW_NONFAC_BASE_ADDR, ((UINT8 *)(&audionvflag)), sizeof(audionvflag));
2991
2992- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, " zDrvVoiceConfig_Init zOss_NvItemRead isVpParamInNv=%d,isUseSlicCodec=%d!\n", audionvflag.isVpParamInNv, audionvflag.isUseSlicCodec);
2993+
2994+ 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);
2995 //hal_TestTopI2sConfig();
2996
2997 if (ret != DRV_SUCCESS)
2998diff --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
2999index 01399c1..187ec92 100755
3000--- a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/audio_lib/amr/lib/armv7-a/GCC/amr.a
3001+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/audio_lib/amr/lib/armv7-a/GCC/amr.a
3002Binary files differ
3003diff --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
3004index dff7364..db57346 100755
3005--- a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/audiointf/hal_audextintf.c
3006+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/audiointf/hal_audextintf.c
3007@@ -193,6 +193,40 @@
3008 {
3009 return g_voiceVar.muteEn;
3010 }
3011+
3012+int zDrvVp_SetVoiceProc_Wrap(int val)
3013+{
3014+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: val=%d !\n",__func__,val);
3015+
3016+ g_voiceVar.audio_ctrlFlag.isUseVoiceProc = val;
3017+ return DRV_SUCCESS;
3018+}
3019+
3020+int zDrvVp_GetVoiceProc_Wrap(void)
3021+{
3022+ return g_voiceVar.audio_ctrlFlag.isUseVoiceProc;
3023+}
3024+
3025+int zDrvVp_SetVoiceBuffer_Wrap(int en,int type)
3026+{
3027+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: en=%d,type=%d !\n",__func__,en,type);
3028+
3029+ g_voiceVar.useVoiceBuffer = en;
3030+ g_voiceVar.voiceBufferType = type;
3031+ return DRV_SUCCESS;
3032+}
3033+
3034+void zDrvVp_GetVoiceBuffer_Wrap(int *en,int *type)
3035+{
3036+ if((en!=NULL)&&(type!=NULL)){
3037+ *en = g_voiceVar.useVoiceBuffer;
3038+ *type = g_voiceVar.voiceBufferType;
3039+
3040+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: en=%d,type=%d !\n",__func__,*type,*en);
3041+ }
3042+}
3043+
3044+
3045 SINT32 zDrvVp_SetRxMute_Wrap(int enable)
3046 {
3047 return zDrvVp_SetRxMute(enable, VOICE_DOWNLINK);
3048diff --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
3049index 2f0e803..5146753 100755
3050--- a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/audiointf/voice_procintf.c
3051+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/audiointf/voice_procintf.c
3052@@ -15,6 +15,10 @@
3053 * Include files
3054 ****************************************************************************/
3055 #include "drvs_general.h"
3056+
3057+#include "drvs_volte.h"
3058+#include "drvs_voiceprocess.h"
3059+
3060 #include "drvs_ramlog.h"
3061 #include <oss_clib.h>
3062 #include <oss_kernel.h>
3063@@ -73,8 +77,12 @@
3064
3065 g_voiceVar.isUseSlicCodec = g_voiceVar.audio_ctrlFlag.isUseSlicCodec;
3066 g_voiceVar.g_isUseTdm = g_voiceVar.audio_ctrlFlag.isUseTdm;
3067+
3068+ g_voiceVar.useVoiceBuffer = g_voiceVar.audio_ctrlFlag.isUseVoiceBuffer; // 0 not use,1 use
3069+ g_voiceVar.voiceBufferType = g_voiceVar.audio_ctrlFlag.selVoiceBufferType;//0 single core, 1 dual core
3070
3071- 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);
3072+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, " VoiceProc_InitNvParam isUseVoiceProc=%d,isUseSlicCodec=%d,isUseTdm=%d,useVoiceBuffer=%d,voiceBufferType=%d!\n", g_voiceVar.audio_ctrlFlag.isUseVoiceProc, \
3073+ g_voiceVar.isUseSlicCodec, g_voiceVar.audio_ctrlFlag.isUseTdm,g_voiceVar.useVoiceBuffer,g_voiceVar.voiceBufferType);
3074 if (g_voiceVar.audio_ctrlFlag.isUseVoiceProc == 1)
3075 {
3076 #ifdef _USE_NXP_AUD
3077diff --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
3078index 983a92a..5ea7c1d 100755
3079--- a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/i2s/hal_i2s.c
3080+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/i2s/hal_i2s.c
3081@@ -4322,6 +4322,37 @@
3082 */
3083 VOID vp_SetTopI2sConfig(VOID)
3084 {
3085+
3086+
3087+UINT32 AmrRegBit = 0;
3088+
3089+if (g_voiceVar.useVoiceBuffer == 1){
3090+
3091+
3092+
3093+ /* inter loop */
3094+ AmrRegBit = ARM_I2S_LOOP_CFG;
3095+
3096+ AmrRegBit &= 0xfffffe07;
3097+ AmrRegBit |= 0x000000a8; /* 0x000000a8 loop dsp afe(loop i2s1)--arm i2s2(loop i2s2) 0x00000150 loop dsp arm(loop i2s1)--afe i2s2(loop i2s2)*/
3098+
3099+ ARM_I2S_LOOP_CFG = AmrRegBit;
3100+
3101+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_SetTopI2sConfig ARM_I2S_LOOP_CFG=0x%x\n", ARM_I2S_LOOP_CFG);
3102+}
3103+#ifdef CONFIG_VOICE_BUFFER_DRV
3104+ /* inter loop */
3105+ AmrRegBit = ARM_I2S_LOOP_CFG;
3106+
3107+ AmrRegBit &= 0xfffffe07;
3108+ AmrRegBit |= 0x000000a8; /* 0x000000a8 loop dsp afe(loop i2s1)--arm i2s2(loop i2s2) 0x00000150 loop dsp arm(loop i2s1)--afe i2s2(loop i2s2)*/
3109+
3110+ ARM_I2S_LOOP_CFG = AmrRegBit;
3111+
3112+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_SetTopI2sConfig ARM_I2S_LOOP_CFG=0x%x\n", ARM_I2S_LOOP_CFG);
3113+
3114+#endif
3115+
3116 #if 0
3117 UINT32 AmrRegBit = 0;
3118 int ret;
3119diff --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
3120new file mode 100755
3121index 0000000..a9fbd34
3122--- /dev/null
3123+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/include/hal_voicebuffer.h
3124@@ -0,0 +1,107 @@
3125+/*******************************************************************************
3126+ * Copyright (C) 2007, ZTE Corporation.
3127+ *
3128+ * File Name: hal_voicebuffer.h
3129+ * File Mark:
3130+* Description: Provide voicebuffer hal function prototype declaration and type declaration.
3131+ * Others:
3132+ * Version: V0.5
3133+ * Author: xxq
3134+ * Date: 2024-07-11
3135+ * History 1:
3136+ * Date:
3137+ * Version:
3138+ * Author:
3139+ * Modification: add mute/read/write/loopback.
3140+ * History 2:
3141+ ********************************************************************************/
3142+
3143+#ifndef _HAL_VOICEBUFFER_H
3144+#define _HAL_VOICEBUFFER_H
3145+
3146+
3147+/****************************************************************************
3148+* Include files
3149+****************************************************************************/
3150+
3151+
3152+/****************************************************************************
3153+* Macros
3154+****************************************************************************/
3155+#define VP_BUF_LENGTH 0x7FF80 //0xFFD80 //0x7FE40 //0x4df80// (0.5M 0x80000)
3156+#define VP_FRAME_BUFFER_SIZE 320 //20ms 800KHZ
3157+#define VP_I2S_BUFFER_SIZE 320
3158+#define VOICE_SYNC_TIMEOUT_TIME 100
3159+
3160+ //#define VP_INOUT_BAK_BUFFER_SIZE 0x30000 // 0x60000
3161+#define VP_INOUT_NOBAK_BUFSIZE 640
3162+#define VB_MAX_INT 0x7fffffff
3163+#define VB_MIN_INT 0 //(0-2<<31)//0x80000000
3164+
3165+#define VB_INT_OVERFLOW(x) if((x < VB_MIN_INT)||(x > VB_MAX_INT)) x = 0;
3166+
3167+#define RPMSG_CAP_ID 1
3168+
3169+#define MAX_BUF_SIZE 640
3170+#define MAX_BUF_NUM 3
3171+
3172+/****************************************************************************
3173+* Types
3174+****************************************************************************/
3175+
3176+
3177+
3178+enum{
3179+ UP_LINK,
3180+ DOWN_LINK
3181+};
3182+
3183+struct voice_ring_buffer {
3184+ volatile uint read_pos;
3185+ volatile uint write_pos;
3186+ volatile char data[];
3187+
3188+};
3189+
3190+
3191+/****************************************************************************
3192+* Constants
3193+****************************************************************************/
3194+
3195+/****************************************************************************
3196+* Global Variables
3197+****************************************************************************/
3198+
3199+/****************************************************************************
3200+* Function Prototypes
3201+****************************************************************************/
3202+
3203+SINT32 vp_Open_Vbuffer(void);
3204+
3205+SINT32 vp_Close_Vbuffer(void);
3206+
3207+SINT32 vp_VoiceI2sStart_Vbuffer(VOID);
3208+
3209+VOID vp_VoiceI2sStop_Vbuffer(VOID);
3210+
3211+SINT32 zDrvVp_VoiceWorkStop_Vbuffer(VOID);
3212+
3213+SINT32 vp_VolteReadStart_Vbuffer(VOID);
3214+//whole replace
3215+SINT32 vp_VolteReadStop_Vbuffer(VOID);
3216+
3217+SINT32 vp_VolteWriteStart_Vbuffer(VOID);
3218+//whole replace
3219+SINT32 vp_VolteWriteStop_Vbuffer(VOID);
3220+
3221+SINT32 vp_WriteDataToCodec_Vbuffer(UINT8 *pBuf, UINT32 count);
3222+
3223+SINT32 vp_ReadDataFromCodec_Vbuffer(UINT8 *pBuf, UINT32 count);
3224+
3225+SINT32 vp_CreateThreadSemaph_Vbuffer(VOID);
3226+
3227+
3228+
3229+
3230+#endif/*_HAL_VOICEBUFFER_H*/
3231+
3232diff --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
3233index 371297d..810e12c 100755
3234--- a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/include/hal_voiceprocess.h
3235+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/include/hal_voiceprocess.h
3236@@ -23,14 +23,42 @@
3237 * Include files *
3238 **************************************************************************/
3239
3240+
3241+/****************************************************************************
3242+* Local Types
3243+****************************************************************************/
3244+
3245+typedef enum
3246+{
3247+ VBUF_SEM = 0,//voice buffer
3248+ ECALL_SEM,
3249+ SEM_MAX
3250+} T_Sem_Owner;
3251+
3252+typedef enum
3253+{
3254+ DIR_RX,
3255+ DIR_TX,
3256+ DIR_ALL,
3257+ DIR_MAX
3258+} T_Data_Dir_Type;
3259+
3260+
3261 /**************************************************************************
3262 * Macro *
3263 **************************************************************************/
3264+#define VP_INOUT_BAK_BUFFER_SIZE 0x30000 // 0x60000
3265+
3266+//#define TEST_WHITE_NOISE
3267+
3268+//#define VB_DATA_LOSS_TEST
3269+
3270+
3271 #if 0
3272 #define VOICE_TONE_MIXER_FUNCTION
3273 //#define TEST_WHITE_NOISE
3274
3275-
3276+#endif
3277
3278 /****************************************************************************
3279 * Global Constants *
3280@@ -47,6 +75,7 @@
3281 /****************************************************************************
3282 * Function Prototypes *
3283 ****************************************************************************/
3284+#if 0
3285 typedef enum
3286 {
3287 VP_I2S_IDLE = 0,
3288@@ -60,6 +89,13 @@
3289 /**************************************************************************
3290 * Function Prototypes *
3291 **************************************************************************/
3292+#ifdef ECALL_SUPPORT
3293+
3294+
3295+SINT32 update_ecall_state(T_Data_Dir_Type dir);
3296+
3297+
3298+#endif
3299
3300
3301
3302diff --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
3303new file mode 100755
3304index 0000000..3dfed2e
3305--- /dev/null
3306+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/hal_nxp.c
3307@@ -0,0 +1,1099 @@
3308+/*******************************************************************************
3309+ * Copyright (C) 2007, ZTE Corporation.
3310+ *
3311+ * File Name:
3312+ * File Mark:
3313+ * Description:
3314+ * Others:
3315+ * Version:
3316+ * Author: lvwenhua
3317+ * Date: 2011-8-24
3318+ * History 1:
3319+ * Date: 2016-2-16
3320+ * Version:
3321+ * Author:xuxinqiang
3322+ * Modification: edit for union version
3323+ * History 2:
3324+ ********************************************************************************/
3325+
3326+/****************************************************************************
3327+* Include files
3328+****************************************************************************/
3329+#include "drvs_general.h"
3330+#include "NvParam_drv.h"
3331+
3332+#ifdef _OS_TOS
3333+#include "./tos/LVVE.h"
3334+#include "./tos/PARAM_Default.h"
3335+#include "./tos/nxp_DrvNvData.h"
3336+
3337+#elif defined _OS_LINUX
3338+#include "./uclinux/LVVE.h"
3339+#include "./uclinux/PARAM_Default.h"
3340+#include "./uclinux/nxp_DrvNvData.h"
3341+
3342+#else
3343+#include "LVVE.h"
3344+#include "PARAM_Default.h"
3345+#include "nxp_DrvNvData.h"
3346+#endif
3347+
3348+#include "drvs_voiceprocess.h"
3349+#include "drvs_ramlog.h"
3350+
3351+#include "hal_audiointf.h"
3352+#include "RWNvConfig.h"
3353+
3354+/****************************************************************************
3355+* Local Macros
3356+****************************************************************************/
3357+#define MAX_BLK_SIZE 400 /* Maximum possible block size */
3358+#define LVVE_NUM_OF_SAMPLES 160
3359+#define VP_PARAM_IS_IN_NV 1
3360+
3361+/****************************************************************************
3362+* Global Constants
3363+****************************************************************************/
3364+//extern BOOL g_vpMuteEn;
3365+//extern UINT8 g_voiceInGsmTdMode;
3366+//extern UINT8 g_voiceInVolteMode;
3367+//extern UINT8 g_volteIsWb;
3368+//extern UINT8 g_isUseSlicCodec;
3369+extern T_zDrvVoice_GbVar g_voiceVar;
3370+static BOOL g_nxpIsOpen = FALSE;
3371+
3372+
3373+/****************************************************************************
3374+* Global Variables
3375+****************************************************************************/
3376+LVM_INT32 InBuffer16_Tx_FE[MAX_BLK_SIZE]; /* Stereo, 16-bit aligned input buffer */
3377+LVM_INT16 pNoiseData[4];
3378+
3379+LVM_MemoryTable_st MemoryTable_Tx = {0}; /* Module memory table */
3380+LVM_MemoryTable_st MemoryTable_Rx = {0}; /* Module memory table */
3381+LVVE_Tx_Handle_t hInstance_Tx = LVM_NULL; /* Module instance handle */
3382+LVVE_Rx_Handle_t hInstance_Rx = LVM_NULL; /* Module instance handle */
3383+
3384+#define NUM_VOL_RX (5) /* Number of Rx volumes */
3385+
3386+//LVM_CHAR LVVE_Tx_Preset_Buffer[LVVE_TX_PRESET_LENGTH]; /* Byte buffer */
3387+LVVE_Tx_Preset_t LVVE_Tx_Preset ; /* Preset buffer */
3388+//LVM_CHAR LVVE_Rx_Preset_Buffer[NUM_VOL_RX*LVVE_RX_PRESET_LENGTH]; /* Byte buffer */
3389+LVVE_Rx_Preset_t LVVE_Rx_Preset ; /* Preset buffer */
3390+//LVM_CHAR LVVE_Tx_Preset_Buffer_Volte[LVVE_TX_PRESET_LENGTH]; /* Byte buffer */
3391+//LVM_CHAR LVVE_Rx_Preset_Buffer_Volte[NUM_VOL_RX*LVVE_RX_PRESET_LENGTH]; /* Byte buffer */
3392+
3393+T_Audio_NvParam g_audioNvParam = {0};
3394+
3395+static LVM_UINT32 NumBytesReadRx; /* Number of bytes in the preset file RX*/
3396+static LVM_UINT32 NumBytesReadTx; /* Number of bytes in the preset file TX*/
3397+
3398+static BOOL isFirstTxProcessErr = TRUE;
3399+static BOOL isFirstRxProcessErr = TRUE;
3400+/****************************************************************************
3401+* Global Function Prototypes
3402+****************************************************************************/
3403+//T_ZDrv_VoiceOutputPath s_vpPathout;
3404+//T_ZDrvVoice_OutputVolLevel s_vpVolout;
3405+
3406+UINT32 zOss_NvItemRead(UINT32 NvItemID, UINT8 *NvItemData, UINT32 NvItemLen);
3407+UINT32 zOss_NvItemWrite(UINT32 NvItemID, UINT8 *NvItemData, UINT32 NvItemLen);
3408+
3409+/****************************************************************************
3410+* Function Definitions
3411+****************************************************************************/
3412+SINT32 Vp_NxpInitNvParam(VOID)
3413+{
3414+ SINT32 ret = DRV_SUCCESS;
3415+ SINT32 i = 0;
3416+
3417+ LVVE_VersionInfo pVersion; /* version information */
3418+ LVVE_GetVersionInfo(&pVersion);
3419+
3420+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "nxp Version %s\n", pVersion.VersionNumber);
3421+#if 0
3422+ ret = zOss_NvItemRead(OS_FLASH_VOICE_DRV_RW_NONFAC_BASE_ADDR, ((UINT8 *)(&g_audioNvParam.audio_ctrlFlag)), sizeof(g_audioNvParam.audio_ctrlFlag));
3423+ 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), \
3424+ ret, g_audioNvParam.audio_ctrlFlag.isVpParamInNv);
3425+
3426+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpInitNvParam voiceflag isVpParamInNv=%d,isUseSlicCodec=%d,isUseVoiceProc=%d,isUseCodecDsp=%d,isUseNvWrite=%d \n", \
3427+ g_audioNvParam.audio_ctrlFlag.isVpParamInNv, g_audioNvParam.audio_ctrlFlag.isUseSlicCodec, g_audioNvParam.audio_ctrlFlag.isUseVoiceProc, \
3428+ g_audioNvParam.audio_ctrlFlag.isUseCodecDsp, g_audioNvParam.audio_ctrlFlag.isUseNvWrite);
3429+
3430+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpInitNvParam the g_audioNvParam size=%d,audio_ctrlFlag size=%d\n", \
3431+ sizeof(g_audioNvParam), sizeof(g_audioNvParam.audio_ctrlFlag));
3432+
3433+ g_voiceVar.audio_ctrlFlag = g_audioNvParam.audio_ctrlFlag;
3434+ g_voiceVar.isUseSlicCodec = g_audioNvParam.audio_ctrlFlag.isUseSlicCodec;
3435+ g_voiceVar.g_isUseTdm = g_audioNvParam.audio_ctrlFlag.isUseTdm;
3436+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, " Vp_NxpInitNvParam g_voiceVar.isUseSlicCodec=%d, g_voiceVar.g_isUseTdm=%d!\n", g_voiceVar.isUseSlicCodec, g_voiceVar.g_isUseTdm);
3437+#endif
3438+
3439+ g_audioNvParam.audio_ctrlFlag = g_voiceVar.audio_ctrlFlag;
3440+#if 0
3441+ if (g_audioNvParam.audio_ctrlFlag.isVpParamInNv == 1)
3442+ {
3443+ ret = zOss_NvItemRead(OS_FLASH_VOICE_RW_NONFAC_BASE_ADDR, ((UINT8 *)(&g_audioNvParam.vpNxpParamFile)), sizeof(g_audioNvParam.vpNxpParamFile));
3444+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpInitNvParam Read audio nv param base add=0x%x,vpNxpParamFile size=%d \n", \
3445+ (OS_FLASH_VOICE_RW_NONFAC_BASE_ADDR), sizeof(g_audioNvParam.vpNxpParamFile));
3446+
3447+ }
3448+ else
3449+ {
3450+ 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));
3451+ // Vp_Nxp_Param_File.LVVE_Tx_File_Buffer=LVVE_Tx_Preset_Buffer_Voice_Tool;
3452+ //Vp_Nxp_Param_File.LVVE_Rx_File_Buffer=LVVE_Rx_Preset_Buffer_Voice_Tool;
3453+ for (i = 0; i < AUDIO_MAX_VP_PATH; i++)
3454+ {
3455+ zOss_Memcpy(g_audioNvParam.vpNxpParamFile.vpNxpPathParam[i].nxpTxFileBuffer, LVVE_Tx_Preset_Buffer_Voice_Tool, sizeof(LVVE_Tx_Preset_Buffer_Voice_Tool));
3456+ zOss_Memcpy(g_audioNvParam.vpNxpParamFile.vpNxpPathParam[i].nxpRxFileBuffer, LVVE_Rx_Preset_Buffer_Voice_Tool, sizeof(LVVE_Rx_Preset_Buffer_Voice_Tool));
3457+ }
3458+ zOss_Memcpy(g_audioNvParam.vpNxpParamFile.nxpTxNbMuteBuffer, LVVE_Tx_Mute_File_Buffer, sizeof(LVVE_Tx_Mute_File_Buffer));
3459+ zOss_Memcpy(g_audioNvParam.vpNxpParamFile.nxpTxWbMuteBuffer, LVVE_Tx_Wb_Mute_File_Buffer, sizeof(LVVE_Tx_Wb_Mute_File_Buffer));
3460+ }
3461+#endif
3462+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpInitNvParam is over \n");
3463+
3464+ return ret;
3465+}
3466+
3467+SINT32 Vp_NxpOpen(UINT32 fs)
3468+{
3469+
3470+ LVVE_Tx_InstanceParams_st InstanceParams_Tx; /* Instance parameters */
3471+ LVVE_Rx_InstanceParams_st InstanceParams_Rx; /* Instance parameters */
3472+ LVVE_ReturnStatus_en LVVE_Status; /* Module status return */
3473+ LVM_INT32 i, ret = 0; /* Index variable */
3474+
3475+ if (g_nxpIsOpen == TRUE)
3476+ {
3477+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "nxp already opened! \n");
3478+ return DRV_SUCCESS;
3479+ }
3480+
3481+ if (fs == 8000)
3482+ {
3483+
3484+ InstanceParams_Rx.SampleRate = LVM_FS_8000;
3485+ InstanceParams_Rx.EQ_InstParams.EQ_MaxLength = LVVE_MAX_EQ_LENGTH_NB;
3486+ InstanceParams_Tx.SampleRate = LVM_FS_8000;
3487+ InstanceParams_Tx.MaxBulkDelay = LVVE_MAX_BULK_DELAY;
3488+ InstanceParams_Tx.EQ_InstParams.EQ_MaxLength = LVVE_MAX_EQ_LENGTH_NB;
3489+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpOpen confg NB param! \n", fs);
3490+ }
3491+ else if (fs == 16000)
3492+ {
3493+ InstanceParams_Rx.SampleRate = LVM_FS_16000;
3494+ InstanceParams_Rx.EQ_InstParams.EQ_MaxLength = LVVE_MAX_EQ_LENGTH_WB;
3495+ InstanceParams_Tx.SampleRate = LVM_FS_16000;
3496+ InstanceParams_Tx.MaxBulkDelay = LVVE_MAX_BULK_DELAY;
3497+ InstanceParams_Tx.EQ_InstParams.EQ_MaxLength = LVVE_MAX_EQ_LENGTH_WB;
3498+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpOpen confg WB param ! \n", fs);
3499+ }
3500+ else
3501+ {
3502+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpOpen nxp the fs=%d not support! \n", fs);
3503+ return DRV_ERROR;
3504+ }
3505+
3506+ /******************************************************************************
3507+ Allocate memory
3508+ *******************************************************************************/
3509+ /*
3510+ * Get the memory requirements for the Tx Module
3511+ */
3512+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "before LVVE_Tx_GetMemoryTable\n");
3513+
3514+ LVVE_Status = LVVE_Tx_GetMemoryTable(LVM_NULL,
3515+ &MemoryTable_Tx,
3516+ &InstanceParams_Tx);
3517+
3518+ if (LVVE_Status == LVVE_NULLADDRESS)
3519+ {
3520+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Parameter error - null pointer error returned by LVVE_Tx_GetMemoryTable\n");
3521+ return DRV_ERROR;
3522+ }
3523+ if (LVVE_Status == LVVE_OUTOFRANGE)
3524+ {
3525+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Parameter error - out of range error returned by LVVE_Tx_GetMemoryTable\n");
3526+ return DRV_ERROR;
3527+ }
3528+
3529+ /*
3530+ * Allocate the memory for the Tx module
3531+ */
3532+ for (i = 0; i < LVM_NR_MEMORY_REGIONS; i++)
3533+ {
3534+ if (MemoryTable_Tx.Region[i].Size != 0)
3535+ {
3536+ MemoryTable_Tx.Region[i].pBaseAddress = zOss_Malloc(MemoryTable_Tx.Region[i].Size);
3537+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Nxp tx malloc size = %d", MemoryTable_Tx.Region[i].Size);
3538+
3539+ if (MemoryTable_Tx.Region[i].pBaseAddress == LVM_NULL)
3540+ {
3541+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Failed to allocate %d bytes for region %d\n", (LVM_INT16)MemoryTable_Tx.Region[i].Size, (LVM_INT16)i);
3542+ }
3543+ }
3544+
3545+ }
3546+
3547+ /*
3548+ * Get the memory requirements for the Rx Module
3549+ */
3550+
3551+ LVVE_Status = LVVE_Rx_GetMemoryTable(LVM_NULL,
3552+ &MemoryTable_Rx,
3553+ &InstanceParams_Rx);
3554+ if (LVVE_Status == LVVE_NULLADDRESS)
3555+ {
3556+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Parameter error - null pointer error returned by LVVE_Rx_GetMemoryTable\n");
3557+ return DRV_ERROR;
3558+ }
3559+ if (LVVE_Status == LVVE_OUTOFRANGE)
3560+ {
3561+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Parameter error - out of range error returned by LVVE_Rx_GetMemoryTable\n");
3562+ return DRV_ERROR;
3563+ }
3564+
3565+ /*
3566+ * Allocate the memory for the Rx module
3567+ */
3568+ for (i = 0; i < LVM_NR_MEMORY_REGIONS; i++)
3569+ {
3570+ if (MemoryTable_Rx.Region[i].Size != 0)
3571+ {
3572+ MemoryTable_Rx.Region[i].pBaseAddress = zOss_Malloc(MemoryTable_Rx.Region[i].Size);
3573+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Nxp rx malloc size = %d\n", MemoryTable_Rx.Region[i].Size);
3574+
3575+ if (MemoryTable_Rx.Region[i].pBaseAddress == LVM_NULL)
3576+ {
3577+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Failed to allocate %d bytes for region %d\n", (LVM_INT16)MemoryTable_Rx.Region[i].Size, (LVM_INT16)i);
3578+ }
3579+ }
3580+ }
3581+
3582+ /*
3583+ * Allocate the memory for the noise data buffer (2*LVVE_NUM_OF_SAMPLES)
3584+ */
3585+
3586+ hInstance_Tx = LVM_NULL; /* Initialise to NULL */
3587+ LVVE_Status = LVVE_Tx_GetInstanceHandle(&hInstance_Tx, /* Init sets the instance handle */
3588+ &MemoryTable_Tx,
3589+ &InstanceParams_Tx);
3590+
3591+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "LVVE_Tx_GetInstanceHandle LVVE_Status=%d\n", LVVE_Status);
3592+ if (LVVE_Status == LVVE_NULLADDRESS)
3593+ {
3594+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Parameter error - null pointer error returned by LVVE_Tx_GetInstanceHandle\n");
3595+ return DRV_ERROR;
3596+ }
3597+ if (LVVE_Status == LVVE_OUTOFRANGE)
3598+ {
3599+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Parameter error - out of range error returned by LVVE_Tx_GetInstanceHandle\n");
3600+ return DRV_ERROR;
3601+ }
3602+
3603+ hInstance_Rx = LVM_NULL; /* Initialise to NULL */
3604+ LVVE_Status = LVVE_Rx_GetInstanceHandle(&hInstance_Rx, /* Init sets the instance handle */
3605+ &MemoryTable_Rx,
3606+ &InstanceParams_Rx);
3607+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "LVVE_Rx_GetInstanceHandle LVVE_Status=%d\n", LVVE_Status);
3608+ if (LVVE_Status == LVVE_NULLADDRESS)
3609+ {
3610+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Parameter error - null pointer error returned by LVVE_Rx_GetInstanceHandle\n");
3611+ return DRV_ERROR;
3612+ }
3613+ if (LVVE_Status == LVVE_OUTOFRANGE)
3614+ {
3615+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Parameter error - out of range error returned by LVVE_Rx_GetInstanceHandle\n");
3616+ return DRV_ERROR;
3617+ }
3618+ LVM_UINT32 nxpParamSize = 0, nxpParamOffset = 0;
3619+
3620+ nxpParamSize = 4 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
3621+
3622+ g_audioNvParam.s_nxpPathParam = zOss_Malloc(nxpParamSize);
3623+ if (g_audioNvParam.s_nxpPathParam == NULL)
3624+ {
3625+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Failed to allocate g_audioNvParam.s_nxpPathParam\n");
3626+ return DRV_ERROR;
3627+ }
3628+
3629+ g_audioNvParam.s_nxpTxNbMuteParam = zOss_Malloc(2 * LVWM_TX_FILE_SIZE);
3630+ if (g_audioNvParam.s_nxpTxNbMuteParam == NULL)
3631+ {
3632+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Failed to allocate g_audioNvParam.s_nxpTxNbMuteParam\n");
3633+ return DRV_ERROR;
3634+ }
3635+ g_audioNvParam.s_nxpTxWbMuteParam = g_audioNvParam.s_nxpTxNbMuteParam + LVWM_TX_FILE_SIZE;
3636+
3637+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpOpen s_nxpPathParam=%p,s_nxpTxNbMuteParam=%p\n", g_audioNvParam.s_nxpPathParam, g_audioNvParam.s_nxpTxNbMuteParam);
3638+ if (g_audioNvParam.audio_ctrlFlag.isVpParamInNv == 1)
3639+ {
3640+ if (g_voiceVar.voiceMode == VOICE_GSM_MODE)
3641+ {
3642+ nxpParamOffset = 0;
3643+ }
3644+ else if ((g_voiceVar.voiceMode == VOICE_WCDMA_MODE) || (g_voiceVar.voiceMode == VOICE_TD_MODE))
3645+ {
3646+ if (g_voiceVar.volteIsWb != 1)
3647+ {
3648+ nxpParamOffset = nxpParamSize;
3649+ }
3650+ else
3651+ {
3652+ nxpParamOffset = 2 * nxpParamSize;
3653+ }
3654+ }
3655+ else if (g_voiceVar.voiceMode == VOICE_LTE_MODE)
3656+ {
3657+ if (g_voiceVar.volteIsWb != 1)
3658+ {
3659+ nxpParamOffset = 3 * nxpParamSize;
3660+ }
3661+ else
3662+ {
3663+ nxpParamOffset = 4 * nxpParamSize;
3664+ }
3665+ }
3666+
3667+ ret = zOss_NvItemRead(OS_FLASH_VOICE_RW_NONFAC_BASE_ADDR + nxpParamOffset, g_audioNvParam.s_nxpPathParam, nxpParamSize);
3668+
3669+ nxpParamOffset = 5 * nxpParamSize;
3670+ ret = zOss_NvItemRead(OS_FLASH_VOICE_RW_NONFAC_BASE_ADDR + nxpParamOffset, g_audioNvParam.s_nxpTxNbMuteParam, 2 * LVWM_TX_FILE_SIZE);
3671+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpInitNvParam Read audio nv param base add=0x%x,vpNxpParamFile size=%d \n", \
3672+ (OS_FLASH_VOICE_RW_NONFAC_BASE_ADDR + nxpParamOffset), nxpParamSize);
3673+
3674+ }
3675+ else
3676+ {
3677+ 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));
3678+ // Vp_Nxp_Param_File.LVVE_Tx_File_Buffer=LVVE_Tx_Preset_Buffer_Voice_Tool;
3679+ //Vp_Nxp_Param_File.LVVE_Rx_File_Buffer=LVVE_Rx_Preset_Buffer_Voice_Tool;
3680+ for (i = 0; i < 4; i++)
3681+ {
3682+ 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));
3683+ 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));
3684+ }
3685+ zOss_Memcpy(g_audioNvParam.s_nxpTxNbMuteParam, LVVE_Tx_Mute_File_Buffer, sizeof(LVVE_Tx_Mute_File_Buffer));
3686+ zOss_Memcpy(g_audioNvParam.s_nxpTxWbMuteParam, LVVE_Tx_Wb_Mute_File_Buffer, sizeof(LVVE_Tx_Wb_Mute_File_Buffer));
3687+ }
3688+ isFirstTxProcessErr = TRUE;
3689+ isFirstRxProcessErr = TRUE;
3690+ g_nxpIsOpen = TRUE;
3691+
3692+ return DRV_SUCCESS;
3693+}
3694+
3695+SINT32 Vp_NxpClose(VOID)
3696+{
3697+
3698+ LVVE_ReturnStatus_en LVVE_Status; /* Module status return */
3699+ LVM_INT32 i; /* Index variable */
3700+
3701+ LVVE_Status = LVVE_Tx_GetMemoryTable(hInstance_Tx,
3702+ &MemoryTable_Tx,
3703+ LVM_NULL);
3704+
3705+ if (LVVE_Status == LVVE_NULLADDRESS)
3706+ {
3707+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpClose Parameter error - null pointer error returned by LVVE_Tx_GetMemoryTable\n");
3708+ return DRV_ERROR;
3709+ }
3710+ if (LVVE_Status == LVVE_OUTOFRANGE)
3711+ {
3712+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpClose Parameter error - out of range error returned by LVVE_Tx_GetMemoryTable\n");
3713+ return DRV_ERROR;
3714+ }
3715+
3716+ /* For each region */
3717+ for (i = 0; i < LVM_NR_MEMORY_REGIONS; i++)
3718+ {
3719+ if ((MemoryTable_Tx.Region[i].Size != 0) && (MemoryTable_Tx.Region[i].pBaseAddress != LVM_NULL))
3720+ {
3721+ zOss_Free(MemoryTable_Tx.Region[i].pBaseAddress);
3722+ MemoryTable_Tx.Region[i].pBaseAddress = LVM_NULL;
3723+ }
3724+ }
3725+
3726+ LVVE_Status = LVVE_Rx_GetMemoryTable(hInstance_Rx,
3727+ &MemoryTable_Rx,
3728+ LVM_NULL);
3729+
3730+ if (LVVE_Status == LVVE_NULLADDRESS)
3731+ {
3732+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpClose Parameter error - null pointer error returned by LVVE_Rx_GetMemoryTable\n");
3733+ return DRV_ERROR;
3734+ }
3735+
3736+ if (LVVE_Status == LVVE_OUTOFRANGE)
3737+ {
3738+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpClose Parameter error - out of range error returned by LVVE_Rx_GetMemoryTable\n");
3739+ return DRV_ERROR;
3740+ }
3741+
3742+ /* For each region */
3743+ for (i = 0; i < LVM_NR_MEMORY_REGIONS; i++)
3744+ {
3745+ if ((MemoryTable_Rx.Region[i].Size != 0) && (MemoryTable_Rx.Region[i].pBaseAddress != LVM_NULL))
3746+ {
3747+ zOss_Free(MemoryTable_Rx.Region[i].pBaseAddress);
3748+ MemoryTable_Rx.Region[i].pBaseAddress = LVM_NULL;
3749+ }
3750+ }
3751+
3752+ if (g_audioNvParam.s_nxpPathParam != NULL)
3753+ {
3754+ zOss_Free(g_audioNvParam.s_nxpPathParam);
3755+ g_audioNvParam.s_nxpPathParam = NULL;
3756+ }
3757+ if (g_audioNvParam.s_nxpTxNbMuteParam != NULL)
3758+ {
3759+ zOss_Free(g_audioNvParam.s_nxpTxNbMuteParam);
3760+ g_audioNvParam.s_nxpTxNbMuteParam = NULL;
3761+ }
3762+
3763+ hInstance_Tx = LVM_NULL;
3764+ hInstance_Rx = LVM_NULL;
3765+ g_nxpIsOpen = FALSE;
3766+
3767+ //zOss_Free(pNoiseData);
3768+
3769+// zOss_Printf(SUBMDL_HAL, PRINT_LEVEL_NORMAL,"Vp_NxpClose success\n");
3770+ return DRV_SUCCESS;
3771+}
3772+
3773+SINT32 Vp_NxpGetParam(T_ZDrvVoice_MODE voiceMode, T_ZDrv_VpPath path)
3774+{
3775+ //add by zhanglixia
3776+ //UINT32 ret;//xiu gai chu
3777+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParam ######get NXP parameter start####### voiceMode=%d,path=%d \n", voiceMode, path);
3778+ UINT32 pathTxOffset, pathRxOffset;
3779+ /************************************************************************************/
3780+ /* Set the Voice Engine Parameter values */
3781+ /************************************************************************************/
3782+ /*
3783+ * Read the Rx preset file and send the bytes to the Rx Module
3784+ */
3785+
3786+ if (g_nxpIsOpen == FALSE)
3787+ {
3788+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParam, nxp has not been opened yet!\n");
3789+ return DRV_ERR_NOT_OPENED;
3790+ }
3791+
3792+ /*klocwork 3 INVARIANT_CONDITION.UNREACH MAX_VP_PATH¸ÄΪVP_PATH_BLUETOOTH ºÍɾ³ý (path<0)*/
3793+ if (path > VP_PATH_BLUETOOTH)
3794+ {
3795+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParam the path error\n");
3796+ return DRV_ERROR;
3797+ }
3798+
3799+ if (g_audioNvParam.audio_ctrlFlag.isUseVoiceProc != 1)
3800+ {
3801+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParam error g_audioNvParam.audio_ctrlFlag.isUseVoiceProc != 1 \n");
3802+ return DRV_ERROR;
3803+ }
3804+
3805+ pathTxOffset = path * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
3806+ pathRxOffset = path * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE) + LVWM_TX_FILE_SIZE;
3807+
3808+ if (g_audioNvParam.audio_ctrlFlag.isVpParamInNv == 1)
3809+ {
3810+ LVVE_Tx_Preset = (LVM_CHAR*)g_audioNvParam.s_nxpPathParam + pathTxOffset ;
3811+ LVVE_Rx_Preset = (LVM_CHAR*)g_audioNvParam.s_nxpPathParam + pathRxOffset ;
3812+
3813+ NumBytesReadTx = LVWM_TX_FILE_SIZE;
3814+ NumBytesReadRx = LVWM_RX_FILE_SIZE;
3815+ }
3816+ else
3817+ {
3818+ LVVE_Rx_Preset = LVVE_Rx_Preset_Buffer_Voice_Tool;
3819+ LVVE_Tx_Preset = LVVE_Tx_Preset_Buffer_Voice_Tool;
3820+
3821+ NumBytesReadTx = sizeof(LVVE_Tx_Preset_Buffer_Voice_Tool);
3822+ NumBytesReadRx = sizeof(LVVE_Rx_Preset_Buffer_Voice_Tool);
3823+
3824+ }
3825+
3826+ if (g_voiceVar.muteEn == TRUE)
3827+ {
3828+ if (g_audioNvParam.audio_ctrlFlag.isVpParamInNv == 1)
3829+ {
3830+ if (g_voiceVar.volteIsWb != 1)
3831+ {
3832+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParam set nb mute config !\r\n");
3833+ LVVE_Tx_Preset = g_audioNvParam.s_nxpTxNbMuteParam;//xiu gai chu tong shang
3834+ NumBytesReadTx = LVWM_TX_FILE_SIZE;
3835+ }
3836+ else
3837+ {
3838+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParam set wb mute config !\r\n");
3839+ LVVE_Tx_Preset = g_audioNvParam.s_nxpTxWbMuteParam;//xiu gai chu tong shang
3840+ NumBytesReadTx = LVWM_TX_FILE_SIZE;
3841+ }
3842+ }
3843+ else
3844+ {
3845+ if (g_voiceVar.volteIsWb != 1)
3846+ {
3847+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParam set nb mute config !\r\n");
3848+ LVVE_Tx_Preset = LVVE_Tx_Mute_File_Buffer;
3849+ NumBytesReadTx = sizeof(LVVE_Tx_Mute_File_Buffer);
3850+ }
3851+ else
3852+ {
3853+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParam set wb mute config !\r\n");
3854+ LVVE_Tx_Preset = LVVE_Tx_Wb_Mute_File_Buffer;
3855+ NumBytesReadTx = sizeof(LVVE_Tx_Wb_Mute_File_Buffer);
3856+
3857+ }
3858+ }
3859+ }
3860+
3861+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParam NumBytesReadRx=%d NumBytesReadTx= %d\n ", NumBytesReadRx , NumBytesReadTx);
3862+ /*klocwork 3 INVARIANT_CONDITION.UNREACH delete if*/
3863+ /*
3864+ if ((NumBytesReadRx == LVM_NULL) || (NumBytesReadTx == LVM_NULL))
3865+ {
3866+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParam NXP read para is null !\r\n");
3867+ return DRV_ERROR;
3868+ }*/
3869+ return DRV_SUCCESS;
3870+
3871+}
3872+
3873+SINT32 Vp_NxpSetParam(T_ZDrv_VpPath path, T_ZDrv_VpVol volume, BOOL isLoop)
3874+{
3875+ LVVE_ReturnStatus_en LVVE_Status; /* Module status return */
3876+ LVM_UINT16 VolumeIndex;
3877+
3878+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParam ######set NXP parameter start#######");
3879+ /************************************************************************************/
3880+ /* Set the Voice Engine Parameter values */
3881+ /************************************************************************************/
3882+ if (g_nxpIsOpen == FALSE)
3883+ {
3884+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParam, nxp has not been opened yet!\n");
3885+ return DRV_ERR_NOT_OPENED;
3886+ }
3887+
3888+ /*klocwork 3 INVARIANT_CONDITION.UNREACH MAX_VP_PATH¸ÄΪVP_PATH_BLUETOOTH ºÍɾ³ý (path<0)*/
3889+ if (path > VP_PATH_BLUETOOTH)
3890+ {
3891+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParam the path error\n");
3892+ return DRV_ERROR;
3893+ }
3894+ VolumeIndex = volume; /* Max Rx volume */
3895+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParam VolumeIndex is %d\n", VolumeIndex);
3896+
3897+ if ((hInstance_Rx == NULL) || (LVVE_Rx_Preset == NULL) || (hInstance_Tx == NULL) || (LVVE_Tx_Preset == NULL))
3898+ {
3899+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParam, the input parameter is NULL\n");
3900+ return DRV_ERR_INVALID_PARAM;
3901+ }
3902+
3903+ LVVE_Status = LVVE_Rx_SetPreset(hInstance_Rx, LVVE_Rx_Preset, NumBytesReadRx, VolumeIndex);
3904+ if (LVVE_Status != LVVE_SUCCESS)
3905+ {
3906+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParam Error returned by LVVE_Rx_SetPreset: Error_code = %d\n", LVVE_Status);
3907+ return DRV_ERROR;
3908+ }
3909+
3910+ LVVE_Status = LVVE_Tx_SetPreset(hInstance_Tx, LVVE_Tx_Preset, NumBytesReadTx, 0);
3911+ if (LVVE_Status != LVVE_SUCCESS)
3912+ {
3913+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParam Error returned by LVVE_Tx_SetPreset: Error_code = %d\n", LVVE_Status);
3914+ return DRV_ERROR;
3915+ }
3916+
3917+ return DRV_SUCCESS;
3918+}
3919+
3920+SINT32 Vp_NxpSetParamTool(T_ZDrv_VpPath path, T_ZDrv_VpVol volume,
3921+ zDrvVp_NxpParamsTool *NxpParamsTool, BOOL isLoop, BOOL isVolte)
3922+{
3923+ LVVE_ReturnStatus_en LVVE_Status; /* Module status return */
3924+ //LVM_UINT32 ret;//xiu gai chu
3925+ LVM_UINT16 VolumeIndex; /* Volume index variable */
3926+ UINT32 nvAddrTxOffset = 0;
3927+ UINT32 nvAddrRxOffset = 0;
3928+
3929+ UINT32 pathTxOffset, pathRxOffset;
3930+
3931+ UINT32 ret = DRV_SUCCESS;
3932+ /************************************************************************************/
3933+ /* Set the Voice Engine Parameter values */
3934+ /************************************************************************************/
3935+ VolumeIndex = volume; /* Max Rx volume */
3936+ if (g_nxpIsOpen == FALSE)
3937+ {
3938+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParamTool,nxp has not been opened yet!\n");
3939+ return DRV_ERR_NOT_OPENED;
3940+ }
3941+
3942+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "######set NXP parameter start#######");
3943+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParamTool path = %d, volume = %d\n", path, volume);
3944+ if ((NxpParamsTool->PresetLengthTx > LVWM_TX_FILE_SIZE) || (NxpParamsTool->PresetLengthRx > LVWM_RX_FILE_SIZE))
3945+ {
3946+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "The length is wrong!PresetLengthRx=%d,PresetLengthTx=%d", NxpParamsTool->PresetLengthRx, NxpParamsTool->PresetLengthTx);
3947+ return DRV_ERROR;
3948+ }
3949+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "PresetLengthRx=%d NumBytesReadRx= %d volume= %d", NxpParamsTool->PresetLengthRx, NumBytesReadRx, volume);
3950+
3951+ LVVE_Status = LVVE_Rx_SetPreset(hInstance_Rx, (const LVVE_Rx_Preset_t)NxpParamsTool->pPresetRx, NxpParamsTool->PresetLengthRx, VolumeIndex);
3952+
3953+ if (LVVE_Status != LVVE_SUCCESS)
3954+ {
3955+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Error returned by LVVE_Rx_SetPreset: Error_code = %d\n", LVVE_Status);
3956+ return DRV_ERROR;
3957+ }
3958+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "PresetLengthTx=%d NumBytesReadTx= %d", NxpParamsTool->PresetLengthTx, NumBytesReadTx);
3959+ LVVE_Status = LVVE_Tx_SetPreset(hInstance_Tx, (const LVVE_Tx_Preset_t)NxpParamsTool->pPresetTx, NxpParamsTool->PresetLengthTx, 0);
3960+
3961+ if (LVVE_Status != LVVE_SUCCESS)
3962+ {
3963+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Error returned by LVVE_Tx_SetPreset: Error_code = %d\n", LVVE_Status);
3964+ return DRV_ERROR;
3965+ }
3966+
3967+ if (g_audioNvParam.audio_ctrlFlag.isVpParamInNv == 1)
3968+ {
3969+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParamTool set voice param isVpParamInNv \n");
3970+
3971+ if (g_voiceVar.muteEn == TRUE)
3972+ {
3973+ if (g_voiceVar.volteIsWb == 1)
3974+ {
3975+ zOss_Memcpy(g_audioNvParam.s_nxpTxWbMuteParam, NxpParamsTool->pPresetTx, NxpParamsTool->PresetLengthTx);
3976+ }
3977+ else
3978+ {
3979+ zOss_Memcpy(g_audioNvParam.s_nxpTxNbMuteParam, NxpParamsTool->pPresetTx, NxpParamsTool->PresetLengthTx);
3980+ }
3981+ }
3982+ else
3983+ {
3984+ pathTxOffset = path * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
3985+ pathRxOffset = path * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE) + LVWM_TX_FILE_SIZE;
3986+
3987+ zOss_Memcpy(g_audioNvParam.s_nxpPathParam + pathTxOffset, NxpParamsTool->pPresetTx, NxpParamsTool->PresetLengthTx);
3988+ zOss_Memcpy(g_audioNvParam.s_nxpPathParam + pathRxOffset, NxpParamsTool->pPresetRx, NxpParamsTool->PresetLengthRx);
3989+ }
3990+
3991+ if (g_audioNvParam.audio_ctrlFlag.isUseNvWrite == 1)
3992+ {
3993+ if (g_voiceVar.voiceMode == VOICE_GSM_MODE)
3994+ {
3995+ if (path == VP_PATH_HANDSET)
3996+ {
3997+ nvAddrTxOffset = 0;
3998+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
3999+
4000+
4001+ }
4002+ else if (path == VP_PATH_SPEAKER)
4003+ {
4004+ nvAddrTxOffset = LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE;
4005+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
4006+ }
4007+ else if (path == VP_PATH_HEADSET)
4008+ {
4009+ nvAddrTxOffset = 2 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
4010+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
4011+
4012+ }
4013+ else if (path == VP_PATH_BLUETOOTH)
4014+ {
4015+
4016+ nvAddrTxOffset = 3 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
4017+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
4018+ }
4019+
4020+ }
4021+ else if ((g_voiceVar.voiceMode == VOICE_WCDMA_MODE) || (g_voiceVar.voiceMode == VOICE_TD_MODE))
4022+ {
4023+ if (g_voiceVar.volteIsWb != 1)
4024+ {
4025+ if (path == VP_PATH_HANDSET)
4026+ {
4027+ nvAddrTxOffset = 4 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
4028+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
4029+ }
4030+ else if (path == VP_PATH_SPEAKER)
4031+ {
4032+ nvAddrTxOffset = 5 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
4033+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
4034+ }
4035+ else if (path == VP_PATH_HEADSET)
4036+ {
4037+ nvAddrTxOffset = 6 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
4038+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
4039+ }
4040+ else if (path == VP_PATH_BLUETOOTH)
4041+ {
4042+ nvAddrTxOffset = 7 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
4043+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
4044+ }
4045+ }
4046+ else
4047+ {
4048+ if (path == VP_PATH_HANDSET)
4049+ {
4050+ nvAddrTxOffset = 8 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
4051+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
4052+ }
4053+ else if (path == VP_PATH_SPEAKER)
4054+ {
4055+ nvAddrTxOffset = 9 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
4056+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
4057+ }
4058+ else if (path == VP_PATH_HEADSET)
4059+ {
4060+ nvAddrTxOffset = 10 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
4061+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
4062+ }
4063+ else if (path == VP_PATH_BLUETOOTH)
4064+ {
4065+ nvAddrTxOffset = 11 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
4066+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
4067+ }
4068+ }
4069+ }
4070+ else if (g_voiceVar.voiceMode == VOICE_LTE_MODE)
4071+ {
4072+ if (g_voiceVar.volteIsWb != 1)
4073+ {
4074+ if (path == VP_PATH_HANDSET)
4075+ {
4076+ nvAddrTxOffset = 12 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
4077+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
4078+ }
4079+ else if (path == VP_PATH_SPEAKER)
4080+ {
4081+ nvAddrTxOffset = 13 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
4082+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
4083+ }
4084+ else if (path == VP_PATH_HEADSET)
4085+ {
4086+ nvAddrTxOffset = 14 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
4087+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
4088+ }
4089+ else if (path == VP_PATH_BLUETOOTH)
4090+ {
4091+ nvAddrTxOffset = 15 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
4092+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
4093+ }
4094+ }
4095+ else
4096+ {
4097+ if (path == VP_PATH_HANDSET)
4098+ {
4099+ nvAddrTxOffset = 16 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
4100+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
4101+ }
4102+ else if (path == VP_PATH_SPEAKER)
4103+ {
4104+ nvAddrTxOffset = 17 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
4105+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
4106+ }
4107+ else if (path == VP_PATH_HEADSET)
4108+ {
4109+ nvAddrTxOffset = 18 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
4110+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
4111+ }
4112+ else if (path == VP_PATH_BLUETOOTH)
4113+ {
4114+ nvAddrTxOffset = 19 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
4115+ nvAddrRxOffset = nvAddrTxOffset + LVWM_TX_FILE_SIZE;
4116+ }
4117+ }
4118+ }
4119+
4120+ if (g_voiceVar.muteEn != TRUE)
4121+ {
4122+ ret = zOss_NvItemWrite(OS_FLASH_VOICE_RW_NONFAC_BASE_ADDR + nvAddrTxOffset, (UINT8*)NxpParamsTool->pPresetTx, NxpParamsTool->PresetLengthTx);
4123+ if (ZOSS_SUCCESS == ret)
4124+ {
4125+ ret = Nvram_Flush();
4126+ }
4127+ 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);
4128+ }
4129+ ret = zOss_NvItemWrite(OS_FLASH_VOICE_RW_NONFAC_BASE_ADDR + nvAddrRxOffset, (UINT8*)NxpParamsTool->pPresetRx, NxpParamsTool->PresetLengthRx);
4130+ if (ZOSS_SUCCESS == ret)
4131+ {
4132+ ret = Nvram_Flush();
4133+ }
4134+ 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);
4135+ if (g_voiceVar.muteEn == TRUE)
4136+ {
4137+ if (g_voiceVar.volteIsWb != 1)
4138+ {
4139+ nvAddrTxOffset = 20 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
4140+ 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);
4141+ }
4142+ else
4143+ {
4144+ nvAddrTxOffset = 20 * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE) + LVWM_TX_FILE_SIZE;
4145+ 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);
4146+ }
4147+ ret = zOss_NvItemWrite(OS_FLASH_VOICE_RW_NONFAC_BASE_ADDR + nvAddrTxOffset, (UINT8*)NxpParamsTool->pPresetTx, NxpParamsTool->PresetLengthTx);
4148+ if (ZOSS_SUCCESS == ret)
4149+ {
4150+ ret = Nvram_Flush();
4151+ }
4152+ }
4153+
4154+ }
4155+
4156+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParamTool get voice mode param \n");
4157+ }
4158+ else
4159+ {
4160+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParamTool set voice param not isVpParamInNv \n");
4161+ if (NxpParamsTool->PresetLengthTx <= sizeof(LVVE_Tx_Preset_Buffer_Voice_Tool))
4162+ zOss_Memcpy(LVVE_Tx_Preset_Buffer_Voice_Tool, NxpParamsTool->pPresetTx, NxpParamsTool->PresetLengthTx);
4163+ if (NxpParamsTool->PresetLengthRx <= sizeof(LVVE_Rx_Preset_Buffer_Voice_Tool))
4164+ zOss_Memcpy(LVVE_Rx_Preset_Buffer_Voice_Tool, NxpParamsTool->pPresetRx, NxpParamsTool->PresetLengthRx);
4165+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpsetParamTool set param to default param array !\r\n");
4166+ }
4167+
4168+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetParamTool PresetLengthRx = %d ,PresetLengthTx= %d!\n", NxpParamsTool->PresetLengthRx, NxpParamsTool->PresetLengthTx);
4169+
4170+ return DRV_SUCCESS;
4171+}
4172+
4173+SINT32 Vp_NxpGetParamTool(T_ZDrv_VpPath path, T_ZDrv_VpVol volume,
4174+ zDrvVp_NxpParamsTool *NxpParamsTool, BOOL isLoop, BOOL isVolte)
4175+{
4176+ UINT32 pathTxOffset, pathRxOffset;
4177+
4178+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "######get NXP parameter start#######");
4179+ //LVM_UINT32 NumBytesRead; /* Number of bytes in the preset file */
4180+ /************************************************************************************/
4181+ /* Set the Voice Engine Parameter values */
4182+ /************************************************************************************/
4183+ if (g_nxpIsOpen == FALSE)
4184+ {
4185+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParamTool,nxp has not been opened yet!\n");
4186+ return DRV_ERR_NOT_OPENED;
4187+ }
4188+
4189+ if (g_audioNvParam.audio_ctrlFlag.isVpParamInNv == 1)
4190+ {
4191+
4192+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParamTool get para isVpParamInNv !\r\n");
4193+ pathTxOffset = path * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE);
4194+ pathRxOffset = path * (LVWM_TX_FILE_SIZE + LVWM_RX_FILE_SIZE) + LVWM_TX_FILE_SIZE;
4195+
4196+ NxpParamsTool->pPresetTx = (char*)g_audioNvParam.s_nxpPathParam + pathTxOffset;
4197+ NxpParamsTool->pPresetRx = (char*)g_audioNvParam.s_nxpPathParam + pathRxOffset;
4198+
4199+ NxpParamsTool->PresetLengthTx = LVWM_TX_FILE_SIZE;
4200+ NxpParamsTool->PresetLengthRx = LVWM_RX_FILE_SIZE;
4201+ }
4202+ else
4203+ {
4204+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParamTool get para not isVpParamInNv !\r\n");
4205+
4206+ NxpParamsTool->pPresetTx = LVVE_Tx_Preset_Buffer_Voice_Tool;
4207+ NxpParamsTool->pPresetRx = LVVE_Rx_Preset_Buffer_Voice_Tool;
4208+ NxpParamsTool->PresetLengthTx = sizeof(LVVE_Tx_Preset_Buffer_Voice_Tool);
4209+ NxpParamsTool->PresetLengthRx = sizeof(LVVE_Rx_Preset_Buffer_Voice_Tool);
4210+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParamTool get default param !\r\n");
4211+ }
4212+
4213+ if (g_voiceVar.muteEn == TRUE)
4214+ {
4215+ if (g_audioNvParam.audio_ctrlFlag.isVpParamInNv == 1)
4216+ {
4217+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParamTool get mute isVpParamInNv !\r\n");
4218+ if (g_voiceVar.volteIsWb != 1)
4219+ {
4220+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParamTool get nb mute config !\r\n");
4221+ NxpParamsTool->pPresetTx = (char*)g_audioNvParam.s_nxpTxNbMuteParam; //xiu gai chu
4222+ NxpParamsTool->PresetLengthTx = LVWM_TX_FILE_SIZE;
4223+ }
4224+ else
4225+ {
4226+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParamTool get wb mute config !\r\n");
4227+ NxpParamsTool->pPresetTx = (char*)g_audioNvParam.s_nxpTxWbMuteParam; //xiu gai chu
4228+ NxpParamsTool->PresetLengthTx = LVWM_TX_FILE_SIZE;
4229+ }
4230+ }
4231+ else
4232+ {
4233+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParamTool get mute not isVpParamInNv !\r\n");
4234+ if (g_voiceVar.volteIsWb != 1)
4235+ {
4236+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParamTool get nb mute config !\r\n");
4237+ NxpParamsTool->pPresetTx = LVVE_Tx_Mute_File_Buffer;
4238+ NxpParamsTool->PresetLengthTx = sizeof(LVVE_Tx_Mute_File_Buffer);
4239+ }
4240+ else
4241+ {
4242+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParamTool get wb mute config !\r\n");
4243+ NxpParamsTool->pPresetTx = LVVE_Tx_Wb_Mute_File_Buffer;
4244+ NxpParamsTool->PresetLengthTx = sizeof(LVVE_Tx_Wb_Mute_File_Buffer);
4245+ }
4246+ }
4247+ }
4248+
4249+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParamTool PresetLengthRx=%d PresetLengthTx= %d ", NxpParamsTool->PresetLengthRx, NxpParamsTool->PresetLengthTx);
4250+ /*klocwork 3 INVARIANT_CONDITION.UNREACH delete if*/
4251+ /*
4252+ if ((NxpParamsTool->PresetLengthRx == LVM_NULL) || (NxpParamsTool->PresetLengthTx == LVM_NULL))
4253+ {
4254+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpGetParamTool NXP read para is null !\r\n");
4255+ return DRV_ERROR;
4256+ }*/
4257+ return DRV_SUCCESS;
4258+}
4259+#if 0
4260+SINT32 Vp_NxpSetGain(SINT32 gain, UINT32 channel, T_ZDrv_VpPath path)
4261+{
4262+ //LVVE_ReturnStatus_en LVVE_Status=LVVE_SUCCESS;//xiu gai chu
4263+ //LVM_INT16 tempGain=0;//xiu gai chu
4264+ if (g_nxpIsOpen == FALSE)
4265+ {
4266+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpSetGain,nxp has not been opened yet!\n");
4267+ return DRV_ERR_NOT_OPENED;
4268+ }
4269+
4270+ return DRV_SUCCESS;
4271+}
4272+#endif
4273+SINT32 Vp_NxpRxProcess(UINT8 **pPReadBuffer, UINT8 **pPWriteBuffer, UINT16 sampleNums)
4274+{
4275+ LVM_INT16 *pWriteBuffer;
4276+ LVM_INT16 *pReadBuffer;
4277+ LVM_INT16 *pReadBuffer_FE;
4278+ LVVE_ReturnStatus_en LVVE_Status; /* Module status return */
4279+
4280+ SINT32 ret = DRV_SUCCESS;
4281+ if (g_nxpIsOpen == FALSE)
4282+ {
4283+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpRxProcess,nxp has not been opened yet!\n");
4284+ return DRV_ERR_NOT_OPENED;
4285+ }
4286+
4287+ /*************************/
4288+ /* PROCESS THE RX MODULE */
4289+ /*************************/
4290+
4291+ pReadBuffer = (LVM_INT16 *)(*pPReadBuffer);
4292+ pWriteBuffer = (LVM_INT16 *)(*pPWriteBuffer);
4293+ pReadBuffer_FE = (LVM_INT16 *)&InBuffer16_Tx_FE[0];
4294+
4295+ LVVE_Status = LVVE_Rx_Process(hInstance_Rx, /* Instance handle */
4296+ pReadBuffer, /* Input buffer */
4297+ pNoiseData, /* Noise data */
4298+ pWriteBuffer, /* Output buffer */
4299+ sampleNums); /* Number of samples pairs to process */
4300+
4301+ if (LVVE_Status == LVVE_NULLADDRESS)
4302+ {
4303+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpRxProcess Parameter error - null pointer returned from LVVE_Rx_Process\n");
4304+ ret = DRV_ERROR;
4305+ }
4306+ if (LVVE_Status == LVVE_INVALIDNUMSAMPLES)
4307+ {
4308+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpRxProcess Invalid number of samples, check value or range returned from LVVE_Rx_Process\n");
4309+ ret = DRV_ERROR;
4310+ }
4311+ if (LVVE_Status == LVVE_ALIGNMENTERROR)
4312+ {
4313+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpRxProcess Alignment error, check input and/or output buffer alignment returned from LVVE_Rx_Process\n");
4314+ ret = DRV_ERROR;
4315+ }
4316+
4317+ if (LVVE_Status != LVVE_SUCCESS)
4318+ {
4319+ if (isFirstRxProcessErr == TRUE)
4320+ {
4321+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpRxProcess Error while processing returned from LVVE_Rx_Process: %d\n", (LVM_INT16)LVVE_Status);
4322+ isFirstRxProcessErr = FALSE;
4323+ }
4324+ ret = DRV_ERROR;
4325+ }
4326+
4327+ zOss_Memcpy((VOID*)pReadBuffer_FE, (VOID*)pWriteBuffer, sampleNums * sizeof(LVM_INT16));
4328+//zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpRxProcess\n");
4329+ ret = DRV_SUCCESS;//xiu waring:unused ret
4330+ return ret;
4331+}
4332+
4333+SINT32 Vp_NxpTxProcess(UINT8 **pPReadBuffer_NE_MAIN, UINT8 **pPReadBuffer_NE_AUX, UINT8 **pPWriteBuffer, UINT16 sampleNums)
4334+{
4335+ SINT32 ret = DRV_SUCCESS;
4336+
4337+ LVM_INT16 *pWriteBuffer;
4338+ LVVE_ReturnStatus_en LVVE_Status; /* Module status return */
4339+
4340+ LVM_INT16 *pReadBuffer_NE0;
4341+ LVM_INT16 *pReadBuffer_NE1;
4342+ LVM_INT16 *pReadBuffer_FE;
4343+
4344+ if (g_nxpIsOpen == FALSE)
4345+ {
4346+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpTxProcess,nxp has not been opened yet!\n");
4347+ return DRV_ERR_NOT_OPENED;
4348+ }
4349+
4350+ /*************************/
4351+ /* PROCESS THE TX MODULE */
4352+ /*************************/
4353+
4354+ pReadBuffer_NE0 = (LVM_INT16 *)(*pPReadBuffer_NE_MAIN);
4355+ if (pPReadBuffer_NE_AUX == NULL)
4356+ {
4357+ pReadBuffer_NE1 = NULL;
4358+ }
4359+ else
4360+ {
4361+ pReadBuffer_NE1 = (LVM_INT16 *)(*pPReadBuffer_NE_AUX);
4362+ }
4363+ pWriteBuffer = (LVM_INT16 *)(*pPWriteBuffer);
4364+ pReadBuffer_FE = (LVM_INT16 *)&InBuffer16_Tx_FE[0];
4365+
4366+ LVVE_Status = LVVE_Tx_Process(hInstance_Tx, /* Instance handle */
4367+ pReadBuffer_NE0, /* Input buffer primary Mic */
4368+ pReadBuffer_NE1, /* Input buffer secondary Mic */
4369+ pReadBuffer_FE, /* Input buffer */
4370+ pNoiseData, /* Noise data */
4371+ pWriteBuffer, /* Output buffer */
4372+ sampleNums); /* Number of samples pairs to process */
4373+
4374+ /*
4375+ * Check for error and stop if needed
4376+ */
4377+ if (LVVE_Status == LVVE_NULLADDRESS)
4378+ {
4379+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpTxProcess Parameter error - null pointer returned from LVVE_Tx_Process\n");
4380+ ret = DRV_ERROR;
4381+ }
4382+ if (LVVE_Status == LVVE_INVALIDNUMSAMPLES)
4383+ {
4384+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpTxProcess Invalid number of samples, check value or range returned from LVVE_Tx_Process\n");
4385+ ret = DRV_ERROR;
4386+ }
4387+ if (LVVE_Status == LVVE_ALIGNMENTERROR)
4388+ {
4389+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpTxProcess Alignment error, check input and/or output buffer alignment returned from LVVE_Tx_Process\n");
4390+ ret = DRV_ERROR;
4391+ }
4392+ if (LVVE_Status != LVVE_SUCCESS)
4393+ {
4394+
4395+ if (isFirstTxProcessErr == TRUE)
4396+ {
4397+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpTxProcess Error while processing returned from LVVE_Tx_Process: %d\n", (LVM_INT16)LVVE_Status);
4398+ isFirstTxProcessErr = FALSE;
4399+ }
4400+ ret = DRV_ERROR;
4401+ }
4402+ ret = DRV_SUCCESS;//xiu warning:unused ret
4403+ //zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "Vp_NxpTxProcess\n");
4404+ return ret;//xiu
4405+}
4406+
4407diff --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
4408new file mode 100755
4409index 0000000..9547823
4410--- /dev/null
4411+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/hal_nxp.h
4412@@ -0,0 +1,32 @@
4413+/*******************************************************************************
4414+ * Copyright (C) 2007, ZTE Corporation.
4415+ *
4416+ * File Name: hal_nxp.h
4417+ * File Mark:
4418+ * Description: Provide the interface of nxp processing
4419+ * Others:
4420+ * Version: V0.5
4421+ * Author: lvwenhua
4422+ * Date: 2012-06-13
4423+ * History 1:
4424+ * Date:
4425+ * Version:
4426+ * Author:
4427+ * Modification:
4428+ * History 2:
4429+ ********************************************************************************/
4430+#ifndef _HAL_NXP_H
4431+#define _HAL_NXP_H
4432+// added by zhanglixia
4433+//#include "LVVE.h"
4434+extern SINT32 Vp_NxpInitNvParam(VOID);
4435+extern SINT32 Vp_NxpOpen(UINT32 fs);
4436+extern SINT32 Vp_NxpClose(VOID);
4437+extern SINT32 Vp_NxpGetParam(T_ZDrvVoice_MODE voiceMode, T_ZDrv_VpPath path);
4438+extern SINT32 Vp_NxpSetParam(T_ZDrv_VpPath path, T_ZDrv_VpVol volume, BOOL isLoop);
4439+//end added by zhanglixia
4440+extern SINT32 Vp_NxpSetParamTool(T_ZDrv_VpPath path, T_ZDrv_VpVol volume, zDrvVp_NxpParamsTool *NxpParamsTool,BOOL isLoop,BOOL isVolte);
4441+extern SINT32 Vp_NxpGetParamTool(T_ZDrv_VpPath path, T_ZDrv_VpVol volume, zDrvVp_NxpParamsTool *NxpParamsTool,BOOL isLoop,BOOL isVolte);
4442+extern SINT32 Vp_NxpRxProcess(UINT8 **pPReadBuffer, UINT8 **pPWriteBuffer,UINT16 sampleNums);
4443+extern SINT32 Vp_NxpTxProcess(UINT8 **pPReadBuffer_NE_MAIN, UINT8 **pPReadBuffer_NE_AUX, UINT8 **pPWriteBuffer,UINT16 sampleNums);
4444+#endif
4445diff --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
4446new file mode 100755
4447index 0000000..b4f481e
4448--- /dev/null
4449+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/makefile
4450@@ -0,0 +1,53 @@
4451+#***********************************************************************
4452+# °æÈ¨ËùÓÐ (C)2001,ÖÐÐËͨѶ¹É·ÝÓÐÏÞ¹«Ë¾¡£
4453+#
4454+# ÎļþÃû³Æ£º makefile
4455+# Îļþ±êʶ£º ±àÒënxpÄ£¿é
4456+# ÄÚÈÝÕªÒª£º
4457+#
4458+# ÐÞ¸ÄÈÕÆÚ °æ±¾ºÅ Ð޸ıê¼Ç ÐÞ¸ÄÈË ÐÞ¸ÄÄÚÈÝ
4459+# ---------------------------------------------------------------------
4460+# 2015/08/17 V1.0 zhuoyongsheng create
4461+#***********************************************************************/
4462+include $(PRJ_PATH)/config/project.mk
4463+include $(DRV_PATH)/ws/drv_cfg.mk
4464+
4465+
4466+#===============================================
4467+# ·¾¶ÉèÖÃ
4468+#===============================================
4469+_MDL_NAME = nxp
4470+
4471+_MDL_SRC_PATH = $(CHIP_SRC_PATH)/audio_base/$(_MDL_NAME)
4472+_MDL_INC_PATH = $(CHIP_INC_PATH)
4473+_MDL_OBJ_PATH = $(CHIP_OBJ_PATH)/audio_base/$(_MDL_NAME)
4474+
4475+
4476+
4477+
4478+#============================================
4479+#¸÷Ä£¿éÒÀÀµ¹«¹²Í·ÎļþÉèÖÃ
4480+#============================================
4481+ INCLUDE += $(_EXTERNAL_INC_PATH) \
4482+ -I$(CHIP_SRC_PATH)/audio_base/include \
4483+ -I$(_MDL_INC_PATH)
4484+#============================================
4485+#×ÓϵͳÀ©Õ¹¶¨Òå
4486+#============================================
4487+DEFINE +=
4488+
4489+#============================================
4490+#Ä£¿éÎļþÐÅÏ¢
4491+#============================================
4492+_C_SOURCE = $(wildcard $(_MDL_SRC_PATH)/*.c)
4493+
4494+_s_SOURCE =
4495+
4496+_S_SOURCE =
4497+
4498+#============================================
4499+# ±àÒë¹æÔò
4500+#============================================
4501+
4502+include $(FRAME_PATH)/rules/mdl_rules.mk
4503+
4504diff --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
4505new file mode 100755
4506index 0000000..6a10dbc
4507--- /dev/null
4508+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/testnxp_rxin2rxout.c
4509@@ -0,0 +1,211 @@
4510+#include "drvs_general.h"
4511+#include "drvs_voiceprocess.h"
4512+#include "drvs_ramlog.h"
4513+#include "hal_nxp.h"
4514+
4515+#include <linux/module.h>
4516+#include <linux/kernel.h>
4517+#include <linux/init.h>
4518+#include <linux/fs.h>
4519+#include <linux/miscdevice.h>
4520+#include <asm/uaccess.h>
4521+#include <linux/slab.h>
4522+#include <linux/init.h>
4523+
4524+typedef struct testnxp{
4525+ int fs;
4526+ int voicemode;
4527+ int vp_path;
4528+ int vp_vol;
4529+ int framecount;
4530+}T_TestNxp;
4531+
4532+#define TESTNXP_IOCTL_RXIN_TO_RXOUT_START _IOW('N', 1, T_TestNxp)
4533+#define TESTNXP_IOCTL_RXIN_TO_RXOUT_STOP _IO('N', 2)
4534+
4535+#define MAX_NXP_BUF 640
4536+
4537+
4538+static const char testnxp_shortname[] = "testnxp_dev";
4539+static unsigned char *rxin_buf = NULL;
4540+static unsigned char *rxout_buf = NULL;
4541+static int framecount;
4542+static int testnxp_open(struct inode * ip,struct file * fp);
4543+static int testnxp_release(struct inode *ip, struct file *fp);
4544+static ssize_t testnxp_read(struct file *fp, char __user *buf,size_t count, loff_t *pos);
4545+static ssize_t testnxp_write(struct file *fp, const char __user *buf,size_t count, loff_t *pos);
4546+static long testnxp_ioctl(struct file *fp, unsigned int cmd, unsigned long arg);
4547+
4548+
4549+
4550+
4551+/* file operations for testnxp device /dev/testnxp_device */
4552+static const struct file_operations testnxp_fops = {
4553+ .owner = THIS_MODULE,
4554+ .read = testnxp_read,
4555+ .write = testnxp_write,
4556+ .unlocked_ioctl = testnxp_ioctl,
4557+ .open = testnxp_open,
4558+ .release = testnxp_release,
4559+};
4560+
4561+static struct miscdevice testnxp_device = {
4562+ .minor = MISC_DYNAMIC_MINOR,
4563+ .name = testnxp_shortname,
4564+ .fops = &testnxp_fops,
4565+};
4566+
4567+
4568+
4569+static ssize_t testnxp_read(struct file *fp, char __user *buf,size_t count, loff_t *pos)
4570+{
4571+
4572+ if(buf == NULL)
4573+ {
4574+ pr_info("testnxp_read buffer null \n");
4575+ return -EINVAL;
4576+ }
4577+
4578+ if ((count>0) &&(count<=MAX_NXP_BUF)) {
4579+ if (copy_to_user(buf, rxout_buf, count)) {
4580+ pr_info("testnxp_read copy_to_user error \n");
4581+ return -EFAULT;
4582+ }
4583+ }else{
4584+ pr_info("testnxp_read count error \n");
4585+ return -EINVAL;
4586+ }
4587+ return count;
4588+}
4589+
4590+static ssize_t testnxp_write(struct file *fp, const char __user *buf,size_t count, loff_t *pos)
4591+{
4592+ int ret;
4593+
4594+ if(buf == NULL)
4595+ {
4596+ pr_info("testnxp_write buffer null \n");
4597+ return -EINVAL;
4598+ }
4599+
4600+ if ((count > 0) && (count <= MAX_NXP_BUF)) {
4601+ if (copy_from_user(rxin_buf, buf, count)) {
4602+ pr_info("testnxp_write copy_from_user error \n");
4603+ return -EFAULT;
4604+ }
4605+
4606+ Vp_NxpRxProcess(&rxin_buf, &rxout_buf, count/2);
4607+
4608+ }else{
4609+ pr_info("testnxp_write count error \n");
4610+ return -EINVAL;
4611+ }
4612+
4613+ return count;
4614+}
4615+
4616+
4617+static long testnxp_ioctl(struct file *fp, unsigned int cmd, unsigned long arg)
4618+{
4619+ T_TestNxp *param = (T_TestNxp *)arg;
4620+ T_TestNxp testnxp_param = {0};
4621+ int ret = 0;
4622+ printk("testnxp_ioctl\n");
4623+
4624+ switch(cmd)
4625+ {
4626+ case TESTNXP_IOCTL_RXIN_TO_RXOUT_START:
4627+ {
4628+ if (copy_from_user((void*)&testnxp_param, (void*)param, sizeof(struct testnxp)))
4629+ {
4630+ return DRV_ERR_INVALID_PARAM;
4631+ }
4632+ framecount = testnxp_param.framecount;
4633+ ret = Vp_NxpOpen(testnxp_param.fs);
4634+ if (ret == 0)
4635+ {
4636+ ret = Vp_NxpGetParam(testnxp_param.voicemode, testnxp_param.vp_path);
4637+ if (ret == 0)
4638+ {
4639+ ret = Vp_NxpSetParam(testnxp_param.vp_path, testnxp_param.vp_vol, FALSE);
4640+ if (ret != 0 )
4641+ Vp_NxpClose();
4642+ }
4643+ else
4644+ {
4645+ Vp_NxpClose();
4646+ }
4647+ }
4648+ break;
4649+ }
4650+ case TESTNXP_IOCTL_RXIN_TO_RXOUT_STOP:
4651+ {
4652+ Vp_NxpClose();
4653+ }
4654+ default:
4655+ {
4656+ break;
4657+ }
4658+ }
4659+ return ret;
4660+}
4661+
4662+
4663+
4664+static int testnxp_open(struct inode *ip, struct file *fp)
4665+{
4666+ printk("testnxp_open\n");
4667+
4668+ if(rxin_buf == NULL)
4669+ {
4670+ rxin_buf = kzalloc(2 * MAX_NXP_BUF, GFP_KERNEL);
4671+ if (!rxin_buf)
4672+ {
4673+ pr_info("testnxp_init malloc error\n");
4674+ return -ENOMEM;
4675+ }
4676+
4677+ rxout_buf = rxin_buf + MAX_NXP_BUF;
4678+ }
4679+
4680+ return 0;
4681+}
4682+
4683+static int testnxp_release(struct inode *ip, struct file *fp)
4684+{
4685+ printk("testnxp_release\n");
4686+
4687+ if(rxin_buf)
4688+ {
4689+ kfree(rxin_buf);
4690+ rxin_buf = NULL;
4691+ }
4692+
4693+ return 0;
4694+}
4695+
4696+
4697+// int __init testnxp_init(void)
4698+int testnxp_init(void)
4699+{
4700+ int ret;
4701+ printk("testnxp driver initialize\n");
4702+
4703+ ret = misc_register(&testnxp_device);
4704+ if (ret){
4705+ printk(KERN_ERR "testnxp driver failed to initialize\n");
4706+ return -EFAULT;
4707+ }
4708+
4709+ return 0;
4710+}
4711+
4712+
4713+ void __exit testnxp_exit(void)
4714+{
4715+ misc_deregister(&testnxp_device);
4716+}
4717+
4718+//late_initcall(testnxp_init);
4719+//module_exit(testnxp_exit);
4720+
4721diff --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
4722new file mode 100755
4723index 0000000..14efe8c
4724--- /dev/null
4725+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/tos/LVC_Types.h
4726@@ -0,0 +1,383 @@
4727+/************************************************************************/
4728+/* Copyright (c) 2004-2014 NXP Software. All rights are reserved. */
4729+/* Reproduction in whole or in part is prohibited without the prior */
4730+/* written consent of the copyright owner. */
4731+/* */
4732+/* This software and any compilation or derivative thereof is and */
4733+/* shall remain the proprietary information of NXP Software and is */
4734+/* highly confidential in nature. Any and all use hereof is restricted */
4735+/* and is subject to the terms and conditions set forth in the */
4736+/* software license agreement concluded with NXP Software. */
4737+/* */
4738+/* Under no circumstances is this software or any derivative thereof */
4739+/* to be combined with any Open Source Software in any way or */
4740+/* licensed under any Open License Terms without the express prior */
4741+/* written permission of NXP Software. */
4742+/* */
4743+/* For the purpose of this clause, the term Open Source Software means */
4744+/* any software that is licensed under Open License Terms. Open */
4745+/* License Terms means terms in any license that require as a */
4746+/* condition of use, modification and/or distribution of a work */
4747+/* */
4748+/* 1. the making available of source code or other materials */
4749+/* preferred for modification, or */
4750+/* */
4751+/* 2. the granting of permission for creating derivative */
4752+/* works, or */
4753+/* */
4754+/* 3. the reproduction of certain notices or license terms */
4755+/* in derivative works or accompanying documentation, or */
4756+/* */
4757+/* 4. the granting of a royalty-free license to any party */
4758+/* under Intellectual Property Rights */
4759+/* */
4760+/* regarding the work and/or any work that contains, is combined with, */
4761+/* requires or otherwise is based on the work. */
4762+/* */
4763+/* This software is provided for ease of recompilation only. */
4764+/* Modification and reverse engineering of this software are strictly */
4765+/* prohibited. */
4766+/* */
4767+/************************************************************************/
4768+
4769+/****************************************************************************************
4770+
4771+ $Author: beq07720 $
4772+ $Revision: 55357 $
4773+ $Date: 2014-03-05 22:16:13 +0530 (Wed, 05 Mar 2014) $
4774+
4775+*****************************************************************************************/
4776+
4777+/** @file
4778+ * Header file defining the standard LifeVibes types for use in the application layer
4779+ * interface of all LifeVibes modules
4780+ */
4781+
4782+#ifndef LVM_TYPES_H
4783+#define LVM_TYPES_H
4784+
4785+#ifdef __cplusplus
4786+extern "C" {
4787+#endif /* __cplusplus */
4788+
4789+/****************************************************************************************/
4790+/* */
4791+/* definitions */
4792+/* */
4793+/****************************************************************************************/
4794+
4795+#define LVM_NULL 0 ///< NULL pointer
4796+
4797+#define LVM_TRUE 1 ///< Boolean True
4798+#define LVM_FALSE 0 ///< Boolean False
4799+
4800+#define LVM_MAXINT_8 127 ///< Maximum positive integer size
4801+#define LVM_MAXINT_16 32767 ///< Maximum signed int 16 bits number
4802+#define LVM_MAXINT_32 2147483647 ///< Maximum signed int 32 bits number
4803+#define LVM_MAXUINT_32 4294967295U ///< Maximum un-signed int 32 bits number
4804+
4805+#if ( defined(VARIANT_24BIT) )
4806+#define LVM_MAXENUM 8388607L ///< Maximum value for enumerator
4807+#else
4808+#define LVM_MAXENUM 2147483647 ///< Maximum value for enumerator
4809+#endif
4810+
4811+#define LVM_MODULEID_MASK 0xFF00 ///< Mask to extract the calling module ID from callbackId
4812+#define LVM_EVENTID_MASK 0x00FF ///< Mask to extract the callback event from callbackId
4813+
4814+/* Memory table*/
4815+#define LVM_MEMREGION_PERSISTENT_SLOW_DATA 0 ///< Offset to the instance memory region
4816+#define LVM_MEMREGION_PERSISTENT_FAST_DATA 1 ///< Offset to the persistent data memory region
4817+#define LVM_MEMREGION_PERSISTENT_FAST_COEF 2 ///< Offset to the persistent coefficient memory region
4818+#define LVM_MEMREGION_TEMPORARY_FAST 3 ///< Offset to temporary memory region
4819+
4820+#define LVM_NR_MEMORY_REGIONS 4 ///< Number of memory regions
4821+
4822+#define LVM_MODE_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVM_Mode_en in LVWireFormat
4823+#define LVM_CONFIG_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVM_Config_en in LVWireFormat
4824+#define LVM_FS_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVM_Fs_en sample Rate in LVWireFormat
4825+
4826+#define LVM_CHAR_LVWIREFORMAT_LENGTH (1)
4827+#define LVM_INT8_LVWIREFORMAT_LENGTH (1)
4828+#define LVM_UINT8_LVWIREFORMAT_LENGTH (1)
4829+
4830+#define LVM_INT16_LVWIREFORMAT_LENGTH (2)
4831+#define LVM_UINT16_LVWIREFORMAT_LENGTH (2)
4832+
4833+#define LVM_INT32_LVWIREFORMAT_LENGTH (4)
4834+#define LVM_UINT32_LVWIREFORMAT_LENGTH (4)
4835+
4836+
4837+/****************************************************************************************/
4838+/* */
4839+/* Basic types */
4840+/* */
4841+/****************************************************************************************/
4842+
4843+#if defined(CORE_TIC64)
4844+typedef char LVM_CHAR; ///< ASCII character
4845+
4846+typedef char LVM_INT8; ///< Signed 8-bit word
4847+typedef unsigned char LVM_UINT8; ///< Unsigned 8-bit word
4848+
4849+typedef short LVM_INT16; ///< Signed 16-bit word
4850+typedef unsigned short LVM_UINT16; ///< Unsigned 16-bit word
4851+
4852+typedef int LVM_INT32; ///< Signed 32-bit word
4853+typedef unsigned int LVM_UINT32; ///< Unsigned 32-bit word
4854+#else
4855+
4856+#if ( defined(VARIANT_FRAC16) || defined (VARIANT_REFREAL16) )
4857+typedef long DATATYPE; ///< long data type
4858+
4859+typedef char LVM_CHAR; ///< ASCII character
4860+
4861+typedef char LVM_INT8; ///< Signed 8-bit word
4862+typedef unsigned char LVM_UINT8; ///< Unsigned 8-bit word
4863+
4864+typedef long LVM_INT16; ///< Signed 16-bit word
4865+typedef long LVM_UINT16; ///< Unsigned 16-bit word
4866+
4867+typedef long LVM_INT32; ///< Signed 32-bit word
4868+typedef long LVM_UINT32; ///< Unsigned 32-bit word
4869+
4870+#else
4871+typedef char LVM_CHAR; ///< ASCII character
4872+
4873+typedef char LVM_INT8; ///< Signed 8-bit word
4874+typedef unsigned char LVM_UINT8; ///< Unsigned 8-bit word
4875+
4876+typedef short LVM_INT16; ///< Signed 16-bit word
4877+typedef unsigned short LVM_UINT16; ///< Unsigned 16-bit word
4878+
4879+typedef long LVM_INT32; ///< Signed 32-bit word
4880+typedef unsigned long LVM_UINT32; ///< Unsigned 32-bit word
4881+#if ( defined(VARIANT_24BIT) )
4882+
4883+#define LVM_MAXINT_24 8388607L ///< 24 bit max int
4884+#define LVM_MININT_24 -8388608L ///< 24bit min int
4885+
4886+#define LVM_MAXINT_48 140737488355327LL ///< 48bit max int
4887+#define LVM_MININT_48 -140737488355328LL ///< 48bit min int
4888+
4889+#endif // VARIANT_24BIT
4890+
4891+#endif // VARIANT_FRAC16
4892+
4893+#endif // CORE_TIC64
4894+
4895+/****************************************************************************************/
4896+/* */
4897+/* Standard Enumerated types */
4898+/* */
4899+/****************************************************************************************/
4900+
4901+/**
4902+The @ref LVM_Mode_en enumerated type is used to set the operating mode of a particular feature inside the LifeVibes modules.
4903+The feature can be separately set to enable the feature processing (i.e., ON) or to disable all feature processing
4904+modules (i.e., OFF).
4905+*/
4906+typedef enum
4907+{
4908+ LVM_MODE_OFF = 0, ///< LVM module disabled
4909+ LVM_MODE_ON = 1, ///< LVM module enabled
4910+ LVM_MODE_DUMMY = LVM_MAXENUM
4911+} LVM_Mode_en;
4912+
4913+/**
4914+Sets stream Format
4915+*/
4916+typedef enum
4917+{
4918+ LVM_STEREO = 0, ///<Stereo stream
4919+ LVM_MONOINSTEREO = 1, ///<Mono in stereo stream
4920+ LVM_MONO = 2, ///<Mono stream
4921+ LVM_5DOT1 = 3, ///<stream 5.1 formatted
4922+ LVM_7DOT1 = 4, ///<stream 7.1 formatted
4923+ LVM_SOURCE_DUMMY = LVM_MAXENUM
4924+} LVM_Format_en;
4925+
4926+/**
4927+Sets Speaker type
4928+*/
4929+typedef enum
4930+{
4931+ LVM_SPEAKER_MONO = 0, ///< Mono type speaker
4932+ LVM_SPEAKER_STEREO = 1, ///< Stereo type speaker
4933+ LVM_SPEAKER_DUMMY = LVM_MAXENUM
4934+} LVM_SpeakerType_en;
4935+
4936+/**
4937+Sets Word length
4938+*/
4939+typedef enum
4940+{
4941+ LVM_16_BIT = 0, ///< 16 bit word length
4942+ LVM_32_BIT = 1, ///< 32 bit word length
4943+ LVM_WORDLENGTH_DUMMY = LVM_MAXENUM
4944+} LVM_WordLength_en;
4945+
4946+/**
4947+The LVM product supports the sample rates specified in @ref LVM_Fs_en. The input and output sample rates are always the same.
4948+*/
4949+typedef enum
4950+{
4951+ LVM_FS_8000 = 0, ///< 8k sampling rate
4952+ LVM_FS_11025 = 1, ///< 11.025k sampling rate
4953+ LVM_FS_12000 = 2, ///< 12k sampling rate
4954+ LVM_FS_16000 = 3, ///< 16k sampling rate
4955+ LVM_FS_22050 = 4, ///< 22.050k sampling rate
4956+ LVM_FS_24000 = 5, ///< 24k sampling rate
4957+ LVM_FS_32000 = 6, ///< 32k sampling rate
4958+ LVM_FS_44100 = 7, ///< 44.1k sampling rate
4959+ LVM_FS_48000 = 8, ///< 48k sampling rate
4960+ LVM_FS_COUNT = 9, ///< Max sampling rate count
4961+ LVM_FS_INVALID = LVM_MAXENUM-1,
4962+ LVM_FS_DUMMY = LVM_MAXENUM
4963+} LVM_Fs_en;
4964+
4965+/**
4966+The enumerated type is used to select the reset mode for the module.
4967+@ref LVM_RESET_SOFT is used to select a soft reset (or partial reset) and @ref LVM_RESET_HARD is
4968+used to select a hard reset (full re-initialization).
4969+*/
4970+typedef enum
4971+{
4972+/**
4973+<table border>
4974+ <tr>
4975+ <td><b>Name</b></td>
4976+ <td><b>MODE</b></td>
4977+ </tr>
4978+ <tr>
4979+ <td>ResetType</td>
4980+ <td>@ref LVM_RESET_SOFT</td>
4981+ </tr>
4982+ <tr>
4983+ <td></td>
4984+ <td>@ref LVM_RESET_HARD</td>
4985+ </tr>
4986+</table>
4987+*/
4988+ LVM_RESET_SOFT = 0, ///< Reset type for LVM where a partial reset of the module should be performed
4989+ LVM_RESET_HARD = 1, ///< Reset type for LVM where a full reset of the module should be performed
4990+ LVM_RESET_DUMMY = LVM_MAXENUM
4991+} LVM_ResetType_en;
4992+
4993+/**
4994+The @ref LVM_MemoryTypes_en enumerated type identifies the memory region types so that they can be correctly placed in memory
4995+by the calling application.
4996+The module initially has no permanent memory storage and makes no use of persistent memory allocation internally.
4997+The calling application must allocate memory for the module to use.
4998+
4999+Four memory regions are required:
5000+@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.
5001+@li @ref LVM_MEMREGION_PERSISTENT_FAST_DATA : this type of memory is used to store data such as filter history
5002+@li @ref LVM_MEMREGION_PERSISTENT_FAST_COEF : this type of memory is used to store filter coefficients.
5003+@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.
5004+
5005+This collection of memory regions forms the module instance.
5006+
5007+Typically the memory is allocated by the application dynamically; however, it can be allocated statically if required.
5008+The sizes of the memory regions can be found by running the GetMemoryTable functions on a simulator and noting
5009+the returned values. Alternatively contact NXP who can provide the figures.
5010+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.
5011+On some target platforms the placement of memory regions is critical for achieving optimal performance of the module.
5012+*/
5013+typedef enum
5014+{
5015+ LVM_PERSISTENT_SLOW_DATA = LVM_MEMREGION_PERSISTENT_SLOW_DATA, ///< Persistent slow memory region
5016+ LVM_PERSISTENT_FAST_DATA = LVM_MEMREGION_PERSISTENT_FAST_DATA, ///< Persistent fast memory region
5017+ LVM_PERSISTENT_FAST_COEF = LVM_MEMREGION_PERSISTENT_FAST_COEF, ///< Persisten fast memory for coefficient storage
5018+ LVM_TEMPORARY_FAST = LVM_MEMREGION_TEMPORARY_FAST, ///< Temporary fast memory region
5019+ LVM_MEMORYTYPE_DUMMY = LVM_MAXENUM
5020+} LVM_MemoryTypes_en;
5021+
5022+/**
5023+Sets mod of Configuration
5024+*/
5025+typedef enum
5026+{
5027+ LVM_CONFIG_HANDSET = 0, ///< Handset configuration
5028+ LVM_CONFIG_SPEAKERPHONE = 1, ///< Speaker mod configuration
5029+ LVM_CONFIG_EARPIECE = 2, ///< Earpiece configuration
5030+ LVM_CONFIG_DUMMY = LVM_MAXENUM
5031+} LVM_Config_en;
5032+
5033+/**
5034+The @ref LVM_MemoryRegion_st type defines a memory region by specifying its size in bytes, its region type and its base pointer.
5035+@see LVM_MemoryTypes_en
5036+*/
5037+#if ( defined(VARIANT_24BIT) )
5038+typedef struct
5039+{
5040+ LVM_INT24 Size; ///< The size of the memory region in bytes
5041+ LVM_MemoryTypes_en Type; ///< Type of memory region
5042+ void *pBaseAddress; ///< Pointer to the memory region base address
5043+} LVM_MemoryRegion_st;
5044+#else
5045+typedef struct
5046+{
5047+ LVM_UINT32 Size; ///< The size of the memory region in bytes
5048+ LVM_MemoryTypes_en Type; ///< Type of memory region
5049+ void *pBaseAddress; ///< Pointer to the memory region base address
5050+} LVM_MemoryRegion_st;
5051+#endif
5052+
5053+/**
5054+The LVM_MemoryTable_st type defines the memory requirements of the module as an array of region definitions.
5055+The number of required memory regions is given by the constant @ref LVM_NR_MEMORY_REGIONS
5056+@see LVM_MemoryRegion_st
5057+*/
5058+typedef struct
5059+{
5060+ LVM_MemoryRegion_st Region[LVM_NR_MEMORY_REGIONS]; ///< One definition of all memory regions
5061+} LVM_MemoryTable_st;
5062+
5063+/**
5064+Beats Per Minute Structure
5065+*/
5066+typedef struct
5067+{
5068+ LVM_INT16 ShortTermMinimum; ///< Beats per minute in Q9.6 format
5069+ LVM_INT16 ShortTermAverage; ///< Beats per minute in Q9.6 format
5070+ LVM_INT16 ShortTermMaximum; ///< Beats per minute in Q9.6 format
5071+
5072+ LVM_INT16 Confidence; ///< Beat confidence level: 0 = no confidence, 32767 = maximum confidence
5073+ LVM_INT16 Strength; ///< Beat strength level: 0 = no beat, 32767 = maximum strength beat
5074+ LVM_INT16 LongTermMinimum; ///< Beats per minute in Q9.6 format
5075+ LVM_INT16 LongTermAverage; ///< Beats per minute in Q9.6 format
5076+ LVM_INT16 LongTermMaximum; ///< Beats per minute in Q9.6 format
5077+
5078+} LVM_BPMModuleStats_st;
5079+
5080+
5081+/****************************************************************************************/
5082+/* */
5083+/* Standard Function Prototypes */
5084+/* */
5085+/****************************************************************************************/
5086+/**
5087+@brief General purpose callback function
5088+
5089+@param pCallbackData Pointer to the callback data structure
5090+@param pGeneralPurpose General purpose pointer (e.g. to a data structure needed in the callback)
5091+@param PresetLength General purpose variable (e.g. to be used as callback ID)
5092+@return \ref LVM_INT32
5093+*/
5094+typedef LVM_INT32 (*LVM_Callback)(void *pCallbackData,
5095+ void *pGeneralPurpose,
5096+ LVM_INT16 GeneralPurpose );
5097+
5098+
5099+/****************************************************************************************/
5100+/* */
5101+/* End of file */
5102+/* */
5103+/****************************************************************************************/
5104+
5105+#ifdef __cplusplus
5106+}
5107+#endif /* __cplusplus */
5108+
5109+#endif /* LVM_TYPES_H */
5110diff --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
5111new file mode 100755
5112index 0000000..9c48d8e
5113--- /dev/null
5114+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/tos/LVVE.h
5115@@ -0,0 +1,1371 @@
5116+/****************************************************************************************/
5117+/* Copyright (c) 2004-2014 NXP Software. All rights are reserved. */
5118+/* Reproduction in whole or in part is prohibited without the prior */
5119+/* written consent of the copyright owner. */
5120+/* */
5121+/* This software and any compilation or derivative thereof is and */
5122+/* shall remain the proprietary information of NXP Software and is */
5123+/* highly confidential in nature. Any and all use hereof is restricted */
5124+/* and is subject to the terms and conditions set forth in the */
5125+/* software license agreement concluded with NXP Software. */
5126+/* */
5127+/* Under no circumstances is this software or any derivative thereof */
5128+/* to be combined with any Open Source Software in any way or */
5129+/* licensed under any Open License Terms without the express prior */
5130+/* written permission of NXP Software. */
5131+/* */
5132+/* For the purpose of this clause, the term Open Source Software means */
5133+/* any software that is licensed under Open License Terms. Open */
5134+/* License Terms means terms in any license that require as a */
5135+/* condition of use, modification and/or distribution of a work */
5136+/* */
5137+/* 1. the making available of source code or other materials */
5138+/* preferred for modification, or */
5139+/* */
5140+/* 2. the granting of permission for creating derivative */
5141+/* works, or */
5142+/* */
5143+/* 3. the reproduction of certain notices or license terms */
5144+/* in derivative works or accompanying documentation, or */
5145+/* */
5146+/* 4. the granting of a royalty-free license to any party */
5147+/* under Intellectual Property Rights */
5148+/* */
5149+/* regarding the work and/or any work that contains, is combined with, */
5150+/* requires or otherwise is based on the work. */
5151+/* */
5152+/* This software is provided for ease of recompilation only. */
5153+/* Modification and reverse engineering of this software are strictly */
5154+/* prohibited. */
5155+/* */
5156+/****************************************************************************************/
5157+
5158+/****************************************************************************************/
5159+/* */
5160+/* $Author: nxp65285 $*/
5161+/* $Revision: 56908 $*/
5162+/* $Date: 2014-04-10 17:30:02 +0530 (Thu, 10 Apr 2014) $*/
5163+/* */
5164+/****************************************************************************************/
5165+
5166+/**
5167+@file
5168+Header file for the application layer interface of the LVVE module.
5169+This files includes all definitions, types, structures and function prototypes
5170+required by the calling layer. All other types, structures and functions are
5171+private.
5172+*/
5173+
5174+#ifndef __LVVE_H__
5175+#define __LVVE_H__
5176+
5177+#ifdef __cplusplus
5178+extern "C" {
5179+#endif /* __cplusplus */
5180+
5181+/****************************************************************************************/
5182+/* */
5183+/* Includes */
5184+/* */
5185+/****************************************************************************************/
5186+
5187+#include "LVVE_VID.h"
5188+
5189+/****************************************************************************************/
5190+/* */
5191+/* Definitions */
5192+/* */
5193+/****************************************************************************************/
5194+/* Below include logic is designed to reduce checks to 1 or 2 conditions due to limitations in the backend stripping code */
5195+
5196+
5197+
5198+
5199+
5200+#define LVVE_MAX_PCM_FRAME_SIZE 160 ///< LVVE maximum processing frame size
5201+
5202+
5203+#define LVVE_NOISESAMPLES_PER_FRAME 2 ///< Number of samples required for noise estimation per frame
5204+/**
5205+@def LVVE_RX_PRESET_LENGTH
5206+Length of the LVVE_Rx preset buffer (number of bytes).
5207+@see LVVE_Rx_SetPreset
5208+@ingroup LVVE_Rx
5209+*/
5210+#define LVVE_RX_PRESET_LENGTH (LVVIDHEADER_CONTROLPARAMS_LVWIREFORMAT_LENGTH + LVVE_RX_CONTROLPARAMS_LVWIREFORMAT_LENGTH) ///< RX preset Buffer length
5211+
5212+/**
5213+@def LVVE_TX_PRESET_LENGTH
5214+Length of the LVVE_Tx preset buffer (number of bytes).
5215+@see LVVE_Tx_SetPreset
5216+@ingroup LVVE_Tx
5217+*/
5218+#define LVVE_TX_PRESET_LENGTH (LVVIDHEADER_CONTROLPARAMS_LVWIREFORMAT_LENGTH + LVVE_TX_CONTROLPARAMS_LVWIREFORMAT_LENGTH) ///< TX preset buffer length
5219+
5220+
5221+/* Deprecated Definitions */
5222+
5223+#define LVVE_MAX_BULK_DELAY LVVE_TX_BULKDELAY_MAX
5224+#define LVVE_RX_MODE_DUMMY LVVE_RX_MODE_EN_DUMMY
5225+#define LVVE_TX_MODE_DUMMY LVVE_TX_MODE_EN_DUMMY
5226+
5227+#define LVVE_MAX_VOL_GAIN_DB LVVE_TX_VOL_GAIN_MAX
5228+#define LVVE_MIN_VOL_GAIN_DB LVVE_TX_VOL_GAIN_MIN
5229+
5230+#define LVVE_MAX_HPF_CORNER_HZ LVVE_TX_MIC_HPF_CORNERFREQ_MAX
5231+#define LVVE_MIN_HPF_CORNER_HZ LVVE_TX_MIC_HPF_CORNERFREQ_MIN
5232+
5233+#define LVVE_MAX_HPF_RX_CORNER_HZ LVVE_RX_HPF_CORNERFREQ_MAX
5234+
5235+#define LVVE_MAX_NLPP_LIMIT_DB LVNLPP_NLPP_LIMIT_MAX
5236+#define LVVE_MIN_NLPP_LIMIT_DB LVNLPP_NLPP_LIMIT_MIN
5237+
5238+
5239+#define LVVE_MAX_DRC_LEVEL LVDRC_COMPRESSORCURVEINPUTLEVELS_MAX
5240+#define LVVE_MIN_DRC_LEVEL LVDRC_COMPRESSORCURVEINPUTLEVELS_MIN
5241+#define LVVE_MIN_DRC_NUMKNEES LVDRC_NUMKNEES_MIN
5242+#define LVVE_MAX_DRC_NUMKNEES LVDRC_NUMKNEES_MAX
5243+#define LVVE_MIN_DRC_ATTACKTIME LVDRC_ATTACKTIME_MIN
5244+#define LVVE_MAX_DRC_ATTACKTIME LVDRC_ATTACKTIME_MAX
5245+#define LVVE_MIN_DRC_RELEASETIME LVDRC_RELEASETIME_MIN
5246+#define LVVE_MAX_DRC_RELEASETIME LVDRC_RELEASETIME_MAX
5247+
5248+
5249+/* End deprecated defines*/
5250+/****************************************************************************************/
5251+/* */
5252+/* Types */
5253+/* */
5254+/****************************************************************************************/
5255+
5256+/**
5257+LVVE_Tx Instance Handle
5258+This handle is used by most of the LVVE APIs
5259+@see LVVE_Tx_GetInstanceHandle
5260+@ingroup LVVE_Tx
5261+*/
5262+typedef void *LVVE_Tx_Handle_t; ///< LVVE Tx handle
5263+/**
5264+This handle is used by most of the LVVE APIs
5265+@see LVVE_Rx_GetInstanceHandle
5266+@ingroup LVVE_Rx
5267+*/
5268+typedef void *LVVE_Rx_Handle_t; ///< LVVE Rx handle
5269+
5270+/**
5271+This enum type specifies the different error codes returned by the API functions
5272+For the exact meaning see the individual function descriptions
5273+*/
5274+typedef enum
5275+{
5276+ LVVE_SUCCESS = 0, ///< Successful return from a routine
5277+ LVVE_ALIGNMENTERROR = 1, ///< Memory alignment error
5278+ LVVE_NULLADDRESS = 2, ///< NULL allocation address
5279+ LVVE_OUTOFRANGE = 3, ///< Out of range parameter
5280+ LVVE_INVALIDNUMSAMPLES = 4, ///< Invalid number of samples
5281+ LVVE_INVALID_ALGORITHM_CONFIGURATION = 5, ///< Mutually exclusive algorithms configured ON
5282+ LVVE_INVALID_STATE_CONFIGURATION = 6, ///< Invalid state of the algorithm
5283+ LVVE_PRESET_INVALID_BUFFER_LENGTH = 7, ///< Incorrect length of buffer used in SetPreset
5284+ LVVE_PRESET_INVALID_VOLUME_INDEX = 8, ///< The volume index exceeds the buffer content in SetPreset
5285+ LVVE_PRESET_INVALID_BUFFER_VERSION = 9, ///< The version of the preset buffer does not match this library
5286+ LVVE_PRESET_INVALID_BASELINE_VERSION = 10, ///< Invalid LVVE Baseline Version in preset buffer
5287+ LVVE_PRESET_INVALID_MASK = 11, ///< Invalid algorithm mask in preset buffer
5288+ LVVE_PRESET_INVALID_SAMPLE_RATE = 12, ///< Invalid sample rate @ref LVM_Fs_en in preset buffer
5289+ LVVE_PRESET_INVALID_LVWIREFORMAT_MESSAGEID = 13, ///< Invalid @ref LVVIDHeader_MessageID_en wire format message id in preset buffer
5290+
5291+ LVVE_RETURNSTATUS_DUMMY = LVM_MAXENUM
5292+} LVVE_ReturnStatus_en;
5293+
5294+/**
5295+Byte array containing encoded LVVE_Rx_ControlParams for one or multiple volumes.
5296+The length of this array should be a multiple of @ref LVVE_RX_PRESET_LENGTH.
5297+@see LVVE_Rx_SetPreset
5298+@ingroup LVVE_Rx
5299+*/
5300+typedef LVM_CHAR* LVVE_Rx_Preset_t; ///< LVVE Rx preset buffer
5301+
5302+/**
5303+Byte array containing encoded LVVE_Tx_ControlParams for one or multiple volumes.
5304+The length of this array should be a multiple of @ref LVVE_TX_PRESET_LENGTH.
5305+@see LVVE_Tx_SetPreset
5306+@ingroup LVVE_Tx
5307+*/
5308+typedef LVM_CHAR* LVVE_Tx_Preset_t; ///< LVVE Tx preset buffer
5309+
5310+
5311+/****************************************************************************************/
5312+/* */
5313+/* Structures */
5314+/* */
5315+/****************************************************************************************/
5316+
5317+/**
5318+The instance parameters define certain important operating limits required by the calling application.
5319+These instance parameters affect how much memory is required by the LVVE and hence must be provided
5320+when the instance is created.
5321+@see LVVE_Rx_GetMemoryTable
5322+@see LVVE_Rx_GetInstanceHandle
5323+@see LVVE_Tx_GetMemoryTable
5324+@see LVVE_Tx_GetInstanceHandle
5325+*/
5326+/**
5327+EQ Module Instance Parameters Structure.
5328+@see LVEQ_InstanceParams_st
5329+*/
5330+typedef struct
5331+{
5332+/**
5333+Max Size of Equalizer
5334+Sets the maximum length of the equalizer impulse response that can be used.
5335+It must be a multiple of 8.
5336+<table border>
5337+<caption>EQ Max Length Table</caption>
5338+ <tr>
5339+ <td><b>Unit</b></td>
5340+ <td><b>Q format</b></td>
5341+ <td><b>Data Range</b></td>
5342+ <td><b>Default Values</b></td>
5343+ </tr>
5344+ <tr>
5345+ <td><b>Integer Length in Samples</b></td>
5346+ <td><b>Q16.0</b></td>
5347+ <td>[8,\ref LVEQ_EQ_LENGTH_MAX]</td>
5348+ <td>\ref LVEQ_EQ_LENGTH_DEFAULT</td>
5349+ </tr>
5350+</table>
5351+*/
5352+ LVM_UINT16 EQ_MaxLength; ///< EQ Max Length
5353+} LVEQ_InstanceParams_st;
5354+
5355+/**
5356+Tx Instance Parameter Structure
5357+These parameters are set at initialization time and may not be changed during processing
5358+@ref LVVE_Tx_GetInstanceHandle
5359+@ingroup LVVE_Tx
5360+*/
5361+typedef struct
5362+{
5363+ LVM_Fs_en SampleRate; ///< Sample rate
5364+/**
5365+Sets the maximum length of the bulk delay between Rx and Tx expressed in samples.
5366+The unit of MaxBulkDelay is [number of samples] at the respective sampling rate.
5367+<table border>
5368+<caption>Max Bulk Delay Table</caption>
5369+ <tr>
5370+ <td><b>Type</b></td>
5371+ <td><b>Unit</b></td>
5372+ <td><b>Q format</b></td>
5373+ <td><b>Data Range</b></td>
5374+ <td><b>Default Values</b></td>
5375+ </tr>
5376+ <tr>
5377+ <td><b>LVM_UINT16</b></td>
5378+ <td><b>Integer Length in Samples</b></td>
5379+ <td><b>Q16.0</b></td>
5380+ <td>[0,6400]</td>
5381+ <td>None</td>
5382+ </tr>
5383+</table>
5384+*/
5385+ LVM_UINT16 MaxBulkDelay; ///< Max bulk delay
5386+
5387+ LVEQ_InstanceParams_st EQ_InstParams; ///< EQ instance
5388+} LVVE_Tx_InstanceParams_st;
5389+
5390+/**
5391+Rx Instance Parameter Structure
5392+These parameters are set at initialization time and may not be changed during processing.
5393+@ref LVVE_Rx_GetInstanceHandle
5394+@ingroup LVVE_Rx
5395+*/
5396+typedef struct
5397+{
5398+ LVM_Fs_en SampleRate; ///< LVVE sample rate
5399+ LVEQ_InstanceParams_st EQ_InstParams;///< EQ instance
5400+
5401+} LVVE_Rx_InstanceParams_st;
5402+
5403+/**
5404+The version information structure contains one character field to store LVVE version number.
5405+A call to the @ref LVVE_GetVersionInfo function is needed to retrieve this information.
5406+*/
5407+typedef struct
5408+{
5409+ LVM_CHAR VersionNumber[64]; ///< Version number of the LifeVibes&trade; VoiceExperience library
5410+} LVVE_VersionInfo;
5411+
5412+/**
5413+Used to reset LVVE_Rx module any time.
5414+@ref LVM_ResetType_en parameter determine the type of reset required
5415+@ingroup LVVE_Rx
5416+*/
5417+typedef struct
5418+{
5419+ LVM_ResetType_en ResetType; ///< RX Reset Type
5420+} LVVE_Rx_ResetParams_st;
5421+
5422+/**
5423+Used to reset LVVE_Tx module any time.
5424+LVM_ResetType_en parameter determine the type of reset required
5425+@ingroup LVVE_Tx
5426+*/
5427+typedef struct
5428+{
5429+ LVM_ResetType_en ResetType; ///< TX Reset Type
5430+} LVVE_Tx_ResetParams_st;
5431+
5432+/**
5433+@brief Retrieve the memory requirements of the LVVE_Tx module.
5434+
5435+This function returns a table of memory records that describe size, type and memory space of all buffers
5436+required by the instance. The number of initialized memory records is defined by LVVE_NR_MEMORY_REGIONS.
5437+This function is used for two purposes and is called in two different ways:
5438+
5439+@li Memory Allocation: When the LVVE_GetMemoryTable functions are called with a NULL instance handle (hInstance = LVM_NULL)
5440+ the function returns the memory requirements. The base address pointers in the memory table are set to NULL.
5441+ All elements of the instance parameters structure (pointed to by pInstParams) must contain valid values as the memory
5442+ requirements are affected by these settings.
5443+
5444+@li Memory Free: When called with a non-NULL instance handle (hInstance = a valid instance handle)
5445+ the function returns the memory table used when the instance was created.
5446+ The base address pointers returned will be those supplied by the calling application when the memory
5447+ was allocated and can now be used for freeing memory. The instance parameters (pointed to by pInstParams)
5448+ are ignored and the pInstParams parameter may be set to NULL.
5449+@li In case of memory allocation, all elements of the parameter initialization structure defined by pInstParams
5450+ must contain valid values as the memory requirements are affected by these settings.
5451+ In some releases of the bundle library one or more memory regions may have a zero size.
5452+
5453+@pre The number of memory records in the array defined by pMemoryTable is equal to @ref LVM_NR_MEMORY_REGIONS.
5454+@pre Exactly @ref LVM_NR_MEMORY_REGIONS memory records of pMemoryTable are initialized.
5455+
5456+@post When this function is called with hInstance = NULL the memory base address pointers
5457+will be NULL on return.
5458+@post When the function is called for freeing memory, hInstance = Instance Handle the
5459+memory table returns the allocated memory and base addresses used during
5460+initialisation.
5461+
5462+@return LVVE_SUCCESS when the function call succeeds and the memory table is filled correctly
5463+@return LVVE_NULLADDRESS when pMemoryTable was NULL
5464+@return LVVE_NULLADDRESS when pInstParams was NULL and the call was for memory allocation
5465+ is NULL.
5466+@return LVVE_OUTOFRANGE when pInstParams contains parameters out of the excepted range
5467+
5468+@note This function may be interrupted by the LVVE_Tx_Process function.
5469+
5470+@ingroup LVVE_Tx
5471+
5472+LVVE_Tx_GetMemoryTable: Memory Allocation Example:
5473+
5474+The following example shows how to get the memory requirements for the LVVE_Tx instance.
5475+\code
5476+ InstParams_Tx.SampleRate = LVM_FS_8000;
5477+ // Include the other instance params here
5478+
5479+ LVVE_Status = LVVE_Tx_GetMemoryTable ( LVM_NULL,
5480+ &MemTab_Tx,
5481+ &InstParams_Tx );
5482+
5483+ if( LVVE_Status != LVVE_SUCCESS )
5484+ {
5485+ // Handle Errors
5486+ }
5487+
5488+ for( c1 = 0; c1 < LVVE_NR_MEMORY_REGIONS; c1++ )
5489+ {
5490+ if( MemTab_Tx.Region[c1].Size != 0 )
5491+ {
5492+ MemTab_Tx.Region[c1].pBaseAddress =
5493+ malloc(MemTab_Tx.Region[c1].Size);
5494+ }
5495+ }
5496+\endcode
5497+
5498+LVVE_Tx_GetMemoryTable: Freeing Memory Example:
5499+
5500+The following example shows how to free the memory from the LVVE_Tx instance.
5501+
5502+\code
5503+ LVVE_Status = LVVE_Tx_GetMemoryTable( hInstance,
5504+ &MemTab_Tx,
5505+ LVM_NULL);
5506+
5507+ if (LVVE_Status != LVVE_SUCCESS)
5508+ {
5509+ // Handle errors
5510+ }
5511+
5512+ for( c1 = 0; c1 < LVVE_NR_MEMORY_REGIONS; c1++)
5513+ {
5514+ if (MemTab_Tx.Region[c1].Size != 0)
5515+ {
5516+ free(MemTab_Tx.Region[c1].pBaseAddress);
5517+ }
5518+ }
5519+\endcode
5520+
5521+*/
5522+
5523+LVVE_ReturnStatus_en LVVE_Tx_GetMemoryTable(LVVE_Tx_Handle_t hInstance,
5524+ LVM_MemoryTable_st *pMemoryTable,
5525+ LVVE_Tx_InstanceParams_st *pInstanceParams);
5526+
5527+/**
5528+@brief Retrieve the memory requirements of the LVVE_Rx module.
5529+
5530+This function returns a table of memory records that describe size, type and memory space of all buffers
5531+required by the instance. The number of initialized memory records is defined by LVVE_NR_MEMORY_REGIONS.
5532+This function is used for two purposes and is called in two different ways:
5533+
5534+@li Memory Allocation: When the LVVE_GetMemoryTable functions are called with a NULL instance handle (hInstance = LVM_NULL)
5535+ the function returns the memory requirements. The base address pointers in the memory table are set to NULL.
5536+ All elements of the instance parameters structure (pointed to by pInstParams) must contain valid values as the memory
5537+ requirements are affected by these settings.
5538+
5539+@li Memory Free: When called with a non-NULL instance handle (hInstance = a valid instance handle)
5540+ the function returns the memory table used when the instance was created.
5541+ The base address pointers returned will be those supplied by the calling application when the memory
5542+ was allocated and can now be used for freeing memory. The instance parameters (pointed to by pInstParams)
5543+ are ignored and the pInstParams parameter may be set to NULL.
5544+@li In case of memory allocation, all elements of the parameter initialization structure defined by pInstParams
5545+ must contain valid values as the memory requirements are affected by these settings.
5546+ In some releases of the bundle library one or more memory regions may have a zero size.
5547+
5548+@pre The number of memory records in the array defined by pMemoryTable is equal to @ref LVM_NR_MEMORY_REGIONS.
5549+@pre Exactly @ref LVM_NR_MEMORY_REGIONS memory records of pMemoryTable are initialized.
5550+
5551+@post When this function is called with hInstance = NULL the memory base address pointers
5552+will be NULL on return.
5553+@post When the function is called for freeing memory, hInstance = Instance Handle the
5554+memory table returns the allocated memory and base addresses used during
5555+initialisation.
5556+
5557+@return LVVE_SUCCESS when the function call succeeds and the memory table is filled correctly
5558+@return LVVE_NULLADDRESS when pMemoryTable was NULL
5559+@return LVVE_NULLADDRESS when pInstParams was NULL and the call was for memory allocation
5560+ is NULL.
5561+@return LVVE_OUTOFRANGE when pInstParams contains parameters out of the excepted range
5562+
5563+@note This function may be interrupted by the LVVE_Rx_Process function.
5564+
5565+@ingroup LVVE_Rx
5566+
5567+LVVE_Rx_GetMemoryTable: Memory Allocation Example:
5568+
5569+The following example shows how to get the memory requirements for the LVVE_Rx instance.
5570+
5571+\code
5572+ InstParams_Rx.SampleRate = LVM_FS_8000;
5573+ // Include the other instance params here
5574+
5575+ LVVE_Status = LVVE_Rx_GetMemoryTable ( LVM_NULL,
5576+ &MemTab_Rx,
5577+ &InstParams_Rx );
5578+
5579+ if( LVVE_Status != LVVE_SUCCESS )
5580+ {
5581+ // Handle Errors
5582+ }
5583+
5584+ for( c1 = 0; c1 < LVVE_NR_MEMORY_REGIONS; c1++ )
5585+ {
5586+ if( MemTab_Rx.Region[c1].Size != 0 )
5587+ {
5588+ MemTab_Rx.Region[c1].pBaseAddress =
5589+ malloc(MemTab_Rx.Region[c1].Size);
5590+ }
5591+ }
5592+\endcode
5593+
5594+LVVE_Rx_GetMemoryTable: Freeing Memory Example:
5595+
5596+The following example shows how to free the memory from the LVVE_Rx instance.
5597+
5598+\code
5599+ LVVE_Status = LVVE_Rx_GetMemoryTable( hInstance,
5600+ &MemTab_Rx,
5601+ LVM_NULL);
5602+
5603+ if (LVVE_Status != LVVE_SUCCESS)
5604+ {
5605+ // Handle errors
5606+ }
5607+
5608+ for( c1 = 0; c1 < LVVE_NR_MEMORY_REGIONS; c1++)
5609+ {
5610+ if (MemTab_Rx.Region[c1].Size != 0)
5611+ {
5612+ free(MemTab_Rx.Region[c1].pBaseAddress);
5613+ }
5614+ }
5615+\endcode
5616+*/
5617+
5618+LVVE_ReturnStatus_en LVVE_Rx_GetMemoryTable(LVVE_Rx_Handle_t hInstance,
5619+ LVM_MemoryTable_st *pMemoryTable,
5620+ LVVE_Rx_InstanceParams_st *pInstanceParams);
5621+
5622+
5623+/**
5624+@brief Created handle to the instance of the LVVE_Tx module
5625+
5626+This function is used to create the LVVE_Tx instance. All control parameters are set to invalid values.
5627+The memory table pointed to by pMemoryTable must be created. If the memory table is not correct then an error will be returned.
5628+The memory requirements of the Rx and Tx unit are dependent on the instance parameters supplied and so the
5629+instance parameters provided in this function call must be the same as those used in the @ref LVVE_Tx_GetMemoryTable function calls
5630+used for memory allocation.
5631+
5632+@pre The memory records tables defined by pMemoryTable contains pointers to non-overlapping buffers
5633+with the size as requested via the prior calls to the LVVE_Tx_GetMemoryTable functions.
5634+@pre The initialization parameter structure defined by pInstParams is identical to the structure passed
5635+to prior call to @ref LVVE_Tx_GetMemoryTable functions.
5636+
5637+
5638+@param phInstance Pointer to the instance handle.
5639+@param pMemoryTable Pointer to the memory definition table.
5640+@param pInstanceParams Pointer to the instance parameters.
5641+
5642+@return LVVE_SUCCESS when creation was successful
5643+@return LVVE_NULLADDRESS When phInstance or pMemoryTable or pInstanceParams is NULL.
5644+@return LVVE_NULLADDRESS when one or more of the memory regions with a non-zero size has been
5645+ given a NULL base address pointer.
5646+@return LVVE_OUTOFRANGE when pInstParams contains parameters out of the excepted range
5647+
5648+@ingroup LVVE_Tx
5649+
5650+ LVVE_Tx_GetInstanceHandle Example:
5651+
5652+The following example shows how to initialize LVVE_Tx_GetInstanceHandle.
5653+
5654+\code
5655+ hInstance_Tx = LVM_NULL;
5656+ LVVE_Status = LVVE_Tx_GetInstanceHandle( &hInstance_Tx,
5657+ &MemTab_Tx,
5658+ &InstParams_Tx );
5659+ if( LVVE_Status != LVVE_SUCCESS )
5660+ {
5661+ // Handle Errors
5662+ }
5663+\endcode
5664+
5665+*/
5666+
5667+LVVE_ReturnStatus_en LVVE_Tx_GetInstanceHandle(LVVE_Tx_Handle_t *phInstance,
5668+ LVM_MemoryTable_st *pMemoryTable,
5669+ LVVE_Tx_InstanceParams_st *pInstanceParams);
5670+
5671+/**
5672+@brief Created handle to the instance of the LVVE_Rx module
5673+
5674+This functions is used to create LVVE_Rx instance. All control parameters are set to invalid values.
5675+The memory table pointed to by pMemoryTable must be created. If the memory table is not correct then an error will be returned.
5676+The memory requirements of the Rx and Rx unit are dependent on the instance parameters supplied and so the
5677+instance parameters provided in this function call must be the same as those used in the @ref LVVE_Rx_GetMemoryTable function calls
5678+used for memory allocation.
5679+
5680+@pre The memory records tables defined by pMemoryTable contains pointers to non-overlapping buffers
5681+with the size as requested via the prior calls to the LVVE_Rx_GetMemoryTable functions.
5682+@pre The initialization parameter structure defined by pInstParams is identical to the structure passed
5683+to prior call to @ref LVVE_Rx_GetMemoryTable functions.
5684+
5685+
5686+@param phInstance Pointer to the instance handle.
5687+@param pMemoryTable Pointer to the memory definition table.
5688+@param pInstanceParams Pointer to the instance parameters.
5689+
5690+@return LVVE_SUCCESS when creation was successful
5691+@return LVVE_NULLADDRESS When phInstance or pMemoryTable or pInstanceParams is NULL.
5692+@return LVVE_NULLADDRESS when one or more of the memory regions with a non-zero size has been
5693+ given a NULL base address pointer.
5694+@return LVVE_OUTOFRANGE when pInstParams contains parameters out of the excepted range
5695+
5696+@ingroup LVVE_Rx
5697+
5698+ LVVE_Rx_GetInstanceHandle Example:
5699+
5700+The following example shows how to initialize LVVE_Rx_GetInstanceHandle.
5701+
5702+\code
5703+ hInstance_Rx = LVM_NULL;
5704+ LVVE_Status = LVVE_Rx_GetInstanceHandle( &hInstance_Rx,
5705+ &MemTab_Rx,
5706+ &InstParams_Rx );
5707+ if( LVVE_Status != LVVE_SUCCESS )
5708+ {
5709+ // Handle Errors
5710+ }
5711+\endcode
5712+
5713+*/
5714+
5715+LVVE_ReturnStatus_en LVVE_Rx_GetInstanceHandle(LVVE_Rx_Handle_t *phInstance,
5716+ LVM_MemoryTable_st *pMemoryTable,
5717+ LVVE_Rx_InstanceParams_st *pInstanceParams);
5718+
5719+/**
5720+@brief Retrieve the current LVVE_Tx control parameters.
5721+
5722+This function copies the control parameters from the LVVE_Tx into the supplied
5723+parameter structure, pControlParams. The values returned are the values given in the last successful
5724+call to the LVVE_Tx_SetControlParameters function.
5725+
5726+@param hInstance Instance handle
5727+@param pControlParams Pointer to the control parameters
5728+
5729+@pre hInstance should be valid handle.
5730+@pre pControlParams should be allocated by caller.
5731+@post pControlParams will be filled with the values given in the last successful call to
5732+ the LVVE_Tx_SetControlParameters function. They are not necessarily the values
5733+ used in the last call to the LVVE_Tx_Process function, this will be the case if
5734+ LVVE_Tx_SetControlParameters has been called since the last call to LVVE_Tx_Process.
5735+
5736+@return LVVE_SUCCESS Succeeded
5737+@return LVVE_NULLADDRESS When hInstance or pControlParams is NULL
5738+
5739+@note The LVVE_Tx_GetControlParameters function can be called at any time during processing.
5740+
5741+@ingroup LVVE_Tx
5742+
5743+LVVE_Tx_GetControlParameters Example:
5744+
5745+The following example shows how to get different control parameters for the LVVE_Tx instance.
5746+
5747+\code
5748+ LVVE_Status = LVVE_Tx_GetControlParameters( &hInstance_Tx,
5749+ &ControlParams_Tx );
5750+
5751+ if( LVVE_Status != LVVE_SUCCESS )
5752+ {
5753+ // Handle Errors
5754+ }
5755+\endcode
5756+
5757+*/
5758+
5759+LVVE_ReturnStatus_en LVVE_Tx_GetControlParameters( LVVE_Tx_Handle_t hInstance,
5760+ LVVE_Tx_ControlParams_st *pControlParams);
5761+
5762+/**
5763+@brief Retrieve the current LVVE_Rx control parameters.
5764+
5765+This function copies the control parameters from the LVVE_Tx into the supplied
5766+parameter structure, pControlParams. The values returned are the values given in the last successful
5767+call to the LVVE_Rx_SetControlParameters function.
5768+
5769+@param hInstance Instance handle
5770+@param pControlParams Pointer to the control parameters
5771+
5772+@pre hInstance should be valid handle.
5773+@pre pControlParams should be allocated by caller.
5774+@post pControlParams will be filled with the values given in the last successful call to
5775+ the LVVE_Rx_SetControlParameters function. They are not necessarily the values
5776+ used in the last call to the LVVE_Rx_Process function, this will be the case if
5777+ LVVE_Tx_SetControlParameters has been called since the last call to LVVE_Tx_Process.
5778+
5779+@return LVVE_SUCCESS Succeeded
5780+@return LVVE_NULLADDRESS When hInstance or pControlParams is NULL
5781+
5782+@note The LVVE_Rx_GetControlParameters function can be called at any time during processing.
5783+
5784+@ingroup LVVE_Rx
5785+
5786+LVVE_Rx_GetControlParameters Example:
5787+
5788+The following example shows how to get different control parameters for the LVVE_Rx instance.
5789+
5790+\code
5791+ LVVE_Status = LVVE_Rx_GetControlParameters( &hInstance_Rx,
5792+ &ControlParams_Rx );
5793+
5794+ if( LVVE_Status != LVVE_SUCCESS )
5795+ {
5796+ // Handle Errors
5797+ }
5798+\endcode
5799+
5800+*/
5801+
5802+LVVE_ReturnStatus_en LVVE_Rx_GetControlParameters( LVVE_Rx_Handle_t hInstance,
5803+ LVVE_Rx_ControlParams_st *pControlParams);
5804+
5805+/**
5806+@brief Sets or changes the LVVE_Tx module parameters using C-strcuture.
5807+
5808+This function takes the new set of parameters and makes a local copy within
5809+LVVE_Tx but the parameters are only applied on the next call of the LVVE_Tx_Process
5810+function. When a parameter is unchanged no action is taken. This function can
5811+be called at any time during the processing, even when the LVVE_Tx_Process function
5812+is running. LifeVibes&trade; VoiceExperience control parameters can be set using two methods.
5813+Control Parameters can be populated in a \"C\" style structure (as explained in example) and then sent to the library.
5814+Another method is to populate control parameters in a byte array called Preset Buffer, see @ref LVVE_Tx_SetPreset for example usage.
5815+
5816+@param hInstance Instance Handle
5817+@param pNewParams Pointer to a parameter structure
5818+
5819+@pre hInstance should be valid handle.
5820+
5821+@return LVVE_SUCCESS Succeeded
5822+@return LVVE_NULLADDRESS When hInstance or pNewParams is NULL
5823+@return LVVE_OUTOFRANGE When pNewParams contains parameters of activated modules that are out of the excepted range
5824+@return LVVE_INVALID_ALGORITHM_CONFIGURATION When two mutual exclusive algorithms are both configured ON at run-time
5825+ (e.g., NoiseVoid and HandsFree)
5826+
5827+
5828+@note This function may be interrupted by the LVVE_Tx_Process function
5829+
5830+@ingroup LVVE_Tx
5831+
5832+LVVE_Tx_GetControlParameters: Setting Control Parameters using C-Style structure Example:
5833+
5834+The following example shows how to set different control parameters for the LVVE_Tx instance.
5835+
5836+\code
5837+ LVVE_Status = LVVE_Tx_GetControlParameters( &hInstance_Tx,
5838+ &ControlParams_Tx );
5839+
5840+ if( LVVE_Status != LVVE_SUCCESS )
5841+ {
5842+ // Handle Errors
5843+ }
5844+
5845+ Change Parameters as required
5846+ ControlParams_Tx.VOL_Gain = VOL_TABLE[i];
5847+ ControlParams_Tx.VC_ControlParams = VC_TABLE[i];
5848+
5849+ // Update instance with new parameters
5850+ LVVE_Status = LVVE_Tx_SetControlParameters( &hInstance_Tx,
5851+ &ControlParams_Tx );
5852+
5853+ if( LVVE_Status != LVVE_SUCCESS )
5854+ {
5855+ // Handle Errors
5856+ }
5857+\endcode
5858+
5859+*/
5860+
5861+LVVE_ReturnStatus_en LVVE_Tx_SetControlParameters( LVVE_Tx_Handle_t hInstance,
5862+ const LVVE_Tx_ControlParams_st * const pNewParams);
5863+
5864+/**
5865+@brief Sets or changes the LVVE_Rx module parameters using C-structure.
5866+
5867+This function takes the new set of parameters and makes a local copy within
5868+LVVE_Rx but the parameters are only applied on the next call of the LVVE_Rx_Process
5869+function. When a parameter is unchanged no action is taken. This function can
5870+be called at any time during the processing, even when the LVVE_Rx_Process function
5871+is running. LifeVibes&trade; VoiceExperience control parameters can be set using two methods.
5872+Control Parameters can be populated in a \"C\" style structure (as explained in example) and then sent to the library.
5873+Another method is to populate control parameters in a byte array called Preset Buffer, see @ref LVVE_Rx_SetPreset for example usage.
5874+
5875+@param hInstance Instance Handle
5876+@param pNewParams Pointer to a parameter structure
5877+
5878+@pre hInstance should be valid handle.
5879+
5880+@return LVVE_SUCCESS Succeeded
5881+@return LVVE_NULLADDRESS When hInstance or pNewParams is NULL
5882+@return LVVE_OUTOFRANGE When pNewParams contains parameters of activated modules that are out of the excepted range
5883+@return LVVE_INVALID_ALGORITHM_CONFIGURATION When two mutual exclusive algorithms are both configured ON at run-time
5884+ (e.g., NoiseVoid and HandsFree)
5885+
5886+
5887+@note This function may be interrupted by the LVVE_Rx_Process function
5888+
5889+@ingroup LVVE_Rx
5890+
5891+LVVE_Rx_GetControlParameters: Setting Control Parameters using C-Style structure Example:
5892+
5893+The following example shows how to set different control parameters for the LVVE_Rx instance.
5894+
5895+\code
5896+ LVVE_Status = LVVE_Rx_GetControlParameters( &hInstance_Rx,
5897+ &ControlParams_Rx );
5898+
5899+ if( LVVE_Status != LVVE_SUCCESS )
5900+ {
5901+ // Handle Errors
5902+ }
5903+
5904+ Change Parameters as required
5905+ ControlParams_Rx.VOL_Gain = VOL_TABLE[i];
5906+ ControlParams_Rx.VC_ControlParams = VC_TABLE[i];
5907+
5908+ // Update instance with new parameters
5909+ LVVE_Status = LVVE_Rx_SetControlParameters( &hInstance_Rx,
5910+ &ControlParams_Rx );
5911+
5912+ if( LVVE_Status != LVVE_SUCCESS )
5913+ {
5914+ // Handle Errors
5915+ }
5916+\endcode
5917+
5918+*/
5919+LVVE_ReturnStatus_en LVVE_Rx_SetControlParameters( LVVE_Rx_Handle_t hInstance,
5920+ const LVVE_Rx_ControlParams_st * const pNewParams);
5921+
5922+/**
5923+@brief Retrieve the current LVVE_Tx status parameters.
5924+
5925+This function copies internal status variables into the supplied status
5926+parameter structures.
5927+
5928+@param hInstance Instance handle
5929+@param pStatusParams Pointer to the status parameters
5930+
5931+@pre hInstance should be valid handle.
5932+@pre pStatusParams should be allocated by caller.
5933+@post pStatusParams will be filled with the latest status values of LVVE_Tx.
5934+
5935+@return LVVE_SUCCESS Succeeded
5936+@return LVVE_NULLADDRESS When hInstance or pStatusParams is NULL
5937+
5938+@note The LVVE_Tx_GetStatusParameters function can be called at any time during processing.
5939+This function can run in different threads than the process functions.
5940+
5941+
5942+@ingroup LVVE_Tx
5943+
5944+LVVE_Tx_GetStatusParameters: Get Internal Algorithm Status Attributes Example:
5945+The following example shows how to use LVVE_Tx_GetStatusParameters function call.
5946+
5947+\code
5948+ LVVE_Tx_StatusParams_st Tx_Monitor;
5949+ Status=LVVE_Tx_GetStatusParameters(hInstance_Tx,&Tx_Monitor);
5950+ if (Status != LVVE_SUCCESS )
5951+ {
5952+ // Error Handling
5953+ }
5954+\endcode
5955+
5956+*/
5957+
5958+LVVE_ReturnStatus_en LVVE_Tx_GetStatusParameters( LVVE_Tx_Handle_t hInstance,
5959+ LVVE_Tx_StatusParams_st *pStatusParams);
5960+
5961+/**
5962+@brief Retrieve the current LVVE_Rx status parameters.
5963+
5964+This function copies internal status variables into the supplied status
5965+parameter structures.
5966+
5967+@param hInstance Instance handle
5968+@param pStatusParams Pointer to the status parameters
5969+
5970+@pre hInstance should be valid handle.
5971+@pre pStatusParams should be allocated by caller.
5972+@post pStatusParams will be filled with the latest status values of LVVE_Rx.
5973+
5974+@return LVVE_SUCCESS Succeeded
5975+@return LVVE_NULLADDRESS When hInstance or pStatusParams is NULL
5976+
5977+@note The LVVE_Rx_GetStatusParameters function can be called at any time during processing.
5978+This function can run in different threads than the process functions.
5979+
5980+@ingroup LVVE_Rx
5981+
5982+LVVE_Rx_GetStatusParameters: Get Internal Algorithm Status Attributes Example:
5983+The following example shows how to use LVVE_Rx_GetStatusParameters function call.
5984+
5985+\code
5986+ LVVE_Rx_StatusParams_st Rx_Monitor;
5987+ Status=LVVE_Rx_GetStatusParameters(hInstance_Rx,&Rx_Monitor);
5988+ if (Status != LVVE_SUCCESS )
5989+ {
5990+ // Error Handling
5991+ }
5992+\endcode
5993+
5994+*/
5995+
5996+LVVE_ReturnStatus_en LVVE_Rx_GetStatusParameters( LVVE_Rx_Handle_t hInstance,
5997+ LVVE_Rx_StatusParams_st *pStatusParams);
5998+
5999+/**
6000+@brief Resets the LVVE_Tx module.
6001+
6002+The LVVE_Tx module instance memory contains data which depend on the input
6003+samples that have been processed previously. These data are buffers
6004+used for filter tabs and delay lines and also adaptive coefficients of the
6005+algorithm. The LVVE_Tx_ResetInstance function resets this input dependent data.
6006+
6007+The LVVE_Tx_ResetInstance function should be called whenever there is a
6008+discontinuity in the input audio stream. A discontinuity means that the
6009+current block of samples is not contiguous with the previous block of samples.
6010+Examples are
6011+@li Calling the LVVE_Tx_Process function after a period of inactivity
6012+@li Buffer underrun or overflow in the audio driver
6013+The LVVE_ResetInstance function of the Tx and/or Tx Unit should only be called when absolutely necessary as re-adaptation
6014+of internal algorithms will occur.
6015+The LVVE_ResetInstance functions can be called at any time, even when LVVE_Process is running. The reset will be
6016+applied at the start of the next call of the LVVE_Tx_Process function.
6017+
6018+
6019+@param hInstance Instance Handle
6020+@param pResetParams Reset Type
6021+
6022+@pre hInstance should be valid handle.
6023+
6024+@post Depending on the ResetType value, the LVVE_Tx_ResetInstance function can
6025+perform:
6026+@li Soft reset: partial reset of internal buffers and adaptive behavior. To be used for very short
6027+interruption or discontinuity, e.g., buffer under-run or overflow in the audio driver influencing the echo path delay.
6028+@li Hard reset: full reset of all internal buffers and adaptive behavior. To be used for long
6029+interruption or discontinuity, e.g., before calling the LVVE_Tx_Process function after a long period of inactivity
6030+in between calls in case instance was not freed.
6031+
6032+@return LVVE_SUCCESS Succeeded
6033+@return LVVE_NULLADDRESS When hInstance or pResetParams is NULL
6034+@return LVVE_OUTOFRANGE When content of pResetParams is invalid
6035+
6036+@note This function may be interrupted by the LVVE_Tx_Process function
6037+
6038+@ingroup LVVE_Tx
6039+
6040+LVVE_Tx_ResetInstance Example:
6041+
6042+The following example shows how to use LVVE_Tx_ResetInstance.
6043+\code
6044+ LVVE_Status = LVVE_Tx_ResetInstance(hInstance, pResetParams);
6045+
6046+ if (LVVE_Status != LVVE_SUCCESS)
6047+ {
6048+ // Handle LVVE_Tx_ResetInstance errors
6049+ }
6050+\endcode
6051+
6052+*/
6053+LVVE_ReturnStatus_en LVVE_Tx_ResetInstance( LVVE_Tx_Handle_t hInstance,
6054+ LVVE_Tx_ResetParams_st *pResetParams );
6055+
6056+/**
6057+@brief Resets the LVVE_Rx module.
6058+
6059+The LVVE_Rx module instance memory contains data which depend on the input
6060+samples that have been processed previously. These data are buffers
6061+used for filter tabs and delay lines and also adaptive coefficients of the
6062+algorithm. The LVVE_Rx_ResetInstance function resets this input dependent data.
6063+
6064+The LVVE_Rx_ResetInstance function should be called whenever there is a
6065+discontinuity in the input audio stream. A discontinuity means that the
6066+current block of samples is not contiguous with the previous block of samples.
6067+Examples are
6068+@li Calling the LVVE_Rx_Process function after a period of inactivity
6069+@li Buffer underrun or overflow in the audio driver
6070+The LVVE_ResetInstance function of the Rx and/or Tx Unit should only be called when absolutely necessary as re-adaptation
6071+of internal algorithms will occur.
6072+The LVVE_ResetInstance functions can be called at any time, even when LVVE_Process is running. The reset will be
6073+applied at the start of the next call of the LVVE_Rx_Process function.
6074+
6075+
6076+@param hInstance Instance Handle
6077+@param pResetParams Reset Type
6078+
6079+@pre hInstance should be valid handle.
6080+
6081+@post Depending on the ResetType value, the LVVE_Rx_ResetInstance function can
6082+perform:
6083+@li Soft reset: partial reset of internal buffers and adaptive behavior. To be used for very short
6084+interruption or discontinuity, e.g., buffer under-run or overflow in the audio driver influencing the echo path delay.
6085+@li Hard reset: full reset of all internal buffers and adaptive behavior. To be used for long
6086+interruption or discontinuity, e.g., before calling the LVVE_Rx_Process function after a long period of inactivity
6087+in between calls in case instance was not freed.
6088+
6089+@return LVVE_SUCCESS Succeeded
6090+@return LVVE_NULLADDRESS When hInstance or pResetParams is NULL
6091+@return LVVE_OUTOFRANGE When content of pResetParams is invalid
6092+
6093+@note This function may be interrupted by the LVVE_Rx_Process function
6094+
6095+@ingroup LVVE_Rx
6096+
6097+LVVE_Rx_ResetInstance Example:
6098+
6099+The following example shows how to use LVVE_Rx_ResetInstance.
6100+\code
6101+ LVVE_Status = LVVE_Rx_ResetInstance(hInstance, pResetParams);
6102+
6103+ if (LVVE_Status != LVVE_SUCCESS)
6104+ {
6105+ // Handle LVVE_Rx_ResetInstance errors
6106+ }
6107+\endcode
6108+
6109+*/
6110+LVVE_ReturnStatus_en LVVE_Rx_ResetInstance( LVVE_Rx_Handle_t hInstance,
6111+ LVVE_Rx_ResetParams_st *pResetParams );
6112+
6113+/**
6114+@brief Processes a block of samples by the LVVE_Tx module.
6115+
6116+This function processes the block of samples as configured with the current
6117+parameter settings. If new parameters have been given since the last call to
6118+LVVE_Tx_Process then these will be applied at the beginning of this process call.
6119+
6120+@param hInstance Instance Handle
6121+@param pInDataMic0 Pointer to the input speech sample buffer (pimary microphone).
6122+@param pInDataMic1 Pointer to the input speech sample buffer (secondary microphone).
6123+@param pRefData Pointer to the input farend reference buffer.
6124+@param pNoiseData Pointer to the output noise reference buffer.
6125+@param pOutData Pointer to the output sample buffer.
6126+@param NumSamples The number of samples to process should be integer multiple(n) of values in table.
6127+ It is a frquency dependant paramter.
6128+<table border>
6129+ <tr>
6130+ <td><b>Unit</b></td>
6131+ <td><b>Q format</b></td>
6132+ <td><b>Data Range</b></td>
6133+ <td><b>Default Values</b></td>
6134+ </tr>
6135+ <tr>
6136+ <td><b>Samples</b></td>
6137+ <td><b>Q16.0</b></td>
6138+ <td>nx80 for 8kHz</td>
6139+ <td>80 for 8kHz</td>
6140+ </tr>
6141+ <tr>
6142+ <td></td>
6143+ <td></td>
6144+ <td>nx160 for 16kHz</td>
6145+ <td>160 for 16kHz</td>
6146+ </tr>
6147+ <tr>
6148+ <td></td>
6149+ <td></td>
6150+ <td>nx240 for 24kHz</td>
6151+ <td>240 for 24kHz</td>
6152+ </tr>
6153+ <tr>
6154+ <td></td>
6155+ <td></td>
6156+ <td>nx320 for 32kHz</td>
6157+ <td>320 for 32kHz</td>
6158+ </tr>
6159+ <tr>
6160+ <td></td>
6161+ <td></td>
6162+ <td>nx480 for 48kHz</td>
6163+ <td>480 for 48kHz</td>
6164+ </tr>
6165+</table>
6166+
6167+@pre hInstance should be valid handle.
6168+@pre LVVE_Tx_SetControlParameters should be called successfully once before.
6169+the first call to LVVE_Tx_Process
6170+@pre pInData is filled with the input samples to process.
6171+
6172+@post pOutData contains the processed samples.
6173+
6174+@return LVVE_SUCCESS Succeeded
6175+@return LVVE_NULLADDRESS When hInstance, pInData or pOutData is NULL
6176+@return LVVE_INVALIDNUMSAMPLES When the NumSamples is outside the allowed
6177+range
6178+@return LVVE_INVALID_STATE_CONFIGURATION When invalid state of the algorithm found
6179+
6180+@ingroup LVVE_Tx
6181+
6182+LVVE_Tx_Process Example:
6183+
6184+The following example shows how to use LVVE_Tx_Process function call
6185+
6186+\code
6187+ // Tx Processing
6188+ LVVE_STATUS = LVVE_Tx_Process( hInstance_Tx,
6189+ pInData_Tx0,
6190+ pInData_Tx1,
6191+ pInData_Ref,
6192+ pNoiseData,
6193+ pOutData_Tx,
6194+ NumSamples );
6195+ if (LVVE_STATUS != LVVE_SUCCESS )
6196+ {
6197+ // Error Handling
6198+ }
6199+\endcode
6200+
6201+*/
6202+LVVE_ReturnStatus_en LVVE_Tx_Process( LVVE_Tx_Handle_t hInstance,
6203+ const LVM_INT16 *pInDataMic0,
6204+ const LVM_INT16 *pInDataMic1,
6205+ const LVM_INT16 *pRefData,
6206+ LVM_INT16 *pNoiseData,
6207+ LVM_INT16 *pOutData,
6208+ const LVM_UINT16 NumSamples);
6209+
6210+/**
6211+@brief Processes a block of samples by the LVVE_Rx module.
6212+
6213+This function processes the block of samples as configured with the current
6214+parameter settings. If new parameters have been given since the last call to
6215+LVVE_Rx_Process then these will be applied at the beginning of this process call.
6216+
6217+@param hInstance Instance Handle
6218+@param pInData Pointer to the input sample buffer
6219+@param pNoiseData Pointer to the input noise buffer (for LVVC only). Pointer to the input noise reference buffer.
6220+ The size of this buffer depends on the number of samples to process: NoiseDataBufferSize = 2 (size of the input buffer in ms) / 10ms
6221+ i.e. for 20 ms input buffer, the NoiseData buffer size should be 4.
6222+
6223+@param pOutData Pointer to the output sample buffer
6224+@param NumSamples The number of samples to process should be integer multiple(n) of values in table.
6225+ It is a frquency dependant paramter.
6226+<table border>
6227+ <tr>
6228+ <td><b>Unit</b></td>
6229+ <td><b>Q format</b></td>
6230+ <td><b>Data Range</b></td>
6231+ <td><b>Default Values</b></td>
6232+ </tr>
6233+ <tr>
6234+ <td><b>Samples</b></td>
6235+ <td><b>Q16.0</b></td>
6236+ <td>nx80 for 8kHz</td>
6237+ <td>80 for 8kHz</td>
6238+ </tr>
6239+ <tr>
6240+ <td></td>
6241+ <td></td>
6242+ <td>nx160 for 16kHz</td>
6243+ <td>160 for 16kHz</td>
6244+ </tr>
6245+ <tr>
6246+ <td></td>
6247+ <td></td>
6248+ <td>nx240 for 24kHz</td>
6249+ <td>240 for 24kHz</td>
6250+ </tr>
6251+ <tr>
6252+ <td></td>
6253+ <td></td>
6254+ <td>nx320 for 32kHz</td>
6255+ <td>320 for 32kHz</td>
6256+ </tr>
6257+ <tr>
6258+ <td></td>
6259+ <td></td>
6260+ <td>nx480 for 48kHz</td>
6261+ <td>480 for 48kHz</td>
6262+ </tr>
6263+</table>
6264+
6265+@pre hInstance should be valid handle.
6266+@pre LVVE_Rx_SetControlParameters should be called successfully once before.
6267+the first call to LVVE_Rx_Process
6268+@pre pInData is filled with the input samples to process.
6269+
6270+@post pOutData contains the processed samples.
6271+
6272+@return LVVE_SUCCESS Succeeded
6273+@return LVVE_NULLADDRESS When hInstance, pInData or pOutData is NULL
6274+@return LVVE_INVALIDNUMSAMPLES When the NumSamples is outside the allowed
6275+range
6276+@return LVVE_INVALID_STATE_CONFIGURATION When invalid state of the algorithm found
6277+
6278+@ingroup LVVE_Rx
6279+
6280+LVVE_Rx_Process Example:
6281+The following example shows how to use LVVE_Rx_Process function call.
6282+
6283+\code
6284+ // Rx Processing
6285+ LVVE_STATUS = LVVE_Rx_Process( hInstance_Rx,
6286+ pInData_Rx,
6287+ pNoiseData,
6288+ pOutData_Rx,
6289+ NumSamples );
6290+
6291+ if (LVVE_STATUS != LVVE_SUCCESS )
6292+ {
6293+ // Error Handling
6294+ }
6295+\endcode
6296+
6297+*/
6298+
6299+LVVE_ReturnStatus_en LVVE_Rx_Process( LVVE_Rx_Handle_t hInstance,
6300+ const LVM_INT16 *pInData,
6301+ const LVM_INT16 *pNoiseData,
6302+ LVM_INT16 *pOutData,
6303+ const LVM_UINT16 NumSamples);
6304+
6305+
6306+/**
6307+\brief get the version number of current of LVVE library.
6308+
6309+This function returns, to host, current version of the LVVE library
6310+@param pVersion version info
6311+
6312+@return LVVE_SUCCESS Succeeded
6313+@return LVVE_NULLADDRESS When one of hInstance, pInData or pOutData is NULL
6314+
6315+LVVE_GetVersionInfot Example:
6316+
6317+\code
6318+ //Get the version information
6319+ LVVE_VersionInfo VersionInfo;
6320+ LVVE_GetVersionInfo(&VersionInfo);
6321+\endcode
6322+
6323+*/
6324+LVVE_ReturnStatus_en LVVE_GetVersionInfo( LVVE_VersionInfo *pVersion );
6325+
6326+/**
6327+@brief Sets or changes the LVVE_Tx module parameters through a Preset Buffer.
6328+
6329+Sets or changes the LVVE_Tx module parameters through a Preset Buffer. To set parameters using \"C\" structure see
6330+@ref LVVE_Tx_SetControlParameters
6331+This function takes the new set of parameters and makes a local copy within the
6332+LVVE_Tx module but the parameters are only applied on the next call of the LVVE_Tx_Process
6333+function. When no parameters are changed, no action is taken. This function can
6334+be called at any time during the processing, even when the LVVE_Tx_Process function
6335+is running.
6336+The new parameters are supplied in the form a @ref LVVE_Tx_Preset_t (Byte array).
6337+The length of the byte array shall be a multiple of @ref LVVE_TX_PRESET_LENGTH.
6338+
6339+@param hInstance Instance Handle
6340+@param pPreset Pointer to a Preset buffer
6341+@param PresetLength Length in bytes of the Preset buffer
6342+@param VolumeIndex Volume index to be selected from the Preset buffer
6343+
6344+@pre hInstance should be valid handle.
6345+
6346+@return @ref LVVE_SUCCESS Succeeded
6347+@return @ref LVVE_NULLADDRESS When hInstance or pPreset is NULL
6348+@return @ref LVVE_OUTOFRANGE When PresetLength or any of the new parameters is out of range
6349+@return @ref LVVE_INVALID_ALGORITHM_CONFIGURATION When mutually exclusive algorithms are enabled in the parameters at the same time
6350+@return @ref LVVE_PRESET_INVALID_BUFFER_LENGTH When the length of the input buffer is smaller than LVVE_TX_PRESET_LENGTH
6351+@return @ref LVVE_PRESET_INVALID_VOLUME_INDEX When the volume index exceeds the buffer content
6352+@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
6353+@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 ?
6354+@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 ?
6355+@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
6356+@return @ref LVVE_PRESET_INVALID_LVWIREFORMAT_MESSAGEID When the LVWireformat message id @ref LVVIDHeader_MessageID_en of the preset is not valid
6357+
6358+@note This function may be interrupted by the LVVE_Tx_Process function
6359+
6360+@ingroup LVVE_Tx
6361+LVVE_Tx_SetPreset: Setting Control Parameters using Preset Buffer Example:
6362+
6363+The following example shows how to set different control parameters for the LVVE_Tx instance using Preset Buffer.
6364+
6365+\code
6366+ LVM_CHAR LVVE_Tx_Preset_Buffer[LVVE_TX_PRESET_LENGTH];
6367+ LVVE_Tx_Preset_t const LVVE_Tx_Preset = LVVE_Tx_Preset_Buffer;
6368+
6369+ FILE *PRESETFILE_Tx;
6370+ LVM_INT32 ReadBytes = 0;
6371+
6372+ PRESETFILE_Tx=fopen(filename, "rb" );
6373+
6374+ // Read the preset buffer
6375+ ReadBytes = fread( LVVE_Tx_Preset_Buffer,
6376+ sizeof(LVM_CHAR),
6377+ (LVM_UINT32)LVVE_TX_PRESET_LENGTH,
6378+ PRESETFILE_Tx );
6379+
6380+ fclose(PRESETFILE_Tx);
6381+
6382+ // Update instance with new preset buffer
6383+ LVVE_Status = LVVE_Tx_SetPreset( hInstance_Tx,
6384+ LVVE_Tx_Preset,
6385+ ReadBytes,
6386+ 0);
6387+
6388+ if ( LVVE_Status != LVVE_SUCCESS )
6389+ {
6390+ // Handle Errors
6391+ }
6392+\endcode
6393+
6394+
6395+
6396+*/
6397+LVVE_ReturnStatus_en LVVE_Tx_SetPreset(LVVE_Tx_Handle_t hInstance,
6398+ const LVVE_Tx_Preset_t pPreset,
6399+ LVM_UINT32 PresetLength,
6400+ LVM_UINT16 VolumeIndex);
6401+
6402+/**
6403+@brief Sets or changes the LVVE_Rx module parameters through a Preset Buffer
6404+
6405+Sets or changes the LVVE_Rx module parameters through a Preset Buffer. To set parameters using \"C\" structure see
6406+@ref LVVE_Rx_SetControlParameters
6407+This function takes the new set of parameters and makes a local copy within the
6408+LVVE_Rx module but the parameters are only applied on the next call of the LVVE_Rx_Process
6409+function. When no parameters are changed, no action is taken. This function can
6410+be called at any time during the processing, even when the LVVE_Rx_Process function
6411+is running.
6412+The new parameters are supplied in the form a @ref LVVE_Rx_Preset_t (Byte array).
6413+The length of the byte array shall be a multiple of @ref LVVE_RX_PRESET_LENGTH.
6414+
6415+@param hInstance Instance Handle
6416+@param pPreset Pointer to a Preset buffer
6417+@param PresetLength Length in bytes of the Preset buffer
6418+@param VolumeIndex Volume index to be selected from the Preset buffer
6419+
6420+@pre hInstance should be valid handle.
6421+
6422+@return @ref LVVE_SUCCESS Succeeded
6423+@return @ref LVVE_NULLADDRESS When hInstance or pPreset is NULL
6424+@return @ref LVVE_OUTOFRANGE When PresetLength or any of the new parameters is out of range
6425+@return @ref LVVE_INVALID_ALGORITHM_CONFIGURATION When mutually exclusive algorithms are enabled in the parameters at the same time
6426+@return @ref LVVE_PRESET_INVALID_BUFFER_LENGTH When the length of the input buffer is smaller than LVVE_RX_PRESET_LENGTH
6427+@return @ref LVVE_PRESET_INVALID_VOLUME_INDEX When the volume index exceeds the buffer content
6428+@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
6429+@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 ?
6430+@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 ?
6431+@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
6432+@return @ref LVVE_PRESET_INVALID_LVWIREFORMAT_MESSAGEID When the LVWireformat message id @ref LVVIDHeader_MessageID_en of the preset is not valid
6433+
6434+@note This function may be interrupted by the LVVE_Rx_Process function
6435+
6436+@ingroup LVVE_Rx
6437+
6438+LVVE_Rx_SetPreset: Setting Control Parameters using Preset Buffer Example:
6439+
6440+The following example shows how to set different control parameters for the LVVE_Rx instance using Preset Buffer.
6441+
6442+\code
6443+ #define NUM_VOLUMES (5)
6444+ LVM_CHAR LVVE_Rx_Preset_Buffer[NUM_VOLUMES*LVVE_RX_PRESET_LENGTH];
6445+ LVVE_Rx_Preset_t const LVVE_Rx_Preset = LVVE_Rx_Preset_Buffer;
6446+
6447+ FILE *PRESETFILE_Rx;
6448+ LVM_INT32 ReadBytes = 0;
6449+ LVM_UINT16 VolumeIndex = 3;
6450+
6451+ PRESETFILE_Rx=fopen(filename, "rb" );
6452+
6453+ // Read the preset buffer
6454+ ReadBytes = fread( LVVE_Rx_Preset_Buffer,
6455+ sizeof(LVM_CHAR),
6456+ (LVM_UINT32)(NUM_VOLUMES*LVVE_RX_PRESET_LENGTH),
6457+ PRESETFILE_Rx );
6458+
6459+ fclose(PRESETFILE_Rx);
6460+
6461+ // Update instance with new preset buffer
6462+ LVVE_Status = LVVE_Rx_SetPreset( hInstance_Rx,
6463+ LVVE_Rx_Preset,
6464+ ReadBytes,
6465+ VolumeIndex);
6466+
6467+ if ( LVVE_Status != LVVE_SUCCESS )
6468+ {
6469+ // Handle Errors
6470+ }
6471+\endcode
6472+
6473+*/
6474+LVVE_ReturnStatus_en LVVE_Rx_SetPreset(LVVE_Rx_Handle_t hInstance,
6475+ const LVVE_Rx_Preset_t pPreset,
6476+ LVM_UINT32 PresetLength,
6477+ LVM_UINT16 VolumeIndex);
6478+
6479+
6480+#ifdef __cplusplus
6481+}
6482+#endif /* __cplusplus */
6483+
6484+#endif /* __LVVE_H__ */
6485+
6486+/* End of file */
6487diff --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
6488new file mode 100755
6489index 0000000..98a1461
6490--- /dev/null
6491+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/tos/LVVE_VID.h
6492@@ -0,0 +1,8452 @@
6493+/****************************************************************************************/
6494+/* Copyright (c) 2004-2015 NXP Software. All rights are reserved. */
6495+/* Reproduction in whole or in part is prohibited without the prior */
6496+/* written consent of the copyright owner. */
6497+/* */
6498+/* This software and any compilation or derivative thereof is and */
6499+/* shall remain the proprietary information of NXP Software and is */
6500+/* highly confidential in nature. Any and all use hereof is restricted */
6501+/* and is subject to the terms and conditions set forth in the */
6502+/* software license agreement concluded with NXP Software. */
6503+/* */
6504+/* Under no circumstances is this software or any derivative thereof */
6505+/* to be combined with any Open Source Software in any way or */
6506+/* licensed under any Open License Terms without the express prior */
6507+/* written permission of NXP Software. */
6508+/* */
6509+/* For the purpose of this clause, the term Open Source Software means */
6510+/* any software that is licensed under Open License Terms. Open */
6511+/* License Terms means terms in any license that require as a */
6512+/* condition of use, modification and/or distribution of a work */
6513+/* */
6514+/* 1. the making available of source code or other materials */
6515+/* preferred for modification, or */
6516+/* */
6517+/* 2. the granting of permission for creating derivative */
6518+/* works, or */
6519+/* */
6520+/* 3. the reproduction of certain notices or license terms */
6521+/* in derivative works or accompanying documentation, or */
6522+/* */
6523+/* 4. the granting of a royalty-free license to any party */
6524+/* under Intellectual Property Rights */
6525+/* */
6526+/* regarding the work and/or any work that contains, is combined with, */
6527+/* requires or otherwise is based on the work. */
6528+/* */
6529+/* This software is provided for ease of recompilation only. */
6530+/* Modification and reverse engineering of this software are strictly */
6531+/* prohibited. */
6532+/* */
6533+/****************************************************************************************/
6534+
6535+/****************************************************************************************/
6536+/* */
6537+/* $Author: nxp65285 $*/
6538+/* $Revision: 49390 $*/
6539+/* $Date: 2013-10-16 18:34:35 +0530 (Wed, 16 Oct 2013) $*/
6540+/* */
6541+/****************************************************************************************/
6542+
6543+/** @file
6544+ * Header file for the application layer interface of the REL_LVVE_HF_NV1_VC_AGC_RX_DRC_RX_WB module
6545+ *
6546+ * The suffix VID in header file stands for Voice Interface Definition
6547+ * This files includes all definitions, types, and structures required by the calling
6548+ * layer. Public functions are defined in the protoypes header files.
6549+ * All other types, structures and functions are private.
6550+ */
6551+
6552+#ifndef __REL_LVVE_HF_NV1_VC_AGC_RX_DRC_RX_WB_VIDPP_H__
6553+#define __REL_LVVE_HF_NV1_VC_AGC_RX_DRC_RX_WB_VIDPP_H__
6554+
6555+#ifdef __cplusplus
6556+extern "C" {
6557+#endif /* __cplusplus */
6558+
6559+/****************************************************************************************/
6560+/* */
6561+/* Includes */
6562+/* */
6563+/****************************************************************************************/
6564+#include "LVC_Types.h"
6565+
6566+/****************************************************************************************/
6567+/* */
6568+/* Definitions */
6569+/* */
6570+/****************************************************************************************/
6571+/**
6572+<table border>
6573+ <tr>
6574+ <td><b>Name</b></td>
6575+ <td><b>Value</b></td>
6576+ <td><b>Description</b></td>
6577+ </tr>
6578+ <tr>
6579+ <td>@ref LVVIDHEADER_LVVE_RX_LVFENS_MASK1</td>
6580+ <td>1</td>
6581+ <td>Far End Noise Suppression is present in the LVVE_Rx</td>
6582+ </tr>
6583+ <tr>
6584+ <td>@ref LVVIDHEADER_LVVE_RX_HPF_MASK1</td>
6585+ <td>4</td>
6586+ <td>High Pass Filter is present in the LVVE_Rx</td>
6587+ </tr>
6588+ <tr>
6589+ <td>@ref LVVIDHEADER_LVVE_RX_LVNG_MASK1</td>
6590+ <td>16</td>
6591+ <td>Noise Gate is present in the LVVE_Rx</td>
6592+ </tr>
6593+ <tr>
6594+ <td>@ref LVVIDHEADER_LVVE_RX_EQ_MASK1</td>
6595+ <td>64</td>
6596+ <td>Equalizer is present in the LVVE_Rx</td>
6597+ </tr>
6598+ <tr>
6599+ <td>@ref LVVIDHEADER_LVVE_RX_AGC_MASK1</td>
6600+ <td>128</td>
6601+ <td>Automatic Gain Control is present in the LVVE_Rx</td>
6602+ </tr>
6603+ <tr>
6604+ <td>@ref LVVIDHEADER_LVVE_RX_DRC_MASK1</td>
6605+ <td>256</td>
6606+ <td>Dynamic Range Control is present in the LVVE_Rx</td>
6607+ </tr>
6608+ <tr>
6609+ <td>@ref LVVIDHEADER_LVVE_RX_VOL_MASK1</td>
6610+ <td>512</td>
6611+ <td>Volume Control is present in the LVVE_Rx</td>
6612+ </tr>
6613+ <tr>
6614+ <td>@ref LVVIDHEADER_LVVE_RX_LVVC_MASK1</td>
6615+ <td>1024</td>
6616+ <td>VoiceClarity is present in the LVVE_Rx</td>
6617+ </tr>
6618+</table> */
6619+typedef LVM_UINT16 LVVIDHeader_LVVE_Rx_Mask1_bm;
6620+/**
6621+* @def LVVIDHeader_LVVE_Rx_LVFENS_MASK1
6622+* Far End Noise Suppression is present in the LVVE_Rx
6623+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
6624+*/
6625+#define LVVIDHEADER_LVVE_RX_LVFENS_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)1)
6626+/**
6627+* @def LVVIDHeader_LVVE_Rx_HPF_MASK1
6628+* High Pass Filter is present in the LVVE_Rx
6629+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
6630+*/
6631+#define LVVIDHEADER_LVVE_RX_HPF_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)4)
6632+/**
6633+* @def LVVIDHeader_LVVE_Rx_LVNG_MASK1
6634+* Noise Gate is present in the LVVE_Rx
6635+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
6636+*/
6637+#define LVVIDHEADER_LVVE_RX_LVNG_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)16)
6638+/**
6639+* @def LVVIDHeader_LVVE_Rx_EQ_MASK1
6640+* Equalizer is present in the LVVE_Rx
6641+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
6642+*/
6643+#define LVVIDHEADER_LVVE_RX_EQ_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)64)
6644+/**
6645+* @def LVVIDHeader_LVVE_Rx_AGC_MASK1
6646+* Automatic Gain Control is present in the LVVE_Rx
6647+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
6648+*/
6649+#define LVVIDHEADER_LVVE_RX_AGC_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)128)
6650+/**
6651+* @def LVVIDHeader_LVVE_Rx_DRC_MASK1
6652+* Dynamic Range Control is present in the LVVE_Rx
6653+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
6654+*/
6655+#define LVVIDHEADER_LVVE_RX_DRC_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)256)
6656+/**
6657+* @def LVVIDHeader_LVVE_Rx_VOL_MASK1
6658+* Volume Control is present in the LVVE_Rx
6659+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
6660+*/
6661+#define LVVIDHEADER_LVVE_RX_VOL_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)512)
6662+/**
6663+* @def LVVIDHeader_LVVE_Rx_LVVC_MASK1
6664+* VoiceClarity is present in the LVVE_Rx
6665+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
6666+*/
6667+#define LVVIDHEADER_LVVE_RX_LVVC_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)1024)
6668+/**
6669+* @def LVVIDHEADER_LVVE_RX_MASK1_BM_MIN
6670+* Minimal value for LVVIDHeader_LVVE_Rx_Mask1_bm
6671+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
6672+*/
6673+#define LVVIDHEADER_LVVE_RX_MASK1_BM_MIN ((LVVIDHeader_LVVE_Rx_Mask1_bm)0)
6674+/**
6675+* @def LVVIDHEADER_LVVE_RX_MASK1_BM_MAX
6676+* Maximal value for LVVIDHeader_LVVE_Rx_Mask1_bm
6677+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
6678+*/
6679+#define LVVIDHEADER_LVVE_RX_LVFENS_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)1)
6680+#define LVVIDHEADER_LVVE_RX_HPF_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)4)
6681+#define LVVIDHEADER_LVVE_RX_LVNG_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)16)
6682+#define LVVIDHEADER_LVVE_RX_EQ_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)64)
6683+#define LVVIDHEADER_LVVE_RX_AGC_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)128)
6684+#define LVVIDHEADER_LVVE_RX_DRC_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)256)
6685+#define LVVIDHEADER_LVVE_RX_VOL_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)512)
6686+#define LVVIDHEADER_LVVE_RX_LVVC_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)1024)
6687+#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))
6688+/**
6689+<table border>
6690+ <tr>
6691+ <td><b>Name</b></td>
6692+ <td><b>Value</b></td>
6693+ <td><b>Description</b></td>
6694+ </tr>
6695+</table> */
6696+typedef LVM_UINT16 LVVIDHeader_LVVE_Rx_Mask2_bm;
6697+/**
6698+* @def LVVIDHEADER_LVVE_RX_MASK2_BM_MIN
6699+* Minimal value for LVVIDHeader_LVVE_Rx_Mask2_bm
6700+* @see LVVIDHeader_LVVE_Rx_Mask2_bm
6701+*/
6702+#define LVVIDHEADER_LVVE_RX_MASK2_BM_MIN ((LVVIDHeader_LVVE_Rx_Mask2_bm)0)
6703+/**
6704+* @def LVVIDHEADER_LVVE_RX_MASK2_BM_MAX
6705+* Maximal value for LVVIDHeader_LVVE_Rx_Mask2_bm
6706+* @see LVVIDHeader_LVVE_Rx_Mask2_bm
6707+*/
6708+#define LVVIDHEADER_LVVE_RX_MASK2_BM_MAX (((LVVIDHeader_LVVE_Rx_Mask2_bm)0))
6709+/**
6710+<table border>
6711+ <tr>
6712+ <td><b>Name</b></td>
6713+ <td><b>Value</b></td>
6714+ <td><b>Description</b></td>
6715+ </tr>
6716+ <tr>
6717+ <td>@ref LVVIDHEADER_LVVE_TX_LVHF_MASK1</td>
6718+ <td>1</td>
6719+ <td>HandsFree is present in the LVVE_Tx</td>
6720+ </tr>
6721+ <tr>
6722+ <td>@ref LVVIDHEADER_LVVE_TX_EQ_MASK1</td>
6723+ <td>4</td>
6724+ <td>Equalizer is present in the LVVE_Tx</td>
6725+ </tr>
6726+ <tr>
6727+ <td>@ref LVVIDHEADER_LVVE_TX_LVWM_MASK1</td>
6728+ <td>8</td>
6729+ <td>WhisperMode is present in the LVVE_Tx</td>
6730+ </tr>
6731+ <tr>
6732+ <td>@ref LVVIDHEADER_LVVE_TX_DRC_MASK1</td>
6733+ <td>16</td>
6734+ <td>Dynamic Range Control is present in the LVVE_Tx</td>
6735+ </tr>
6736+ <tr>
6737+ <td>@ref LVVIDHEADER_LVVE_TX_VOL_MASK1</td>
6738+ <td>32</td>
6739+ <td>Volume Control is present in the LVVE_Tx</td>
6740+ </tr>
6741+ <tr>
6742+ <td>@ref LVVIDHEADER_LVVE_TX_HPF_MASK1</td>
6743+ <td>128</td>
6744+ <td>HPF is present in the LVVE_Tx</td>
6745+ </tr>
6746+ <tr>
6747+ <td>@ref LVVIDHEADER_LVVE_TX_LVNV_01_MASK1</td>
6748+ <td>512</td>
6749+ <td>NoiseVoid is present in the LVVE_Tx</td>
6750+ </tr>
6751+</table> */
6752+typedef LVM_UINT16 LVVIDHeader_LVVE_Tx_Mask1_bm;
6753+/**
6754+* @def LVVIDHeader_LVVE_Tx_LVHF_MASK1
6755+* HandsFree is present in the LVVE_Tx
6756+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
6757+*/
6758+#define LVVIDHEADER_LVVE_TX_LVHF_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)1)
6759+/**
6760+* @def LVVIDHeader_LVVE_Tx_EQ_MASK1
6761+* Equalizer is present in the LVVE_Tx
6762+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
6763+*/
6764+#define LVVIDHEADER_LVVE_TX_EQ_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)4)
6765+/**
6766+* @def LVVIDHeader_LVVE_Tx_LVWM_MASK1
6767+* WhisperMode is present in the LVVE_Tx
6768+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
6769+*/
6770+#define LVVIDHEADER_LVVE_TX_LVWM_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)8)
6771+/**
6772+* @def LVVIDHeader_LVVE_Tx_DRC_MASK1
6773+* Dynamic Range Control is present in the LVVE_Tx
6774+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
6775+*/
6776+#define LVVIDHEADER_LVVE_TX_DRC_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)16)
6777+/**
6778+* @def LVVIDHeader_LVVE_Tx_VOL_MASK1
6779+* Volume Control is present in the LVVE_Tx
6780+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
6781+*/
6782+#define LVVIDHEADER_LVVE_TX_VOL_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)32)
6783+/**
6784+* @def LVVIDHeader_LVVE_Tx_HPF_MASK1
6785+* HPF is present in the LVVE_Tx
6786+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
6787+*/
6788+#define LVVIDHEADER_LVVE_TX_HPF_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)128)
6789+/**
6790+* @def LVVIDHeader_LVVE_Tx_LVNV_01_MASK1
6791+* NoiseVoid is present in the LVVE_Tx
6792+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
6793+*/
6794+#define LVVIDHEADER_LVVE_TX_LVNV_01_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)512)
6795+/**
6796+* @def LVVIDHEADER_LVVE_TX_MASK1_BM_MIN
6797+* Minimal value for LVVIDHeader_LVVE_Tx_Mask1_bm
6798+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
6799+*/
6800+#define LVVIDHEADER_LVVE_TX_MASK1_BM_MIN ((LVVIDHeader_LVVE_Tx_Mask1_bm)0)
6801+/**
6802+* @def LVVIDHEADER_LVVE_TX_MASK1_BM_MAX
6803+* Maximal value for LVVIDHeader_LVVE_Tx_Mask1_bm
6804+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
6805+*/
6806+#define LVVIDHEADER_LVVE_TX_LVHF_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)1)
6807+#define LVVIDHEADER_LVVE_TX_EQ_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)4)
6808+#define LVVIDHEADER_LVVE_TX_LVWM_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)8)
6809+#define LVVIDHEADER_LVVE_TX_DRC_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)16)
6810+#define LVVIDHEADER_LVVE_TX_VOL_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)32)
6811+#define LVVIDHEADER_LVVE_TX_HPF_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)128)
6812+#define LVVIDHEADER_LVVE_TX_LVNV_01_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)512)
6813+#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))
6814+/**
6815+<table border>
6816+ <tr>
6817+ <td><b>Name</b></td>
6818+ <td><b>Value</b></td>
6819+ <td><b>Description</b></td>
6820+ </tr>
6821+</table> */
6822+typedef LVM_UINT16 LVVIDHeader_LVVE_Tx_Mask2_bm;
6823+/**
6824+* @def LVVIDHEADER_LVVE_TX_MASK2_BM_MIN
6825+* Minimal value for LVVIDHeader_LVVE_Tx_Mask2_bm
6826+* @see LVVIDHeader_LVVE_Tx_Mask2_bm
6827+*/
6828+#define LVVIDHEADER_LVVE_TX_MASK2_BM_MIN ((LVVIDHeader_LVVE_Tx_Mask2_bm)0)
6829+/**
6830+* @def LVVIDHEADER_LVVE_TX_MASK2_BM_MAX
6831+* Maximal value for LVVIDHeader_LVVE_Tx_Mask2_bm
6832+* @see LVVIDHeader_LVVE_Tx_Mask2_bm
6833+*/
6834+#define LVVIDHEADER_LVVE_TX_MASK2_BM_MAX (((LVVIDHeader_LVVE_Tx_Mask2_bm)0))
6835+/**
6836+<table border>
6837+ <tr>
6838+ <td><b>Name</b></td>
6839+ <td><b>Value</b></td>
6840+ <td><b>Description</b></td>
6841+ </tr>
6842+ <tr>
6843+ <td>@ref LVVIDHEADER_CONFIGURATIONS_WIDEBAND_MASK1</td>
6844+ <td>2</td>
6845+ <td>WideBand configuration is present in the LVVE</td>
6846+ </tr>
6847+</table> */
6848+typedef LVM_UINT16 LVVIDHeader_Configurations_Mask1_bm;
6849+/**
6850+* @def LVVIDHEADER_CONFIGURATIONS_WIDEBAND_MASK1
6851+* WideBand configuration is present in the LVVE
6852+* @see LVVIDHeader_Configurations_Mask1_bm
6853+*/
6854+#define LVVIDHEADER_CONFIGURATIONS_WIDEBAND_MASK1 ((LVVIDHeader_Configurations_Mask1_bm)2)
6855+/**
6856+* @def LVVIDHEADER_CONFIGURATIONS_MASK1_BM_MIN
6857+* Minimal value for LVVIDHeader_Configurations_Mask1_bm
6858+* @see LVVIDHeader_Configurations_Mask1_bm
6859+*/
6860+#define LVVIDHEADER_CONFIGURATIONS_MASK1_BM_MIN ((LVVIDHeader_Configurations_Mask1_bm)0)
6861+/**
6862+* @def LVVIDHEADER_CONFIGURATIONS_MASK1_BM_MAX
6863+* Maximal value for LVVIDHeader_Configurations_Mask1_bm
6864+* @see LVVIDHeader_Configurations_Mask1_bm
6865+*/
6866+#define LVVIDHEADER_CONFIGURATIONS_WIDEBAND_MASK1_FORMAX ((LVVIDHeader_Configurations_Mask1_bm)2)
6867+#define LVVIDHEADER_CONFIGURATIONS_MASK1_BM_MAX (LVVIDHEADER_CONFIGURATIONS_WIDEBAND_MASK1_FORMAX | ((LVVIDHeader_Configurations_Mask1_bm)0))
6868+/**
6869+<table border>
6870+ <tr>
6871+ <td><b>Name</b></td>
6872+ <td><b>Value</b></td>
6873+ <td><b>Description</b></td>
6874+ </tr>
6875+</table> */
6876+typedef LVM_UINT16 LVVIDHeader_Configurations_Mask2_bm;
6877+/**
6878+* @def LVVIDHEADER_CONFIGURATIONS_MASK2_BM_MIN
6879+* Minimal value for LVVIDHeader_Configurations_Mask2_bm
6880+* @see LVVIDHeader_Configurations_Mask2_bm
6881+*/
6882+#define LVVIDHEADER_CONFIGURATIONS_MASK2_BM_MIN ((LVVIDHeader_Configurations_Mask2_bm)0)
6883+/**
6884+* @def LVVIDHEADER_CONFIGURATIONS_MASK2_BM_MAX
6885+* Maximal value for LVVIDHeader_Configurations_Mask2_bm
6886+* @see LVVIDHeader_Configurations_Mask2_bm
6887+*/
6888+#define LVVIDHEADER_CONFIGURATIONS_MASK2_BM_MAX (((LVVIDHeader_Configurations_Mask2_bm)0))
6889+/**
6890+<table border>
6891+ <tr>
6892+ <td><b>Name</b></td>
6893+ <td><b>Value</b></td>
6894+ <td><b>Description</b></td>
6895+ </tr>
6896+ <tr>
6897+ <td>@ref LVVC_MODE_AVL</td>
6898+ <td>2</td>
6899+ <td>Turns on or off the AGC. If off both AGC and Limiter are bypassed.</td>
6900+ </tr>
6901+ <tr>
6902+ <td>@ref LVVC_MODE_AVL_ADAPT</td>
6903+ <td>4</td>
6904+ <td>Allows turning off the dependency of the AGC upon the nearend noise level. When turned off, the AGC uses the default parameters.</td>
6905+ </tr>
6906+ <tr>
6907+ <td>@ref LVVC_MODE_AVL_SPDETECT</td>
6908+ <td>8</td>
6909+ <td>Allows disabling speech detection in the AGC. When turned off, the AGC adapts its gain all the time.</td>
6910+ </tr>
6911+ <tr>
6912+ <td>@ref LVVC_MODE_LIMITER</td>
6913+ <td>16</td>
6914+ <td>Turns on or off the limiter.</td>
6915+ </tr>
6916+ <tr>
6917+ <td>@ref LVVC_MODE_LPF</td>
6918+ <td>32</td>
6919+ <td>Turns on or off the low-pass filter.</td>
6920+ </tr>
6921+ <tr>
6922+ <td>@ref LVVC_MODE_HPF</td>
6923+ <td>64</td>
6924+ <td>Turns on or off the high-pass filter.</td>
6925+ </tr>
6926+ <tr>
6927+ <td>@ref LVVC_MODE_VC</td>
6928+ <td>128</td>
6929+ <td>Turns on or off the VoiceClarity gain.</td>
6930+ </tr>
6931+</table> */
6932+typedef LVM_UINT16 LVVC_ModeWord_bm;
6933+/**
6934+* @def LVVC_MODE_AVL
6935+* Turns on or off the AGC. If off both AGC and Limiter are bypassed.
6936+* @see LVVC_ModeWord_bm
6937+*/
6938+#define LVVC_MODE_AVL ((LVVC_ModeWord_bm)2)
6939+/**
6940+* @def LVVC_MODE_AVL_ADAPT
6941+* Allows turning off the dependency of the AGC upon the nearend noise level. When turned off, the AGC uses the default parameters.
6942+* @see LVVC_ModeWord_bm
6943+*/
6944+#define LVVC_MODE_AVL_ADAPT ((LVVC_ModeWord_bm)4)
6945+/**
6946+* @def LVVC_MODE_AVL_SPDETECT
6947+* Allows disabling speech detection in the AGC. When turned off, the AGC adapts its gain all the time.
6948+* @see LVVC_ModeWord_bm
6949+*/
6950+#define LVVC_MODE_AVL_SPDETECT ((LVVC_ModeWord_bm)8)
6951+/**
6952+* @def LVVC_MODE_LIMITER
6953+* Turns on or off the limiter.
6954+* @see LVVC_ModeWord_bm
6955+*/
6956+#define LVVC_MODE_LIMITER ((LVVC_ModeWord_bm)16)
6957+/**
6958+* @def LVVC_MODE_LPF
6959+* Turns on or off the low-pass filter.
6960+* @see LVVC_ModeWord_bm
6961+*/
6962+#define LVVC_MODE_LPF ((LVVC_ModeWord_bm)32)
6963+/**
6964+* @def LVVC_MODE_HPF
6965+* Turns on or off the high-pass filter.
6966+* @see LVVC_ModeWord_bm
6967+*/
6968+#define LVVC_MODE_HPF ((LVVC_ModeWord_bm)64)
6969+/**
6970+* @def LVVC_MODE_VC
6971+* Turns on or off the VoiceClarity gain.
6972+* @see LVVC_ModeWord_bm
6973+*/
6974+#define LVVC_MODE_VC ((LVVC_ModeWord_bm)128)
6975+/**
6976+* @def LVVC_MODEWORD_BM_MIN
6977+* Minimal value for LVVC_ModeWord_bm
6978+* @see LVVC_ModeWord_bm
6979+*/
6980+#define LVVC_MODEWORD_BM_MIN ((LVVC_ModeWord_bm)0)
6981+/**
6982+* @def LVVC_MODEWORD_BM_MAX
6983+* Maximal value for LVVC_ModeWord_bm
6984+* @see LVVC_ModeWord_bm
6985+*/
6986+#define LVVC_MODE_AVL_FORMAX ((LVVC_ModeWord_bm)2)
6987+#define LVVC_MODE_AVL_ADAPT_FORMAX ((LVVC_ModeWord_bm)4)
6988+#define LVVC_MODE_AVL_SPDETECT_FORMAX ((LVVC_ModeWord_bm)8)
6989+#define LVVC_MODE_LIMITER_FORMAX ((LVVC_ModeWord_bm)16)
6990+#define LVVC_MODE_LPF_FORMAX ((LVVC_ModeWord_bm)32)
6991+#define LVVC_MODE_HPF_FORMAX ((LVVC_ModeWord_bm)64)
6992+#define LVVC_MODE_VC_FORMAX ((LVVC_ModeWord_bm)128)
6993+#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))
6994+/**
6995+<table border>
6996+ <tr>
6997+ <td><b>Name</b></td>
6998+ <td><b>Value</b></td>
6999+ <td><b>Description</b></td>
7000+ </tr>
7001+ <tr>
7002+ <td>@ref LVFENS_MODE_HS</td>
7003+ <td>1</td>
7004+ <td>Switch ON and OFF Horn Suppressor. Currently Horn Suppressor is not supported.</td>
7005+ </tr>
7006+</table> */
7007+typedef LVM_UINT16 LVFENS_ModeWord_bm;
7008+/**
7009+* @def LVFENS_MODE_HS
7010+* Switch ON and OFF Horn Suppressor. Currently Horn Suppressor is not supported.
7011+* @see LVFENS_ModeWord_bm
7012+*/
7013+#define LVFENS_MODE_HS ((LVFENS_ModeWord_bm)1)
7014+/**
7015+* @def LVFENS_MODEWORD_BM_MIN
7016+* Minimal value for LVFENS_ModeWord_bm
7017+* @see LVFENS_ModeWord_bm
7018+*/
7019+#define LVFENS_MODEWORD_BM_MIN ((LVFENS_ModeWord_bm)0)
7020+/**
7021+* @def LVFENS_MODEWORD_BM_MAX
7022+* Maximal value for LVFENS_ModeWord_bm
7023+* @see LVFENS_ModeWord_bm
7024+*/
7025+#define LVFENS_MODE_HS_FORMAX ((LVFENS_ModeWord_bm)1)
7026+#define LVFENS_MODEWORD_BM_MAX (LVFENS_MODE_HS_FORMAX | ((LVFENS_ModeWord_bm)0))
7027+/**
7028+<table border>
7029+ <tr>
7030+ <td><b>Name</b></td>
7031+ <td><b>Value</b></td>
7032+ <td><b>Description</b></td>
7033+ </tr>
7034+ <tr>
7035+ <td>@ref LVWM_MODE_AVL</td>
7036+ <td>1</td>
7037+ <td>Turns on or off the AVL. If off, both AGC and Limiter are bypassed</td>
7038+ </tr>
7039+ <tr>
7040+ <td>@ref LVWM_MODE_SPDETECT</td>
7041+ <td>2</td>
7042+ <td>Allows disabling speech detection in the AVL. When turned off, the AGC adapts its gain all the time.</td>
7043+ </tr>
7044+ <tr>
7045+ <td>@ref LVWM_MODE_LIMITER</td>
7046+ <td>4</td>
7047+ <td>Turns on or off the limiter.</td>
7048+ </tr>
7049+ <tr>
7050+ <td>@ref LVWM_MODE_EXT_SPDETECT</td>
7051+ <td>8</td>
7052+ <td>Used to tell the WhisperMode module if an external speech detection is available (If 0, there is no external speech detector).</td>
7053+ </tr>
7054+</table> */
7055+typedef LVM_UINT16 LVWM_ModeWord_bm;
7056+/**
7057+* @def LVWM_MODE_AVL
7058+* Turns on or off the AVL. If off, both AGC and Limiter are bypassed
7059+* @see LVWM_ModeWord_bm
7060+*/
7061+#define LVWM_MODE_AVL ((LVWM_ModeWord_bm)1)
7062+/**
7063+* @def LVWM_MODE_SPDETECT
7064+* Allows disabling speech detection in the AVL. When turned off, the AGC adapts its gain all the time.
7065+* @see LVWM_ModeWord_bm
7066+*/
7067+#define LVWM_MODE_SPDETECT ((LVWM_ModeWord_bm)2)
7068+/**
7069+* @def LVWM_MODE_LIMITER
7070+* Turns on or off the limiter.
7071+* @see LVWM_ModeWord_bm
7072+*/
7073+#define LVWM_MODE_LIMITER ((LVWM_ModeWord_bm)4)
7074+/**
7075+* @def LVWM_MODE_EXT_SPDETECT
7076+* Used to tell the WhisperMode module if an external speech detection is available (If 0, there is no external speech detector).
7077+* @see LVWM_ModeWord_bm
7078+*/
7079+#define LVWM_MODE_EXT_SPDETECT ((LVWM_ModeWord_bm)8)
7080+/**
7081+* @def LVWM_MODEWORD_BM_MIN
7082+* Minimal value for LVWM_ModeWord_bm
7083+* @see LVWM_ModeWord_bm
7084+*/
7085+#define LVWM_MODEWORD_BM_MIN ((LVWM_ModeWord_bm)0)
7086+/**
7087+* @def LVWM_MODEWORD_BM_MAX
7088+* Maximal value for LVWM_ModeWord_bm
7089+* @see LVWM_ModeWord_bm
7090+*/
7091+#define LVWM_MODE_AVL_FORMAX ((LVWM_ModeWord_bm)1)
7092+#define LVWM_MODE_SPDETECT_FORMAX ((LVWM_ModeWord_bm)2)
7093+#define LVWM_MODE_LIMITER_FORMAX ((LVWM_ModeWord_bm)4)
7094+#define LVWM_MODE_EXT_SPDETECT_FORMAX ((LVWM_ModeWord_bm)8)
7095+#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))
7096+/**
7097+<table border>
7098+ <tr>
7099+ <td><b>Name</b></td>
7100+ <td><b>Value</b></td>
7101+ <td><b>Description</b></td>
7102+ </tr>
7103+ <tr>
7104+ <td>@ref MODE_NLMS0</td>
7105+ <td>1</td>
7106+ <td>NLMS0 functionality</td>
7107+ </tr>
7108+ <tr>
7109+ <td>@ref MODE_NLMS1</td>
7110+ <td>2</td>
7111+ <td>NLMS1 functionality</td>
7112+ </tr>
7113+ <tr>
7114+ <td>@ref MODE_BEAMFORMER</td>
7115+ <td>4</td>
7116+ <td>Fiter-and-Sum Beamformer functionality</td>
7117+ </tr>
7118+ <tr>
7119+ <td>@ref MODE_PCD</td>
7120+ <td>8</td>
7121+ <td>Switch between PCD (Path change detector) and BSD (Broadside detector)</td>
7122+ </tr>
7123+ <tr>
7124+ <td>@ref MODE_GSC</td>
7125+ <td>16</td>
7126+ <td>Generalized Sidelobe Canceller functionality</td>
7127+ </tr>
7128+ <tr>
7129+ <td>@ref MODE_DNNS</td>
7130+ <td>32</td>
7131+ <td>Dynamic Non-stationary Noise Suppression functionality</td>
7132+ </tr>
7133+ <tr>
7134+ <td>@ref MODE_DES</td>
7135+ <td>64</td>
7136+ <td>Dynamic Echo Suppression functionality</td>
7137+ </tr>
7138+ <tr>
7139+ <td>@ref MODE_NS</td>
7140+ <td>128</td>
7141+ <td>Stationary Noise Suppression functionality</td>
7142+ </tr>
7143+ <tr>
7144+ <td>@ref MODE_NS_N</td>
7145+ <td>256</td>
7146+ <td>Non-stationary Noise Suppression functionality</td>
7147+ </tr>
7148+ <tr>
7149+ <td>@ref MODE_CAL</td>
7150+ <td>2048</td>
7151+ <td>Switch between initial or continuous calibration</td>
7152+ </tr>
7153+ <tr>
7154+ <td>@ref MODE_HB</td>
7155+ <td>16384</td>
7156+ <td>High Band mute/activated</td>
7157+ </tr>
7158+ <tr>
7159+ <td>@ref MODE_HS</td>
7160+ <td>32768</td>
7161+ <td>Horn Suppressor functionality (if available)</td>
7162+ </tr>
7163+</table> */
7164+typedef LVM_UINT16 LVNV_ModeWord_bm;
7165+/**
7166+* @def MODE_NLMS0
7167+* NLMS0 functionality
7168+* @see LVNV_ModeWord_bm
7169+*/
7170+#define MODE_NLMS0 ((LVNV_ModeWord_bm)1)
7171+/**
7172+* @def MODE_NLMS1
7173+* NLMS1 functionality
7174+* @see LVNV_ModeWord_bm
7175+*/
7176+#define MODE_NLMS1 ((LVNV_ModeWord_bm)2)
7177+/**
7178+* @def MODE_BEAMFORMER
7179+* Fiter-and-Sum Beamformer functionality
7180+* @see LVNV_ModeWord_bm
7181+*/
7182+#define MODE_BEAMFORMER ((LVNV_ModeWord_bm)4)
7183+/**
7184+* @def MODE_PCD
7185+* Switch between PCD (Path change detector) and BSD (Broadside detector)
7186+* @see LVNV_ModeWord_bm
7187+*/
7188+#define MODE_PCD ((LVNV_ModeWord_bm)8)
7189+/**
7190+* @def MODE_GSC
7191+* Generalized Sidelobe Canceller functionality
7192+* @see LVNV_ModeWord_bm
7193+*/
7194+#define MODE_GSC ((LVNV_ModeWord_bm)16)
7195+/**
7196+* @def MODE_DNNS
7197+* Dynamic Non-stationary Noise Suppression functionality
7198+* @see LVNV_ModeWord_bm
7199+*/
7200+#define MODE_DNNS ((LVNV_ModeWord_bm)32)
7201+/**
7202+* @def MODE_DES
7203+* Dynamic Echo Suppression functionality
7204+* @see LVNV_ModeWord_bm
7205+*/
7206+#define MODE_DES ((LVNV_ModeWord_bm)64)
7207+/**
7208+* @def MODE_NS
7209+* Stationary Noise Suppression functionality
7210+* @see LVNV_ModeWord_bm
7211+*/
7212+#define MODE_NS ((LVNV_ModeWord_bm)128)
7213+/**
7214+* @def MODE_NS_N
7215+* Non-stationary Noise Suppression functionality
7216+* @see LVNV_ModeWord_bm
7217+*/
7218+#define MODE_NS_N ((LVNV_ModeWord_bm)256)
7219+/**
7220+* @def MODE_CAL
7221+* Switch between initial or continuous calibration
7222+* @see LVNV_ModeWord_bm
7223+*/
7224+#define MODE_CAL ((LVNV_ModeWord_bm)2048)
7225+/**
7226+* @def MODE_HB
7227+* High Band mute/activated
7228+* @see LVNV_ModeWord_bm
7229+*/
7230+#define MODE_HB ((LVNV_ModeWord_bm)16384)
7231+/**
7232+* @def MODE_HS
7233+* Horn Suppressor functionality (if available)
7234+* @see LVNV_ModeWord_bm
7235+*/
7236+#define MODE_HS ((LVNV_ModeWord_bm)32768)
7237+/**
7238+* @def LVNV_MODEWORD_BM_MIN
7239+* Minimal value for LVNV_ModeWord_bm
7240+* @see LVNV_ModeWord_bm
7241+*/
7242+#define LVNV_MODEWORD_BM_MIN ((LVNV_ModeWord_bm)0)
7243+/**
7244+* @def LVNV_MODEWORD_BM_MAX
7245+* Maximal value for LVNV_ModeWord_bm
7246+* @see LVNV_ModeWord_bm
7247+*/
7248+#define MODE_NLMS0_FORMAX ((LVNV_ModeWord_bm)1)
7249+#define MODE_NLMS1_FORMAX ((LVNV_ModeWord_bm)2)
7250+#define MODE_BEAMFORMER_FORMAX ((LVNV_ModeWord_bm)4)
7251+#define MODE_PCD_FORMAX ((LVNV_ModeWord_bm)8)
7252+#define MODE_GSC_FORMAX ((LVNV_ModeWord_bm)16)
7253+#define MODE_DNNS_FORMAX ((LVNV_ModeWord_bm)32)
7254+#define MODE_DES_FORMAX ((LVNV_ModeWord_bm)64)
7255+#define MODE_NS_FORMAX ((LVNV_ModeWord_bm)128)
7256+#define MODE_NS_N_FORMAX ((LVNV_ModeWord_bm)256)
7257+#define MODE_CAL_FORMAX ((LVNV_ModeWord_bm)2048)
7258+#define MODE_HB_FORMAX ((LVNV_ModeWord_bm)16384)
7259+#define MODE_HS_FORMAX ((LVNV_ModeWord_bm)32768)
7260+#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))
7261+/**
7262+<table border>
7263+ <tr>
7264+ <td><b>Name</b></td>
7265+ <td><b>Value</b></td>
7266+ <td><b>Description</b></td>
7267+ </tr>
7268+ <tr>
7269+ <td>@ref MODE2_FSB_CARDIOID</td>
7270+ <td>1</td>
7271+ <td>FSB update based on speech detection in cardioid</td>
7272+ </tr>
7273+ <tr>
7274+ <td>@ref MODE2_FSB_WITHINBEAM</td>
7275+ <td>2</td>
7276+ <td>FSB update based on withinbeam detection</td>
7277+ </tr>
7278+ <tr>
7279+ <td>@ref MODE2_CAL_UPDATE</td>
7280+ <td>4</td>
7281+ <td>Switch for calibration functionality between updated or not-updated</td>
7282+ </tr>
7283+ <tr>
7284+ <td>@ref MODE2_BEAMDAMAGE</td>
7285+ <td>8</td>
7286+ <td>Microphone coverage protection</td>
7287+ </tr>
7288+</table> */
7289+typedef LVM_UINT16 LVNV_Mode2Word_bm;
7290+/**
7291+* @def MODE2_FSB_CARDIOID
7292+* FSB update based on speech detection in cardioid
7293+* @see LVNV_Mode2Word_bm
7294+*/
7295+#define MODE2_FSB_CARDIOID ((LVNV_Mode2Word_bm)1)
7296+/**
7297+* @def MODE2_FSB_WITHINBEAM
7298+* FSB update based on withinbeam detection
7299+* @see LVNV_Mode2Word_bm
7300+*/
7301+#define MODE2_FSB_WITHINBEAM ((LVNV_Mode2Word_bm)2)
7302+/**
7303+* @def MODE2_CAL_UPDATE
7304+* Switch for calibration functionality between updated or not-updated
7305+* @see LVNV_Mode2Word_bm
7306+*/
7307+#define MODE2_CAL_UPDATE ((LVNV_Mode2Word_bm)4)
7308+/**
7309+* @def MODE2_BEAMDAMAGE
7310+* Microphone coverage protection
7311+* @see LVNV_Mode2Word_bm
7312+*/
7313+#define MODE2_BEAMDAMAGE ((LVNV_Mode2Word_bm)8)
7314+/**
7315+* @def LVNV_MODE2WORD_BM_MIN
7316+* Minimal value for LVNV_Mode2Word_bm
7317+* @see LVNV_Mode2Word_bm
7318+*/
7319+#define LVNV_MODE2WORD_BM_MIN ((LVNV_Mode2Word_bm)0)
7320+/**
7321+* @def LVNV_MODE2WORD_BM_MAX
7322+* Maximal value for LVNV_Mode2Word_bm
7323+* @see LVNV_Mode2Word_bm
7324+*/
7325+#define MODE2_FSB_CARDIOID_FORMAX ((LVNV_Mode2Word_bm)1)
7326+#define MODE2_FSB_WITHINBEAM_FORMAX ((LVNV_Mode2Word_bm)2)
7327+#define MODE2_CAL_UPDATE_FORMAX ((LVNV_Mode2Word_bm)4)
7328+#define MODE2_BEAMDAMAGE_FORMAX ((LVNV_Mode2Word_bm)8)
7329+#define LVNV_MODE2WORD_BM_MAX (MODE2_FSB_CARDIOID_FORMAX | MODE2_FSB_WITHINBEAM_FORMAX | MODE2_CAL_UPDATE_FORMAX | MODE2_BEAMDAMAGE_FORMAX | ((LVNV_Mode2Word_bm)0))
7330+/**
7331+<table border>
7332+ <tr>
7333+ <td><b>Name</b></td>
7334+ <td><b>Value</b></td>
7335+ <td><b>Description</b></td>
7336+ </tr>
7337+ <tr>
7338+ <td>@ref TUNING_MODE_NLMS1</td>
7339+ <td>1</td>
7340+ <td>NLMS1 output</td>
7341+ </tr>
7342+ <tr>
7343+ <td>@ref TUNING_MODE_FSB</td>
7344+ <td>2</td>
7345+ <td>FSB noise reference output</td>
7346+ </tr>
7347+ <tr>
7348+ <td>@ref TUNING_MODE_WITHINBEAM</td>
7349+ <td>8</td>
7350+ <td>Tuning beep when Withinbeam=1</td>
7351+ </tr>
7352+ <tr>
7353+ <td>@ref TUNING_MODE_UPDATEONOFF</td>
7354+ <td>16</td>
7355+ <td>Tuning beep when FSB is updated</td>
7356+ </tr>
7357+ <tr>
7358+ <td>@ref TUNING_MODE_CAL_MICPOW</td>
7359+ <td>64</td>
7360+ <td>Tuning beep when MicPow is lower than Cal_micPowFloorMin</td>
7361+ </tr>
7362+ <tr>
7363+ <td>@ref TUNING_MODE_BROADSIDE</td>
7364+ <td>128</td>
7365+ <td>Tuning beep when broadside is detected</td>
7366+ </tr>
7367+</table> */
7368+typedef LVM_UINT16 LVNV_TuningModeWord_bm;
7369+/**
7370+* @def TUNING_MODE_NLMS1
7371+* NLMS1 output
7372+* @see LVNV_TuningModeWord_bm
7373+*/
7374+#define TUNING_MODE_NLMS1 ((LVNV_TuningModeWord_bm)1)
7375+/**
7376+* @def TUNING_MODE_FSB
7377+* FSB noise reference output
7378+* @see LVNV_TuningModeWord_bm
7379+*/
7380+#define TUNING_MODE_FSB ((LVNV_TuningModeWord_bm)2)
7381+/**
7382+* @def TUNING_MODE_WITHINBEAM
7383+* Tuning beep when Withinbeam=1
7384+* @see LVNV_TuningModeWord_bm
7385+*/
7386+#define TUNING_MODE_WITHINBEAM ((LVNV_TuningModeWord_bm)8)
7387+/**
7388+* @def TUNING_MODE_UPDATEONOFF
7389+* Tuning beep when FSB is updated
7390+* @see LVNV_TuningModeWord_bm
7391+*/
7392+#define TUNING_MODE_UPDATEONOFF ((LVNV_TuningModeWord_bm)16)
7393+/**
7394+* @def TUNING_MODE_CAL_MICPOW
7395+* Tuning beep when MicPow is lower than Cal_micPowFloorMin
7396+* @see LVNV_TuningModeWord_bm
7397+*/
7398+#define TUNING_MODE_CAL_MICPOW ((LVNV_TuningModeWord_bm)64)
7399+/**
7400+* @def TUNING_MODE_BROADSIDE
7401+* Tuning beep when broadside is detected
7402+* @see LVNV_TuningModeWord_bm
7403+*/
7404+#define TUNING_MODE_BROADSIDE ((LVNV_TuningModeWord_bm)128)
7405+/**
7406+* @def LVNV_TUNINGMODEWORD_BM_MIN
7407+* Minimal value for LVNV_TuningModeWord_bm
7408+* @see LVNV_TuningModeWord_bm
7409+*/
7410+#define LVNV_TUNINGMODEWORD_BM_MIN ((LVNV_TuningModeWord_bm)0)
7411+/**
7412+* @def LVNV_TUNINGMODEWORD_BM_MAX
7413+* Maximal value for LVNV_TuningModeWord_bm
7414+* @see LVNV_TuningModeWord_bm
7415+*/
7416+#define TUNING_MODE_NLMS1_FORMAX ((LVNV_TuningModeWord_bm)1)
7417+#define TUNING_MODE_FSB_FORMAX ((LVNV_TuningModeWord_bm)2)
7418+#define TUNING_MODE_WITHINBEAM_FORMAX ((LVNV_TuningModeWord_bm)8)
7419+#define TUNING_MODE_UPDATEONOFF_FORMAX ((LVNV_TuningModeWord_bm)16)
7420+#define TUNING_MODE_CAL_MICPOW_FORMAX ((LVNV_TuningModeWord_bm)64)
7421+#define TUNING_MODE_BROADSIDE_FORMAX ((LVNV_TuningModeWord_bm)128)
7422+#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))
7423+/**
7424+<table border>
7425+ <tr>
7426+ <td><b>Name</b></td>
7427+ <td><b>Value</b></td>
7428+ <td><b>Description</b></td>
7429+ </tr>
7430+ <tr>
7431+ <td>@ref LVNV_STATUS_LOST_BEAM</td>
7432+ <td>1</td>
7433+ <td>LostBeam detections</td>
7434+ </tr>
7435+ <tr>
7436+ <td>@ref LVNV_STATUS_MIC_COV</td>
7437+ <td>2</td>
7438+ <td>Microphone Coverage detections</td>
7439+ </tr>
7440+ <tr>
7441+ <td>@ref LVNV_STATUS_FSB_UPDATE</td>
7442+ <td>4</td>
7443+ <td>FSB updates</td>
7444+ </tr>
7445+ <tr>
7446+ <td>@ref LVNV_STATUS_BEAM_DAMAGE</td>
7447+ <td>8</td>
7448+ <td>BeamDamage detections</td>
7449+ </tr>
7450+ <tr>
7451+ <td>@ref LVNV_STATUS_GSC_UPDATE</td>
7452+ <td>16</td>
7453+ <td>GSC updates</td>
7454+ </tr>
7455+ <tr>
7456+ <td>@ref LVNV_STATUS_DNNS_WBEAM</td>
7457+ <td>32</td>
7458+ <td>DNNS WithinBeam detections</td>
7459+ </tr>
7460+ <tr>
7461+ <td>@ref LVNV_STATUS_DNNS_ACTIVITY</td>
7462+ <td>64</td>
7463+ <td>DNNS activity detections</td>
7464+ </tr>
7465+ <tr>
7466+ <td>@ref LVNV_STATUS_CAL_MICPOW</td>
7467+ <td>128</td>
7468+ <td>Calibration Microphone Power</td>
7469+ </tr>
7470+ <tr>
7471+ <td>@ref LVNV_STATUS_MICPOWSP</td>
7472+ <td>256</td>
7473+ <td>(LV1008) MicPow Speech detections</td>
7474+ </tr>
7475+ <tr>
7476+ <td>@ref LVNV_STATUS_BROADSIDE_FLAG</td>
7477+ <td>512</td>
7478+ <td>(LV2370) Broadside detection flag</td>
7479+ </tr>
7480+ <tr>
7481+ <td>@ref LVNV_STATUS_CAL_UPDATED</td>
7482+ <td>1024</td>
7483+ <td>(LV8237) Calibration updated flag</td>
7484+ </tr>
7485+ <tr>
7486+ <td>@ref LVNV_STATUS_WBEAM_FIX</td>
7487+ <td>2048</td>
7488+ <td>WithinBeam detection for Fixed Beamformer (if available).</td>
7489+ </tr>
7490+</table> */
7491+typedef LVM_UINT16 LVNV_StatusWord_bm;
7492+/**
7493+* @def LVNV_STATUS_LOST_BEAM
7494+* LostBeam detections
7495+* @see LVNV_StatusWord_bm
7496+*/
7497+#define LVNV_STATUS_LOST_BEAM ((LVNV_StatusWord_bm)1)
7498+/**
7499+* @def LVNV_STATUS_MIC_COV
7500+* Microphone Coverage detections
7501+* @see LVNV_StatusWord_bm
7502+*/
7503+#define LVNV_STATUS_MIC_COV ((LVNV_StatusWord_bm)2)
7504+/**
7505+* @def LVNV_STATUS_FSB_UPDATE
7506+* FSB updates
7507+* @see LVNV_StatusWord_bm
7508+*/
7509+#define LVNV_STATUS_FSB_UPDATE ((LVNV_StatusWord_bm)4)
7510+/**
7511+* @def LVNV_STATUS_BEAM_DAMAGE
7512+* BeamDamage detections
7513+* @see LVNV_StatusWord_bm
7514+*/
7515+#define LVNV_STATUS_BEAM_DAMAGE ((LVNV_StatusWord_bm)8)
7516+/**
7517+* @def LVNV_STATUS_GSC_UPDATE
7518+* GSC updates
7519+* @see LVNV_StatusWord_bm
7520+*/
7521+#define LVNV_STATUS_GSC_UPDATE ((LVNV_StatusWord_bm)16)
7522+/**
7523+* @def LVNV_STATUS_DNNS_WBEAM
7524+* DNNS WithinBeam detections
7525+* @see LVNV_StatusWord_bm
7526+*/
7527+#define LVNV_STATUS_DNNS_WBEAM ((LVNV_StatusWord_bm)32)
7528+/**
7529+* @def LVNV_STATUS_DNNS_ACTIVITY
7530+* DNNS activity detections
7531+* @see LVNV_StatusWord_bm
7532+*/
7533+#define LVNV_STATUS_DNNS_ACTIVITY ((LVNV_StatusWord_bm)64)
7534+/**
7535+* @def LVNV_STATUS_CAL_MICPOW
7536+* Calibration Microphone Power
7537+* @see LVNV_StatusWord_bm
7538+*/
7539+#define LVNV_STATUS_CAL_MICPOW ((LVNV_StatusWord_bm)128)
7540+/**
7541+* @def LVNV_STATUS_MICPOWSP
7542+* (LV1008) MicPow Speech detections
7543+* @see LVNV_StatusWord_bm
7544+*/
7545+#define LVNV_STATUS_MICPOWSP ((LVNV_StatusWord_bm)256)
7546+/**
7547+* @def LVNV_STATUS_BROADSIDE_FLAG
7548+* (LV2370) Broadside detection flag
7549+* @see LVNV_StatusWord_bm
7550+*/
7551+#define LVNV_STATUS_BROADSIDE_FLAG ((LVNV_StatusWord_bm)512)
7552+/**
7553+* @def LVNV_STATUS_CAL_UPDATED
7554+* (LV8237) Calibration updated flag
7555+* @see LVNV_StatusWord_bm
7556+*/
7557+#define LVNV_STATUS_CAL_UPDATED ((LVNV_StatusWord_bm)1024)
7558+/**
7559+* @def LVNV_STATUS_WBEAM_fix
7560+* WithinBeam detection for Fixed Beamformer (if available).
7561+* @see LVNV_StatusWord_bm
7562+*/
7563+#define LVNV_STATUS_WBEAM_FIX ((LVNV_StatusWord_bm)2048)
7564+/**
7565+* @def LVNV_STATUSWORD_BM_MIN
7566+* Minimal value for LVNV_StatusWord_bm
7567+* @see LVNV_StatusWord_bm
7568+*/
7569+#define LVNV_STATUSWORD_BM_MIN ((LVNV_StatusWord_bm)0)
7570+/**
7571+* @def LVNV_STATUSWORD_BM_MAX
7572+* Maximal value for LVNV_StatusWord_bm
7573+* @see LVNV_StatusWord_bm
7574+*/
7575+#define LVNV_STATUS_LOST_BEAM_FORMAX ((LVNV_StatusWord_bm)1)
7576+#define LVNV_STATUS_MIC_COV_FORMAX ((LVNV_StatusWord_bm)2)
7577+#define LVNV_STATUS_FSB_UPDATE_FORMAX ((LVNV_StatusWord_bm)4)
7578+#define LVNV_STATUS_BEAM_DAMAGE_FORMAX ((LVNV_StatusWord_bm)8)
7579+#define LVNV_STATUS_GSC_UPDATE_FORMAX ((LVNV_StatusWord_bm)16)
7580+#define LVNV_STATUS_DNNS_WBEAM_FORMAX ((LVNV_StatusWord_bm)32)
7581+#define LVNV_STATUS_DNNS_ACTIVITY_FORMAX ((LVNV_StatusWord_bm)64)
7582+#define LVNV_STATUS_CAL_MICPOW_FORMAX ((LVNV_StatusWord_bm)128)
7583+#define LVNV_STATUS_MICPOWSP_FORMAX ((LVNV_StatusWord_bm)256)
7584+#define LVNV_STATUS_BROADSIDE_FLAG_FORMAX ((LVNV_StatusWord_bm)512)
7585+#define LVNV_STATUS_CAL_UPDATED_FORMAX ((LVNV_StatusWord_bm)1024)
7586+#define LVNV_STATUS_WBEAM_FIX_FORMAX ((LVNV_StatusWord_bm)2048)
7587+#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))
7588+/**
7589+<table border>
7590+ <tr>
7591+ <td><b>Name</b></td>
7592+ <td><b>Value</b></td>
7593+ <td><b>Description</b></td>
7594+ </tr>
7595+ <tr>
7596+ <td>@ref LVHF_CONTROL_TUNE_PATHCHANGE</td>
7597+ <td>1</td>
7598+ <td>PCD tuning beep</td>
7599+ </tr>
7600+ <tr>
7601+ <td>@ref LVHF_CONTROL_TUNE_CLIP</td>
7602+ <td>2</td>
7603+ <td>SPDET_x_clip tuning beep</td>
7604+ </tr>
7605+ <tr>
7606+ <td>@ref LVHF_CONTROL_TUNE_FAR_SPEAKS</td>
7607+ <td>4</td>
7608+ <td>SPDET_far tuning beep</td>
7609+ </tr>
7610+ <tr>
7611+ <td>@ref LVHF_CONTROL_TUNE_MIC_SPEAKS</td>
7612+ <td>8</td>
7613+ <td>SPDET_mic tuning beep</td>
7614+ </tr>
7615+ <tr>
7616+ <td>@ref LVHF_CONTROL_TUNE_HB_MUTE</td>
7617+ <td>16</td>
7618+ <td>Mute high band (4kHz-8kHz). Should be disabled by default.</td>
7619+ </tr>
7620+ <tr>
7621+ <td>@ref LVHF_CONTROL_TUNE_TB_MUTE</td>
7622+ <td>32</td>
7623+ <td>Mute top band (above 8kHz). Should be disabled by default.</td>
7624+ </tr>
7625+</table> */
7626+typedef LVM_UINT16 LVHF_TuningModeWord;
7627+/**
7628+* @def LVHF_CONTROL_TUNE_PATHCHANGE
7629+* PCD tuning beep
7630+* @see LVHF_TuningModeWord
7631+*/
7632+#define LVHF_CONTROL_TUNE_PATHCHANGE ((LVHF_TuningModeWord)1)
7633+/**
7634+* @def LVHF_CONTROL_TUNE_CLIP
7635+* SPDET_x_clip tuning beep
7636+* @see LVHF_TuningModeWord
7637+*/
7638+#define LVHF_CONTROL_TUNE_CLIP ((LVHF_TuningModeWord)2)
7639+/**
7640+* @def LVHF_CONTROL_TUNE_FAR_SPEAKS
7641+* SPDET_far tuning beep
7642+* @see LVHF_TuningModeWord
7643+*/
7644+#define LVHF_CONTROL_TUNE_FAR_SPEAKS ((LVHF_TuningModeWord)4)
7645+/**
7646+* @def LVHF_CONTROL_TUNE_MIC_SPEAKS
7647+* SPDET_mic tuning beep
7648+* @see LVHF_TuningModeWord
7649+*/
7650+#define LVHF_CONTROL_TUNE_MIC_SPEAKS ((LVHF_TuningModeWord)8)
7651+/**
7652+* @def LVHF_CONTROL_TUNE_HB_MUTE
7653+* Mute high band (4kHz-8kHz). Should be disabled by default.
7654+* @see LVHF_TuningModeWord
7655+*/
7656+#define LVHF_CONTROL_TUNE_HB_MUTE ((LVHF_TuningModeWord)16)
7657+/**
7658+* @def LVHF_CONTROL_TUNE_TB_MUTE
7659+* Mute top band (above 8kHz). Should be disabled by default.
7660+* @see LVHF_TuningModeWord
7661+*/
7662+#define LVHF_CONTROL_TUNE_TB_MUTE ((LVHF_TuningModeWord)32)
7663+/**
7664+* @def LVHF_TUNINGMODEWORD_MIN
7665+* Minimal value for LVHF_TuningModeWord
7666+* @see LVHF_TuningModeWord
7667+*/
7668+#define LVHF_TUNINGMODEWORD_MIN ((LVHF_TuningModeWord)0)
7669+/**
7670+* @def LVHF_TUNINGMODEWORD_MAX
7671+* Maximal value for LVHF_TuningModeWord
7672+* @see LVHF_TuningModeWord
7673+*/
7674+#define LVHF_CONTROL_TUNE_PATHCHANGE_FORMAX ((LVHF_TuningModeWord)1)
7675+#define LVHF_CONTROL_TUNE_CLIP_FORMAX ((LVHF_TuningModeWord)2)
7676+#define LVHF_CONTROL_TUNE_FAR_SPEAKS_FORMAX ((LVHF_TuningModeWord)4)
7677+#define LVHF_CONTROL_TUNE_MIC_SPEAKS_FORMAX ((LVHF_TuningModeWord)8)
7678+#define LVHF_CONTROL_TUNE_HB_MUTE_FORMAX ((LVHF_TuningModeWord)16)
7679+#define LVHF_CONTROL_TUNE_TB_MUTE_FORMAX ((LVHF_TuningModeWord)32)
7680+#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))
7681+/**
7682+<table border>
7683+ <tr>
7684+ <td><b>Name</b></td>
7685+ <td><b>Value</b></td>
7686+ <td><b>Description</b></td>
7687+ </tr>
7688+ <tr>
7689+ <td>@ref LVHF_MODE_NLMS</td>
7690+ <td>1</td>
7691+ <td>NLMS functionality</td>
7692+ </tr>
7693+ <tr>
7694+ <td>@ref LVHF_MODE_DES</td>
7695+ <td>2</td>
7696+ <td>DES (Dynamic Echo Suppression)</td>
7697+ </tr>
7698+ <tr>
7699+ <td>@ref LVHF_MODE_NS</td>
7700+ <td>4</td>
7701+ <td>NS (Noise Suppression)</td>
7702+ </tr>
7703+ <tr>
7704+ <td>@ref LVHF_MODE_CNI</td>
7705+ <td>8</td>
7706+ <td>CNI (Comfort Noise Injection)</td>
7707+ </tr>
7708+ <tr>
7709+ <td>@ref LVHF_MODE_NLES</td>
7710+ <td>16</td>
7711+ <td>NLES (Non Linear Echo Suppression)</td>
7712+ </tr>
7713+ <tr>
7714+ <td>@ref LVHF_MODE_PCD_DT</td>
7715+ <td>64</td>
7716+ <td>DT (Double Talk) protection after PCD</td>
7717+ </tr>
7718+ <tr>
7719+ <td>@ref LVHF_MODE_PCD</td>
7720+ <td>128</td>
7721+ <td>PCD (Path Change Detector)</td>
7722+ </tr>
7723+ <tr>
7724+ <td>@ref LVHF_MODE_INIT_ES</td>
7725+ <td>256</td>
7726+ <td>Initial echo suppression setting by PCD_gamma_e_rescue</td>
7727+ </tr>
7728+ <tr>
7729+ <td>@ref LVHF_MODE_HS</td>
7730+ <td>512</td>
7731+ <td>HornSuppression (if available)</td>
7732+ </tr>
7733+ <tr>
7734+ <td>@ref LVHF_MODE_PRENLMS</td>
7735+ <td>4096</td>
7736+ <td>Pre-NLMS preprocessing</td>
7737+ </tr>
7738+</table> */
7739+typedef LVM_UINT16 LVHF_ModeWord_bm;
7740+/**
7741+* @def LVHF_MODE_NLMS
7742+* NLMS functionality
7743+* @see LVHF_ModeWord_bm
7744+*/
7745+#define LVHF_MODE_NLMS ((LVHF_ModeWord_bm)1)
7746+/**
7747+* @def LVHF_MODE_DES
7748+* DES (Dynamic Echo Suppression)
7749+* @see LVHF_ModeWord_bm
7750+*/
7751+#define LVHF_MODE_DES ((LVHF_ModeWord_bm)2)
7752+/**
7753+* @def LVHF_MODE_NS
7754+* NS (Noise Suppression)
7755+* @see LVHF_ModeWord_bm
7756+*/
7757+#define LVHF_MODE_NS ((LVHF_ModeWord_bm)4)
7758+/**
7759+* @def LVHF_MODE_CNI
7760+* CNI (Comfort Noise Injection)
7761+* @see LVHF_ModeWord_bm
7762+*/
7763+#define LVHF_MODE_CNI ((LVHF_ModeWord_bm)8)
7764+/**
7765+* @def LVHF_MODE_NLES
7766+* NLES (Non Linear Echo Suppression)
7767+* @see LVHF_ModeWord_bm
7768+*/
7769+#define LVHF_MODE_NLES ((LVHF_ModeWord_bm)16)
7770+/**
7771+* @def LVHF_MODE_PCD_DT
7772+* DT (Double Talk) protection after PCD
7773+* @see LVHF_ModeWord_bm
7774+*/
7775+#define LVHF_MODE_PCD_DT ((LVHF_ModeWord_bm)64)
7776+/**
7777+* @def LVHF_MODE_PCD
7778+* PCD (Path Change Detector)
7779+* @see LVHF_ModeWord_bm
7780+*/
7781+#define LVHF_MODE_PCD ((LVHF_ModeWord_bm)128)
7782+/**
7783+* @def LVHF_MODE_INIT_ES
7784+* Initial echo suppression setting by PCD_gamma_e_rescue
7785+* @see LVHF_ModeWord_bm
7786+*/
7787+#define LVHF_MODE_INIT_ES ((LVHF_ModeWord_bm)256)
7788+/**
7789+* @def LVHF_MODE_HS
7790+* HornSuppression (if available)
7791+* @see LVHF_ModeWord_bm
7792+*/
7793+#define LVHF_MODE_HS ((LVHF_ModeWord_bm)512)
7794+/**
7795+* @def LVHF_MODE_PRENLMS
7796+* Pre-NLMS preprocessing
7797+* @see LVHF_ModeWord_bm
7798+*/
7799+#define LVHF_MODE_PRENLMS ((LVHF_ModeWord_bm)4096)
7800+/**
7801+* @def LVHF_MODEWORD_BM_MIN
7802+* Minimal value for LVHF_ModeWord_bm
7803+* @see LVHF_ModeWord_bm
7804+*/
7805+#define LVHF_MODEWORD_BM_MIN ((LVHF_ModeWord_bm)0)
7806+/**
7807+* @def LVHF_MODEWORD_BM_MAX
7808+* Maximal value for LVHF_ModeWord_bm
7809+* @see LVHF_ModeWord_bm
7810+*/
7811+#define LVHF_MODE_NLMS_FORMAX ((LVHF_ModeWord_bm)1)
7812+#define LVHF_MODE_DES_FORMAX ((LVHF_ModeWord_bm)2)
7813+#define LVHF_MODE_NS_FORMAX ((LVHF_ModeWord_bm)4)
7814+#define LVHF_MODE_CNI_FORMAX ((LVHF_ModeWord_bm)8)
7815+#define LVHF_MODE_NLES_FORMAX ((LVHF_ModeWord_bm)16)
7816+#define LVHF_MODE_PCD_DT_FORMAX ((LVHF_ModeWord_bm)64)
7817+#define LVHF_MODE_PCD_FORMAX ((LVHF_ModeWord_bm)128)
7818+#define LVHF_MODE_INIT_ES_FORMAX ((LVHF_ModeWord_bm)256)
7819+#define LVHF_MODE_HS_FORMAX ((LVHF_ModeWord_bm)512)
7820+#define LVHF_MODE_PRENLMS_FORMAX ((LVHF_ModeWord_bm)4096)
7821+#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))
7822+/**
7823+<table border>
7824+ <tr>
7825+ <td><b>Name</b></td>
7826+ <td><b>Value</b></td>
7827+ <td><b>Description</b></td>
7828+ </tr>
7829+ <tr>
7830+ <td>@ref LVHF_STATUS_FAR_SPEAKS</td>
7831+ <td>1</td>
7832+ <td>FarEnd is speaking</td>
7833+ </tr>
7834+ <tr>
7835+ <td>@ref LVHF_STATUS_FAR_STARTS</td>
7836+ <td>2</td>
7837+ <td>FarEnd starts to speak</td>
7838+ </tr>
7839+ <tr>
7840+ <td>@ref LVHF_STATUS_MIC_SPEAKS</td>
7841+ <td>4</td>
7842+ <td>Mic activity detected</td>
7843+ </tr>
7844+ <tr>
7845+ <td>@ref LVHF_STATUS_CLIP</td>
7846+ <td>8</td>
7847+ <td>Clipping Detected</td>
7848+ </tr>
7849+ <tr>
7850+ <td>@ref LVHF_STATUS_PATHCHANGE</td>
7851+ <td>16</td>
7852+ <td>Path Change detected</td>
7853+ </tr>
7854+</table> */
7855+typedef LVM_UINT16 LVHF_StatusWord_bm;
7856+/**
7857+* @def LVHF_STATUS_FAR_SPEAKS
7858+* FarEnd is speaking
7859+* @see LVHF_StatusWord_bm
7860+*/
7861+#define LVHF_STATUS_FAR_SPEAKS ((LVHF_StatusWord_bm)1)
7862+/**
7863+* @def LVHF_STATUS_FAR_STARTS
7864+* FarEnd starts to speak
7865+* @see LVHF_StatusWord_bm
7866+*/
7867+#define LVHF_STATUS_FAR_STARTS ((LVHF_StatusWord_bm)2)
7868+/**
7869+* @def LVHF_STATUS_MIC_SPEAKS
7870+* Mic activity detected
7871+* @see LVHF_StatusWord_bm
7872+*/
7873+#define LVHF_STATUS_MIC_SPEAKS ((LVHF_StatusWord_bm)4)
7874+/**
7875+* @def LVHF_STATUS_CLIP
7876+* Clipping Detected
7877+* @see LVHF_StatusWord_bm
7878+*/
7879+#define LVHF_STATUS_CLIP ((LVHF_StatusWord_bm)8)
7880+/**
7881+* @def LVHF_STATUS_PATHCHANGE
7882+* Path Change detected
7883+* @see LVHF_StatusWord_bm
7884+*/
7885+#define LVHF_STATUS_PATHCHANGE ((LVHF_StatusWord_bm)16)
7886+/**
7887+* @def LVHF_STATUSWORD_BM_MIN
7888+* Minimal value for LVHF_StatusWord_bm
7889+* @see LVHF_StatusWord_bm
7890+*/
7891+#define LVHF_STATUSWORD_BM_MIN ((LVHF_StatusWord_bm)0)
7892+/**
7893+* @def LVHF_STATUSWORD_BM_MAX
7894+* Maximal value for LVHF_StatusWord_bm
7895+* @see LVHF_StatusWord_bm
7896+*/
7897+#define LVHF_STATUS_FAR_SPEAKS_FORMAX ((LVHF_StatusWord_bm)1)
7898+#define LVHF_STATUS_FAR_STARTS_FORMAX ((LVHF_StatusWord_bm)2)
7899+#define LVHF_STATUS_MIC_SPEAKS_FORMAX ((LVHF_StatusWord_bm)4)
7900+#define LVHF_STATUS_CLIP_FORMAX ((LVHF_StatusWord_bm)8)
7901+#define LVHF_STATUS_PATHCHANGE_FORMAX ((LVHF_StatusWord_bm)16)
7902+#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))
7903+
7904+#define LVVIDHEADER_LVVE_RX_MASK1_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVIDHeader_LVVE_Rx_Mask1_bm in LVWireFormat.
7905+
7906+#define LVVIDHEADER_LVVE_RX_MASK2_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVIDHeader_LVVE_Rx_Mask2_bm in LVWireFormat.
7907+
7908+#define LVVIDHEADER_LVVE_TX_MASK1_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVIDHeader_LVVE_Tx_Mask1_bm in LVWireFormat.
7909+
7910+#define LVVIDHEADER_LVVE_TX_MASK2_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVIDHeader_LVVE_Tx_Mask2_bm in LVWireFormat.
7911+
7912+#define LVVIDHEADER_CONFIGURATIONS_MASK1_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVIDHeader_Configurations_Mask1_bm in LVWireFormat.
7913+
7914+#define LVVIDHEADER_CONFIGURATIONS_MASK2_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVIDHeader_Configurations_Mask2_bm in LVWireFormat.
7915+
7916+#define LVVC_MODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVC_ModeWord_bm in LVWireFormat.
7917+
7918+#define LVFENS_MODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVFENS_ModeWord_bm in LVWireFormat.
7919+
7920+#define LVWM_MODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVWM_ModeWord_bm in LVWireFormat.
7921+
7922+#define LVNV_MODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVNV_ModeWord_bm in LVWireFormat.
7923+
7924+#define LVNV_MODE2WORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVNV_Mode2Word_bm in LVWireFormat.
7925+
7926+#define LVNV_TUNINGMODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVNV_TuningModeWord_bm in LVWireFormat.
7927+
7928+#define LVNV_STATUSWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVNV_StatusWord_bm in LVWireFormat.
7929+
7930+#define LVHF_TUNINGMODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVHF_TuningModeWord in LVWireFormat.
7931+
7932+#define LVHF_MODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVHF_ModeWord_bm in LVWireFormat.
7933+
7934+#define LVHF_STATUSWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVHF_StatusWord_bm in LVWireFormat.
7935+
7936+#define LVM_MODE_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVM_Mode_en in LVWireFormat.
7937+
7938+#define LVM_CONFIG_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVM_Config_en in LVWireFormat.
7939+
7940+#define LVM_FS_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVM_Fs_en in LVWireFormat.
7941+
7942+#define LVVIDHEADER_MESSAGEID_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVVIDHeader_MessageID_en in LVWireFormat.
7943+
7944+#define LVVIDHEADER_RETURNSTATUS_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVVIDHeader_ReturnStatus_en in LVWireFormat.
7945+
7946+#define LVVE_RX_MODE_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVVE_Rx_Mode_en in LVWireFormat.
7947+
7948+#define LVVE_TX_MODE_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVVE_Tx_Mode_en in LVWireFormat.
7949+
7950+#define LVVIDHEADER_CONTROLPARAMS_LVWIREFORMAT_LENGTH (7 \
7951+ + LVVIDHEADER_LVVE_RX_MASK1_LVWIREFORMAT_LENGTH \
7952+ + LVVIDHEADER_LVVE_RX_MASK2_LVWIREFORMAT_LENGTH \
7953+ + LVVIDHEADER_LVVE_TX_MASK1_LVWIREFORMAT_LENGTH \
7954+ + LVVIDHEADER_LVVE_TX_MASK2_LVWIREFORMAT_LENGTH \
7955+ + LVVIDHEADER_CONFIGURATIONS_MASK1_LVWIREFORMAT_LENGTH \
7956+ + LVVIDHEADER_CONFIGURATIONS_MASK2_LVWIREFORMAT_LENGTH \
7957+ + LVVIDHEADER_MESSAGEID_LVWIREFORMAT_LENGTH \
7958+ + LVM_FS_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVVIDHeader ControlParameters in LVWireFormat.
7959+
7960+#define LVVC_CONTROLPARAMS_LVWIREFORMAT_LENGTH (22 \
7961+ + LVM_MODE_LVWIREFORMAT_LENGTH \
7962+ + LVVC_MODEWORD_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVVC ControlParameters in LVWireFormat.
7963+
7964+#define LVFENS_CONTROLPARAMS_LVWIREFORMAT_LENGTH (2 \
7965+ + LVM_MODE_LVWIREFORMAT_LENGTH \
7966+ + LVFENS_MODEWORD_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVFENS ControlParameters in LVWireFormat.
7967+
7968+#define LVWM_CONTROLPARAMS_LVWIREFORMAT_LENGTH (14 \
7969+ + LVM_MODE_LVWIREFORMAT_LENGTH \
7970+ + LVWM_MODEWORD_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVWM ControlParameters in LVWireFormat.
7971+
7972+#define LVDRC_CONTROLPARAMS_LVWIREFORMAT_LENGTH (28 \
7973+ + LVM_MODE_LVWIREFORMAT_LENGTH \
7974+ + LVM_MODE_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVDRC ControlParameters in LVWireFormat.
7975+
7976+#define LVNG_CONTROLPARAMS_LVWIREFORMAT_LENGTH (26 \
7977+ + LVM_MODE_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVNG ControlParameters in LVWireFormat.
7978+
7979+#define LVNLPP_CONTROLPARAMS_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode LVNLPP ControlParameters in LVWireFormat.
7980+
7981+#define LVEQ_CONTROLPARAMS_LVWIREFORMAT_LENGTH (130) ///< Number of bytes to encode LVEQ ControlParameters in LVWireFormat.
7982+
7983+#define LVVOL_CONTROLPARAMS_LVWIREFORMAT_LENGTH (2 \
7984+ + LVM_MODE_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVVOL ControlParameters in LVWireFormat.
7985+
7986+#define LVHPF_CONTROLPARAMS_LVWIREFORMAT_LENGTH (2 \
7987+ + LVM_MODE_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVHPF ControlParameters in LVWireFormat.
7988+
7989+#define LVMUTE_CONTROLPARAMS_LVWIREFORMAT_LENGTH (LVM_MODE_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVMUTE ControlParameters in LVWireFormat.
7990+
7991+#define LVVE_RX_CONTROLPARAMS_LVWIREFORMAT_LENGTH (4 \
7992+ + LVVE_RX_MODE_LVWIREFORMAT_LENGTH \
7993+ + LVM_MODE_LVWIREFORMAT_LENGTH \
7994+ + LVM_MODE_LVWIREFORMAT_LENGTH \
7995+ + LVFENS_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
7996+ + LVM_MODE_LVWIREFORMAT_LENGTH \
7997+ + LVNLPP_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
7998+ + LVVC_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
7999+ + LVM_MODE_LVWIREFORMAT_LENGTH \
8000+ + LVEQ_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
8001+ + LVDRC_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
8002+ + LVM_MODE_LVWIREFORMAT_LENGTH \
8003+ + LVWM_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
8004+ + LVNG_CONTROLPARAMS_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVVE_Rx ControlParameters in LVWireFormat.
8005+
8006+#define LVNV_CONTROLPARAMS_LVWIREFORMAT_LENGTH (122 \
8007+ + LVM_MODE_LVWIREFORMAT_LENGTH \
8008+ + LVNV_MODEWORD_LVWIREFORMAT_LENGTH \
8009+ + LVNV_MODE2WORD_LVWIREFORMAT_LENGTH \
8010+ + LVNV_TUNINGMODEWORD_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVNV ControlParameters in LVWireFormat.
8011+
8012+#define LVHF_CONTROLPARAMS_LVWIREFORMAT_LENGTH (78 \
8013+ + LVM_MODE_LVWIREFORMAT_LENGTH \
8014+ + LVHF_MODEWORD_LVWIREFORMAT_LENGTH \
8015+ + LVHF_TUNINGMODEWORD_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVHF ControlParameters in LVWireFormat.
8016+
8017+#define LVBD_CONTROLPARAMS_LVWIREFORMAT_LENGTH (4 \
8018+ + LVM_MODE_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVBD ControlParameters in LVWireFormat.
8019+
8020+#define LVVE_TX_CONTROLPARAMS_LVWIREFORMAT_LENGTH (8 \
8021+ + LVVE_TX_MODE_LVWIREFORMAT_LENGTH \
8022+ + LVM_MODE_LVWIREFORMAT_LENGTH \
8023+ + LVM_MODE_LVWIREFORMAT_LENGTH \
8024+ + LVM_MODE_LVWIREFORMAT_LENGTH \
8025+ + LVM_MODE_LVWIREFORMAT_LENGTH \
8026+ + LVHF_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
8027+ + LVNV_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
8028+ + LVWM_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
8029+ + LVM_MODE_LVWIREFORMAT_LENGTH \
8030+ + LVEQ_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
8031+ + LVDRC_CONTROLPARAMS_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVVE_Tx ControlParameters in LVWireFormat.
8032+
8033+/**
8034+* @def LVVIDHEADER_HEADERVERSION_DEFAULT
8035+* Default of HeaderVersion
8036+* @see LVVIDHeader_ControlParams_st
8037+*/
8038+#define LVVIDHEADER_HEADERVERSION_DEFAULT (3)
8039+/**
8040+* @def LVVIDHEADER_HEADERVERSION_MIN
8041+* MinValue of HeaderVersion
8042+* @see LVVIDHeader_ControlParams_st
8043+*/
8044+#define LVVIDHEADER_HEADERVERSION_MIN (0)
8045+/**
8046+* @def LVVIDHEADER_HEADERVERSION_MAX
8047+* MaxValue of HeaderVersion
8048+* @see LVVIDHeader_ControlParams_st
8049+*/
8050+#define LVVIDHEADER_HEADERVERSION_MAX (255)
8051+
8052+/**
8053+* @def LVVIDHEADER_BASELINEVERSION_DEFAULT
8054+* Default of BaselineVersion
8055+* @see LVVIDHeader_ControlParams_st
8056+*/
8057+#define LVVIDHEADER_BASELINEVERSION_DEFAULT (51906816)
8058+/**
8059+* @def LVVIDHEADER_BASELINEVERSION_MIN
8060+* MinValue of BaselineVersion
8061+* @see LVVIDHeader_ControlParams_st
8062+*/
8063+#define LVVIDHEADER_BASELINEVERSION_MIN (1)
8064+/**
8065+* @def LVVIDHEADER_BASELINEVERSION_MAX
8066+* MaxValue of BaselineVersion
8067+* @see LVVIDHeader_ControlParams_st
8068+*/
8069+#define LVVIDHEADER_BASELINEVERSION_MAX (4294967295)
8070+
8071+/**
8072+* @def LVVIDHEADER_LVVE_RX_ALGOMASK1_DEFAULT
8073+* Default of LVVE_Rx_AlgoMask1
8074+* @see LVVIDHeader_ControlParams_st
8075+*/
8076+#define LVVIDHEADER_LVVE_RX_ALGOMASK1_DEFAULT (LVVIDHEADER_LVVE_RX_MASK1_BM_MAX)
8077+
8078+/**
8079+* @def LVVIDHEADER_LVVE_RX_ALGOMASK2_DEFAULT
8080+* Default of LVVE_Rx_AlgoMask2
8081+* @see LVVIDHeader_ControlParams_st
8082+*/
8083+#define LVVIDHEADER_LVVE_RX_ALGOMASK2_DEFAULT (LVVIDHEADER_LVVE_RX_MASK2_BM_MAX)
8084+
8085+/**
8086+* @def LVVIDHEADER_LVVE_TX_ALGOMASK1_DEFAULT
8087+* Default of LVVE_Tx_AlgoMask1
8088+* @see LVVIDHeader_ControlParams_st
8089+*/
8090+#define LVVIDHEADER_LVVE_TX_ALGOMASK1_DEFAULT (LVVIDHEADER_LVVE_TX_MASK1_BM_MAX)
8091+
8092+/**
8093+* @def LVVIDHEADER_LVVE_TX_ALGOMASK2_DEFAULT
8094+* Default of LVVE_Tx_AlgoMask2
8095+* @see LVVIDHeader_ControlParams_st
8096+*/
8097+#define LVVIDHEADER_LVVE_TX_ALGOMASK2_DEFAULT (LVVIDHEADER_LVVE_TX_MASK2_BM_MAX)
8098+
8099+/**
8100+* @def LVVIDHEADER_LVVE_CONFIG_ALGOMASK1_DEFAULT
8101+* Default of LVVE_Config_AlgoMask1
8102+* @see LVVIDHeader_ControlParams_st
8103+*/
8104+#define LVVIDHEADER_LVVE_CONFIG_ALGOMASK1_DEFAULT (LVVIDHEADER_CONFIGURATIONS_MASK1_BM_MAX)
8105+
8106+/**
8107+* @def LVVIDHEADER_LVVE_CONFIG_ALGOMASK2_DEFAULT
8108+* Default of LVVE_Config_AlgoMask2
8109+* @see LVVIDHeader_ControlParams_st
8110+*/
8111+#define LVVIDHEADER_LVVE_CONFIG_ALGOMASK2_DEFAULT (LVVIDHEADER_CONFIGURATIONS_MASK2_BM_MAX)
8112+
8113+/**
8114+* @def LVVIDHEADER_MESSAGEID_DEFAULT
8115+* Default of MessageID
8116+* @see LVVIDHeader_ControlParams_st
8117+*/
8118+#define LVVIDHEADER_MESSAGEID_DEFAULT (LVVE_RX_PRESET)
8119+
8120+/**
8121+* @def LVVIDHEADER_SAMPLERATE_DEFAULT
8122+* Default of SampleRate
8123+* @see LVVIDHeader_ControlParams_st
8124+*/
8125+#define LVVIDHEADER_SAMPLERATE_DEFAULT (LVM_FS_8000)
8126+
8127+/**
8128+* @def LVVIDHEADER_VOLUMEINDEX_DEFAULT
8129+* Default of VolumeIndex
8130+* @see LVVIDHeader_ControlParams_st
8131+*/
8132+#define LVVIDHEADER_VOLUMEINDEX_DEFAULT (0)
8133+/**
8134+* @def LVVIDHEADER_VOLUMEINDEX_MIN
8135+* MinValue of VolumeIndex
8136+* @see LVVIDHeader_ControlParams_st
8137+*/
8138+#define LVVIDHEADER_VOLUMEINDEX_MIN (0)
8139+/**
8140+* @def LVVIDHEADER_VOLUMEINDEX_MAX
8141+* MaxValue of VolumeIndex
8142+* @see LVVIDHeader_ControlParams_st
8143+*/
8144+#define LVVIDHEADER_VOLUMEINDEX_MAX (255)
8145+
8146+/**
8147+* @def LVVIDHEADER_NUMVOLUMES_DEFAULT
8148+* Default of NumVolumes
8149+* @see LVVIDHeader_ControlParams_st
8150+*/
8151+#define LVVIDHEADER_NUMVOLUMES_DEFAULT (1)
8152+/**
8153+* @def LVVIDHEADER_NUMVOLUMES_MIN
8154+* MinValue of NumVolumes
8155+* @see LVVIDHeader_ControlParams_st
8156+*/
8157+#define LVVIDHEADER_NUMVOLUMES_MIN (0)
8158+/**
8159+* @def LVVIDHEADER_NUMVOLUMES_MAX
8160+* MaxValue of NumVolumes
8161+* @see LVVIDHeader_ControlParams_st
8162+*/
8163+#define LVVIDHEADER_NUMVOLUMES_MAX (255)
8164+
8165+/**
8166+* @def LVVC_OPERATINGMODE_DEFAULT
8167+* Default of OperatingMode
8168+* @see LVVC_ControlParams_st
8169+*/
8170+#define LVVC_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
8171+
8172+/**
8173+* @def LVVC_MODE_DEFAULT
8174+* Default of mode
8175+* @see LVVC_ControlParams_st
8176+*/
8177+#define LVVC_MODE_DEFAULT (0)
8178+
8179+/**
8180+* @def LVVC_GAIN_LIN_MAX_DEFAULT
8181+* Default of Gain_Lin_Max
8182+* @see LVVC_ControlParams_st
8183+*/
8184+#define LVVC_GAIN_LIN_MAX_DEFAULT (1286)
8185+/**
8186+* @def LVVC_GAIN_LIN_MAX_MIN
8187+* MinValue of Gain_Lin_Max
8188+* @see LVVC_ControlParams_st
8189+*/
8190+#define LVVC_GAIN_LIN_MAX_MIN (512)
8191+/**
8192+* @def LVVC_GAIN_LIN_MAX_MAX
8193+* MaxValue of Gain_Lin_Max
8194+* @see LVVC_ControlParams_st
8195+*/
8196+#define LVVC_GAIN_LIN_MAX_MAX (32767)
8197+
8198+/**
8199+* @def LVVC_NOISE_SENSITIVITY_DEFAULT
8200+* Default of Noise_Sensitivity
8201+* @see LVVC_ControlParams_st
8202+*/
8203+#define LVVC_NOISE_SENSITIVITY_DEFAULT (20000)
8204+/**
8205+* @def LVVC_NOISE_SENSITIVITY_MIN
8206+* MinValue of Noise_Sensitivity
8207+* @see LVVC_ControlParams_st
8208+*/
8209+#define LVVC_NOISE_SENSITIVITY_MIN (-6709)
8210+/**
8211+* @def LVVC_NOISE_SENSITIVITY_MAX
8212+* MaxValue of Noise_Sensitivity
8213+* @see LVVC_ControlParams_st
8214+*/
8215+#define LVVC_NOISE_SENSITIVITY_MAX (32767)
8216+
8217+/**
8218+* @def LVVC_AVL_TARGET_LEVEL_LIN_DEFAULT
8219+* Default of AVL_Target_level_lin
8220+* @see LVVC_ControlParams_st
8221+*/
8222+#define LVVC_AVL_TARGET_LEVEL_LIN_DEFAULT (16384)
8223+/**
8224+* @def LVVC_AVL_TARGET_LEVEL_LIN_MIN
8225+* MinValue of AVL_Target_level_lin
8226+* @see LVVC_ControlParams_st
8227+*/
8228+#define LVVC_AVL_TARGET_LEVEL_LIN_MIN (0)
8229+/**
8230+* @def LVVC_AVL_TARGET_LEVEL_LIN_MAX
8231+* MaxValue of AVL_Target_level_lin
8232+* @see LVVC_ControlParams_st
8233+*/
8234+#define LVVC_AVL_TARGET_LEVEL_LIN_MAX (32767)
8235+
8236+/**
8237+* @def LVVC_AVL_MINGAINLIN_DEFAULT
8238+* Default of AVL_MinGainLin
8239+* @see LVVC_ControlParams_st
8240+*/
8241+#define LVVC_AVL_MINGAINLIN_DEFAULT (256)
8242+/**
8243+* @def LVVC_AVL_MINGAINLIN_MIN
8244+* MinValue of AVL_MinGainLin
8245+* @see LVVC_ControlParams_st
8246+*/
8247+#define LVVC_AVL_MINGAINLIN_MIN (0)
8248+/**
8249+* @def LVVC_AVL_MINGAINLIN_MAX
8250+* MaxValue of AVL_MinGainLin
8251+* @see LVVC_ControlParams_st
8252+*/
8253+#define LVVC_AVL_MINGAINLIN_MAX (512)
8254+
8255+/**
8256+* @def LVVC_AVL_MAXGAINLIN_DEFAULT
8257+* Default of AVL_MaxGainLin
8258+* @see LVVC_ControlParams_st
8259+*/
8260+#define LVVC_AVL_MAXGAINLIN_DEFAULT (8192)
8261+/**
8262+* @def LVVC_AVL_MAXGAINLIN_MIN
8263+* MinValue of AVL_MaxGainLin
8264+* @see LVVC_ControlParams_st
8265+*/
8266+#define LVVC_AVL_MAXGAINLIN_MIN (512)
8267+/**
8268+* @def LVVC_AVL_MAXGAINLIN_MAX
8269+* MaxValue of AVL_MaxGainLin
8270+* @see LVVC_ControlParams_st
8271+*/
8272+#define LVVC_AVL_MAXGAINLIN_MAX (32767)
8273+
8274+/**
8275+* @def LVVC_AVL_NOMINALGAIN_DEFAULT
8276+* Default of AVL_NominalGain
8277+* @see LVVC_ControlParams_st
8278+*/
8279+#define LVVC_AVL_NOMINALGAIN_DEFAULT (512)
8280+/**
8281+* @def LVVC_AVL_NOMINALGAIN_MIN
8282+* MinValue of AVL_NominalGain
8283+* @see LVVC_ControlParams_st
8284+*/
8285+#define LVVC_AVL_NOMINALGAIN_MIN (0)
8286+/**
8287+* @def LVVC_AVL_NOMINALGAIN_MAX
8288+* MaxValue of AVL_NominalGain
8289+* @see LVVC_ControlParams_st
8290+*/
8291+#define LVVC_AVL_NOMINALGAIN_MAX (32767)
8292+
8293+/**
8294+* @def LVVC_AVL_ATTACK_DEFAULT
8295+* Default of AVL_Attack
8296+* @see LVVC_ControlParams_st
8297+*/
8298+#define LVVC_AVL_ATTACK_DEFAULT (12055)
8299+/**
8300+* @def LVVC_AVL_ATTACK_MIN
8301+* MinValue of AVL_Attack
8302+* @see LVVC_ControlParams_st
8303+*/
8304+#define LVVC_AVL_ATTACK_MIN (0)
8305+/**
8306+* @def LVVC_AVL_ATTACK_MAX
8307+* MaxValue of AVL_Attack
8308+* @see LVVC_ControlParams_st
8309+*/
8310+#define LVVC_AVL_ATTACK_MAX (32767)
8311+
8312+/**
8313+* @def LVVC_AVL_RELEASE_DEFAULT
8314+* Default of AVL_Release
8315+* @see LVVC_ControlParams_st
8316+*/
8317+#define LVVC_AVL_RELEASE_DEFAULT (32604)
8318+/**
8319+* @def LVVC_AVL_RELEASE_MIN
8320+* MinValue of AVL_Release
8321+* @see LVVC_ControlParams_st
8322+*/
8323+#define LVVC_AVL_RELEASE_MIN (0)
8324+/**
8325+* @def LVVC_AVL_RELEASE_MAX
8326+* MaxValue of AVL_Release
8327+* @see LVVC_ControlParams_st
8328+*/
8329+#define LVVC_AVL_RELEASE_MAX (32767)
8330+
8331+/**
8332+* @def LVVC_AVL_RELEASEMAX_DEFAULT
8333+* Default of AVL_ReleaseMax
8334+* @see LVVC_ControlParams_st
8335+*/
8336+#define LVVC_AVL_RELEASEMAX_DEFAULT (32441)
8337+/**
8338+* @def LVVC_AVL_RELEASEMAX_MIN
8339+* MinValue of AVL_ReleaseMax
8340+* @see LVVC_ControlParams_st
8341+*/
8342+#define LVVC_AVL_RELEASEMAX_MIN (0)
8343+/**
8344+* @def LVVC_AVL_RELEASEMAX_MAX
8345+* MaxValue of AVL_ReleaseMax
8346+* @see LVVC_ControlParams_st
8347+*/
8348+#define LVVC_AVL_RELEASEMAX_MAX (32767)
8349+
8350+/**
8351+* @def LVVC_AVL_LIMIT_MAXOUTPUTLIN_DEFAULT
8352+* Default of AVL_Limit_MaxOutputLin
8353+* @see LVVC_ControlParams_st
8354+*/
8355+#define LVVC_AVL_LIMIT_MAXOUTPUTLIN_DEFAULT (23170)
8356+/**
8357+* @def LVVC_AVL_LIMIT_MAXOUTPUTLIN_MIN
8358+* MinValue of AVL_Limit_MaxOutputLin
8359+* @see LVVC_ControlParams_st
8360+*/
8361+#define LVVC_AVL_LIMIT_MAXOUTPUTLIN_MIN (0)
8362+/**
8363+* @def LVVC_AVL_LIMIT_MAXOUTPUTLIN_MAX
8364+* MaxValue of AVL_Limit_MaxOutputLin
8365+* @see LVVC_ControlParams_st
8366+*/
8367+#define LVVC_AVL_LIMIT_MAXOUTPUTLIN_MAX (32767)
8368+
8369+/**
8370+* @def LVVC_SPDETECT_THRESHOLD_DEFAULT
8371+* Default of SpDetect_Threshold
8372+* @see LVVC_ControlParams_st
8373+*/
8374+#define LVVC_SPDETECT_THRESHOLD_DEFAULT (1024)
8375+/**
8376+* @def LVVC_SPDETECT_THRESHOLD_MIN
8377+* MinValue of SpDetect_Threshold
8378+* @see LVVC_ControlParams_st
8379+*/
8380+#define LVVC_SPDETECT_THRESHOLD_MIN (0)
8381+/**
8382+* @def LVVC_SPDETECT_THRESHOLD_MAX
8383+* MaxValue of SpDetect_Threshold
8384+* @see LVVC_ControlParams_st
8385+*/
8386+#define LVVC_SPDETECT_THRESHOLD_MAX (32767)
8387+
8388+/**
8389+* @def LVFENS_OPERATINGMODE_DEFAULT
8390+* Default of OperatingMode
8391+* @see LVFENS_ControlParams_st
8392+*/
8393+#define LVFENS_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
8394+
8395+/**
8396+* @def LVFENS_FENS_LIMIT_NS_DEFAULT
8397+* Default of FENS_limit_NS
8398+* @see LVFENS_ControlParams_st
8399+*/
8400+#define LVFENS_FENS_LIMIT_NS_DEFAULT (10976)
8401+/**
8402+* @def LVFENS_FENS_LIMIT_NS_MIN
8403+* MinValue of FENS_limit_NS
8404+* @see LVFENS_ControlParams_st
8405+*/
8406+#define LVFENS_FENS_LIMIT_NS_MIN (0)
8407+/**
8408+* @def LVFENS_FENS_LIMIT_NS_MAX
8409+* MaxValue of FENS_limit_NS
8410+* @see LVFENS_ControlParams_st
8411+*/
8412+#define LVFENS_FENS_LIMIT_NS_MAX (32767)
8413+
8414+/**
8415+* @def LVFENS_MODE_DEFAULT
8416+* Default of Mode
8417+* @see LVFENS_ControlParams_st
8418+*/
8419+#define LVFENS_MODE_DEFAULT (0)
8420+
8421+/**
8422+* @def LVWM_OPERATINGMODE_DEFAULT
8423+* Default of OperatingMode
8424+* @see LVWM_ControlParams_st
8425+*/
8426+#define LVWM_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
8427+
8428+/**
8429+* @def LVWM_MODE_DEFAULT
8430+* Default of mode
8431+* @see LVWM_ControlParams_st
8432+*/
8433+#define LVWM_MODE_DEFAULT (7)
8434+
8435+/**
8436+* @def LVWM_AVL_TARGET_LEVEL_LIN_DEFAULT
8437+* Default of AVL_Target_level_lin
8438+* @see LVWM_ControlParams_st
8439+*/
8440+#define LVWM_AVL_TARGET_LEVEL_LIN_DEFAULT (16384)
8441+/**
8442+* @def LVWM_AVL_TARGET_LEVEL_LIN_MIN
8443+* MinValue of AVL_Target_level_lin
8444+* @see LVWM_ControlParams_st
8445+*/
8446+#define LVWM_AVL_TARGET_LEVEL_LIN_MIN (0)
8447+/**
8448+* @def LVWM_AVL_TARGET_LEVEL_LIN_MAX
8449+* MaxValue of AVL_Target_level_lin
8450+* @see LVWM_ControlParams_st
8451+*/
8452+#define LVWM_AVL_TARGET_LEVEL_LIN_MAX (32767)
8453+
8454+/**
8455+* @def LVWM_AVL_MINGAINLIN_DEFAULT
8456+* Default of AVL_MinGainLin
8457+* @see LVWM_ControlParams_st
8458+*/
8459+#define LVWM_AVL_MINGAINLIN_DEFAULT (128)
8460+/**
8461+* @def LVWM_AVL_MINGAINLIN_MIN
8462+* MinValue of AVL_MinGainLin
8463+* @see LVWM_ControlParams_st
8464+*/
8465+#define LVWM_AVL_MINGAINLIN_MIN (0)
8466+/**
8467+* @def LVWM_AVL_MINGAINLIN_MAX
8468+* MaxValue of AVL_MinGainLin
8469+* @see LVWM_ControlParams_st
8470+*/
8471+#define LVWM_AVL_MINGAINLIN_MAX (512)
8472+
8473+/**
8474+* @def LVWM_AVL_MAXGAINLIN_DEFAULT
8475+* Default of AVL_MaxGainLin
8476+* @see LVWM_ControlParams_st
8477+*/
8478+#define LVWM_AVL_MAXGAINLIN_DEFAULT (8189)
8479+/**
8480+* @def LVWM_AVL_MAXGAINLIN_MIN
8481+* MinValue of AVL_MaxGainLin
8482+* @see LVWM_ControlParams_st
8483+*/
8484+#define LVWM_AVL_MAXGAINLIN_MIN (512)
8485+/**
8486+* @def LVWM_AVL_MAXGAINLIN_MAX
8487+* MaxValue of AVL_MaxGainLin
8488+* @see LVWM_ControlParams_st
8489+*/
8490+#define LVWM_AVL_MAXGAINLIN_MAX (32767)
8491+
8492+/**
8493+* @def LVWM_AVL_ATTACK_DEFAULT
8494+* Default of AVL_Attack
8495+* @see LVWM_ControlParams_st
8496+*/
8497+#define LVWM_AVL_ATTACK_DEFAULT (25520)
8498+/**
8499+* @def LVWM_AVL_ATTACK_MIN
8500+* MinValue of AVL_Attack
8501+* @see LVWM_ControlParams_st
8502+*/
8503+#define LVWM_AVL_ATTACK_MIN (0)
8504+/**
8505+* @def LVWM_AVL_ATTACK_MAX
8506+* MaxValue of AVL_Attack
8507+* @see LVWM_ControlParams_st
8508+*/
8509+#define LVWM_AVL_ATTACK_MAX (32767)
8510+
8511+/**
8512+* @def LVWM_AVL_RELEASE_DEFAULT
8513+* Default of AVL_Release
8514+* @see LVWM_ControlParams_st
8515+*/
8516+#define LVWM_AVL_RELEASE_DEFAULT (32685)
8517+/**
8518+* @def LVWM_AVL_RELEASE_MIN
8519+* MinValue of AVL_Release
8520+* @see LVWM_ControlParams_st
8521+*/
8522+#define LVWM_AVL_RELEASE_MIN (0)
8523+/**
8524+* @def LVWM_AVL_RELEASE_MAX
8525+* MaxValue of AVL_Release
8526+* @see LVWM_ControlParams_st
8527+*/
8528+#define LVWM_AVL_RELEASE_MAX (32767)
8529+
8530+/**
8531+* @def LVWM_AVL_LIMIT_MAXOUTPUTLIN_DEFAULT
8532+* Default of AVL_Limit_MaxOutputLin
8533+* @see LVWM_ControlParams_st
8534+*/
8535+#define LVWM_AVL_LIMIT_MAXOUTPUTLIN_DEFAULT (23197)
8536+/**
8537+* @def LVWM_AVL_LIMIT_MAXOUTPUTLIN_MIN
8538+* MinValue of AVL_Limit_MaxOutputLin
8539+* @see LVWM_ControlParams_st
8540+*/
8541+#define LVWM_AVL_LIMIT_MAXOUTPUTLIN_MIN (0)
8542+/**
8543+* @def LVWM_AVL_LIMIT_MAXOUTPUTLIN_MAX
8544+* MaxValue of AVL_Limit_MaxOutputLin
8545+* @see LVWM_ControlParams_st
8546+*/
8547+#define LVWM_AVL_LIMIT_MAXOUTPUTLIN_MAX (32767)
8548+
8549+/**
8550+* @def LVWM_SPDETECT_THRESHOLD_DEFAULT
8551+* Default of SpDetect_Threshold
8552+* @see LVWM_ControlParams_st
8553+*/
8554+#define LVWM_SPDETECT_THRESHOLD_DEFAULT (9216)
8555+/**
8556+* @def LVWM_SPDETECT_THRESHOLD_MIN
8557+* MinValue of SpDetect_Threshold
8558+* @see LVWM_ControlParams_st
8559+*/
8560+#define LVWM_SPDETECT_THRESHOLD_MIN (0)
8561+/**
8562+* @def LVWM_SPDETECT_THRESHOLD_MAX
8563+* MaxValue of SpDetect_Threshold
8564+* @see LVWM_ControlParams_st
8565+*/
8566+#define LVWM_SPDETECT_THRESHOLD_MAX (32767)
8567+
8568+/**
8569+* @def LVDRC_OPERATINGMODE_DEFAULT
8570+* Default of OperatingMode
8571+* @see LVDRC_ControlParams_st
8572+*/
8573+#define LVDRC_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
8574+
8575+/**
8576+* @def LVDRC_NUMKNEES_DEFAULT
8577+* Default of NumKnees
8578+* @see LVDRC_ControlParams_st
8579+*/
8580+#define LVDRC_NUMKNEES_DEFAULT (5)
8581+/**
8582+* @def LVDRC_NUMKNEES_MIN
8583+* MinValue of NumKnees
8584+* @see LVDRC_ControlParams_st
8585+*/
8586+#define LVDRC_NUMKNEES_MIN (1)
8587+/**
8588+* @def LVDRC_NUMKNEES_MAX
8589+* MaxValue of NumKnees
8590+* @see LVDRC_ControlParams_st
8591+*/
8592+#define LVDRC_NUMKNEES_MAX (5)
8593+
8594+/**
8595+* @def LVDRC_COMPRESSORCURVEINPUTLEVELS_DEFAULT
8596+* Default of CompressorCurveInputLevels
8597+* @see LVDRC_ControlParams_st
8598+*/
8599+#define LVDRC_COMPRESSORCURVEINPUTLEVELS_DEFAULT {-96,-70,-50, -24, 0}
8600+/**
8601+* @def LVDRC_COMPRESSORCURVEINPUTLEVELS_MIN
8602+* MinValue of CompressorCurveInputLevels
8603+* @see LVDRC_ControlParams_st
8604+*/
8605+#define LVDRC_COMPRESSORCURVEINPUTLEVELS_MIN (-96)
8606+/**
8607+* @def LVDRC_COMPRESSORCURVEINPUTLEVELS_MAX
8608+* MaxValue of CompressorCurveInputLevels
8609+* @see LVDRC_ControlParams_st
8610+*/
8611+#define LVDRC_COMPRESSORCURVEINPUTLEVELS_MAX (0)
8612+/**
8613+* @def LVDRC_COMPRESSORCURVEINPUTLEVELS_LENGTH
8614+* Length of CompressorCurveInputLevels
8615+* @see LVDRC_ControlParams_st
8616+*/
8617+#define LVDRC_COMPRESSORCURVEINPUTLEVELS_LENGTH (5)
8618+
8619+/**
8620+* @def LVDRC_COMPRESSORCURVEOUTPUTLEVELS_DEFAULT
8621+* Default of CompressorCurveOutputLevels
8622+* @see LVDRC_ControlParams_st
8623+*/
8624+#define LVDRC_COMPRESSORCURVEOUTPUTLEVELS_DEFAULT {-96,-70,-38,-12,0}
8625+/**
8626+* @def LVDRC_COMPRESSORCURVEOUTPUTLEVELS_MIN
8627+* MinValue of CompressorCurveOutputLevels
8628+* @see LVDRC_ControlParams_st
8629+*/
8630+#define LVDRC_COMPRESSORCURVEOUTPUTLEVELS_MIN (-96)
8631+/**
8632+* @def LVDRC_COMPRESSORCURVEOUTPUTLEVELS_MAX
8633+* MaxValue of CompressorCurveOutputLevels
8634+* @see LVDRC_ControlParams_st
8635+*/
8636+#define LVDRC_COMPRESSORCURVEOUTPUTLEVELS_MAX (0)
8637+/**
8638+* @def LVDRC_COMPRESSORCURVEOUTPUTLEVELS_LENGTH
8639+* Length of CompressorCurveOutputLevels
8640+* @see LVDRC_ControlParams_st
8641+*/
8642+#define LVDRC_COMPRESSORCURVEOUTPUTLEVELS_LENGTH (5)
8643+
8644+/**
8645+* @def LVDRC_ATTACKTIME_DEFAULT
8646+* Default of AttackTime
8647+* @see LVDRC_ControlParams_st
8648+*/
8649+#define LVDRC_ATTACKTIME_DEFAULT (50)
8650+/**
8651+* @def LVDRC_ATTACKTIME_MIN
8652+* MinValue of AttackTime
8653+* @see LVDRC_ControlParams_st
8654+*/
8655+#define LVDRC_ATTACKTIME_MIN (0)
8656+/**
8657+* @def LVDRC_ATTACKTIME_MAX
8658+* MaxValue of AttackTime
8659+* @see LVDRC_ControlParams_st
8660+*/
8661+#define LVDRC_ATTACKTIME_MAX (32767)
8662+
8663+/**
8664+* @def LVDRC_RELEASETIME_DEFAULT
8665+* Default of ReleaseTime
8666+* @see LVDRC_ControlParams_st
8667+*/
8668+#define LVDRC_RELEASETIME_DEFAULT (50)
8669+/**
8670+* @def LVDRC_RELEASETIME_MIN
8671+* MinValue of ReleaseTime
8672+* @see LVDRC_ControlParams_st
8673+*/
8674+#define LVDRC_RELEASETIME_MIN (0)
8675+/**
8676+* @def LVDRC_RELEASETIME_MAX
8677+* MaxValue of ReleaseTime
8678+* @see LVDRC_ControlParams_st
8679+*/
8680+#define LVDRC_RELEASETIME_MAX (32767)
8681+
8682+/**
8683+* @def LVDRC_LIMITEROPERATINGMODE_DEFAULT
8684+* Default of LimiterOperatingMode
8685+* @see LVDRC_ControlParams_st
8686+*/
8687+#define LVDRC_LIMITEROPERATINGMODE_DEFAULT (LVM_MODE_OFF)
8688+
8689+/**
8690+* @def LVDRC_LIMITLEVEL_DEFAULT
8691+* Default of LimitLevel
8692+* @see LVDRC_ControlParams_st
8693+*/
8694+#define LVDRC_LIMITLEVEL_DEFAULT (0)
8695+/**
8696+* @def LVDRC_LIMITLEVEL_MIN
8697+* MinValue of LimitLevel
8698+* @see LVDRC_ControlParams_st
8699+*/
8700+#define LVDRC_LIMITLEVEL_MIN (-96)
8701+/**
8702+* @def LVDRC_LIMITLEVEL_MAX
8703+* MaxValue of LimitLevel
8704+* @see LVDRC_ControlParams_st
8705+*/
8706+#define LVDRC_LIMITLEVEL_MAX (0)
8707+
8708+/**
8709+* @def LVNG_OPERATINGMODE_DEFAULT
8710+* Default of OperatingMode
8711+* @see LVNG_ControlParams_st
8712+*/
8713+#define LVNG_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
8714+
8715+/**
8716+* @def LVNG_NUMKNEES_DEFAULT
8717+* Default of NumKnees
8718+* @see LVNG_ControlParams_st
8719+*/
8720+#define LVNG_NUMKNEES_DEFAULT (5)
8721+/**
8722+* @def LVNG_NUMKNEES_MIN
8723+* MinValue of NumKnees
8724+* @see LVNG_ControlParams_st
8725+*/
8726+#define LVNG_NUMKNEES_MIN (1)
8727+/**
8728+* @def LVNG_NUMKNEES_MAX
8729+* MaxValue of NumKnees
8730+* @see LVNG_ControlParams_st
8731+*/
8732+#define LVNG_NUMKNEES_MAX (5)
8733+
8734+/**
8735+* @def LVNG_COMPRESSORCURVEINPUTLEVELS_DEFAULT
8736+* Default of CompressorCurveInputLevels
8737+* @see LVNG_ControlParams_st
8738+*/
8739+#define LVNG_COMPRESSORCURVEINPUTLEVELS_DEFAULT {-80,-70,-50, -24, 0}
8740+/**
8741+* @def LVNG_COMPRESSORCURVEINPUTLEVELS_MIN
8742+* MinValue of CompressorCurveInputLevels
8743+* @see LVNG_ControlParams_st
8744+*/
8745+#define LVNG_COMPRESSORCURVEINPUTLEVELS_MIN (-96)
8746+/**
8747+* @def LVNG_COMPRESSORCURVEINPUTLEVELS_MAX
8748+* MaxValue of CompressorCurveInputLevels
8749+* @see LVNG_ControlParams_st
8750+*/
8751+#define LVNG_COMPRESSORCURVEINPUTLEVELS_MAX (0)
8752+/**
8753+* @def LVNG_COMPRESSORCURVEINPUTLEVELS_LENGTH
8754+* Length of CompressorCurveInputLevels
8755+* @see LVNG_ControlParams_st
8756+*/
8757+#define LVNG_COMPRESSORCURVEINPUTLEVELS_LENGTH (5)
8758+
8759+/**
8760+* @def LVNG_COMPRESSORCURVEOUTPUTLEVELS_DEFAULT
8761+* Default of CompressorCurveOutputLevels
8762+* @see LVNG_ControlParams_st
8763+*/
8764+#define LVNG_COMPRESSORCURVEOUTPUTLEVELS_DEFAULT {-96,-80,-50, -24, 0}
8765+/**
8766+* @def LVNG_COMPRESSORCURVEOUTPUTLEVELS_MIN
8767+* MinValue of CompressorCurveOutputLevels
8768+* @see LVNG_ControlParams_st
8769+*/
8770+#define LVNG_COMPRESSORCURVEOUTPUTLEVELS_MIN (-96)
8771+/**
8772+* @def LVNG_COMPRESSORCURVEOUTPUTLEVELS_MAX
8773+* MaxValue of CompressorCurveOutputLevels
8774+* @see LVNG_ControlParams_st
8775+*/
8776+#define LVNG_COMPRESSORCURVEOUTPUTLEVELS_MAX (0)
8777+/**
8778+* @def LVNG_COMPRESSORCURVEOUTPUTLEVELS_LENGTH
8779+* Length of CompressorCurveOutputLevels
8780+* @see LVNG_ControlParams_st
8781+*/
8782+#define LVNG_COMPRESSORCURVEOUTPUTLEVELS_LENGTH (5)
8783+
8784+/**
8785+* @def LVNG_ATTACKTIME_DEFAULT
8786+* Default of AttackTime
8787+* @see LVNG_ControlParams_st
8788+*/
8789+#define LVNG_ATTACKTIME_DEFAULT (50)
8790+/**
8791+* @def LVNG_ATTACKTIME_MIN
8792+* MinValue of AttackTime
8793+* @see LVNG_ControlParams_st
8794+*/
8795+#define LVNG_ATTACKTIME_MIN (0)
8796+/**
8797+* @def LVNG_ATTACKTIME_MAX
8798+* MaxValue of AttackTime
8799+* @see LVNG_ControlParams_st
8800+*/
8801+#define LVNG_ATTACKTIME_MAX (32767)
8802+
8803+/**
8804+* @def LVNG_RELEASETIME_DEFAULT
8805+* Default of ReleaseTime
8806+* @see LVNG_ControlParams_st
8807+*/
8808+#define LVNG_RELEASETIME_DEFAULT (50)
8809+/**
8810+* @def LVNG_RELEASETIME_MIN
8811+* MinValue of ReleaseTime
8812+* @see LVNG_ControlParams_st
8813+*/
8814+#define LVNG_RELEASETIME_MIN (0)
8815+/**
8816+* @def LVNG_RELEASETIME_MAX
8817+* MaxValue of ReleaseTime
8818+* @see LVNG_ControlParams_st
8819+*/
8820+#define LVNG_RELEASETIME_MAX (32767)
8821+
8822+/**
8823+* @def LVNLPP_NLPP_LIMIT_DEFAULT
8824+* Default of NLPP_Limit
8825+* @see LVNLPP_ControlParams_st
8826+*/
8827+#define LVNLPP_NLPP_LIMIT_DEFAULT (0)
8828+/**
8829+* @def LVNLPP_NLPP_LIMIT_MIN
8830+* MinValue of NLPP_Limit
8831+* @see LVNLPP_ControlParams_st
8832+*/
8833+#define LVNLPP_NLPP_LIMIT_MIN (-24)
8834+/**
8835+* @def LVNLPP_NLPP_LIMIT_MAX
8836+* MaxValue of NLPP_Limit
8837+* @see LVNLPP_ControlParams_st
8838+*/
8839+#define LVNLPP_NLPP_LIMIT_MAX (0)
8840+
8841+/**
8842+* @def LVNLPP_NLPP_HPF_CORNERFREQ_DEFAULT
8843+* Default of NLPP_HPF_CornerFreq
8844+* @see LVNLPP_ControlParams_st
8845+*/
8846+#define LVNLPP_NLPP_HPF_CORNERFREQ_DEFAULT (50)
8847+/**
8848+* @def LVNLPP_NLPP_HPF_CORNERFREQ_MIN
8849+* MinValue of NLPP_HPF_CornerFreq
8850+* @see LVNLPP_ControlParams_st
8851+*/
8852+#define LVNLPP_NLPP_HPF_CORNERFREQ_MIN (50)
8853+/**
8854+* @def LVNLPP_NLPP_HPF_CORNERFREQ_MAX
8855+* MaxValue of NLPP_HPF_CornerFreq
8856+* @see LVNLPP_ControlParams_st
8857+*/
8858+#define LVNLPP_NLPP_HPF_CORNERFREQ_MAX (1000)
8859+
8860+/**
8861+* @def LVEQ_EQ_LENGTH_DEFAULT
8862+* Default of EQ_Length
8863+* @see LVEQ_ControlParams_st
8864+*/
8865+#define LVEQ_EQ_LENGTH_DEFAULT (64)
8866+/**
8867+* @def LVEQ_EQ_LENGTH_MIN
8868+* MinValue of EQ_Length
8869+* @see LVEQ_ControlParams_st
8870+*/
8871+#define LVEQ_EQ_LENGTH_MIN (8)
8872+/**
8873+* @def LVEQ_EQ_LENGTH_MAX
8874+* MaxValue of EQ_Length
8875+* @see LVEQ_ControlParams_st
8876+*/
8877+#define LVEQ_EQ_LENGTH_MAX (64)
8878+
8879+/**
8880+* @def LVEQ_EQ_COEFS_DEFAULT
8881+* Default of EQ_Coefs
8882+* @see LVEQ_ControlParams_st
8883+*/
8884+#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}
8885+/**
8886+* @def LVEQ_EQ_COEFS_MIN
8887+* MinValue of EQ_Coefs
8888+* @see LVEQ_ControlParams_st
8889+*/
8890+#define LVEQ_EQ_COEFS_MIN (-32768)
8891+/**
8892+* @def LVEQ_EQ_COEFS_MAX
8893+* MaxValue of EQ_Coefs
8894+* @see LVEQ_ControlParams_st
8895+*/
8896+#define LVEQ_EQ_COEFS_MAX (32767)
8897+/**
8898+* @def LVEQ_EQ_COEFS_LENGTH
8899+* Length of EQ_Coefs
8900+* @see LVEQ_ControlParams_st
8901+*/
8902+#define LVEQ_EQ_COEFS_LENGTH (64)
8903+
8904+/**
8905+* @def LVVOL_VOL_OPERATINGMODE_DEFAULT
8906+* Default of VOL_OperatingMode
8907+* @see LVVOL_ControlParams_st
8908+*/
8909+#define LVVOL_VOL_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
8910+
8911+/**
8912+* @def LVVOL_VOL_GAIN_DEFAULT
8913+* Default of VOL_Gain
8914+* @see LVVOL_ControlParams_st
8915+*/
8916+#define LVVOL_VOL_GAIN_DEFAULT (0)
8917+/**
8918+* @def LVVOL_VOL_GAIN_MIN
8919+* MinValue of VOL_Gain
8920+* @see LVVOL_ControlParams_st
8921+*/
8922+#define LVVOL_VOL_GAIN_MIN (-96)
8923+/**
8924+* @def LVVOL_VOL_GAIN_MAX
8925+* MaxValue of VOL_Gain
8926+* @see LVVOL_ControlParams_st
8927+*/
8928+#define LVVOL_VOL_GAIN_MAX (24)
8929+
8930+/**
8931+* @def LVHPF_HPF_OPERATINGMODE_DEFAULT
8932+* Default of HPF_OperatingMode
8933+* @see LVHPF_ControlParams_st
8934+*/
8935+#define LVHPF_HPF_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
8936+
8937+/**
8938+* @def LVHPF_HPF_CORNERFREQ_DEFAULT
8939+* Default of HPF_CornerFreq
8940+* @see LVHPF_ControlParams_st
8941+*/
8942+#define LVHPF_HPF_CORNERFREQ_DEFAULT (50)
8943+/**
8944+* @def LVHPF_HPF_CORNERFREQ_MIN
8945+* MinValue of HPF_CornerFreq
8946+* @see LVHPF_ControlParams_st
8947+*/
8948+#define LVHPF_HPF_CORNERFREQ_MIN (50)
8949+/**
8950+* @def LVHPF_HPF_CORNERFREQ_MAX
8951+* MaxValue of HPF_CornerFreq
8952+* @see LVHPF_ControlParams_st
8953+*/
8954+#define LVHPF_HPF_CORNERFREQ_MAX (1500)
8955+
8956+/**
8957+* @def LVMUTE_MUTE_DEFAULT
8958+* Default of Mute
8959+* @see LVMUTE_ControlParams_st
8960+*/
8961+#define LVMUTE_MUTE_DEFAULT (LVM_MODE_OFF)
8962+
8963+/**
8964+* @def LVVE_RX_OPERATINGMODE_DEFAULT
8965+* Default of OperatingMode
8966+* @see LVVE_Rx_ControlParams_st
8967+*/
8968+#define LVVE_RX_OPERATINGMODE_DEFAULT (LVVE_RX_MODE_OFF)
8969+
8970+/**
8971+* @def LVVE_RX_MUTE_DEFAULT
8972+* Default of Mute
8973+* @see LVVE_Rx_ControlParams_st
8974+*/
8975+#define LVVE_RX_MUTE_DEFAULT (LVM_MODE_OFF)
8976+
8977+/**
8978+* @def LVVE_RX_VOL_OPERATINGMODE_DEFAULT
8979+* Default of VOL_OperatingMode
8980+* @see LVVE_Rx_ControlParams_st
8981+*/
8982+#define LVVE_RX_VOL_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
8983+
8984+/**
8985+* @def LVVE_RX_VOL_GAIN_DEFAULT
8986+* Default of VOL_Gain
8987+* @see LVVE_Rx_ControlParams_st
8988+*/
8989+#define LVVE_RX_VOL_GAIN_DEFAULT (0)
8990+/**
8991+* @def LVVE_RX_VOL_GAIN_MIN
8992+* MinValue of VOL_Gain
8993+* @see LVVE_Rx_ControlParams_st
8994+*/
8995+#define LVVE_RX_VOL_GAIN_MIN (-96)
8996+/**
8997+* @def LVVE_RX_VOL_GAIN_MAX
8998+* MaxValue of VOL_Gain
8999+* @see LVVE_Rx_ControlParams_st
9000+*/
9001+#define LVVE_RX_VOL_GAIN_MAX (24)
9002+
9003+
9004+/**
9005+* @def LVVE_RX_NLPP_OPERATINGMODE_DEFAULT
9006+* Default of NLPP_OperatingMode
9007+* @see LVVE_Rx_ControlParams_st
9008+*/
9009+#define LVVE_RX_NLPP_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
9010+
9011+
9012+
9013+/**
9014+* @def LVVE_RX_EQ_OPERATINGMODE_DEFAULT
9015+* Default of EQ_OperatingMode
9016+* @see LVVE_Rx_ControlParams_st
9017+*/
9018+#define LVVE_RX_EQ_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
9019+
9020+
9021+
9022+/**
9023+* @def LVVE_RX_HPF_OPERATINGMODE_DEFAULT
9024+* Default of HPF_OperatingMode
9025+* @see LVVE_Rx_ControlParams_st
9026+*/
9027+#define LVVE_RX_HPF_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
9028+
9029+/**
9030+* @def LVVE_RX_HPF_CORNERFREQ_DEFAULT
9031+* Default of HPF_CornerFreq
9032+* @see LVVE_Rx_ControlParams_st
9033+*/
9034+#define LVVE_RX_HPF_CORNERFREQ_DEFAULT (50)
9035+/**
9036+* @def LVVE_RX_HPF_CORNERFREQ_MIN
9037+* MinValue of HPF_CornerFreq
9038+* @see LVVE_Rx_ControlParams_st
9039+*/
9040+#define LVVE_RX_HPF_CORNERFREQ_MIN (50)
9041+/**
9042+* @def LVVE_RX_HPF_CORNERFREQ_MAX
9043+* MaxValue of HPF_CornerFreq
9044+* @see LVVE_Rx_ControlParams_st
9045+*/
9046+#define LVVE_RX_HPF_CORNERFREQ_MAX (1500)
9047+
9048+
9049+
9050+/**
9051+* @def LVNV_OPERATINGMODE_DEFAULT
9052+* Default of OperatingMode
9053+* @see LVNV_ControlParams_st
9054+*/
9055+#define LVNV_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
9056+
9057+/**
9058+* @def LVNV_MODE_DEFAULT
9059+* Default of Mode
9060+* @see LVNV_ControlParams_st
9061+*/
9062+#define LVNV_MODE_DEFAULT (18935)
9063+
9064+/**
9065+* @def LVNV_MODE2_DEFAULT
9066+* Default of Mode2
9067+* @see LVNV_ControlParams_st
9068+*/
9069+#define LVNV_MODE2_DEFAULT (14)
9070+
9071+/**
9072+* @def LVNV_TUNING_MODE_DEFAULT
9073+* Default of Tuning_mode
9074+* @see LVNV_ControlParams_st
9075+*/
9076+#define LVNV_TUNING_MODE_DEFAULT (0)
9077+
9078+/**
9079+* @def LVNV_INPUT_GAIN_MIC0_DEFAULT
9080+* Default of Input_Gain_Mic0
9081+* @see LVNV_ControlParams_st
9082+*/
9083+#define LVNV_INPUT_GAIN_MIC0_DEFAULT (8192)
9084+/**
9085+* @def LVNV_INPUT_GAIN_MIC0_MIN
9086+* MinValue of Input_Gain_Mic0
9087+* @see LVNV_ControlParams_st
9088+*/
9089+#define LVNV_INPUT_GAIN_MIC0_MIN (0)
9090+/**
9091+* @def LVNV_INPUT_GAIN_MIC0_MAX
9092+* MaxValue of Input_Gain_Mic0
9093+* @see LVNV_ControlParams_st
9094+*/
9095+#define LVNV_INPUT_GAIN_MIC0_MAX (32767)
9096+
9097+/**
9098+* @def LVNV_INPUT_GAIN_MIC1_DEFAULT
9099+* Default of Input_Gain_Mic1
9100+* @see LVNV_ControlParams_st
9101+*/
9102+#define LVNV_INPUT_GAIN_MIC1_DEFAULT (8192)
9103+/**
9104+* @def LVNV_INPUT_GAIN_MIC1_MIN
9105+* MinValue of Input_Gain_Mic1
9106+* @see LVNV_ControlParams_st
9107+*/
9108+#define LVNV_INPUT_GAIN_MIC1_MIN (0)
9109+/**
9110+* @def LVNV_INPUT_GAIN_MIC1_MAX
9111+* MaxValue of Input_Gain_Mic1
9112+* @see LVNV_ControlParams_st
9113+*/
9114+#define LVNV_INPUT_GAIN_MIC1_MAX (32767)
9115+
9116+/**
9117+* @def LVNV_OUTPUT_GAIN_DEFAULT
9118+* Default of Output_Gain
9119+* @see LVNV_ControlParams_st
9120+*/
9121+#define LVNV_OUTPUT_GAIN_DEFAULT (2048)
9122+/**
9123+* @def LVNV_OUTPUT_GAIN_MIN
9124+* MinValue of Output_Gain
9125+* @see LVNV_ControlParams_st
9126+*/
9127+#define LVNV_OUTPUT_GAIN_MIN (0)
9128+/**
9129+* @def LVNV_OUTPUT_GAIN_MAX
9130+* MaxValue of Output_Gain
9131+* @see LVNV_ControlParams_st
9132+*/
9133+#define LVNV_OUTPUT_GAIN_MAX (32767)
9134+
9135+/**
9136+* @def LVNV_NLMS0_LB_TAPS_DEFAULT
9137+* Default of NLMS0_LB_taps
9138+* @see LVNV_ControlParams_st
9139+*/
9140+#define LVNV_NLMS0_LB_TAPS_DEFAULT (32)
9141+/**
9142+* @def LVNV_NLMS0_LB_TAPS_MIN
9143+* MinValue of NLMS0_LB_taps
9144+* @see LVNV_ControlParams_st
9145+*/
9146+#define LVNV_NLMS0_LB_TAPS_MIN (16)
9147+/**
9148+* @def LVNV_NLMS0_LB_TAPS_MAX
9149+* MaxValue of NLMS0_LB_taps
9150+* @see LVNV_ControlParams_st
9151+*/
9152+#define LVNV_NLMS0_LB_TAPS_MAX (64)
9153+
9154+/**
9155+* @def LVNV_NLMS0_LB_TWOALPHA_DEFAULT
9156+* Default of NLMS0_LB_twoalpha
9157+* @see LVNV_ControlParams_st
9158+*/
9159+#define LVNV_NLMS0_LB_TWOALPHA_DEFAULT (8192)
9160+/**
9161+* @def LVNV_NLMS0_LB_TWOALPHA_MIN
9162+* MinValue of NLMS0_LB_twoalpha
9163+* @see LVNV_ControlParams_st
9164+*/
9165+#define LVNV_NLMS0_LB_TWOALPHA_MIN (0)
9166+/**
9167+* @def LVNV_NLMS0_LB_TWOALPHA_MAX
9168+* MaxValue of NLMS0_LB_twoalpha
9169+* @see LVNV_ControlParams_st
9170+*/
9171+#define LVNV_NLMS0_LB_TWOALPHA_MAX (32767)
9172+
9173+/**
9174+* @def LVNV_NLMS0_LB_ERL_DEFAULT
9175+* Default of NLMS0_LB_erl
9176+* @see LVNV_ControlParams_st
9177+*/
9178+#define LVNV_NLMS0_LB_ERL_DEFAULT (1000)
9179+/**
9180+* @def LVNV_NLMS0_LB_ERL_MIN
9181+* MinValue of NLMS0_LB_erl
9182+* @see LVNV_ControlParams_st
9183+*/
9184+#define LVNV_NLMS0_LB_ERL_MIN (64)
9185+/**
9186+* @def LVNV_NLMS0_LB_ERL_MAX
9187+* MaxValue of NLMS0_LB_erl
9188+* @see LVNV_ControlParams_st
9189+*/
9190+#define LVNV_NLMS0_LB_ERL_MAX (32767)
9191+
9192+/**
9193+* @def LVNV_NLMS0_HB_TAPS_DEFAULT
9194+* Default of NLMS0_HB_taps
9195+* @see LVNV_ControlParams_st
9196+*/
9197+#define LVNV_NLMS0_HB_TAPS_DEFAULT (24)
9198+/**
9199+* @def LVNV_NLMS0_HB_TAPS_MIN
9200+* MinValue of NLMS0_HB_taps
9201+* @see LVNV_ControlParams_st
9202+*/
9203+#define LVNV_NLMS0_HB_TAPS_MIN (16)
9204+/**
9205+* @def LVNV_NLMS0_HB_TAPS_MAX
9206+* MaxValue of NLMS0_HB_taps
9207+* @see LVNV_ControlParams_st
9208+*/
9209+#define LVNV_NLMS0_HB_TAPS_MAX (64)
9210+
9211+/**
9212+* @def LVNV_NLMS0_HB_TWOALPHA_DEFAULT
9213+* Default of NLMS0_HB_twoalpha
9214+* @see LVNV_ControlParams_st
9215+*/
9216+#define LVNV_NLMS0_HB_TWOALPHA_DEFAULT (8192)
9217+/**
9218+* @def LVNV_NLMS0_HB_TWOALPHA_MIN
9219+* MinValue of NLMS0_HB_twoalpha
9220+* @see LVNV_ControlParams_st
9221+*/
9222+#define LVNV_NLMS0_HB_TWOALPHA_MIN (0)
9223+/**
9224+* @def LVNV_NLMS0_HB_TWOALPHA_MAX
9225+* MaxValue of NLMS0_HB_twoalpha
9226+* @see LVNV_ControlParams_st
9227+*/
9228+#define LVNV_NLMS0_HB_TWOALPHA_MAX (32767)
9229+
9230+/**
9231+* @def LVNV_NLMS0_HB_ERL_DEFAULT
9232+* Default of NLMS0_HB_erl
9233+* @see LVNV_ControlParams_st
9234+*/
9235+#define LVNV_NLMS0_HB_ERL_DEFAULT (1000)
9236+/**
9237+* @def LVNV_NLMS0_HB_ERL_MIN
9238+* MinValue of NLMS0_HB_erl
9239+* @see LVNV_ControlParams_st
9240+*/
9241+#define LVNV_NLMS0_HB_ERL_MIN (64)
9242+/**
9243+* @def LVNV_NLMS0_HB_ERL_MAX
9244+* MaxValue of NLMS0_HB_erl
9245+* @see LVNV_ControlParams_st
9246+*/
9247+#define LVNV_NLMS0_HB_ERL_MAX (32767)
9248+
9249+/**
9250+* @def LVNV_NLMS0_PRESET_COEFS_DEFAULT
9251+* Default of NLMS0_preset_coefs
9252+* @see LVNV_ControlParams_st
9253+*/
9254+#define LVNV_NLMS0_PRESET_COEFS_DEFAULT (0)
9255+/**
9256+* @def LVNV_NLMS0_PRESET_COEFS_MIN
9257+* MinValue of NLMS0_preset_coefs
9258+* @see LVNV_ControlParams_st
9259+*/
9260+#define LVNV_NLMS0_PRESET_COEFS_MIN (0)
9261+/**
9262+* @def LVNV_NLMS0_PRESET_COEFS_MAX
9263+* MaxValue of NLMS0_preset_coefs
9264+* @see LVNV_ControlParams_st
9265+*/
9266+#define LVNV_NLMS0_PRESET_COEFS_MAX (2)
9267+
9268+/**
9269+* @def LVNV_NLMS0_OFFSET_DEFAULT
9270+* Default of NLMS0_offset
9271+* @see LVNV_ControlParams_st
9272+*/
9273+#define LVNV_NLMS0_OFFSET_DEFAULT (776)
9274+/**
9275+* @def LVNV_NLMS0_OFFSET_MIN
9276+* MinValue of NLMS0_offset
9277+* @see LVNV_ControlParams_st
9278+*/
9279+#define LVNV_NLMS0_OFFSET_MIN (0)
9280+/**
9281+* @def LVNV_NLMS0_OFFSET_MAX
9282+* MaxValue of NLMS0_offset
9283+* @see LVNV_ControlParams_st
9284+*/
9285+#define LVNV_NLMS0_OFFSET_MAX (32767)
9286+
9287+/**
9288+* @def LVNV_NLMS1_LB_TAPS_DEFAULT
9289+* Default of NLMS1_LB_taps
9290+* @see LVNV_ControlParams_st
9291+*/
9292+#define LVNV_NLMS1_LB_TAPS_DEFAULT (32)
9293+/**
9294+* @def LVNV_NLMS1_LB_TAPS_MIN
9295+* MinValue of NLMS1_LB_taps
9296+* @see LVNV_ControlParams_st
9297+*/
9298+#define LVNV_NLMS1_LB_TAPS_MIN (16)
9299+/**
9300+* @def LVNV_NLMS1_LB_TAPS_MAX
9301+* MaxValue of NLMS1_LB_taps
9302+* @see LVNV_ControlParams_st
9303+*/
9304+#define LVNV_NLMS1_LB_TAPS_MAX (32)
9305+
9306+/**
9307+* @def LVNV_NLMS1_LB_TWOALPHA_DEFAULT
9308+* Default of NLMS1_LB_twoalpha
9309+* @see LVNV_ControlParams_st
9310+*/
9311+#define LVNV_NLMS1_LB_TWOALPHA_DEFAULT (8192)
9312+/**
9313+* @def LVNV_NLMS1_LB_TWOALPHA_MIN
9314+* MinValue of NLMS1_LB_twoalpha
9315+* @see LVNV_ControlParams_st
9316+*/
9317+#define LVNV_NLMS1_LB_TWOALPHA_MIN (0)
9318+/**
9319+* @def LVNV_NLMS1_LB_TWOALPHA_MAX
9320+* MaxValue of NLMS1_LB_twoalpha
9321+* @see LVNV_ControlParams_st
9322+*/
9323+#define LVNV_NLMS1_LB_TWOALPHA_MAX (32767)
9324+
9325+/**
9326+* @def LVNV_NLMS1_LB_ERL_DEFAULT
9327+* Default of NLMS1_LB_erl
9328+* @see LVNV_ControlParams_st
9329+*/
9330+#define LVNV_NLMS1_LB_ERL_DEFAULT (1000)
9331+/**
9332+* @def LVNV_NLMS1_LB_ERL_MIN
9333+* MinValue of NLMS1_LB_erl
9334+* @see LVNV_ControlParams_st
9335+*/
9336+#define LVNV_NLMS1_LB_ERL_MIN (64)
9337+/**
9338+* @def LVNV_NLMS1_LB_ERL_MAX
9339+* MaxValue of NLMS1_LB_erl
9340+* @see LVNV_ControlParams_st
9341+*/
9342+#define LVNV_NLMS1_LB_ERL_MAX (32767)
9343+
9344+/**
9345+* @def LVNV_NLMS1_HB_TAPS_DEFAULT
9346+* Default of NLMS1_HB_taps
9347+* @see LVNV_ControlParams_st
9348+*/
9349+#define LVNV_NLMS1_HB_TAPS_DEFAULT (24)
9350+/**
9351+* @def LVNV_NLMS1_HB_TAPS_MIN
9352+* MinValue of NLMS1_HB_taps
9353+* @see LVNV_ControlParams_st
9354+*/
9355+#define LVNV_NLMS1_HB_TAPS_MIN (16)
9356+/**
9357+* @def LVNV_NLMS1_HB_TAPS_MAX
9358+* MaxValue of NLMS1_HB_taps
9359+* @see LVNV_ControlParams_st
9360+*/
9361+#define LVNV_NLMS1_HB_TAPS_MAX (32)
9362+
9363+/**
9364+* @def LVNV_NLMS1_HB_TWOALPHA_DEFAULT
9365+* Default of NLMS1_HB_twoalpha
9366+* @see LVNV_ControlParams_st
9367+*/
9368+#define LVNV_NLMS1_HB_TWOALPHA_DEFAULT (8192)
9369+/**
9370+* @def LVNV_NLMS1_HB_TWOALPHA_MIN
9371+* MinValue of NLMS1_HB_twoalpha
9372+* @see LVNV_ControlParams_st
9373+*/
9374+#define LVNV_NLMS1_HB_TWOALPHA_MIN (0)
9375+/**
9376+* @def LVNV_NLMS1_HB_TWOALPHA_MAX
9377+* MaxValue of NLMS1_HB_twoalpha
9378+* @see LVNV_ControlParams_st
9379+*/
9380+#define LVNV_NLMS1_HB_TWOALPHA_MAX (32767)
9381+
9382+/**
9383+* @def LVNV_NLMS1_HB_ERL_DEFAULT
9384+* Default of NLMS1_HB_erl
9385+* @see LVNV_ControlParams_st
9386+*/
9387+#define LVNV_NLMS1_HB_ERL_DEFAULT (1000)
9388+/**
9389+* @def LVNV_NLMS1_HB_ERL_MIN
9390+* MinValue of NLMS1_HB_erl
9391+* @see LVNV_ControlParams_st
9392+*/
9393+#define LVNV_NLMS1_HB_ERL_MIN (64)
9394+/**
9395+* @def LVNV_NLMS1_HB_ERL_MAX
9396+* MaxValue of NLMS1_HB_erl
9397+* @see LVNV_ControlParams_st
9398+*/
9399+#define LVNV_NLMS1_HB_ERL_MAX (32767)
9400+
9401+/**
9402+* @def LVNV_NLMS1_PRESET_COEFS_DEFAULT
9403+* Default of NLMS1_preset_coefs
9404+* @see LVNV_ControlParams_st
9405+*/
9406+#define LVNV_NLMS1_PRESET_COEFS_DEFAULT (0)
9407+/**
9408+* @def LVNV_NLMS1_PRESET_COEFS_MIN
9409+* MinValue of NLMS1_preset_coefs
9410+* @see LVNV_ControlParams_st
9411+*/
9412+#define LVNV_NLMS1_PRESET_COEFS_MIN (0)
9413+/**
9414+* @def LVNV_NLMS1_PRESET_COEFS_MAX
9415+* MaxValue of NLMS1_preset_coefs
9416+* @see LVNV_ControlParams_st
9417+*/
9418+#define LVNV_NLMS1_PRESET_COEFS_MAX (2)
9419+
9420+/**
9421+* @def LVNV_NLMS1_OFFSET_DEFAULT
9422+* Default of NLMS1_offset
9423+* @see LVNV_ControlParams_st
9424+*/
9425+#define LVNV_NLMS1_OFFSET_DEFAULT (776)
9426+/**
9427+* @def LVNV_NLMS1_OFFSET_MIN
9428+* MinValue of NLMS1_offset
9429+* @see LVNV_ControlParams_st
9430+*/
9431+#define LVNV_NLMS1_OFFSET_MIN (0)
9432+/**
9433+* @def LVNV_NLMS1_OFFSET_MAX
9434+* MaxValue of NLMS1_offset
9435+* @see LVNV_ControlParams_st
9436+*/
9437+#define LVNV_NLMS1_OFFSET_MAX (32767)
9438+
9439+/**
9440+* @def LVNV_CAL_MICPOWFLOORMIN_DEFAULT
9441+* Default of CAL_micPowFloorMin
9442+* @see LVNV_ControlParams_st
9443+*/
9444+#define LVNV_CAL_MICPOWFLOORMIN_DEFAULT (150)
9445+/**
9446+* @def LVNV_CAL_MICPOWFLOORMIN_MIN
9447+* MinValue of CAL_micPowFloorMin
9448+* @see LVNV_ControlParams_st
9449+*/
9450+#define LVNV_CAL_MICPOWFLOORMIN_MIN (0)
9451+/**
9452+* @def LVNV_CAL_MICPOWFLOORMIN_MAX
9453+* MaxValue of CAL_micPowFloorMin
9454+* @see LVNV_ControlParams_st
9455+*/
9456+#define LVNV_CAL_MICPOWFLOORMIN_MAX (32767)
9457+
9458+/**
9459+* @def LVNV_WGTHRESHOLD_DEFAULT
9460+* Default of WgThreshold
9461+* @see LVNV_ControlParams_st
9462+*/
9463+#define LVNV_WGTHRESHOLD_DEFAULT (32767)
9464+/**
9465+* @def LVNV_WGTHRESHOLD_MIN
9466+* MinValue of WgThreshold
9467+* @see LVNV_ControlParams_st
9468+*/
9469+#define LVNV_WGTHRESHOLD_MIN (0)
9470+/**
9471+* @def LVNV_WGTHRESHOLD_MAX
9472+* MaxValue of WgThreshold
9473+* @see LVNV_ControlParams_st
9474+*/
9475+#define LVNV_WGTHRESHOLD_MAX (32767)
9476+
9477+/**
9478+* @def LVNV_MPTHRESHOLD_DEFAULT
9479+* Default of MpThreshold
9480+* @see LVNV_ControlParams_st
9481+*/
9482+#define LVNV_MPTHRESHOLD_DEFAULT (6554)
9483+/**
9484+* @def LVNV_MPTHRESHOLD_MIN
9485+* MinValue of MpThreshold
9486+* @see LVNV_ControlParams_st
9487+*/
9488+#define LVNV_MPTHRESHOLD_MIN (0)
9489+/**
9490+* @def LVNV_MPTHRESHOLD_MAX
9491+* MaxValue of MpThreshold
9492+* @see LVNV_ControlParams_st
9493+*/
9494+#define LVNV_MPTHRESHOLD_MAX (32767)
9495+
9496+/**
9497+* @def LVNV_FSB_INIT_TABLE0_DEFAULT
9498+* Default of FSB_init_table0
9499+* @see LVNV_ControlParams_st
9500+*/
9501+#define LVNV_FSB_INIT_TABLE0_DEFAULT {32767, 0, 0, 0, 0, 0, 0, 0}
9502+/**
9503+* @def LVNV_FSB_INIT_TABLE0_MIN
9504+* MinValue of FSB_init_table0
9505+* @see LVNV_ControlParams_st
9506+*/
9507+#define LVNV_FSB_INIT_TABLE0_MIN (-32768)
9508+/**
9509+* @def LVNV_FSB_INIT_TABLE0_MAX
9510+* MaxValue of FSB_init_table0
9511+* @see LVNV_ControlParams_st
9512+*/
9513+#define LVNV_FSB_INIT_TABLE0_MAX (32767)
9514+/**
9515+* @def LVNV_FSB_INIT_TABLE0_LENGTH
9516+* Length of FSB_init_table0
9517+* @see LVNV_ControlParams_st
9518+*/
9519+#define LVNV_FSB_INIT_TABLE0_LENGTH (8)
9520+
9521+/**
9522+* @def LVNV_FSB_INIT_TABLE1_DEFAULT
9523+* Default of FSB_init_table1
9524+* @see LVNV_ControlParams_st
9525+*/
9526+#define LVNV_FSB_INIT_TABLE1_DEFAULT {0, 0, 0, 0, 0, 0, 0, 0}
9527+/**
9528+* @def LVNV_FSB_INIT_TABLE1_MIN
9529+* MinValue of FSB_init_table1
9530+* @see LVNV_ControlParams_st
9531+*/
9532+#define LVNV_FSB_INIT_TABLE1_MIN (-32768)
9533+/**
9534+* @def LVNV_FSB_INIT_TABLE1_MAX
9535+* MaxValue of FSB_init_table1
9536+* @see LVNV_ControlParams_st
9537+*/
9538+#define LVNV_FSB_INIT_TABLE1_MAX (32767)
9539+/**
9540+* @def LVNV_FSB_INIT_TABLE1_LENGTH
9541+* Length of FSB_init_table1
9542+* @see LVNV_ControlParams_st
9543+*/
9544+#define LVNV_FSB_INIT_TABLE1_LENGTH (8)
9545+
9546+/**
9547+* @def LVNV_FSB_TAPS_DEFAULT
9548+* Default of FSB_taps
9549+* @see LVNV_ControlParams_st
9550+*/
9551+#define LVNV_FSB_TAPS_DEFAULT (16)
9552+/**
9553+* @def LVNV_FSB_TAPS_MIN
9554+* MinValue of FSB_taps
9555+* @see LVNV_ControlParams_st
9556+*/
9557+#define LVNV_FSB_TAPS_MIN (8)
9558+/**
9559+* @def LVNV_FSB_TAPS_MAX
9560+* MaxValue of FSB_taps
9561+* @see LVNV_ControlParams_st
9562+*/
9563+#define LVNV_FSB_TAPS_MAX (16)
9564+
9565+/**
9566+* @def LVNV_FSB_TWOALPHA_DEFAULT
9567+* Default of FSB_twoalpha
9568+* @see LVNV_ControlParams_st
9569+*/
9570+#define LVNV_FSB_TWOALPHA_DEFAULT (655)
9571+/**
9572+* @def LVNV_FSB_TWOALPHA_MIN
9573+* MinValue of FSB_twoalpha
9574+* @see LVNV_ControlParams_st
9575+*/
9576+#define LVNV_FSB_TWOALPHA_MIN (0)
9577+/**
9578+* @def LVNV_FSB_TWOALPHA_MAX
9579+* MaxValue of FSB_twoalpha
9580+* @see LVNV_ControlParams_st
9581+*/
9582+#define LVNV_FSB_TWOALPHA_MAX (32767)
9583+
9584+/**
9585+* @def LVNV_FSB_REF_GAIN_DEFAULT
9586+* Default of FSB_ref_gain
9587+* @see LVNV_ControlParams_st
9588+*/
9589+#define LVNV_FSB_REF_GAIN_DEFAULT (1024)
9590+/**
9591+* @def LVNV_FSB_REF_GAIN_MIN
9592+* MinValue of FSB_ref_gain
9593+* @see LVNV_ControlParams_st
9594+*/
9595+#define LVNV_FSB_REF_GAIN_MIN (0)
9596+/**
9597+* @def LVNV_FSB_REF_GAIN_MAX
9598+* MaxValue of FSB_ref_gain
9599+* @see LVNV_ControlParams_st
9600+*/
9601+#define LVNV_FSB_REF_GAIN_MAX (32767)
9602+
9603+/**
9604+* @def LVNV_GSC_TAPS_DEFAULT
9605+* Default of GSC_taps
9606+* @see LVNV_ControlParams_st
9607+*/
9608+#define LVNV_GSC_TAPS_DEFAULT (16)
9609+/**
9610+* @def LVNV_GSC_TAPS_MIN
9611+* MinValue of GSC_taps
9612+* @see LVNV_ControlParams_st
9613+*/
9614+#define LVNV_GSC_TAPS_MIN (8)
9615+/**
9616+* @def LVNV_GSC_TAPS_MAX
9617+* MaxValue of GSC_taps
9618+* @see LVNV_ControlParams_st
9619+*/
9620+#define LVNV_GSC_TAPS_MAX (48)
9621+
9622+/**
9623+* @def LVNV_GSC_TWOALPHA_DEFAULT
9624+* Default of GSC_twoalpha
9625+* @see LVNV_ControlParams_st
9626+*/
9627+#define LVNV_GSC_TWOALPHA_DEFAULT (1638)
9628+/**
9629+* @def LVNV_GSC_TWOALPHA_MIN
9630+* MinValue of GSC_twoalpha
9631+* @see LVNV_ControlParams_st
9632+*/
9633+#define LVNV_GSC_TWOALPHA_MIN (0)
9634+/**
9635+* @def LVNV_GSC_TWOALPHA_MAX
9636+* MaxValue of GSC_twoalpha
9637+* @see LVNV_ControlParams_st
9638+*/
9639+#define LVNV_GSC_TWOALPHA_MAX (32767)
9640+
9641+/**
9642+* @def LVNV_GSC_ERL_DEFAULT
9643+* Default of GSC_erl
9644+* @see LVNV_ControlParams_st
9645+*/
9646+#define LVNV_GSC_ERL_DEFAULT (256)
9647+/**
9648+* @def LVNV_GSC_ERL_MIN
9649+* MinValue of GSC_erl
9650+* @see LVNV_ControlParams_st
9651+*/
9652+#define LVNV_GSC_ERL_MIN (64)
9653+/**
9654+* @def LVNV_GSC_ERL_MAX
9655+* MaxValue of GSC_erl
9656+* @see LVNV_ControlParams_st
9657+*/
9658+#define LVNV_GSC_ERL_MAX (32767)
9659+
9660+/**
9661+* @def LVNV_GSC_OFFSET_DEFAULT
9662+* Default of GSC_offset
9663+* @see LVNV_ControlParams_st
9664+*/
9665+#define LVNV_GSC_OFFSET_DEFAULT (1638)
9666+/**
9667+* @def LVNV_GSC_OFFSET_MIN
9668+* MinValue of GSC_offset
9669+* @see LVNV_ControlParams_st
9670+*/
9671+#define LVNV_GSC_OFFSET_MIN (0)
9672+/**
9673+* @def LVNV_GSC_OFFSET_MAX
9674+* MaxValue of GSC_offset
9675+* @see LVNV_ControlParams_st
9676+*/
9677+#define LVNV_GSC_OFFSET_MAX (32767)
9678+
9679+/**
9680+* @def LVNV_DNNS_ECHOGAMMAHI_DEFAULT
9681+* Default of DNNS_EchoGammaHi
9682+* @see LVNV_ControlParams_st
9683+*/
9684+#define LVNV_DNNS_ECHOGAMMAHI_DEFAULT (16384)
9685+/**
9686+* @def LVNV_DNNS_ECHOGAMMAHI_MIN
9687+* MinValue of DNNS_EchoGammaHi
9688+* @see LVNV_ControlParams_st
9689+*/
9690+#define LVNV_DNNS_ECHOGAMMAHI_MIN (0)
9691+/**
9692+* @def LVNV_DNNS_ECHOGAMMAHI_MAX
9693+* MaxValue of DNNS_EchoGammaHi
9694+* @see LVNV_ControlParams_st
9695+*/
9696+#define LVNV_DNNS_ECHOGAMMAHI_MAX (32767)
9697+
9698+/**
9699+* @def LVNV_DNNS_ECHOGAMMALO_DEFAULT
9700+* Default of DNNS_EchoGammaLo
9701+* @see LVNV_ControlParams_st
9702+*/
9703+#define LVNV_DNNS_ECHOGAMMALO_DEFAULT (8192)
9704+/**
9705+* @def LVNV_DNNS_ECHOGAMMALO_MIN
9706+* MinValue of DNNS_EchoGammaLo
9707+* @see LVNV_ControlParams_st
9708+*/
9709+#define LVNV_DNNS_ECHOGAMMALO_MIN (0)
9710+/**
9711+* @def LVNV_DNNS_ECHOGAMMALO_MAX
9712+* MaxValue of DNNS_EchoGammaLo
9713+* @see LVNV_ControlParams_st
9714+*/
9715+#define LVNV_DNNS_ECHOGAMMALO_MAX (32767)
9716+
9717+/**
9718+* @def LVNV_DNNS_ECHOALPHAREV_DEFAULT
9719+* Default of DNNS_EchoAlphaRev
9720+* @see LVNV_ControlParams_st
9721+*/
9722+#define LVNV_DNNS_ECHOALPHAREV_DEFAULT (12000)
9723+/**
9724+* @def LVNV_DNNS_ECHOALPHAREV_MIN
9725+* MinValue of DNNS_EchoAlphaRev
9726+* @see LVNV_ControlParams_st
9727+*/
9728+#define LVNV_DNNS_ECHOALPHAREV_MIN (0)
9729+/**
9730+* @def LVNV_DNNS_ECHOALPHAREV_MAX
9731+* MaxValue of DNNS_EchoAlphaRev
9732+* @see LVNV_ControlParams_st
9733+*/
9734+#define LVNV_DNNS_ECHOALPHAREV_MAX (32767)
9735+
9736+/**
9737+* @def LVNV_DNNS_ECHOTAILPORTION_DEFAULT
9738+* Default of DNNS_EchoTailPortion
9739+* @see LVNV_ControlParams_st
9740+*/
9741+#define LVNV_DNNS_ECHOTAILPORTION_DEFAULT (7000)
9742+/**
9743+* @def LVNV_DNNS_ECHOTAILPORTION_MIN
9744+* MinValue of DNNS_EchoTailPortion
9745+* @see LVNV_ControlParams_st
9746+*/
9747+#define LVNV_DNNS_ECHOTAILPORTION_MIN (0)
9748+/**
9749+* @def LVNV_DNNS_ECHOTAILPORTION_MAX
9750+* MaxValue of DNNS_EchoTailPortion
9751+* @see LVNV_ControlParams_st
9752+*/
9753+#define LVNV_DNNS_ECHOTAILPORTION_MAX (32767)
9754+
9755+/**
9756+* @def LVNV_DNNS_NLATTEN_DEFAULT
9757+* Default of DNNS_NlAtten
9758+* @see LVNV_ControlParams_st
9759+*/
9760+#define LVNV_DNNS_NLATTEN_DEFAULT (256)
9761+/**
9762+* @def LVNV_DNNS_NLATTEN_MIN
9763+* MinValue of DNNS_NlAtten
9764+* @see LVNV_ControlParams_st
9765+*/
9766+#define LVNV_DNNS_NLATTEN_MIN (0)
9767+/**
9768+* @def LVNV_DNNS_NLATTEN_MAX
9769+* MaxValue of DNNS_NlAtten
9770+* @see LVNV_ControlParams_st
9771+*/
9772+#define LVNV_DNNS_NLATTEN_MAX (2048)
9773+
9774+/**
9775+* @def LVNV_DNNS_NOISEGAMMAS_DEFAULT
9776+* Default of DNNS_NoiseGammaS
9777+* @see LVNV_ControlParams_st
9778+*/
9779+#define LVNV_DNNS_NOISEGAMMAS_DEFAULT (11470)
9780+/**
9781+* @def LVNV_DNNS_NOISEGAMMAS_MIN
9782+* MinValue of DNNS_NoiseGammaS
9783+* @see LVNV_ControlParams_st
9784+*/
9785+#define LVNV_DNNS_NOISEGAMMAS_MIN (0)
9786+/**
9787+* @def LVNV_DNNS_NOISEGAMMAS_MAX
9788+* MaxValue of DNNS_NoiseGammaS
9789+* @see LVNV_ControlParams_st
9790+*/
9791+#define LVNV_DNNS_NOISEGAMMAS_MAX (32767)
9792+
9793+/**
9794+* @def LVNV_DNNS_NOISEGAMMAN_DEFAULT
9795+* Default of DNNS_NoiseGammaN
9796+* @see LVNV_ControlParams_st
9797+*/
9798+#define LVNV_DNNS_NOISEGAMMAN_DEFAULT (16384)
9799+/**
9800+* @def LVNV_DNNS_NOISEGAMMAN_MIN
9801+* MinValue of DNNS_NoiseGammaN
9802+* @see LVNV_ControlParams_st
9803+*/
9804+#define LVNV_DNNS_NOISEGAMMAN_MIN (0)
9805+/**
9806+* @def LVNV_DNNS_NOISEGAMMAN_MAX
9807+* MaxValue of DNNS_NoiseGammaN
9808+* @see LVNV_ControlParams_st
9809+*/
9810+#define LVNV_DNNS_NOISEGAMMAN_MAX (32767)
9811+
9812+/**
9813+* @def LVNV_DNNS_NOISEGAINMINS_DEFAULT
9814+* Default of DNNS_NoiseGainMinS
9815+* @see LVNV_ControlParams_st
9816+*/
9817+#define LVNV_DNNS_NOISEGAINMINS_DEFAULT (11140)
9818+/**
9819+* @def LVNV_DNNS_NOISEGAINMINS_MIN
9820+* MinValue of DNNS_NoiseGainMinS
9821+* @see LVNV_ControlParams_st
9822+*/
9823+#define LVNV_DNNS_NOISEGAINMINS_MIN (0)
9824+/**
9825+* @def LVNV_DNNS_NOISEGAINMINS_MAX
9826+* MaxValue of DNNS_NoiseGainMinS
9827+* @see LVNV_ControlParams_st
9828+*/
9829+#define LVNV_DNNS_NOISEGAINMINS_MAX (32767)
9830+
9831+/**
9832+* @def LVNV_DNNS_NOISEGAINMINN_DEFAULT
9833+* Default of DNNS_NoiseGainMinN
9834+* @see LVNV_ControlParams_st
9835+*/
9836+#define LVNV_DNNS_NOISEGAINMINN_DEFAULT (6554)
9837+/**
9838+* @def LVNV_DNNS_NOISEGAINMINN_MIN
9839+* MinValue of DNNS_NoiseGainMinN
9840+* @see LVNV_ControlParams_st
9841+*/
9842+#define LVNV_DNNS_NOISEGAINMINN_MIN (0)
9843+/**
9844+* @def LVNV_DNNS_NOISEGAINMINN_MAX
9845+* MaxValue of DNNS_NoiseGainMinN
9846+* @see LVNV_ControlParams_st
9847+*/
9848+#define LVNV_DNNS_NOISEGAINMINN_MAX (32767)
9849+
9850+/**
9851+* @def LVNV_DNNS_NOISEBIASCOMP_DEFAULT
9852+* Default of DNNS_NoiseBiasComp
9853+* @see LVNV_ControlParams_st
9854+*/
9855+#define LVNV_DNNS_NOISEBIASCOMP_DEFAULT (9830)
9856+/**
9857+* @def LVNV_DNNS_NOISEBIASCOMP_MIN
9858+* MinValue of DNNS_NoiseBiasComp
9859+* @see LVNV_ControlParams_st
9860+*/
9861+#define LVNV_DNNS_NOISEBIASCOMP_MIN (0)
9862+/**
9863+* @def LVNV_DNNS_NOISEBIASCOMP_MAX
9864+* MaxValue of DNNS_NoiseBiasComp
9865+* @see LVNV_ControlParams_st
9866+*/
9867+#define LVNV_DNNS_NOISEBIASCOMP_MAX (32767)
9868+
9869+/**
9870+* @def LVNV_DNNS_GAINETA_DEFAULT
9871+* Default of DNNS_GainEta
9872+* @see LVNV_ControlParams_st
9873+*/
9874+#define LVNV_DNNS_GAINETA_DEFAULT (256)
9875+/**
9876+* @def LVNV_DNNS_GAINETA_MIN
9877+* MinValue of DNNS_GainEta
9878+* @see LVNV_ControlParams_st
9879+*/
9880+#define LVNV_DNNS_GAINETA_MIN (0)
9881+/**
9882+* @def LVNV_DNNS_GAINETA_MAX
9883+* MaxValue of DNNS_GainEta
9884+* @see LVNV_ControlParams_st
9885+*/
9886+#define LVNV_DNNS_GAINETA_MAX (32767)
9887+
9888+/**
9889+* @def LVNV_DNNS_ACTHRESHOLD_DEFAULT
9890+* Default of DNNS_AcThreshold
9891+* @see LVNV_ControlParams_st
9892+*/
9893+#define LVNV_DNNS_ACTHRESHOLD_DEFAULT (12288)
9894+/**
9895+* @def LVNV_DNNS_ACTHRESHOLD_MIN
9896+* MinValue of DNNS_AcThreshold
9897+* @see LVNV_ControlParams_st
9898+*/
9899+#define LVNV_DNNS_ACTHRESHOLD_MIN (0)
9900+/**
9901+* @def LVNV_DNNS_ACTHRESHOLD_MAX
9902+* MaxValue of DNNS_AcThreshold
9903+* @see LVNV_ControlParams_st
9904+*/
9905+#define LVNV_DNNS_ACTHRESHOLD_MAX (32767)
9906+
9907+/**
9908+* @def LVNV_DNNS_WBTHRESHOLD_DEFAULT
9909+* Default of DNNS_WbThreshold
9910+* @see LVNV_ControlParams_st
9911+*/
9912+#define LVNV_DNNS_WBTHRESHOLD_DEFAULT (9216)
9913+/**
9914+* @def LVNV_DNNS_WBTHRESHOLD_MIN
9915+* MinValue of DNNS_WbThreshold
9916+* @see LVNV_ControlParams_st
9917+*/
9918+#define LVNV_DNNS_WBTHRESHOLD_MIN (0)
9919+/**
9920+* @def LVNV_DNNS_WBTHRESHOLD_MAX
9921+* MaxValue of DNNS_WbThreshold
9922+* @see LVNV_ControlParams_st
9923+*/
9924+#define LVNV_DNNS_WBTHRESHOLD_MAX (32767)
9925+
9926+/**
9927+* @def LVNV_DNNS_LOSTBEAMTHRESHOLD_DEFAULT
9928+* Default of DNNS_LostBeamThreshold
9929+* @see LVNV_ControlParams_st
9930+*/
9931+#define LVNV_DNNS_LOSTBEAMTHRESHOLD_DEFAULT (320)
9932+/**
9933+* @def LVNV_DNNS_LOSTBEAMTHRESHOLD_MIN
9934+* MinValue of DNNS_LostBeamThreshold
9935+* @see LVNV_ControlParams_st
9936+*/
9937+#define LVNV_DNNS_LOSTBEAMTHRESHOLD_MIN (0)
9938+/**
9939+* @def LVNV_DNNS_LOSTBEAMTHRESHOLD_MAX
9940+* MaxValue of DNNS_LostBeamThreshold
9941+* @see LVNV_ControlParams_st
9942+*/
9943+#define LVNV_DNNS_LOSTBEAMTHRESHOLD_MAX (32767)
9944+
9945+/**
9946+* @def LVNV_PCD_BETA_DEFAULT
9947+* Default of PCD_beta
9948+* @see LVNV_ControlParams_st
9949+*/
9950+#define LVNV_PCD_BETA_DEFAULT (230)
9951+/**
9952+* @def LVNV_PCD_BETA_MIN
9953+* MinValue of PCD_beta
9954+* @see LVNV_ControlParams_st
9955+*/
9956+#define LVNV_PCD_BETA_MIN (0)
9957+/**
9958+* @def LVNV_PCD_BETA_MAX
9959+* MaxValue of PCD_beta
9960+* @see LVNV_ControlParams_st
9961+*/
9962+#define LVNV_PCD_BETA_MAX (32767)
9963+
9964+/**
9965+* @def LVNV_PCD_THRESHOLD_DEFAULT
9966+* Default of PCD_Threshold
9967+* @see LVNV_ControlParams_st
9968+*/
9969+#define LVNV_PCD_THRESHOLD_DEFAULT (26213)
9970+/**
9971+* @def LVNV_PCD_THRESHOLD_MIN
9972+* MinValue of PCD_Threshold
9973+* @see LVNV_ControlParams_st
9974+*/
9975+#define LVNV_PCD_THRESHOLD_MIN (0)
9976+/**
9977+* @def LVNV_PCD_THRESHOLD_MAX
9978+* MaxValue of PCD_Threshold
9979+* @see LVNV_ControlParams_st
9980+*/
9981+#define LVNV_PCD_THRESHOLD_MAX (32767)
9982+
9983+/**
9984+* @def LVHF_OPERATINGMODE_DEFAULT
9985+* Default of OperatingMode
9986+* @see LVHF_ControlParams_st
9987+*/
9988+#define LVHF_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
9989+
9990+/**
9991+* @def LVHF_MODE_DEFAULT
9992+* Default of Mode
9993+* @see LVHF_ControlParams_st
9994+*/
9995+#define LVHF_MODE_DEFAULT (4607)
9996+
9997+/**
9998+* @def LVHF_TUNINGMODE_DEFAULT
9999+* Default of TuningMode
10000+* @see LVHF_ControlParams_st
10001+*/
10002+#define LVHF_TUNINGMODE_DEFAULT (0)
10003+
10004+/**
10005+* @def LVHF_INPUTGAIN_DEFAULT
10006+* Default of InputGain
10007+* @see LVHF_ControlParams_st
10008+*/
10009+#define LVHF_INPUTGAIN_DEFAULT (8192)
10010+/**
10011+* @def LVHF_INPUTGAIN_MIN
10012+* MinValue of InputGain
10013+* @see LVHF_ControlParams_st
10014+*/
10015+#define LVHF_INPUTGAIN_MIN (0)
10016+/**
10017+* @def LVHF_INPUTGAIN_MAX
10018+* MaxValue of InputGain
10019+* @see LVHF_ControlParams_st
10020+*/
10021+#define LVHF_INPUTGAIN_MAX (32767)
10022+
10023+/**
10024+* @def LVHF_OUTPUTGAIN_DEFAULT
10025+* Default of OutputGain
10026+* @see LVHF_ControlParams_st
10027+*/
10028+#define LVHF_OUTPUTGAIN_DEFAULT (2048)
10029+/**
10030+* @def LVHF_OUTPUTGAIN_MIN
10031+* MinValue of OutputGain
10032+* @see LVHF_ControlParams_st
10033+*/
10034+#define LVHF_OUTPUTGAIN_MIN (0)
10035+/**
10036+* @def LVHF_OUTPUTGAIN_MAX
10037+* MaxValue of OutputGain
10038+* @see LVHF_ControlParams_st
10039+*/
10040+#define LVHF_OUTPUTGAIN_MAX (32767)
10041+
10042+/**
10043+* @def LVHF_NLMS_LIMIT_DEFAULT
10044+* Default of NLMS_limit
10045+* @see LVHF_ControlParams_st
10046+*/
10047+#define LVHF_NLMS_LIMIT_DEFAULT (0)
10048+/**
10049+* @def LVHF_NLMS_LIMIT_MIN
10050+* MinValue of NLMS_limit
10051+* @see LVHF_ControlParams_st
10052+*/
10053+#define LVHF_NLMS_LIMIT_MIN (-24)
10054+/**
10055+* @def LVHF_NLMS_LIMIT_MAX
10056+* MaxValue of NLMS_limit
10057+* @see LVHF_ControlParams_st
10058+*/
10059+#define LVHF_NLMS_LIMIT_MAX (0)
10060+
10061+/**
10062+* @def LVHF_NLMS_LB_TAPS_DEFAULT
10063+* Default of NLMS_LB_taps
10064+* @see LVHF_ControlParams_st
10065+*/
10066+#define LVHF_NLMS_LB_TAPS_DEFAULT (64)
10067+/**
10068+* @def LVHF_NLMS_LB_TAPS_MIN
10069+* MinValue of NLMS_LB_taps
10070+* @see LVHF_ControlParams_st
10071+*/
10072+#define LVHF_NLMS_LB_TAPS_MIN (16)
10073+/**
10074+* @def LVHF_NLMS_LB_TAPS_MAX
10075+* MaxValue of NLMS_LB_taps
10076+* @see LVHF_ControlParams_st
10077+*/
10078+#define LVHF_NLMS_LB_TAPS_MAX (200)
10079+
10080+/**
10081+* @def LVHF_NLMS_LB_TWO_ALPHA_DEFAULT
10082+* Default of NLMS_LB_two_alpha
10083+* @see LVHF_ControlParams_st
10084+*/
10085+#define LVHF_NLMS_LB_TWO_ALPHA_DEFAULT (8192)
10086+/**
10087+* @def LVHF_NLMS_LB_TWO_ALPHA_MIN
10088+* MinValue of NLMS_LB_two_alpha
10089+* @see LVHF_ControlParams_st
10090+*/
10091+#define LVHF_NLMS_LB_TWO_ALPHA_MIN (0)
10092+/**
10093+* @def LVHF_NLMS_LB_TWO_ALPHA_MAX
10094+* MaxValue of NLMS_LB_two_alpha
10095+* @see LVHF_ControlParams_st
10096+*/
10097+#define LVHF_NLMS_LB_TWO_ALPHA_MAX (32767)
10098+
10099+/**
10100+* @def LVHF_NLMS_LB_ERL_DEFAULT
10101+* Default of NLMS_LB_erl
10102+* @see LVHF_ControlParams_st
10103+*/
10104+#define LVHF_NLMS_LB_ERL_DEFAULT (128)
10105+/**
10106+* @def LVHF_NLMS_LB_ERL_MIN
10107+* MinValue of NLMS_LB_erl
10108+* @see LVHF_ControlParams_st
10109+*/
10110+#define LVHF_NLMS_LB_ERL_MIN (64)
10111+/**
10112+* @def LVHF_NLMS_LB_ERL_MAX
10113+* MaxValue of NLMS_LB_erl
10114+* @see LVHF_ControlParams_st
10115+*/
10116+#define LVHF_NLMS_LB_ERL_MAX (32767)
10117+
10118+/**
10119+* @def LVHF_NLMS_HB_TAPS_DEFAULT
10120+* Default of NLMS_HB_taps
10121+* @see LVHF_ControlParams_st
10122+*/
10123+#define LVHF_NLMS_HB_TAPS_DEFAULT (64)
10124+/**
10125+* @def LVHF_NLMS_HB_TAPS_MIN
10126+* MinValue of NLMS_HB_taps
10127+* @see LVHF_ControlParams_st
10128+*/
10129+#define LVHF_NLMS_HB_TAPS_MIN (16)
10130+/**
10131+* @def LVHF_NLMS_HB_TAPS_MAX
10132+* MaxValue of NLMS_HB_taps
10133+* @see LVHF_ControlParams_st
10134+*/
10135+#define LVHF_NLMS_HB_TAPS_MAX (136)
10136+
10137+/**
10138+* @def LVHF_NLMS_HB_TWO_ALPHA_DEFAULT
10139+* Default of NLMS_HB_two_alpha
10140+* @see LVHF_ControlParams_st
10141+*/
10142+#define LVHF_NLMS_HB_TWO_ALPHA_DEFAULT (8192)
10143+/**
10144+* @def LVHF_NLMS_HB_TWO_ALPHA_MIN
10145+* MinValue of NLMS_HB_two_alpha
10146+* @see LVHF_ControlParams_st
10147+*/
10148+#define LVHF_NLMS_HB_TWO_ALPHA_MIN (0)
10149+/**
10150+* @def LVHF_NLMS_HB_TWO_ALPHA_MAX
10151+* MaxValue of NLMS_HB_two_alpha
10152+* @see LVHF_ControlParams_st
10153+*/
10154+#define LVHF_NLMS_HB_TWO_ALPHA_MAX (32767)
10155+
10156+/**
10157+* @def LVHF_NLMS_HB_ERL_DEFAULT
10158+* Default of NLMS_HB_erl
10159+* @see LVHF_ControlParams_st
10160+*/
10161+#define LVHF_NLMS_HB_ERL_DEFAULT (128)
10162+/**
10163+* @def LVHF_NLMS_HB_ERL_MIN
10164+* MinValue of NLMS_HB_erl
10165+* @see LVHF_ControlParams_st
10166+*/
10167+#define LVHF_NLMS_HB_ERL_MIN (64)
10168+/**
10169+* @def LVHF_NLMS_HB_ERL_MAX
10170+* MaxValue of NLMS_HB_erl
10171+* @see LVHF_ControlParams_st
10172+*/
10173+#define LVHF_NLMS_HB_ERL_MAX (32767)
10174+
10175+/**
10176+* @def LVHF_NLMS_PRESET_COEFS_DEFAULT
10177+* Default of NLMS_preset_coefs
10178+* @see LVHF_ControlParams_st
10179+*/
10180+#define LVHF_NLMS_PRESET_COEFS_DEFAULT (1)
10181+/**
10182+* @def LVHF_NLMS_PRESET_COEFS_MIN
10183+* MinValue of NLMS_preset_coefs
10184+* @see LVHF_ControlParams_st
10185+*/
10186+#define LVHF_NLMS_PRESET_COEFS_MIN (0)
10187+/**
10188+* @def LVHF_NLMS_PRESET_COEFS_MAX
10189+* MaxValue of NLMS_preset_coefs
10190+* @see LVHF_ControlParams_st
10191+*/
10192+#define LVHF_NLMS_PRESET_COEFS_MAX (2)
10193+
10194+/**
10195+* @def LVHF_NLMS_OFFSET_DEFAULT
10196+* Default of NLMS_offset
10197+* @see LVHF_ControlParams_st
10198+*/
10199+#define LVHF_NLMS_OFFSET_DEFAULT (767)
10200+/**
10201+* @def LVHF_NLMS_OFFSET_MIN
10202+* MinValue of NLMS_offset
10203+* @see LVHF_ControlParams_st
10204+*/
10205+#define LVHF_NLMS_OFFSET_MIN (0)
10206+/**
10207+* @def LVHF_NLMS_OFFSET_MAX
10208+* MaxValue of NLMS_offset
10209+* @see LVHF_ControlParams_st
10210+*/
10211+#define LVHF_NLMS_OFFSET_MAX (32767)
10212+
10213+/**
10214+* @def LVHF_DENS_TAIL_ALPHA_LB_DEFAULT
10215+* Default of DENS_tail_alpha_LB
10216+* @see LVHF_ControlParams_st
10217+*/
10218+#define LVHF_DENS_TAIL_ALPHA_LB_DEFAULT (25395)
10219+/**
10220+* @def LVHF_DENS_TAIL_ALPHA_LB_MIN
10221+* MinValue of DENS_tail_alpha_LB
10222+* @see LVHF_ControlParams_st
10223+*/
10224+#define LVHF_DENS_TAIL_ALPHA_LB_MIN (0)
10225+/**
10226+* @def LVHF_DENS_TAIL_ALPHA_LB_MAX
10227+* MaxValue of DENS_tail_alpha_LB
10228+* @see LVHF_ControlParams_st
10229+*/
10230+#define LVHF_DENS_TAIL_ALPHA_LB_MAX (32767)
10231+
10232+/**
10233+* @def LVHF_DENS_TAIL_PORTION_LB_DEFAULT
10234+* Default of DENS_tail_portion_LB
10235+* @see LVHF_ControlParams_st
10236+*/
10237+#define LVHF_DENS_TAIL_PORTION_LB_DEFAULT (29491)
10238+/**
10239+* @def LVHF_DENS_TAIL_PORTION_LB_MIN
10240+* MinValue of DENS_tail_portion_LB
10241+* @see LVHF_ControlParams_st
10242+*/
10243+#define LVHF_DENS_TAIL_PORTION_LB_MIN (0)
10244+/**
10245+* @def LVHF_DENS_TAIL_PORTION_LB_MAX
10246+* MaxValue of DENS_tail_portion_LB
10247+* @see LVHF_ControlParams_st
10248+*/
10249+#define LVHF_DENS_TAIL_PORTION_LB_MAX (32767)
10250+
10251+/**
10252+* @def LVHF_DENS_GAMMA_E_HIGH_LB_DEFAULT
10253+* Default of DENS_gamma_e_high_LB
10254+* @see LVHF_ControlParams_st
10255+*/
10256+#define LVHF_DENS_GAMMA_E_HIGH_LB_DEFAULT (512)
10257+/**
10258+* @def LVHF_DENS_GAMMA_E_HIGH_LB_MIN
10259+* MinValue of DENS_gamma_e_high_LB
10260+* @see LVHF_ControlParams_st
10261+*/
10262+#define LVHF_DENS_GAMMA_E_HIGH_LB_MIN (0)
10263+/**
10264+* @def LVHF_DENS_GAMMA_E_HIGH_LB_MAX
10265+* MaxValue of DENS_gamma_e_high_LB
10266+* @see LVHF_ControlParams_st
10267+*/
10268+#define LVHF_DENS_GAMMA_E_HIGH_LB_MAX (32767)
10269+
10270+/**
10271+* @def LVHF_DENS_GAMMA_E_DT_LB_DEFAULT
10272+* Default of DENS_gamma_e_dt_LB
10273+* @see LVHF_ControlParams_st
10274+*/
10275+#define LVHF_DENS_GAMMA_E_DT_LB_DEFAULT (256)
10276+/**
10277+* @def LVHF_DENS_GAMMA_E_DT_LB_MIN
10278+* MinValue of DENS_gamma_e_dt_LB
10279+* @see LVHF_ControlParams_st
10280+*/
10281+#define LVHF_DENS_GAMMA_E_DT_LB_MIN (0)
10282+/**
10283+* @def LVHF_DENS_GAMMA_E_DT_LB_MAX
10284+* MaxValue of DENS_gamma_e_dt_LB
10285+* @see LVHF_ControlParams_st
10286+*/
10287+#define LVHF_DENS_GAMMA_E_DT_LB_MAX (32767)
10288+
10289+/**
10290+* @def LVHF_DENS_GAMMA_E_LOW_LB_DEFAULT
10291+* Default of DENS_gamma_e_low_LB
10292+* @see LVHF_ControlParams_st
10293+*/
10294+#define LVHF_DENS_GAMMA_E_LOW_LB_DEFAULT (256)
10295+/**
10296+* @def LVHF_DENS_GAMMA_E_LOW_LB_MIN
10297+* MinValue of DENS_gamma_e_low_LB
10298+* @see LVHF_ControlParams_st
10299+*/
10300+#define LVHF_DENS_GAMMA_E_LOW_LB_MIN (0)
10301+/**
10302+* @def LVHF_DENS_GAMMA_E_LOW_LB_MAX
10303+* MaxValue of DENS_gamma_e_low_LB
10304+* @see LVHF_ControlParams_st
10305+*/
10306+#define LVHF_DENS_GAMMA_E_LOW_LB_MAX (32767)
10307+
10308+/**
10309+* @def LVHF_DENS_NL_ATTEN_LB_DEFAULT
10310+* Default of DENS_NL_atten_LB
10311+* @see LVHF_ControlParams_st
10312+*/
10313+#define LVHF_DENS_NL_ATTEN_LB_DEFAULT (0)
10314+/**
10315+* @def LVHF_DENS_NL_ATTEN_LB_MIN
10316+* MinValue of DENS_NL_atten_LB
10317+* @see LVHF_ControlParams_st
10318+*/
10319+#define LVHF_DENS_NL_ATTEN_LB_MIN (0)
10320+/**
10321+* @def LVHF_DENS_NL_ATTEN_LB_MAX
10322+* MaxValue of DENS_NL_atten_LB
10323+* @see LVHF_ControlParams_st
10324+*/
10325+#define LVHF_DENS_NL_ATTEN_LB_MAX (2048)
10326+
10327+/**
10328+* @def LVHF_DENS_TAIL_ALPHA_HB_DEFAULT
10329+* Default of DENS_tail_alpha_HB
10330+* @see LVHF_ControlParams_st
10331+*/
10332+#define LVHF_DENS_TAIL_ALPHA_HB_DEFAULT (25395)
10333+/**
10334+* @def LVHF_DENS_TAIL_ALPHA_HB_MIN
10335+* MinValue of DENS_tail_alpha_HB
10336+* @see LVHF_ControlParams_st
10337+*/
10338+#define LVHF_DENS_TAIL_ALPHA_HB_MIN (0)
10339+/**
10340+* @def LVHF_DENS_TAIL_ALPHA_HB_MAX
10341+* MaxValue of DENS_tail_alpha_HB
10342+* @see LVHF_ControlParams_st
10343+*/
10344+#define LVHF_DENS_TAIL_ALPHA_HB_MAX (32767)
10345+
10346+/**
10347+* @def LVHF_DENS_TAIL_PORTION_HB_DEFAULT
10348+* Default of DENS_tail_portion_HB
10349+* @see LVHF_ControlParams_st
10350+*/
10351+#define LVHF_DENS_TAIL_PORTION_HB_DEFAULT (29491)
10352+/**
10353+* @def LVHF_DENS_TAIL_PORTION_HB_MIN
10354+* MinValue of DENS_tail_portion_HB
10355+* @see LVHF_ControlParams_st
10356+*/
10357+#define LVHF_DENS_TAIL_PORTION_HB_MIN (0)
10358+/**
10359+* @def LVHF_DENS_TAIL_PORTION_HB_MAX
10360+* MaxValue of DENS_tail_portion_HB
10361+* @see LVHF_ControlParams_st
10362+*/
10363+#define LVHF_DENS_TAIL_PORTION_HB_MAX (32767)
10364+
10365+/**
10366+* @def LVHF_DENS_GAMMA_E_HIGH_HB_DEFAULT
10367+* Default of DENS_gamma_e_high_HB
10368+* @see LVHF_ControlParams_st
10369+*/
10370+#define LVHF_DENS_GAMMA_E_HIGH_HB_DEFAULT (512)
10371+/**
10372+* @def LVHF_DENS_GAMMA_E_HIGH_HB_MIN
10373+* MinValue of DENS_gamma_e_high_HB
10374+* @see LVHF_ControlParams_st
10375+*/
10376+#define LVHF_DENS_GAMMA_E_HIGH_HB_MIN (0)
10377+/**
10378+* @def LVHF_DENS_GAMMA_E_HIGH_HB_MAX
10379+* MaxValue of DENS_gamma_e_high_HB
10380+* @see LVHF_ControlParams_st
10381+*/
10382+#define LVHF_DENS_GAMMA_E_HIGH_HB_MAX (32767)
10383+
10384+/**
10385+* @def LVHF_DENS_GAMMA_E_DT_HB_DEFAULT
10386+* Default of DENS_gamma_e_dt_HB
10387+* @see LVHF_ControlParams_st
10388+*/
10389+#define LVHF_DENS_GAMMA_E_DT_HB_DEFAULT (256)
10390+/**
10391+* @def LVHF_DENS_GAMMA_E_DT_HB_MIN
10392+* MinValue of DENS_gamma_e_dt_HB
10393+* @see LVHF_ControlParams_st
10394+*/
10395+#define LVHF_DENS_GAMMA_E_DT_HB_MIN (0)
10396+/**
10397+* @def LVHF_DENS_GAMMA_E_DT_HB_MAX
10398+* MaxValue of DENS_gamma_e_dt_HB
10399+* @see LVHF_ControlParams_st
10400+*/
10401+#define LVHF_DENS_GAMMA_E_DT_HB_MAX (32767)
10402+
10403+/**
10404+* @def LVHF_DENS_GAMMA_E_LOW_HB_DEFAULT
10405+* Default of DENS_gamma_e_low_HB
10406+* @see LVHF_ControlParams_st
10407+*/
10408+#define LVHF_DENS_GAMMA_E_LOW_HB_DEFAULT (256)
10409+/**
10410+* @def LVHF_DENS_GAMMA_E_LOW_HB_MIN
10411+* MinValue of DENS_gamma_e_low_HB
10412+* @see LVHF_ControlParams_st
10413+*/
10414+#define LVHF_DENS_GAMMA_E_LOW_HB_MIN (0)
10415+/**
10416+* @def LVHF_DENS_GAMMA_E_LOW_HB_MAX
10417+* MaxValue of DENS_gamma_e_low_HB
10418+* @see LVHF_ControlParams_st
10419+*/
10420+#define LVHF_DENS_GAMMA_E_LOW_HB_MAX (32767)
10421+
10422+/**
10423+* @def LVHF_DENS_NL_ATTEN_HB_DEFAULT
10424+* Default of DENS_NL_atten_HB
10425+* @see LVHF_ControlParams_st
10426+*/
10427+#define LVHF_DENS_NL_ATTEN_HB_DEFAULT (0)
10428+/**
10429+* @def LVHF_DENS_NL_ATTEN_HB_MIN
10430+* MinValue of DENS_NL_atten_HB
10431+* @see LVHF_ControlParams_st
10432+*/
10433+#define LVHF_DENS_NL_ATTEN_HB_MIN (0)
10434+/**
10435+* @def LVHF_DENS_NL_ATTEN_HB_MAX
10436+* MaxValue of DENS_NL_atten_HB
10437+* @see LVHF_ControlParams_st
10438+*/
10439+#define LVHF_DENS_NL_ATTEN_HB_MAX (2048)
10440+
10441+/**
10442+* @def LVHF_DENS_GAMMA_E_ALPHA_DEFAULT
10443+* Default of DENS_gamma_e_alpha
10444+* @see LVHF_ControlParams_st
10445+*/
10446+#define LVHF_DENS_GAMMA_E_ALPHA_DEFAULT (24000)
10447+/**
10448+* @def LVHF_DENS_GAMMA_E_ALPHA_MIN
10449+* MinValue of DENS_gamma_e_alpha
10450+* @see LVHF_ControlParams_st
10451+*/
10452+#define LVHF_DENS_GAMMA_E_ALPHA_MIN (0)
10453+/**
10454+* @def LVHF_DENS_GAMMA_E_ALPHA_MAX
10455+* MaxValue of DENS_gamma_e_alpha
10456+* @see LVHF_ControlParams_st
10457+*/
10458+#define LVHF_DENS_GAMMA_E_ALPHA_MAX (32767)
10459+
10460+/**
10461+* @def LVHF_DENS_GAMMA_N_DEFAULT
10462+* Default of DENS_gamma_n
10463+* @see LVHF_ControlParams_st
10464+*/
10465+#define LVHF_DENS_GAMMA_N_DEFAULT (280)
10466+/**
10467+* @def LVHF_DENS_GAMMA_N_MIN
10468+* MinValue of DENS_gamma_n
10469+* @see LVHF_ControlParams_st
10470+*/
10471+#define LVHF_DENS_GAMMA_N_MIN (0)
10472+/**
10473+* @def LVHF_DENS_GAMMA_N_MAX
10474+* MaxValue of DENS_gamma_n
10475+* @see LVHF_ControlParams_st
10476+*/
10477+#define LVHF_DENS_GAMMA_N_MAX (32767)
10478+
10479+/**
10480+* @def LVHF_DENS_SPDET_NEAR_DEFAULT
10481+* Default of DENS_spdet_near
10482+* @see LVHF_ControlParams_st
10483+*/
10484+#define LVHF_DENS_SPDET_NEAR_DEFAULT (512)
10485+/**
10486+* @def LVHF_DENS_SPDET_NEAR_MIN
10487+* MinValue of DENS_spdet_near
10488+* @see LVHF_ControlParams_st
10489+*/
10490+#define LVHF_DENS_SPDET_NEAR_MIN (0)
10491+/**
10492+* @def LVHF_DENS_SPDET_NEAR_MAX
10493+* MaxValue of DENS_spdet_near
10494+* @see LVHF_ControlParams_st
10495+*/
10496+#define LVHF_DENS_SPDET_NEAR_MAX (32767)
10497+
10498+/**
10499+* @def LVHF_DENS_SPDET_ACT_DEFAULT
10500+* Default of DENS_spdet_act
10501+* @see LVHF_ControlParams_st
10502+*/
10503+#define LVHF_DENS_SPDET_ACT_DEFAULT (768)
10504+/**
10505+* @def LVHF_DENS_SPDET_ACT_MIN
10506+* MinValue of DENS_spdet_act
10507+* @see LVHF_ControlParams_st
10508+*/
10509+#define LVHF_DENS_SPDET_ACT_MIN (0)
10510+/**
10511+* @def LVHF_DENS_SPDET_ACT_MAX
10512+* MaxValue of DENS_spdet_act
10513+* @see LVHF_ControlParams_st
10514+*/
10515+#define LVHF_DENS_SPDET_ACT_MAX (32767)
10516+
10517+/**
10518+* @def LVHF_DENS_LIMIT_NS_DEFAULT
10519+* Default of DENS_limit_ns
10520+* @see LVHF_ControlParams_st
10521+*/
10522+#define LVHF_DENS_LIMIT_NS_DEFAULT (10361)
10523+/**
10524+* @def LVHF_DENS_LIMIT_NS_MIN
10525+* MinValue of DENS_limit_ns
10526+* @see LVHF_ControlParams_st
10527+*/
10528+#define LVHF_DENS_LIMIT_NS_MIN (0)
10529+/**
10530+* @def LVHF_DENS_LIMIT_NS_MAX
10531+* MaxValue of DENS_limit_ns
10532+* @see LVHF_ControlParams_st
10533+*/
10534+#define LVHF_DENS_LIMIT_NS_MAX (32767)
10535+
10536+/**
10537+* @def LVHF_DENS_CNI_GAIN_DEFAULT
10538+* Default of DENS_CNI_Gain
10539+* @see LVHF_ControlParams_st
10540+*/
10541+#define LVHF_DENS_CNI_GAIN_DEFAULT (16384)
10542+/**
10543+* @def LVHF_DENS_CNI_GAIN_MIN
10544+* MinValue of DENS_CNI_Gain
10545+* @see LVHF_ControlParams_st
10546+*/
10547+#define LVHF_DENS_CNI_GAIN_MIN (0)
10548+/**
10549+* @def LVHF_DENS_CNI_GAIN_MAX
10550+* MaxValue of DENS_CNI_Gain
10551+* @see LVHF_ControlParams_st
10552+*/
10553+#define LVHF_DENS_CNI_GAIN_MAX (32767)
10554+
10555+/**
10556+* @def LVHF_DENS_NFE_BLOCKSIZE_DEFAULT
10557+* Default of DENS_NFE_blocksize
10558+* @see LVHF_ControlParams_st
10559+*/
10560+#define LVHF_DENS_NFE_BLOCKSIZE_DEFAULT (150)
10561+/**
10562+* @def LVHF_DENS_NFE_BLOCKSIZE_MIN
10563+* MinValue of DENS_NFE_blocksize
10564+* @see LVHF_ControlParams_st
10565+*/
10566+#define LVHF_DENS_NFE_BLOCKSIZE_MIN (0)
10567+/**
10568+* @def LVHF_DENS_NFE_BLOCKSIZE_MAX
10569+* MaxValue of DENS_NFE_blocksize
10570+* @see LVHF_ControlParams_st
10571+*/
10572+#define LVHF_DENS_NFE_BLOCKSIZE_MAX (32767)
10573+
10574+/**
10575+* @def LVHF_SPDET_FAR_DEFAULT
10576+* Default of SPDET_far
10577+* @see LVHF_ControlParams_st
10578+*/
10579+#define LVHF_SPDET_FAR_DEFAULT (16384)
10580+/**
10581+* @def LVHF_SPDET_FAR_MIN
10582+* MinValue of SPDET_far
10583+* @see LVHF_ControlParams_st
10584+*/
10585+#define LVHF_SPDET_FAR_MIN (0)
10586+/**
10587+* @def LVHF_SPDET_FAR_MAX
10588+* MaxValue of SPDET_far
10589+* @see LVHF_ControlParams_st
10590+*/
10591+#define LVHF_SPDET_FAR_MAX (32767)
10592+
10593+/**
10594+* @def LVHF_SPDET_MIC_DEFAULT
10595+* Default of SPDET_mic
10596+* @see LVHF_ControlParams_st
10597+*/
10598+#define LVHF_SPDET_MIC_DEFAULT (16384)
10599+/**
10600+* @def LVHF_SPDET_MIC_MIN
10601+* MinValue of SPDET_mic
10602+* @see LVHF_ControlParams_st
10603+*/
10604+#define LVHF_SPDET_MIC_MIN (0)
10605+/**
10606+* @def LVHF_SPDET_MIC_MAX
10607+* MaxValue of SPDET_mic
10608+* @see LVHF_ControlParams_st
10609+*/
10610+#define LVHF_SPDET_MIC_MAX (32767)
10611+
10612+/**
10613+* @def LVHF_SPDET_X_CLIP_DEFAULT
10614+* Default of SPDET_x_clip
10615+* @see LVHF_ControlParams_st
10616+*/
10617+#define LVHF_SPDET_X_CLIP_DEFAULT (0)
10618+/**
10619+* @def LVHF_SPDET_X_CLIP_MIN
10620+* MinValue of SPDET_x_clip
10621+* @see LVHF_ControlParams_st
10622+*/
10623+#define LVHF_SPDET_X_CLIP_MIN (0)
10624+/**
10625+* @def LVHF_SPDET_X_CLIP_MAX
10626+* MaxValue of SPDET_x_clip
10627+* @see LVHF_ControlParams_st
10628+*/
10629+#define LVHF_SPDET_X_CLIP_MAX (32767)
10630+
10631+/**
10632+* @def LVHF_PCD_THRESHOLD_DEFAULT
10633+* Default of PCD_threshold
10634+* @see LVHF_ControlParams_st
10635+*/
10636+#define LVHF_PCD_THRESHOLD_DEFAULT (20000)
10637+/**
10638+* @def LVHF_PCD_THRESHOLD_MIN
10639+* MinValue of PCD_threshold
10640+* @see LVHF_ControlParams_st
10641+*/
10642+#define LVHF_PCD_THRESHOLD_MIN (0)
10643+/**
10644+* @def LVHF_PCD_THRESHOLD_MAX
10645+* MaxValue of PCD_threshold
10646+* @see LVHF_ControlParams_st
10647+*/
10648+#define LVHF_PCD_THRESHOLD_MAX (32767)
10649+
10650+/**
10651+* @def LVHF_PCD_TAPS_DEFAULT
10652+* Default of PCD_taps
10653+* @see LVHF_ControlParams_st
10654+*/
10655+#define LVHF_PCD_TAPS_DEFAULT (16)
10656+/**
10657+* @def LVHF_PCD_TAPS_MIN
10658+* MinValue of PCD_taps
10659+* @see LVHF_ControlParams_st
10660+*/
10661+#define LVHF_PCD_TAPS_MIN (16)
10662+/**
10663+* @def LVHF_PCD_TAPS_MAX
10664+* MaxValue of PCD_taps
10665+* @see LVHF_ControlParams_st
10666+*/
10667+#define LVHF_PCD_TAPS_MAX (64)
10668+
10669+/**
10670+* @def LVHF_PCD_ERL_DEFAULT
10671+* Default of PCD_erl
10672+* @see LVHF_ControlParams_st
10673+*/
10674+#define LVHF_PCD_ERL_DEFAULT (64)
10675+/**
10676+* @def LVHF_PCD_ERL_MIN
10677+* MinValue of PCD_erl
10678+* @see LVHF_ControlParams_st
10679+*/
10680+#define LVHF_PCD_ERL_MIN (64)
10681+/**
10682+* @def LVHF_PCD_ERL_MAX
10683+* MaxValue of PCD_erl
10684+* @see LVHF_ControlParams_st
10685+*/
10686+#define LVHF_PCD_ERL_MAX (32767)
10687+
10688+/**
10689+* @def LVHF_PCD_MINIMUM_ERL_DEFAULT
10690+* Default of PCD_minimum_erl
10691+* @see LVHF_ControlParams_st
10692+*/
10693+#define LVHF_PCD_MINIMUM_ERL_DEFAULT (64)
10694+/**
10695+* @def LVHF_PCD_MINIMUM_ERL_MIN
10696+* MinValue of PCD_minimum_erl
10697+* @see LVHF_ControlParams_st
10698+*/
10699+#define LVHF_PCD_MINIMUM_ERL_MIN (64)
10700+/**
10701+* @def LVHF_PCD_MINIMUM_ERL_MAX
10702+* MaxValue of PCD_minimum_erl
10703+* @see LVHF_ControlParams_st
10704+*/
10705+#define LVHF_PCD_MINIMUM_ERL_MAX (32767)
10706+
10707+/**
10708+* @def LVHF_PCD_ERL_STEP_DEFAULT
10709+* Default of PCD_erl_step
10710+* @see LVHF_ControlParams_st
10711+*/
10712+#define LVHF_PCD_ERL_STEP_DEFAULT (16800)
10713+/**
10714+* @def LVHF_PCD_ERL_STEP_MIN
10715+* MinValue of PCD_erl_step
10716+* @see LVHF_ControlParams_st
10717+*/
10718+#define LVHF_PCD_ERL_STEP_MIN (16384)
10719+/**
10720+* @def LVHF_PCD_ERL_STEP_MAX
10721+* MaxValue of PCD_erl_step
10722+* @see LVHF_ControlParams_st
10723+*/
10724+#define LVHF_PCD_ERL_STEP_MAX (32767)
10725+
10726+/**
10727+* @def LVHF_PCD_GAMMA_E_RESCUE_DEFAULT
10728+* Default of PCD_gamma_e_rescue
10729+* @see LVHF_ControlParams_st
10730+*/
10731+#define LVHF_PCD_GAMMA_E_RESCUE_DEFAULT (5000)
10732+/**
10733+* @def LVHF_PCD_GAMMA_E_RESCUE_MIN
10734+* MinValue of PCD_gamma_e_rescue
10735+* @see LVHF_ControlParams_st
10736+*/
10737+#define LVHF_PCD_GAMMA_E_RESCUE_MIN (0)
10738+/**
10739+* @def LVHF_PCD_GAMMA_E_RESCUE_MAX
10740+* MaxValue of PCD_gamma_e_rescue
10741+* @see LVHF_ControlParams_st
10742+*/
10743+#define LVHF_PCD_GAMMA_E_RESCUE_MAX (32767)
10744+
10745+/**
10746+* @def LVBD_BD_OPERATINGMODE_DEFAULT
10747+* Default of BD_OperatingMode
10748+* @see LVBD_ControlParams_st
10749+*/
10750+#define LVBD_BD_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
10751+
10752+/**
10753+* @def LVBD_BULKDELAY_DEFAULT
10754+* Default of BulkDelay
10755+* @see LVBD_ControlParams_st
10756+*/
10757+#define LVBD_BULKDELAY_DEFAULT (0)
10758+/**
10759+* @def LVBD_BULKDELAY_MIN
10760+* MinValue of BulkDelay
10761+* @see LVBD_ControlParams_st
10762+*/
10763+#define LVBD_BULKDELAY_MIN (0)
10764+/**
10765+* @def LVBD_BULKDELAY_MAX
10766+* MaxValue of BulkDelay
10767+* @see LVBD_ControlParams_st
10768+*/
10769+#define LVBD_BULKDELAY_MAX (6400)
10770+
10771+/**
10772+* @def LVBD_BD_GAIN_DEFAULT
10773+* Default of BD_Gain
10774+* @see LVBD_ControlParams_st
10775+*/
10776+#define LVBD_BD_GAIN_DEFAULT (8192)
10777+/**
10778+* @def LVBD_BD_GAIN_MIN
10779+* MinValue of BD_Gain
10780+* @see LVBD_ControlParams_st
10781+*/
10782+#define LVBD_BD_GAIN_MIN (0)
10783+/**
10784+* @def LVBD_BD_GAIN_MAX
10785+* MaxValue of BD_Gain
10786+* @see LVBD_ControlParams_st
10787+*/
10788+#define LVBD_BD_GAIN_MAX (32767)
10789+
10790+/**
10791+* @def LVVE_TX_OPERATINGMODE_DEFAULT
10792+* Default of OperatingMode
10793+* @see LVVE_Tx_ControlParams_st
10794+*/
10795+#define LVVE_TX_OPERATINGMODE_DEFAULT (LVVE_TX_MODE_OFF)
10796+
10797+/**
10798+* @def LVVE_TX_MUTE_DEFAULT
10799+* Default of Mute
10800+* @see LVVE_Tx_ControlParams_st
10801+*/
10802+#define LVVE_TX_MUTE_DEFAULT (LVM_MODE_OFF)
10803+
10804+/**
10805+* @def LVVE_TX_BD_OPERATINGMODE_DEFAULT
10806+* Default of BD_OperatingMode
10807+* @see LVVE_Tx_ControlParams_st
10808+*/
10809+#define LVVE_TX_BD_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
10810+
10811+/**
10812+* @def LVVE_TX_BULKDELAY_DEFAULT
10813+* Default of BulkDelay
10814+* @see LVVE_Tx_ControlParams_st
10815+*/
10816+#define LVVE_TX_BULKDELAY_DEFAULT (0)
10817+/**
10818+* @def LVVE_TX_BULKDELAY_MIN
10819+* MinValue of BulkDelay
10820+* @see LVVE_Tx_ControlParams_st
10821+*/
10822+#define LVVE_TX_BULKDELAY_MIN (0)
10823+/**
10824+* @def LVVE_TX_BULKDELAY_MAX
10825+* MaxValue of BulkDelay
10826+* @see LVVE_Tx_ControlParams_st
10827+*/
10828+#define LVVE_TX_BULKDELAY_MAX (6400)
10829+
10830+/**
10831+* @def LVVE_TX_BD_GAIN_DEFAULT
10832+* Default of BD_Gain
10833+* @see LVVE_Tx_ControlParams_st
10834+*/
10835+#define LVVE_TX_BD_GAIN_DEFAULT (8192)
10836+/**
10837+* @def LVVE_TX_BD_GAIN_MIN
10838+* MinValue of BD_Gain
10839+* @see LVVE_Tx_ControlParams_st
10840+*/
10841+#define LVVE_TX_BD_GAIN_MIN (0)
10842+/**
10843+* @def LVVE_TX_BD_GAIN_MAX
10844+* MaxValue of BD_Gain
10845+* @see LVVE_Tx_ControlParams_st
10846+*/
10847+#define LVVE_TX_BD_GAIN_MAX (32767)
10848+
10849+/**
10850+* @def LVVE_TX_VOL_OPERATINGMODE_DEFAULT
10851+* Default of VOL_OperatingMode
10852+* @see LVVE_Tx_ControlParams_st
10853+*/
10854+#define LVVE_TX_VOL_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
10855+
10856+/**
10857+* @def LVVE_TX_VOL_GAIN_DEFAULT
10858+* Default of VOL_Gain
10859+* @see LVVE_Tx_ControlParams_st
10860+*/
10861+#define LVVE_TX_VOL_GAIN_DEFAULT (0)
10862+/**
10863+* @def LVVE_TX_VOL_GAIN_MIN
10864+* MinValue of VOL_Gain
10865+* @see LVVE_Tx_ControlParams_st
10866+*/
10867+#define LVVE_TX_VOL_GAIN_MIN (-96)
10868+/**
10869+* @def LVVE_TX_VOL_GAIN_MAX
10870+* MaxValue of VOL_Gain
10871+* @see LVVE_Tx_ControlParams_st
10872+*/
10873+#define LVVE_TX_VOL_GAIN_MAX (24)
10874+
10875+/**
10876+* @def LVVE_TX_HPF_OPERATINGMODE_DEFAULT
10877+* Default of HPF_OperatingMode
10878+* @see LVVE_Tx_ControlParams_st
10879+*/
10880+#define LVVE_TX_HPF_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
10881+
10882+/**
10883+* @def LVVE_TX_MIC_HPF_CORNERFREQ_DEFAULT
10884+* Default of MIC_HPF_CornerFreq
10885+* @see LVVE_Tx_ControlParams_st
10886+*/
10887+#define LVVE_TX_MIC_HPF_CORNERFREQ_DEFAULT (50)
10888+/**
10889+* @def LVVE_TX_MIC_HPF_CORNERFREQ_MIN
10890+* MinValue of MIC_HPF_CornerFreq
10891+* @see LVVE_Tx_ControlParams_st
10892+*/
10893+#define LVVE_TX_MIC_HPF_CORNERFREQ_MIN (50)
10894+/**
10895+* @def LVVE_TX_MIC_HPF_CORNERFREQ_MAX
10896+* MaxValue of MIC_HPF_CornerFreq
10897+* @see LVVE_Tx_ControlParams_st
10898+*/
10899+#define LVVE_TX_MIC_HPF_CORNERFREQ_MAX (1500)
10900+
10901+
10902+
10903+
10904+/**
10905+* @def LVVE_TX_EQ_OPERATINGMODE_DEFAULT
10906+* Default of EQ_OperatingMode
10907+* @see LVVE_Tx_ControlParams_st
10908+*/
10909+#define LVVE_TX_EQ_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
10910+
10911+//adb by xuxinqiang 20150519
10912+#define LVVE_MAX_EQ_LENGTH_NB 32 /* Maximum equaliser length for narrowband configuration */
10913+#define LVVE_MAX_EQ_LENGTH_WB 64 /* Maximum equaliser length for wideband configuration */
10914+
10915+
10916+/**
10917+* @def LVVC_GAIN_DEFAULT
10918+* Default of Gain
10919+* @see LVVC_ControlParams_st
10920+*/
10921+#define LVVC_GAIN_DEFAULT (0)
10922+/**
10923+* @def LVVC_GAIN_MIN
10924+* MinValue of Gain
10925+* @see LVVC_ControlParams_st
10926+*/
10927+#define LVVC_GAIN_MIN (0)
10928+/**
10929+* @def LVVC_GAIN_MAX
10930+* MaxValue of Gain
10931+* @see LVVC_ControlParams_st
10932+*/
10933+#define LVVC_GAIN_MAX (32767)
10934+
10935+/**
10936+* @def LVVC_SPDETECTED_DEFAULT
10937+* Default of SpDetected
10938+* @see LVVC_ControlParams_st
10939+*/
10940+#define LVVC_SPDETECTED_DEFAULT (0)
10941+/**
10942+* @def LVVC_SPDETECTED_MIN
10943+* MinValue of SpDetected
10944+* @see LVVC_ControlParams_st
10945+*/
10946+#define LVVC_SPDETECTED_MIN (0)
10947+/**
10948+* @def LVVC_SPDETECTED_MAX
10949+* MaxValue of SpDetected
10950+* @see LVVC_ControlParams_st
10951+*/
10952+#define LVVC_SPDETECTED_MAX (1)
10953+
10954+/**
10955+* @def LVWM_AVL_GAIN_DEFAULT
10956+* Default of AVL_Gain
10957+* @see LVWM_ControlParams_st
10958+*/
10959+#define LVWM_AVL_GAIN_DEFAULT (0)
10960+/**
10961+* @def LVWM_AVL_GAIN_MIN
10962+* MinValue of AVL_Gain
10963+* @see LVWM_ControlParams_st
10964+*/
10965+#define LVWM_AVL_GAIN_MIN (0)
10966+/**
10967+* @def LVWM_AVL_GAIN_MAX
10968+* MaxValue of AVL_Gain
10969+* @see LVWM_ControlParams_st
10970+*/
10971+#define LVWM_AVL_GAIN_MAX (32767)
10972+
10973+
10974+
10975+/**
10976+* @def LVVE_RX_DUMMY_DEFAULT
10977+* Default of dummy
10978+* @see LVVE_Rx_ControlParams_st
10979+*/
10980+#define LVVE_RX_DUMMY_DEFAULT (0)
10981+/**
10982+* @def LVVE_RX_DUMMY_MIN
10983+* MinValue of dummy
10984+* @see LVVE_Rx_ControlParams_st
10985+*/
10986+#define LVVE_RX_DUMMY_MIN (-128)
10987+/**
10988+* @def LVVE_RX_DUMMY_MAX
10989+* MaxValue of dummy
10990+* @see LVVE_Rx_ControlParams_st
10991+*/
10992+#define LVVE_RX_DUMMY_MAX (127)
10993+
10994+/**
10995+* @def LVNV_STATUS_DEFAULT
10996+* Default of status
10997+* @see LVNV_ControlParams_st
10998+*/
10999+#define LVNV_STATUS_DEFAULT (0)
11000+
11001+/**
11002+* @def LVNV_DUMMY_DEFAULT
11003+* Default of Dummy
11004+* @see LVNV_ControlParams_st
11005+*/
11006+#define LVNV_DUMMY_DEFAULT (0)
11007+/**
11008+* @def LVNV_DUMMY_MIN
11009+* MinValue of Dummy
11010+* @see LVNV_ControlParams_st
11011+*/
11012+#define LVNV_DUMMY_MIN (0)
11013+/**
11014+* @def LVNV_DUMMY_MAX
11015+* MaxValue of Dummy
11016+* @see LVNV_ControlParams_st
11017+*/
11018+#define LVNV_DUMMY_MAX (0)
11019+
11020+/**
11021+* @def LVNV_PNLMS0_LB_COEFFS_DEFAULT
11022+* Default of pNLMS0_LB_Coeffs
11023+* @see LVNV_ControlParams_st
11024+*/
11025+#define LVNV_PNLMS0_LB_COEFFS_DEFAULT (0)
11026+/**
11027+* @def LVNV_PNLMS0_LB_COEFFS_MIN
11028+* MinValue of pNLMS0_LB_Coeffs
11029+* @see LVNV_ControlParams_st
11030+*/
11031+#define LVNV_PNLMS0_LB_COEFFS_MIN (-2147483648)
11032+/**
11033+* @def LVNV_PNLMS0_LB_COEFFS_MAX
11034+* MaxValue of pNLMS0_LB_Coeffs
11035+* @see LVNV_ControlParams_st
11036+*/
11037+#define LVNV_PNLMS0_LB_COEFFS_MAX (2147483647)
11038+
11039+/**
11040+* @def LVNV_PNLMS0_HB_COEFFS_DEFAULT
11041+* Default of pNLMS0_HB_Coeffs
11042+* @see LVNV_ControlParams_st
11043+*/
11044+#define LVNV_PNLMS0_HB_COEFFS_DEFAULT (0)
11045+/**
11046+* @def LVNV_PNLMS0_HB_COEFFS_MIN
11047+* MinValue of pNLMS0_HB_Coeffs
11048+* @see LVNV_ControlParams_st
11049+*/
11050+#define LVNV_PNLMS0_HB_COEFFS_MIN (-2147483648)
11051+/**
11052+* @def LVNV_PNLMS0_HB_COEFFS_MAX
11053+* MaxValue of pNLMS0_HB_Coeffs
11054+* @see LVNV_ControlParams_st
11055+*/
11056+#define LVNV_PNLMS0_HB_COEFFS_MAX (2147483647)
11057+
11058+/**
11059+* @def LVNV_PNLMS1_LB_COEFFS_DEFAULT
11060+* Default of pNLMS1_LB_Coeffs
11061+* @see LVNV_ControlParams_st
11062+*/
11063+#define LVNV_PNLMS1_LB_COEFFS_DEFAULT (0)
11064+/**
11065+* @def LVNV_PNLMS1_LB_COEFFS_MIN
11066+* MinValue of pNLMS1_LB_Coeffs
11067+* @see LVNV_ControlParams_st
11068+*/
11069+#define LVNV_PNLMS1_LB_COEFFS_MIN (-2147483648)
11070+/**
11071+* @def LVNV_PNLMS1_LB_COEFFS_MAX
11072+* MaxValue of pNLMS1_LB_Coeffs
11073+* @see LVNV_ControlParams_st
11074+*/
11075+#define LVNV_PNLMS1_LB_COEFFS_MAX (2147483647)
11076+
11077+/**
11078+* @def LVNV_PNLMS1_HB_COEFFS_DEFAULT
11079+* Default of pNLMS1_HB_Coeffs
11080+* @see LVNV_ControlParams_st
11081+*/
11082+#define LVNV_PNLMS1_HB_COEFFS_DEFAULT (0)
11083+/**
11084+* @def LVNV_PNLMS1_HB_COEFFS_MIN
11085+* MinValue of pNLMS1_HB_Coeffs
11086+* @see LVNV_ControlParams_st
11087+*/
11088+#define LVNV_PNLMS1_HB_COEFFS_MIN (-2147483648)
11089+/**
11090+* @def LVNV_PNLMS1_HB_COEFFS_MAX
11091+* MaxValue of pNLMS1_HB_Coeffs
11092+* @see LVNV_ControlParams_st
11093+*/
11094+#define LVNV_PNLMS1_HB_COEFFS_MAX (2147483647)
11095+
11096+/**
11097+* @def LVNV_PFSB_COEFFS_DEFAULT
11098+* Default of pFSB_Coeffs
11099+* @see LVNV_ControlParams_st
11100+*/
11101+#define LVNV_PFSB_COEFFS_DEFAULT (0)
11102+/**
11103+* @def LVNV_PFSB_COEFFS_MIN
11104+* MinValue of pFSB_Coeffs
11105+* @see LVNV_ControlParams_st
11106+*/
11107+#define LVNV_PFSB_COEFFS_MIN (-2147483648)
11108+/**
11109+* @def LVNV_PFSB_COEFFS_MAX
11110+* MaxValue of pFSB_Coeffs
11111+* @see LVNV_ControlParams_st
11112+*/
11113+#define LVNV_PFSB_COEFFS_MAX (2147483647)
11114+
11115+/**
11116+* @def LVNV_PGSC_COEFFS_DEFAULT
11117+* Default of pGSC_Coeffs
11118+* @see LVNV_ControlParams_st
11119+*/
11120+#define LVNV_PGSC_COEFFS_DEFAULT (0)
11121+/**
11122+* @def LVNV_PGSC_COEFFS_MIN
11123+* MinValue of pGSC_Coeffs
11124+* @see LVNV_ControlParams_st
11125+*/
11126+#define LVNV_PGSC_COEFFS_MIN (-2147483648)
11127+/**
11128+* @def LVNV_PGSC_COEFFS_MAX
11129+* MaxValue of pGSC_Coeffs
11130+* @see LVNV_ControlParams_st
11131+*/
11132+#define LVNV_PGSC_COEFFS_MAX (2147483647)
11133+
11134+/**
11135+* @def LVNV_PMICPOWSP_DEFAULT
11136+* Default of pMicPowSp
11137+* @see LVNV_ControlParams_st
11138+*/
11139+#define LVNV_PMICPOWSP_DEFAULT (0)
11140+/**
11141+* @def LVNV_PMICPOWSP_MIN
11142+* MinValue of pMicPowSp
11143+* @see LVNV_ControlParams_st
11144+*/
11145+#define LVNV_PMICPOWSP_MIN (0)
11146+/**
11147+* @def LVNV_PMICPOWSP_MAX
11148+* MaxValue of pMicPowSp
11149+* @see LVNV_ControlParams_st
11150+*/
11151+#define LVNV_PMICPOWSP_MAX (1)
11152+
11153+/**
11154+* @def LVNV_PCALFACTOR_DEFAULT
11155+* Default of pCalFactor
11156+* @see LVNV_ControlParams_st
11157+*/
11158+#define LVNV_PCALFACTOR_DEFAULT (0)
11159+/**
11160+* @def LVNV_PCALFACTOR_MIN
11161+* MinValue of pCalFactor
11162+* @see LVNV_ControlParams_st
11163+*/
11164+#define LVNV_PCALFACTOR_MIN (0)
11165+/**
11166+* @def LVNV_PCALFACTOR_MAX
11167+* MaxValue of pCalFactor
11168+* @see LVNV_ControlParams_st
11169+*/
11170+#define LVNV_PCALFACTOR_MAX (32767)
11171+
11172+/**
11173+* @def LVNV_PCALREADY_DEFAULT
11174+* Default of pCalReady
11175+* @see LVNV_ControlParams_st
11176+*/
11177+#define LVNV_PCALREADY_DEFAULT (0)
11178+/**
11179+* @def LVNV_PCALREADY_MIN
11180+* MinValue of pCalReady
11181+* @see LVNV_ControlParams_st
11182+*/
11183+#define LVNV_PCALREADY_MIN (0)
11184+/**
11185+* @def LVNV_PCALREADY_MAX
11186+* MaxValue of pCalReady
11187+* @see LVNV_ControlParams_st
11188+*/
11189+#define LVNV_PCALREADY_MAX (2)
11190+
11191+/**
11192+* @def LVNV_PBROADSIDE_INTERCC_DEFAULT
11193+* Default of pBroadside_interCC
11194+* @see LVNV_ControlParams_st
11195+*/
11196+#define LVNV_PBROADSIDE_INTERCC_DEFAULT (0)
11197+/**
11198+* @def LVNV_PBROADSIDE_INTERCC_MIN
11199+* MinValue of pBroadside_interCC
11200+* @see LVNV_ControlParams_st
11201+*/
11202+#define LVNV_PBROADSIDE_INTERCC_MIN (0)
11203+/**
11204+* @def LVNV_PBROADSIDE_INTERCC_MAX
11205+* MaxValue of pBroadside_interCC
11206+* @see LVNV_ControlParams_st
11207+*/
11208+#define LVNV_PBROADSIDE_INTERCC_MAX (32767)
11209+
11210+/**
11211+* @def LVHF_GAMMAE_DEFAULT
11212+* Default of gammae
11213+* @see LVHF_ControlParams_st
11214+*/
11215+#define LVHF_GAMMAE_DEFAULT (0)
11216+/**
11217+* @def LVHF_GAMMAE_MIN
11218+* MinValue of gammae
11219+* @see LVHF_ControlParams_st
11220+*/
11221+#define LVHF_GAMMAE_MIN (0)
11222+/**
11223+* @def LVHF_GAMMAE_MAX
11224+* MaxValue of gammae
11225+* @see LVHF_ControlParams_st
11226+*/
11227+#define LVHF_GAMMAE_MAX (32767)
11228+
11229+/**
11230+* @def LVHF_STATUS_DEFAULT
11231+* Default of status
11232+* @see LVHF_ControlParams_st
11233+*/
11234+#define LVHF_STATUS_DEFAULT (0)
11235+
11236+/**
11237+* @def LVHF_PNLMS_LB_COEFS_DEFAULT
11238+* Default of pNLMS_LB_Coefs
11239+* @see LVHF_ControlParams_st
11240+*/
11241+#define LVHF_PNLMS_LB_COEFS_DEFAULT (0)
11242+/**
11243+* @def LVHF_PNLMS_LB_COEFS_MIN
11244+* MinValue of pNLMS_LB_Coefs
11245+* @see LVHF_ControlParams_st
11246+*/
11247+#define LVHF_PNLMS_LB_COEFS_MIN (-2147483648)
11248+/**
11249+* @def LVHF_PNLMS_LB_COEFS_MAX
11250+* MaxValue of pNLMS_LB_Coefs
11251+* @see LVHF_ControlParams_st
11252+*/
11253+#define LVHF_PNLMS_LB_COEFS_MAX (2147483647)
11254+
11255+/**
11256+* @def LVHF_PNLMS_HB_COEFS_DEFAULT
11257+* Default of pNLMS_HB_Coefs
11258+* @see LVHF_ControlParams_st
11259+*/
11260+#define LVHF_PNLMS_HB_COEFS_DEFAULT (0)
11261+/**
11262+* @def LVHF_PNLMS_HB_COEFS_MIN
11263+* MinValue of pNLMS_HB_Coefs
11264+* @see LVHF_ControlParams_st
11265+*/
11266+#define LVHF_PNLMS_HB_COEFS_MIN (-2147483648)
11267+/**
11268+* @def LVHF_PNLMS_HB_COEFS_MAX
11269+* MaxValue of pNLMS_HB_Coefs
11270+* @see LVHF_ControlParams_st
11271+*/
11272+#define LVHF_PNLMS_HB_COEFS_MAX (2147483647)
11273+
11274+/**
11275+* @def LVHF_PPCD_COEFS_DEFAULT
11276+* Default of pPCD_Coefs
11277+* @see LVHF_ControlParams_st
11278+*/
11279+#define LVHF_PPCD_COEFS_DEFAULT (0)
11280+/**
11281+* @def LVHF_PPCD_COEFS_MIN
11282+* MinValue of pPCD_Coefs
11283+* @see LVHF_ControlParams_st
11284+*/
11285+#define LVHF_PPCD_COEFS_MIN (-2147483648)
11286+/**
11287+* @def LVHF_PPCD_COEFS_MAX
11288+* MaxValue of pPCD_Coefs
11289+* @see LVHF_ControlParams_st
11290+*/
11291+#define LVHF_PPCD_COEFS_MAX (2147483647)
11292+
11293+
11294+
11295+
11296+/**
11297+* @def LVVE_TX_DUMMY_DEFAULT
11298+* Default of dummy
11299+* @see LVVE_Tx_ControlParams_st
11300+*/
11301+#define LVVE_TX_DUMMY_DEFAULT (0)
11302+/**
11303+* @def LVVE_TX_DUMMY_MIN
11304+* MinValue of dummy
11305+* @see LVVE_Tx_ControlParams_st
11306+*/
11307+#define LVVE_TX_DUMMY_MIN (-128)
11308+/**
11309+* @def LVVE_TX_DUMMY_MAX
11310+* MaxValue of dummy
11311+* @see LVVE_Tx_ControlParams_st
11312+*/
11313+#define LVVE_TX_DUMMY_MAX (127)
11314+
11315+/**
11316+* Enum type for LVVIDHeader_MessageID_en
11317+*/
11318+typedef enum
11319+{
11320+ LVVE_RX_PRESET = 0, ///< VID header Message ID for LVVE_Rx presets
11321+ LVVE_TX_PRESET = 1, ///< VID header Message ID for LVVE_Tx Presets
11322+ LVVIDHEADER_MESSAGEID_EN_DUMMY = LVM_MAXENUM
11323+} LVVIDHeader_MessageID_en;
11324+
11325+/**
11326+* Enum type for LVVIDHeader_ReturnStatus_en
11327+*/
11328+typedef enum
11329+{
11330+ LVVIDHEADER_NULLADDRESS = 0, ///< LVVIDHeader module returns NULL address error
11331+ LVVIDHEADER_SUCCESS = 1, ///< LVVIDHeader module returns with success
11332+ LVVIDHEADER_RETURNSTATUS_EN_DUMMY = LVM_MAXENUM
11333+} LVVIDHeader_ReturnStatus_en;
11334+
11335+/**
11336+* Enum type for LVVE_Rx_Mode_en
11337+*/
11338+typedef enum
11339+{
11340+ LVVE_RX_MODE_OFF = 0, ///< Rx voice engine is turned off
11341+ LVVE_RX_MODE_ON = 1, ///< Rx voice in will run
11342+ LVVE_RX_MODE_BYPASS = 2, ///< Rx voice engine will run but output will be ignored
11343+ LVVE_RX_MODE_EN_DUMMY = LVM_MAXENUM
11344+} LVVE_Rx_Mode_en;
11345+
11346+/**
11347+* Enum type for LVVE_Tx_Mode_en
11348+*/
11349+typedef enum
11350+{
11351+ LVVE_TX_MODE_OFF = 0, ///< Tx in LVVE engine is disabled
11352+ LVVE_TX_MODE_ON = 1, ///< TX in LVVE is enabled
11353+ LVVE_TX_MODE_BYPASS_MIC0 = 2, ///< TX in LVVE engine will run but output will be Mic0 signal
11354+ LVVE_TX_MODE_BYPASS_MIC1 = 3, ///< Tx in LVVE engine will run but output will be Mic1 signal
11355+ LVVE_TX_MODE_BYPASS_REF = 4, ///< Tx in LVVE engine will run but output will be Ref signal
11356+ LVVE_TX_MODE_EN_DUMMY = LVM_MAXENUM
11357+} LVVE_Tx_Mode_en;
11358+
11359+/****************************************************************************************/
11360+/* */
11361+/* Structures */
11362+/* */
11363+/****************************************************************************************/
11364+/**
11365+* The status parameters are used to retrieve the status of the module.
11366+* @see LVVC_GetStatusParameters
11367+*/
11368+typedef struct
11369+{
11370+ /**
11371+ The internal gain setting used by VoiceClarity.
11372+ <table border>
11373+ <tr>
11374+ <td><b>Q-format</b></td>
11375+ <td><b>Min</b></td>
11376+ <td><b>Default</b></td>
11377+ <td><b>Max</b></td>
11378+ </tr>
11379+ <tr>
11380+ <td>6.9</td>
11381+ <td>@ref LVVC_GAIN_MIN (0)</td>
11382+ <td>@ref LVVC_GAIN_DEFAULT (0)</td>
11383+ <td>@ref LVVC_GAIN_MAX (32767)</td>
11384+ </tr>
11385+ </table> */
11386+ LVM_INT16 Gain; ///< Gain
11387+
11388+ /**
11389+ 0 (no detection) or 1 (detection).
11390+ <table border>
11391+ <tr>
11392+ <td><b>Q-format</b></td>
11393+ <td><b>Min</b></td>
11394+ <td><b>Default</b></td>
11395+ <td><b>Max</b></td>
11396+ </tr>
11397+ <tr>
11398+ <td>15.0</td>
11399+ <td>@ref LVVC_SPDETECTED_MIN (0)</td>
11400+ <td>@ref LVVC_SPDETECTED_DEFAULT (0)</td>
11401+ <td>@ref LVVC_SPDETECTED_MAX (1)</td>
11402+ </tr>
11403+ </table> */
11404+ LVM_INT16 SpDetected; ///< The speech detector flag.
11405+
11406+} LVVC_StatusParams_st;
11407+
11408+/**
11409+* The status parameters are used to retrieve the status of the module.
11410+* @see LVWM_GetStatusParameters
11411+*/
11412+typedef struct
11413+{
11414+ /**
11415+ The internal gain setting used by WhisperMode in dB.
11416+ <table border>
11417+ <tr>
11418+ <td><b>Q-format</b></td>
11419+ <td><b>Min</b></td>
11420+ <td><b>Default</b></td>
11421+ <td><b>Max</b></td>
11422+ </tr>
11423+ <tr>
11424+ <td>6.9</td>
11425+ <td>@ref LVWM_AVL_GAIN_MIN (0)</td>
11426+ <td>@ref LVWM_AVL_GAIN_DEFAULT (0)</td>
11427+ <td>@ref LVWM_AVL_GAIN_MAX (32767)</td>
11428+ </tr>
11429+ </table> */
11430+ LVM_INT16 AVL_Gain; ///< gain (dB)
11431+
11432+} LVWM_StatusParams_st;
11433+
11434+/**
11435+* The status parameters are used to retrieve the status of the module.
11436+* @see LVVE_Rx_GetStatusParameters
11437+*/
11438+typedef struct
11439+{
11440+ /**
11441+ Voice Clarity Status Parameter Structure.
11442+ */
11443+ LVVC_StatusParams_st VC_StatusParams; ///< Voice Clarity Status Parameter Structure
11444+
11445+ /**
11446+ Whisper Mode Status Parameter Structure.
11447+ */
11448+ LVWM_StatusParams_st WM_StatusParams; ///< Whisper Mode Status Parameter Structure
11449+
11450+ /**
11451+ Dummy Param.
11452+ <table border>
11453+ <tr>
11454+ <td><b>Q-format</b></td>
11455+ <td><b>Min</b></td>
11456+ <td><b>Default</b></td>
11457+ <td><b>Max</b></td>
11458+ </tr>
11459+ <tr>
11460+ <td>1.7</td>
11461+ <td>@ref LVVE_RX_DUMMY_MIN (-128)</td>
11462+ <td>@ref LVVE_RX_DUMMY_DEFAULT (0)</td>
11463+ <td>@ref LVVE_RX_DUMMY_MAX (127)</td>
11464+ </tr>
11465+ </table> */
11466+ LVM_INT8 dummy; ///< Dummy Param
11467+
11468+} LVVE_Rx_StatusParams_st;
11469+
11470+/**
11471+* The status parameters are used to retrieve the status of the module.
11472+* @see LVNV_GetStatusParameters
11473+*/
11474+typedef struct
11475+{
11476+ /**
11477+ Bit mask describing the current state of LVNV, used for debugging.
11478+ */
11479+ LVNV_StatusWord_bm status; ///< current state
11480+
11481+ /**
11482+ To keep correct memory alignment. To be removed when LVNV_StatusWord_bm has
11483+ become int32 as it should.
11484+ <table border>
11485+ <tr>
11486+ <td><b>Q-format</b></td>
11487+ <td><b>Min</b></td>
11488+ <td><b>Default</b></td>
11489+ <td><b>Max</b></td>
11490+ </tr>
11491+ <tr>
11492+ <td>0.15</td>
11493+ <td>@ref LVNV_DUMMY_MIN (0)</td>
11494+ <td>@ref LVNV_DUMMY_DEFAULT (0)</td>
11495+ <td>@ref LVNV_DUMMY_MAX (0)</td>
11496+ </tr>
11497+ </table> */
11498+ LVM_INT16 Dummy; ///< Dummy for memory alignment.
11499+
11500+ /**
11501+ Pointer to the coefficients of the primary low-band (0-4kHz) NLMS filter
11502+ <table border>
11503+ <tr>
11504+ <td><b>Q-format</b></td>
11505+ <td><b>Min</b></td>
11506+ <td><b>Default</b></td>
11507+ <td><b>Max</b></td>
11508+ </tr>
11509+ <tr>
11510+ <td>1.30</td>
11511+ <td>@ref LVNV_PNLMS0_LB_COEFFS_MIN (-2147483648)</td>
11512+ <td>@ref LVNV_PNLMS0_LB_COEFFS_DEFAULT (0)</td>
11513+ <td>@ref LVNV_PNLMS0_LB_COEFFS_MAX (2147483647)</td>
11514+ </tr>
11515+ </table> */
11516+ LVM_INT32* pNLMS0_LB_Coeffs; ///< NLMS0 lowband filter coefficients
11517+
11518+ /**
11519+ Pointer to the coefficients of the primary high-band (4-8kHz) NLMS filter
11520+ <table border>
11521+ <tr>
11522+ <td><b>Q-format</b></td>
11523+ <td><b>Min</b></td>
11524+ <td><b>Default</b></td>
11525+ <td><b>Max</b></td>
11526+ </tr>
11527+ <tr>
11528+ <td>1.30</td>
11529+ <td>@ref LVNV_PNLMS0_HB_COEFFS_MIN (-2147483648)</td>
11530+ <td>@ref LVNV_PNLMS0_HB_COEFFS_DEFAULT (0)</td>
11531+ <td>@ref LVNV_PNLMS0_HB_COEFFS_MAX (2147483647)</td>
11532+ </tr>
11533+ </table> */
11534+ LVM_INT32* pNLMS0_HB_Coeffs; ///< NLMS0 highband filter coefficients
11535+
11536+ /**
11537+ Pointer to the coefficients of the secondary low-band (0-4kHz) NLMS filter
11538+ <table border>
11539+ <tr>
11540+ <td><b>Q-format</b></td>
11541+ <td><b>Min</b></td>
11542+ <td><b>Default</b></td>
11543+ <td><b>Max</b></td>
11544+ </tr>
11545+ <tr>
11546+ <td>1.30</td>
11547+ <td>@ref LVNV_PNLMS1_LB_COEFFS_MIN (-2147483648)</td>
11548+ <td>@ref LVNV_PNLMS1_LB_COEFFS_DEFAULT (0)</td>
11549+ <td>@ref LVNV_PNLMS1_LB_COEFFS_MAX (2147483647)</td>
11550+ </tr>
11551+ </table> */
11552+ LVM_INT32* pNLMS1_LB_Coeffs; ///< NLMS1 lowband filter coefficients
11553+
11554+ /**
11555+ Pointer to the coefficients of the secondary high-band (4-8kHz) NLMS filter
11556+ <table border>
11557+ <tr>
11558+ <td><b>Q-format</b></td>
11559+ <td><b>Min</b></td>
11560+ <td><b>Default</b></td>
11561+ <td><b>Max</b></td>
11562+ </tr>
11563+ <tr>
11564+ <td>1.30</td>
11565+ <td>@ref LVNV_PNLMS1_HB_COEFFS_MIN (-2147483648)</td>
11566+ <td>@ref LVNV_PNLMS1_HB_COEFFS_DEFAULT (0)</td>
11567+ <td>@ref LVNV_PNLMS1_HB_COEFFS_MAX (2147483647)</td>
11568+ </tr>
11569+ </table> */
11570+ LVM_INT32* pNLMS1_HB_Coeffs; ///< NLMS1 highband filter coefficients
11571+
11572+ /**
11573+ Pointer to the coefficients of the FSB0 and FSB1 filters
11574+ <table border>
11575+ <tr>
11576+ <td><b>Q-format</b></td>
11577+ <td><b>Min</b></td>
11578+ <td><b>Default</b></td>
11579+ <td><b>Max</b></td>
11580+ </tr>
11581+ <tr>
11582+ <td>16.15</td>
11583+ <td>@ref LVNV_PFSB_COEFFS_MIN (-2147483648)</td>
11584+ <td>@ref LVNV_PFSB_COEFFS_DEFAULT (0)</td>
11585+ <td>@ref LVNV_PFSB_COEFFS_MAX (2147483647)</td>
11586+ </tr>
11587+ </table> */
11588+ LVM_INT32* pFSB_Coeffs; ///< FSB0 and FSB1 coefficients
11589+
11590+ /**
11591+ Pointer to the coefficients of the GSC filter
11592+ <table border>
11593+ <tr>
11594+ <td><b>Q-format</b></td>
11595+ <td><b>Min</b></td>
11596+ <td><b>Default</b></td>
11597+ <td><b>Max</b></td>
11598+ </tr>
11599+ <tr>
11600+ <td>1.30</td>
11601+ <td>@ref LVNV_PGSC_COEFFS_MIN (-2147483648)</td>
11602+ <td>@ref LVNV_PGSC_COEFFS_DEFAULT (0)</td>
11603+ <td>@ref LVNV_PGSC_COEFFS_MAX (2147483647)</td>
11604+ </tr>
11605+ </table> */
11606+ LVM_INT32* pGSC_Coeffs; ///< GSC coefficients
11607+
11608+ /**
11609+ Pointer to the MicPowSp detection flag
11610+ <table border>
11611+ <tr>
11612+ <td><b>Q-format</b></td>
11613+ <td><b>Min</b></td>
11614+ <td><b>Default</b></td>
11615+ <td><b>Max</b></td>
11616+ </tr>
11617+ <tr>
11618+ <td>15.0</td>
11619+ <td>@ref LVNV_PMICPOWSP_MIN (0)</td>
11620+ <td>@ref LVNV_PMICPOWSP_DEFAULT (0)</td>
11621+ <td>@ref LVNV_PMICPOWSP_MAX (1)</td>
11622+ </tr>
11623+ </table> */
11624+ LVM_INT16* pMicPowSp; ///< MicPow Speech detection flag
11625+
11626+ /**
11627+ Pointer to the variable of Calibration factor
11628+ <table border>
11629+ <tr>
11630+ <td><b>Q-format</b></td>
11631+ <td><b>Min</b></td>
11632+ <td><b>Default</b></td>
11633+ <td><b>Max</b></td>
11634+ </tr>
11635+ <tr>
11636+ <td>2.13</td>
11637+ <td>@ref LVNV_PCALFACTOR_MIN (0)</td>
11638+ <td>@ref LVNV_PCALFACTOR_DEFAULT (0)</td>
11639+ <td>@ref LVNV_PCALFACTOR_MAX (32767)</td>
11640+ </tr>
11641+ </table> */
11642+ LVM_INT16* pCalFactor; ///< Calibration factor value
11643+
11644+ /**
11645+ Pointer to the variable of Calibration ready
11646+ <table border>
11647+ <tr>
11648+ <td><b>Q-format</b></td>
11649+ <td><b>Min</b></td>
11650+ <td><b>Default</b></td>
11651+ <td><b>Max</b></td>
11652+ </tr>
11653+ <tr>
11654+ <td>15.0</td>
11655+ <td>@ref LVNV_PCALREADY_MIN (0)</td>
11656+ <td>@ref LVNV_PCALREADY_DEFAULT (0)</td>
11657+ <td>@ref LVNV_PCALREADY_MAX (2)</td>
11658+ </tr>
11659+ </table> */
11660+ LVM_INT16* pCalReady; ///< Calibration ready value
11661+
11662+ /**
11663+ Pointer to the inter-channel correlation value used in broadside detection.
11664+ <table border>
11665+ <tr>
11666+ <td><b>Q-format</b></td>
11667+ <td><b>Min</b></td>
11668+ <td><b>Default</b></td>
11669+ <td><b>Max</b></td>
11670+ </tr>
11671+ <tr>
11672+ <td>0.15</td>
11673+ <td>@ref LVNV_PBROADSIDE_INTERCC_MIN (0)</td>
11674+ <td>@ref LVNV_PBROADSIDE_INTERCC_DEFAULT (0)</td>
11675+ <td>@ref LVNV_PBROADSIDE_INTERCC_MAX (32767)</td>
11676+ </tr>
11677+ </table> */
11678+ LVM_INT16* pBroadside_interCC; ///< Broadside correlation
11679+
11680+} LVNV_StatusParams_st;
11681+
11682+/**
11683+* The status parameters are used to retrieve the status of the module.
11684+* @see LVHF_GetStatusParameters
11685+*/
11686+typedef struct
11687+{
11688+ /**
11689+ Current value of the echo subtraction factor.
11690+ <table border>
11691+ <tr>
11692+ <td><b>Q-format</b></td>
11693+ <td><b>Min</b></td>
11694+ <td><b>Default</b></td>
11695+ <td><b>Max</b></td>
11696+ </tr>
11697+ <tr>
11698+ <td>5.10</td>
11699+ <td>@ref LVHF_GAMMAE_MIN (0)</td>
11700+ <td>@ref LVHF_GAMMAE_DEFAULT (0)</td>
11701+ <td>@ref LVHF_GAMMAE_MAX (32767)</td>
11702+ </tr>
11703+ </table> */
11704+ LVM_INT16 gammae; ///< multiplicator factor of echo suppression
11705+
11706+ /**
11707+ Bit mask describing the current state of LVHF, used for debugging.
11708+ */
11709+ LVHF_StatusWord_bm status; ///< current state
11710+
11711+ /**
11712+ Pointer to the coefficients of the LB NLMS.
11713+ <table border>
11714+ <tr>
11715+ <td><b>Q-format</b></td>
11716+ <td><b>Min</b></td>
11717+ <td><b>Default</b></td>
11718+ <td><b>Max</b></td>
11719+ </tr>
11720+ <tr>
11721+ <td>1.30</td>
11722+ <td>@ref LVHF_PNLMS_LB_COEFS_MIN (-2147483648)</td>
11723+ <td>@ref LVHF_PNLMS_LB_COEFS_DEFAULT (0)</td>
11724+ <td>@ref LVHF_PNLMS_LB_COEFS_MAX (2147483647)</td>
11725+ </tr>
11726+ </table> */
11727+ LVM_INT32* pNLMS_LB_Coefs; ///< NLMS lowband filter coefficients
11728+
11729+ /**
11730+ Pointer to the coefficients of the HB NLMS.
11731+ <table border>
11732+ <tr>
11733+ <td><b>Q-format</b></td>
11734+ <td><b>Min</b></td>
11735+ <td><b>Default</b></td>
11736+ <td><b>Max</b></td>
11737+ </tr>
11738+ <tr>
11739+ <td>1.30</td>
11740+ <td>@ref LVHF_PNLMS_HB_COEFS_MIN (-2147483648)</td>
11741+ <td>@ref LVHF_PNLMS_HB_COEFS_DEFAULT (0)</td>
11742+ <td>@ref LVHF_PNLMS_HB_COEFS_MAX (2147483647)</td>
11743+ </tr>
11744+ </table> */
11745+ LVM_INT32* pNLMS_HB_Coefs; ///< NLMS highband filter coefficients
11746+
11747+ /**
11748+ Pointer to the coefficients of the PCD NLMS.
11749+ <table border>
11750+ <tr>
11751+ <td><b>Q-format</b></td>
11752+ <td><b>Min</b></td>
11753+ <td><b>Default</b></td>
11754+ <td><b>Max</b></td>
11755+ </tr>
11756+ <tr>
11757+ <td>1.30</td>
11758+ <td>@ref LVHF_PPCD_COEFS_MIN (-2147483648)</td>
11759+ <td>@ref LVHF_PPCD_COEFS_DEFAULT (0)</td>
11760+ <td>@ref LVHF_PPCD_COEFS_MAX (2147483647)</td>
11761+ </tr>
11762+ </table> */
11763+ LVM_INT32* pPCD_Coefs; ///< PCD NLMS filter coefficients
11764+
11765+} LVHF_StatusParams_st;
11766+
11767+/**
11768+* The status parameters are used to retrieve the status of the module.
11769+* @see LVVE_Tx_GetStatusParameters
11770+*/
11771+typedef struct
11772+{
11773+ /**
11774+ HandsFree Status Parameter Structure.
11775+ */
11776+ LVHF_StatusParams_st HF_StatusParams; ///< HandsFree Status Parameters Structure
11777+
11778+ /**
11779+ NoiseVoid Status Parameter Structure.
11780+ */
11781+ LVNV_StatusParams_st NV_StatusParams; ///< NoiseVoid Status Parameters Structrue
11782+
11783+ /**
11784+ WhisperMode Status Parameter Structure.
11785+ */
11786+ LVWM_StatusParams_st WM_StatusParams; ///< WhisperMode Status Parameter Structrue
11787+
11788+ /**
11789+ Dummy Param.
11790+ <table border>
11791+ <tr>
11792+ <td><b>Q-format</b></td>
11793+ <td><b>Min</b></td>
11794+ <td><b>Default</b></td>
11795+ <td><b>Max</b></td>
11796+ </tr>
11797+ <tr>
11798+ <td>1.7</td>
11799+ <td>@ref LVVE_TX_DUMMY_MIN (-128)</td>
11800+ <td>@ref LVVE_TX_DUMMY_DEFAULT (0)</td>
11801+ <td>@ref LVVE_TX_DUMMY_MAX (127)</td>
11802+ </tr>
11803+ </table> */
11804+ LVM_INT8 dummy; ///< Dummy Param
11805+
11806+} LVVE_Tx_StatusParams_st;
11807+
11808+/**
11809+* The control parameters are used to control the overall module behavior. These parameters may
11810+* be changed at any time during processing using the LVVIDHeader_SetControlParameters function but they
11811+* will not take effect until the next call to the LVVIDHeader_Process function.
11812+*
11813+* @see LVVIDHeader_SetControlParameters
11814+* @see LVVIDHeader_Process
11815+*/
11816+typedef struct
11817+{
11818+ /**
11819+ This number always increments by one when there is change in the header format.
11820+ <table border>
11821+ <tr>
11822+ <td><b>Q-format</b></td>
11823+ <td><b>Min</b></td>
11824+ <td><b>Default</b></td>
11825+ <td><b>Max</b></td>
11826+ </tr>
11827+ <tr>
11828+ <td>8.0</td>
11829+ <td>@ref LVVIDHEADER_HEADERVERSION_MIN (0)</td>
11830+ <td>@ref LVVIDHEADER_HEADERVERSION_DEFAULT (3)</td>
11831+ <td>@ref LVVIDHEADER_HEADERVERSION_MAX (255)</td>
11832+ </tr>
11833+ </table> */
11834+ LVM_UINT8 HeaderVersion; ///< Header Format Version
11835+
11836+ /**
11837+ Initially This variable holds value of the baseline version. The value is in
11838+ format of xxyyzzpp where xx is major number of the library, yy is minor number,
11839+ zz is second minor number and pp is patch number of the baseline.
11840+ <table border>
11841+ <tr>
11842+ <td><b>Q-format</b></td>
11843+ <td><b>Min</b></td>
11844+ <td><b>Default</b></td>
11845+ <td><b>Max</b></td>
11846+ </tr>
11847+ <tr>
11848+ <td>32.0</td>
11849+ <td>@ref LVVIDHEADER_BASELINEVERSION_MIN (1)</td>
11850+ <td>@ref LVVIDHEADER_BASELINEVERSION_DEFAULT (51906816)</td>
11851+ <td>@ref LVVIDHEADER_BASELINEVERSION_MAX (4294967295)</td>
11852+ </tr>
11853+ </table> */
11854+ LVM_UINT32 BaselineVersion; ///< This is LVVE tagged version name
11855+
11856+ /**
11857+ First LVVE_Rx algorithm mask which holds information of which LVVE_Rx
11858+ algorithms are present.
11859+ */
11860+ LVVIDHeader_LVVE_Rx_Mask1_bm LVVE_Rx_AlgoMask1; ///< This variable forms first part of LVVE_Rx algorithm mask
11861+
11862+ /**
11863+ Second LVVE_Rx algorithm mask which holds information of which LVVE_Rx
11864+ algorithms are present.
11865+ */
11866+ LVVIDHeader_LVVE_Rx_Mask2_bm LVVE_Rx_AlgoMask2; ///< This variable forms second part of LVVE_Rx algorithm mask
11867+
11868+ /**
11869+ First LVVE_Tx algorithm mask which holds information of which LVVE_Tx
11870+ algorithms are present.
11871+ */
11872+ LVVIDHeader_LVVE_Tx_Mask1_bm LVVE_Tx_AlgoMask1; ///< This variable forms first part of LVVE_Tx mask
11873+
11874+ /**
11875+ Second LVVE_Tx algorithm mask which holds information of which LVVE_Tx
11876+ algorithms are present.
11877+ */
11878+ LVVIDHeader_LVVE_Tx_Mask2_bm LVVE_Tx_AlgoMask2; ///< This variable forms second part of LVVE_Tx mask
11879+
11880+ /**
11881+ First LVVE configuration mask which holds information of which configurations
11882+ of LVVE_Tx and LVVE_Rx algorithm are present.
11883+ */
11884+ LVVIDHeader_Configurations_Mask1_bm LVVE_Config_AlgoMask1; ///< This variable forms first part of common LVVE_Tx and LVVE_Rx configuration mask
11885+
11886+ /**
11887+ Second LVVE configuration mask which holds information of which configurations
11888+ of LVVE_Tx and LVVE_Rx algorithm are present.
11889+ */
11890+ LVVIDHeader_Configurations_Mask2_bm LVVE_Config_AlgoMask2; ///< This variable forms second part of common LVVE_Tx and LVVE_Rx configuration mask
11891+
11892+ /**
11893+ Messge ID is used to identify stream
11894+ */
11895+ LVVIDHeader_MessageID_en MessageID; ///< This param holds message ID of the buffer
11896+
11897+ /**
11898+ This parameter specifies the sample rate information of the buffer.
11899+ */
11900+ LVM_Fs_en SampleRate; ///< Sample rate information of the buffer.
11901+
11902+ /**
11903+ This parameter specifies the volume index corresponding to the subsequent data.
11904+ <table border>
11905+ <tr>
11906+ <td><b>Q-format</b></td>
11907+ <td><b>Min</b></td>
11908+ <td><b>Default</b></td>
11909+ <td><b>Max</b></td>
11910+ </tr>
11911+ <tr>
11912+ <td>8.0</td>
11913+ <td>@ref LVVIDHEADER_VOLUMEINDEX_MIN (0)</td>
11914+ <td>@ref LVVIDHEADER_VOLUMEINDEX_DEFAULT (0)</td>
11915+ <td>@ref LVVIDHEADER_VOLUMEINDEX_MAX (255)</td>
11916+ </tr>
11917+ </table> */
11918+ LVM_UINT8 VolumeIndex; ///< Volume index corresponding to the subsequent data.
11919+
11920+ /**
11921+ This parameter specifies how many volumes are present in the binary file.
11922+ <table border>
11923+ <tr>
11924+ <td><b>Q-format</b></td>
11925+ <td><b>Min</b></td>
11926+ <td><b>Default</b></td>
11927+ <td><b>Max</b></td>
11928+ </tr>
11929+ <tr>
11930+ <td>8.0</td>
11931+ <td>@ref LVVIDHEADER_NUMVOLUMES_MIN (0)</td>
11932+ <td>@ref LVVIDHEADER_NUMVOLUMES_DEFAULT (1)</td>
11933+ <td>@ref LVVIDHEADER_NUMVOLUMES_MAX (255)</td>
11934+ </tr>
11935+ </table> */
11936+ LVM_UINT8 NumVolumes; ///< Number of volumes present in the binary file.
11937+
11938+} LVVIDHeader_ControlParams_st;
11939+
11940+/**
11941+* The control parameters are used to control the overall module behavior. These parameters may
11942+* be changed at any time during processing using the LVVC_SetControlParameters function but they
11943+* will not take effect until the next call to the LVVC_Process function.
11944+*
11945+* @see LVVC_SetControlParameters
11946+* @see LVVC_Process
11947+*/
11948+typedef struct
11949+{
11950+ /**
11951+ Control the operating mode (ON/OFF) of the algorithm.
11952+ */
11953+ LVM_Mode_en OperatingMode; ///< Operating mode
11954+
11955+ /**
11956+ The mode word to enable/disable internal algorithm blocks of VoiceClarity.
11957+ */
11958+ LVVC_ModeWord_bm mode; ///< Mode word
11959+
11960+ /**
11961+ Maximum Gain applied to the signal.
11962+ <table border>
11963+ <tr>
11964+ <td><b>Q-format</b></td>
11965+ <td><b>Min</b></td>
11966+ <td><b>Default</b></td>
11967+ <td><b>Max</b></td>
11968+ </tr>
11969+ <tr>
11970+ <td>6.9</td>
11971+ <td>@ref LVVC_GAIN_LIN_MAX_MIN (512)</td>
11972+ <td>@ref LVVC_GAIN_LIN_MAX_DEFAULT (1286)</td>
11973+ <td>@ref LVVC_GAIN_LIN_MAX_MAX (32767)</td>
11974+ </tr>
11975+ </table> */
11976+ LVM_INT16 Gain_Lin_Max; ///< Maximum Gain.
11977+
11978+ /**
11979+ The Noise_Sensitivity parameter sets how sensitive VoiceClarity will be to the
11980+ background noise level. The Noise_Sensitivity parameter allows adjusting the
11981+ sensitivity of those processing blocks to the nearend noise level. For high
11982+ values of the Noise_Sensitivity the effect of the mentioned processing blocks
11983+ will be big, even at low to moderate nearend noise levels. For low values of
11984+ the Noise_Sensitivity the effect of the processing blocks will be smaller, even
11985+ for high nearend noise levels.
11986+ <table border>
11987+ <tr>
11988+ <td><b>Q-format</b></td>
11989+ <td><b>Min</b></td>
11990+ <td><b>Default</b></td>
11991+ <td><b>Max</b></td>
11992+ </tr>
11993+ <tr>
11994+ <td>0.15</td>
11995+ <td>@ref LVVC_NOISE_SENSITIVITY_MIN (-6709)</td>
11996+ <td>@ref LVVC_NOISE_SENSITIVITY_DEFAULT (20000)</td>
11997+ <td>@ref LVVC_NOISE_SENSITIVITY_MAX (32767)</td>
11998+ </tr>
11999+ </table> */
12000+ LVM_INT16 Noise_Sensitivity; ///< Noise Sensitivity.
12001+
12002+ /**
12003+ The desired output level of the AGC. <br>
12004+ AVL_Target_level_lin = \f$32767*10^{Target_Level_dB/20}\f$
12005+ <table border>
12006+ <tr>
12007+ <td><b>Q-format</b></td>
12008+ <td><b>Min</b></td>
12009+ <td><b>Default</b></td>
12010+ <td><b>Max</b></td>
12011+ </tr>
12012+ <tr>
12013+ <td>0.15</td>
12014+ <td>@ref LVVC_AVL_TARGET_LEVEL_LIN_MIN (0)</td>
12015+ <td>@ref LVVC_AVL_TARGET_LEVEL_LIN_DEFAULT (16384)</td>
12016+ <td>@ref LVVC_AVL_TARGET_LEVEL_LIN_MAX (32767)</td>
12017+ </tr>
12018+ </table> */
12019+ LVM_INT16 AVL_Target_level_lin; ///< The desired output level of the AGC.
12020+
12021+ /**
12022+ The maximal attenuation of the AGC. <br>
12023+ AVL_MinGainLin = \f$512*10^{MinGain_dB/20}\f$
12024+ <table border>
12025+ <tr>
12026+ <td><b>Q-format</b></td>
12027+ <td><b>Min</b></td>
12028+ <td><b>Default</b></td>
12029+ <td><b>Max</b></td>
12030+ </tr>
12031+ <tr>
12032+ <td>6.9</td>
12033+ <td>@ref LVVC_AVL_MINGAINLIN_MIN (0)</td>
12034+ <td>@ref LVVC_AVL_MINGAINLIN_DEFAULT (256)</td>
12035+ <td>@ref LVVC_AVL_MINGAINLIN_MAX (512)</td>
12036+ </tr>
12037+ </table> */
12038+ LVM_INT16 AVL_MinGainLin; ///< The maximal attenuation of the AGC.
12039+
12040+ /**
12041+ The maximal gain of the AGC. <br>
12042+ AVL_MaxGainLin = \f$512*10^{MaxGain_dB/20}\f$
12043+ <table border>
12044+ <tr>
12045+ <td><b>Q-format</b></td>
12046+ <td><b>Min</b></td>
12047+ <td><b>Default</b></td>
12048+ <td><b>Max</b></td>
12049+ </tr>
12050+ <tr>
12051+ <td>6.9</td>
12052+ <td>@ref LVVC_AVL_MAXGAINLIN_MIN (512)</td>
12053+ <td>@ref LVVC_AVL_MAXGAINLIN_DEFAULT (8192)</td>
12054+ <td>@ref LVVC_AVL_MAXGAINLIN_MAX (32767)</td>
12055+ </tr>
12056+ </table> */
12057+ LVM_INT16 AVL_MaxGainLin; ///< The maximal gain of the AGC.
12058+
12059+ /**
12060+ The nominal gain of the AGC.<br>
12061+ AVL_NominalGain = \f$512*10^{NominalGain_dB/20}\f$
12062+ <table border>
12063+ <tr>
12064+ <td><b>Q-format</b></td>
12065+ <td><b>Min</b></td>
12066+ <td><b>Default</b></td>
12067+ <td><b>Max</b></td>
12068+ </tr>
12069+ <tr>
12070+ <td>6.9</td>
12071+ <td>@ref LVVC_AVL_NOMINALGAIN_MIN (0)</td>
12072+ <td>@ref LVVC_AVL_NOMINALGAIN_DEFAULT (512)</td>
12073+ <td>@ref LVVC_AVL_NOMINALGAIN_MAX (32767)</td>
12074+ </tr>
12075+ </table> */
12076+ LVM_INT16 AVL_NominalGain; ///< The nominal gain of the AGC.
12077+
12078+ /**
12079+ The gain of the AGC is smoothed across time. The time constant of the smoothing
12080+ depends on whether the gain is increasing or decreasing. When a sudden loud
12081+ signal is encountered (e.g. attack of speech), the attack time is used. When
12082+ the gain is increasing (e.g. long period of whispered speech), the release time
12083+ is used. <br>
12084+
12085+ AVL_Attack = \f$32767*\exp(-1/(100*AttackTimeSec))\f$
12086+ <table border>
12087+ <tr>
12088+ <td><b>Q-format</b></td>
12089+ <td><b>Min</b></td>
12090+ <td><b>Default</b></td>
12091+ <td><b>Max</b></td>
12092+ </tr>
12093+ <tr>
12094+ <td>0.15</td>
12095+ <td>@ref LVVC_AVL_ATTACK_MIN (0)</td>
12096+ <td>@ref LVVC_AVL_ATTACK_DEFAULT (12055)</td>
12097+ <td>@ref LVVC_AVL_ATTACK_MAX (32767)</td>
12098+ </tr>
12099+ </table> */
12100+ LVM_INT16 AVL_Attack; ///< The attack time of the AGC.
12101+
12102+ /**
12103+ The gain of the AGC is smoothed across time. The time constant of the smoothing
12104+ depends on whether the gain is increasing or decreasing. When a sudden loud
12105+ signal is encountered (e.g. attack of speech), the attack time is used. When
12106+ the gain is increasing (e.g. long period of whispered speech), the release time
12107+ is used. <br>
12108+
12109+ AVL_Release = \f$32767*\exp(-1/(100*ReleaseTimeSec))\f$
12110+ <table border>
12111+ <tr>
12112+ <td><b>Q-format</b></td>
12113+ <td><b>Min</b></td>
12114+ <td><b>Default</b></td>
12115+ <td><b>Max</b></td>
12116+ </tr>
12117+ <tr>
12118+ <td>0.15</td>
12119+ <td>@ref LVVC_AVL_RELEASE_MIN (0)</td>
12120+ <td>@ref LVVC_AVL_RELEASE_DEFAULT (32604)</td>
12121+ <td>@ref LVVC_AVL_RELEASE_MAX (32767)</td>
12122+ </tr>
12123+ </table> */
12124+ LVM_INT16 AVL_Release; ///< The release time of the AGC.
12125+
12126+ /**
12127+ The release time at maximum noise level.<br>
12128+
12129+ AVL_ReleaseMax = \f$32767*\exp(-1/(100*ReleaseMaxTimeSec))\f$
12130+ <table border>
12131+ <tr>
12132+ <td><b>Q-format</b></td>
12133+ <td><b>Min</b></td>
12134+ <td><b>Default</b></td>
12135+ <td><b>Max</b></td>
12136+ </tr>
12137+ <tr>
12138+ <td>0.15</td>
12139+ <td>@ref LVVC_AVL_RELEASEMAX_MIN (0)</td>
12140+ <td>@ref LVVC_AVL_RELEASEMAX_DEFAULT (32441)</td>
12141+ <td>@ref LVVC_AVL_RELEASEMAX_MAX (32767)</td>
12142+ </tr>
12143+ </table> */
12144+ LVM_INT16 AVL_ReleaseMax; ///< The release time at maximum noise level.
12145+
12146+ /**
12147+ AVL_Limit_MaxOutputLin = \f$32767*10^{TargetLimiterLeveldB/20}\f$
12148+ <table border>
12149+ <tr>
12150+ <td><b>Q-format</b></td>
12151+ <td><b>Min</b></td>
12152+ <td><b>Default</b></td>
12153+ <td><b>Max</b></td>
12154+ </tr>
12155+ <tr>
12156+ <td>0.15</td>
12157+ <td>@ref LVVC_AVL_LIMIT_MAXOUTPUTLIN_MIN (0)</td>
12158+ <td>@ref LVVC_AVL_LIMIT_MAXOUTPUTLIN_DEFAULT (23170)</td>
12159+ <td>@ref LVVC_AVL_LIMIT_MAXOUTPUTLIN_MAX (32767)</td>
12160+ </tr>
12161+ </table> */
12162+ LVM_INT16 AVL_Limit_MaxOutputLin; ///< The level to which the signal will be limited.
12163+
12164+ /**
12165+ The higher the value of the threshold, the less speech detections will occur.
12166+ <br>
12167+ SpDetect_Threshold = \f$512 * [0,64]\f$
12168+ <table border>
12169+ <tr>
12170+ <td><b>Q-format</b></td>
12171+ <td><b>Min</b></td>
12172+ <td><b>Default</b></td>
12173+ <td><b>Max</b></td>
12174+ </tr>
12175+ <tr>
12176+ <td>6.9</td>
12177+ <td>@ref LVVC_SPDETECT_THRESHOLD_MIN (0)</td>
12178+ <td>@ref LVVC_SPDETECT_THRESHOLD_DEFAULT (1024)</td>
12179+ <td>@ref LVVC_SPDETECT_THRESHOLD_MAX (32767)</td>
12180+ </tr>
12181+ </table> */
12182+ LVM_INT16 SpDetect_Threshold; ///< The threshold used in the speech detector of VoiceClarity.
12183+
12184+} LVVC_ControlParams_st;
12185+
12186+/**
12187+* The control parameters are used to control the overall module behavior. These parameters may
12188+* be changed at any time during processing using the LVFENS_SetControlParameters function but they
12189+* will not take effect until the next call to the LVFENS_Process function.
12190+*
12191+* @see LVFENS_SetControlParameters
12192+* @see LVFENS_Process
12193+*/
12194+typedef struct
12195+{
12196+ /**
12197+ */
12198+ LVM_Mode_en OperatingMode; ///< Operating Mode
12199+
12200+ /**
12201+ The maximum amount of noise suppression. <br>
12202+ Unit: dB<br>
12203+ FENS_limit_ns = \f$32767*10^{-max noise reduction[dB]/20}\f$
12204+ <table border>
12205+ <tr>
12206+ <td><b>Q-format</b></td>
12207+ <td><b>Min</b></td>
12208+ <td><b>Default</b></td>
12209+ <td><b>Max</b></td>
12210+ </tr>
12211+ <tr>
12212+ <td>0.15</td>
12213+ <td>@ref LVFENS_FENS_LIMIT_NS_MIN (0)</td>
12214+ <td>@ref LVFENS_FENS_LIMIT_NS_DEFAULT (10976)</td>
12215+ <td>@ref LVFENS_FENS_LIMIT_NS_MAX (32767)</td>
12216+ </tr>
12217+ </table> */
12218+ LVM_INT16 FENS_limit_NS; ///< FENS Noise Suppression Limit
12219+
12220+ /**
12221+ The mode word to control the internal operation of FENS.
12222+ */
12223+ LVFENS_ModeWord_bm Mode; ///< Mode word
12224+
12225+} LVFENS_ControlParams_st;
12226+
12227+/**
12228+* The control parameters are used to control the overall module behavior. These parameters may
12229+* be changed at any time during processing using the LVWM_SetControlParameters function but they
12230+* will not take effect until the next call to the LVWM_Process function.
12231+*
12232+* @see LVWM_SetControlParameters
12233+* @see LVWM_Process
12234+*/
12235+typedef struct
12236+{
12237+ /**
12238+ Control the operating mode (ON/OFF) of the algorithm.
12239+ */
12240+ LVM_Mode_en OperatingMode; ///< Operating mode
12241+
12242+ /**
12243+ The mode word to enable/disable internal algorithm blocks of WhisperMode.
12244+ */
12245+ LVWM_ModeWord_bm mode; ///< Mode word
12246+
12247+ /**
12248+ The desired output level of the AGC. <br>
12249+ AVL_Target_level_lin = \f$32767*10^{TargetLeveldB/20}\f$
12250+ <table border>
12251+ <tr>
12252+ <td><b>Q-format</b></td>
12253+ <td><b>Min</b></td>
12254+ <td><b>Default</b></td>
12255+ <td><b>Max</b></td>
12256+ </tr>
12257+ <tr>
12258+ <td>0.15</td>
12259+ <td>@ref LVWM_AVL_TARGET_LEVEL_LIN_MIN (0)</td>
12260+ <td>@ref LVWM_AVL_TARGET_LEVEL_LIN_DEFAULT (16384)</td>
12261+ <td>@ref LVWM_AVL_TARGET_LEVEL_LIN_MAX (32767)</td>
12262+ </tr>
12263+ </table> */
12264+ LVM_INT16 AVL_Target_level_lin; ///< The desired output level of the AGC.
12265+
12266+ /**
12267+ The maximal attenuation of the AGC. <br>
12268+ AVL_MinGainLin = \f$512*10^{MinGaindB/20}\f$
12269+ <table border>
12270+ <tr>
12271+ <td><b>Q-format</b></td>
12272+ <td><b>Min</b></td>
12273+ <td><b>Default</b></td>
12274+ <td><b>Max</b></td>
12275+ </tr>
12276+ <tr>
12277+ <td>6.9</td>
12278+ <td>@ref LVWM_AVL_MINGAINLIN_MIN (0)</td>
12279+ <td>@ref LVWM_AVL_MINGAINLIN_DEFAULT (128)</td>
12280+ <td>@ref LVWM_AVL_MINGAINLIN_MAX (512)</td>
12281+ </tr>
12282+ </table> */
12283+ LVM_INT16 AVL_MinGainLin; ///< The maximal attenuation of the AGC.
12284+
12285+ /**
12286+ The maximal gain of the AGC. <br>
12287+ AVL_MaxGainLin = \f$512*10^{MaxGaindB/20}\f$
12288+ <table border>
12289+ <tr>
12290+ <td><b>Q-format</b></td>
12291+ <td><b>Min</b></td>
12292+ <td><b>Default</b></td>
12293+ <td><b>Max</b></td>
12294+ </tr>
12295+ <tr>
12296+ <td>6.9</td>
12297+ <td>@ref LVWM_AVL_MAXGAINLIN_MIN (512)</td>
12298+ <td>@ref LVWM_AVL_MAXGAINLIN_DEFAULT (8189)</td>
12299+ <td>@ref LVWM_AVL_MAXGAINLIN_MAX (32767)</td>
12300+ </tr>
12301+ </table> */
12302+ LVM_INT16 AVL_MaxGainLin; ///< The maximal gain of the AGC.
12303+
12304+ /**
12305+ The gain of the AGC is smoothed across time. The time constant of the smoothing
12306+ depends on whether the gain is increasing or decreasing. When a sudden loud
12307+ signal is encountered (e.g. attack of speech), the attack time is used. When
12308+ the gain is increasing (e.g. long period of whispered speech), the release time
12309+ is used. <br>
12310+
12311+ AVL_Attack = \f$32767*\exp(-1/(100*AttackTimeSec))\f$
12312+ <table border>
12313+ <tr>
12314+ <td><b>Q-format</b></td>
12315+ <td><b>Min</b></td>
12316+ <td><b>Default</b></td>
12317+ <td><b>Max</b></td>
12318+ </tr>
12319+ <tr>
12320+ <td>0.15</td>
12321+ <td>@ref LVWM_AVL_ATTACK_MIN (0)</td>
12322+ <td>@ref LVWM_AVL_ATTACK_DEFAULT (25520)</td>
12323+ <td>@ref LVWM_AVL_ATTACK_MAX (32767)</td>
12324+ </tr>
12325+ </table> */
12326+ LVM_INT16 AVL_Attack; ///< The attack time of the AGC.
12327+
12328+ /**
12329+ The gain of the AGC is smoothed across time. The time constant of the smoothing
12330+ depends on whether the gain is increasing or decreasing. When a sudden loud
12331+ signal is encountered (e.g. attack of speech), the attack time is used. When
12332+ the gain is increasing (e.g. long period of whispered speech), the release time
12333+ is used. <br>
12334+
12335+ AVL_Release = \f$32767*\exp(-1/(100*ReleasTimeSec))\f$
12336+ <table border>
12337+ <tr>
12338+ <td><b>Q-format</b></td>
12339+ <td><b>Min</b></td>
12340+ <td><b>Default</b></td>
12341+ <td><b>Max</b></td>
12342+ </tr>
12343+ <tr>
12344+ <td>0.15</td>
12345+ <td>@ref LVWM_AVL_RELEASE_MIN (0)</td>
12346+ <td>@ref LVWM_AVL_RELEASE_DEFAULT (32685)</td>
12347+ <td>@ref LVWM_AVL_RELEASE_MAX (32767)</td>
12348+ </tr>
12349+ </table> */
12350+ LVM_INT16 AVL_Release; ///< The release time of the AGC.
12351+
12352+ /**
12353+ AVL_Limit_MaxOutputLin = \f$32767*10^{TargetLimiterLeveldB/20}\f$
12354+ <table border>
12355+ <tr>
12356+ <td><b>Q-format</b></td>
12357+ <td><b>Min</b></td>
12358+ <td><b>Default</b></td>
12359+ <td><b>Max</b></td>
12360+ </tr>
12361+ <tr>
12362+ <td>0.15</td>
12363+ <td>@ref LVWM_AVL_LIMIT_MAXOUTPUTLIN_MIN (0)</td>
12364+ <td>@ref LVWM_AVL_LIMIT_MAXOUTPUTLIN_DEFAULT (23197)</td>
12365+ <td>@ref LVWM_AVL_LIMIT_MAXOUTPUTLIN_MAX (32767)</td>
12366+ </tr>
12367+ </table> */
12368+ LVM_INT16 AVL_Limit_MaxOutputLin; ///< The level to which the signal will be limited.
12369+
12370+ /**
12371+ The higher the value of the threshold, the less speech detections will occur.
12372+ <br>
12373+ SpDetect_Threshold = \f$512 * [0,64]\f$
12374+ <table border>
12375+ <tr>
12376+ <td><b>Q-format</b></td>
12377+ <td><b>Min</b></td>
12378+ <td><b>Default</b></td>
12379+ <td><b>Max</b></td>
12380+ </tr>
12381+ <tr>
12382+ <td>6.9</td>
12383+ <td>@ref LVWM_SPDETECT_THRESHOLD_MIN (0)</td>
12384+ <td>@ref LVWM_SPDETECT_THRESHOLD_DEFAULT (9216)</td>
12385+ <td>@ref LVWM_SPDETECT_THRESHOLD_MAX (32767)</td>
12386+ </tr>
12387+ </table> */
12388+ LVM_INT16 SpDetect_Threshold; ///< The threshold used in the speech detector of WhisperMode.
12389+
12390+} LVWM_ControlParams_st;
12391+
12392+/**
12393+* The control parameters are used to control the overall module behavior. These parameters may
12394+* be changed at any time during processing using the LVDRC_SetControlParameters function but they
12395+* will not take effect until the next call to the LVDRC_Process function.
12396+*
12397+* @see LVDRC_SetControlParameters
12398+* @see LVDRC_Process
12399+*/
12400+typedef struct
12401+{
12402+ /**
12403+ Operating mode for DRC
12404+ */
12405+ LVM_Mode_en OperatingMode; ///< Operating mode
12406+
12407+ /**
12408+ Sets the number of sections (knee points) in the compressor curve
12409+ <table border>
12410+ <tr>
12411+ <td><b>Q-format</b></td>
12412+ <td><b>Min</b></td>
12413+ <td><b>Default</b></td>
12414+ <td><b>Max</b></td>
12415+ </tr>
12416+ <tr>
12417+ <td>16.0</td>
12418+ <td>@ref LVDRC_NUMKNEES_MIN (1)</td>
12419+ <td>@ref LVDRC_NUMKNEES_DEFAULT (5)</td>
12420+ <td>@ref LVDRC_NUMKNEES_MAX (5)</td>
12421+ </tr>
12422+ </table> */
12423+ LVM_UINT16 NumKnees; ///< Number of Knee points in compressor curve
12424+
12425+ /**
12426+ An array of size 5(maximum) containing the knee points specified by the
12427+ compression curve in dBFs. The number of knee points in use is limited by the
12428+ NumKnees parameter. Th input level for the first knee should be equal to or
12429+ larger than -96dB, and the input level for the last knee should be 0dB.
12430+ <table border>
12431+ <tr>
12432+ <td><b>Q-format</b></td>
12433+ <td><b>Min</b></td>
12434+ <td><b>Default</b></td>
12435+ <td><b>Max</b></td>
12436+ </tr>
12437+ <tr>
12438+ <td>15.0</td>
12439+ <td>@ref LVDRC_COMPRESSORCURVEINPUTLEVELS_MIN (-96)</td>
12440+ <td>@ref LVDRC_COMPRESSORCURVEINPUTLEVELS_DEFAULT {-96,-70,-50, -24, 0}</td>
12441+ <td>@ref LVDRC_COMPRESSORCURVEINPUTLEVELS_MAX (0)</td>
12442+ </tr>
12443+ </table> */
12444+ LVM_INT16 CompressorCurveInputLevels[LVDRC_COMPRESSORCURVEINPUTLEVELS_LENGTH]; ///< Compressor Curve Input Levels
12445+
12446+ /**
12447+ An array of size 5(maximum) containing the knee points specified by the
12448+ compression curve in dBFs. The number of knee points in use is limited by the
12449+ NumKnees parameter. The output level for the first knee should be equal to or
12450+ larger than -96dB, and the output level for the last knee should be equal to or
12451+ smaller than 0dB.
12452+ <table border>
12453+ <tr>
12454+ <td><b>Q-format</b></td>
12455+ <td><b>Min</b></td>
12456+ <td><b>Default</b></td>
12457+ <td><b>Max</b></td>
12458+ </tr>
12459+ <tr>
12460+ <td>15.0</td>
12461+ <td>@ref LVDRC_COMPRESSORCURVEOUTPUTLEVELS_MIN (-96)</td>
12462+ <td>@ref LVDRC_COMPRESSORCURVEOUTPUTLEVELS_DEFAULT {-96,-70,-38,-12,0}</td>
12463+ <td>@ref LVDRC_COMPRESSORCURVEOUTPUTLEVELS_MAX (0)</td>
12464+ </tr>
12465+ </table> */
12466+ LVM_INT16 CompressorCurveOutputLevels[LVDRC_COMPRESSORCURVEOUTPUTLEVELS_LENGTH]; ///< Compressor Curve Output Levels
12467+
12468+ /**
12469+ The AttackTime parameter is the time constant controlling the rate of reaction
12470+ to increase in signal level. The AttackTime is specified in increments of 100µs
12471+ <table border>
12472+ <tr>
12473+ <td><b>Q-format</b></td>
12474+ <td><b>Min</b></td>
12475+ <td><b>Default</b></td>
12476+ <td><b>Max</b></td>
12477+ </tr>
12478+ <tr>
12479+ <td>15.0</td>
12480+ <td>@ref LVDRC_ATTACKTIME_MIN (0)</td>
12481+ <td>@ref LVDRC_ATTACKTIME_DEFAULT (50)</td>
12482+ <td>@ref LVDRC_ATTACKTIME_MAX (32767)</td>
12483+ </tr>
12484+ </table> */
12485+ LVM_INT16 AttackTime; ///< Attack Time
12486+
12487+ /**
12488+ The ReleaseTime parameter is the time constant controlling the rate of reaction
12489+ to decrease in signal level. The ReleaseTime is specified in increments of
12490+ 100µs.
12491+ <table border>
12492+ <tr>
12493+ <td><b>Q-format</b></td>
12494+ <td><b>Min</b></td>
12495+ <td><b>Default</b></td>
12496+ <td><b>Max</b></td>
12497+ </tr>
12498+ <tr>
12499+ <td>15.0</td>
12500+ <td>@ref LVDRC_RELEASETIME_MIN (0)</td>
12501+ <td>@ref LVDRC_RELEASETIME_DEFAULT (50)</td>
12502+ <td>@ref LVDRC_RELEASETIME_MAX (32767)</td>
12503+ </tr>
12504+ </table> */
12505+ LVM_INT16 ReleaseTime; ///< Release Time
12506+
12507+ /**
12508+ Enable or Disable limiter with soft clipping.
12509+ */
12510+ LVM_Mode_en LimiterOperatingMode; ///< Enable or Disable limiter with soft clipping
12511+
12512+ /**
12513+ Sets the limit level of the compressor in dB.
12514+ <table border>
12515+ <tr>
12516+ <td><b>Q-format</b></td>
12517+ <td><b>Min</b></td>
12518+ <td><b>Default</b></td>
12519+ <td><b>Max</b></td>
12520+ </tr>
12521+ <tr>
12522+ <td>15.0</td>
12523+ <td>@ref LVDRC_LIMITLEVEL_MIN (-96)</td>
12524+ <td>@ref LVDRC_LIMITLEVEL_DEFAULT (0)</td>
12525+ <td>@ref LVDRC_LIMITLEVEL_MAX (0)</td>
12526+ </tr>
12527+ </table> */
12528+ LVM_INT16 LimitLevel; ///< Sets the limit level of the compressor in dB
12529+
12530+} LVDRC_ControlParams_st;
12531+
12532+/**
12533+* The control parameters are used to control the overall module behavior. These parameters may
12534+* be changed at any time during processing using the LVNG_SetControlParameters function but they
12535+* will not take effect until the next call to the LVNG_Process function.
12536+*
12537+* @see LVNG_SetControlParameters
12538+* @see LVNG_Process
12539+*/
12540+typedef struct
12541+{
12542+ /**
12543+ Operating mode for Noise Gate
12544+ */
12545+ LVM_Mode_en OperatingMode; ///< Operating mode
12546+
12547+ /**
12548+ Sets the number of sections (knee points) in the compressor curve
12549+ <table border>
12550+ <tr>
12551+ <td><b>Q-format</b></td>
12552+ <td><b>Min</b></td>
12553+ <td><b>Default</b></td>
12554+ <td><b>Max</b></td>
12555+ </tr>
12556+ <tr>
12557+ <td>16.0</td>
12558+ <td>@ref LVNG_NUMKNEES_MIN (1)</td>
12559+ <td>@ref LVNG_NUMKNEES_DEFAULT (5)</td>
12560+ <td>@ref LVNG_NUMKNEES_MAX (5)</td>
12561+ </tr>
12562+ </table> */
12563+ LVM_UINT16 NumKnees; ///< Number of Knee points in compressor curve
12564+
12565+ /**
12566+ An array of size 5(maximum) containing the knee points specified by the
12567+ compression curve in dBFs. The number of knee points in use is limited by the
12568+ NumKnees parameter. The input level for the first knee should be equal to or
12569+ larger than -96dB, and the input level for the last knee should be 0dB.
12570+ <table border>
12571+ <tr>
12572+ <td><b>Q-format</b></td>
12573+ <td><b>Min</b></td>
12574+ <td><b>Default</b></td>
12575+ <td><b>Max</b></td>
12576+ </tr>
12577+ <tr>
12578+ <td>15.0</td>
12579+ <td>@ref LVNG_COMPRESSORCURVEINPUTLEVELS_MIN (-96)</td>
12580+ <td>@ref LVNG_COMPRESSORCURVEINPUTLEVELS_DEFAULT {-80,-70,-50, -24, 0}</td>
12581+ <td>@ref LVNG_COMPRESSORCURVEINPUTLEVELS_MAX (0)</td>
12582+ </tr>
12583+ </table> */
12584+ LVM_INT16 CompressorCurveInputLevels[LVNG_COMPRESSORCURVEINPUTLEVELS_LENGTH]; ///< Compressor Curve Input Levels
12585+
12586+ /**
12587+ An array of size 5(maximum) containing the knee points specified by the
12588+ compression curve in dBFs. The number of knee points in use is limited by the
12589+ NumKnees parameter. The output level for the first knee should be equal to or
12590+ larger than -96dB, and the output level for the last knee should be equal to or
12591+ smaller than 0dB.
12592+ <table border>
12593+ <tr>
12594+ <td><b>Q-format</b></td>
12595+ <td><b>Min</b></td>
12596+ <td><b>Default</b></td>
12597+ <td><b>Max</b></td>
12598+ </tr>
12599+ <tr>
12600+ <td>15.0</td>
12601+ <td>@ref LVNG_COMPRESSORCURVEOUTPUTLEVELS_MIN (-96)</td>
12602+ <td>@ref LVNG_COMPRESSORCURVEOUTPUTLEVELS_DEFAULT {-96,-80,-50, -24, 0}</td>
12603+ <td>@ref LVNG_COMPRESSORCURVEOUTPUTLEVELS_MAX (0)</td>
12604+ </tr>
12605+ </table> */
12606+ LVM_INT16 CompressorCurveOutputLevels[LVNG_COMPRESSORCURVEOUTPUTLEVELS_LENGTH]; ///< Compressor Curve Output Levels
12607+
12608+ /**
12609+ The AttackTime parameter is the time constant controlling the rate of reaction
12610+ to increase in signal level. The AttackTime is specified in increments of 100µs
12611+ <table border>
12612+ <tr>
12613+ <td><b>Q-format</b></td>
12614+ <td><b>Min</b></td>
12615+ <td><b>Default</b></td>
12616+ <td><b>Max</b></td>
12617+ </tr>
12618+ <tr>
12619+ <td>15.0</td>
12620+ <td>@ref LVNG_ATTACKTIME_MIN (0)</td>
12621+ <td>@ref LVNG_ATTACKTIME_DEFAULT (50)</td>
12622+ <td>@ref LVNG_ATTACKTIME_MAX (32767)</td>
12623+ </tr>
12624+ </table> */
12625+ LVM_INT16 AttackTime; ///< Attack Time
12626+
12627+ /**
12628+ The ReleaseTime parameter is the time constant controlling the rate of reaction
12629+ to decrease in signal level. The ReleaseTime is specified in increments of
12630+ 100µs.
12631+ <table border>
12632+ <tr>
12633+ <td><b>Q-format</b></td>
12634+ <td><b>Min</b></td>
12635+ <td><b>Default</b></td>
12636+ <td><b>Max</b></td>
12637+ </tr>
12638+ <tr>
12639+ <td>15.0</td>
12640+ <td>@ref LVNG_RELEASETIME_MIN (0)</td>
12641+ <td>@ref LVNG_RELEASETIME_DEFAULT (50)</td>
12642+ <td>@ref LVNG_RELEASETIME_MAX (32767)</td>
12643+ </tr>
12644+ </table> */
12645+ LVM_INT16 ReleaseTime; ///< Release Time
12646+
12647+} LVNG_ControlParams_st;
12648+
12649+/**
12650+* The control parameters are used to control the overall module behavior. These parameters may
12651+* be changed at any time during processing using the LVNLPP_SetControlParameters function but they
12652+* will not take effect until the next call to the LVNLPP_Process function.
12653+*
12654+* @see LVNLPP_SetControlParameters
12655+* @see LVNLPP_Process
12656+*/
12657+typedef struct
12658+{
12659+ /**
12660+ Limits the signal level compared to digital full scale in dB.
12661+ <table border>
12662+ <tr>
12663+ <td><b>Q-format</b></td>
12664+ <td><b>Min</b></td>
12665+ <td><b>Default</b></td>
12666+ <td><b>Max</b></td>
12667+ </tr>
12668+ <tr>
12669+ <td>15.0</td>
12670+ <td>@ref LVNLPP_NLPP_LIMIT_MIN (-24)</td>
12671+ <td>@ref LVNLPP_NLPP_LIMIT_DEFAULT (0)</td>
12672+ <td>@ref LVNLPP_NLPP_LIMIT_MAX (0)</td>
12673+ </tr>
12674+ </table> */
12675+ LVM_INT16 NLPP_Limit; ///< NLPP Limit
12676+
12677+ /**
12678+ Sets the -3dB corner frequency of the high-pass filter in Hz.
12679+ <table border>
12680+ <tr>
12681+ <td><b>Q-format</b></td>
12682+ <td><b>Min</b></td>
12683+ <td><b>Default</b></td>
12684+ <td><b>Max</b></td>
12685+ </tr>
12686+ <tr>
12687+ <td>16.0</td>
12688+ <td>@ref LVNLPP_NLPP_HPF_CORNERFREQ_MIN (50)</td>
12689+ <td>@ref LVNLPP_NLPP_HPF_CORNERFREQ_DEFAULT (50)</td>
12690+ <td>@ref LVNLPP_NLPP_HPF_CORNERFREQ_MAX (1000)</td>
12691+ </tr>
12692+ </table> */
12693+ LVM_UINT16 NLPP_HPF_CornerFreq; ///< NLPP HPF Corner Frequency
12694+
12695+} LVNLPP_ControlParams_st;
12696+
12697+/**
12698+* The control parameters are used to control the overall module behavior. These parameters may
12699+* be changed at any time during processing using the LVEQ_SetControlParameters function but they
12700+* will not take effect until the next call to the LVEQ_Process function.
12701+*
12702+* @see LVEQ_SetControlParameters
12703+* @see LVEQ_Process
12704+*/
12705+typedef struct
12706+{
12707+ /**
12708+ Sets the length of the Equalizer impulse response. This must never be more than
12709+ the value of EQ_MaxLength set at initialization time. The EQ_Length must be a
12710+ multiple of 8.
12711+ <table border>
12712+ <tr>
12713+ <td><b>Q-format</b></td>
12714+ <td><b>Min</b></td>
12715+ <td><b>Default</b></td>
12716+ <td><b>Max</b></td>
12717+ </tr>
12718+ <tr>
12719+ <td>16.0</td>
12720+ <td>@ref LVEQ_EQ_LENGTH_MIN (8)</td>
12721+ <td>@ref LVEQ_EQ_LENGTH_DEFAULT (64)</td>
12722+ <td>@ref LVEQ_EQ_LENGTH_MAX (64)</td>
12723+ </tr>
12724+ </table> */
12725+ LVM_UINT16 EQ_Length; ///< EQ Tap Length
12726+
12727+ /**
12728+ Pointer to an array containing the samples of the Equalizer impulse response.
12729+ The format of the array content is specified below. The samples of the
12730+ Equalizer impulse response must be in Q3.12 format.
12731+ <table border>
12732+ <tr>
12733+ <td><b>Q-format</b></td>
12734+ <td><b>Min</b></td>
12735+ <td><b>Default</b></td>
12736+ <td><b>Max</b></td>
12737+ </tr>
12738+ <tr>
12739+ <td>3.12</td>
12740+ <td>@ref LVEQ_EQ_COEFS_MIN (-32768)</td>
12741+ <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>
12742+ <td>@ref LVEQ_EQ_COEFS_MAX (32767)</td>
12743+ </tr>
12744+ </table> */
12745+ LVM_INT16 *pEQ_Coefs; ///< Equalizer impulse response
12746+
12747+} LVEQ_ControlParams_st;
12748+
12749+
12750+
12751+/*[Begin] [lvwenhua-2013/10/21]*/
12752+typedef struct
12753+{
12754+ LVM_INT16 EqCoefs[LVVE_MAX_EQ_LENGTH_NB];
12755+} LVEQ_Coefs_st;
12756+/*[End] [lvwenhua-2013/10/21]*/
12757+
12758+
12759+
12760+
12761+
12762+
12763+/**
12764+* The control parameters are used to control the overall module behavior. These parameters may
12765+* be changed at any time during processing using the LVVOL_SetControlParameters function but they
12766+* will not take effect until the next call to the LVVOL_Process function.
12767+*
12768+* @see LVVOL_SetControlParameters
12769+* @see LVVOL_Process
12770+*/
12771+typedef struct
12772+{
12773+ /**
12774+ Turns on/off VOL_Gain.
12775+ */
12776+ LVM_Mode_en VOL_OperatingMode; ///< Turns on/off VOL_Gain
12777+
12778+ /**
12779+ The volume control gain can be used to set the overall volume level of the
12780+ signal. The gain is set in dB with steps of 1dB.
12781+ <table border>
12782+ <tr>
12783+ <td><b>Q-format</b></td>
12784+ <td><b>Min</b></td>
12785+ <td><b>Default</b></td>
12786+ <td><b>Max</b></td>
12787+ </tr>
12788+ <tr>
12789+ <td>15.0</td>
12790+ <td>@ref LVVOL_VOL_GAIN_MIN (-96)</td>
12791+ <td>@ref LVVOL_VOL_GAIN_DEFAULT (0)</td>
12792+ <td>@ref LVVOL_VOL_GAIN_MAX (24)</td>
12793+ </tr>
12794+ </table> */
12795+ LVM_INT16 VOL_Gain; ///< Apply Gain to Input signal
12796+
12797+} LVVOL_ControlParams_st;
12798+
12799+/**
12800+* The control parameters are used to control the overall module behavior. These parameters may
12801+* be changed at any time during processing using the LVHPF_SetControlParameters function but they
12802+* will not take effect until the next call to the LVHPF_Process function.
12803+*
12804+* @see LVHPF_SetControlParameters
12805+* @see LVHPF_Process
12806+*/
12807+typedef struct
12808+{
12809+ /**
12810+ Turns on/off High Pass filter.
12811+ */
12812+ LVM_Mode_en HPF_OperatingMode; ///< Turns on/off High Pass filter
12813+
12814+ /**
12815+ Sets the 3dB corner frequency of the high-pass filter. In case NoiseVoid is
12816+ enabled, the same high-pass filter will be applied to the second microphone
12817+ channel.
12818+ <table border>
12819+ <tr>
12820+ <td><b>Q-format</b></td>
12821+ <td><b>Min</b></td>
12822+ <td><b>Default</b></td>
12823+ <td><b>Max</b></td>
12824+ </tr>
12825+ <tr>
12826+ <td>16.0</td>
12827+ <td>@ref LVHPF_HPF_CORNERFREQ_MIN (50)</td>
12828+ <td>@ref LVHPF_HPF_CORNERFREQ_DEFAULT (50)</td>
12829+ <td>@ref LVHPF_HPF_CORNERFREQ_MAX (1500)</td>
12830+ </tr>
12831+ </table> */
12832+ LVM_UINT16 HPF_CornerFreq; ///< High Pass Filter Corner Frequency in Hz
12833+
12834+} LVHPF_ControlParams_st;
12835+
12836+/**
12837+* The control parameters are used to control the overall module behavior. These parameters may
12838+* be changed at any time during processing using the LVMUTE_SetControlParameters function but they
12839+* will not take effect until the next call to the LVMUTE_Process function.
12840+*
12841+* @see LVMUTE_SetControlParameters
12842+* @see LVMUTE_Process
12843+*/
12844+typedef struct
12845+{
12846+ /**
12847+ This param can mute unmute the Rx/Tx engine output.
12848+ */
12849+ LVM_Mode_en Mute; ///< This param can mute unmute the Rx/Tx engine output
12850+
12851+} LVMUTE_ControlParams_st;
12852+
12853+/**
12854+* The control parameters are used to control the overall module behavior. These parameters may
12855+* be changed at any time during processing using the LVVE_Rx_SetControlParameters function but they
12856+* will not take effect until the next call to the LVVE_Rx_Process function.
12857+*
12858+* @see LVVE_Rx_SetControlParameters
12859+* @see LVVE_Rx_Process
12860+*/
12861+typedef struct
12862+{
12863+ /**
12864+ This enumerated type is used to set the operating mode of the Rx path. The
12865+ processing can be separately set to enable all processing modules (i.e., ON),
12866+ to disable all processing modules (i.e., OFF) or to bypass all processing
12867+ modules (i.e., BYPASS). When bypassed, all processing modules keep on running,
12868+ but their output is not used.
12869+ */
12870+ LVVE_Rx_Mode_en OperatingMode; ///< This param controls the on/off of RX voice engine.
12871+
12872+ /**
12873+ This param can mute unmute the Rx/Tx engine output.
12874+ */
12875+ LVM_Mode_en Mute; ///< This param can mute unmute the Rx/Tx engine output
12876+
12877+ /**
12878+ Turns on/off VOL_Gain.
12879+ */
12880+ LVM_Mode_en VOL_OperatingMode; ///< Turns on/off VOL_Gain
12881+
12882+ /**
12883+ The volume control gain can be used to set the overall volume level of the
12884+ signal. The gain is set in dB with steps of 1dB.
12885+ <table border>
12886+ <tr>
12887+ <td><b>Q-format</b></td>
12888+ <td><b>Min</b></td>
12889+ <td><b>Default</b></td>
12890+ <td><b>Max</b></td>
12891+ </tr>
12892+ <tr>
12893+ <td>15.0</td>
12894+ <td>@ref LVVE_RX_VOL_GAIN_MIN (-96)</td>
12895+ <td>@ref LVVE_RX_VOL_GAIN_DEFAULT (0)</td>
12896+ <td>@ref LVVE_RX_VOL_GAIN_MAX (24)</td>
12897+ </tr>
12898+ </table> */
12899+ LVM_INT16 VOL_Gain; ///< Apply Gain to Input signal
12900+
12901+ /**
12902+ Far End Noise Suppression Control Parameter Structure.
12903+ */
12904+ LVFENS_ControlParams_st FENS_ControlParams; ///< Far End Noise Suppression Control Parameter Structure
12905+
12906+ /**
12907+ Turns on/off NLPP.
12908+ */
12909+ LVM_Mode_en NLPP_OperatingMode; ///< Turns on/off NLPP
12910+
12911+ /**
12912+ NLPP Control Parameter Structure.
12913+ */
12914+ LVNLPP_ControlParams_st NLPP_ControlParams; ///< NLPP Control Parameter Structure
12915+
12916+ /**
12917+ Voice Clarity Control Parameter Structure.
12918+ */
12919+ LVVC_ControlParams_st VC_ControlParams; ///< Voice Clarity Control Parameter Structure
12920+
12921+ /**
12922+ Equalizer Operating mode.
12923+ */
12924+ LVM_Mode_en EQ_OperatingMode; ///< Equalizer Operating mode
12925+
12926+ /**
12927+ Equalizer Control Parameters Structure.
12928+ */
12929+ LVEQ_ControlParams_st EQ_ControlParams; ///< Equalizer Control Parameters Structure
12930+
12931+ /**
12932+ DRC Control Parameter Strcuture.
12933+ */
12934+ LVDRC_ControlParams_st DRC_ControlParams; ///< DRC Control Parameter Strcuture
12935+
12936+ /**
12937+ Turns on/off High Pass filter.
12938+ */
12939+ LVM_Mode_en HPF_OperatingMode; ///< Turns on/off High Pass filter
12940+
12941+ /**
12942+ Sets the 3dB corner frequency of the high-pass filter. In case NoiseVoid is
12943+ enabled, the same high-pass filter will be applied to the second microphone
12944+ channel.
12945+ <table border>
12946+ <tr>
12947+ <td><b>Q-format</b></td>
12948+ <td><b>Min</b></td>
12949+ <td><b>Default</b></td>
12950+ <td><b>Max</b></td>
12951+ </tr>
12952+ <tr>
12953+ <td>16.0</td>
12954+ <td>@ref LVVE_RX_HPF_CORNERFREQ_MIN (50)</td>
12955+ <td>@ref LVVE_RX_HPF_CORNERFREQ_DEFAULT (50)</td>
12956+ <td>@ref LVVE_RX_HPF_CORNERFREQ_MAX (1500)</td>
12957+ </tr>
12958+ </table> */
12959+ LVM_UINT16 HPF_CornerFreq; ///< High Pass Filter Corner Frequency in Hz
12960+
12961+ /**
12962+ Whisper Mode Control Parameter Strcuture.
12963+ */
12964+ LVWM_ControlParams_st WM_ControlParams; ///< Whisper Mode Control Parameter Strcuture
12965+
12966+ /**
12967+ Noise Gate Control Parameter Structure.
12968+ */
12969+ LVNG_ControlParams_st NG_ControlParams; ///< Noise Gate Control Parameter Structure
12970+
12971+} LVVE_Rx_ControlParams_st;
12972+
12973+/**
12974+* The control parameters are used to control the overall module behavior. These parameters may
12975+* be changed at any time during processing using the LVNV_SetControlParameters function but they
12976+* will not take effect until the next call to the LVNV_Process function.
12977+*
12978+* @see LVNV_SetControlParameters
12979+* @see LVNV_Process
12980+*/
12981+typedef struct
12982+{
12983+ /**
12984+ */
12985+ LVM_Mode_en OperatingMode; ///< Operating Mode
12986+
12987+ /**
12988+ The mode word to enable/disable internal algorithm blocks of LVNV.
12989+ */
12990+ LVNV_ModeWord_bm Mode; ///< Mode word
12991+
12992+ /**
12993+ The mode2 word to allow switching or combining different blocks inside LVNV.
12994+ */
12995+ LVNV_Mode2Word_bm Mode2; ///< Mode2 word
12996+
12997+ /**
12998+ The tuning mode word to enable/disable internal algorithm tuning capabilities
12999+ in the different blocks of LVNV. Only one bit is allowed to be enabled at a
13000+ time.
13001+ */
13002+ LVNV_TuningModeWord_bm Tuning_mode; ///< Tuning mode word
13003+
13004+ /**
13005+ Gain applied at the primary channel in the Tx input. Used to scale the
13006+ microphone signal in order to give the NLMS0_LB and NLMS0_HB filters headroom
13007+ for correct operation.
13008+ <table border>
13009+ <tr>
13010+ <td><b>Q-format</b></td>
13011+ <td><b>Min</b></td>
13012+ <td><b>Default</b></td>
13013+ <td><b>Max</b></td>
13014+ </tr>
13015+ <tr>
13016+ <td>2.13</td>
13017+ <td>@ref LVNV_INPUT_GAIN_MIC0_MIN (0)</td>
13018+ <td>@ref LVNV_INPUT_GAIN_MIC0_DEFAULT (8192)</td>
13019+ <td>@ref LVNV_INPUT_GAIN_MIC0_MAX (32767)</td>
13020+ </tr>
13021+ </table> */
13022+ LVM_INT16 Input_Gain_Mic0; ///< The primary input gain.
13023+
13024+ /**
13025+ Gain applied at the secondary channel in the Tx input. Used to scale the
13026+ microphone signal in order to give the NLMS1_LB and NLMS1_HB filters headroom
13027+ for correct operation.
13028+ <table border>
13029+ <tr>
13030+ <td><b>Q-format</b></td>
13031+ <td><b>Min</b></td>
13032+ <td><b>Default</b></td>
13033+ <td><b>Max</b></td>
13034+ </tr>
13035+ <tr>
13036+ <td>2.13</td>
13037+ <td>@ref LVNV_INPUT_GAIN_MIC1_MIN (0)</td>
13038+ <td>@ref LVNV_INPUT_GAIN_MIC1_DEFAULT (8192)</td>
13039+ <td>@ref LVNV_INPUT_GAIN_MIC1_MAX (32767)</td>
13040+ </tr>
13041+ </table> */
13042+ LVM_INT16 Input_Gain_Mic1; ///< The secondary input gain.
13043+
13044+ /**
13045+ Gain applied at the Tx output of LVNV. Compensates the applied Input_Gain_Mic0
13046+ in order to preserve the overall Tx gain.
13047+ <table border>
13048+ <tr>
13049+ <td><b>Q-format</b></td>
13050+ <td><b>Min</b></td>
13051+ <td><b>Default</b></td>
13052+ <td><b>Max</b></td>
13053+ </tr>
13054+ <tr>
13055+ <td>4.11</td>
13056+ <td>@ref LVNV_OUTPUT_GAIN_MIN (0)</td>
13057+ <td>@ref LVNV_OUTPUT_GAIN_DEFAULT (2048)</td>
13058+ <td>@ref LVNV_OUTPUT_GAIN_MAX (32767)</td>
13059+ </tr>
13060+ </table> */
13061+ LVM_INT16 Output_Gain; ///< The output gain.
13062+
13063+ /**
13064+ Length of the low-band (0-4kHz) adaptive echo cancellation filter for the
13065+ primary channel. The Length should be chosen such that most of the energy of
13066+ the impulse response is covered by the filter. The length should be a multiple
13067+ of 8.
13068+ <table border>
13069+ <tr>
13070+ <td><b>Q-format</b></td>
13071+ <td><b>Min</b></td>
13072+ <td><b>Default</b></td>
13073+ <td><b>Max</b></td>
13074+ </tr>
13075+ <tr>
13076+ <td>16.0</td>
13077+ <td>@ref LVNV_NLMS0_LB_TAPS_MIN (16)</td>
13078+ <td>@ref LVNV_NLMS0_LB_TAPS_DEFAULT (32)</td>
13079+ <td>@ref LVNV_NLMS0_LB_TAPS_MAX (64)</td>
13080+ </tr>
13081+ </table> */
13082+ LVM_UINT16 NLMS0_LB_taps; ///< Number of NLMS0 low-band taps.
13083+
13084+ /**
13085+ Step size for the update of the low-band adaptive filter coefficients for the
13086+ primary channel. It is recommended not to change the default value.
13087+ <table border>
13088+ <tr>
13089+ <td><b>Q-format</b></td>
13090+ <td><b>Min</b></td>
13091+ <td><b>Default</b></td>
13092+ <td><b>Max</b></td>
13093+ </tr>
13094+ <tr>
13095+ <td>0.15</td>
13096+ <td>@ref LVNV_NLMS0_LB_TWOALPHA_MIN (0)</td>
13097+ <td>@ref LVNV_NLMS0_LB_TWOALPHA_DEFAULT (8192)</td>
13098+ <td>@ref LVNV_NLMS0_LB_TWOALPHA_MAX (32767)</td>
13099+ </tr>
13100+ </table> */
13101+ LVM_INT16 NLMS0_LB_twoalpha; ///< NLMS0 low-band step size
13102+
13103+ /**
13104+ Adaptive step-size control for the low-band adaptive echo cancellation filter
13105+ for the primary channel. This parameter is used to slow down the update speed
13106+ of the adaptive filter during double talk situations.
13107+ <table border>
13108+ <tr>
13109+ <td><b>Q-format</b></td>
13110+ <td><b>Min</b></td>
13111+ <td><b>Default</b></td>
13112+ <td><b>Max</b></td>
13113+ </tr>
13114+ <tr>
13115+ <td>9.6</td>
13116+ <td>@ref LVNV_NLMS0_LB_ERL_MIN (64)</td>
13117+ <td>@ref LVNV_NLMS0_LB_ERL_DEFAULT (1000)</td>
13118+ <td>@ref LVNV_NLMS0_LB_ERL_MAX (32767)</td>
13119+ </tr>
13120+ </table> */
13121+ LVM_INT16 NLMS0_LB_erl; ///< NLMS0 low-band erl
13122+
13123+ /**
13124+ Length of the high-band (4-8kHz) adaptive echo cancellation filter for the
13125+ primary channel. The Length should be chosen such that most of the energy of
13126+ the impulse response is covered by the filter. The length should be a multiple
13127+ of 8.
13128+ <table border>
13129+ <tr>
13130+ <td><b>Q-format</b></td>
13131+ <td><b>Min</b></td>
13132+ <td><b>Default</b></td>
13133+ <td><b>Max</b></td>
13134+ </tr>
13135+ <tr>
13136+ <td>16.0</td>
13137+ <td>@ref LVNV_NLMS0_HB_TAPS_MIN (16)</td>
13138+ <td>@ref LVNV_NLMS0_HB_TAPS_DEFAULT (24)</td>
13139+ <td>@ref LVNV_NLMS0_HB_TAPS_MAX (64)</td>
13140+ </tr>
13141+ </table> */
13142+ LVM_UINT16 NLMS0_HB_taps; ///< Number of NLMS0 high-band taps.
13143+
13144+ /**
13145+ Step size for the update of the high-band adaptive filter coefficients for the
13146+ primary channel. It is recommended not to change the default value.
13147+ <table border>
13148+ <tr>
13149+ <td><b>Q-format</b></td>
13150+ <td><b>Min</b></td>
13151+ <td><b>Default</b></td>
13152+ <td><b>Max</b></td>
13153+ </tr>
13154+ <tr>
13155+ <td>0.15</td>
13156+ <td>@ref LVNV_NLMS0_HB_TWOALPHA_MIN (0)</td>
13157+ <td>@ref LVNV_NLMS0_HB_TWOALPHA_DEFAULT (8192)</td>
13158+ <td>@ref LVNV_NLMS0_HB_TWOALPHA_MAX (32767)</td>
13159+ </tr>
13160+ </table> */
13161+ LVM_INT16 NLMS0_HB_twoalpha; ///< NLMS0 high-band step size
13162+
13163+ /**
13164+ Adaptive step-size control for the high-band adaptive echo cancellation filter
13165+ for the primary channel. This parameter is used to slow down the update speed
13166+ of the adaptive filter during double talk situations.
13167+ <table border>
13168+ <tr>
13169+ <td><b>Q-format</b></td>
13170+ <td><b>Min</b></td>
13171+ <td><b>Default</b></td>
13172+ <td><b>Max</b></td>
13173+ </tr>
13174+ <tr>
13175+ <td>9.6</td>
13176+ <td>@ref LVNV_NLMS0_HB_ERL_MIN (64)</td>
13177+ <td>@ref LVNV_NLMS0_HB_ERL_DEFAULT (1000)</td>
13178+ <td>@ref LVNV_NLMS0_HB_ERL_MAX (32767)</td>
13179+ </tr>
13180+ </table> */
13181+ LVM_INT16 NLMS0_HB_erl; ///< NLMS0 high-band erl
13182+
13183+ /**
13184+ Indicates whether a preset of adaptive filter coefficients should be done.<br>
13185+ 0 = No preset (coefficients as they are).<br>
13186+ 1 = Preset with internally calculated coefficients.<br>
13187+ 2 = Preset with zero coefficients.
13188+ <table border>
13189+ <tr>
13190+ <td><b>Q-format</b></td>
13191+ <td><b>Min</b></td>
13192+ <td><b>Default</b></td>
13193+ <td><b>Max</b></td>
13194+ </tr>
13195+ <tr>
13196+ <td>15.0</td>
13197+ <td>@ref LVNV_NLMS0_PRESET_COEFS_MIN (0)</td>
13198+ <td>@ref LVNV_NLMS0_PRESET_COEFS_DEFAULT (0)</td>
13199+ <td>@ref LVNV_NLMS0_PRESET_COEFS_MAX (2)</td>
13200+ </tr>
13201+ </table> */
13202+ LVM_INT16 NLMS0_preset_coefs; ///< NLMS0 preset
13203+
13204+ /**
13205+ Offset added to the normalization of the adaptation of the filter.
13206+ <table border>
13207+ <tr>
13208+ <td><b>Q-format</b></td>
13209+ <td><b>Min</b></td>
13210+ <td><b>Default</b></td>
13211+ <td><b>Max</b></td>
13212+ </tr>
13213+ <tr>
13214+ <td>0.15</td>
13215+ <td>@ref LVNV_NLMS0_OFFSET_MIN (0)</td>
13216+ <td>@ref LVNV_NLMS0_OFFSET_DEFAULT (776)</td>
13217+ <td>@ref LVNV_NLMS0_OFFSET_MAX (32767)</td>
13218+ </tr>
13219+ </table> */
13220+ LVM_INT16 NLMS0_offset; ///< NLMS0 offset
13221+
13222+ /**
13223+ Length of the low-band (0-4kHz) adaptive echo cancellation filter for the
13224+ secondary channel. The Length should be chosen such that most of the energy of
13225+ the impulse response is covered by the filter. The length should be a multiple
13226+ of 8.
13227+ <table border>
13228+ <tr>
13229+ <td><b>Q-format</b></td>
13230+ <td><b>Min</b></td>
13231+ <td><b>Default</b></td>
13232+ <td><b>Max</b></td>
13233+ </tr>
13234+ <tr>
13235+ <td>16.0</td>
13236+ <td>@ref LVNV_NLMS1_LB_TAPS_MIN (16)</td>
13237+ <td>@ref LVNV_NLMS1_LB_TAPS_DEFAULT (32)</td>
13238+ <td>@ref LVNV_NLMS1_LB_TAPS_MAX (32)</td>
13239+ </tr>
13240+ </table> */
13241+ LVM_UINT16 NLMS1_LB_taps; ///< Number of NLMS1 low-band taps.
13242+
13243+ /**
13244+ Step size for the update of the low-band adaptive filter coefficients for the
13245+ secondary channel. It is recommended not to change the default value.
13246+ <table border>
13247+ <tr>
13248+ <td><b>Q-format</b></td>
13249+ <td><b>Min</b></td>
13250+ <td><b>Default</b></td>
13251+ <td><b>Max</b></td>
13252+ </tr>
13253+ <tr>
13254+ <td>0.15</td>
13255+ <td>@ref LVNV_NLMS1_LB_TWOALPHA_MIN (0)</td>
13256+ <td>@ref LVNV_NLMS1_LB_TWOALPHA_DEFAULT (8192)</td>
13257+ <td>@ref LVNV_NLMS1_LB_TWOALPHA_MAX (32767)</td>
13258+ </tr>
13259+ </table> */
13260+ LVM_INT16 NLMS1_LB_twoalpha; ///< NLMS1 low-band step size
13261+
13262+ /**
13263+ Adaptive step-size control for the low-band adaptive echo cancellation filter
13264+ for the secondary channel. This parameter is used to slow down the update speed
13265+ of the adaptive filter during double talk situations.
13266+ <table border>
13267+ <tr>
13268+ <td><b>Q-format</b></td>
13269+ <td><b>Min</b></td>
13270+ <td><b>Default</b></td>
13271+ <td><b>Max</b></td>
13272+ </tr>
13273+ <tr>
13274+ <td>9.6</td>
13275+ <td>@ref LVNV_NLMS1_LB_ERL_MIN (64)</td>
13276+ <td>@ref LVNV_NLMS1_LB_ERL_DEFAULT (1000)</td>
13277+ <td>@ref LVNV_NLMS1_LB_ERL_MAX (32767)</td>
13278+ </tr>
13279+ </table> */
13280+ LVM_INT16 NLMS1_LB_erl; ///< NLMS1 low-band erl
13281+
13282+ /**
13283+ Length of the high-band (4-8kHz) adaptive echo cancellation filter for the
13284+ secondary channel. The Length should be chosen such that most of the energy of
13285+ the impulse response is covered by the filter. The length should be a multiple
13286+ of 8.
13287+ <table border>
13288+ <tr>
13289+ <td><b>Q-format</b></td>
13290+ <td><b>Min</b></td>
13291+ <td><b>Default</b></td>
13292+ <td><b>Max</b></td>
13293+ </tr>
13294+ <tr>
13295+ <td>16.0</td>
13296+ <td>@ref LVNV_NLMS1_HB_TAPS_MIN (16)</td>
13297+ <td>@ref LVNV_NLMS1_HB_TAPS_DEFAULT (24)</td>
13298+ <td>@ref LVNV_NLMS1_HB_TAPS_MAX (32)</td>
13299+ </tr>
13300+ </table> */
13301+ LVM_UINT16 NLMS1_HB_taps; ///< Number of NLMS1 high-band taps.
13302+
13303+ /**
13304+ Step size for the update of the high-band adaptive filter coefficients for the
13305+ secondary channel. It is recommended not to change the default value.
13306+ <table border>
13307+ <tr>
13308+ <td><b>Q-format</b></td>
13309+ <td><b>Min</b></td>
13310+ <td><b>Default</b></td>
13311+ <td><b>Max</b></td>
13312+ </tr>
13313+ <tr>
13314+ <td>0.15</td>
13315+ <td>@ref LVNV_NLMS1_HB_TWOALPHA_MIN (0)</td>
13316+ <td>@ref LVNV_NLMS1_HB_TWOALPHA_DEFAULT (8192)</td>
13317+ <td>@ref LVNV_NLMS1_HB_TWOALPHA_MAX (32767)</td>
13318+ </tr>
13319+ </table> */
13320+ LVM_INT16 NLMS1_HB_twoalpha; ///< NLMS1 high-band step size
13321+
13322+ /**
13323+ Adaptive step-size control for the high-band adaptive echo cancellation filter
13324+ for the secondary channel. This parameter is used to slow down the update speed
13325+ of the adaptive filter during double talk situations.
13326+ <table border>
13327+ <tr>
13328+ <td><b>Q-format</b></td>
13329+ <td><b>Min</b></td>
13330+ <td><b>Default</b></td>
13331+ <td><b>Max</b></td>
13332+ </tr>
13333+ <tr>
13334+ <td>9.6</td>
13335+ <td>@ref LVNV_NLMS1_HB_ERL_MIN (64)</td>
13336+ <td>@ref LVNV_NLMS1_HB_ERL_DEFAULT (1000)</td>
13337+ <td>@ref LVNV_NLMS1_HB_ERL_MAX (32767)</td>
13338+ </tr>
13339+ </table> */
13340+ LVM_INT16 NLMS1_HB_erl; ///< NLMS1 high-band erl
13341+
13342+ /**
13343+ Indicates whether a preset of adaptive filter coefficients should be done.<br>
13344+ 0 = No preset (coefficients as they are).<br>
13345+ 1 = Preset with internally calculated coefficients.<br>
13346+ 2 = Preset with zero coefficients.
13347+ <table border>
13348+ <tr>
13349+ <td><b>Q-format</b></td>
13350+ <td><b>Min</b></td>
13351+ <td><b>Default</b></td>
13352+ <td><b>Max</b></td>
13353+ </tr>
13354+ <tr>
13355+ <td>15.0</td>
13356+ <td>@ref LVNV_NLMS1_PRESET_COEFS_MIN (0)</td>
13357+ <td>@ref LVNV_NLMS1_PRESET_COEFS_DEFAULT (0)</td>
13358+ <td>@ref LVNV_NLMS1_PRESET_COEFS_MAX (2)</td>
13359+ </tr>
13360+ </table> */
13361+ LVM_INT16 NLMS1_preset_coefs; ///< NLMS1 preset
13362+
13363+ /**
13364+ Offset added to the normalization of the adaptation of the filter.
13365+ <table border>
13366+ <tr>
13367+ <td><b>Q-format</b></td>
13368+ <td><b>Min</b></td>
13369+ <td><b>Default</b></td>
13370+ <td><b>Max</b></td>
13371+ </tr>
13372+ <tr>
13373+ <td>0.15</td>
13374+ <td>@ref LVNV_NLMS1_OFFSET_MIN (0)</td>
13375+ <td>@ref LVNV_NLMS1_OFFSET_DEFAULT (776)</td>
13376+ <td>@ref LVNV_NLMS1_OFFSET_MAX (32767)</td>
13377+ </tr>
13378+ </table> */
13379+ LVM_INT16 NLMS1_offset; ///< NLMS1 offset
13380+
13381+ /**
13382+ A parameter representing a threshold for the detection of instrumental noise.
13383+ The higher the value for this parameter, the lower noise suppression
13384+ performance.
13385+ <table border>
13386+ <tr>
13387+ <td><b>Q-format</b></td>
13388+ <td><b>Min</b></td>
13389+ <td><b>Default</b></td>
13390+ <td><b>Max</b></td>
13391+ </tr>
13392+ <tr>
13393+ <td>0.15</td>
13394+ <td>@ref LVNV_CAL_MICPOWFLOORMIN_MIN (0)</td>
13395+ <td>@ref LVNV_CAL_MICPOWFLOORMIN_DEFAULT (150)</td>
13396+ <td>@ref LVNV_CAL_MICPOWFLOORMIN_MAX (32767)</td>
13397+ </tr>
13398+ </table> */
13399+ LVM_INT16 CAL_micPowFloorMin; ///< Instrumental noise threshold
13400+
13401+ /**
13402+ Threshold for Windgush detector. The higher the value, the less sensitive the
13403+ detection.
13404+ <table border>
13405+ <tr>
13406+ <td><b>Q-format</b></td>
13407+ <td><b>Min</b></td>
13408+ <td><b>Default</b></td>
13409+ <td><b>Max</b></td>
13410+ </tr>
13411+ <tr>
13412+ <td>6.9</td>
13413+ <td>@ref LVNV_WGTHRESHOLD_MIN (0)</td>
13414+ <td>@ref LVNV_WGTHRESHOLD_DEFAULT (32767)</td>
13415+ <td>@ref LVNV_WGTHRESHOLD_MAX (32767)</td>
13416+ </tr>
13417+ </table> */
13418+ LVM_INT16 WgThreshold; ///< Windgush threshold
13419+
13420+ /**
13421+ Threshold for speech detector based on power comparison between primary and
13422+ secondary microphones. The higher the value, the less sensitive the detection.
13423+ <table border>
13424+ <tr>
13425+ <td><b>Q-format</b></td>
13426+ <td><b>Min</b></td>
13427+ <td><b>Default</b></td>
13428+ <td><b>Max</b></td>
13429+ </tr>
13430+ <tr>
13431+ <td>3.12</td>
13432+ <td>@ref LVNV_MPTHRESHOLD_MIN (0)</td>
13433+ <td>@ref LVNV_MPTHRESHOLD_DEFAULT (6554)</td>
13434+ <td>@ref LVNV_MPTHRESHOLD_MAX (32767)</td>
13435+ </tr>
13436+ </table> */
13437+ LVM_INT16 MpThreshold; ///< MicPow threshold
13438+
13439+ /**
13440+ Set of first 8 coefficients for adaptive filter FSB0. These values should be
13441+ determined for the given microphone configuration
13442+ <table border>
13443+ <tr>
13444+ <td><b>Q-format</b></td>
13445+ <td><b>Min</b></td>
13446+ <td><b>Default</b></td>
13447+ <td><b>Max</b></td>
13448+ </tr>
13449+ <tr>
13450+ <td>0.15</td>
13451+ <td>@ref LVNV_FSB_INIT_TABLE0_MIN (-32768)</td>
13452+ <td>@ref LVNV_FSB_INIT_TABLE0_DEFAULT {32767, 0, 0, 0, 0, 0, 0, 0}</td>
13453+ <td>@ref LVNV_FSB_INIT_TABLE0_MAX (32767)</td>
13454+ </tr>
13455+ </table> */
13456+ LVM_INT16 FSB_init_table0[LVNV_FSB_INIT_TABLE0_LENGTH]; ///< FSB0 initial coefficients.
13457+
13458+ /**
13459+ Set of first 8 coefficients for adaptive filter FSB1. These values should be
13460+ determined for the given microphone configuration
13461+ <table border>
13462+ <tr>
13463+ <td><b>Q-format</b></td>
13464+ <td><b>Min</b></td>
13465+ <td><b>Default</b></td>
13466+ <td><b>Max</b></td>
13467+ </tr>
13468+ <tr>
13469+ <td>0.15</td>
13470+ <td>@ref LVNV_FSB_INIT_TABLE1_MIN (-32768)</td>
13471+ <td>@ref LVNV_FSB_INIT_TABLE1_DEFAULT {0, 0, 0, 0, 0, 0, 0, 0}</td>
13472+ <td>@ref LVNV_FSB_INIT_TABLE1_MAX (32767)</td>
13473+ </tr>
13474+ </table> */
13475+ LVM_INT16 FSB_init_table1[LVNV_FSB_INIT_TABLE1_LENGTH]; ///< FSB1 initial coefficients.
13476+
13477+ /**
13478+ Length of the FSB to model the acoustical paths between the speech source and
13479+ two microphones. The length must be equal to 16 for the handset application.
13480+ <table border>
13481+ <tr>
13482+ <td><b>Q-format</b></td>
13483+ <td><b>Min</b></td>
13484+ <td><b>Default</b></td>
13485+ <td><b>Max</b></td>
13486+ </tr>
13487+ <tr>
13488+ <td>16.0</td>
13489+ <td>@ref LVNV_FSB_TAPS_MIN (8)</td>
13490+ <td>@ref LVNV_FSB_TAPS_DEFAULT (16)</td>
13491+ <td>@ref LVNV_FSB_TAPS_MAX (16)</td>
13492+ </tr>
13493+ </table> */
13494+ LVM_UINT16 FSB_taps; ///< Number of FSB taps
13495+
13496+ /**
13497+ Step-size to update the coefficients of the adaptive filters. A higher value
13498+ leads to a faster speed of the adaptation, while a lower value provides more
13499+ stability, but a slow adaption speed.
13500+ <table border>
13501+ <tr>
13502+ <td><b>Q-format</b></td>
13503+ <td><b>Min</b></td>
13504+ <td><b>Default</b></td>
13505+ <td><b>Max</b></td>
13506+ </tr>
13507+ <tr>
13508+ <td>0.15</td>
13509+ <td>@ref LVNV_FSB_TWOALPHA_MIN (0)</td>
13510+ <td>@ref LVNV_FSB_TWOALPHA_DEFAULT (655)</td>
13511+ <td>@ref LVNV_FSB_TWOALPHA_MAX (32767)</td>
13512+ </tr>
13513+ </table> */
13514+ LVM_INT16 FSB_twoalpha; ///< FSB step size control
13515+
13516+ /**
13517+ Gain applied on the samples of the second FSB reference signal (fsbref[1]).
13518+ <table border>
13519+ <tr>
13520+ <td><b>Q-format</b></td>
13521+ <td><b>Min</b></td>
13522+ <td><b>Default</b></td>
13523+ <td><b>Max</b></td>
13524+ </tr>
13525+ <tr>
13526+ <td>5.10</td>
13527+ <td>@ref LVNV_FSB_REF_GAIN_MIN (0)</td>
13528+ <td>@ref LVNV_FSB_REF_GAIN_DEFAULT (1024)</td>
13529+ <td>@ref LVNV_FSB_REF_GAIN_MAX (32767)</td>
13530+ </tr>
13531+ </table> */
13532+ LVM_INT16 FSB_ref_gain; ///< FSB ref gain
13533+
13534+ /**
13535+ Length of the GSC to model the transfer function between the noise reference
13536+ and the residual signal, in order to reduce the noise and interfering sounds
13537+ from the desired signal. This number should be a multiple of 8.
13538+ <table border>
13539+ <tr>
13540+ <td><b>Q-format</b></td>
13541+ <td><b>Min</b></td>
13542+ <td><b>Default</b></td>
13543+ <td><b>Max</b></td>
13544+ </tr>
13545+ <tr>
13546+ <td>16.0</td>
13547+ <td>@ref LVNV_GSC_TAPS_MIN (8)</td>
13548+ <td>@ref LVNV_GSC_TAPS_DEFAULT (16)</td>
13549+ <td>@ref LVNV_GSC_TAPS_MAX (48)</td>
13550+ </tr>
13551+ </table> */
13552+ LVM_UINT16 GSC_taps; ///< Number of GSC taps
13553+
13554+ /**
13555+ Step-size to update the coefficients of the adaptive filter. A higher value
13556+ leads to a faster speed of the adaptation, while a lower value provides more
13557+ stability, but a slow adaption speed.
13558+ <table border>
13559+ <tr>
13560+ <td><b>Q-format</b></td>
13561+ <td><b>Min</b></td>
13562+ <td><b>Default</b></td>
13563+ <td><b>Max</b></td>
13564+ </tr>
13565+ <tr>
13566+ <td>0.15</td>
13567+ <td>@ref LVNV_GSC_TWOALPHA_MIN (0)</td>
13568+ <td>@ref LVNV_GSC_TWOALPHA_DEFAULT (1638)</td>
13569+ <td>@ref LVNV_GSC_TWOALPHA_MAX (32767)</td>
13570+ </tr>
13571+ </table> */
13572+ LVM_INT16 GSC_twoalpha; ///< GSC step size control
13573+
13574+ /**
13575+ Adaptive step-size control for GSC to avoid divergence of the adaptive filter
13576+ during desired speech. In general, GSC_erl is lower than NLMS_erl and ranges
13577+ between 0 and 30 dB.
13578+ <table border>
13579+ <tr>
13580+ <td><b>Q-format</b></td>
13581+ <td><b>Min</b></td>
13582+ <td><b>Default</b></td>
13583+ <td><b>Max</b></td>
13584+ </tr>
13585+ <tr>
13586+ <td>9.6</td>
13587+ <td>@ref LVNV_GSC_ERL_MIN (64)</td>
13588+ <td>@ref LVNV_GSC_ERL_DEFAULT (256)</td>
13589+ <td>@ref LVNV_GSC_ERL_MAX (32767)</td>
13590+ </tr>
13591+ </table> */
13592+ LVM_INT16 GSC_erl; ///< GSC erl
13593+
13594+ /**
13595+ Offset added to the computation of the power of the noise reference to avoid
13596+ that the power converges towards zero when the input is low.
13597+ <table border>
13598+ <tr>
13599+ <td><b>Q-format</b></td>
13600+ <td><b>Min</b></td>
13601+ <td><b>Default</b></td>
13602+ <td><b>Max</b></td>
13603+ </tr>
13604+ <tr>
13605+ <td>0.15</td>
13606+ <td>@ref LVNV_GSC_OFFSET_MIN (0)</td>
13607+ <td>@ref LVNV_GSC_OFFSET_DEFAULT (1638)</td>
13608+ <td>@ref LVNV_GSC_OFFSET_MAX (32767)</td>
13609+ </tr>
13610+ </table> */
13611+ LVM_INT16 GSC_offset; ///< GSC offset
13612+
13613+ /**
13614+ Echo subtraction factor applied during farend-only.
13615+ <table border>
13616+ <tr>
13617+ <td><b>Q-format</b></td>
13618+ <td><b>Min</b></td>
13619+ <td><b>Default</b></td>
13620+ <td><b>Max</b></td>
13621+ </tr>
13622+ <tr>
13623+ <td>2.13</td>
13624+ <td>@ref LVNV_DNNS_ECHOGAMMAHI_MIN (0)</td>
13625+ <td>@ref LVNV_DNNS_ECHOGAMMAHI_DEFAULT (16384)</td>
13626+ <td>@ref LVNV_DNNS_ECHOGAMMAHI_MAX (32767)</td>
13627+ </tr>
13628+ </table> */
13629+ LVM_INT16 DNNS_EchoGammaHi; ///< High echo subtraction factor
13630+
13631+ /**
13632+ Echo subtraction factor applied during double talk and nearend-only.
13633+ <table border>
13634+ <tr>
13635+ <td><b>Q-format</b></td>
13636+ <td><b>Min</b></td>
13637+ <td><b>Default</b></td>
13638+ <td><b>Max</b></td>
13639+ </tr>
13640+ <tr>
13641+ <td>2.13</td>
13642+ <td>@ref LVNV_DNNS_ECHOGAMMALO_MIN (0)</td>
13643+ <td>@ref LVNV_DNNS_ECHOGAMMALO_DEFAULT (8192)</td>
13644+ <td>@ref LVNV_DNNS_ECHOGAMMALO_MAX (32767)</td>
13645+ </tr>
13646+ </table> */
13647+ LVM_INT16 DNNS_EchoGammaLo; ///< Low echo subtraction factor
13648+
13649+ /**
13650+ Parameter related to the reverberation time of the acoustical environment,
13651+ which represents the decay in energy over time of the echo tail of the impulse
13652+ response.
13653+ <table border>
13654+ <tr>
13655+ <td><b>Q-format</b></td>
13656+ <td><b>Min</b></td>
13657+ <td><b>Default</b></td>
13658+ <td><b>Max</b></td>
13659+ </tr>
13660+ <tr>
13661+ <td>0.15</td>
13662+ <td>@ref LVNV_DNNS_ECHOALPHAREV_MIN (0)</td>
13663+ <td>@ref LVNV_DNNS_ECHOALPHAREV_DEFAULT (12000)</td>
13664+ <td>@ref LVNV_DNNS_ECHOALPHAREV_MAX (32767)</td>
13665+ </tr>
13666+ </table> */
13667+ LVM_INT16 DNNS_EchoAlphaRev; ///< Echo reverberation factor
13668+
13669+ /**
13670+ Parameter representing the portion of the echo tail (estimated by the NLMS
13671+ filter) that has to be extrapolated in time.
13672+ <table border>
13673+ <tr>
13674+ <td><b>Q-format</b></td>
13675+ <td><b>Min</b></td>
13676+ <td><b>Default</b></td>
13677+ <td><b>Max</b></td>
13678+ </tr>
13679+ <tr>
13680+ <td>0.15</td>
13681+ <td>@ref LVNV_DNNS_ECHOTAILPORTION_MIN (0)</td>
13682+ <td>@ref LVNV_DNNS_ECHOTAILPORTION_DEFAULT (7000)</td>
13683+ <td>@ref LVNV_DNNS_ECHOTAILPORTION_MAX (32767)</td>
13684+ </tr>
13685+ </table> */
13686+ LVM_INT16 DNNS_EchoTailPortion; ///< Echo tail portion
13687+
13688+ /**
13689+ Non-linear echo subtraction factor applied during double talk and nearend-only.
13690+ <table border>
13691+ <tr>
13692+ <td><b>Q-format</b></td>
13693+ <td><b>Min</b></td>
13694+ <td><b>Default</b></td>
13695+ <td><b>Max</b></td>
13696+ </tr>
13697+ <tr>
13698+ <td>4.11</td>
13699+ <td>@ref LVNV_DNNS_NLATTEN_MIN (0)</td>
13700+ <td>@ref LVNV_DNNS_NLATTEN_DEFAULT (256)</td>
13701+ <td>@ref LVNV_DNNS_NLATTEN_MAX (2048)</td>
13702+ </tr>
13703+ </table> */
13704+ LVM_INT16 DNNS_NlAtten; ///< Non-linear echo subtraction factor
13705+
13706+ /**
13707+ Gain factor for stationary noise oversubtraction.
13708+ <table border>
13709+ <tr>
13710+ <td><b>Q-format</b></td>
13711+ <td><b>Min</b></td>
13712+ <td><b>Default</b></td>
13713+ <td><b>Max</b></td>
13714+ </tr>
13715+ <tr>
13716+ <td>2.13</td>
13717+ <td>@ref LVNV_DNNS_NOISEGAMMAS_MIN (0)</td>
13718+ <td>@ref LVNV_DNNS_NOISEGAMMAS_DEFAULT (11470)</td>
13719+ <td>@ref LVNV_DNNS_NOISEGAMMAS_MAX (32767)</td>
13720+ </tr>
13721+ </table> */
13722+ LVM_INT16 DNNS_NoiseGammaS; ///< Stationary noise oversubtraction factor
13723+
13724+ /**
13725+ Gain factor for non-stationary noise oversubtraction.
13726+ <table border>
13727+ <tr>
13728+ <td><b>Q-format</b></td>
13729+ <td><b>Min</b></td>
13730+ <td><b>Default</b></td>
13731+ <td><b>Max</b></td>
13732+ </tr>
13733+ <tr>
13734+ <td>2.13</td>
13735+ <td>@ref LVNV_DNNS_NOISEGAMMAN_MIN (0)</td>
13736+ <td>@ref LVNV_DNNS_NOISEGAMMAN_DEFAULT (16384)</td>
13737+ <td>@ref LVNV_DNNS_NOISEGAMMAN_MAX (32767)</td>
13738+ </tr>
13739+ </table> */
13740+ LVM_INT16 DNNS_NoiseGammaN; ///< Non-stationary noise oversubtraction factor
13741+
13742+ /**
13743+ The maximum amount of stationary noise suppression.<br>
13744+ DNNS_NoiseGainMinS = \f$2*32767*10^{MaxNoiseReductiondB/20}\f$
13745+ <table border>
13746+ <tr>
13747+ <td><b>Q-format</b></td>
13748+ <td><b>Min</b></td>
13749+ <td><b>Default</b></td>
13750+ <td><b>Max</b></td>
13751+ </tr>
13752+ <tr>
13753+ <td>-1.16</td>
13754+ <td>@ref LVNV_DNNS_NOISEGAINMINS_MIN (0)</td>
13755+ <td>@ref LVNV_DNNS_NOISEGAINMINS_DEFAULT (11140)</td>
13756+ <td>@ref LVNV_DNNS_NOISEGAINMINS_MAX (32767)</td>
13757+ </tr>
13758+ </table> */
13759+ LVM_INT16 DNNS_NoiseGainMinS; ///< Maximum stationary noise suppression.
13760+
13761+ /**
13762+ The maximum amount of non-stationary noise suppression.<br>
13763+ DNNS_NoiseGainMinN = \f$2*32767*10^{MaxNoiseReductiondB/20}\f$
13764+ <table border>
13765+ <tr>
13766+ <td><b>Q-format</b></td>
13767+ <td><b>Min</b></td>
13768+ <td><b>Default</b></td>
13769+ <td><b>Max</b></td>
13770+ </tr>
13771+ <tr>
13772+ <td>-1.16</td>
13773+ <td>@ref LVNV_DNNS_NOISEGAINMINN_MIN (0)</td>
13774+ <td>@ref LVNV_DNNS_NOISEGAINMINN_DEFAULT (6554)</td>
13775+ <td>@ref LVNV_DNNS_NOISEGAINMINN_MAX (32767)</td>
13776+ </tr>
13777+ </table> */
13778+ LVM_INT16 DNNS_NoiseGainMinN; ///< Maximum non-stationary noise suppression.
13779+
13780+ /**
13781+ Bias compensation factor for stationary noise estimation.
13782+ <table border>
13783+ <tr>
13784+ <td><b>Q-format</b></td>
13785+ <td><b>Min</b></td>
13786+ <td><b>Default</b></td>
13787+ <td><b>Max</b></td>
13788+ </tr>
13789+ <tr>
13790+ <td>2.13</td>
13791+ <td>@ref LVNV_DNNS_NOISEBIASCOMP_MIN (0)</td>
13792+ <td>@ref LVNV_DNNS_NOISEBIASCOMP_DEFAULT (9830)</td>
13793+ <td>@ref LVNV_DNNS_NOISEBIASCOMP_MAX (32767)</td>
13794+ </tr>
13795+ </table> */
13796+ LVM_INT16 DNNS_NoiseBiasComp; ///< Bias compensation factor.
13797+
13798+ /**
13799+ Echo oversubtraction factor applied to the estimated non-stationary noise
13800+ floor.
13801+ <table border>
13802+ <tr>
13803+ <td><b>Q-format</b></td>
13804+ <td><b>Min</b></td>
13805+ <td><b>Default</b></td>
13806+ <td><b>Max</b></td>
13807+ </tr>
13808+ <tr>
13809+ <td>3.12</td>
13810+ <td>@ref LVNV_DNNS_GAINETA_MIN (0)</td>
13811+ <td>@ref LVNV_DNNS_GAINETA_DEFAULT (256)</td>
13812+ <td>@ref LVNV_DNNS_GAINETA_MAX (32767)</td>
13813+ </tr>
13814+ </table> */
13815+ LVM_INT16 DNNS_GainEta; ///< Echo oversubtraction factor.
13816+
13817+ /**
13818+ Detection threshold for microphone activity.
13819+ <table border>
13820+ <tr>
13821+ <td><b>Q-format</b></td>
13822+ <td><b>Min</b></td>
13823+ <td><b>Default</b></td>
13824+ <td><b>Max</b></td>
13825+ </tr>
13826+ <tr>
13827+ <td>3.12</td>
13828+ <td>@ref LVNV_DNNS_ACTHRESHOLD_MIN (0)</td>
13829+ <td>@ref LVNV_DNNS_ACTHRESHOLD_DEFAULT (12288)</td>
13830+ <td>@ref LVNV_DNNS_ACTHRESHOLD_MAX (32767)</td>
13831+ </tr>
13832+ </table> */
13833+ LVM_INT16 DNNS_AcThreshold; ///< Activity threshold.
13834+
13835+ /**
13836+ Detection threshold for activity within the beam of FSB.
13837+ <table border>
13838+ <tr>
13839+ <td><b>Q-format</b></td>
13840+ <td><b>Min</b></td>
13841+ <td><b>Default</b></td>
13842+ <td><b>Max</b></td>
13843+ </tr>
13844+ <tr>
13845+ <td>3.12</td>
13846+ <td>@ref LVNV_DNNS_WBTHRESHOLD_MIN (0)</td>
13847+ <td>@ref LVNV_DNNS_WBTHRESHOLD_DEFAULT (9216)</td>
13848+ <td>@ref LVNV_DNNS_WBTHRESHOLD_MAX (32767)</td>
13849+ </tr>
13850+ </table> */
13851+ LVM_INT16 DNNS_WbThreshold; ///< WithinBeam threshold.
13852+
13853+ /**
13854+ Detection threshold for lost beam where the nearend speaker is speaking outside
13855+ the beam of the FSB.
13856+ <table border>
13857+ <tr>
13858+ <td><b>Q-format</b></td>
13859+ <td><b>Min</b></td>
13860+ <td><b>Default</b></td>
13861+ <td><b>Max</b></td>
13862+ </tr>
13863+ <tr>
13864+ <td>9.6</td>
13865+ <td>@ref LVNV_DNNS_LOSTBEAMTHRESHOLD_MIN (0)</td>
13866+ <td>@ref LVNV_DNNS_LOSTBEAMTHRESHOLD_DEFAULT (320)</td>
13867+ <td>@ref LVNV_DNNS_LOSTBEAMTHRESHOLD_MAX (32767)</td>
13868+ </tr>
13869+ </table> */
13870+ LVM_INT16 DNNS_LostBeamThreshold; ///< Lost beam threshold.
13871+
13872+ /**
13873+ Smoothing factor applied to get a smoothed value of the inter-channel
13874+ correlation.
13875+ <table border>
13876+ <tr>
13877+ <td><b>Q-format</b></td>
13878+ <td><b>Min</b></td>
13879+ <td><b>Default</b></td>
13880+ <td><b>Max</b></td>
13881+ </tr>
13882+ <tr>
13883+ <td>9.6</td>
13884+ <td>@ref LVNV_PCD_BETA_MIN (0)</td>
13885+ <td>@ref LVNV_PCD_BETA_DEFAULT (230)</td>
13886+ <td>@ref LVNV_PCD_BETA_MAX (32767)</td>
13887+ </tr>
13888+ </table> */
13889+ LVM_INT16 PCD_beta; ///< ICC smoothing factor.
13890+
13891+ /**
13892+ Detection threshold for broadside when the nearend speaker is not in end-fire
13893+ position with respect to the microphone configuration.
13894+ <table border>
13895+ <tr>
13896+ <td><b>Q-format</b></td>
13897+ <td><b>Min</b></td>
13898+ <td><b>Default</b></td>
13899+ <td><b>Max</b></td>
13900+ </tr>
13901+ <tr>
13902+ <td>9.6</td>
13903+ <td>@ref LVNV_PCD_THRESHOLD_MIN (0)</td>
13904+ <td>@ref LVNV_PCD_THRESHOLD_DEFAULT (26213)</td>
13905+ <td>@ref LVNV_PCD_THRESHOLD_MAX (32767)</td>
13906+ </tr>
13907+ </table> */
13908+ LVM_INT16 PCD_Threshold; ///< Broadside detection threshold.
13909+
13910+} LVNV_ControlParams_st;
13911+
13912+/**
13913+* The control parameters are used to control the overall module behavior. These parameters may
13914+* be changed at any time during processing using the LVHF_SetControlParameters function but they
13915+* will not take effect until the next call to the LVHF_Process function.
13916+*
13917+* @see LVHF_SetControlParameters
13918+* @see LVHF_Process
13919+*/
13920+typedef struct
13921+{
13922+ /**
13923+ */
13924+ LVM_Mode_en OperatingMode; ///< Operating Mode
13925+
13926+ /**
13927+ The mode word to enable/disable internal algorithm blocks of HandsFree
13928+ */
13929+ LVHF_ModeWord_bm Mode; ///< Mode Word
13930+
13931+ /**
13932+ The tuning mode is used to enable/disable internal algorithm tuning
13933+ capabilities in the different blocks of HandsFree. Only one bit allowed to be
13934+ enabled at a time.
13935+ */
13936+ LVHF_TuningModeWord TuningMode; ///< Tuning Mode
13937+
13938+ /**
13939+ Gain applied at the Tx input of LVHF. Used to scale the microphone signal in
13940+ order to give the NLMS filter headroom for correct operation.
13941+ <table border>
13942+ <tr>
13943+ <td><b>Q-format</b></td>
13944+ <td><b>Min</b></td>
13945+ <td><b>Default</b></td>
13946+ <td><b>Max</b></td>
13947+ </tr>
13948+ <tr>
13949+ <td>2.13</td>
13950+ <td>@ref LVHF_INPUTGAIN_MIN (0)</td>
13951+ <td>@ref LVHF_INPUTGAIN_DEFAULT (8192)</td>
13952+ <td>@ref LVHF_INPUTGAIN_MAX (32767)</td>
13953+ </tr>
13954+ </table> */
13955+ LVM_INT16 InputGain; ///< Input Gain
13956+
13957+ /**
13958+ Gain applied at the Tx output of LVHF. Compensates the applied InputGain in
13959+ order to preserve the overall Tx gain.
13960+ <table border>
13961+ <tr>
13962+ <td><b>Q-format</b></td>
13963+ <td><b>Min</b></td>
13964+ <td><b>Default</b></td>
13965+ <td><b>Max</b></td>
13966+ </tr>
13967+ <tr>
13968+ <td>4.11</td>
13969+ <td>@ref LVHF_OUTPUTGAIN_MIN (0)</td>
13970+ <td>@ref LVHF_OUTPUTGAIN_DEFAULT (2048)</td>
13971+ <td>@ref LVHF_OUTPUTGAIN_MAX (32767)</td>
13972+ </tr>
13973+ </table> */
13974+ LVM_INT16 OutputGain; ///< Output Gain
13975+
13976+ /**
13977+ Limit the NLMS reference signal. Value in dB Full Scale.
13978+ <table border>
13979+ <tr>
13980+ <td><b>Q-format</b></td>
13981+ <td><b>Min</b></td>
13982+ <td><b>Default</b></td>
13983+ <td><b>Max</b></td>
13984+ </tr>
13985+ <tr>
13986+ <td>15.0</td>
13987+ <td>@ref LVHF_NLMS_LIMIT_MIN (-24)</td>
13988+ <td>@ref LVHF_NLMS_LIMIT_DEFAULT (0)</td>
13989+ <td>@ref LVHF_NLMS_LIMIT_MAX (0)</td>
13990+ </tr>
13991+ </table> */
13992+ LVM_INT16 NLMS_limit; ///< Limit the NLMS reference signal.
13993+
13994+ /**
13995+ Length of the low-band (0-4kHz) adaptive echo cancellation filter. The Length
13996+ should be chosen such that most of the energy of the impulse response is
13997+ covered by the filter. The length should be a multiple of 8.
13998+ <table border>
13999+ <tr>
14000+ <td><b>Q-format</b></td>
14001+ <td><b>Min</b></td>
14002+ <td><b>Default</b></td>
14003+ <td><b>Max</b></td>
14004+ </tr>
14005+ <tr>
14006+ <td>16.0</td>
14007+ <td>@ref LVHF_NLMS_LB_TAPS_MIN (16)</td>
14008+ <td>@ref LVHF_NLMS_LB_TAPS_DEFAULT (64)</td>
14009+ <td>@ref LVHF_NLMS_LB_TAPS_MAX (200)</td>
14010+ </tr>
14011+ </table> */
14012+ LVM_UINT16 NLMS_LB_taps; ///< Number of taps for LB NLMS.
14013+
14014+ /**
14015+ Step size for the update of the low-band (0-4kHz) adaptive filter coefficients.
14016+ It is recommended not to change the default value.
14017+ <table border>
14018+ <tr>
14019+ <td><b>Q-format</b></td>
14020+ <td><b>Min</b></td>
14021+ <td><b>Default</b></td>
14022+ <td><b>Max</b></td>
14023+ </tr>
14024+ <tr>
14025+ <td>0.15</td>
14026+ <td>@ref LVHF_NLMS_LB_TWO_ALPHA_MIN (0)</td>
14027+ <td>@ref LVHF_NLMS_LB_TWO_ALPHA_DEFAULT (8192)</td>
14028+ <td>@ref LVHF_NLMS_LB_TWO_ALPHA_MAX (32767)</td>
14029+ </tr>
14030+ </table> */
14031+ LVM_INT16 NLMS_LB_two_alpha; ///< Step Size of LB NLMS
14032+
14033+ /**
14034+ Adaptive step size control for the low-band (0-4kHz) adaptive echo cancellation
14035+ filter. This parameter is used to slow down the update speed of the adaptive
14036+ filter during double talk situations.
14037+ <table border>
14038+ <tr>
14039+ <td><b>Q-format</b></td>
14040+ <td><b>Min</b></td>
14041+ <td><b>Default</b></td>
14042+ <td><b>Max</b></td>
14043+ </tr>
14044+ <tr>
14045+ <td>9.6</td>
14046+ <td>@ref LVHF_NLMS_LB_ERL_MIN (64)</td>
14047+ <td>@ref LVHF_NLMS_LB_ERL_DEFAULT (128)</td>
14048+ <td>@ref LVHF_NLMS_LB_ERL_MAX (32767)</td>
14049+ </tr>
14050+ </table> */
14051+ LVM_INT16 NLMS_LB_erl; ///< ERL of LB NLMS
14052+
14053+ /**
14054+ Length of the high-band (4-8kHz) adaptive echo cancellation filter. The Length
14055+ should be chosen such that most of the energy of the impulse response is
14056+ covered by the filter. The length should be a multiple of 8. In case of
14057+ narrowband processing, this parameter has no effect.
14058+ <table border>
14059+ <tr>
14060+ <td><b>Q-format</b></td>
14061+ <td><b>Min</b></td>
14062+ <td><b>Default</b></td>
14063+ <td><b>Max</b></td>
14064+ </tr>
14065+ <tr>
14066+ <td>16.0</td>
14067+ <td>@ref LVHF_NLMS_HB_TAPS_MIN (16)</td>
14068+ <td>@ref LVHF_NLMS_HB_TAPS_DEFAULT (64)</td>
14069+ <td>@ref LVHF_NLMS_HB_TAPS_MAX (136)</td>
14070+ </tr>
14071+ </table> */
14072+ LVM_UINT16 NLMS_HB_taps; ///< Number of taps for HB NLMS.
14073+
14074+ /**
14075+ Step size for the update of the high-band (4-8kHz) adaptive filter
14076+ coefficients. It is recommended not to change the default value. In case of
14077+ narrowband processing, this parameter has no effect.
14078+ <table border>
14079+ <tr>
14080+ <td><b>Q-format</b></td>
14081+ <td><b>Min</b></td>
14082+ <td><b>Default</b></td>
14083+ <td><b>Max</b></td>
14084+ </tr>
14085+ <tr>
14086+ <td>0.15</td>
14087+ <td>@ref LVHF_NLMS_HB_TWO_ALPHA_MIN (0)</td>
14088+ <td>@ref LVHF_NLMS_HB_TWO_ALPHA_DEFAULT (8192)</td>
14089+ <td>@ref LVHF_NLMS_HB_TWO_ALPHA_MAX (32767)</td>
14090+ </tr>
14091+ </table> */
14092+ LVM_INT16 NLMS_HB_two_alpha; ///< Step Size of HB NLMS
14093+
14094+ /**
14095+ Adaptive step size control for the high-band (4-8kHz) adaptive echo
14096+ cancellation filter. This parameter is used to slow down the update speed of
14097+ the adaptive filter during double talk situations. In case of narrowband
14098+ processing, this parameter has no effect.
14099+ <table border>
14100+ <tr>
14101+ <td><b>Q-format</b></td>
14102+ <td><b>Min</b></td>
14103+ <td><b>Default</b></td>
14104+ <td><b>Max</b></td>
14105+ </tr>
14106+ <tr>
14107+ <td>9.6</td>
14108+ <td>@ref LVHF_NLMS_HB_ERL_MIN (64)</td>
14109+ <td>@ref LVHF_NLMS_HB_ERL_DEFAULT (128)</td>
14110+ <td>@ref LVHF_NLMS_HB_ERL_MAX (32767)</td>
14111+ </tr>
14112+ </table> */
14113+ LVM_INT16 NLMS_HB_erl; ///< ERL of HB NLMS
14114+
14115+ /**
14116+ Indicates whether a preset of adaptive filter coefficients should be done. <br>
14117+ 0 = No preset (Coefficients as they are)<br>
14118+ 1= Preset with internally calculated coefficients.<br>
14119+ 2= Preset with zero coefficients.
14120+ <table border>
14121+ <tr>
14122+ <td><b>Q-format</b></td>
14123+ <td><b>Min</b></td>
14124+ <td><b>Default</b></td>
14125+ <td><b>Max</b></td>
14126+ </tr>
14127+ <tr>
14128+ <td>15.0</td>
14129+ <td>@ref LVHF_NLMS_PRESET_COEFS_MIN (0)</td>
14130+ <td>@ref LVHF_NLMS_PRESET_COEFS_DEFAULT (1)</td>
14131+ <td>@ref LVHF_NLMS_PRESET_COEFS_MAX (2)</td>
14132+ </tr>
14133+ </table> */
14134+ LVM_INT16 NLMS_preset_coefs; ///< Coefficient preset.
14135+
14136+ /**
14137+ Offset added to the normalization of the adaptation of the filter.
14138+ <table border>
14139+ <tr>
14140+ <td><b>Q-format</b></td>
14141+ <td><b>Min</b></td>
14142+ <td><b>Default</b></td>
14143+ <td><b>Max</b></td>
14144+ </tr>
14145+ <tr>
14146+ <td>0.15</td>
14147+ <td>@ref LVHF_NLMS_OFFSET_MIN (0)</td>
14148+ <td>@ref LVHF_NLMS_OFFSET_DEFAULT (767)</td>
14149+ <td>@ref LVHF_NLMS_OFFSET_MAX (32767)</td>
14150+ </tr>
14151+ </table> */
14152+ LVM_INT16 NLMS_offset; ///< NLMS offset
14153+
14154+ /**
14155+ Parameter related to the reverberation of the acoustic environment. It
14156+ represents the decay in time of the energy of the echo tail of the impulse
14157+ response for the LB.
14158+ <table border>
14159+ <tr>
14160+ <td><b>Q-format</b></td>
14161+ <td><b>Min</b></td>
14162+ <td><b>Default</b></td>
14163+ <td><b>Max</b></td>
14164+ </tr>
14165+ <tr>
14166+ <td>0.15</td>
14167+ <td>@ref LVHF_DENS_TAIL_ALPHA_LB_MIN (0)</td>
14168+ <td>@ref LVHF_DENS_TAIL_ALPHA_LB_DEFAULT (25395)</td>
14169+ <td>@ref LVHF_DENS_TAIL_ALPHA_LB_MAX (32767)</td>
14170+ </tr>
14171+ </table> */
14172+ LVM_INT16 DENS_tail_alpha_LB;
14173+ /**
14174+ Parameter related to the portion of the echo tail that has to be extrapolated
14175+ in time for LB.
14176+ <table border>
14177+ <tr>
14178+ <td><b>Q-format</b></td>
14179+ <td><b>Min</b></td>
14180+ <td><b>Default</b></td>
14181+ <td><b>Max</b></td>
14182+ </tr>
14183+ <tr>
14184+ <td>0.15</td>
14185+ <td>@ref LVHF_DENS_TAIL_PORTION_LB_MIN (0)</td>
14186+ <td>@ref LVHF_DENS_TAIL_PORTION_LB_DEFAULT (29491)</td>
14187+ <td>@ref LVHF_DENS_TAIL_PORTION_LB_MAX (32767)</td>
14188+ </tr>
14189+ </table> */
14190+ LVM_INT16 DENS_tail_portion_LB;
14191+ /**
14192+ Echo subtraction factor applied during farend-only for the LB.
14193+ <table border>
14194+ <tr>
14195+ <td><b>Q-format</b></td>
14196+ <td><b>Min</b></td>
14197+ <td><b>Default</b></td>
14198+ <td><b>Max</b></td>
14199+ </tr>
14200+ <tr>
14201+ <td>7.8</td>
14202+ <td>@ref LVHF_DENS_GAMMA_E_HIGH_LB_MIN (0)</td>
14203+ <td>@ref LVHF_DENS_GAMMA_E_HIGH_LB_DEFAULT (512)</td>
14204+ <td>@ref LVHF_DENS_GAMMA_E_HIGH_LB_MAX (32767)</td>
14205+ </tr>
14206+ </table> */
14207+ LVM_INT16 DENS_gamma_e_high_LB; ///< FE Echo subtraction LB
14208+
14209+ /**
14210+ Echo subtraction factor applied during double talk for the LB.
14211+ <table border>
14212+ <tr>
14213+ <td><b>Q-format</b></td>
14214+ <td><b>Min</b></td>
14215+ <td><b>Default</b></td>
14216+ <td><b>Max</b></td>
14217+ </tr>
14218+ <tr>
14219+ <td>7.8</td>
14220+ <td>@ref LVHF_DENS_GAMMA_E_DT_LB_MIN (0)</td>
14221+ <td>@ref LVHF_DENS_GAMMA_E_DT_LB_DEFAULT (256)</td>
14222+ <td>@ref LVHF_DENS_GAMMA_E_DT_LB_MAX (32767)</td>
14223+ </tr>
14224+ </table> */
14225+ LVM_INT16 DENS_gamma_e_dt_LB; ///< DT Echo subtraction factor LB
14226+
14227+ /**
14228+ Echo subtraction factor applied during nearend-only for the LB.
14229+ <table border>
14230+ <tr>
14231+ <td><b>Q-format</b></td>
14232+ <td><b>Min</b></td>
14233+ <td><b>Default</b></td>
14234+ <td><b>Max</b></td>
14235+ </tr>
14236+ <tr>
14237+ <td>7.8</td>
14238+ <td>@ref LVHF_DENS_GAMMA_E_LOW_LB_MIN (0)</td>
14239+ <td>@ref LVHF_DENS_GAMMA_E_LOW_LB_DEFAULT (256)</td>
14240+ <td>@ref LVHF_DENS_GAMMA_E_LOW_LB_MAX (32767)</td>
14241+ </tr>
14242+ </table> */
14243+ LVM_INT16 DENS_gamma_e_low_LB; ///< NE Echo subtraction factor LB
14244+
14245+ /**
14246+ The amount of extra non-linear suppression relative to the maximum linear echo
14247+ suppression for the LB. The use of these non-linear echo suppression mechanisms
14248+ should be avoided as much as possible since it affects the double talk
14249+ performance.
14250+ <table border>
14251+ <tr>
14252+ <td><b>Q-format</b></td>
14253+ <td><b>Min</b></td>
14254+ <td><b>Default</b></td>
14255+ <td><b>Max</b></td>
14256+ </tr>
14257+ <tr>
14258+ <td>4.11</td>
14259+ <td>@ref LVHF_DENS_NL_ATTEN_LB_MIN (0)</td>
14260+ <td>@ref LVHF_DENS_NL_ATTEN_LB_DEFAULT (0)</td>
14261+ <td>@ref LVHF_DENS_NL_ATTEN_LB_MAX (2048)</td>
14262+ </tr>
14263+ </table> */
14264+ LVM_INT16 DENS_NL_atten_LB; ///< LB Non linear attenuation
14265+
14266+ /**
14267+ Parameter related to the reverberation of the acoustic environment. It
14268+ represents the decay in time of the energy of the echo tail of the impulse
14269+ response for the HB.
14270+ <table border>
14271+ <tr>
14272+ <td><b>Q-format</b></td>
14273+ <td><b>Min</b></td>
14274+ <td><b>Default</b></td>
14275+ <td><b>Max</b></td>
14276+ </tr>
14277+ <tr>
14278+ <td>0.15</td>
14279+ <td>@ref LVHF_DENS_TAIL_ALPHA_HB_MIN (0)</td>
14280+ <td>@ref LVHF_DENS_TAIL_ALPHA_HB_DEFAULT (25395)</td>
14281+ <td>@ref LVHF_DENS_TAIL_ALPHA_HB_MAX (32767)</td>
14282+ </tr>
14283+ </table> */
14284+ LVM_INT16 DENS_tail_alpha_HB;
14285+ /**
14286+ Parameter related to the portion of the echo tail that has to be extrapolated
14287+ in time for HB.
14288+ <table border>
14289+ <tr>
14290+ <td><b>Q-format</b></td>
14291+ <td><b>Min</b></td>
14292+ <td><b>Default</b></td>
14293+ <td><b>Max</b></td>
14294+ </tr>
14295+ <tr>
14296+ <td>0.15</td>
14297+ <td>@ref LVHF_DENS_TAIL_PORTION_HB_MIN (0)</td>
14298+ <td>@ref LVHF_DENS_TAIL_PORTION_HB_DEFAULT (29491)</td>
14299+ <td>@ref LVHF_DENS_TAIL_PORTION_HB_MAX (32767)</td>
14300+ </tr>
14301+ </table> */
14302+ LVM_INT16 DENS_tail_portion_HB;
14303+ /**
14304+ Echo subtraction factor applied during farend-only for the HB.
14305+ <table border>
14306+ <tr>
14307+ <td><b>Q-format</b></td>
14308+ <td><b>Min</b></td>
14309+ <td><b>Default</b></td>
14310+ <td><b>Max</b></td>
14311+ </tr>
14312+ <tr>
14313+ <td>7.8</td>
14314+ <td>@ref LVHF_DENS_GAMMA_E_HIGH_HB_MIN (0)</td>
14315+ <td>@ref LVHF_DENS_GAMMA_E_HIGH_HB_DEFAULT (512)</td>
14316+ <td>@ref LVHF_DENS_GAMMA_E_HIGH_HB_MAX (32767)</td>
14317+ </tr>
14318+ </table> */
14319+ LVM_INT16 DENS_gamma_e_high_HB; ///< FE Echo subtraction HB
14320+
14321+ /**
14322+ Echo subtraction factor applied during double talk for the HB.
14323+ <table border>
14324+ <tr>
14325+ <td><b>Q-format</b></td>
14326+ <td><b>Min</b></td>
14327+ <td><b>Default</b></td>
14328+ <td><b>Max</b></td>
14329+ </tr>
14330+ <tr>
14331+ <td>7.8</td>
14332+ <td>@ref LVHF_DENS_GAMMA_E_DT_HB_MIN (0)</td>
14333+ <td>@ref LVHF_DENS_GAMMA_E_DT_HB_DEFAULT (256)</td>
14334+ <td>@ref LVHF_DENS_GAMMA_E_DT_HB_MAX (32767)</td>
14335+ </tr>
14336+ </table> */
14337+ LVM_INT16 DENS_gamma_e_dt_HB; ///< DT Echo subtraction factor HB
14338+
14339+ /**
14340+ Echo subtraction factor applied during nearend-only for the HB.
14341+ <table border>
14342+ <tr>
14343+ <td><b>Q-format</b></td>
14344+ <td><b>Min</b></td>
14345+ <td><b>Default</b></td>
14346+ <td><b>Max</b></td>
14347+ </tr>
14348+ <tr>
14349+ <td>7.8</td>
14350+ <td>@ref LVHF_DENS_GAMMA_E_LOW_HB_MIN (0)</td>
14351+ <td>@ref LVHF_DENS_GAMMA_E_LOW_HB_DEFAULT (256)</td>
14352+ <td>@ref LVHF_DENS_GAMMA_E_LOW_HB_MAX (32767)</td>
14353+ </tr>
14354+ </table> */
14355+ LVM_INT16 DENS_gamma_e_low_HB; ///< NE Echo subtraction factor HB
14356+
14357+ /**
14358+ The amount of extra non-linear suppression relative to the maximum linear echo
14359+ suppression. for the HB. The use of these non-linear echo suppression
14360+ mechanisms should be avoided as much as possible since it affects the double
14361+ talk performance.
14362+ <table border>
14363+ <tr>
14364+ <td><b>Q-format</b></td>
14365+ <td><b>Min</b></td>
14366+ <td><b>Default</b></td>
14367+ <td><b>Max</b></td>
14368+ </tr>
14369+ <tr>
14370+ <td>4.11</td>
14371+ <td>@ref LVHF_DENS_NL_ATTEN_HB_MIN (0)</td>
14372+ <td>@ref LVHF_DENS_NL_ATTEN_HB_DEFAULT (0)</td>
14373+ <td>@ref LVHF_DENS_NL_ATTEN_HB_MAX (2048)</td>
14374+ </tr>
14375+ </table> */
14376+ LVM_INT16 DENS_NL_atten_HB; ///< NE Echo subtraction factor HB
14377+
14378+ /**
14379+ Smoothing factor applied when switching between gamma_e values.
14380+ <table border>
14381+ <tr>
14382+ <td><b>Q-format</b></td>
14383+ <td><b>Min</b></td>
14384+ <td><b>Default</b></td>
14385+ <td><b>Max</b></td>
14386+ </tr>
14387+ <tr>
14388+ <td>0.15</td>
14389+ <td>@ref LVHF_DENS_GAMMA_E_ALPHA_MIN (0)</td>
14390+ <td>@ref LVHF_DENS_GAMMA_E_ALPHA_DEFAULT (24000)</td>
14391+ <td>@ref LVHF_DENS_GAMMA_E_ALPHA_MAX (32767)</td>
14392+ </tr>
14393+ </table> */
14394+ LVM_INT16 DENS_gamma_e_alpha; ///< Smoothing factor for gamma_e
14395+
14396+ /**
14397+ Gain factor for Noise subtraction.
14398+ <table border>
14399+ <tr>
14400+ <td><b>Q-format</b></td>
14401+ <td><b>Min</b></td>
14402+ <td><b>Default</b></td>
14403+ <td><b>Max</b></td>
14404+ </tr>
14405+ <tr>
14406+ <td>7.8</td>
14407+ <td>@ref LVHF_DENS_GAMMA_N_MIN (0)</td>
14408+ <td>@ref LVHF_DENS_GAMMA_N_DEFAULT (280)</td>
14409+ <td>@ref LVHF_DENS_GAMMA_N_MAX (32767)</td>
14410+ </tr>
14411+ </table> */
14412+ LVM_INT16 DENS_gamma_n; ///< Gain factor
14413+
14414+ /**
14415+ Threshold for nearend activity detection.
14416+ <table border>
14417+ <tr>
14418+ <td><b>Q-format</b></td>
14419+ <td><b>Min</b></td>
14420+ <td><b>Default</b></td>
14421+ <td><b>Max</b></td>
14422+ </tr>
14423+ <tr>
14424+ <td>7.8</td>
14425+ <td>@ref LVHF_DENS_SPDET_NEAR_MIN (0)</td>
14426+ <td>@ref LVHF_DENS_SPDET_NEAR_DEFAULT (512)</td>
14427+ <td>@ref LVHF_DENS_SPDET_NEAR_MAX (32767)</td>
14428+ </tr>
14429+ </table> */
14430+ LVM_INT16 DENS_spdet_near;
14431+ /**
14432+ Threshold for microphone activity detection.
14433+ <table border>
14434+ <tr>
14435+ <td><b>Q-format</b></td>
14436+ <td><b>Min</b></td>
14437+ <td><b>Default</b></td>
14438+ <td><b>Max</b></td>
14439+ </tr>
14440+ <tr>
14441+ <td>7.8</td>
14442+ <td>@ref LVHF_DENS_SPDET_ACT_MIN (0)</td>
14443+ <td>@ref LVHF_DENS_SPDET_ACT_DEFAULT (768)</td>
14444+ <td>@ref LVHF_DENS_SPDET_ACT_MAX (32767)</td>
14445+ </tr>
14446+ </table> */
14447+ LVM_INT16 DENS_spdet_act;
14448+ /**
14449+ The maximum amount of noise suppression. <br>
14450+ DENS_limit_ns = \f$32767*10^{-MaxNoiseReduction[dB]/20}\f$
14451+ <table border>
14452+ <tr>
14453+ <td><b>Q-format</b></td>
14454+ <td><b>Min</b></td>
14455+ <td><b>Default</b></td>
14456+ <td><b>Max</b></td>
14457+ </tr>
14458+ <tr>
14459+ <td>0.15</td>
14460+ <td>@ref LVHF_DENS_LIMIT_NS_MIN (0)</td>
14461+ <td>@ref LVHF_DENS_LIMIT_NS_DEFAULT (10361)</td>
14462+ <td>@ref LVHF_DENS_LIMIT_NS_MAX (32767)</td>
14463+ </tr>
14464+ </table> */
14465+ LVM_INT16 DENS_limit_ns; ///< Maximum noise suppression.
14466+
14467+ /**
14468+ The amount of comfort noise insertion.
14469+ <table border>
14470+ <tr>
14471+ <td><b>Q-format</b></td>
14472+ <td><b>Min</b></td>
14473+ <td><b>Default</b></td>
14474+ <td><b>Max</b></td>
14475+ </tr>
14476+ <tr>
14477+ <td>1.14</td>
14478+ <td>@ref LVHF_DENS_CNI_GAIN_MIN (0)</td>
14479+ <td>@ref LVHF_DENS_CNI_GAIN_DEFAULT (16384)</td>
14480+ <td>@ref LVHF_DENS_CNI_GAIN_MAX (32767)</td>
14481+ </tr>
14482+ </table> */
14483+ LVM_INT16 DENS_CNI_Gain; ///< CNI gain
14484+
14485+ /**
14486+ The window length (expressed in integer multiples of 10ms) for the estimation
14487+ of the noise components. It is recommended to keep this parameter at its
14488+ default value.
14489+ <table border>
14490+ <tr>
14491+ <td><b>Q-format</b></td>
14492+ <td><b>Min</b></td>
14493+ <td><b>Default</b></td>
14494+ <td><b>Max</b></td>
14495+ </tr>
14496+ <tr>
14497+ <td>0.15</td>
14498+ <td>@ref LVHF_DENS_NFE_BLOCKSIZE_MIN (0)</td>
14499+ <td>@ref LVHF_DENS_NFE_BLOCKSIZE_DEFAULT (150)</td>
14500+ <td>@ref LVHF_DENS_NFE_BLOCKSIZE_MAX (32767)</td>
14501+ </tr>
14502+ </table> */
14503+ LVM_INT16 DENS_NFE_blocksize; ///< NFE blocksize
14504+
14505+ /**
14506+ Threshold for farend activity detection.
14507+ <table border>
14508+ <tr>
14509+ <td><b>Q-format</b></td>
14510+ <td><b>Min</b></td>
14511+ <td><b>Default</b></td>
14512+ <td><b>Max</b></td>
14513+ </tr>
14514+ <tr>
14515+ <td>0.15</td>
14516+ <td>@ref LVHF_SPDET_FAR_MIN (0)</td>
14517+ <td>@ref LVHF_SPDET_FAR_DEFAULT (16384)</td>
14518+ <td>@ref LVHF_SPDET_FAR_MAX (32767)</td>
14519+ </tr>
14520+ </table> */
14521+ LVM_INT16 SPDET_far;
14522+ /**
14523+ Threshold for microphone activity detection.
14524+ <table border>
14525+ <tr>
14526+ <td><b>Q-format</b></td>
14527+ <td><b>Min</b></td>
14528+ <td><b>Default</b></td>
14529+ <td><b>Max</b></td>
14530+ </tr>
14531+ <tr>
14532+ <td>0.15</td>
14533+ <td>@ref LVHF_SPDET_MIC_MIN (0)</td>
14534+ <td>@ref LVHF_SPDET_MIC_DEFAULT (16384)</td>
14535+ <td>@ref LVHF_SPDET_MIC_MAX (32767)</td>
14536+ </tr>
14537+ </table> */
14538+ LVM_INT16 SPDET_mic;
14539+ /**
14540+ Threshold to activate the non-linear echo-suppression.
14541+ <table border>
14542+ <tr>
14543+ <td><b>Q-format</b></td>
14544+ <td><b>Min</b></td>
14545+ <td><b>Default</b></td>
14546+ <td><b>Max</b></td>
14547+ </tr>
14548+ <tr>
14549+ <td>0.15</td>
14550+ <td>@ref LVHF_SPDET_X_CLIP_MIN (0)</td>
14551+ <td>@ref LVHF_SPDET_X_CLIP_DEFAULT (0)</td>
14552+ <td>@ref LVHF_SPDET_X_CLIP_MAX (32767)</td>
14553+ </tr>
14554+ </table> */
14555+ LVM_INT16 SPDET_x_clip;
14556+ /**
14557+ Threshold to detect acoustical path changes.
14558+ <table border>
14559+ <tr>
14560+ <td><b>Q-format</b></td>
14561+ <td><b>Min</b></td>
14562+ <td><b>Default</b></td>
14563+ <td><b>Max</b></td>
14564+ </tr>
14565+ <tr>
14566+ <td>0.15</td>
14567+ <td>@ref LVHF_PCD_THRESHOLD_MIN (0)</td>
14568+ <td>@ref LVHF_PCD_THRESHOLD_DEFAULT (20000)</td>
14569+ <td>@ref LVHF_PCD_THRESHOLD_MAX (32767)</td>
14570+ </tr>
14571+ </table> */
14572+ LVM_INT16 PCD_threshold; ///< PCD threshold
14573+
14574+ /**
14575+ Length of the background adaptive filter. The length should be chosen such that
14576+ only the main peak of the impulse response is covered by the filter. The length
14577+ should be a multiple of 8.
14578+ <table border>
14579+ <tr>
14580+ <td><b>Q-format</b></td>
14581+ <td><b>Min</b></td>
14582+ <td><b>Default</b></td>
14583+ <td><b>Max</b></td>
14584+ </tr>
14585+ <tr>
14586+ <td>16.0</td>
14587+ <td>@ref LVHF_PCD_TAPS_MIN (16)</td>
14588+ <td>@ref LVHF_PCD_TAPS_DEFAULT (16)</td>
14589+ <td>@ref LVHF_PCD_TAPS_MAX (64)</td>
14590+ </tr>
14591+ </table> */
14592+ LVM_INT16 PCD_taps; ///< Number of taps of background NLMS.
14593+
14594+ /**
14595+ Adaptive step size control for the background adaptive filter.
14596+ <table border>
14597+ <tr>
14598+ <td><b>Q-format</b></td>
14599+ <td><b>Min</b></td>
14600+ <td><b>Default</b></td>
14601+ <td><b>Max</b></td>
14602+ </tr>
14603+ <tr>
14604+ <td>9.6</td>
14605+ <td>@ref LVHF_PCD_ERL_MIN (64)</td>
14606+ <td>@ref LVHF_PCD_ERL_DEFAULT (64)</td>
14607+ <td>@ref LVHF_PCD_ERL_MAX (32767)</td>
14608+ </tr>
14609+ </table> */
14610+ LVM_INT16 PCD_erl; ///< Step size of background NLMS.
14611+
14612+ /**
14613+ If a path change is detected, NLMS_erl of the NLMS is set to this value, to
14614+ ensure a fast adapting filter.
14615+ <table border>
14616+ <tr>
14617+ <td><b>Q-format</b></td>
14618+ <td><b>Min</b></td>
14619+ <td><b>Default</b></td>
14620+ <td><b>Max</b></td>
14621+ </tr>
14622+ <tr>
14623+ <td>9.6</td>
14624+ <td>@ref LVHF_PCD_MINIMUM_ERL_MIN (64)</td>
14625+ <td>@ref LVHF_PCD_MINIMUM_ERL_DEFAULT (64)</td>
14626+ <td>@ref LVHF_PCD_MINIMUM_ERL_MAX (32767)</td>
14627+ </tr>
14628+ </table> */
14629+ LVM_INT16 PCD_minimum_erl; ///< Step size of NLMS after PCD.
14630+
14631+ /**
14632+ After a path change the NLMS_erl of the NLMS increases back to the nominal
14633+ value. The speed to increase can be controlled by this parameter.
14634+ <table border>
14635+ <tr>
14636+ <td><b>Q-format</b></td>
14637+ <td><b>Min</b></td>
14638+ <td><b>Default</b></td>
14639+ <td><b>Max</b></td>
14640+ </tr>
14641+ <tr>
14642+ <td>1.14</td>
14643+ <td>@ref LVHF_PCD_ERL_STEP_MIN (16384)</td>
14644+ <td>@ref LVHF_PCD_ERL_STEP_DEFAULT (16800)</td>
14645+ <td>@ref LVHF_PCD_ERL_STEP_MAX (32767)</td>
14646+ </tr>
14647+ </table> */
14648+ LVM_INT16 PCD_erl_step; ///< Step of ERL increase after PCD.
14649+
14650+ /**
14651+ Gain factor applied to the echo subtraction during acoustical path change.
14652+ <table border>
14653+ <tr>
14654+ <td><b>Q-format</b></td>
14655+ <td><b>Min</b></td>
14656+ <td><b>Default</b></td>
14657+ <td><b>Max</b></td>
14658+ </tr>
14659+ <tr>
14660+ <td>7.8</td>
14661+ <td>@ref LVHF_PCD_GAMMA_E_RESCUE_MIN (0)</td>
14662+ <td>@ref LVHF_PCD_GAMMA_E_RESCUE_DEFAULT (5000)</td>
14663+ <td>@ref LVHF_PCD_GAMMA_E_RESCUE_MAX (32767)</td>
14664+ </tr>
14665+ </table> */
14666+ LVM_INT16 PCD_gamma_e_rescue; ///< gamma_e after PCD
14667+
14668+} LVHF_ControlParams_st;
14669+
14670+/**
14671+* The control parameters are used to control the overall module behavior. These parameters may
14672+* be changed at any time during processing using the LVBD_SetControlParameters function but they
14673+* will not take effect until the next call to the LVBD_Process function.
14674+*
14675+* @see LVBD_SetControlParameters
14676+* @see LVBD_Process
14677+*/
14678+typedef struct
14679+{
14680+ /**
14681+ Set Bulk Delay operating mode on/off.
14682+ */
14683+ LVM_Mode_en BD_OperatingMode; ///< Set Bulk Delay operating mode on/off
14684+
14685+ /**
14686+ This parameter compensates for the fixed delay in the echo path and can be
14687+ measured in advance. This delay is caused by the audio I/O buffering, AD/DA
14688+ converter and propagation time between the loudspeaker and microphone. The unit
14689+ of 'BulkDelay' is [number of samples] at the respective sampling rate.
14690+ <table border>
14691+ <tr>
14692+ <td><b>Q-format</b></td>
14693+ <td><b>Min</b></td>
14694+ <td><b>Default</b></td>
14695+ <td><b>Max</b></td>
14696+ </tr>
14697+ <tr>
14698+ <td>16.0</td>
14699+ <td>@ref LVBD_BULKDELAY_MIN (0)</td>
14700+ <td>@ref LVBD_BULKDELAY_DEFAULT (0)</td>
14701+ <td>@ref LVBD_BULKDELAY_MAX (6400)</td>
14702+ </tr>
14703+ </table> */
14704+ LVM_UINT16 BulkDelay; ///< Sets Bulk Delay
14705+
14706+ /**
14707+ This param sets the gain for the Echo reference signal. Value 8192 belong to
14708+ 0dB
14709+ <table border>
14710+ <tr>
14711+ <td><b>Q-format</b></td>
14712+ <td><b>Min</b></td>
14713+ <td><b>Default</b></td>
14714+ <td><b>Max</b></td>
14715+ </tr>
14716+ <tr>
14717+ <td>2.13</td>
14718+ <td>@ref LVBD_BD_GAIN_MIN (0)</td>
14719+ <td>@ref LVBD_BD_GAIN_DEFAULT (8192)</td>
14720+ <td>@ref LVBD_BD_GAIN_MAX (32767)</td>
14721+ </tr>
14722+ </table> */
14723+ LVM_INT16 BD_Gain; ///< Apply Gain to Echo reference signal
14724+
14725+} LVBD_ControlParams_st;
14726+
14727+/**
14728+* The control parameters are used to control the overall module behavior. These parameters may
14729+* be changed at any time during processing using the LVVE_Tx_SetControlParameters function but they
14730+* will not take effect until the next call to the LVVE_Tx_Process function.
14731+*
14732+* @see LVVE_Tx_SetControlParameters
14733+* @see LVVE_Tx_Process
14734+*/
14735+typedef struct
14736+{
14737+ /**
14738+ This enumerated type is used to set the operating mode of the Tx path. The
14739+ processing can be separately set to enable all processing modules (i.e., ON),
14740+ to disable all processing modules (i.e., OFF) or to bypass all processing
14741+ modules (i.e., BYPASS). When bypassed, all processing modules keep on running,
14742+ but their output is not used. When bypassing the Tx processing, the user can
14743+ select which buffer should be copied to the output buffer, if required: @li
14744+ Input microphone signal (or secondary microphone signal in case of
14745+ two-microphone setups); @li Rx reference signal; These operations ensure that
14746+ the input data is correctly transferred to the output buffer for all
14747+ combinations of input and output buffer types and input format. When OFF, the
14748+ input is copied to the output and the LVVE can be provided with invalid
14749+ parameters for modules. The sub module functions are not executed in this
14750+ scenario. Their combined functionality is summarized in follwoing table. <br>
14751+ <div align="center"> <table cellspacing="1" cellpadding="4" border="3">
14752+ <caption>LVVE Tx operating mode in combination with LVVE microphone routing
14753+ mode</caption> <tr> <th></th> <th colspan="2">MICROUTING_MODE_DEFAULT</th> <th
14754+ colspan="2">MICROUTING_MODE_SWAPPED</th> </tr> <tr> <th width="70"></th> <th
14755+ width="70">Process</th> <th width="70">Output</th> <th width="70">Process</th>
14756+ <th width="70">Output</th> </tr> <tr align="left"> <td>LVVE_TX_MODE_OFF</td>
14757+ <td>None</td> <td>Tx input 0</td> <td>None</td> <td>Tx input 1</td> </tr> <tr
14758+ align="left"> <td>LVVE_TX_MODE_ON</td> <td>Tx input 0</td> <td>Tx output</td>
14759+ <td>Tx input 1</td> <td>Tx output</td> </tr> <tr align="left">
14760+ <td>LVVE_TX_MODE_BYPASS_MIC0</td> <td>Tx input 0</td> <td>Tx input 0</td>
14761+ <td>Tx input 1</td> <td>Tx input 1</td> </tr> <tr align="left">
14762+ <td>LVVE_TX_MODE_BYPASS_MIC1</td> <td>Tx input 0</td> <td>Tx input 1</td>
14763+ <td>Tx input 1</td> <td>Tx input 0</td> </tr> <tr align="left">
14764+ <td>LVVE_TX_MODE_BYPASS_REF</td> <td>Tx input 0</td> <td>Tx ref input</td>
14765+ <td>Tx input 1</td> <td>Tx ref input</td> </tr> </table> </div>
14766+ */
14767+ LVVE_Tx_Mode_en OperatingMode; ///< TX Operating mode
14768+
14769+ /**
14770+ This param can mute unmute the Rx/Tx engine output.
14771+ */
14772+ LVM_Mode_en Mute; ///< This param can mute unmute the Rx/Tx engine output
14773+
14774+ /**
14775+ Set Bulk Delay operating mode on/off.
14776+ */
14777+ LVM_Mode_en BD_OperatingMode; ///< Set Bulk Delay operating mode on/off
14778+
14779+ /**
14780+ This parameter compensates for the fixed delay in the echo path and can be
14781+ measured in advance. This delay is caused by the audio I/O buffering, AD/DA
14782+ converter and propagation time between the loudspeaker and microphone. The unit
14783+ of 'BulkDelay' is [number of samples] at the respective sampling rate.
14784+ <table border>
14785+ <tr>
14786+ <td><b>Q-format</b></td>
14787+ <td><b>Min</b></td>
14788+ <td><b>Default</b></td>
14789+ <td><b>Max</b></td>
14790+ </tr>
14791+ <tr>
14792+ <td>16.0</td>
14793+ <td>@ref LVVE_TX_BULKDELAY_MIN (0)</td>
14794+ <td>@ref LVVE_TX_BULKDELAY_DEFAULT (0)</td>
14795+ <td>@ref LVVE_TX_BULKDELAY_MAX (6400)</td>
14796+ </tr>
14797+ </table> */
14798+ LVM_UINT16 BulkDelay; ///< Sets Bulk Delay
14799+
14800+ /**
14801+ This param sets the gain for the Echo reference signal. Value 8192 belong to
14802+ 0dB
14803+ <table border>
14804+ <tr>
14805+ <td><b>Q-format</b></td>
14806+ <td><b>Min</b></td>
14807+ <td><b>Default</b></td>
14808+ <td><b>Max</b></td>
14809+ </tr>
14810+ <tr>
14811+ <td>2.13</td>
14812+ <td>@ref LVVE_TX_BD_GAIN_MIN (0)</td>
14813+ <td>@ref LVVE_TX_BD_GAIN_DEFAULT (8192)</td>
14814+ <td>@ref LVVE_TX_BD_GAIN_MAX (32767)</td>
14815+ </tr>
14816+ </table> */
14817+ LVM_INT16 BD_Gain; ///< Apply Gain to Echo reference signal
14818+
14819+ /**
14820+ Turns on/off VOL_Gain.
14821+ */
14822+ LVM_Mode_en VOL_OperatingMode; ///< Turns on/off VOL_Gain
14823+
14824+ /**
14825+ The volume control gain can be used to set the overall volume level of the
14826+ signal. The gain is set in dB with steps of 1dB.
14827+ <table border>
14828+ <tr>
14829+ <td><b>Q-format</b></td>
14830+ <td><b>Min</b></td>
14831+ <td><b>Default</b></td>
14832+ <td><b>Max</b></td>
14833+ </tr>
14834+ <tr>
14835+ <td>15.0</td>
14836+ <td>@ref LVVE_TX_VOL_GAIN_MIN (-96)</td>
14837+ <td>@ref LVVE_TX_VOL_GAIN_DEFAULT (0)</td>
14838+ <td>@ref LVVE_TX_VOL_GAIN_MAX (24)</td>
14839+ </tr>
14840+ </table> */
14841+ LVM_INT16 VOL_Gain; ///< Apply Gain to Input signal
14842+
14843+ /**
14844+ Turns on/off High Pass filter.
14845+ */
14846+ LVM_Mode_en HPF_OperatingMode; ///< Turns on/off High Pass filter
14847+
14848+ /**
14849+ Sets the 3dB corner frequency of the high-pass filter. In case NoiseVoid is
14850+ enabled, the same high-pass filter will be applied to the second microphone
14851+ channel.
14852+ <table border>
14853+ <tr>
14854+ <td><b>Q-format</b></td>
14855+ <td><b>Min</b></td>
14856+ <td><b>Default</b></td>
14857+ <td><b>Max</b></td>
14858+ </tr>
14859+ <tr>
14860+ <td>16.0</td>
14861+ <td>@ref LVVE_TX_MIC_HPF_CORNERFREQ_MIN (50)</td>
14862+ <td>@ref LVVE_TX_MIC_HPF_CORNERFREQ_DEFAULT (50)</td>
14863+ <td>@ref LVVE_TX_MIC_HPF_CORNERFREQ_MAX (1500)</td>
14864+ </tr>
14865+ </table> */
14866+ LVM_UINT16 MIC_HPF_CornerFreq; ///< High Pass Filter Corner Frequency in Hz
14867+
14868+ /**
14869+ HandsFree Control Parameter Strcuture.
14870+ */
14871+ LVHF_ControlParams_st HF_ControlParams; ///< HandsFree Control Parameter Structure
14872+
14873+ /**
14874+ NoiseVoid Control Parameter Structure.
14875+ */
14876+ LVNV_ControlParams_st NV_ControlParams; ///< NoiseVoid Control Parameter Structure
14877+
14878+ /**
14879+ WhisperMode Control Parameter Structure.
14880+ */
14881+ LVWM_ControlParams_st WM_ControlParams; ///< WhisperMode Control Parameter Structure
14882+
14883+ /**
14884+ Equalizer Operating mode.
14885+ */
14886+ LVM_Mode_en EQ_OperatingMode; ///< Equalizer Operating mode
14887+
14888+ /**
14889+ Equalizer Control Parameter Structure.
14890+ */
14891+ LVEQ_ControlParams_st EQ_ControlParams; ///< Equalizer Control Parameters Structure
14892+
14893+ /**
14894+ DRC Control Parameter Structure.
14895+ */
14896+ LVDRC_ControlParams_st DRC_ControlParams; ///< DRC Control Parameter Structure
14897+
14898+} LVVE_Tx_ControlParams_st;
14899+
14900+
14901+
14902+/*[Begin] [lvwenhua-2012/3/12]*/
14903+#define LVVC_VOLUME_NUM 12
14904+
14905+typedef struct
14906+{
14907+ LVM_INT16 NoiseSensitivity[LVVC_VOLUME_NUM];
14908+} LVVC_NoiseSens_st;
14909+/*[End] [lvwenhua-2012/3/12]*/
14910+
14911+/*[Begin] [lvwenhua-2011/8/23]*/
14912+typedef struct
14913+{
14914+ LVVE_Tx_ControlParams_st Tx_ControlParams;
14915+ LVVE_Rx_ControlParams_st Rx_ControlParams;
14916+ LVEQ_Coefs_st TxEqCoefs;
14917+ LVEQ_Coefs_st RxEqCoefs;
14918+ /*[Begin] [lvwenhua-2012/3/12]*/
14919+ LVVC_NoiseSens_st RxVcNoiseSens;
14920+ /*[End] [lvwenhua-2012/3/12]*/
14921+} LVVE_ControlParams_st;
14922+typedef struct
14923+{
14924+ LVM_UINT32 isVpParamInNv;
14925+ LVVE_ControlParams_st Handset_ControlParams;
14926+ LVVE_ControlParams_st Handsfree_ControlParams;
14927+ LVVE_ControlParams_st Headset_ControlParams;
14928+ LVVE_ControlParams_st Bluetooth_ControlParams;
14929+} LVVE_ControlParams_All_st;
14930+/*[End] [lvwenhua-2011/8/23]*/
14931+
14932+
14933+
14934+
14935+
14936+
14937+
14938+#ifdef __cplusplus
14939+}
14940+#endif /* __cplusplus */
14941+
14942+#endif /* __REL_LVVE_HF_NV1_VC_AGC_RX_DRC_RX_WB_VIDPP_H__ */
14943+
14944+/* End of file */
14945diff --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
14946new file mode 100755
14947index 0000000..857327b
14948--- /dev/null
14949+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/tos/PARAM_Default.h
14950@@ -0,0 +1,213 @@
14951+static LVM_CHAR LVVE_Tx_Preset_Buffer_Voice_Tool[] ={
14952+0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xBD, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00,
14953+0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
14954+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
14955+0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x11, 0x00, 0x00, 0x00,
14956+0x20, 0x00, 0x08, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x80, 0x00, 0x40, 0x00, 0x00, 0x20, 0x80,
14957+0x00, 0x01, 0x00, 0xFF, 0x02, 0x33, 0x63, 0x33, 0x73, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00,
14958+0x00, 0x33, 0x63, 0x33, 0x73, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0xC0, 0x5D, 0x18,
14959+0x01, 0x00, 0x02, 0x00, 0x03, 0x79, 0x28, 0x00, 0x40, 0x96, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00,
14960+0x00, 0x20, 0x4E, 0x10, 0x00, 0x40, 0x00, 0x40, 0x00, 0xA0, 0x41, 0x88, 0x13, 0x00, 0x00, 0x00,
14961+0x00, 0xF7, 0x49, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x08, 0x20, 0x00, 0x00,
14962+0x20, 0xE8, 0x03, 0x18, 0x00, 0x00, 0x20, 0xE8, 0x03, 0x00, 0x00, 0x08, 0x03, 0x20, 0x00, 0x00,
14963+0x20, 0xE8, 0x03, 0x18, 0x00, 0x00, 0x20, 0xE8, 0x03, 0x00, 0x00, 0x08, 0x03, 0x96, 0x00, 0xFF,
14964+0x7F, 0x9A, 0x19, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14965+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14966+0x00, 0x00, 0x00, 0x10, 0x00, 0x8F, 0x02, 0x00, 0x04, 0x10, 0x00, 0x66, 0x06, 0x00, 0x01, 0x66,
14967+0x06, 0x00, 0x40, 0x00, 0x20, 0xE0, 0x2E, 0x58, 0x1B, 0x00, 0x01, 0xCE, 0x2C, 0x00, 0x40, 0x84,
14968+0x2B, 0x9A, 0x19, 0x66, 0x26, 0x00, 0x01, 0x00, 0x30, 0x00, 0x24, 0x40, 0x01, 0xE6, 0x00, 0x65,
14969+0x66, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x40, 0x80, 0x00, 0xFD, 0x1F, 0xB0, 0x63, 0xAD,
14970+0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
14971+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14972+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14973+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14974+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14975+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14976+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14977+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14978+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
14979+0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA,
14980+0xFF, 0xF4, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
14981+};
14982+static LVM_CHAR LVVE_Rx_Preset_Buffer_Voice_Tool []={
14983+0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xBD, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00,
14984+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00,
14985+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x2A, 0x00,
14986+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06,
14987+0x05, 0x20, 0x4E, 0x00, 0x40, 0x00, 0x01, 0x00, 0x20, 0x00, 0x02, 0x17, 0x2F, 0x5C, 0x7F, 0xB9,
14988+0x7E, 0x82, 0x5A, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
14989+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14990+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14991+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14992+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14993+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14994+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14995+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14996+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
14997+0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA,
14998+0xFF, 0xF4, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14999+0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x40, 0x80, 0x00, 0xFD,
15000+0x1F, 0xB0, 0x63, 0xAD, 0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xB0,
15001+0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xB0, 0xFF, 0xCE, 0xFF, 0xE8,
15002+0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00,
15003+0xBD, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15004+0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15005+0x00, 0x00, 0x00, 0x00, 0xE0, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00,
15006+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x05, 0x20, 0x4E, 0x00, 0x40, 0x00, 0x01, 0x00, 0x20,
15007+0x00, 0x02, 0x17, 0x2F, 0x5C, 0x7F, 0xB9, 0x7E, 0x82, 0x5A, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
15008+0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15009+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15010+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15011+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15012+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15013+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15014+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15015+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15016+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF,
15017+0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA, 0xFF, 0xF4, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00,
15018+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00,
15019+0x07, 0x00, 0x00, 0x40, 0x80, 0x00, 0xFD, 0x1F, 0xB0, 0x63, 0xAD, 0x7F, 0x9D, 0x5A, 0x00, 0x24,
15020+0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xB0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00,
15021+0xA0, 0xFF, 0xB0, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x03, 0x00,
15022+0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xBD, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
15023+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15024+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x2A, 0x00, 0x00, 0x00,
15025+0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x05, 0x20,
15026+0x4E, 0x00, 0x40, 0x00, 0x01, 0x00, 0x20, 0x00, 0x02, 0x17, 0x2F, 0x5C, 0x7F, 0xB9, 0x7E, 0x82,
15027+0x5A, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
15028+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15029+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15030+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15031+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15032+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15033+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15034+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15035+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xA0,
15036+0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA, 0xFF, 0xF4,
15037+0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15038+0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x40, 0x80, 0x00, 0xFD, 0x1F, 0xB0,
15039+0x63, 0xAD, 0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xB0, 0xFF, 0xBA,
15040+0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xB0, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00,
15041+0x00, 0x32, 0x00, 0x32, 0x00, 0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xBD, 0x02,
15042+0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x06,
15043+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15044+0x00, 0x00, 0xE0, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00,
15045+0x00, 0x00, 0x00, 0x00, 0x06, 0x05, 0x20, 0x4E, 0x00, 0x40, 0x00, 0x01, 0x00, 0x20, 0x00, 0x02,
15046+0x17, 0x2F, 0x5C, 0x7F, 0xB9, 0x7E, 0x82, 0x5A, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00,
15047+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15048+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15049+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15050+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15051+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15052+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15053+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15054+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15055+0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00,
15056+0xA0, 0xFF, 0xBA, 0xFF, 0xDA, 0xFF, 0xF4, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00,
15057+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00,
15058+0x00, 0x40, 0x80, 0x00, 0xFD, 0x1F, 0xB0, 0x63, 0xAD, 0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00,
15059+0x00, 0x00, 0x05, 0x00, 0xB0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF,
15060+0xB0, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x03, 0x00, 0x09, 0x18,
15061+0x03, 0xD5, 0x07, 0x00, 0x00, 0xBD, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15062+0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15063+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00,
15064+0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x05, 0x20, 0x4E, 0x00,
15065+0x40, 0x00, 0x01, 0x00, 0x20, 0x00, 0x02, 0x17, 0x2F, 0x5C, 0x7F, 0xB9, 0x7E, 0x82, 0x5A, 0x00,
15066+0x04, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15067+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15068+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15069+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15070+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15071+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15072+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15073+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15074+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xA0, 0xFF, 0xBA,
15075+0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA, 0xFF, 0xF4, 0xFF, 0x00,
15076+0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32,
15077+0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x40, 0x80, 0x00, 0xFD, 0x1F, 0xB0, 0x63, 0xAD,
15078+0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xB0, 0xFF, 0xBA, 0xFF, 0xCE,
15079+0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xB0, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0x32,
15080+0x00, 0x32, 0x00, 0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xBD, 0x02, 0x00, 0x00,
15081+0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x06, 0x00, 0x00,
15082+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15083+0xE0, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00,
15084+0x00, 0x00, 0x06, 0x05, 0x20, 0x4E, 0x00, 0x40, 0x00, 0x01, 0x00, 0x20, 0x00, 0x02, 0x17, 0x2F,
15085+0x5C, 0x7F, 0xB9, 0x7E, 0x82, 0x5A, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10,
15086+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15087+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15088+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15089+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15090+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15091+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15092+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15093+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15094+0x00, 0x00, 0x05, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF,
15095+0xBA, 0xFF, 0xDA, 0xFF, 0xF4, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00,
15096+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x40,
15097+0x80, 0x00, 0xFD, 0x1F, 0xB0, 0x63, 0xAD, 0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00,
15098+0x05, 0x00, 0xB0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xB0, 0xFF,
15099+0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00
15100+};
15101+
15102+static LVM_CHAR LVVE_Tx_Mute_File_Buffer[] ={
15103+0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xBD, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00,
15104+0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01,
15105+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
15106+0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x11, 0x00, 0x00, 0x00,
15107+0x20, 0x00, 0x08, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x80, 0x00, 0x40, 0x00, 0x00, 0x20, 0x80,
15108+0x00, 0x01, 0x00, 0xFF, 0x02, 0x33, 0x63, 0x33, 0x73, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00,
15109+0x00, 0x33, 0x63, 0x33, 0x73, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0xC0, 0x5D, 0x18,
15110+0x01, 0x00, 0x02, 0x00, 0x03, 0x79, 0x28, 0x00, 0x40, 0x96, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00,
15111+0x00, 0x20, 0x4E, 0x10, 0x00, 0x40, 0x00, 0x40, 0x00, 0xA0, 0x41, 0x88, 0x13, 0x00, 0x00, 0x00,
15112+0x00, 0xF7, 0x49, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x08, 0x20, 0x00, 0x00,
15113+0x20, 0xE8, 0x03, 0x18, 0x00, 0x00, 0x20, 0xE8, 0x03, 0x00, 0x00, 0x08, 0x03, 0x20, 0x00, 0x00,
15114+0x20, 0xE8, 0x03, 0x18, 0x00, 0x00, 0x20, 0xE8, 0x03, 0x00, 0x00, 0x08, 0x03, 0x96, 0x00, 0xFF,
15115+0x7F, 0x9A, 0x19, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15116+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15117+0x00, 0x00, 0x00, 0x10, 0x00, 0x8F, 0x02, 0x00, 0x04, 0x10, 0x00, 0x66, 0x06, 0x00, 0x01, 0x66,
15118+0x06, 0x00, 0x40, 0x00, 0x20, 0xE0, 0x2E, 0x58, 0x1B, 0x00, 0x01, 0xCE, 0x2C, 0x00, 0x40, 0x84,
15119+0x2B, 0x9A, 0x19, 0x66, 0x26, 0x00, 0x01, 0x00, 0x30, 0x00, 0x24, 0x40, 0x01, 0xE6, 0x00, 0x65,
15120+0x66, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x40, 0x80, 0x00, 0xFD, 0x1F, 0xB0, 0x63, 0xAD,
15121+0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
15122+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15123+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15124+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15125+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15126+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15127+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15128+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15129+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
15130+0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA,
15131+0xFF, 0xF4, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
15132+};
15133+static LVM_CHAR LVVE_Tx_Wb_Mute_File_Buffer[] ={
15134+0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xBD, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00,
15135+0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01,
15136+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
15137+0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x11, 0x00, 0x00, 0x00,
15138+0x20, 0x00, 0x08, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x80, 0x00, 0x40, 0x00, 0x00, 0x20, 0x80,
15139+0x00, 0x01, 0x00, 0xFF, 0x02, 0x33, 0x63, 0x33, 0x73, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00,
15140+0x00, 0x33, 0x63, 0x33, 0x73, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0xC0, 0x5D, 0x18,
15141+0x01, 0x00, 0x02, 0x00, 0x03, 0x79, 0x28, 0x00, 0x40, 0x96, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00,
15142+0x00, 0x20, 0x4E, 0x10, 0x00, 0x40, 0x00, 0x40, 0x00, 0xA0, 0x41, 0x88, 0x13, 0x00, 0x00, 0x00,
15143+0x00, 0xF7, 0x49, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x08, 0x20, 0x00, 0x00,
15144+0x20, 0xE8, 0x03, 0x18, 0x00, 0x00, 0x20, 0xE8, 0x03, 0x00, 0x00, 0x08, 0x03, 0x20, 0x00, 0x00,
15145+0x20, 0xE8, 0x03, 0x18, 0x00, 0x00, 0x20, 0xE8, 0x03, 0x00, 0x00, 0x08, 0x03, 0x96, 0x00, 0xFF,
15146+0x7F, 0x9A, 0x19, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15147+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15148+0x00, 0x00, 0x00, 0x10, 0x00, 0x8F, 0x02, 0x00, 0x04, 0x10, 0x00, 0x66, 0x06, 0x00, 0x01, 0x66,
15149+0x06, 0x00, 0x40, 0x00, 0x20, 0xE0, 0x2E, 0x58, 0x1B, 0x00, 0x01, 0xCE, 0x2C, 0x00, 0x40, 0x84,
15150+0x2B, 0x9A, 0x19, 0x66, 0x26, 0x00, 0x01, 0x00, 0x30, 0x00, 0x24, 0x40, 0x01, 0xE6, 0x00, 0x65,
15151+0x66, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x40, 0x80, 0x00, 0xFD, 0x1F, 0xB0, 0x63, 0xAD,
15152+0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
15153+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15154+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15155+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15156+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15157+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15158+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15159+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
15160+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
15161+0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA,
15162+0xFF, 0xF4, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
15163+};
15164diff --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
15165new file mode 100755
15166index 0000000..449febf
15167--- /dev/null
15168+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/tos/audio_process.a
15169Binary files differ
15170diff --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
15171new file mode 100755
15172index 0000000..418c259
15173--- /dev/null
15174+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/tos/nxp_DrvNvData.h
15175@@ -0,0 +1,6 @@
15176+//6 level volume
15177+//add by zhanglixia
15178+//#define LVWM_TX_FILE_SIZE 463 //×Ö½ÚÊý
15179+//#define LVWM_RX_FILE_SIZE 1866
15180+
15181+//const static LVM_CHAR LVVE_Param_Test[] ={};
15182diff --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
15183new file mode 100755
15184index 0000000..14efe8c
15185--- /dev/null
15186+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/uclinux/LVC_Types.h
15187@@ -0,0 +1,383 @@
15188+/************************************************************************/
15189+/* Copyright (c) 2004-2014 NXP Software. All rights are reserved. */
15190+/* Reproduction in whole or in part is prohibited without the prior */
15191+/* written consent of the copyright owner. */
15192+/* */
15193+/* This software and any compilation or derivative thereof is and */
15194+/* shall remain the proprietary information of NXP Software and is */
15195+/* highly confidential in nature. Any and all use hereof is restricted */
15196+/* and is subject to the terms and conditions set forth in the */
15197+/* software license agreement concluded with NXP Software. */
15198+/* */
15199+/* Under no circumstances is this software or any derivative thereof */
15200+/* to be combined with any Open Source Software in any way or */
15201+/* licensed under any Open License Terms without the express prior */
15202+/* written permission of NXP Software. */
15203+/* */
15204+/* For the purpose of this clause, the term Open Source Software means */
15205+/* any software that is licensed under Open License Terms. Open */
15206+/* License Terms means terms in any license that require as a */
15207+/* condition of use, modification and/or distribution of a work */
15208+/* */
15209+/* 1. the making available of source code or other materials */
15210+/* preferred for modification, or */
15211+/* */
15212+/* 2. the granting of permission for creating derivative */
15213+/* works, or */
15214+/* */
15215+/* 3. the reproduction of certain notices or license terms */
15216+/* in derivative works or accompanying documentation, or */
15217+/* */
15218+/* 4. the granting of a royalty-free license to any party */
15219+/* under Intellectual Property Rights */
15220+/* */
15221+/* regarding the work and/or any work that contains, is combined with, */
15222+/* requires or otherwise is based on the work. */
15223+/* */
15224+/* This software is provided for ease of recompilation only. */
15225+/* Modification and reverse engineering of this software are strictly */
15226+/* prohibited. */
15227+/* */
15228+/************************************************************************/
15229+
15230+/****************************************************************************************
15231+
15232+ $Author: beq07720 $
15233+ $Revision: 55357 $
15234+ $Date: 2014-03-05 22:16:13 +0530 (Wed, 05 Mar 2014) $
15235+
15236+*****************************************************************************************/
15237+
15238+/** @file
15239+ * Header file defining the standard LifeVibes types for use in the application layer
15240+ * interface of all LifeVibes modules
15241+ */
15242+
15243+#ifndef LVM_TYPES_H
15244+#define LVM_TYPES_H
15245+
15246+#ifdef __cplusplus
15247+extern "C" {
15248+#endif /* __cplusplus */
15249+
15250+/****************************************************************************************/
15251+/* */
15252+/* definitions */
15253+/* */
15254+/****************************************************************************************/
15255+
15256+#define LVM_NULL 0 ///< NULL pointer
15257+
15258+#define LVM_TRUE 1 ///< Boolean True
15259+#define LVM_FALSE 0 ///< Boolean False
15260+
15261+#define LVM_MAXINT_8 127 ///< Maximum positive integer size
15262+#define LVM_MAXINT_16 32767 ///< Maximum signed int 16 bits number
15263+#define LVM_MAXINT_32 2147483647 ///< Maximum signed int 32 bits number
15264+#define LVM_MAXUINT_32 4294967295U ///< Maximum un-signed int 32 bits number
15265+
15266+#if ( defined(VARIANT_24BIT) )
15267+#define LVM_MAXENUM 8388607L ///< Maximum value for enumerator
15268+#else
15269+#define LVM_MAXENUM 2147483647 ///< Maximum value for enumerator
15270+#endif
15271+
15272+#define LVM_MODULEID_MASK 0xFF00 ///< Mask to extract the calling module ID from callbackId
15273+#define LVM_EVENTID_MASK 0x00FF ///< Mask to extract the callback event from callbackId
15274+
15275+/* Memory table*/
15276+#define LVM_MEMREGION_PERSISTENT_SLOW_DATA 0 ///< Offset to the instance memory region
15277+#define LVM_MEMREGION_PERSISTENT_FAST_DATA 1 ///< Offset to the persistent data memory region
15278+#define LVM_MEMREGION_PERSISTENT_FAST_COEF 2 ///< Offset to the persistent coefficient memory region
15279+#define LVM_MEMREGION_TEMPORARY_FAST 3 ///< Offset to temporary memory region
15280+
15281+#define LVM_NR_MEMORY_REGIONS 4 ///< Number of memory regions
15282+
15283+#define LVM_MODE_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVM_Mode_en in LVWireFormat
15284+#define LVM_CONFIG_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVM_Config_en in LVWireFormat
15285+#define LVM_FS_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVM_Fs_en sample Rate in LVWireFormat
15286+
15287+#define LVM_CHAR_LVWIREFORMAT_LENGTH (1)
15288+#define LVM_INT8_LVWIREFORMAT_LENGTH (1)
15289+#define LVM_UINT8_LVWIREFORMAT_LENGTH (1)
15290+
15291+#define LVM_INT16_LVWIREFORMAT_LENGTH (2)
15292+#define LVM_UINT16_LVWIREFORMAT_LENGTH (2)
15293+
15294+#define LVM_INT32_LVWIREFORMAT_LENGTH (4)
15295+#define LVM_UINT32_LVWIREFORMAT_LENGTH (4)
15296+
15297+
15298+/****************************************************************************************/
15299+/* */
15300+/* Basic types */
15301+/* */
15302+/****************************************************************************************/
15303+
15304+#if defined(CORE_TIC64)
15305+typedef char LVM_CHAR; ///< ASCII character
15306+
15307+typedef char LVM_INT8; ///< Signed 8-bit word
15308+typedef unsigned char LVM_UINT8; ///< Unsigned 8-bit word
15309+
15310+typedef short LVM_INT16; ///< Signed 16-bit word
15311+typedef unsigned short LVM_UINT16; ///< Unsigned 16-bit word
15312+
15313+typedef int LVM_INT32; ///< Signed 32-bit word
15314+typedef unsigned int LVM_UINT32; ///< Unsigned 32-bit word
15315+#else
15316+
15317+#if ( defined(VARIANT_FRAC16) || defined (VARIANT_REFREAL16) )
15318+typedef long DATATYPE; ///< long data type
15319+
15320+typedef char LVM_CHAR; ///< ASCII character
15321+
15322+typedef char LVM_INT8; ///< Signed 8-bit word
15323+typedef unsigned char LVM_UINT8; ///< Unsigned 8-bit word
15324+
15325+typedef long LVM_INT16; ///< Signed 16-bit word
15326+typedef long LVM_UINT16; ///< Unsigned 16-bit word
15327+
15328+typedef long LVM_INT32; ///< Signed 32-bit word
15329+typedef long LVM_UINT32; ///< Unsigned 32-bit word
15330+
15331+#else
15332+typedef char LVM_CHAR; ///< ASCII character
15333+
15334+typedef char LVM_INT8; ///< Signed 8-bit word
15335+typedef unsigned char LVM_UINT8; ///< Unsigned 8-bit word
15336+
15337+typedef short LVM_INT16; ///< Signed 16-bit word
15338+typedef unsigned short LVM_UINT16; ///< Unsigned 16-bit word
15339+
15340+typedef long LVM_INT32; ///< Signed 32-bit word
15341+typedef unsigned long LVM_UINT32; ///< Unsigned 32-bit word
15342+#if ( defined(VARIANT_24BIT) )
15343+
15344+#define LVM_MAXINT_24 8388607L ///< 24 bit max int
15345+#define LVM_MININT_24 -8388608L ///< 24bit min int
15346+
15347+#define LVM_MAXINT_48 140737488355327LL ///< 48bit max int
15348+#define LVM_MININT_48 -140737488355328LL ///< 48bit min int
15349+
15350+#endif // VARIANT_24BIT
15351+
15352+#endif // VARIANT_FRAC16
15353+
15354+#endif // CORE_TIC64
15355+
15356+/****************************************************************************************/
15357+/* */
15358+/* Standard Enumerated types */
15359+/* */
15360+/****************************************************************************************/
15361+
15362+/**
15363+The @ref LVM_Mode_en enumerated type is used to set the operating mode of a particular feature inside the LifeVibes modules.
15364+The feature can be separately set to enable the feature processing (i.e., ON) or to disable all feature processing
15365+modules (i.e., OFF).
15366+*/
15367+typedef enum
15368+{
15369+ LVM_MODE_OFF = 0, ///< LVM module disabled
15370+ LVM_MODE_ON = 1, ///< LVM module enabled
15371+ LVM_MODE_DUMMY = LVM_MAXENUM
15372+} LVM_Mode_en;
15373+
15374+/**
15375+Sets stream Format
15376+*/
15377+typedef enum
15378+{
15379+ LVM_STEREO = 0, ///<Stereo stream
15380+ LVM_MONOINSTEREO = 1, ///<Mono in stereo stream
15381+ LVM_MONO = 2, ///<Mono stream
15382+ LVM_5DOT1 = 3, ///<stream 5.1 formatted
15383+ LVM_7DOT1 = 4, ///<stream 7.1 formatted
15384+ LVM_SOURCE_DUMMY = LVM_MAXENUM
15385+} LVM_Format_en;
15386+
15387+/**
15388+Sets Speaker type
15389+*/
15390+typedef enum
15391+{
15392+ LVM_SPEAKER_MONO = 0, ///< Mono type speaker
15393+ LVM_SPEAKER_STEREO = 1, ///< Stereo type speaker
15394+ LVM_SPEAKER_DUMMY = LVM_MAXENUM
15395+} LVM_SpeakerType_en;
15396+
15397+/**
15398+Sets Word length
15399+*/
15400+typedef enum
15401+{
15402+ LVM_16_BIT = 0, ///< 16 bit word length
15403+ LVM_32_BIT = 1, ///< 32 bit word length
15404+ LVM_WORDLENGTH_DUMMY = LVM_MAXENUM
15405+} LVM_WordLength_en;
15406+
15407+/**
15408+The LVM product supports the sample rates specified in @ref LVM_Fs_en. The input and output sample rates are always the same.
15409+*/
15410+typedef enum
15411+{
15412+ LVM_FS_8000 = 0, ///< 8k sampling rate
15413+ LVM_FS_11025 = 1, ///< 11.025k sampling rate
15414+ LVM_FS_12000 = 2, ///< 12k sampling rate
15415+ LVM_FS_16000 = 3, ///< 16k sampling rate
15416+ LVM_FS_22050 = 4, ///< 22.050k sampling rate
15417+ LVM_FS_24000 = 5, ///< 24k sampling rate
15418+ LVM_FS_32000 = 6, ///< 32k sampling rate
15419+ LVM_FS_44100 = 7, ///< 44.1k sampling rate
15420+ LVM_FS_48000 = 8, ///< 48k sampling rate
15421+ LVM_FS_COUNT = 9, ///< Max sampling rate count
15422+ LVM_FS_INVALID = LVM_MAXENUM-1,
15423+ LVM_FS_DUMMY = LVM_MAXENUM
15424+} LVM_Fs_en;
15425+
15426+/**
15427+The enumerated type is used to select the reset mode for the module.
15428+@ref LVM_RESET_SOFT is used to select a soft reset (or partial reset) and @ref LVM_RESET_HARD is
15429+used to select a hard reset (full re-initialization).
15430+*/
15431+typedef enum
15432+{
15433+/**
15434+<table border>
15435+ <tr>
15436+ <td><b>Name</b></td>
15437+ <td><b>MODE</b></td>
15438+ </tr>
15439+ <tr>
15440+ <td>ResetType</td>
15441+ <td>@ref LVM_RESET_SOFT</td>
15442+ </tr>
15443+ <tr>
15444+ <td></td>
15445+ <td>@ref LVM_RESET_HARD</td>
15446+ </tr>
15447+</table>
15448+*/
15449+ LVM_RESET_SOFT = 0, ///< Reset type for LVM where a partial reset of the module should be performed
15450+ LVM_RESET_HARD = 1, ///< Reset type for LVM where a full reset of the module should be performed
15451+ LVM_RESET_DUMMY = LVM_MAXENUM
15452+} LVM_ResetType_en;
15453+
15454+/**
15455+The @ref LVM_MemoryTypes_en enumerated type identifies the memory region types so that they can be correctly placed in memory
15456+by the calling application.
15457+The module initially has no permanent memory storage and makes no use of persistent memory allocation internally.
15458+The calling application must allocate memory for the module to use.
15459+
15460+Four memory regions are required:
15461+@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.
15462+@li @ref LVM_MEMREGION_PERSISTENT_FAST_DATA : this type of memory is used to store data such as filter history
15463+@li @ref LVM_MEMREGION_PERSISTENT_FAST_COEF : this type of memory is used to store filter coefficients.
15464+@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.
15465+
15466+This collection of memory regions forms the module instance.
15467+
15468+Typically the memory is allocated by the application dynamically; however, it can be allocated statically if required.
15469+The sizes of the memory regions can be found by running the GetMemoryTable functions on a simulator and noting
15470+the returned values. Alternatively contact NXP who can provide the figures.
15471+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.
15472+On some target platforms the placement of memory regions is critical for achieving optimal performance of the module.
15473+*/
15474+typedef enum
15475+{
15476+ LVM_PERSISTENT_SLOW_DATA = LVM_MEMREGION_PERSISTENT_SLOW_DATA, ///< Persistent slow memory region
15477+ LVM_PERSISTENT_FAST_DATA = LVM_MEMREGION_PERSISTENT_FAST_DATA, ///< Persistent fast memory region
15478+ LVM_PERSISTENT_FAST_COEF = LVM_MEMREGION_PERSISTENT_FAST_COEF, ///< Persisten fast memory for coefficient storage
15479+ LVM_TEMPORARY_FAST = LVM_MEMREGION_TEMPORARY_FAST, ///< Temporary fast memory region
15480+ LVM_MEMORYTYPE_DUMMY = LVM_MAXENUM
15481+} LVM_MemoryTypes_en;
15482+
15483+/**
15484+Sets mod of Configuration
15485+*/
15486+typedef enum
15487+{
15488+ LVM_CONFIG_HANDSET = 0, ///< Handset configuration
15489+ LVM_CONFIG_SPEAKERPHONE = 1, ///< Speaker mod configuration
15490+ LVM_CONFIG_EARPIECE = 2, ///< Earpiece configuration
15491+ LVM_CONFIG_DUMMY = LVM_MAXENUM
15492+} LVM_Config_en;
15493+
15494+/**
15495+The @ref LVM_MemoryRegion_st type defines a memory region by specifying its size in bytes, its region type and its base pointer.
15496+@see LVM_MemoryTypes_en
15497+*/
15498+#if ( defined(VARIANT_24BIT) )
15499+typedef struct
15500+{
15501+ LVM_INT24 Size; ///< The size of the memory region in bytes
15502+ LVM_MemoryTypes_en Type; ///< Type of memory region
15503+ void *pBaseAddress; ///< Pointer to the memory region base address
15504+} LVM_MemoryRegion_st;
15505+#else
15506+typedef struct
15507+{
15508+ LVM_UINT32 Size; ///< The size of the memory region in bytes
15509+ LVM_MemoryTypes_en Type; ///< Type of memory region
15510+ void *pBaseAddress; ///< Pointer to the memory region base address
15511+} LVM_MemoryRegion_st;
15512+#endif
15513+
15514+/**
15515+The LVM_MemoryTable_st type defines the memory requirements of the module as an array of region definitions.
15516+The number of required memory regions is given by the constant @ref LVM_NR_MEMORY_REGIONS
15517+@see LVM_MemoryRegion_st
15518+*/
15519+typedef struct
15520+{
15521+ LVM_MemoryRegion_st Region[LVM_NR_MEMORY_REGIONS]; ///< One definition of all memory regions
15522+} LVM_MemoryTable_st;
15523+
15524+/**
15525+Beats Per Minute Structure
15526+*/
15527+typedef struct
15528+{
15529+ LVM_INT16 ShortTermMinimum; ///< Beats per minute in Q9.6 format
15530+ LVM_INT16 ShortTermAverage; ///< Beats per minute in Q9.6 format
15531+ LVM_INT16 ShortTermMaximum; ///< Beats per minute in Q9.6 format
15532+
15533+ LVM_INT16 Confidence; ///< Beat confidence level: 0 = no confidence, 32767 = maximum confidence
15534+ LVM_INT16 Strength; ///< Beat strength level: 0 = no beat, 32767 = maximum strength beat
15535+ LVM_INT16 LongTermMinimum; ///< Beats per minute in Q9.6 format
15536+ LVM_INT16 LongTermAverage; ///< Beats per minute in Q9.6 format
15537+ LVM_INT16 LongTermMaximum; ///< Beats per minute in Q9.6 format
15538+
15539+} LVM_BPMModuleStats_st;
15540+
15541+
15542+/****************************************************************************************/
15543+/* */
15544+/* Standard Function Prototypes */
15545+/* */
15546+/****************************************************************************************/
15547+/**
15548+@brief General purpose callback function
15549+
15550+@param pCallbackData Pointer to the callback data structure
15551+@param pGeneralPurpose General purpose pointer (e.g. to a data structure needed in the callback)
15552+@param PresetLength General purpose variable (e.g. to be used as callback ID)
15553+@return \ref LVM_INT32
15554+*/
15555+typedef LVM_INT32 (*LVM_Callback)(void *pCallbackData,
15556+ void *pGeneralPurpose,
15557+ LVM_INT16 GeneralPurpose );
15558+
15559+
15560+/****************************************************************************************/
15561+/* */
15562+/* End of file */
15563+/* */
15564+/****************************************************************************************/
15565+
15566+#ifdef __cplusplus
15567+}
15568+#endif /* __cplusplus */
15569+
15570+#endif /* LVM_TYPES_H */
15571diff --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
15572new file mode 100755
15573index 0000000..9c48d8e
15574--- /dev/null
15575+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/uclinux/LVVE.h
15576@@ -0,0 +1,1371 @@
15577+/****************************************************************************************/
15578+/* Copyright (c) 2004-2014 NXP Software. All rights are reserved. */
15579+/* Reproduction in whole or in part is prohibited without the prior */
15580+/* written consent of the copyright owner. */
15581+/* */
15582+/* This software and any compilation or derivative thereof is and */
15583+/* shall remain the proprietary information of NXP Software and is */
15584+/* highly confidential in nature. Any and all use hereof is restricted */
15585+/* and is subject to the terms and conditions set forth in the */
15586+/* software license agreement concluded with NXP Software. */
15587+/* */
15588+/* Under no circumstances is this software or any derivative thereof */
15589+/* to be combined with any Open Source Software in any way or */
15590+/* licensed under any Open License Terms without the express prior */
15591+/* written permission of NXP Software. */
15592+/* */
15593+/* For the purpose of this clause, the term Open Source Software means */
15594+/* any software that is licensed under Open License Terms. Open */
15595+/* License Terms means terms in any license that require as a */
15596+/* condition of use, modification and/or distribution of a work */
15597+/* */
15598+/* 1. the making available of source code or other materials */
15599+/* preferred for modification, or */
15600+/* */
15601+/* 2. the granting of permission for creating derivative */
15602+/* works, or */
15603+/* */
15604+/* 3. the reproduction of certain notices or license terms */
15605+/* in derivative works or accompanying documentation, or */
15606+/* */
15607+/* 4. the granting of a royalty-free license to any party */
15608+/* under Intellectual Property Rights */
15609+/* */
15610+/* regarding the work and/or any work that contains, is combined with, */
15611+/* requires or otherwise is based on the work. */
15612+/* */
15613+/* This software is provided for ease of recompilation only. */
15614+/* Modification and reverse engineering of this software are strictly */
15615+/* prohibited. */
15616+/* */
15617+/****************************************************************************************/
15618+
15619+/****************************************************************************************/
15620+/* */
15621+/* $Author: nxp65285 $*/
15622+/* $Revision: 56908 $*/
15623+/* $Date: 2014-04-10 17:30:02 +0530 (Thu, 10 Apr 2014) $*/
15624+/* */
15625+/****************************************************************************************/
15626+
15627+/**
15628+@file
15629+Header file for the application layer interface of the LVVE module.
15630+This files includes all definitions, types, structures and function prototypes
15631+required by the calling layer. All other types, structures and functions are
15632+private.
15633+*/
15634+
15635+#ifndef __LVVE_H__
15636+#define __LVVE_H__
15637+
15638+#ifdef __cplusplus
15639+extern "C" {
15640+#endif /* __cplusplus */
15641+
15642+/****************************************************************************************/
15643+/* */
15644+/* Includes */
15645+/* */
15646+/****************************************************************************************/
15647+
15648+#include "LVVE_VID.h"
15649+
15650+/****************************************************************************************/
15651+/* */
15652+/* Definitions */
15653+/* */
15654+/****************************************************************************************/
15655+/* Below include logic is designed to reduce checks to 1 or 2 conditions due to limitations in the backend stripping code */
15656+
15657+
15658+
15659+
15660+
15661+#define LVVE_MAX_PCM_FRAME_SIZE 160 ///< LVVE maximum processing frame size
15662+
15663+
15664+#define LVVE_NOISESAMPLES_PER_FRAME 2 ///< Number of samples required for noise estimation per frame
15665+/**
15666+@def LVVE_RX_PRESET_LENGTH
15667+Length of the LVVE_Rx preset buffer (number of bytes).
15668+@see LVVE_Rx_SetPreset
15669+@ingroup LVVE_Rx
15670+*/
15671+#define LVVE_RX_PRESET_LENGTH (LVVIDHEADER_CONTROLPARAMS_LVWIREFORMAT_LENGTH + LVVE_RX_CONTROLPARAMS_LVWIREFORMAT_LENGTH) ///< RX preset Buffer length
15672+
15673+/**
15674+@def LVVE_TX_PRESET_LENGTH
15675+Length of the LVVE_Tx preset buffer (number of bytes).
15676+@see LVVE_Tx_SetPreset
15677+@ingroup LVVE_Tx
15678+*/
15679+#define LVVE_TX_PRESET_LENGTH (LVVIDHEADER_CONTROLPARAMS_LVWIREFORMAT_LENGTH + LVVE_TX_CONTROLPARAMS_LVWIREFORMAT_LENGTH) ///< TX preset buffer length
15680+
15681+
15682+/* Deprecated Definitions */
15683+
15684+#define LVVE_MAX_BULK_DELAY LVVE_TX_BULKDELAY_MAX
15685+#define LVVE_RX_MODE_DUMMY LVVE_RX_MODE_EN_DUMMY
15686+#define LVVE_TX_MODE_DUMMY LVVE_TX_MODE_EN_DUMMY
15687+
15688+#define LVVE_MAX_VOL_GAIN_DB LVVE_TX_VOL_GAIN_MAX
15689+#define LVVE_MIN_VOL_GAIN_DB LVVE_TX_VOL_GAIN_MIN
15690+
15691+#define LVVE_MAX_HPF_CORNER_HZ LVVE_TX_MIC_HPF_CORNERFREQ_MAX
15692+#define LVVE_MIN_HPF_CORNER_HZ LVVE_TX_MIC_HPF_CORNERFREQ_MIN
15693+
15694+#define LVVE_MAX_HPF_RX_CORNER_HZ LVVE_RX_HPF_CORNERFREQ_MAX
15695+
15696+#define LVVE_MAX_NLPP_LIMIT_DB LVNLPP_NLPP_LIMIT_MAX
15697+#define LVVE_MIN_NLPP_LIMIT_DB LVNLPP_NLPP_LIMIT_MIN
15698+
15699+
15700+#define LVVE_MAX_DRC_LEVEL LVDRC_COMPRESSORCURVEINPUTLEVELS_MAX
15701+#define LVVE_MIN_DRC_LEVEL LVDRC_COMPRESSORCURVEINPUTLEVELS_MIN
15702+#define LVVE_MIN_DRC_NUMKNEES LVDRC_NUMKNEES_MIN
15703+#define LVVE_MAX_DRC_NUMKNEES LVDRC_NUMKNEES_MAX
15704+#define LVVE_MIN_DRC_ATTACKTIME LVDRC_ATTACKTIME_MIN
15705+#define LVVE_MAX_DRC_ATTACKTIME LVDRC_ATTACKTIME_MAX
15706+#define LVVE_MIN_DRC_RELEASETIME LVDRC_RELEASETIME_MIN
15707+#define LVVE_MAX_DRC_RELEASETIME LVDRC_RELEASETIME_MAX
15708+
15709+
15710+/* End deprecated defines*/
15711+/****************************************************************************************/
15712+/* */
15713+/* Types */
15714+/* */
15715+/****************************************************************************************/
15716+
15717+/**
15718+LVVE_Tx Instance Handle
15719+This handle is used by most of the LVVE APIs
15720+@see LVVE_Tx_GetInstanceHandle
15721+@ingroup LVVE_Tx
15722+*/
15723+typedef void *LVVE_Tx_Handle_t; ///< LVVE Tx handle
15724+/**
15725+This handle is used by most of the LVVE APIs
15726+@see LVVE_Rx_GetInstanceHandle
15727+@ingroup LVVE_Rx
15728+*/
15729+typedef void *LVVE_Rx_Handle_t; ///< LVVE Rx handle
15730+
15731+/**
15732+This enum type specifies the different error codes returned by the API functions
15733+For the exact meaning see the individual function descriptions
15734+*/
15735+typedef enum
15736+{
15737+ LVVE_SUCCESS = 0, ///< Successful return from a routine
15738+ LVVE_ALIGNMENTERROR = 1, ///< Memory alignment error
15739+ LVVE_NULLADDRESS = 2, ///< NULL allocation address
15740+ LVVE_OUTOFRANGE = 3, ///< Out of range parameter
15741+ LVVE_INVALIDNUMSAMPLES = 4, ///< Invalid number of samples
15742+ LVVE_INVALID_ALGORITHM_CONFIGURATION = 5, ///< Mutually exclusive algorithms configured ON
15743+ LVVE_INVALID_STATE_CONFIGURATION = 6, ///< Invalid state of the algorithm
15744+ LVVE_PRESET_INVALID_BUFFER_LENGTH = 7, ///< Incorrect length of buffer used in SetPreset
15745+ LVVE_PRESET_INVALID_VOLUME_INDEX = 8, ///< The volume index exceeds the buffer content in SetPreset
15746+ LVVE_PRESET_INVALID_BUFFER_VERSION = 9, ///< The version of the preset buffer does not match this library
15747+ LVVE_PRESET_INVALID_BASELINE_VERSION = 10, ///< Invalid LVVE Baseline Version in preset buffer
15748+ LVVE_PRESET_INVALID_MASK = 11, ///< Invalid algorithm mask in preset buffer
15749+ LVVE_PRESET_INVALID_SAMPLE_RATE = 12, ///< Invalid sample rate @ref LVM_Fs_en in preset buffer
15750+ LVVE_PRESET_INVALID_LVWIREFORMAT_MESSAGEID = 13, ///< Invalid @ref LVVIDHeader_MessageID_en wire format message id in preset buffer
15751+
15752+ LVVE_RETURNSTATUS_DUMMY = LVM_MAXENUM
15753+} LVVE_ReturnStatus_en;
15754+
15755+/**
15756+Byte array containing encoded LVVE_Rx_ControlParams for one or multiple volumes.
15757+The length of this array should be a multiple of @ref LVVE_RX_PRESET_LENGTH.
15758+@see LVVE_Rx_SetPreset
15759+@ingroup LVVE_Rx
15760+*/
15761+typedef LVM_CHAR* LVVE_Rx_Preset_t; ///< LVVE Rx preset buffer
15762+
15763+/**
15764+Byte array containing encoded LVVE_Tx_ControlParams for one or multiple volumes.
15765+The length of this array should be a multiple of @ref LVVE_TX_PRESET_LENGTH.
15766+@see LVVE_Tx_SetPreset
15767+@ingroup LVVE_Tx
15768+*/
15769+typedef LVM_CHAR* LVVE_Tx_Preset_t; ///< LVVE Tx preset buffer
15770+
15771+
15772+/****************************************************************************************/
15773+/* */
15774+/* Structures */
15775+/* */
15776+/****************************************************************************************/
15777+
15778+/**
15779+The instance parameters define certain important operating limits required by the calling application.
15780+These instance parameters affect how much memory is required by the LVVE and hence must be provided
15781+when the instance is created.
15782+@see LVVE_Rx_GetMemoryTable
15783+@see LVVE_Rx_GetInstanceHandle
15784+@see LVVE_Tx_GetMemoryTable
15785+@see LVVE_Tx_GetInstanceHandle
15786+*/
15787+/**
15788+EQ Module Instance Parameters Structure.
15789+@see LVEQ_InstanceParams_st
15790+*/
15791+typedef struct
15792+{
15793+/**
15794+Max Size of Equalizer
15795+Sets the maximum length of the equalizer impulse response that can be used.
15796+It must be a multiple of 8.
15797+<table border>
15798+<caption>EQ Max Length Table</caption>
15799+ <tr>
15800+ <td><b>Unit</b></td>
15801+ <td><b>Q format</b></td>
15802+ <td><b>Data Range</b></td>
15803+ <td><b>Default Values</b></td>
15804+ </tr>
15805+ <tr>
15806+ <td><b>Integer Length in Samples</b></td>
15807+ <td><b>Q16.0</b></td>
15808+ <td>[8,\ref LVEQ_EQ_LENGTH_MAX]</td>
15809+ <td>\ref LVEQ_EQ_LENGTH_DEFAULT</td>
15810+ </tr>
15811+</table>
15812+*/
15813+ LVM_UINT16 EQ_MaxLength; ///< EQ Max Length
15814+} LVEQ_InstanceParams_st;
15815+
15816+/**
15817+Tx Instance Parameter Structure
15818+These parameters are set at initialization time and may not be changed during processing
15819+@ref LVVE_Tx_GetInstanceHandle
15820+@ingroup LVVE_Tx
15821+*/
15822+typedef struct
15823+{
15824+ LVM_Fs_en SampleRate; ///< Sample rate
15825+/**
15826+Sets the maximum length of the bulk delay between Rx and Tx expressed in samples.
15827+The unit of MaxBulkDelay is [number of samples] at the respective sampling rate.
15828+<table border>
15829+<caption>Max Bulk Delay Table</caption>
15830+ <tr>
15831+ <td><b>Type</b></td>
15832+ <td><b>Unit</b></td>
15833+ <td><b>Q format</b></td>
15834+ <td><b>Data Range</b></td>
15835+ <td><b>Default Values</b></td>
15836+ </tr>
15837+ <tr>
15838+ <td><b>LVM_UINT16</b></td>
15839+ <td><b>Integer Length in Samples</b></td>
15840+ <td><b>Q16.0</b></td>
15841+ <td>[0,6400]</td>
15842+ <td>None</td>
15843+ </tr>
15844+</table>
15845+*/
15846+ LVM_UINT16 MaxBulkDelay; ///< Max bulk delay
15847+
15848+ LVEQ_InstanceParams_st EQ_InstParams; ///< EQ instance
15849+} LVVE_Tx_InstanceParams_st;
15850+
15851+/**
15852+Rx Instance Parameter Structure
15853+These parameters are set at initialization time and may not be changed during processing.
15854+@ref LVVE_Rx_GetInstanceHandle
15855+@ingroup LVVE_Rx
15856+*/
15857+typedef struct
15858+{
15859+ LVM_Fs_en SampleRate; ///< LVVE sample rate
15860+ LVEQ_InstanceParams_st EQ_InstParams;///< EQ instance
15861+
15862+} LVVE_Rx_InstanceParams_st;
15863+
15864+/**
15865+The version information structure contains one character field to store LVVE version number.
15866+A call to the @ref LVVE_GetVersionInfo function is needed to retrieve this information.
15867+*/
15868+typedef struct
15869+{
15870+ LVM_CHAR VersionNumber[64]; ///< Version number of the LifeVibes&trade; VoiceExperience library
15871+} LVVE_VersionInfo;
15872+
15873+/**
15874+Used to reset LVVE_Rx module any time.
15875+@ref LVM_ResetType_en parameter determine the type of reset required
15876+@ingroup LVVE_Rx
15877+*/
15878+typedef struct
15879+{
15880+ LVM_ResetType_en ResetType; ///< RX Reset Type
15881+} LVVE_Rx_ResetParams_st;
15882+
15883+/**
15884+Used to reset LVVE_Tx module any time.
15885+LVM_ResetType_en parameter determine the type of reset required
15886+@ingroup LVVE_Tx
15887+*/
15888+typedef struct
15889+{
15890+ LVM_ResetType_en ResetType; ///< TX Reset Type
15891+} LVVE_Tx_ResetParams_st;
15892+
15893+/**
15894+@brief Retrieve the memory requirements of the LVVE_Tx module.
15895+
15896+This function returns a table of memory records that describe size, type and memory space of all buffers
15897+required by the instance. The number of initialized memory records is defined by LVVE_NR_MEMORY_REGIONS.
15898+This function is used for two purposes and is called in two different ways:
15899+
15900+@li Memory Allocation: When the LVVE_GetMemoryTable functions are called with a NULL instance handle (hInstance = LVM_NULL)
15901+ the function returns the memory requirements. The base address pointers in the memory table are set to NULL.
15902+ All elements of the instance parameters structure (pointed to by pInstParams) must contain valid values as the memory
15903+ requirements are affected by these settings.
15904+
15905+@li Memory Free: When called with a non-NULL instance handle (hInstance = a valid instance handle)
15906+ the function returns the memory table used when the instance was created.
15907+ The base address pointers returned will be those supplied by the calling application when the memory
15908+ was allocated and can now be used for freeing memory. The instance parameters (pointed to by pInstParams)
15909+ are ignored and the pInstParams parameter may be set to NULL.
15910+@li In case of memory allocation, all elements of the parameter initialization structure defined by pInstParams
15911+ must contain valid values as the memory requirements are affected by these settings.
15912+ In some releases of the bundle library one or more memory regions may have a zero size.
15913+
15914+@pre The number of memory records in the array defined by pMemoryTable is equal to @ref LVM_NR_MEMORY_REGIONS.
15915+@pre Exactly @ref LVM_NR_MEMORY_REGIONS memory records of pMemoryTable are initialized.
15916+
15917+@post When this function is called with hInstance = NULL the memory base address pointers
15918+will be NULL on return.
15919+@post When the function is called for freeing memory, hInstance = Instance Handle the
15920+memory table returns the allocated memory and base addresses used during
15921+initialisation.
15922+
15923+@return LVVE_SUCCESS when the function call succeeds and the memory table is filled correctly
15924+@return LVVE_NULLADDRESS when pMemoryTable was NULL
15925+@return LVVE_NULLADDRESS when pInstParams was NULL and the call was for memory allocation
15926+ is NULL.
15927+@return LVVE_OUTOFRANGE when pInstParams contains parameters out of the excepted range
15928+
15929+@note This function may be interrupted by the LVVE_Tx_Process function.
15930+
15931+@ingroup LVVE_Tx
15932+
15933+LVVE_Tx_GetMemoryTable: Memory Allocation Example:
15934+
15935+The following example shows how to get the memory requirements for the LVVE_Tx instance.
15936+\code
15937+ InstParams_Tx.SampleRate = LVM_FS_8000;
15938+ // Include the other instance params here
15939+
15940+ LVVE_Status = LVVE_Tx_GetMemoryTable ( LVM_NULL,
15941+ &MemTab_Tx,
15942+ &InstParams_Tx );
15943+
15944+ if( LVVE_Status != LVVE_SUCCESS )
15945+ {
15946+ // Handle Errors
15947+ }
15948+
15949+ for( c1 = 0; c1 < LVVE_NR_MEMORY_REGIONS; c1++ )
15950+ {
15951+ if( MemTab_Tx.Region[c1].Size != 0 )
15952+ {
15953+ MemTab_Tx.Region[c1].pBaseAddress =
15954+ malloc(MemTab_Tx.Region[c1].Size);
15955+ }
15956+ }
15957+\endcode
15958+
15959+LVVE_Tx_GetMemoryTable: Freeing Memory Example:
15960+
15961+The following example shows how to free the memory from the LVVE_Tx instance.
15962+
15963+\code
15964+ LVVE_Status = LVVE_Tx_GetMemoryTable( hInstance,
15965+ &MemTab_Tx,
15966+ LVM_NULL);
15967+
15968+ if (LVVE_Status != LVVE_SUCCESS)
15969+ {
15970+ // Handle errors
15971+ }
15972+
15973+ for( c1 = 0; c1 < LVVE_NR_MEMORY_REGIONS; c1++)
15974+ {
15975+ if (MemTab_Tx.Region[c1].Size != 0)
15976+ {
15977+ free(MemTab_Tx.Region[c1].pBaseAddress);
15978+ }
15979+ }
15980+\endcode
15981+
15982+*/
15983+
15984+LVVE_ReturnStatus_en LVVE_Tx_GetMemoryTable(LVVE_Tx_Handle_t hInstance,
15985+ LVM_MemoryTable_st *pMemoryTable,
15986+ LVVE_Tx_InstanceParams_st *pInstanceParams);
15987+
15988+/**
15989+@brief Retrieve the memory requirements of the LVVE_Rx module.
15990+
15991+This function returns a table of memory records that describe size, type and memory space of all buffers
15992+required by the instance. The number of initialized memory records is defined by LVVE_NR_MEMORY_REGIONS.
15993+This function is used for two purposes and is called in two different ways:
15994+
15995+@li Memory Allocation: When the LVVE_GetMemoryTable functions are called with a NULL instance handle (hInstance = LVM_NULL)
15996+ the function returns the memory requirements. The base address pointers in the memory table are set to NULL.
15997+ All elements of the instance parameters structure (pointed to by pInstParams) must contain valid values as the memory
15998+ requirements are affected by these settings.
15999+
16000+@li Memory Free: When called with a non-NULL instance handle (hInstance = a valid instance handle)
16001+ the function returns the memory table used when the instance was created.
16002+ The base address pointers returned will be those supplied by the calling application when the memory
16003+ was allocated and can now be used for freeing memory. The instance parameters (pointed to by pInstParams)
16004+ are ignored and the pInstParams parameter may be set to NULL.
16005+@li In case of memory allocation, all elements of the parameter initialization structure defined by pInstParams
16006+ must contain valid values as the memory requirements are affected by these settings.
16007+ In some releases of the bundle library one or more memory regions may have a zero size.
16008+
16009+@pre The number of memory records in the array defined by pMemoryTable is equal to @ref LVM_NR_MEMORY_REGIONS.
16010+@pre Exactly @ref LVM_NR_MEMORY_REGIONS memory records of pMemoryTable are initialized.
16011+
16012+@post When this function is called with hInstance = NULL the memory base address pointers
16013+will be NULL on return.
16014+@post When the function is called for freeing memory, hInstance = Instance Handle the
16015+memory table returns the allocated memory and base addresses used during
16016+initialisation.
16017+
16018+@return LVVE_SUCCESS when the function call succeeds and the memory table is filled correctly
16019+@return LVVE_NULLADDRESS when pMemoryTable was NULL
16020+@return LVVE_NULLADDRESS when pInstParams was NULL and the call was for memory allocation
16021+ is NULL.
16022+@return LVVE_OUTOFRANGE when pInstParams contains parameters out of the excepted range
16023+
16024+@note This function may be interrupted by the LVVE_Rx_Process function.
16025+
16026+@ingroup LVVE_Rx
16027+
16028+LVVE_Rx_GetMemoryTable: Memory Allocation Example:
16029+
16030+The following example shows how to get the memory requirements for the LVVE_Rx instance.
16031+
16032+\code
16033+ InstParams_Rx.SampleRate = LVM_FS_8000;
16034+ // Include the other instance params here
16035+
16036+ LVVE_Status = LVVE_Rx_GetMemoryTable ( LVM_NULL,
16037+ &MemTab_Rx,
16038+ &InstParams_Rx );
16039+
16040+ if( LVVE_Status != LVVE_SUCCESS )
16041+ {
16042+ // Handle Errors
16043+ }
16044+
16045+ for( c1 = 0; c1 < LVVE_NR_MEMORY_REGIONS; c1++ )
16046+ {
16047+ if( MemTab_Rx.Region[c1].Size != 0 )
16048+ {
16049+ MemTab_Rx.Region[c1].pBaseAddress =
16050+ malloc(MemTab_Rx.Region[c1].Size);
16051+ }
16052+ }
16053+\endcode
16054+
16055+LVVE_Rx_GetMemoryTable: Freeing Memory Example:
16056+
16057+The following example shows how to free the memory from the LVVE_Rx instance.
16058+
16059+\code
16060+ LVVE_Status = LVVE_Rx_GetMemoryTable( hInstance,
16061+ &MemTab_Rx,
16062+ LVM_NULL);
16063+
16064+ if (LVVE_Status != LVVE_SUCCESS)
16065+ {
16066+ // Handle errors
16067+ }
16068+
16069+ for( c1 = 0; c1 < LVVE_NR_MEMORY_REGIONS; c1++)
16070+ {
16071+ if (MemTab_Rx.Region[c1].Size != 0)
16072+ {
16073+ free(MemTab_Rx.Region[c1].pBaseAddress);
16074+ }
16075+ }
16076+\endcode
16077+*/
16078+
16079+LVVE_ReturnStatus_en LVVE_Rx_GetMemoryTable(LVVE_Rx_Handle_t hInstance,
16080+ LVM_MemoryTable_st *pMemoryTable,
16081+ LVVE_Rx_InstanceParams_st *pInstanceParams);
16082+
16083+
16084+/**
16085+@brief Created handle to the instance of the LVVE_Tx module
16086+
16087+This function is used to create the LVVE_Tx instance. All control parameters are set to invalid values.
16088+The memory table pointed to by pMemoryTable must be created. If the memory table is not correct then an error will be returned.
16089+The memory requirements of the Rx and Tx unit are dependent on the instance parameters supplied and so the
16090+instance parameters provided in this function call must be the same as those used in the @ref LVVE_Tx_GetMemoryTable function calls
16091+used for memory allocation.
16092+
16093+@pre The memory records tables defined by pMemoryTable contains pointers to non-overlapping buffers
16094+with the size as requested via the prior calls to the LVVE_Tx_GetMemoryTable functions.
16095+@pre The initialization parameter structure defined by pInstParams is identical to the structure passed
16096+to prior call to @ref LVVE_Tx_GetMemoryTable functions.
16097+
16098+
16099+@param phInstance Pointer to the instance handle.
16100+@param pMemoryTable Pointer to the memory definition table.
16101+@param pInstanceParams Pointer to the instance parameters.
16102+
16103+@return LVVE_SUCCESS when creation was successful
16104+@return LVVE_NULLADDRESS When phInstance or pMemoryTable or pInstanceParams is NULL.
16105+@return LVVE_NULLADDRESS when one or more of the memory regions with a non-zero size has been
16106+ given a NULL base address pointer.
16107+@return LVVE_OUTOFRANGE when pInstParams contains parameters out of the excepted range
16108+
16109+@ingroup LVVE_Tx
16110+
16111+ LVVE_Tx_GetInstanceHandle Example:
16112+
16113+The following example shows how to initialize LVVE_Tx_GetInstanceHandle.
16114+
16115+\code
16116+ hInstance_Tx = LVM_NULL;
16117+ LVVE_Status = LVVE_Tx_GetInstanceHandle( &hInstance_Tx,
16118+ &MemTab_Tx,
16119+ &InstParams_Tx );
16120+ if( LVVE_Status != LVVE_SUCCESS )
16121+ {
16122+ // Handle Errors
16123+ }
16124+\endcode
16125+
16126+*/
16127+
16128+LVVE_ReturnStatus_en LVVE_Tx_GetInstanceHandle(LVVE_Tx_Handle_t *phInstance,
16129+ LVM_MemoryTable_st *pMemoryTable,
16130+ LVVE_Tx_InstanceParams_st *pInstanceParams);
16131+
16132+/**
16133+@brief Created handle to the instance of the LVVE_Rx module
16134+
16135+This functions is used to create LVVE_Rx instance. All control parameters are set to invalid values.
16136+The memory table pointed to by pMemoryTable must be created. If the memory table is not correct then an error will be returned.
16137+The memory requirements of the Rx and Rx unit are dependent on the instance parameters supplied and so the
16138+instance parameters provided in this function call must be the same as those used in the @ref LVVE_Rx_GetMemoryTable function calls
16139+used for memory allocation.
16140+
16141+@pre The memory records tables defined by pMemoryTable contains pointers to non-overlapping buffers
16142+with the size as requested via the prior calls to the LVVE_Rx_GetMemoryTable functions.
16143+@pre The initialization parameter structure defined by pInstParams is identical to the structure passed
16144+to prior call to @ref LVVE_Rx_GetMemoryTable functions.
16145+
16146+
16147+@param phInstance Pointer to the instance handle.
16148+@param pMemoryTable Pointer to the memory definition table.
16149+@param pInstanceParams Pointer to the instance parameters.
16150+
16151+@return LVVE_SUCCESS when creation was successful
16152+@return LVVE_NULLADDRESS When phInstance or pMemoryTable or pInstanceParams is NULL.
16153+@return LVVE_NULLADDRESS when one or more of the memory regions with a non-zero size has been
16154+ given a NULL base address pointer.
16155+@return LVVE_OUTOFRANGE when pInstParams contains parameters out of the excepted range
16156+
16157+@ingroup LVVE_Rx
16158+
16159+ LVVE_Rx_GetInstanceHandle Example:
16160+
16161+The following example shows how to initialize LVVE_Rx_GetInstanceHandle.
16162+
16163+\code
16164+ hInstance_Rx = LVM_NULL;
16165+ LVVE_Status = LVVE_Rx_GetInstanceHandle( &hInstance_Rx,
16166+ &MemTab_Rx,
16167+ &InstParams_Rx );
16168+ if( LVVE_Status != LVVE_SUCCESS )
16169+ {
16170+ // Handle Errors
16171+ }
16172+\endcode
16173+
16174+*/
16175+
16176+LVVE_ReturnStatus_en LVVE_Rx_GetInstanceHandle(LVVE_Rx_Handle_t *phInstance,
16177+ LVM_MemoryTable_st *pMemoryTable,
16178+ LVVE_Rx_InstanceParams_st *pInstanceParams);
16179+
16180+/**
16181+@brief Retrieve the current LVVE_Tx control parameters.
16182+
16183+This function copies the control parameters from the LVVE_Tx into the supplied
16184+parameter structure, pControlParams. The values returned are the values given in the last successful
16185+call to the LVVE_Tx_SetControlParameters function.
16186+
16187+@param hInstance Instance handle
16188+@param pControlParams Pointer to the control parameters
16189+
16190+@pre hInstance should be valid handle.
16191+@pre pControlParams should be allocated by caller.
16192+@post pControlParams will be filled with the values given in the last successful call to
16193+ the LVVE_Tx_SetControlParameters function. They are not necessarily the values
16194+ used in the last call to the LVVE_Tx_Process function, this will be the case if
16195+ LVVE_Tx_SetControlParameters has been called since the last call to LVVE_Tx_Process.
16196+
16197+@return LVVE_SUCCESS Succeeded
16198+@return LVVE_NULLADDRESS When hInstance or pControlParams is NULL
16199+
16200+@note The LVVE_Tx_GetControlParameters function can be called at any time during processing.
16201+
16202+@ingroup LVVE_Tx
16203+
16204+LVVE_Tx_GetControlParameters Example:
16205+
16206+The following example shows how to get different control parameters for the LVVE_Tx instance.
16207+
16208+\code
16209+ LVVE_Status = LVVE_Tx_GetControlParameters( &hInstance_Tx,
16210+ &ControlParams_Tx );
16211+
16212+ if( LVVE_Status != LVVE_SUCCESS )
16213+ {
16214+ // Handle Errors
16215+ }
16216+\endcode
16217+
16218+*/
16219+
16220+LVVE_ReturnStatus_en LVVE_Tx_GetControlParameters( LVVE_Tx_Handle_t hInstance,
16221+ LVVE_Tx_ControlParams_st *pControlParams);
16222+
16223+/**
16224+@brief Retrieve the current LVVE_Rx control parameters.
16225+
16226+This function copies the control parameters from the LVVE_Tx into the supplied
16227+parameter structure, pControlParams. The values returned are the values given in the last successful
16228+call to the LVVE_Rx_SetControlParameters function.
16229+
16230+@param hInstance Instance handle
16231+@param pControlParams Pointer to the control parameters
16232+
16233+@pre hInstance should be valid handle.
16234+@pre pControlParams should be allocated by caller.
16235+@post pControlParams will be filled with the values given in the last successful call to
16236+ the LVVE_Rx_SetControlParameters function. They are not necessarily the values
16237+ used in the last call to the LVVE_Rx_Process function, this will be the case if
16238+ LVVE_Tx_SetControlParameters has been called since the last call to LVVE_Tx_Process.
16239+
16240+@return LVVE_SUCCESS Succeeded
16241+@return LVVE_NULLADDRESS When hInstance or pControlParams is NULL
16242+
16243+@note The LVVE_Rx_GetControlParameters function can be called at any time during processing.
16244+
16245+@ingroup LVVE_Rx
16246+
16247+LVVE_Rx_GetControlParameters Example:
16248+
16249+The following example shows how to get different control parameters for the LVVE_Rx instance.
16250+
16251+\code
16252+ LVVE_Status = LVVE_Rx_GetControlParameters( &hInstance_Rx,
16253+ &ControlParams_Rx );
16254+
16255+ if( LVVE_Status != LVVE_SUCCESS )
16256+ {
16257+ // Handle Errors
16258+ }
16259+\endcode
16260+
16261+*/
16262+
16263+LVVE_ReturnStatus_en LVVE_Rx_GetControlParameters( LVVE_Rx_Handle_t hInstance,
16264+ LVVE_Rx_ControlParams_st *pControlParams);
16265+
16266+/**
16267+@brief Sets or changes the LVVE_Tx module parameters using C-strcuture.
16268+
16269+This function takes the new set of parameters and makes a local copy within
16270+LVVE_Tx but the parameters are only applied on the next call of the LVVE_Tx_Process
16271+function. When a parameter is unchanged no action is taken. This function can
16272+be called at any time during the processing, even when the LVVE_Tx_Process function
16273+is running. LifeVibes&trade; VoiceExperience control parameters can be set using two methods.
16274+Control Parameters can be populated in a \"C\" style structure (as explained in example) and then sent to the library.
16275+Another method is to populate control parameters in a byte array called Preset Buffer, see @ref LVVE_Tx_SetPreset for example usage.
16276+
16277+@param hInstance Instance Handle
16278+@param pNewParams Pointer to a parameter structure
16279+
16280+@pre hInstance should be valid handle.
16281+
16282+@return LVVE_SUCCESS Succeeded
16283+@return LVVE_NULLADDRESS When hInstance or pNewParams is NULL
16284+@return LVVE_OUTOFRANGE When pNewParams contains parameters of activated modules that are out of the excepted range
16285+@return LVVE_INVALID_ALGORITHM_CONFIGURATION When two mutual exclusive algorithms are both configured ON at run-time
16286+ (e.g., NoiseVoid and HandsFree)
16287+
16288+
16289+@note This function may be interrupted by the LVVE_Tx_Process function
16290+
16291+@ingroup LVVE_Tx
16292+
16293+LVVE_Tx_GetControlParameters: Setting Control Parameters using C-Style structure Example:
16294+
16295+The following example shows how to set different control parameters for the LVVE_Tx instance.
16296+
16297+\code
16298+ LVVE_Status = LVVE_Tx_GetControlParameters( &hInstance_Tx,
16299+ &ControlParams_Tx );
16300+
16301+ if( LVVE_Status != LVVE_SUCCESS )
16302+ {
16303+ // Handle Errors
16304+ }
16305+
16306+ Change Parameters as required
16307+ ControlParams_Tx.VOL_Gain = VOL_TABLE[i];
16308+ ControlParams_Tx.VC_ControlParams = VC_TABLE[i];
16309+
16310+ // Update instance with new parameters
16311+ LVVE_Status = LVVE_Tx_SetControlParameters( &hInstance_Tx,
16312+ &ControlParams_Tx );
16313+
16314+ if( LVVE_Status != LVVE_SUCCESS )
16315+ {
16316+ // Handle Errors
16317+ }
16318+\endcode
16319+
16320+*/
16321+
16322+LVVE_ReturnStatus_en LVVE_Tx_SetControlParameters( LVVE_Tx_Handle_t hInstance,
16323+ const LVVE_Tx_ControlParams_st * const pNewParams);
16324+
16325+/**
16326+@brief Sets or changes the LVVE_Rx module parameters using C-structure.
16327+
16328+This function takes the new set of parameters and makes a local copy within
16329+LVVE_Rx but the parameters are only applied on the next call of the LVVE_Rx_Process
16330+function. When a parameter is unchanged no action is taken. This function can
16331+be called at any time during the processing, even when the LVVE_Rx_Process function
16332+is running. LifeVibes&trade; VoiceExperience control parameters can be set using two methods.
16333+Control Parameters can be populated in a \"C\" style structure (as explained in example) and then sent to the library.
16334+Another method is to populate control parameters in a byte array called Preset Buffer, see @ref LVVE_Rx_SetPreset for example usage.
16335+
16336+@param hInstance Instance Handle
16337+@param pNewParams Pointer to a parameter structure
16338+
16339+@pre hInstance should be valid handle.
16340+
16341+@return LVVE_SUCCESS Succeeded
16342+@return LVVE_NULLADDRESS When hInstance or pNewParams is NULL
16343+@return LVVE_OUTOFRANGE When pNewParams contains parameters of activated modules that are out of the excepted range
16344+@return LVVE_INVALID_ALGORITHM_CONFIGURATION When two mutual exclusive algorithms are both configured ON at run-time
16345+ (e.g., NoiseVoid and HandsFree)
16346+
16347+
16348+@note This function may be interrupted by the LVVE_Rx_Process function
16349+
16350+@ingroup LVVE_Rx
16351+
16352+LVVE_Rx_GetControlParameters: Setting Control Parameters using C-Style structure Example:
16353+
16354+The following example shows how to set different control parameters for the LVVE_Rx instance.
16355+
16356+\code
16357+ LVVE_Status = LVVE_Rx_GetControlParameters( &hInstance_Rx,
16358+ &ControlParams_Rx );
16359+
16360+ if( LVVE_Status != LVVE_SUCCESS )
16361+ {
16362+ // Handle Errors
16363+ }
16364+
16365+ Change Parameters as required
16366+ ControlParams_Rx.VOL_Gain = VOL_TABLE[i];
16367+ ControlParams_Rx.VC_ControlParams = VC_TABLE[i];
16368+
16369+ // Update instance with new parameters
16370+ LVVE_Status = LVVE_Rx_SetControlParameters( &hInstance_Rx,
16371+ &ControlParams_Rx );
16372+
16373+ if( LVVE_Status != LVVE_SUCCESS )
16374+ {
16375+ // Handle Errors
16376+ }
16377+\endcode
16378+
16379+*/
16380+LVVE_ReturnStatus_en LVVE_Rx_SetControlParameters( LVVE_Rx_Handle_t hInstance,
16381+ const LVVE_Rx_ControlParams_st * const pNewParams);
16382+
16383+/**
16384+@brief Retrieve the current LVVE_Tx status parameters.
16385+
16386+This function copies internal status variables into the supplied status
16387+parameter structures.
16388+
16389+@param hInstance Instance handle
16390+@param pStatusParams Pointer to the status parameters
16391+
16392+@pre hInstance should be valid handle.
16393+@pre pStatusParams should be allocated by caller.
16394+@post pStatusParams will be filled with the latest status values of LVVE_Tx.
16395+
16396+@return LVVE_SUCCESS Succeeded
16397+@return LVVE_NULLADDRESS When hInstance or pStatusParams is NULL
16398+
16399+@note The LVVE_Tx_GetStatusParameters function can be called at any time during processing.
16400+This function can run in different threads than the process functions.
16401+
16402+
16403+@ingroup LVVE_Tx
16404+
16405+LVVE_Tx_GetStatusParameters: Get Internal Algorithm Status Attributes Example:
16406+The following example shows how to use LVVE_Tx_GetStatusParameters function call.
16407+
16408+\code
16409+ LVVE_Tx_StatusParams_st Tx_Monitor;
16410+ Status=LVVE_Tx_GetStatusParameters(hInstance_Tx,&Tx_Monitor);
16411+ if (Status != LVVE_SUCCESS )
16412+ {
16413+ // Error Handling
16414+ }
16415+\endcode
16416+
16417+*/
16418+
16419+LVVE_ReturnStatus_en LVVE_Tx_GetStatusParameters( LVVE_Tx_Handle_t hInstance,
16420+ LVVE_Tx_StatusParams_st *pStatusParams);
16421+
16422+/**
16423+@brief Retrieve the current LVVE_Rx status parameters.
16424+
16425+This function copies internal status variables into the supplied status
16426+parameter structures.
16427+
16428+@param hInstance Instance handle
16429+@param pStatusParams Pointer to the status parameters
16430+
16431+@pre hInstance should be valid handle.
16432+@pre pStatusParams should be allocated by caller.
16433+@post pStatusParams will be filled with the latest status values of LVVE_Rx.
16434+
16435+@return LVVE_SUCCESS Succeeded
16436+@return LVVE_NULLADDRESS When hInstance or pStatusParams is NULL
16437+
16438+@note The LVVE_Rx_GetStatusParameters function can be called at any time during processing.
16439+This function can run in different threads than the process functions.
16440+
16441+@ingroup LVVE_Rx
16442+
16443+LVVE_Rx_GetStatusParameters: Get Internal Algorithm Status Attributes Example:
16444+The following example shows how to use LVVE_Rx_GetStatusParameters function call.
16445+
16446+\code
16447+ LVVE_Rx_StatusParams_st Rx_Monitor;
16448+ Status=LVVE_Rx_GetStatusParameters(hInstance_Rx,&Rx_Monitor);
16449+ if (Status != LVVE_SUCCESS )
16450+ {
16451+ // Error Handling
16452+ }
16453+\endcode
16454+
16455+*/
16456+
16457+LVVE_ReturnStatus_en LVVE_Rx_GetStatusParameters( LVVE_Rx_Handle_t hInstance,
16458+ LVVE_Rx_StatusParams_st *pStatusParams);
16459+
16460+/**
16461+@brief Resets the LVVE_Tx module.
16462+
16463+The LVVE_Tx module instance memory contains data which depend on the input
16464+samples that have been processed previously. These data are buffers
16465+used for filter tabs and delay lines and also adaptive coefficients of the
16466+algorithm. The LVVE_Tx_ResetInstance function resets this input dependent data.
16467+
16468+The LVVE_Tx_ResetInstance function should be called whenever there is a
16469+discontinuity in the input audio stream. A discontinuity means that the
16470+current block of samples is not contiguous with the previous block of samples.
16471+Examples are
16472+@li Calling the LVVE_Tx_Process function after a period of inactivity
16473+@li Buffer underrun or overflow in the audio driver
16474+The LVVE_ResetInstance function of the Tx and/or Tx Unit should only be called when absolutely necessary as re-adaptation
16475+of internal algorithms will occur.
16476+The LVVE_ResetInstance functions can be called at any time, even when LVVE_Process is running. The reset will be
16477+applied at the start of the next call of the LVVE_Tx_Process function.
16478+
16479+
16480+@param hInstance Instance Handle
16481+@param pResetParams Reset Type
16482+
16483+@pre hInstance should be valid handle.
16484+
16485+@post Depending on the ResetType value, the LVVE_Tx_ResetInstance function can
16486+perform:
16487+@li Soft reset: partial reset of internal buffers and adaptive behavior. To be used for very short
16488+interruption or discontinuity, e.g., buffer under-run or overflow in the audio driver influencing the echo path delay.
16489+@li Hard reset: full reset of all internal buffers and adaptive behavior. To be used for long
16490+interruption or discontinuity, e.g., before calling the LVVE_Tx_Process function after a long period of inactivity
16491+in between calls in case instance was not freed.
16492+
16493+@return LVVE_SUCCESS Succeeded
16494+@return LVVE_NULLADDRESS When hInstance or pResetParams is NULL
16495+@return LVVE_OUTOFRANGE When content of pResetParams is invalid
16496+
16497+@note This function may be interrupted by the LVVE_Tx_Process function
16498+
16499+@ingroup LVVE_Tx
16500+
16501+LVVE_Tx_ResetInstance Example:
16502+
16503+The following example shows how to use LVVE_Tx_ResetInstance.
16504+\code
16505+ LVVE_Status = LVVE_Tx_ResetInstance(hInstance, pResetParams);
16506+
16507+ if (LVVE_Status != LVVE_SUCCESS)
16508+ {
16509+ // Handle LVVE_Tx_ResetInstance errors
16510+ }
16511+\endcode
16512+
16513+*/
16514+LVVE_ReturnStatus_en LVVE_Tx_ResetInstance( LVVE_Tx_Handle_t hInstance,
16515+ LVVE_Tx_ResetParams_st *pResetParams );
16516+
16517+/**
16518+@brief Resets the LVVE_Rx module.
16519+
16520+The LVVE_Rx module instance memory contains data which depend on the input
16521+samples that have been processed previously. These data are buffers
16522+used for filter tabs and delay lines and also adaptive coefficients of the
16523+algorithm. The LVVE_Rx_ResetInstance function resets this input dependent data.
16524+
16525+The LVVE_Rx_ResetInstance function should be called whenever there is a
16526+discontinuity in the input audio stream. A discontinuity means that the
16527+current block of samples is not contiguous with the previous block of samples.
16528+Examples are
16529+@li Calling the LVVE_Rx_Process function after a period of inactivity
16530+@li Buffer underrun or overflow in the audio driver
16531+The LVVE_ResetInstance function of the Rx and/or Tx Unit should only be called when absolutely necessary as re-adaptation
16532+of internal algorithms will occur.
16533+The LVVE_ResetInstance functions can be called at any time, even when LVVE_Process is running. The reset will be
16534+applied at the start of the next call of the LVVE_Rx_Process function.
16535+
16536+
16537+@param hInstance Instance Handle
16538+@param pResetParams Reset Type
16539+
16540+@pre hInstance should be valid handle.
16541+
16542+@post Depending on the ResetType value, the LVVE_Rx_ResetInstance function can
16543+perform:
16544+@li Soft reset: partial reset of internal buffers and adaptive behavior. To be used for very short
16545+interruption or discontinuity, e.g., buffer under-run or overflow in the audio driver influencing the echo path delay.
16546+@li Hard reset: full reset of all internal buffers and adaptive behavior. To be used for long
16547+interruption or discontinuity, e.g., before calling the LVVE_Rx_Process function after a long period of inactivity
16548+in between calls in case instance was not freed.
16549+
16550+@return LVVE_SUCCESS Succeeded
16551+@return LVVE_NULLADDRESS When hInstance or pResetParams is NULL
16552+@return LVVE_OUTOFRANGE When content of pResetParams is invalid
16553+
16554+@note This function may be interrupted by the LVVE_Rx_Process function
16555+
16556+@ingroup LVVE_Rx
16557+
16558+LVVE_Rx_ResetInstance Example:
16559+
16560+The following example shows how to use LVVE_Rx_ResetInstance.
16561+\code
16562+ LVVE_Status = LVVE_Rx_ResetInstance(hInstance, pResetParams);
16563+
16564+ if (LVVE_Status != LVVE_SUCCESS)
16565+ {
16566+ // Handle LVVE_Rx_ResetInstance errors
16567+ }
16568+\endcode
16569+
16570+*/
16571+LVVE_ReturnStatus_en LVVE_Rx_ResetInstance( LVVE_Rx_Handle_t hInstance,
16572+ LVVE_Rx_ResetParams_st *pResetParams );
16573+
16574+/**
16575+@brief Processes a block of samples by the LVVE_Tx module.
16576+
16577+This function processes the block of samples as configured with the current
16578+parameter settings. If new parameters have been given since the last call to
16579+LVVE_Tx_Process then these will be applied at the beginning of this process call.
16580+
16581+@param hInstance Instance Handle
16582+@param pInDataMic0 Pointer to the input speech sample buffer (pimary microphone).
16583+@param pInDataMic1 Pointer to the input speech sample buffer (secondary microphone).
16584+@param pRefData Pointer to the input farend reference buffer.
16585+@param pNoiseData Pointer to the output noise reference buffer.
16586+@param pOutData Pointer to the output sample buffer.
16587+@param NumSamples The number of samples to process should be integer multiple(n) of values in table.
16588+ It is a frquency dependant paramter.
16589+<table border>
16590+ <tr>
16591+ <td><b>Unit</b></td>
16592+ <td><b>Q format</b></td>
16593+ <td><b>Data Range</b></td>
16594+ <td><b>Default Values</b></td>
16595+ </tr>
16596+ <tr>
16597+ <td><b>Samples</b></td>
16598+ <td><b>Q16.0</b></td>
16599+ <td>nx80 for 8kHz</td>
16600+ <td>80 for 8kHz</td>
16601+ </tr>
16602+ <tr>
16603+ <td></td>
16604+ <td></td>
16605+ <td>nx160 for 16kHz</td>
16606+ <td>160 for 16kHz</td>
16607+ </tr>
16608+ <tr>
16609+ <td></td>
16610+ <td></td>
16611+ <td>nx240 for 24kHz</td>
16612+ <td>240 for 24kHz</td>
16613+ </tr>
16614+ <tr>
16615+ <td></td>
16616+ <td></td>
16617+ <td>nx320 for 32kHz</td>
16618+ <td>320 for 32kHz</td>
16619+ </tr>
16620+ <tr>
16621+ <td></td>
16622+ <td></td>
16623+ <td>nx480 for 48kHz</td>
16624+ <td>480 for 48kHz</td>
16625+ </tr>
16626+</table>
16627+
16628+@pre hInstance should be valid handle.
16629+@pre LVVE_Tx_SetControlParameters should be called successfully once before.
16630+the first call to LVVE_Tx_Process
16631+@pre pInData is filled with the input samples to process.
16632+
16633+@post pOutData contains the processed samples.
16634+
16635+@return LVVE_SUCCESS Succeeded
16636+@return LVVE_NULLADDRESS When hInstance, pInData or pOutData is NULL
16637+@return LVVE_INVALIDNUMSAMPLES When the NumSamples is outside the allowed
16638+range
16639+@return LVVE_INVALID_STATE_CONFIGURATION When invalid state of the algorithm found
16640+
16641+@ingroup LVVE_Tx
16642+
16643+LVVE_Tx_Process Example:
16644+
16645+The following example shows how to use LVVE_Tx_Process function call
16646+
16647+\code
16648+ // Tx Processing
16649+ LVVE_STATUS = LVVE_Tx_Process( hInstance_Tx,
16650+ pInData_Tx0,
16651+ pInData_Tx1,
16652+ pInData_Ref,
16653+ pNoiseData,
16654+ pOutData_Tx,
16655+ NumSamples );
16656+ if (LVVE_STATUS != LVVE_SUCCESS )
16657+ {
16658+ // Error Handling
16659+ }
16660+\endcode
16661+
16662+*/
16663+LVVE_ReturnStatus_en LVVE_Tx_Process( LVVE_Tx_Handle_t hInstance,
16664+ const LVM_INT16 *pInDataMic0,
16665+ const LVM_INT16 *pInDataMic1,
16666+ const LVM_INT16 *pRefData,
16667+ LVM_INT16 *pNoiseData,
16668+ LVM_INT16 *pOutData,
16669+ const LVM_UINT16 NumSamples);
16670+
16671+/**
16672+@brief Processes a block of samples by the LVVE_Rx module.
16673+
16674+This function processes the block of samples as configured with the current
16675+parameter settings. If new parameters have been given since the last call to
16676+LVVE_Rx_Process then these will be applied at the beginning of this process call.
16677+
16678+@param hInstance Instance Handle
16679+@param pInData Pointer to the input sample buffer
16680+@param pNoiseData Pointer to the input noise buffer (for LVVC only). Pointer to the input noise reference buffer.
16681+ The size of this buffer depends on the number of samples to process: NoiseDataBufferSize = 2 (size of the input buffer in ms) / 10ms
16682+ i.e. for 20 ms input buffer, the NoiseData buffer size should be 4.
16683+
16684+@param pOutData Pointer to the output sample buffer
16685+@param NumSamples The number of samples to process should be integer multiple(n) of values in table.
16686+ It is a frquency dependant paramter.
16687+<table border>
16688+ <tr>
16689+ <td><b>Unit</b></td>
16690+ <td><b>Q format</b></td>
16691+ <td><b>Data Range</b></td>
16692+ <td><b>Default Values</b></td>
16693+ </tr>
16694+ <tr>
16695+ <td><b>Samples</b></td>
16696+ <td><b>Q16.0</b></td>
16697+ <td>nx80 for 8kHz</td>
16698+ <td>80 for 8kHz</td>
16699+ </tr>
16700+ <tr>
16701+ <td></td>
16702+ <td></td>
16703+ <td>nx160 for 16kHz</td>
16704+ <td>160 for 16kHz</td>
16705+ </tr>
16706+ <tr>
16707+ <td></td>
16708+ <td></td>
16709+ <td>nx240 for 24kHz</td>
16710+ <td>240 for 24kHz</td>
16711+ </tr>
16712+ <tr>
16713+ <td></td>
16714+ <td></td>
16715+ <td>nx320 for 32kHz</td>
16716+ <td>320 for 32kHz</td>
16717+ </tr>
16718+ <tr>
16719+ <td></td>
16720+ <td></td>
16721+ <td>nx480 for 48kHz</td>
16722+ <td>480 for 48kHz</td>
16723+ </tr>
16724+</table>
16725+
16726+@pre hInstance should be valid handle.
16727+@pre LVVE_Rx_SetControlParameters should be called successfully once before.
16728+the first call to LVVE_Rx_Process
16729+@pre pInData is filled with the input samples to process.
16730+
16731+@post pOutData contains the processed samples.
16732+
16733+@return LVVE_SUCCESS Succeeded
16734+@return LVVE_NULLADDRESS When hInstance, pInData or pOutData is NULL
16735+@return LVVE_INVALIDNUMSAMPLES When the NumSamples is outside the allowed
16736+range
16737+@return LVVE_INVALID_STATE_CONFIGURATION When invalid state of the algorithm found
16738+
16739+@ingroup LVVE_Rx
16740+
16741+LVVE_Rx_Process Example:
16742+The following example shows how to use LVVE_Rx_Process function call.
16743+
16744+\code
16745+ // Rx Processing
16746+ LVVE_STATUS = LVVE_Rx_Process( hInstance_Rx,
16747+ pInData_Rx,
16748+ pNoiseData,
16749+ pOutData_Rx,
16750+ NumSamples );
16751+
16752+ if (LVVE_STATUS != LVVE_SUCCESS )
16753+ {
16754+ // Error Handling
16755+ }
16756+\endcode
16757+
16758+*/
16759+
16760+LVVE_ReturnStatus_en LVVE_Rx_Process( LVVE_Rx_Handle_t hInstance,
16761+ const LVM_INT16 *pInData,
16762+ const LVM_INT16 *pNoiseData,
16763+ LVM_INT16 *pOutData,
16764+ const LVM_UINT16 NumSamples);
16765+
16766+
16767+/**
16768+\brief get the version number of current of LVVE library.
16769+
16770+This function returns, to host, current version of the LVVE library
16771+@param pVersion version info
16772+
16773+@return LVVE_SUCCESS Succeeded
16774+@return LVVE_NULLADDRESS When one of hInstance, pInData or pOutData is NULL
16775+
16776+LVVE_GetVersionInfot Example:
16777+
16778+\code
16779+ //Get the version information
16780+ LVVE_VersionInfo VersionInfo;
16781+ LVVE_GetVersionInfo(&VersionInfo);
16782+\endcode
16783+
16784+*/
16785+LVVE_ReturnStatus_en LVVE_GetVersionInfo( LVVE_VersionInfo *pVersion );
16786+
16787+/**
16788+@brief Sets or changes the LVVE_Tx module parameters through a Preset Buffer.
16789+
16790+Sets or changes the LVVE_Tx module parameters through a Preset Buffer. To set parameters using \"C\" structure see
16791+@ref LVVE_Tx_SetControlParameters
16792+This function takes the new set of parameters and makes a local copy within the
16793+LVVE_Tx module but the parameters are only applied on the next call of the LVVE_Tx_Process
16794+function. When no parameters are changed, no action is taken. This function can
16795+be called at any time during the processing, even when the LVVE_Tx_Process function
16796+is running.
16797+The new parameters are supplied in the form a @ref LVVE_Tx_Preset_t (Byte array).
16798+The length of the byte array shall be a multiple of @ref LVVE_TX_PRESET_LENGTH.
16799+
16800+@param hInstance Instance Handle
16801+@param pPreset Pointer to a Preset buffer
16802+@param PresetLength Length in bytes of the Preset buffer
16803+@param VolumeIndex Volume index to be selected from the Preset buffer
16804+
16805+@pre hInstance should be valid handle.
16806+
16807+@return @ref LVVE_SUCCESS Succeeded
16808+@return @ref LVVE_NULLADDRESS When hInstance or pPreset is NULL
16809+@return @ref LVVE_OUTOFRANGE When PresetLength or any of the new parameters is out of range
16810+@return @ref LVVE_INVALID_ALGORITHM_CONFIGURATION When mutually exclusive algorithms are enabled in the parameters at the same time
16811+@return @ref LVVE_PRESET_INVALID_BUFFER_LENGTH When the length of the input buffer is smaller than LVVE_TX_PRESET_LENGTH
16812+@return @ref LVVE_PRESET_INVALID_VOLUME_INDEX When the volume index exceeds the buffer content
16813+@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
16814+@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 ?
16815+@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 ?
16816+@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
16817+@return @ref LVVE_PRESET_INVALID_LVWIREFORMAT_MESSAGEID When the LVWireformat message id @ref LVVIDHeader_MessageID_en of the preset is not valid
16818+
16819+@note This function may be interrupted by the LVVE_Tx_Process function
16820+
16821+@ingroup LVVE_Tx
16822+LVVE_Tx_SetPreset: Setting Control Parameters using Preset Buffer Example:
16823+
16824+The following example shows how to set different control parameters for the LVVE_Tx instance using Preset Buffer.
16825+
16826+\code
16827+ LVM_CHAR LVVE_Tx_Preset_Buffer[LVVE_TX_PRESET_LENGTH];
16828+ LVVE_Tx_Preset_t const LVVE_Tx_Preset = LVVE_Tx_Preset_Buffer;
16829+
16830+ FILE *PRESETFILE_Tx;
16831+ LVM_INT32 ReadBytes = 0;
16832+
16833+ PRESETFILE_Tx=fopen(filename, "rb" );
16834+
16835+ // Read the preset buffer
16836+ ReadBytes = fread( LVVE_Tx_Preset_Buffer,
16837+ sizeof(LVM_CHAR),
16838+ (LVM_UINT32)LVVE_TX_PRESET_LENGTH,
16839+ PRESETFILE_Tx );
16840+
16841+ fclose(PRESETFILE_Tx);
16842+
16843+ // Update instance with new preset buffer
16844+ LVVE_Status = LVVE_Tx_SetPreset( hInstance_Tx,
16845+ LVVE_Tx_Preset,
16846+ ReadBytes,
16847+ 0);
16848+
16849+ if ( LVVE_Status != LVVE_SUCCESS )
16850+ {
16851+ // Handle Errors
16852+ }
16853+\endcode
16854+
16855+
16856+
16857+*/
16858+LVVE_ReturnStatus_en LVVE_Tx_SetPreset(LVVE_Tx_Handle_t hInstance,
16859+ const LVVE_Tx_Preset_t pPreset,
16860+ LVM_UINT32 PresetLength,
16861+ LVM_UINT16 VolumeIndex);
16862+
16863+/**
16864+@brief Sets or changes the LVVE_Rx module parameters through a Preset Buffer
16865+
16866+Sets or changes the LVVE_Rx module parameters through a Preset Buffer. To set parameters using \"C\" structure see
16867+@ref LVVE_Rx_SetControlParameters
16868+This function takes the new set of parameters and makes a local copy within the
16869+LVVE_Rx module but the parameters are only applied on the next call of the LVVE_Rx_Process
16870+function. When no parameters are changed, no action is taken. This function can
16871+be called at any time during the processing, even when the LVVE_Rx_Process function
16872+is running.
16873+The new parameters are supplied in the form a @ref LVVE_Rx_Preset_t (Byte array).
16874+The length of the byte array shall be a multiple of @ref LVVE_RX_PRESET_LENGTH.
16875+
16876+@param hInstance Instance Handle
16877+@param pPreset Pointer to a Preset buffer
16878+@param PresetLength Length in bytes of the Preset buffer
16879+@param VolumeIndex Volume index to be selected from the Preset buffer
16880+
16881+@pre hInstance should be valid handle.
16882+
16883+@return @ref LVVE_SUCCESS Succeeded
16884+@return @ref LVVE_NULLADDRESS When hInstance or pPreset is NULL
16885+@return @ref LVVE_OUTOFRANGE When PresetLength or any of the new parameters is out of range
16886+@return @ref LVVE_INVALID_ALGORITHM_CONFIGURATION When mutually exclusive algorithms are enabled in the parameters at the same time
16887+@return @ref LVVE_PRESET_INVALID_BUFFER_LENGTH When the length of the input buffer is smaller than LVVE_RX_PRESET_LENGTH
16888+@return @ref LVVE_PRESET_INVALID_VOLUME_INDEX When the volume index exceeds the buffer content
16889+@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
16890+@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 ?
16891+@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 ?
16892+@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
16893+@return @ref LVVE_PRESET_INVALID_LVWIREFORMAT_MESSAGEID When the LVWireformat message id @ref LVVIDHeader_MessageID_en of the preset is not valid
16894+
16895+@note This function may be interrupted by the LVVE_Rx_Process function
16896+
16897+@ingroup LVVE_Rx
16898+
16899+LVVE_Rx_SetPreset: Setting Control Parameters using Preset Buffer Example:
16900+
16901+The following example shows how to set different control parameters for the LVVE_Rx instance using Preset Buffer.
16902+
16903+\code
16904+ #define NUM_VOLUMES (5)
16905+ LVM_CHAR LVVE_Rx_Preset_Buffer[NUM_VOLUMES*LVVE_RX_PRESET_LENGTH];
16906+ LVVE_Rx_Preset_t const LVVE_Rx_Preset = LVVE_Rx_Preset_Buffer;
16907+
16908+ FILE *PRESETFILE_Rx;
16909+ LVM_INT32 ReadBytes = 0;
16910+ LVM_UINT16 VolumeIndex = 3;
16911+
16912+ PRESETFILE_Rx=fopen(filename, "rb" );
16913+
16914+ // Read the preset buffer
16915+ ReadBytes = fread( LVVE_Rx_Preset_Buffer,
16916+ sizeof(LVM_CHAR),
16917+ (LVM_UINT32)(NUM_VOLUMES*LVVE_RX_PRESET_LENGTH),
16918+ PRESETFILE_Rx );
16919+
16920+ fclose(PRESETFILE_Rx);
16921+
16922+ // Update instance with new preset buffer
16923+ LVVE_Status = LVVE_Rx_SetPreset( hInstance_Rx,
16924+ LVVE_Rx_Preset,
16925+ ReadBytes,
16926+ VolumeIndex);
16927+
16928+ if ( LVVE_Status != LVVE_SUCCESS )
16929+ {
16930+ // Handle Errors
16931+ }
16932+\endcode
16933+
16934+*/
16935+LVVE_ReturnStatus_en LVVE_Rx_SetPreset(LVVE_Rx_Handle_t hInstance,
16936+ const LVVE_Rx_Preset_t pPreset,
16937+ LVM_UINT32 PresetLength,
16938+ LVM_UINT16 VolumeIndex);
16939+
16940+
16941+#ifdef __cplusplus
16942+}
16943+#endif /* __cplusplus */
16944+
16945+#endif /* __LVVE_H__ */
16946+
16947+/* End of file */
16948diff --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
16949new file mode 100755
16950index 0000000..79047a8
16951--- /dev/null
16952+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/uclinux/LVVE_VID.h
16953@@ -0,0 +1,8413 @@
16954+/****************************************************************************************/
16955+/* Copyright (c) 2004-2016 NXP Software. All rights are reserved. */
16956+/* Reproduction in whole or in part is prohibited without the prior */
16957+/* written consent of the copyright owner. */
16958+/* */
16959+/* This software and any compilation or derivative thereof is and */
16960+/* shall remain the proprietary information of NXP Software and is */
16961+/* highly confidential in nature. Any and all use hereof is restricted */
16962+/* and is subject to the terms and conditions set forth in the */
16963+/* software license agreement concluded with NXP Software. */
16964+/* */
16965+/* Under no circumstances is this software or any derivative thereof */
16966+/* to be combined with any Open Source Software in any way or */
16967+/* licensed under any Open License Terms without the express prior */
16968+/* written permission of NXP Software. */
16969+/* */
16970+/* For the purpose of this clause, the term Open Source Software means */
16971+/* any software that is licensed under Open License Terms. Open */
16972+/* License Terms means terms in any license that require as a */
16973+/* condition of use, modification and/or distribution of a work */
16974+/* */
16975+/* 1. the making available of source code or other materials */
16976+/* preferred for modification, or */
16977+/* */
16978+/* 2. the granting of permission for creating derivative */
16979+/* works, or */
16980+/* */
16981+/* 3. the reproduction of certain notices or license terms */
16982+/* in derivative works or accompanying documentation, or */
16983+/* */
16984+/* 4. the granting of a royalty-free license to any party */
16985+/* under Intellectual Property Rights */
16986+/* */
16987+/* regarding the work and/or any work that contains, is combined with, */
16988+/* requires or otherwise is based on the work. */
16989+/* */
16990+/* This software is provided for ease of recompilation only. */
16991+/* Modification and reverse engineering of this software are strictly */
16992+/* prohibited. */
16993+/* */
16994+/****************************************************************************************/
16995+
16996+/****************************************************************************************/
16997+/* */
16998+/* $Author: nxp65285 $*/
16999+/* $Revision: 49390 $*/
17000+/* $Date: 2013-10-16 18:34:35 +0530 (Wed, 16 Oct 2013) $*/
17001+/* */
17002+/****************************************************************************************/
17003+
17004+/** @file
17005+ * Header file for the application layer interface of the REL_LVVE_HF_NV1_VC_AGC_RX_DRC_RX module
17006+ *
17007+ * The suffix VID in header file stands for Voice Interface Definition
17008+ * This files includes all definitions, types, and structures required by the calling
17009+ * layer. Public functions are defined in the protoypes header files.
17010+ * All other types, structures and functions are private.
17011+ */
17012+
17013+#ifndef __REL_LVVE_HF_NV1_VC_AGC_RX_DRC_RX_VIDPP_H__
17014+#define __REL_LVVE_HF_NV1_VC_AGC_RX_DRC_RX_VIDPP_H__
17015+
17016+#ifdef __cplusplus
17017+extern "C" {
17018+#endif /* __cplusplus */
17019+
17020+/****************************************************************************************/
17021+/* */
17022+/* Includes */
17023+/* */
17024+/****************************************************************************************/
17025+#include "LVC_Types.h"
17026+
17027+/****************************************************************************************/
17028+/* */
17029+/* Definitions */
17030+/* */
17031+/****************************************************************************************/
17032+/**
17033+<table border>
17034+ <tr>
17035+ <td><b>Name</b></td>
17036+ <td><b>Value</b></td>
17037+ <td><b>Description</b></td>
17038+ </tr>
17039+ <tr>
17040+ <td>@ref LVVIDHEADER_LVVE_RX_LVFENS_MASK1</td>
17041+ <td>1</td>
17042+ <td>Far End Noise Suppression is present in the LVVE_Rx</td>
17043+ </tr>
17044+ <tr>
17045+ <td>@ref LVVIDHEADER_LVVE_RX_HPF_MASK1</td>
17046+ <td>4</td>
17047+ <td>High Pass Filter is present in the LVVE_Rx</td>
17048+ </tr>
17049+ <tr>
17050+ <td>@ref LVVIDHEADER_LVVE_RX_LVNG_MASK1</td>
17051+ <td>16</td>
17052+ <td>Noise Gate is present in the LVVE_Rx</td>
17053+ </tr>
17054+ <tr>
17055+ <td>@ref LVVIDHEADER_LVVE_RX_EQ_MASK1</td>
17056+ <td>64</td>
17057+ <td>Equalizer is present in the LVVE_Rx</td>
17058+ </tr>
17059+ <tr>
17060+ <td>@ref LVVIDHEADER_LVVE_RX_AGC_MASK1</td>
17061+ <td>128</td>
17062+ <td>Automatic Gain Control is present in the LVVE_Rx</td>
17063+ </tr>
17064+ <tr>
17065+ <td>@ref LVVIDHEADER_LVVE_RX_DRC_MASK1</td>
17066+ <td>256</td>
17067+ <td>Dynamic Range Control is present in the LVVE_Rx</td>
17068+ </tr>
17069+ <tr>
17070+ <td>@ref LVVIDHEADER_LVVE_RX_VOL_MASK1</td>
17071+ <td>512</td>
17072+ <td>Volume Control is present in the LVVE_Rx</td>
17073+ </tr>
17074+ <tr>
17075+ <td>@ref LVVIDHEADER_LVVE_RX_LVVC_MASK1</td>
17076+ <td>1024</td>
17077+ <td>VoiceClarity is present in the LVVE_Rx</td>
17078+ </tr>
17079+</table> */
17080+typedef LVM_UINT16 LVVIDHeader_LVVE_Rx_Mask1_bm;
17081+/**
17082+* @def LVVIDHeader_LVVE_Rx_LVFENS_MASK1
17083+* Far End Noise Suppression is present in the LVVE_Rx
17084+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
17085+*/
17086+#define LVVIDHEADER_LVVE_RX_LVFENS_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)1)
17087+/**
17088+* @def LVVIDHeader_LVVE_Rx_HPF_MASK1
17089+* High Pass Filter is present in the LVVE_Rx
17090+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
17091+*/
17092+#define LVVIDHEADER_LVVE_RX_HPF_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)4)
17093+/**
17094+* @def LVVIDHeader_LVVE_Rx_LVNG_MASK1
17095+* Noise Gate is present in the LVVE_Rx
17096+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
17097+*/
17098+#define LVVIDHEADER_LVVE_RX_LVNG_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)16)
17099+/**
17100+* @def LVVIDHeader_LVVE_Rx_EQ_MASK1
17101+* Equalizer is present in the LVVE_Rx
17102+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
17103+*/
17104+#define LVVIDHEADER_LVVE_RX_EQ_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)64)
17105+/**
17106+* @def LVVIDHeader_LVVE_Rx_AGC_MASK1
17107+* Automatic Gain Control is present in the LVVE_Rx
17108+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
17109+*/
17110+#define LVVIDHEADER_LVVE_RX_AGC_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)128)
17111+/**
17112+* @def LVVIDHeader_LVVE_Rx_DRC_MASK1
17113+* Dynamic Range Control is present in the LVVE_Rx
17114+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
17115+*/
17116+#define LVVIDHEADER_LVVE_RX_DRC_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)256)
17117+/**
17118+* @def LVVIDHeader_LVVE_Rx_VOL_MASK1
17119+* Volume Control is present in the LVVE_Rx
17120+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
17121+*/
17122+#define LVVIDHEADER_LVVE_RX_VOL_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)512)
17123+/**
17124+* @def LVVIDHeader_LVVE_Rx_LVVC_MASK1
17125+* VoiceClarity is present in the LVVE_Rx
17126+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
17127+*/
17128+#define LVVIDHEADER_LVVE_RX_LVVC_MASK1 ((LVVIDHeader_LVVE_Rx_Mask1_bm)1024)
17129+/**
17130+* @def LVVIDHEADER_LVVE_RX_MASK1_BM_MIN
17131+* Minimal value for LVVIDHeader_LVVE_Rx_Mask1_bm
17132+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
17133+*/
17134+#define LVVIDHEADER_LVVE_RX_MASK1_BM_MIN ((LVVIDHeader_LVVE_Rx_Mask1_bm)0)
17135+/**
17136+* @def LVVIDHEADER_LVVE_RX_MASK1_BM_MAX
17137+* Maximal value for LVVIDHeader_LVVE_Rx_Mask1_bm
17138+* @see LVVIDHeader_LVVE_Rx_Mask1_bm
17139+*/
17140+#define LVVIDHEADER_LVVE_RX_LVFENS_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)1)
17141+#define LVVIDHEADER_LVVE_RX_HPF_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)4)
17142+#define LVVIDHEADER_LVVE_RX_LVNG_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)16)
17143+#define LVVIDHEADER_LVVE_RX_EQ_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)64)
17144+#define LVVIDHEADER_LVVE_RX_AGC_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)128)
17145+#define LVVIDHEADER_LVVE_RX_DRC_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)256)
17146+#define LVVIDHEADER_LVVE_RX_VOL_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)512)
17147+#define LVVIDHEADER_LVVE_RX_LVVC_MASK1_FORMAX ((LVVIDHeader_LVVE_Rx_Mask1_bm)1024)
17148+#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))
17149+/**
17150+<table border>
17151+ <tr>
17152+ <td><b>Name</b></td>
17153+ <td><b>Value</b></td>
17154+ <td><b>Description</b></td>
17155+ </tr>
17156+</table> */
17157+typedef LVM_UINT16 LVVIDHeader_LVVE_Rx_Mask2_bm;
17158+/**
17159+* @def LVVIDHEADER_LVVE_RX_MASK2_BM_MIN
17160+* Minimal value for LVVIDHeader_LVVE_Rx_Mask2_bm
17161+* @see LVVIDHeader_LVVE_Rx_Mask2_bm
17162+*/
17163+#define LVVIDHEADER_LVVE_RX_MASK2_BM_MIN ((LVVIDHeader_LVVE_Rx_Mask2_bm)0)
17164+/**
17165+* @def LVVIDHEADER_LVVE_RX_MASK2_BM_MAX
17166+* Maximal value for LVVIDHeader_LVVE_Rx_Mask2_bm
17167+* @see LVVIDHeader_LVVE_Rx_Mask2_bm
17168+*/
17169+#define LVVIDHEADER_LVVE_RX_MASK2_BM_MAX (((LVVIDHeader_LVVE_Rx_Mask2_bm)0))
17170+/**
17171+<table border>
17172+ <tr>
17173+ <td><b>Name</b></td>
17174+ <td><b>Value</b></td>
17175+ <td><b>Description</b></td>
17176+ </tr>
17177+ <tr>
17178+ <td>@ref LVVIDHEADER_LVVE_TX_LVHF_MASK1</td>
17179+ <td>1</td>
17180+ <td>HandsFree is present in the LVVE_Tx</td>
17181+ </tr>
17182+ <tr>
17183+ <td>@ref LVVIDHEADER_LVVE_TX_EQ_MASK1</td>
17184+ <td>4</td>
17185+ <td>Equalizer is present in the LVVE_Tx</td>
17186+ </tr>
17187+ <tr>
17188+ <td>@ref LVVIDHEADER_LVVE_TX_DRC_MASK1</td>
17189+ <td>16</td>
17190+ <td>Dynamic Range Control is present in the LVVE_Tx</td>
17191+ </tr>
17192+ <tr>
17193+ <td>@ref LVVIDHEADER_LVVE_TX_VOL_MASK1</td>
17194+ <td>32</td>
17195+ <td>Volume Control is present in the LVVE_Tx</td>
17196+ </tr>
17197+ <tr>
17198+ <td>@ref LVVIDHEADER_LVVE_TX_HPF_MASK1</td>
17199+ <td>128</td>
17200+ <td>HPF is present in the LVVE_Tx</td>
17201+ </tr>
17202+ <tr>
17203+ <td>@ref LVVIDHEADER_LVVE_TX_LVNV_01_MASK1</td>
17204+ <td>512</td>
17205+ <td>NoiseVoid is present in the LVVE_Tx</td>
17206+ </tr>
17207+</table> */
17208+typedef LVM_UINT16 LVVIDHeader_LVVE_Tx_Mask1_bm;
17209+/**
17210+* @def LVVIDHeader_LVVE_Tx_LVHF_MASK1
17211+* HandsFree is present in the LVVE_Tx
17212+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
17213+*/
17214+#define LVVIDHEADER_LVVE_TX_LVHF_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)1)
17215+/**
17216+* @def LVVIDHeader_LVVE_Tx_EQ_MASK1
17217+* Equalizer is present in the LVVE_Tx
17218+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
17219+*/
17220+#define LVVIDHEADER_LVVE_TX_EQ_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)4)
17221+/**
17222+* @def LVVIDHeader_LVVE_Tx_DRC_MASK1
17223+* Dynamic Range Control is present in the LVVE_Tx
17224+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
17225+*/
17226+#define LVVIDHEADER_LVVE_TX_DRC_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)16)
17227+/**
17228+* @def LVVIDHeader_LVVE_Tx_VOL_MASK1
17229+* Volume Control is present in the LVVE_Tx
17230+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
17231+*/
17232+#define LVVIDHEADER_LVVE_TX_VOL_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)32)
17233+/**
17234+* @def LVVIDHeader_LVVE_Tx_HPF_MASK1
17235+* HPF is present in the LVVE_Tx
17236+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
17237+*/
17238+#define LVVIDHEADER_LVVE_TX_HPF_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)128)
17239+/**
17240+* @def LVVIDHeader_LVVE_Tx_LVNV_01_MASK1
17241+* NoiseVoid is present in the LVVE_Tx
17242+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
17243+*/
17244+#define LVVIDHEADER_LVVE_TX_LVNV_01_MASK1 ((LVVIDHeader_LVVE_Tx_Mask1_bm)512)
17245+/**
17246+* @def LVVIDHEADER_LVVE_TX_MASK1_BM_MIN
17247+* Minimal value for LVVIDHeader_LVVE_Tx_Mask1_bm
17248+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
17249+*/
17250+#define LVVIDHEADER_LVVE_TX_MASK1_BM_MIN ((LVVIDHeader_LVVE_Tx_Mask1_bm)0)
17251+/**
17252+* @def LVVIDHEADER_LVVE_TX_MASK1_BM_MAX
17253+* Maximal value for LVVIDHeader_LVVE_Tx_Mask1_bm
17254+* @see LVVIDHeader_LVVE_Tx_Mask1_bm
17255+*/
17256+#define LVVIDHEADER_LVVE_TX_LVHF_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)1)
17257+#define LVVIDHEADER_LVVE_TX_EQ_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)4)
17258+#define LVVIDHEADER_LVVE_TX_DRC_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)16)
17259+#define LVVIDHEADER_LVVE_TX_VOL_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)32)
17260+#define LVVIDHEADER_LVVE_TX_HPF_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)128)
17261+#define LVVIDHEADER_LVVE_TX_LVNV_01_MASK1_FORMAX ((LVVIDHeader_LVVE_Tx_Mask1_bm)512)
17262+#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))
17263+/**
17264+<table border>
17265+ <tr>
17266+ <td><b>Name</b></td>
17267+ <td><b>Value</b></td>
17268+ <td><b>Description</b></td>
17269+ </tr>
17270+</table> */
17271+typedef LVM_UINT16 LVVIDHeader_LVVE_Tx_Mask2_bm;
17272+/**
17273+* @def LVVIDHEADER_LVVE_TX_MASK2_BM_MIN
17274+* Minimal value for LVVIDHeader_LVVE_Tx_Mask2_bm
17275+* @see LVVIDHeader_LVVE_Tx_Mask2_bm
17276+*/
17277+#define LVVIDHEADER_LVVE_TX_MASK2_BM_MIN ((LVVIDHeader_LVVE_Tx_Mask2_bm)0)
17278+/**
17279+* @def LVVIDHEADER_LVVE_TX_MASK2_BM_MAX
17280+* Maximal value for LVVIDHeader_LVVE_Tx_Mask2_bm
17281+* @see LVVIDHeader_LVVE_Tx_Mask2_bm
17282+*/
17283+#define LVVIDHEADER_LVVE_TX_MASK2_BM_MAX (((LVVIDHeader_LVVE_Tx_Mask2_bm)0))
17284+/**
17285+<table border>
17286+ <tr>
17287+ <td><b>Name</b></td>
17288+ <td><b>Value</b></td>
17289+ <td><b>Description</b></td>
17290+ </tr>
17291+ <tr>
17292+ <td>@ref LVVIDHEADER_CONFIGURATIONS_NARROWBAND_MASK1</td>
17293+ <td>1</td>
17294+ <td>NarrowBand configuration is present in the LVVE</td>
17295+ </tr>
17296+</table> */
17297+typedef LVM_UINT16 LVVIDHeader_Configurations_Mask1_bm;
17298+/**
17299+* @def LVVIDHEADER_CONFIGURATIONS_NARROWBAND_MASK1
17300+* NarrowBand configuration is present in the LVVE
17301+* @see LVVIDHeader_Configurations_Mask1_bm
17302+*/
17303+#define LVVIDHEADER_CONFIGURATIONS_NARROWBAND_MASK1 ((LVVIDHeader_Configurations_Mask1_bm)1)
17304+/**
17305+* @def LVVIDHEADER_CONFIGURATIONS_MASK1_BM_MIN
17306+* Minimal value for LVVIDHeader_Configurations_Mask1_bm
17307+* @see LVVIDHeader_Configurations_Mask1_bm
17308+*/
17309+#define LVVIDHEADER_CONFIGURATIONS_MASK1_BM_MIN ((LVVIDHeader_Configurations_Mask1_bm)0)
17310+/**
17311+* @def LVVIDHEADER_CONFIGURATIONS_MASK1_BM_MAX
17312+* Maximal value for LVVIDHeader_Configurations_Mask1_bm
17313+* @see LVVIDHeader_Configurations_Mask1_bm
17314+*/
17315+#define LVVIDHEADER_CONFIGURATIONS_NARROWBAND_MASK1_FORMAX ((LVVIDHeader_Configurations_Mask1_bm)1)
17316+#define LVVIDHEADER_CONFIGURATIONS_MASK1_BM_MAX (LVVIDHEADER_CONFIGURATIONS_NARROWBAND_MASK1_FORMAX | ((LVVIDHeader_Configurations_Mask1_bm)0))
17317+/**
17318+<table border>
17319+ <tr>
17320+ <td><b>Name</b></td>
17321+ <td><b>Value</b></td>
17322+ <td><b>Description</b></td>
17323+ </tr>
17324+</table> */
17325+typedef LVM_UINT16 LVVIDHeader_Configurations_Mask2_bm;
17326+/**
17327+* @def LVVIDHEADER_CONFIGURATIONS_MASK2_BM_MIN
17328+* Minimal value for LVVIDHeader_Configurations_Mask2_bm
17329+* @see LVVIDHeader_Configurations_Mask2_bm
17330+*/
17331+#define LVVIDHEADER_CONFIGURATIONS_MASK2_BM_MIN ((LVVIDHeader_Configurations_Mask2_bm)0)
17332+/**
17333+* @def LVVIDHEADER_CONFIGURATIONS_MASK2_BM_MAX
17334+* Maximal value for LVVIDHeader_Configurations_Mask2_bm
17335+* @see LVVIDHeader_Configurations_Mask2_bm
17336+*/
17337+#define LVVIDHEADER_CONFIGURATIONS_MASK2_BM_MAX (((LVVIDHeader_Configurations_Mask2_bm)0))
17338+/**
17339+<table border>
17340+ <tr>
17341+ <td><b>Name</b></td>
17342+ <td><b>Value</b></td>
17343+ <td><b>Description</b></td>
17344+ </tr>
17345+ <tr>
17346+ <td>@ref LVVC_MODE_AVL</td>
17347+ <td>2</td>
17348+ <td>Turns on or off the AGC. If off both AGC and Limiter are bypassed.</td>
17349+ </tr>
17350+ <tr>
17351+ <td>@ref LVVC_MODE_AVL_ADAPT</td>
17352+ <td>4</td>
17353+ <td>Allows turning off the dependency of the AGC upon the nearend noise level. When turned off, the AGC uses the default parameters.</td>
17354+ </tr>
17355+ <tr>
17356+ <td>@ref LVVC_MODE_AVL_SPDETECT</td>
17357+ <td>8</td>
17358+ <td>Allows disabling speech detection in the AGC. When turned off, the AGC adapts its gain all the time.</td>
17359+ </tr>
17360+ <tr>
17361+ <td>@ref LVVC_MODE_LIMITER</td>
17362+ <td>16</td>
17363+ <td>Turns on or off the limiter.</td>
17364+ </tr>
17365+ <tr>
17366+ <td>@ref LVVC_MODE_LPF</td>
17367+ <td>32</td>
17368+ <td>Turns on or off the low-pass filter.</td>
17369+ </tr>
17370+ <tr>
17371+ <td>@ref LVVC_MODE_HPF</td>
17372+ <td>64</td>
17373+ <td>Turns on or off the high-pass filter.</td>
17374+ </tr>
17375+ <tr>
17376+ <td>@ref LVVC_MODE_VC</td>
17377+ <td>128</td>
17378+ <td>Turns on or off the VoiceClarity gain.</td>
17379+ </tr>
17380+</table> */
17381+typedef LVM_UINT16 LVVC_ModeWord_bm;
17382+/**
17383+* @def LVVC_MODE_AVL
17384+* Turns on or off the AGC. If off both AGC and Limiter are bypassed.
17385+* @see LVVC_ModeWord_bm
17386+*/
17387+#define LVVC_MODE_AVL ((LVVC_ModeWord_bm)2)
17388+/**
17389+* @def LVVC_MODE_AVL_ADAPT
17390+* Allows turning off the dependency of the AGC upon the nearend noise level. When turned off, the AGC uses the default parameters.
17391+* @see LVVC_ModeWord_bm
17392+*/
17393+#define LVVC_MODE_AVL_ADAPT ((LVVC_ModeWord_bm)4)
17394+/**
17395+* @def LVVC_MODE_AVL_SPDETECT
17396+* Allows disabling speech detection in the AGC. When turned off, the AGC adapts its gain all the time.
17397+* @see LVVC_ModeWord_bm
17398+*/
17399+#define LVVC_MODE_AVL_SPDETECT ((LVVC_ModeWord_bm)8)
17400+/**
17401+* @def LVVC_MODE_LIMITER
17402+* Turns on or off the limiter.
17403+* @see LVVC_ModeWord_bm
17404+*/
17405+#define LVVC_MODE_LIMITER ((LVVC_ModeWord_bm)16)
17406+/**
17407+* @def LVVC_MODE_LPF
17408+* Turns on or off the low-pass filter.
17409+* @see LVVC_ModeWord_bm
17410+*/
17411+#define LVVC_MODE_LPF ((LVVC_ModeWord_bm)32)
17412+/**
17413+* @def LVVC_MODE_HPF
17414+* Turns on or off the high-pass filter.
17415+* @see LVVC_ModeWord_bm
17416+*/
17417+#define LVVC_MODE_HPF ((LVVC_ModeWord_bm)64)
17418+/**
17419+* @def LVVC_MODE_VC
17420+* Turns on or off the VoiceClarity gain.
17421+* @see LVVC_ModeWord_bm
17422+*/
17423+#define LVVC_MODE_VC ((LVVC_ModeWord_bm)128)
17424+/**
17425+* @def LVVC_MODEWORD_BM_MIN
17426+* Minimal value for LVVC_ModeWord_bm
17427+* @see LVVC_ModeWord_bm
17428+*/
17429+#define LVVC_MODEWORD_BM_MIN ((LVVC_ModeWord_bm)0)
17430+/**
17431+* @def LVVC_MODEWORD_BM_MAX
17432+* Maximal value for LVVC_ModeWord_bm
17433+* @see LVVC_ModeWord_bm
17434+*/
17435+#define LVVC_MODE_AVL_FORMAX ((LVVC_ModeWord_bm)2)
17436+#define LVVC_MODE_AVL_ADAPT_FORMAX ((LVVC_ModeWord_bm)4)
17437+#define LVVC_MODE_AVL_SPDETECT_FORMAX ((LVVC_ModeWord_bm)8)
17438+#define LVVC_MODE_LIMITER_FORMAX ((LVVC_ModeWord_bm)16)
17439+#define LVVC_MODE_LPF_FORMAX ((LVVC_ModeWord_bm)32)
17440+#define LVVC_MODE_HPF_FORMAX ((LVVC_ModeWord_bm)64)
17441+#define LVVC_MODE_VC_FORMAX ((LVVC_ModeWord_bm)128)
17442+#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))
17443+/**
17444+<table border>
17445+ <tr>
17446+ <td><b>Name</b></td>
17447+ <td><b>Value</b></td>
17448+ <td><b>Description</b></td>
17449+ </tr>
17450+ <tr>
17451+ <td>@ref LVFENS_MODE_HS</td>
17452+ <td>1</td>
17453+ <td>Switch ON and OFF Horn Suppressor. Currently Horn Suppressor is not supported.</td>
17454+ </tr>
17455+</table> */
17456+typedef LVM_UINT16 LVFENS_ModeWord_bm;
17457+/**
17458+* @def LVFENS_MODE_HS
17459+* Switch ON and OFF Horn Suppressor. Currently Horn Suppressor is not supported.
17460+* @see LVFENS_ModeWord_bm
17461+*/
17462+#define LVFENS_MODE_HS ((LVFENS_ModeWord_bm)1)
17463+/**
17464+* @def LVFENS_MODEWORD_BM_MIN
17465+* Minimal value for LVFENS_ModeWord_bm
17466+* @see LVFENS_ModeWord_bm
17467+*/
17468+#define LVFENS_MODEWORD_BM_MIN ((LVFENS_ModeWord_bm)0)
17469+/**
17470+* @def LVFENS_MODEWORD_BM_MAX
17471+* Maximal value for LVFENS_ModeWord_bm
17472+* @see LVFENS_ModeWord_bm
17473+*/
17474+#define LVFENS_MODE_HS_FORMAX ((LVFENS_ModeWord_bm)1)
17475+#define LVFENS_MODEWORD_BM_MAX (LVFENS_MODE_HS_FORMAX | ((LVFENS_ModeWord_bm)0))
17476+/**
17477+<table border>
17478+ <tr>
17479+ <td><b>Name</b></td>
17480+ <td><b>Value</b></td>
17481+ <td><b>Description</b></td>
17482+ </tr>
17483+ <tr>
17484+ <td>@ref LVWM_MODE_AVL</td>
17485+ <td>1</td>
17486+ <td>Turns on or off the AVL. If off, both AGC and Limiter are bypassed</td>
17487+ </tr>
17488+ <tr>
17489+ <td>@ref LVWM_MODE_SPDETECT</td>
17490+ <td>2</td>
17491+ <td>Allows disabling speech detection in the AVL. When turned off, the AGC adapts its gain all the time.</td>
17492+ </tr>
17493+ <tr>
17494+ <td>@ref LVWM_MODE_LIMITER</td>
17495+ <td>4</td>
17496+ <td>Turns on or off the limiter.</td>
17497+ </tr>
17498+ <tr>
17499+ <td>@ref LVWM_MODE_EXT_SPDETECT</td>
17500+ <td>8</td>
17501+ <td>Used to tell the WhisperMode module if an external speech detection is available (If 0, there is no external speech detector).</td>
17502+ </tr>
17503+</table> */
17504+typedef LVM_UINT16 LVWM_ModeWord_bm;
17505+/**
17506+* @def LVWM_MODE_AVL
17507+* Turns on or off the AVL. If off, both AGC and Limiter are bypassed
17508+* @see LVWM_ModeWord_bm
17509+*/
17510+#define LVWM_MODE_AVL ((LVWM_ModeWord_bm)1)
17511+/**
17512+* @def LVWM_MODE_SPDETECT
17513+* Allows disabling speech detection in the AVL. When turned off, the AGC adapts its gain all the time.
17514+* @see LVWM_ModeWord_bm
17515+*/
17516+#define LVWM_MODE_SPDETECT ((LVWM_ModeWord_bm)2)
17517+/**
17518+* @def LVWM_MODE_LIMITER
17519+* Turns on or off the limiter.
17520+* @see LVWM_ModeWord_bm
17521+*/
17522+#define LVWM_MODE_LIMITER ((LVWM_ModeWord_bm)4)
17523+/**
17524+* @def LVWM_MODE_EXT_SPDETECT
17525+* Used to tell the WhisperMode module if an external speech detection is available (If 0, there is no external speech detector).
17526+* @see LVWM_ModeWord_bm
17527+*/
17528+#define LVWM_MODE_EXT_SPDETECT ((LVWM_ModeWord_bm)8)
17529+/**
17530+* @def LVWM_MODEWORD_BM_MIN
17531+* Minimal value for LVWM_ModeWord_bm
17532+* @see LVWM_ModeWord_bm
17533+*/
17534+#define LVWM_MODEWORD_BM_MIN ((LVWM_ModeWord_bm)0)
17535+/**
17536+* @def LVWM_MODEWORD_BM_MAX
17537+* Maximal value for LVWM_ModeWord_bm
17538+* @see LVWM_ModeWord_bm
17539+*/
17540+#define LVWM_MODE_AVL_FORMAX ((LVWM_ModeWord_bm)1)
17541+#define LVWM_MODE_SPDETECT_FORMAX ((LVWM_ModeWord_bm)2)
17542+#define LVWM_MODE_LIMITER_FORMAX ((LVWM_ModeWord_bm)4)
17543+#define LVWM_MODE_EXT_SPDETECT_FORMAX ((LVWM_ModeWord_bm)8)
17544+#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))
17545+/**
17546+<table border>
17547+ <tr>
17548+ <td><b>Name</b></td>
17549+ <td><b>Value</b></td>
17550+ <td><b>Description</b></td>
17551+ </tr>
17552+ <tr>
17553+ <td>@ref MODE_NLMS0</td>
17554+ <td>1</td>
17555+ <td>NLMS0 functionality</td>
17556+ </tr>
17557+ <tr>
17558+ <td>@ref MODE_NLMS1</td>
17559+ <td>2</td>
17560+ <td>NLMS1 functionality</td>
17561+ </tr>
17562+ <tr>
17563+ <td>@ref MODE_BEAMFORMER</td>
17564+ <td>4</td>
17565+ <td>Fiter-and-Sum Beamformer functionality</td>
17566+ </tr>
17567+ <tr>
17568+ <td>@ref MODE_PCD</td>
17569+ <td>8</td>
17570+ <td>Switch between PCD (Path change detector) and BSD (Broadside detector)</td>
17571+ </tr>
17572+ <tr>
17573+ <td>@ref MODE_GSC</td>
17574+ <td>16</td>
17575+ <td>Generalized Sidelobe Canceller functionality</td>
17576+ </tr>
17577+ <tr>
17578+ <td>@ref MODE_DNNS</td>
17579+ <td>32</td>
17580+ <td>Dynamic Non-stationary Noise Suppression functionality</td>
17581+ </tr>
17582+ <tr>
17583+ <td>@ref MODE_DES</td>
17584+ <td>64</td>
17585+ <td>Dynamic Echo Suppression functionality</td>
17586+ </tr>
17587+ <tr>
17588+ <td>@ref MODE_NS</td>
17589+ <td>128</td>
17590+ <td>Stationary Noise Suppression functionality</td>
17591+ </tr>
17592+ <tr>
17593+ <td>@ref MODE_NS_N</td>
17594+ <td>256</td>
17595+ <td>Non-stationary Noise Suppression functionality</td>
17596+ </tr>
17597+ <tr>
17598+ <td>@ref MODE_CAL</td>
17599+ <td>2048</td>
17600+ <td>Switch between initial or continuous calibration</td>
17601+ </tr>
17602+ <tr>
17603+ <td>@ref MODE_HB</td>
17604+ <td>16384</td>
17605+ <td>High Band mute/activated</td>
17606+ </tr>
17607+ <tr>
17608+ <td>@ref MODE_HS</td>
17609+ <td>32768</td>
17610+ <td>Horn Suppressor functionality (if available)</td>
17611+ </tr>
17612+</table> */
17613+typedef LVM_UINT16 LVNV_ModeWord_bm;
17614+/**
17615+* @def MODE_NLMS0
17616+* NLMS0 functionality
17617+* @see LVNV_ModeWord_bm
17618+*/
17619+#define MODE_NLMS0 ((LVNV_ModeWord_bm)1)
17620+/**
17621+* @def MODE_NLMS1
17622+* NLMS1 functionality
17623+* @see LVNV_ModeWord_bm
17624+*/
17625+#define MODE_NLMS1 ((LVNV_ModeWord_bm)2)
17626+/**
17627+* @def MODE_BEAMFORMER
17628+* Fiter-and-Sum Beamformer functionality
17629+* @see LVNV_ModeWord_bm
17630+*/
17631+#define MODE_BEAMFORMER ((LVNV_ModeWord_bm)4)
17632+/**
17633+* @def MODE_PCD
17634+* Switch between PCD (Path change detector) and BSD (Broadside detector)
17635+* @see LVNV_ModeWord_bm
17636+*/
17637+#define MODE_PCD ((LVNV_ModeWord_bm)8)
17638+/**
17639+* @def MODE_GSC
17640+* Generalized Sidelobe Canceller functionality
17641+* @see LVNV_ModeWord_bm
17642+*/
17643+#define MODE_GSC ((LVNV_ModeWord_bm)16)
17644+/**
17645+* @def MODE_DNNS
17646+* Dynamic Non-stationary Noise Suppression functionality
17647+* @see LVNV_ModeWord_bm
17648+*/
17649+#define MODE_DNNS ((LVNV_ModeWord_bm)32)
17650+/**
17651+* @def MODE_DES
17652+* Dynamic Echo Suppression functionality
17653+* @see LVNV_ModeWord_bm
17654+*/
17655+#define MODE_DES ((LVNV_ModeWord_bm)64)
17656+/**
17657+* @def MODE_NS
17658+* Stationary Noise Suppression functionality
17659+* @see LVNV_ModeWord_bm
17660+*/
17661+#define MODE_NS ((LVNV_ModeWord_bm)128)
17662+/**
17663+* @def MODE_NS_N
17664+* Non-stationary Noise Suppression functionality
17665+* @see LVNV_ModeWord_bm
17666+*/
17667+#define MODE_NS_N ((LVNV_ModeWord_bm)256)
17668+/**
17669+* @def MODE_CAL
17670+* Switch between initial or continuous calibration
17671+* @see LVNV_ModeWord_bm
17672+*/
17673+#define MODE_CAL ((LVNV_ModeWord_bm)2048)
17674+/**
17675+* @def MODE_HB
17676+* High Band mute/activated
17677+* @see LVNV_ModeWord_bm
17678+*/
17679+#define MODE_HB ((LVNV_ModeWord_bm)16384)
17680+/**
17681+* @def MODE_HS
17682+* Horn Suppressor functionality (if available)
17683+* @see LVNV_ModeWord_bm
17684+*/
17685+#define MODE_HS ((LVNV_ModeWord_bm)32768)
17686+/**
17687+* @def LVNV_MODEWORD_BM_MIN
17688+* Minimal value for LVNV_ModeWord_bm
17689+* @see LVNV_ModeWord_bm
17690+*/
17691+#define LVNV_MODEWORD_BM_MIN ((LVNV_ModeWord_bm)0)
17692+/**
17693+* @def LVNV_MODEWORD_BM_MAX
17694+* Maximal value for LVNV_ModeWord_bm
17695+* @see LVNV_ModeWord_bm
17696+*/
17697+#define MODE_NLMS0_FORMAX ((LVNV_ModeWord_bm)1)
17698+#define MODE_NLMS1_FORMAX ((LVNV_ModeWord_bm)2)
17699+#define MODE_BEAMFORMER_FORMAX ((LVNV_ModeWord_bm)4)
17700+#define MODE_PCD_FORMAX ((LVNV_ModeWord_bm)8)
17701+#define MODE_GSC_FORMAX ((LVNV_ModeWord_bm)16)
17702+#define MODE_DNNS_FORMAX ((LVNV_ModeWord_bm)32)
17703+#define MODE_DES_FORMAX ((LVNV_ModeWord_bm)64)
17704+#define MODE_NS_FORMAX ((LVNV_ModeWord_bm)128)
17705+#define MODE_NS_N_FORMAX ((LVNV_ModeWord_bm)256)
17706+#define MODE_CAL_FORMAX ((LVNV_ModeWord_bm)2048)
17707+#define MODE_HB_FORMAX ((LVNV_ModeWord_bm)16384)
17708+#define MODE_HS_FORMAX ((LVNV_ModeWord_bm)32768)
17709+#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))
17710+/**
17711+<table border>
17712+ <tr>
17713+ <td><b>Name</b></td>
17714+ <td><b>Value</b></td>
17715+ <td><b>Description</b></td>
17716+ </tr>
17717+ <tr>
17718+ <td>@ref MODE2_FSB_CARDIOID</td>
17719+ <td>1</td>
17720+ <td>FSB update based on speech detection in cardioid</td>
17721+ </tr>
17722+ <tr>
17723+ <td>@ref MODE2_FSB_WITHINBEAM</td>
17724+ <td>2</td>
17725+ <td>FSB update based on withinbeam detection</td>
17726+ </tr>
17727+ <tr>
17728+ <td>@ref MODE2_CAL_UPDATE</td>
17729+ <td>4</td>
17730+ <td>Switch for calibration functionality between updated or not-updated</td>
17731+ </tr>
17732+ <tr>
17733+ <td>@ref MODE2_BEAMDAMAGE</td>
17734+ <td>8</td>
17735+ <td>Microphone coverage protection</td>
17736+ </tr>
17737+</table> */
17738+typedef LVM_UINT16 LVNV_Mode2Word_bm;
17739+/**
17740+* @def MODE2_FSB_CARDIOID
17741+* FSB update based on speech detection in cardioid
17742+* @see LVNV_Mode2Word_bm
17743+*/
17744+#define MODE2_FSB_CARDIOID ((LVNV_Mode2Word_bm)1)
17745+/**
17746+* @def MODE2_FSB_WITHINBEAM
17747+* FSB update based on withinbeam detection
17748+* @see LVNV_Mode2Word_bm
17749+*/
17750+#define MODE2_FSB_WITHINBEAM ((LVNV_Mode2Word_bm)2)
17751+/**
17752+* @def MODE2_CAL_UPDATE
17753+* Switch for calibration functionality between updated or not-updated
17754+* @see LVNV_Mode2Word_bm
17755+*/
17756+#define MODE2_CAL_UPDATE ((LVNV_Mode2Word_bm)4)
17757+/**
17758+* @def MODE2_BEAMDAMAGE
17759+* Microphone coverage protection
17760+* @see LVNV_Mode2Word_bm
17761+*/
17762+#define MODE2_BEAMDAMAGE ((LVNV_Mode2Word_bm)8)
17763+/**
17764+* @def LVNV_MODE2WORD_BM_MIN
17765+* Minimal value for LVNV_Mode2Word_bm
17766+* @see LVNV_Mode2Word_bm
17767+*/
17768+#define LVNV_MODE2WORD_BM_MIN ((LVNV_Mode2Word_bm)0)
17769+/**
17770+* @def LVNV_MODE2WORD_BM_MAX
17771+* Maximal value for LVNV_Mode2Word_bm
17772+* @see LVNV_Mode2Word_bm
17773+*/
17774+#define MODE2_FSB_CARDIOID_FORMAX ((LVNV_Mode2Word_bm)1)
17775+#define MODE2_FSB_WITHINBEAM_FORMAX ((LVNV_Mode2Word_bm)2)
17776+#define MODE2_CAL_UPDATE_FORMAX ((LVNV_Mode2Word_bm)4)
17777+#define MODE2_BEAMDAMAGE_FORMAX ((LVNV_Mode2Word_bm)8)
17778+#define LVNV_MODE2WORD_BM_MAX (MODE2_FSB_CARDIOID_FORMAX | MODE2_FSB_WITHINBEAM_FORMAX | MODE2_CAL_UPDATE_FORMAX | MODE2_BEAMDAMAGE_FORMAX | ((LVNV_Mode2Word_bm)0))
17779+/**
17780+<table border>
17781+ <tr>
17782+ <td><b>Name</b></td>
17783+ <td><b>Value</b></td>
17784+ <td><b>Description</b></td>
17785+ </tr>
17786+ <tr>
17787+ <td>@ref TUNING_MODE_NLMS1</td>
17788+ <td>1</td>
17789+ <td>NLMS1 output</td>
17790+ </tr>
17791+ <tr>
17792+ <td>@ref TUNING_MODE_FSB</td>
17793+ <td>2</td>
17794+ <td>FSB noise reference output</td>
17795+ </tr>
17796+ <tr>
17797+ <td>@ref TUNING_MODE_WITHINBEAM</td>
17798+ <td>8</td>
17799+ <td>Tuning beep when Withinbeam=1</td>
17800+ </tr>
17801+ <tr>
17802+ <td>@ref TUNING_MODE_UPDATEONOFF</td>
17803+ <td>16</td>
17804+ <td>Tuning beep when FSB is updated</td>
17805+ </tr>
17806+ <tr>
17807+ <td>@ref TUNING_MODE_CAL_MICPOW</td>
17808+ <td>64</td>
17809+ <td>Tuning beep when MicPow is lower than Cal_micPowFloorMin</td>
17810+ </tr>
17811+ <tr>
17812+ <td>@ref TUNING_MODE_BROADSIDE</td>
17813+ <td>128</td>
17814+ <td>Tuning beep when broadside is detected</td>
17815+ </tr>
17816+</table> */
17817+typedef LVM_UINT16 LVNV_TuningModeWord_bm;
17818+/**
17819+* @def TUNING_MODE_NLMS1
17820+* NLMS1 output
17821+* @see LVNV_TuningModeWord_bm
17822+*/
17823+#define TUNING_MODE_NLMS1 ((LVNV_TuningModeWord_bm)1)
17824+/**
17825+* @def TUNING_MODE_FSB
17826+* FSB noise reference output
17827+* @see LVNV_TuningModeWord_bm
17828+*/
17829+#define TUNING_MODE_FSB ((LVNV_TuningModeWord_bm)2)
17830+/**
17831+* @def TUNING_MODE_WITHINBEAM
17832+* Tuning beep when Withinbeam=1
17833+* @see LVNV_TuningModeWord_bm
17834+*/
17835+#define TUNING_MODE_WITHINBEAM ((LVNV_TuningModeWord_bm)8)
17836+/**
17837+* @def TUNING_MODE_UPDATEONOFF
17838+* Tuning beep when FSB is updated
17839+* @see LVNV_TuningModeWord_bm
17840+*/
17841+#define TUNING_MODE_UPDATEONOFF ((LVNV_TuningModeWord_bm)16)
17842+/**
17843+* @def TUNING_MODE_CAL_MICPOW
17844+* Tuning beep when MicPow is lower than Cal_micPowFloorMin
17845+* @see LVNV_TuningModeWord_bm
17846+*/
17847+#define TUNING_MODE_CAL_MICPOW ((LVNV_TuningModeWord_bm)64)
17848+/**
17849+* @def TUNING_MODE_BROADSIDE
17850+* Tuning beep when broadside is detected
17851+* @see LVNV_TuningModeWord_bm
17852+*/
17853+#define TUNING_MODE_BROADSIDE ((LVNV_TuningModeWord_bm)128)
17854+/**
17855+* @def LVNV_TUNINGMODEWORD_BM_MIN
17856+* Minimal value for LVNV_TuningModeWord_bm
17857+* @see LVNV_TuningModeWord_bm
17858+*/
17859+#define LVNV_TUNINGMODEWORD_BM_MIN ((LVNV_TuningModeWord_bm)0)
17860+/**
17861+* @def LVNV_TUNINGMODEWORD_BM_MAX
17862+* Maximal value for LVNV_TuningModeWord_bm
17863+* @see LVNV_TuningModeWord_bm
17864+*/
17865+#define TUNING_MODE_NLMS1_FORMAX ((LVNV_TuningModeWord_bm)1)
17866+#define TUNING_MODE_FSB_FORMAX ((LVNV_TuningModeWord_bm)2)
17867+#define TUNING_MODE_WITHINBEAM_FORMAX ((LVNV_TuningModeWord_bm)8)
17868+#define TUNING_MODE_UPDATEONOFF_FORMAX ((LVNV_TuningModeWord_bm)16)
17869+#define TUNING_MODE_CAL_MICPOW_FORMAX ((LVNV_TuningModeWord_bm)64)
17870+#define TUNING_MODE_BROADSIDE_FORMAX ((LVNV_TuningModeWord_bm)128)
17871+#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))
17872+/**
17873+<table border>
17874+ <tr>
17875+ <td><b>Name</b></td>
17876+ <td><b>Value</b></td>
17877+ <td><b>Description</b></td>
17878+ </tr>
17879+ <tr>
17880+ <td>@ref LVNV_STATUS_LOST_BEAM</td>
17881+ <td>1</td>
17882+ <td>LostBeam detections</td>
17883+ </tr>
17884+ <tr>
17885+ <td>@ref LVNV_STATUS_MIC_COV</td>
17886+ <td>2</td>
17887+ <td>Microphone Coverage detections</td>
17888+ </tr>
17889+ <tr>
17890+ <td>@ref LVNV_STATUS_FSB_UPDATE</td>
17891+ <td>4</td>
17892+ <td>FSB updates</td>
17893+ </tr>
17894+ <tr>
17895+ <td>@ref LVNV_STATUS_BEAM_DAMAGE</td>
17896+ <td>8</td>
17897+ <td>BeamDamage detections</td>
17898+ </tr>
17899+ <tr>
17900+ <td>@ref LVNV_STATUS_GSC_UPDATE</td>
17901+ <td>16</td>
17902+ <td>GSC updates</td>
17903+ </tr>
17904+ <tr>
17905+ <td>@ref LVNV_STATUS_DNNS_WBEAM</td>
17906+ <td>32</td>
17907+ <td>DNNS WithinBeam detections</td>
17908+ </tr>
17909+ <tr>
17910+ <td>@ref LVNV_STATUS_DNNS_ACTIVITY</td>
17911+ <td>64</td>
17912+ <td>DNNS activity detections</td>
17913+ </tr>
17914+ <tr>
17915+ <td>@ref LVNV_STATUS_CAL_MICPOW</td>
17916+ <td>128</td>
17917+ <td>Calibration Microphone Power</td>
17918+ </tr>
17919+ <tr>
17920+ <td>@ref LVNV_STATUS_MICPOWSP</td>
17921+ <td>256</td>
17922+ <td>(LV1008) MicPow Speech detections</td>
17923+ </tr>
17924+ <tr>
17925+ <td>@ref LVNV_STATUS_BROADSIDE_FLAG</td>
17926+ <td>512</td>
17927+ <td>(LV2370) Broadside detection flag</td>
17928+ </tr>
17929+ <tr>
17930+ <td>@ref LVNV_STATUS_CAL_UPDATED</td>
17931+ <td>1024</td>
17932+ <td>(LV8237) Calibration updated flag</td>
17933+ </tr>
17934+ <tr>
17935+ <td>@ref LVNV_STATUS_WBEAM_FIX</td>
17936+ <td>2048</td>
17937+ <td>WithinBeam detection for Fixed Beamformer (if available).</td>
17938+ </tr>
17939+</table> */
17940+typedef LVM_UINT16 LVNV_StatusWord_bm;
17941+/**
17942+* @def LVNV_STATUS_LOST_BEAM
17943+* LostBeam detections
17944+* @see LVNV_StatusWord_bm
17945+*/
17946+#define LVNV_STATUS_LOST_BEAM ((LVNV_StatusWord_bm)1)
17947+/**
17948+* @def LVNV_STATUS_MIC_COV
17949+* Microphone Coverage detections
17950+* @see LVNV_StatusWord_bm
17951+*/
17952+#define LVNV_STATUS_MIC_COV ((LVNV_StatusWord_bm)2)
17953+/**
17954+* @def LVNV_STATUS_FSB_UPDATE
17955+* FSB updates
17956+* @see LVNV_StatusWord_bm
17957+*/
17958+#define LVNV_STATUS_FSB_UPDATE ((LVNV_StatusWord_bm)4)
17959+/**
17960+* @def LVNV_STATUS_BEAM_DAMAGE
17961+* BeamDamage detections
17962+* @see LVNV_StatusWord_bm
17963+*/
17964+#define LVNV_STATUS_BEAM_DAMAGE ((LVNV_StatusWord_bm)8)
17965+/**
17966+* @def LVNV_STATUS_GSC_UPDATE
17967+* GSC updates
17968+* @see LVNV_StatusWord_bm
17969+*/
17970+#define LVNV_STATUS_GSC_UPDATE ((LVNV_StatusWord_bm)16)
17971+/**
17972+* @def LVNV_STATUS_DNNS_WBEAM
17973+* DNNS WithinBeam detections
17974+* @see LVNV_StatusWord_bm
17975+*/
17976+#define LVNV_STATUS_DNNS_WBEAM ((LVNV_StatusWord_bm)32)
17977+/**
17978+* @def LVNV_STATUS_DNNS_ACTIVITY
17979+* DNNS activity detections
17980+* @see LVNV_StatusWord_bm
17981+*/
17982+#define LVNV_STATUS_DNNS_ACTIVITY ((LVNV_StatusWord_bm)64)
17983+/**
17984+* @def LVNV_STATUS_CAL_MICPOW
17985+* Calibration Microphone Power
17986+* @see LVNV_StatusWord_bm
17987+*/
17988+#define LVNV_STATUS_CAL_MICPOW ((LVNV_StatusWord_bm)128)
17989+/**
17990+* @def LVNV_STATUS_MICPOWSP
17991+* (LV1008) MicPow Speech detections
17992+* @see LVNV_StatusWord_bm
17993+*/
17994+#define LVNV_STATUS_MICPOWSP ((LVNV_StatusWord_bm)256)
17995+/**
17996+* @def LVNV_STATUS_BROADSIDE_FLAG
17997+* (LV2370) Broadside detection flag
17998+* @see LVNV_StatusWord_bm
17999+*/
18000+#define LVNV_STATUS_BROADSIDE_FLAG ((LVNV_StatusWord_bm)512)
18001+/**
18002+* @def LVNV_STATUS_CAL_UPDATED
18003+* (LV8237) Calibration updated flag
18004+* @see LVNV_StatusWord_bm
18005+*/
18006+#define LVNV_STATUS_CAL_UPDATED ((LVNV_StatusWord_bm)1024)
18007+/**
18008+* @def LVNV_STATUS_WBEAM_fix
18009+* WithinBeam detection for Fixed Beamformer (if available).
18010+* @see LVNV_StatusWord_bm
18011+*/
18012+#define LVNV_STATUS_WBEAM_FIX ((LVNV_StatusWord_bm)2048)
18013+/**
18014+* @def LVNV_STATUSWORD_BM_MIN
18015+* Minimal value for LVNV_StatusWord_bm
18016+* @see LVNV_StatusWord_bm
18017+*/
18018+#define LVNV_STATUSWORD_BM_MIN ((LVNV_StatusWord_bm)0)
18019+/**
18020+* @def LVNV_STATUSWORD_BM_MAX
18021+* Maximal value for LVNV_StatusWord_bm
18022+* @see LVNV_StatusWord_bm
18023+*/
18024+#define LVNV_STATUS_LOST_BEAM_FORMAX ((LVNV_StatusWord_bm)1)
18025+#define LVNV_STATUS_MIC_COV_FORMAX ((LVNV_StatusWord_bm)2)
18026+#define LVNV_STATUS_FSB_UPDATE_FORMAX ((LVNV_StatusWord_bm)4)
18027+#define LVNV_STATUS_BEAM_DAMAGE_FORMAX ((LVNV_StatusWord_bm)8)
18028+#define LVNV_STATUS_GSC_UPDATE_FORMAX ((LVNV_StatusWord_bm)16)
18029+#define LVNV_STATUS_DNNS_WBEAM_FORMAX ((LVNV_StatusWord_bm)32)
18030+#define LVNV_STATUS_DNNS_ACTIVITY_FORMAX ((LVNV_StatusWord_bm)64)
18031+#define LVNV_STATUS_CAL_MICPOW_FORMAX ((LVNV_StatusWord_bm)128)
18032+#define LVNV_STATUS_MICPOWSP_FORMAX ((LVNV_StatusWord_bm)256)
18033+#define LVNV_STATUS_BROADSIDE_FLAG_FORMAX ((LVNV_StatusWord_bm)512)
18034+#define LVNV_STATUS_CAL_UPDATED_FORMAX ((LVNV_StatusWord_bm)1024)
18035+#define LVNV_STATUS_WBEAM_FIX_FORMAX ((LVNV_StatusWord_bm)2048)
18036+#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))
18037+/**
18038+<table border>
18039+ <tr>
18040+ <td><b>Name</b></td>
18041+ <td><b>Value</b></td>
18042+ <td><b>Description</b></td>
18043+ </tr>
18044+ <tr>
18045+ <td>@ref LVHF_CONTROL_TUNE_PATHCHANGE</td>
18046+ <td>1</td>
18047+ <td>PCD tuning beep</td>
18048+ </tr>
18049+ <tr>
18050+ <td>@ref LVHF_CONTROL_TUNE_CLIP</td>
18051+ <td>2</td>
18052+ <td>SPDET_x_clip tuning beep</td>
18053+ </tr>
18054+ <tr>
18055+ <td>@ref LVHF_CONTROL_TUNE_FAR_SPEAKS</td>
18056+ <td>4</td>
18057+ <td>SPDET_far tuning beep</td>
18058+ </tr>
18059+ <tr>
18060+ <td>@ref LVHF_CONTROL_TUNE_MIC_SPEAKS</td>
18061+ <td>8</td>
18062+ <td>SPDET_mic tuning beep</td>
18063+ </tr>
18064+ <tr>
18065+ <td>@ref LVHF_CONTROL_TUNE_HB_MUTE</td>
18066+ <td>16</td>
18067+ <td>Mute high band (4kHz-8kHz). Should be disabled by default.</td>
18068+ </tr>
18069+ <tr>
18070+ <td>@ref LVHF_CONTROL_TUNE_TB_MUTE</td>
18071+ <td>32</td>
18072+ <td>Mute top band (above 8kHz). Should be disabled by default.</td>
18073+ </tr>
18074+</table> */
18075+typedef LVM_UINT16 LVHF_TuningModeWord;
18076+/**
18077+* @def LVHF_CONTROL_TUNE_PATHCHANGE
18078+* PCD tuning beep
18079+* @see LVHF_TuningModeWord
18080+*/
18081+#define LVHF_CONTROL_TUNE_PATHCHANGE ((LVHF_TuningModeWord)1)
18082+/**
18083+* @def LVHF_CONTROL_TUNE_CLIP
18084+* SPDET_x_clip tuning beep
18085+* @see LVHF_TuningModeWord
18086+*/
18087+#define LVHF_CONTROL_TUNE_CLIP ((LVHF_TuningModeWord)2)
18088+/**
18089+* @def LVHF_CONTROL_TUNE_FAR_SPEAKS
18090+* SPDET_far tuning beep
18091+* @see LVHF_TuningModeWord
18092+*/
18093+#define LVHF_CONTROL_TUNE_FAR_SPEAKS ((LVHF_TuningModeWord)4)
18094+/**
18095+* @def LVHF_CONTROL_TUNE_MIC_SPEAKS
18096+* SPDET_mic tuning beep
18097+* @see LVHF_TuningModeWord
18098+*/
18099+#define LVHF_CONTROL_TUNE_MIC_SPEAKS ((LVHF_TuningModeWord)8)
18100+/**
18101+* @def LVHF_CONTROL_TUNE_HB_MUTE
18102+* Mute high band (4kHz-8kHz). Should be disabled by default.
18103+* @see LVHF_TuningModeWord
18104+*/
18105+#define LVHF_CONTROL_TUNE_HB_MUTE ((LVHF_TuningModeWord)16)
18106+/**
18107+* @def LVHF_CONTROL_TUNE_TB_MUTE
18108+* Mute top band (above 8kHz). Should be disabled by default.
18109+* @see LVHF_TuningModeWord
18110+*/
18111+#define LVHF_CONTROL_TUNE_TB_MUTE ((LVHF_TuningModeWord)32)
18112+/**
18113+* @def LVHF_TUNINGMODEWORD_MIN
18114+* Minimal value for LVHF_TuningModeWord
18115+* @see LVHF_TuningModeWord
18116+*/
18117+#define LVHF_TUNINGMODEWORD_MIN ((LVHF_TuningModeWord)0)
18118+/**
18119+* @def LVHF_TUNINGMODEWORD_MAX
18120+* Maximal value for LVHF_TuningModeWord
18121+* @see LVHF_TuningModeWord
18122+*/
18123+#define LVHF_CONTROL_TUNE_PATHCHANGE_FORMAX ((LVHF_TuningModeWord)1)
18124+#define LVHF_CONTROL_TUNE_CLIP_FORMAX ((LVHF_TuningModeWord)2)
18125+#define LVHF_CONTROL_TUNE_FAR_SPEAKS_FORMAX ((LVHF_TuningModeWord)4)
18126+#define LVHF_CONTROL_TUNE_MIC_SPEAKS_FORMAX ((LVHF_TuningModeWord)8)
18127+#define LVHF_CONTROL_TUNE_HB_MUTE_FORMAX ((LVHF_TuningModeWord)16)
18128+#define LVHF_CONTROL_TUNE_TB_MUTE_FORMAX ((LVHF_TuningModeWord)32)
18129+#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))
18130+/**
18131+<table border>
18132+ <tr>
18133+ <td><b>Name</b></td>
18134+ <td><b>Value</b></td>
18135+ <td><b>Description</b></td>
18136+ </tr>
18137+ <tr>
18138+ <td>@ref LVHF_MODE_NLMS</td>
18139+ <td>1</td>
18140+ <td>NLMS functionality</td>
18141+ </tr>
18142+ <tr>
18143+ <td>@ref LVHF_MODE_DES</td>
18144+ <td>2</td>
18145+ <td>DES (Dynamic Echo Suppression)</td>
18146+ </tr>
18147+ <tr>
18148+ <td>@ref LVHF_MODE_NS</td>
18149+ <td>4</td>
18150+ <td>NS (Noise Suppression)</td>
18151+ </tr>
18152+ <tr>
18153+ <td>@ref LVHF_MODE_CNI</td>
18154+ <td>8</td>
18155+ <td>CNI (Comfort Noise Injection)</td>
18156+ </tr>
18157+ <tr>
18158+ <td>@ref LVHF_MODE_NLES</td>
18159+ <td>16</td>
18160+ <td>NLES (Non Linear Echo Suppression)</td>
18161+ </tr>
18162+ <tr>
18163+ <td>@ref LVHF_MODE_PCD_DT</td>
18164+ <td>64</td>
18165+ <td>DT (Double Talk) protection after PCD</td>
18166+ </tr>
18167+ <tr>
18168+ <td>@ref LVHF_MODE_PCD</td>
18169+ <td>128</td>
18170+ <td>PCD (Path Change Detector)</td>
18171+ </tr>
18172+ <tr>
18173+ <td>@ref LVHF_MODE_INIT_ES</td>
18174+ <td>256</td>
18175+ <td>Initial echo suppression setting by PCD_gamma_e_rescue</td>
18176+ </tr>
18177+ <tr>
18178+ <td>@ref LVHF_MODE_HS</td>
18179+ <td>512</td>
18180+ <td>HornSuppression (if available)</td>
18181+ </tr>
18182+ <tr>
18183+ <td>@ref LVHF_MODE_PRENLMS</td>
18184+ <td>4096</td>
18185+ <td>Pre-NLMS preprocessing</td>
18186+ </tr>
18187+</table> */
18188+typedef LVM_UINT16 LVHF_ModeWord_bm;
18189+/**
18190+* @def LVHF_MODE_NLMS
18191+* NLMS functionality
18192+* @see LVHF_ModeWord_bm
18193+*/
18194+#define LVHF_MODE_NLMS ((LVHF_ModeWord_bm)1)
18195+/**
18196+* @def LVHF_MODE_DES
18197+* DES (Dynamic Echo Suppression)
18198+* @see LVHF_ModeWord_bm
18199+*/
18200+#define LVHF_MODE_DES ((LVHF_ModeWord_bm)2)
18201+/**
18202+* @def LVHF_MODE_NS
18203+* NS (Noise Suppression)
18204+* @see LVHF_ModeWord_bm
18205+*/
18206+#define LVHF_MODE_NS ((LVHF_ModeWord_bm)4)
18207+/**
18208+* @def LVHF_MODE_CNI
18209+* CNI (Comfort Noise Injection)
18210+* @see LVHF_ModeWord_bm
18211+*/
18212+#define LVHF_MODE_CNI ((LVHF_ModeWord_bm)8)
18213+/**
18214+* @def LVHF_MODE_NLES
18215+* NLES (Non Linear Echo Suppression)
18216+* @see LVHF_ModeWord_bm
18217+*/
18218+#define LVHF_MODE_NLES ((LVHF_ModeWord_bm)16)
18219+/**
18220+* @def LVHF_MODE_PCD_DT
18221+* DT (Double Talk) protection after PCD
18222+* @see LVHF_ModeWord_bm
18223+*/
18224+#define LVHF_MODE_PCD_DT ((LVHF_ModeWord_bm)64)
18225+/**
18226+* @def LVHF_MODE_PCD
18227+* PCD (Path Change Detector)
18228+* @see LVHF_ModeWord_bm
18229+*/
18230+#define LVHF_MODE_PCD ((LVHF_ModeWord_bm)128)
18231+/**
18232+* @def LVHF_MODE_INIT_ES
18233+* Initial echo suppression setting by PCD_gamma_e_rescue
18234+* @see LVHF_ModeWord_bm
18235+*/
18236+#define LVHF_MODE_INIT_ES ((LVHF_ModeWord_bm)256)
18237+/**
18238+* @def LVHF_MODE_HS
18239+* HornSuppression (if available)
18240+* @see LVHF_ModeWord_bm
18241+*/
18242+#define LVHF_MODE_HS ((LVHF_ModeWord_bm)512)
18243+/**
18244+* @def LVHF_MODE_PRENLMS
18245+* Pre-NLMS preprocessing
18246+* @see LVHF_ModeWord_bm
18247+*/
18248+#define LVHF_MODE_PRENLMS ((LVHF_ModeWord_bm)4096)
18249+/**
18250+* @def LVHF_MODEWORD_BM_MIN
18251+* Minimal value for LVHF_ModeWord_bm
18252+* @see LVHF_ModeWord_bm
18253+*/
18254+#define LVHF_MODEWORD_BM_MIN ((LVHF_ModeWord_bm)0)
18255+/**
18256+* @def LVHF_MODEWORD_BM_MAX
18257+* Maximal value for LVHF_ModeWord_bm
18258+* @see LVHF_ModeWord_bm
18259+*/
18260+#define LVHF_MODE_NLMS_FORMAX ((LVHF_ModeWord_bm)1)
18261+#define LVHF_MODE_DES_FORMAX ((LVHF_ModeWord_bm)2)
18262+#define LVHF_MODE_NS_FORMAX ((LVHF_ModeWord_bm)4)
18263+#define LVHF_MODE_CNI_FORMAX ((LVHF_ModeWord_bm)8)
18264+#define LVHF_MODE_NLES_FORMAX ((LVHF_ModeWord_bm)16)
18265+#define LVHF_MODE_PCD_DT_FORMAX ((LVHF_ModeWord_bm)64)
18266+#define LVHF_MODE_PCD_FORMAX ((LVHF_ModeWord_bm)128)
18267+#define LVHF_MODE_INIT_ES_FORMAX ((LVHF_ModeWord_bm)256)
18268+#define LVHF_MODE_HS_FORMAX ((LVHF_ModeWord_bm)512)
18269+#define LVHF_MODE_PRENLMS_FORMAX ((LVHF_ModeWord_bm)4096)
18270+#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))
18271+/**
18272+<table border>
18273+ <tr>
18274+ <td><b>Name</b></td>
18275+ <td><b>Value</b></td>
18276+ <td><b>Description</b></td>
18277+ </tr>
18278+ <tr>
18279+ <td>@ref LVHF_STATUS_FAR_SPEAKS</td>
18280+ <td>1</td>
18281+ <td>FarEnd is speaking</td>
18282+ </tr>
18283+ <tr>
18284+ <td>@ref LVHF_STATUS_FAR_STARTS</td>
18285+ <td>2</td>
18286+ <td>FarEnd starts to speak</td>
18287+ </tr>
18288+ <tr>
18289+ <td>@ref LVHF_STATUS_MIC_SPEAKS</td>
18290+ <td>4</td>
18291+ <td>Mic activity detected</td>
18292+ </tr>
18293+ <tr>
18294+ <td>@ref LVHF_STATUS_CLIP</td>
18295+ <td>8</td>
18296+ <td>Clipping Detected</td>
18297+ </tr>
18298+ <tr>
18299+ <td>@ref LVHF_STATUS_PATHCHANGE</td>
18300+ <td>16</td>
18301+ <td>Path Change detected</td>
18302+ </tr>
18303+</table> */
18304+typedef LVM_UINT16 LVHF_StatusWord_bm;
18305+/**
18306+* @def LVHF_STATUS_FAR_SPEAKS
18307+* FarEnd is speaking
18308+* @see LVHF_StatusWord_bm
18309+*/
18310+#define LVHF_STATUS_FAR_SPEAKS ((LVHF_StatusWord_bm)1)
18311+/**
18312+* @def LVHF_STATUS_FAR_STARTS
18313+* FarEnd starts to speak
18314+* @see LVHF_StatusWord_bm
18315+*/
18316+#define LVHF_STATUS_FAR_STARTS ((LVHF_StatusWord_bm)2)
18317+/**
18318+* @def LVHF_STATUS_MIC_SPEAKS
18319+* Mic activity detected
18320+* @see LVHF_StatusWord_bm
18321+*/
18322+#define LVHF_STATUS_MIC_SPEAKS ((LVHF_StatusWord_bm)4)
18323+/**
18324+* @def LVHF_STATUS_CLIP
18325+* Clipping Detected
18326+* @see LVHF_StatusWord_bm
18327+*/
18328+#define LVHF_STATUS_CLIP ((LVHF_StatusWord_bm)8)
18329+/**
18330+* @def LVHF_STATUS_PATHCHANGE
18331+* Path Change detected
18332+* @see LVHF_StatusWord_bm
18333+*/
18334+#define LVHF_STATUS_PATHCHANGE ((LVHF_StatusWord_bm)16)
18335+/**
18336+* @def LVHF_STATUSWORD_BM_MIN
18337+* Minimal value for LVHF_StatusWord_bm
18338+* @see LVHF_StatusWord_bm
18339+*/
18340+#define LVHF_STATUSWORD_BM_MIN ((LVHF_StatusWord_bm)0)
18341+/**
18342+* @def LVHF_STATUSWORD_BM_MAX
18343+* Maximal value for LVHF_StatusWord_bm
18344+* @see LVHF_StatusWord_bm
18345+*/
18346+#define LVHF_STATUS_FAR_SPEAKS_FORMAX ((LVHF_StatusWord_bm)1)
18347+#define LVHF_STATUS_FAR_STARTS_FORMAX ((LVHF_StatusWord_bm)2)
18348+#define LVHF_STATUS_MIC_SPEAKS_FORMAX ((LVHF_StatusWord_bm)4)
18349+#define LVHF_STATUS_CLIP_FORMAX ((LVHF_StatusWord_bm)8)
18350+#define LVHF_STATUS_PATHCHANGE_FORMAX ((LVHF_StatusWord_bm)16)
18351+#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))
18352+
18353+#define LVVIDHEADER_LVVE_RX_MASK1_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVIDHeader_LVVE_Rx_Mask1_bm in LVWireFormat.
18354+
18355+#define LVVIDHEADER_LVVE_RX_MASK2_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVIDHeader_LVVE_Rx_Mask2_bm in LVWireFormat.
18356+
18357+#define LVVIDHEADER_LVVE_TX_MASK1_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVIDHeader_LVVE_Tx_Mask1_bm in LVWireFormat.
18358+
18359+#define LVVIDHEADER_LVVE_TX_MASK2_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVIDHeader_LVVE_Tx_Mask2_bm in LVWireFormat.
18360+
18361+#define LVVIDHEADER_CONFIGURATIONS_MASK1_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVIDHeader_Configurations_Mask1_bm in LVWireFormat.
18362+
18363+#define LVVIDHEADER_CONFIGURATIONS_MASK2_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVIDHeader_Configurations_Mask2_bm in LVWireFormat.
18364+
18365+#define LVVC_MODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVVC_ModeWord_bm in LVWireFormat.
18366+
18367+#define LVFENS_MODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVFENS_ModeWord_bm in LVWireFormat.
18368+
18369+#define LVWM_MODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVWM_ModeWord_bm in LVWireFormat.
18370+
18371+#define LVNV_MODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVNV_ModeWord_bm in LVWireFormat.
18372+
18373+#define LVNV_MODE2WORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVNV_Mode2Word_bm in LVWireFormat.
18374+
18375+#define LVNV_TUNINGMODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVNV_TuningModeWord_bm in LVWireFormat.
18376+
18377+#define LVNV_STATUSWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVNV_StatusWord_bm in LVWireFormat.
18378+
18379+#define LVHF_TUNINGMODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVHF_TuningModeWord in LVWireFormat.
18380+
18381+#define LVHF_MODEWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVHF_ModeWord_bm in LVWireFormat.
18382+
18383+#define LVHF_STATUSWORD_LVWIREFORMAT_LENGTH (2) ///< Number of bytes to encode @ref LVHF_StatusWord_bm in LVWireFormat.
18384+
18385+#define LVM_MODE_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVM_Mode_en in LVWireFormat.
18386+
18387+#define LVM_CONFIG_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVM_Config_en in LVWireFormat.
18388+
18389+#define LVM_FS_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVM_Fs_en in LVWireFormat.
18390+
18391+#define LVVIDHEADER_MESSAGEID_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVVIDHeader_MessageID_en in LVWireFormat.
18392+
18393+#define LVVIDHEADER_RETURNSTATUS_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVVIDHeader_ReturnStatus_en in LVWireFormat.
18394+
18395+#define LVVE_RX_MODE_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVVE_Rx_Mode_en in LVWireFormat.
18396+
18397+#define LVVE_TX_MODE_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode @ref LVVE_Tx_Mode_en in LVWireFormat.
18398+
18399+#define LVVIDHEADER_CONTROLPARAMS_LVWIREFORMAT_LENGTH (7 \
18400+ + LVVIDHEADER_LVVE_RX_MASK1_LVWIREFORMAT_LENGTH \
18401+ + LVVIDHEADER_LVVE_RX_MASK2_LVWIREFORMAT_LENGTH \
18402+ + LVVIDHEADER_LVVE_TX_MASK1_LVWIREFORMAT_LENGTH \
18403+ + LVVIDHEADER_LVVE_TX_MASK2_LVWIREFORMAT_LENGTH \
18404+ + LVVIDHEADER_CONFIGURATIONS_MASK1_LVWIREFORMAT_LENGTH \
18405+ + LVVIDHEADER_CONFIGURATIONS_MASK2_LVWIREFORMAT_LENGTH \
18406+ + LVVIDHEADER_MESSAGEID_LVWIREFORMAT_LENGTH \
18407+ + LVM_FS_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVVIDHeader ControlParameters in LVWireFormat.
18408+
18409+#define LVVC_CONTROLPARAMS_LVWIREFORMAT_LENGTH (22 \
18410+ + LVM_MODE_LVWIREFORMAT_LENGTH \
18411+ + LVVC_MODEWORD_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVVC ControlParameters in LVWireFormat.
18412+
18413+#define LVFENS_CONTROLPARAMS_LVWIREFORMAT_LENGTH (2 \
18414+ + LVM_MODE_LVWIREFORMAT_LENGTH \
18415+ + LVFENS_MODEWORD_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVFENS ControlParameters in LVWireFormat.
18416+
18417+#define LVWM_CONTROLPARAMS_LVWIREFORMAT_LENGTH (14 \
18418+ + LVM_MODE_LVWIREFORMAT_LENGTH \
18419+ + LVWM_MODEWORD_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVWM ControlParameters in LVWireFormat.
18420+
18421+#define LVDRC_CONTROLPARAMS_LVWIREFORMAT_LENGTH (28 \
18422+ + LVM_MODE_LVWIREFORMAT_LENGTH \
18423+ + LVM_MODE_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVDRC ControlParameters in LVWireFormat.
18424+
18425+#define LVNG_CONTROLPARAMS_LVWIREFORMAT_LENGTH (26 \
18426+ + LVM_MODE_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVNG ControlParameters in LVWireFormat.
18427+
18428+#define LVNLPP_CONTROLPARAMS_LVWIREFORMAT_LENGTH (4) ///< Number of bytes to encode LVNLPP ControlParameters in LVWireFormat.
18429+
18430+#define LVEQ_CONTROLPARAMS_LVWIREFORMAT_LENGTH (66) ///< Number of bytes to encode LVEQ ControlParameters in LVWireFormat.
18431+
18432+#define LVVOL_CONTROLPARAMS_LVWIREFORMAT_LENGTH (2 \
18433+ + LVM_MODE_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVVOL ControlParameters in LVWireFormat.
18434+
18435+#define LVHPF_CONTROLPARAMS_LVWIREFORMAT_LENGTH (2 \
18436+ + LVM_MODE_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVHPF ControlParameters in LVWireFormat.
18437+
18438+#define LVMUTE_CONTROLPARAMS_LVWIREFORMAT_LENGTH (LVM_MODE_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVMUTE ControlParameters in LVWireFormat.
18439+
18440+#define LVVE_RX_CONTROLPARAMS_LVWIREFORMAT_LENGTH (4 \
18441+ + LVVE_RX_MODE_LVWIREFORMAT_LENGTH \
18442+ + LVM_MODE_LVWIREFORMAT_LENGTH \
18443+ + LVM_MODE_LVWIREFORMAT_LENGTH \
18444+ + LVFENS_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
18445+ + LVM_MODE_LVWIREFORMAT_LENGTH \
18446+ + LVNLPP_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
18447+ + LVVC_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
18448+ + LVM_MODE_LVWIREFORMAT_LENGTH \
18449+ + LVEQ_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
18450+ + LVDRC_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
18451+ + LVM_MODE_LVWIREFORMAT_LENGTH \
18452+ + LVWM_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
18453+ + LVNG_CONTROLPARAMS_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVVE_Rx ControlParameters in LVWireFormat.
18454+
18455+#define LVNV_CONTROLPARAMS_LVWIREFORMAT_LENGTH (122 \
18456+ + LVM_MODE_LVWIREFORMAT_LENGTH \
18457+ + LVNV_MODEWORD_LVWIREFORMAT_LENGTH \
18458+ + LVNV_MODE2WORD_LVWIREFORMAT_LENGTH \
18459+ + LVNV_TUNINGMODEWORD_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVNV ControlParameters in LVWireFormat.
18460+
18461+#define LVHF_CONTROLPARAMS_LVWIREFORMAT_LENGTH (78 \
18462+ + LVM_MODE_LVWIREFORMAT_LENGTH \
18463+ + LVHF_MODEWORD_LVWIREFORMAT_LENGTH \
18464+ + LVHF_TUNINGMODEWORD_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVHF ControlParameters in LVWireFormat.
18465+
18466+#define LVBD_CONTROLPARAMS_LVWIREFORMAT_LENGTH (4 \
18467+ + LVM_MODE_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVBD ControlParameters in LVWireFormat.
18468+
18469+#define LVVE_TX_CONTROLPARAMS_LVWIREFORMAT_LENGTH (8 \
18470+ + LVVE_TX_MODE_LVWIREFORMAT_LENGTH \
18471+ + LVM_MODE_LVWIREFORMAT_LENGTH \
18472+ + LVM_MODE_LVWIREFORMAT_LENGTH \
18473+ + LVM_MODE_LVWIREFORMAT_LENGTH \
18474+ + LVM_MODE_LVWIREFORMAT_LENGTH \
18475+ + LVHF_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
18476+ + LVNV_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
18477+ + LVM_MODE_LVWIREFORMAT_LENGTH \
18478+ + LVEQ_CONTROLPARAMS_LVWIREFORMAT_LENGTH \
18479+ + LVDRC_CONTROLPARAMS_LVWIREFORMAT_LENGTH) ///< Number of bytes to encode LVVE_Tx ControlParameters in LVWireFormat.
18480+
18481+/**
18482+* @def LVVIDHEADER_HEADERVERSION_DEFAULT
18483+* Default of HeaderVersion
18484+* @see LVVIDHeader_ControlParams_st
18485+*/
18486+#define LVVIDHEADER_HEADERVERSION_DEFAULT (3)
18487+/**
18488+* @def LVVIDHEADER_HEADERVERSION_MIN
18489+* MinValue of HeaderVersion
18490+* @see LVVIDHeader_ControlParams_st
18491+*/
18492+#define LVVIDHEADER_HEADERVERSION_MIN (0)
18493+/**
18494+* @def LVVIDHEADER_HEADERVERSION_MAX
18495+* MaxValue of HeaderVersion
18496+* @see LVVIDHeader_ControlParams_st
18497+*/
18498+#define LVVIDHEADER_HEADERVERSION_MAX (255)
18499+
18500+/**
18501+* @def LVVIDHEADER_BASELINEVERSION_DEFAULT
18502+* Default of BaselineVersion
18503+* @see LVVIDHeader_ControlParams_st
18504+*/
18505+#define LVVIDHEADER_BASELINEVERSION_DEFAULT (51906816)
18506+/**
18507+* @def LVVIDHEADER_BASELINEVERSION_MIN
18508+* MinValue of BaselineVersion
18509+* @see LVVIDHeader_ControlParams_st
18510+*/
18511+#define LVVIDHEADER_BASELINEVERSION_MIN (1)
18512+/**
18513+* @def LVVIDHEADER_BASELINEVERSION_MAX
18514+* MaxValue of BaselineVersion
18515+* @see LVVIDHeader_ControlParams_st
18516+*/
18517+#define LVVIDHEADER_BASELINEVERSION_MAX (4294967295)
18518+
18519+/**
18520+* @def LVVIDHEADER_LVVE_RX_ALGOMASK1_DEFAULT
18521+* Default of LVVE_Rx_AlgoMask1
18522+* @see LVVIDHeader_ControlParams_st
18523+*/
18524+#define LVVIDHEADER_LVVE_RX_ALGOMASK1_DEFAULT (LVVIDHEADER_LVVE_RX_MASK1_BM_MAX)
18525+
18526+/**
18527+* @def LVVIDHEADER_LVVE_RX_ALGOMASK2_DEFAULT
18528+* Default of LVVE_Rx_AlgoMask2
18529+* @see LVVIDHeader_ControlParams_st
18530+*/
18531+#define LVVIDHEADER_LVVE_RX_ALGOMASK2_DEFAULT (LVVIDHEADER_LVVE_RX_MASK2_BM_MAX)
18532+
18533+/**
18534+* @def LVVIDHEADER_LVVE_TX_ALGOMASK1_DEFAULT
18535+* Default of LVVE_Tx_AlgoMask1
18536+* @see LVVIDHeader_ControlParams_st
18537+*/
18538+#define LVVIDHEADER_LVVE_TX_ALGOMASK1_DEFAULT (LVVIDHEADER_LVVE_TX_MASK1_BM_MAX)
18539+
18540+/**
18541+* @def LVVIDHEADER_LVVE_TX_ALGOMASK2_DEFAULT
18542+* Default of LVVE_Tx_AlgoMask2
18543+* @see LVVIDHeader_ControlParams_st
18544+*/
18545+#define LVVIDHEADER_LVVE_TX_ALGOMASK2_DEFAULT (LVVIDHEADER_LVVE_TX_MASK2_BM_MAX)
18546+
18547+/**
18548+* @def LVVIDHEADER_LVVE_CONFIG_ALGOMASK1_DEFAULT
18549+* Default of LVVE_Config_AlgoMask1
18550+* @see LVVIDHeader_ControlParams_st
18551+*/
18552+#define LVVIDHEADER_LVVE_CONFIG_ALGOMASK1_DEFAULT (LVVIDHEADER_CONFIGURATIONS_MASK1_BM_MAX)
18553+
18554+/**
18555+* @def LVVIDHEADER_LVVE_CONFIG_ALGOMASK2_DEFAULT
18556+* Default of LVVE_Config_AlgoMask2
18557+* @see LVVIDHeader_ControlParams_st
18558+*/
18559+#define LVVIDHEADER_LVVE_CONFIG_ALGOMASK2_DEFAULT (LVVIDHEADER_CONFIGURATIONS_MASK2_BM_MAX)
18560+
18561+/**
18562+* @def LVVIDHEADER_MESSAGEID_DEFAULT
18563+* Default of MessageID
18564+* @see LVVIDHeader_ControlParams_st
18565+*/
18566+#define LVVIDHEADER_MESSAGEID_DEFAULT (LVVE_RX_PRESET)
18567+
18568+/**
18569+* @def LVVIDHEADER_SAMPLERATE_DEFAULT
18570+* Default of SampleRate
18571+* @see LVVIDHeader_ControlParams_st
18572+*/
18573+#define LVVIDHEADER_SAMPLERATE_DEFAULT (LVM_FS_8000)
18574+
18575+/**
18576+* @def LVVIDHEADER_VOLUMEINDEX_DEFAULT
18577+* Default of VolumeIndex
18578+* @see LVVIDHeader_ControlParams_st
18579+*/
18580+#define LVVIDHEADER_VOLUMEINDEX_DEFAULT (0)
18581+/**
18582+* @def LVVIDHEADER_VOLUMEINDEX_MIN
18583+* MinValue of VolumeIndex
18584+* @see LVVIDHeader_ControlParams_st
18585+*/
18586+#define LVVIDHEADER_VOLUMEINDEX_MIN (0)
18587+/**
18588+* @def LVVIDHEADER_VOLUMEINDEX_MAX
18589+* MaxValue of VolumeIndex
18590+* @see LVVIDHeader_ControlParams_st
18591+*/
18592+#define LVVIDHEADER_VOLUMEINDEX_MAX (255)
18593+
18594+/**
18595+* @def LVVIDHEADER_NUMVOLUMES_DEFAULT
18596+* Default of NumVolumes
18597+* @see LVVIDHeader_ControlParams_st
18598+*/
18599+#define LVVIDHEADER_NUMVOLUMES_DEFAULT (1)
18600+/**
18601+* @def LVVIDHEADER_NUMVOLUMES_MIN
18602+* MinValue of NumVolumes
18603+* @see LVVIDHeader_ControlParams_st
18604+*/
18605+#define LVVIDHEADER_NUMVOLUMES_MIN (0)
18606+/**
18607+* @def LVVIDHEADER_NUMVOLUMES_MAX
18608+* MaxValue of NumVolumes
18609+* @see LVVIDHeader_ControlParams_st
18610+*/
18611+#define LVVIDHEADER_NUMVOLUMES_MAX (255)
18612+
18613+/**
18614+* @def LVVC_OPERATINGMODE_DEFAULT
18615+* Default of OperatingMode
18616+* @see LVVC_ControlParams_st
18617+*/
18618+#define LVVC_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
18619+
18620+/**
18621+* @def LVVC_MODE_DEFAULT
18622+* Default of mode
18623+* @see LVVC_ControlParams_st
18624+*/
18625+#define LVVC_MODE_DEFAULT (0)
18626+
18627+/**
18628+* @def LVVC_GAIN_LIN_MAX_DEFAULT
18629+* Default of Gain_Lin_Max
18630+* @see LVVC_ControlParams_st
18631+*/
18632+#define LVVC_GAIN_LIN_MAX_DEFAULT (1286)
18633+/**
18634+* @def LVVC_GAIN_LIN_MAX_MIN
18635+* MinValue of Gain_Lin_Max
18636+* @see LVVC_ControlParams_st
18637+*/
18638+#define LVVC_GAIN_LIN_MAX_MIN (512)
18639+/**
18640+* @def LVVC_GAIN_LIN_MAX_MAX
18641+* MaxValue of Gain_Lin_Max
18642+* @see LVVC_ControlParams_st
18643+*/
18644+#define LVVC_GAIN_LIN_MAX_MAX (32767)
18645+
18646+/**
18647+* @def LVVC_NOISE_SENSITIVITY_DEFAULT
18648+* Default of Noise_Sensitivity
18649+* @see LVVC_ControlParams_st
18650+*/
18651+#define LVVC_NOISE_SENSITIVITY_DEFAULT (20000)
18652+/**
18653+* @def LVVC_NOISE_SENSITIVITY_MIN
18654+* MinValue of Noise_Sensitivity
18655+* @see LVVC_ControlParams_st
18656+*/
18657+#define LVVC_NOISE_SENSITIVITY_MIN (-6709)
18658+/**
18659+* @def LVVC_NOISE_SENSITIVITY_MAX
18660+* MaxValue of Noise_Sensitivity
18661+* @see LVVC_ControlParams_st
18662+*/
18663+#define LVVC_NOISE_SENSITIVITY_MAX (32767)
18664+
18665+/**
18666+* @def LVVC_AVL_TARGET_LEVEL_LIN_DEFAULT
18667+* Default of AVL_Target_level_lin
18668+* @see LVVC_ControlParams_st
18669+*/
18670+#define LVVC_AVL_TARGET_LEVEL_LIN_DEFAULT (16384)
18671+/**
18672+* @def LVVC_AVL_TARGET_LEVEL_LIN_MIN
18673+* MinValue of AVL_Target_level_lin
18674+* @see LVVC_ControlParams_st
18675+*/
18676+#define LVVC_AVL_TARGET_LEVEL_LIN_MIN (0)
18677+/**
18678+* @def LVVC_AVL_TARGET_LEVEL_LIN_MAX
18679+* MaxValue of AVL_Target_level_lin
18680+* @see LVVC_ControlParams_st
18681+*/
18682+#define LVVC_AVL_TARGET_LEVEL_LIN_MAX (32767)
18683+
18684+/**
18685+* @def LVVC_AVL_MINGAINLIN_DEFAULT
18686+* Default of AVL_MinGainLin
18687+* @see LVVC_ControlParams_st
18688+*/
18689+#define LVVC_AVL_MINGAINLIN_DEFAULT (256)
18690+/**
18691+* @def LVVC_AVL_MINGAINLIN_MIN
18692+* MinValue of AVL_MinGainLin
18693+* @see LVVC_ControlParams_st
18694+*/
18695+#define LVVC_AVL_MINGAINLIN_MIN (0)
18696+/**
18697+* @def LVVC_AVL_MINGAINLIN_MAX
18698+* MaxValue of AVL_MinGainLin
18699+* @see LVVC_ControlParams_st
18700+*/
18701+#define LVVC_AVL_MINGAINLIN_MAX (512)
18702+
18703+/**
18704+* @def LVVC_AVL_MAXGAINLIN_DEFAULT
18705+* Default of AVL_MaxGainLin
18706+* @see LVVC_ControlParams_st
18707+*/
18708+#define LVVC_AVL_MAXGAINLIN_DEFAULT (8192)
18709+/**
18710+* @def LVVC_AVL_MAXGAINLIN_MIN
18711+* MinValue of AVL_MaxGainLin
18712+* @see LVVC_ControlParams_st
18713+*/
18714+#define LVVC_AVL_MAXGAINLIN_MIN (512)
18715+/**
18716+* @def LVVC_AVL_MAXGAINLIN_MAX
18717+* MaxValue of AVL_MaxGainLin
18718+* @see LVVC_ControlParams_st
18719+*/
18720+#define LVVC_AVL_MAXGAINLIN_MAX (32767)
18721+
18722+/**
18723+* @def LVVC_AVL_NOMINALGAIN_DEFAULT
18724+* Default of AVL_NominalGain
18725+* @see LVVC_ControlParams_st
18726+*/
18727+#define LVVC_AVL_NOMINALGAIN_DEFAULT (512)
18728+/**
18729+* @def LVVC_AVL_NOMINALGAIN_MIN
18730+* MinValue of AVL_NominalGain
18731+* @see LVVC_ControlParams_st
18732+*/
18733+#define LVVC_AVL_NOMINALGAIN_MIN (0)
18734+/**
18735+* @def LVVC_AVL_NOMINALGAIN_MAX
18736+* MaxValue of AVL_NominalGain
18737+* @see LVVC_ControlParams_st
18738+*/
18739+#define LVVC_AVL_NOMINALGAIN_MAX (32767)
18740+
18741+/**
18742+* @def LVVC_AVL_ATTACK_DEFAULT
18743+* Default of AVL_Attack
18744+* @see LVVC_ControlParams_st
18745+*/
18746+#define LVVC_AVL_ATTACK_DEFAULT (12055)
18747+/**
18748+* @def LVVC_AVL_ATTACK_MIN
18749+* MinValue of AVL_Attack
18750+* @see LVVC_ControlParams_st
18751+*/
18752+#define LVVC_AVL_ATTACK_MIN (0)
18753+/**
18754+* @def LVVC_AVL_ATTACK_MAX
18755+* MaxValue of AVL_Attack
18756+* @see LVVC_ControlParams_st
18757+*/
18758+#define LVVC_AVL_ATTACK_MAX (32767)
18759+
18760+/**
18761+* @def LVVC_AVL_RELEASE_DEFAULT
18762+* Default of AVL_Release
18763+* @see LVVC_ControlParams_st
18764+*/
18765+#define LVVC_AVL_RELEASE_DEFAULT (32604)
18766+/**
18767+* @def LVVC_AVL_RELEASE_MIN
18768+* MinValue of AVL_Release
18769+* @see LVVC_ControlParams_st
18770+*/
18771+#define LVVC_AVL_RELEASE_MIN (0)
18772+/**
18773+* @def LVVC_AVL_RELEASE_MAX
18774+* MaxValue of AVL_Release
18775+* @see LVVC_ControlParams_st
18776+*/
18777+#define LVVC_AVL_RELEASE_MAX (32767)
18778+
18779+/**
18780+* @def LVVC_AVL_RELEASEMAX_DEFAULT
18781+* Default of AVL_ReleaseMax
18782+* @see LVVC_ControlParams_st
18783+*/
18784+#define LVVC_AVL_RELEASEMAX_DEFAULT (32441)
18785+/**
18786+* @def LVVC_AVL_RELEASEMAX_MIN
18787+* MinValue of AVL_ReleaseMax
18788+* @see LVVC_ControlParams_st
18789+*/
18790+#define LVVC_AVL_RELEASEMAX_MIN (0)
18791+/**
18792+* @def LVVC_AVL_RELEASEMAX_MAX
18793+* MaxValue of AVL_ReleaseMax
18794+* @see LVVC_ControlParams_st
18795+*/
18796+#define LVVC_AVL_RELEASEMAX_MAX (32767)
18797+
18798+/**
18799+* @def LVVC_AVL_LIMIT_MAXOUTPUTLIN_DEFAULT
18800+* Default of AVL_Limit_MaxOutputLin
18801+* @see LVVC_ControlParams_st
18802+*/
18803+#define LVVC_AVL_LIMIT_MAXOUTPUTLIN_DEFAULT (23170)
18804+/**
18805+* @def LVVC_AVL_LIMIT_MAXOUTPUTLIN_MIN
18806+* MinValue of AVL_Limit_MaxOutputLin
18807+* @see LVVC_ControlParams_st
18808+*/
18809+#define LVVC_AVL_LIMIT_MAXOUTPUTLIN_MIN (0)
18810+/**
18811+* @def LVVC_AVL_LIMIT_MAXOUTPUTLIN_MAX
18812+* MaxValue of AVL_Limit_MaxOutputLin
18813+* @see LVVC_ControlParams_st
18814+*/
18815+#define LVVC_AVL_LIMIT_MAXOUTPUTLIN_MAX (32767)
18816+
18817+/**
18818+* @def LVVC_SPDETECT_THRESHOLD_DEFAULT
18819+* Default of SpDetect_Threshold
18820+* @see LVVC_ControlParams_st
18821+*/
18822+#define LVVC_SPDETECT_THRESHOLD_DEFAULT (1024)
18823+/**
18824+* @def LVVC_SPDETECT_THRESHOLD_MIN
18825+* MinValue of SpDetect_Threshold
18826+* @see LVVC_ControlParams_st
18827+*/
18828+#define LVVC_SPDETECT_THRESHOLD_MIN (0)
18829+/**
18830+* @def LVVC_SPDETECT_THRESHOLD_MAX
18831+* MaxValue of SpDetect_Threshold
18832+* @see LVVC_ControlParams_st
18833+*/
18834+#define LVVC_SPDETECT_THRESHOLD_MAX (32767)
18835+
18836+/**
18837+* @def LVFENS_OPERATINGMODE_DEFAULT
18838+* Default of OperatingMode
18839+* @see LVFENS_ControlParams_st
18840+*/
18841+#define LVFENS_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
18842+
18843+/**
18844+* @def LVFENS_FENS_LIMIT_NS_DEFAULT
18845+* Default of FENS_limit_NS
18846+* @see LVFENS_ControlParams_st
18847+*/
18848+#define LVFENS_FENS_LIMIT_NS_DEFAULT (10976)
18849+/**
18850+* @def LVFENS_FENS_LIMIT_NS_MIN
18851+* MinValue of FENS_limit_NS
18852+* @see LVFENS_ControlParams_st
18853+*/
18854+#define LVFENS_FENS_LIMIT_NS_MIN (0)
18855+/**
18856+* @def LVFENS_FENS_LIMIT_NS_MAX
18857+* MaxValue of FENS_limit_NS
18858+* @see LVFENS_ControlParams_st
18859+*/
18860+#define LVFENS_FENS_LIMIT_NS_MAX (32767)
18861+
18862+/**
18863+* @def LVFENS_MODE_DEFAULT
18864+* Default of Mode
18865+* @see LVFENS_ControlParams_st
18866+*/
18867+#define LVFENS_MODE_DEFAULT (0)
18868+
18869+/**
18870+* @def LVWM_OPERATINGMODE_DEFAULT
18871+* Default of OperatingMode
18872+* @see LVWM_ControlParams_st
18873+*/
18874+#define LVWM_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
18875+
18876+/**
18877+* @def LVWM_MODE_DEFAULT
18878+* Default of mode
18879+* @see LVWM_ControlParams_st
18880+*/
18881+#define LVWM_MODE_DEFAULT (7)
18882+
18883+/**
18884+* @def LVWM_AVL_TARGET_LEVEL_LIN_DEFAULT
18885+* Default of AVL_Target_level_lin
18886+* @see LVWM_ControlParams_st
18887+*/
18888+#define LVWM_AVL_TARGET_LEVEL_LIN_DEFAULT (16384)
18889+/**
18890+* @def LVWM_AVL_TARGET_LEVEL_LIN_MIN
18891+* MinValue of AVL_Target_level_lin
18892+* @see LVWM_ControlParams_st
18893+*/
18894+#define LVWM_AVL_TARGET_LEVEL_LIN_MIN (0)
18895+/**
18896+* @def LVWM_AVL_TARGET_LEVEL_LIN_MAX
18897+* MaxValue of AVL_Target_level_lin
18898+* @see LVWM_ControlParams_st
18899+*/
18900+#define LVWM_AVL_TARGET_LEVEL_LIN_MAX (32767)
18901+
18902+/**
18903+* @def LVWM_AVL_MINGAINLIN_DEFAULT
18904+* Default of AVL_MinGainLin
18905+* @see LVWM_ControlParams_st
18906+*/
18907+#define LVWM_AVL_MINGAINLIN_DEFAULT (128)
18908+/**
18909+* @def LVWM_AVL_MINGAINLIN_MIN
18910+* MinValue of AVL_MinGainLin
18911+* @see LVWM_ControlParams_st
18912+*/
18913+#define LVWM_AVL_MINGAINLIN_MIN (0)
18914+/**
18915+* @def LVWM_AVL_MINGAINLIN_MAX
18916+* MaxValue of AVL_MinGainLin
18917+* @see LVWM_ControlParams_st
18918+*/
18919+#define LVWM_AVL_MINGAINLIN_MAX (512)
18920+
18921+/**
18922+* @def LVWM_AVL_MAXGAINLIN_DEFAULT
18923+* Default of AVL_MaxGainLin
18924+* @see LVWM_ControlParams_st
18925+*/
18926+#define LVWM_AVL_MAXGAINLIN_DEFAULT (8189)
18927+/**
18928+* @def LVWM_AVL_MAXGAINLIN_MIN
18929+* MinValue of AVL_MaxGainLin
18930+* @see LVWM_ControlParams_st
18931+*/
18932+#define LVWM_AVL_MAXGAINLIN_MIN (512)
18933+/**
18934+* @def LVWM_AVL_MAXGAINLIN_MAX
18935+* MaxValue of AVL_MaxGainLin
18936+* @see LVWM_ControlParams_st
18937+*/
18938+#define LVWM_AVL_MAXGAINLIN_MAX (32767)
18939+
18940+/**
18941+* @def LVWM_AVL_ATTACK_DEFAULT
18942+* Default of AVL_Attack
18943+* @see LVWM_ControlParams_st
18944+*/
18945+#define LVWM_AVL_ATTACK_DEFAULT (25520)
18946+/**
18947+* @def LVWM_AVL_ATTACK_MIN
18948+* MinValue of AVL_Attack
18949+* @see LVWM_ControlParams_st
18950+*/
18951+#define LVWM_AVL_ATTACK_MIN (0)
18952+/**
18953+* @def LVWM_AVL_ATTACK_MAX
18954+* MaxValue of AVL_Attack
18955+* @see LVWM_ControlParams_st
18956+*/
18957+#define LVWM_AVL_ATTACK_MAX (32767)
18958+
18959+/**
18960+* @def LVWM_AVL_RELEASE_DEFAULT
18961+* Default of AVL_Release
18962+* @see LVWM_ControlParams_st
18963+*/
18964+#define LVWM_AVL_RELEASE_DEFAULT (32685)
18965+/**
18966+* @def LVWM_AVL_RELEASE_MIN
18967+* MinValue of AVL_Release
18968+* @see LVWM_ControlParams_st
18969+*/
18970+#define LVWM_AVL_RELEASE_MIN (0)
18971+/**
18972+* @def LVWM_AVL_RELEASE_MAX
18973+* MaxValue of AVL_Release
18974+* @see LVWM_ControlParams_st
18975+*/
18976+#define LVWM_AVL_RELEASE_MAX (32767)
18977+
18978+/**
18979+* @def LVWM_AVL_LIMIT_MAXOUTPUTLIN_DEFAULT
18980+* Default of AVL_Limit_MaxOutputLin
18981+* @see LVWM_ControlParams_st
18982+*/
18983+#define LVWM_AVL_LIMIT_MAXOUTPUTLIN_DEFAULT (23197)
18984+/**
18985+* @def LVWM_AVL_LIMIT_MAXOUTPUTLIN_MIN
18986+* MinValue of AVL_Limit_MaxOutputLin
18987+* @see LVWM_ControlParams_st
18988+*/
18989+#define LVWM_AVL_LIMIT_MAXOUTPUTLIN_MIN (0)
18990+/**
18991+* @def LVWM_AVL_LIMIT_MAXOUTPUTLIN_MAX
18992+* MaxValue of AVL_Limit_MaxOutputLin
18993+* @see LVWM_ControlParams_st
18994+*/
18995+#define LVWM_AVL_LIMIT_MAXOUTPUTLIN_MAX (32767)
18996+
18997+/**
18998+* @def LVWM_SPDETECT_THRESHOLD_DEFAULT
18999+* Default of SpDetect_Threshold
19000+* @see LVWM_ControlParams_st
19001+*/
19002+#define LVWM_SPDETECT_THRESHOLD_DEFAULT (9216)
19003+/**
19004+* @def LVWM_SPDETECT_THRESHOLD_MIN
19005+* MinValue of SpDetect_Threshold
19006+* @see LVWM_ControlParams_st
19007+*/
19008+#define LVWM_SPDETECT_THRESHOLD_MIN (0)
19009+/**
19010+* @def LVWM_SPDETECT_THRESHOLD_MAX
19011+* MaxValue of SpDetect_Threshold
19012+* @see LVWM_ControlParams_st
19013+*/
19014+#define LVWM_SPDETECT_THRESHOLD_MAX (32767)
19015+
19016+/**
19017+* @def LVDRC_OPERATINGMODE_DEFAULT
19018+* Default of OperatingMode
19019+* @see LVDRC_ControlParams_st
19020+*/
19021+#define LVDRC_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
19022+
19023+/**
19024+* @def LVDRC_NUMKNEES_DEFAULT
19025+* Default of NumKnees
19026+* @see LVDRC_ControlParams_st
19027+*/
19028+#define LVDRC_NUMKNEES_DEFAULT (5)
19029+/**
19030+* @def LVDRC_NUMKNEES_MIN
19031+* MinValue of NumKnees
19032+* @see LVDRC_ControlParams_st
19033+*/
19034+#define LVDRC_NUMKNEES_MIN (1)
19035+/**
19036+* @def LVDRC_NUMKNEES_MAX
19037+* MaxValue of NumKnees
19038+* @see LVDRC_ControlParams_st
19039+*/
19040+#define LVDRC_NUMKNEES_MAX (5)
19041+
19042+/**
19043+* @def LVDRC_COMPRESSORCURVEINPUTLEVELS_DEFAULT
19044+* Default of CompressorCurveInputLevels
19045+* @see LVDRC_ControlParams_st
19046+*/
19047+#define LVDRC_COMPRESSORCURVEINPUTLEVELS_DEFAULT {-96,-70,-50, -24, 0}
19048+/**
19049+* @def LVDRC_COMPRESSORCURVEINPUTLEVELS_MIN
19050+* MinValue of CompressorCurveInputLevels
19051+* @see LVDRC_ControlParams_st
19052+*/
19053+#define LVDRC_COMPRESSORCURVEINPUTLEVELS_MIN (-96)
19054+/**
19055+* @def LVDRC_COMPRESSORCURVEINPUTLEVELS_MAX
19056+* MaxValue of CompressorCurveInputLevels
19057+* @see LVDRC_ControlParams_st
19058+*/
19059+#define LVDRC_COMPRESSORCURVEINPUTLEVELS_MAX (0)
19060+/**
19061+* @def LVDRC_COMPRESSORCURVEINPUTLEVELS_LENGTH
19062+* Length of CompressorCurveInputLevels
19063+* @see LVDRC_ControlParams_st
19064+*/
19065+#define LVDRC_COMPRESSORCURVEINPUTLEVELS_LENGTH (5)
19066+
19067+/**
19068+* @def LVDRC_COMPRESSORCURVEOUTPUTLEVELS_DEFAULT
19069+* Default of CompressorCurveOutputLevels
19070+* @see LVDRC_ControlParams_st
19071+*/
19072+#define LVDRC_COMPRESSORCURVEOUTPUTLEVELS_DEFAULT {-96,-70,-38,-12,0}
19073+/**
19074+* @def LVDRC_COMPRESSORCURVEOUTPUTLEVELS_MIN
19075+* MinValue of CompressorCurveOutputLevels
19076+* @see LVDRC_ControlParams_st
19077+*/
19078+#define LVDRC_COMPRESSORCURVEOUTPUTLEVELS_MIN (-96)
19079+/**
19080+* @def LVDRC_COMPRESSORCURVEOUTPUTLEVELS_MAX
19081+* MaxValue of CompressorCurveOutputLevels
19082+* @see LVDRC_ControlParams_st
19083+*/
19084+#define LVDRC_COMPRESSORCURVEOUTPUTLEVELS_MAX (0)
19085+/**
19086+* @def LVDRC_COMPRESSORCURVEOUTPUTLEVELS_LENGTH
19087+* Length of CompressorCurveOutputLevels
19088+* @see LVDRC_ControlParams_st
19089+*/
19090+#define LVDRC_COMPRESSORCURVEOUTPUTLEVELS_LENGTH (5)
19091+
19092+/**
19093+* @def LVDRC_ATTACKTIME_DEFAULT
19094+* Default of AttackTime
19095+* @see LVDRC_ControlParams_st
19096+*/
19097+#define LVDRC_ATTACKTIME_DEFAULT (50)
19098+/**
19099+* @def LVDRC_ATTACKTIME_MIN
19100+* MinValue of AttackTime
19101+* @see LVDRC_ControlParams_st
19102+*/
19103+#define LVDRC_ATTACKTIME_MIN (0)
19104+/**
19105+* @def LVDRC_ATTACKTIME_MAX
19106+* MaxValue of AttackTime
19107+* @see LVDRC_ControlParams_st
19108+*/
19109+#define LVDRC_ATTACKTIME_MAX (32767)
19110+
19111+/**
19112+* @def LVDRC_RELEASETIME_DEFAULT
19113+* Default of ReleaseTime
19114+* @see LVDRC_ControlParams_st
19115+*/
19116+#define LVDRC_RELEASETIME_DEFAULT (50)
19117+/**
19118+* @def LVDRC_RELEASETIME_MIN
19119+* MinValue of ReleaseTime
19120+* @see LVDRC_ControlParams_st
19121+*/
19122+#define LVDRC_RELEASETIME_MIN (0)
19123+/**
19124+* @def LVDRC_RELEASETIME_MAX
19125+* MaxValue of ReleaseTime
19126+* @see LVDRC_ControlParams_st
19127+*/
19128+#define LVDRC_RELEASETIME_MAX (32767)
19129+
19130+/**
19131+* @def LVDRC_LIMITEROPERATINGMODE_DEFAULT
19132+* Default of LimiterOperatingMode
19133+* @see LVDRC_ControlParams_st
19134+*/
19135+#define LVDRC_LIMITEROPERATINGMODE_DEFAULT (LVM_MODE_OFF)
19136+
19137+/**
19138+* @def LVDRC_LIMITLEVEL_DEFAULT
19139+* Default of LimitLevel
19140+* @see LVDRC_ControlParams_st
19141+*/
19142+#define LVDRC_LIMITLEVEL_DEFAULT (0)
19143+/**
19144+* @def LVDRC_LIMITLEVEL_MIN
19145+* MinValue of LimitLevel
19146+* @see LVDRC_ControlParams_st
19147+*/
19148+#define LVDRC_LIMITLEVEL_MIN (-96)
19149+/**
19150+* @def LVDRC_LIMITLEVEL_MAX
19151+* MaxValue of LimitLevel
19152+* @see LVDRC_ControlParams_st
19153+*/
19154+#define LVDRC_LIMITLEVEL_MAX (0)
19155+
19156+/**
19157+* @def LVNG_OPERATINGMODE_DEFAULT
19158+* Default of OperatingMode
19159+* @see LVNG_ControlParams_st
19160+*/
19161+#define LVNG_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
19162+
19163+/**
19164+* @def LVNG_NUMKNEES_DEFAULT
19165+* Default of NumKnees
19166+* @see LVNG_ControlParams_st
19167+*/
19168+#define LVNG_NUMKNEES_DEFAULT (5)
19169+/**
19170+* @def LVNG_NUMKNEES_MIN
19171+* MinValue of NumKnees
19172+* @see LVNG_ControlParams_st
19173+*/
19174+#define LVNG_NUMKNEES_MIN (1)
19175+/**
19176+* @def LVNG_NUMKNEES_MAX
19177+* MaxValue of NumKnees
19178+* @see LVNG_ControlParams_st
19179+*/
19180+#define LVNG_NUMKNEES_MAX (5)
19181+
19182+/**
19183+* @def LVNG_COMPRESSORCURVEINPUTLEVELS_DEFAULT
19184+* Default of CompressorCurveInputLevels
19185+* @see LVNG_ControlParams_st
19186+*/
19187+#define LVNG_COMPRESSORCURVEINPUTLEVELS_DEFAULT {-80,-70,-50, -24, 0}
19188+/**
19189+* @def LVNG_COMPRESSORCURVEINPUTLEVELS_MIN
19190+* MinValue of CompressorCurveInputLevels
19191+* @see LVNG_ControlParams_st
19192+*/
19193+#define LVNG_COMPRESSORCURVEINPUTLEVELS_MIN (-96)
19194+/**
19195+* @def LVNG_COMPRESSORCURVEINPUTLEVELS_MAX
19196+* MaxValue of CompressorCurveInputLevels
19197+* @see LVNG_ControlParams_st
19198+*/
19199+#define LVNG_COMPRESSORCURVEINPUTLEVELS_MAX (0)
19200+/**
19201+* @def LVNG_COMPRESSORCURVEINPUTLEVELS_LENGTH
19202+* Length of CompressorCurveInputLevels
19203+* @see LVNG_ControlParams_st
19204+*/
19205+#define LVNG_COMPRESSORCURVEINPUTLEVELS_LENGTH (5)
19206+
19207+/**
19208+* @def LVNG_COMPRESSORCURVEOUTPUTLEVELS_DEFAULT
19209+* Default of CompressorCurveOutputLevels
19210+* @see LVNG_ControlParams_st
19211+*/
19212+#define LVNG_COMPRESSORCURVEOUTPUTLEVELS_DEFAULT {-96,-80,-50, -24, 0}
19213+/**
19214+* @def LVNG_COMPRESSORCURVEOUTPUTLEVELS_MIN
19215+* MinValue of CompressorCurveOutputLevels
19216+* @see LVNG_ControlParams_st
19217+*/
19218+#define LVNG_COMPRESSORCURVEOUTPUTLEVELS_MIN (-96)
19219+/**
19220+* @def LVNG_COMPRESSORCURVEOUTPUTLEVELS_MAX
19221+* MaxValue of CompressorCurveOutputLevels
19222+* @see LVNG_ControlParams_st
19223+*/
19224+#define LVNG_COMPRESSORCURVEOUTPUTLEVELS_MAX (0)
19225+/**
19226+* @def LVNG_COMPRESSORCURVEOUTPUTLEVELS_LENGTH
19227+* Length of CompressorCurveOutputLevels
19228+* @see LVNG_ControlParams_st
19229+*/
19230+#define LVNG_COMPRESSORCURVEOUTPUTLEVELS_LENGTH (5)
19231+
19232+/**
19233+* @def LVNG_ATTACKTIME_DEFAULT
19234+* Default of AttackTime
19235+* @see LVNG_ControlParams_st
19236+*/
19237+#define LVNG_ATTACKTIME_DEFAULT (50)
19238+/**
19239+* @def LVNG_ATTACKTIME_MIN
19240+* MinValue of AttackTime
19241+* @see LVNG_ControlParams_st
19242+*/
19243+#define LVNG_ATTACKTIME_MIN (0)
19244+/**
19245+* @def LVNG_ATTACKTIME_MAX
19246+* MaxValue of AttackTime
19247+* @see LVNG_ControlParams_st
19248+*/
19249+#define LVNG_ATTACKTIME_MAX (32767)
19250+
19251+/**
19252+* @def LVNG_RELEASETIME_DEFAULT
19253+* Default of ReleaseTime
19254+* @see LVNG_ControlParams_st
19255+*/
19256+#define LVNG_RELEASETIME_DEFAULT (50)
19257+/**
19258+* @def LVNG_RELEASETIME_MIN
19259+* MinValue of ReleaseTime
19260+* @see LVNG_ControlParams_st
19261+*/
19262+#define LVNG_RELEASETIME_MIN (0)
19263+/**
19264+* @def LVNG_RELEASETIME_MAX
19265+* MaxValue of ReleaseTime
19266+* @see LVNG_ControlParams_st
19267+*/
19268+#define LVNG_RELEASETIME_MAX (32767)
19269+
19270+/**
19271+* @def LVNLPP_NLPP_LIMIT_DEFAULT
19272+* Default of NLPP_Limit
19273+* @see LVNLPP_ControlParams_st
19274+*/
19275+#define LVNLPP_NLPP_LIMIT_DEFAULT (0)
19276+/**
19277+* @def LVNLPP_NLPP_LIMIT_MIN
19278+* MinValue of NLPP_Limit
19279+* @see LVNLPP_ControlParams_st
19280+*/
19281+#define LVNLPP_NLPP_LIMIT_MIN (-24)
19282+/**
19283+* @def LVNLPP_NLPP_LIMIT_MAX
19284+* MaxValue of NLPP_Limit
19285+* @see LVNLPP_ControlParams_st
19286+*/
19287+#define LVNLPP_NLPP_LIMIT_MAX (0)
19288+
19289+/**
19290+* @def LVNLPP_NLPP_HPF_CORNERFREQ_DEFAULT
19291+* Default of NLPP_HPF_CornerFreq
19292+* @see LVNLPP_ControlParams_st
19293+*/
19294+#define LVNLPP_NLPP_HPF_CORNERFREQ_DEFAULT (50)
19295+/**
19296+* @def LVNLPP_NLPP_HPF_CORNERFREQ_MIN
19297+* MinValue of NLPP_HPF_CornerFreq
19298+* @see LVNLPP_ControlParams_st
19299+*/
19300+#define LVNLPP_NLPP_HPF_CORNERFREQ_MIN (50)
19301+/**
19302+* @def LVNLPP_NLPP_HPF_CORNERFREQ_MAX
19303+* MaxValue of NLPP_HPF_CornerFreq
19304+* @see LVNLPP_ControlParams_st
19305+*/
19306+#define LVNLPP_NLPP_HPF_CORNERFREQ_MAX (1000)
19307+
19308+/**
19309+* @def LVEQ_EQ_LENGTH_DEFAULT
19310+* Default of EQ_Length
19311+* @see LVEQ_ControlParams_st
19312+*/
19313+#define LVEQ_EQ_LENGTH_DEFAULT (32)
19314+/**
19315+* @def LVEQ_EQ_LENGTH_MIN
19316+* MinValue of EQ_Length
19317+* @see LVEQ_ControlParams_st
19318+*/
19319+#define LVEQ_EQ_LENGTH_MIN (8)
19320+/**
19321+* @def LVEQ_EQ_LENGTH_MAX
19322+* MaxValue of EQ_Length
19323+* @see LVEQ_ControlParams_st
19324+*/
19325+#define LVEQ_EQ_LENGTH_MAX (32)
19326+
19327+/**
19328+* @def LVEQ_EQ_COEFS_DEFAULT
19329+* Default of EQ_Coefs
19330+* @see LVEQ_ControlParams_st
19331+*/
19332+#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}
19333+/**
19334+* @def LVEQ_EQ_COEFS_MIN
19335+* MinValue of EQ_Coefs
19336+* @see LVEQ_ControlParams_st
19337+*/
19338+#define LVEQ_EQ_COEFS_MIN (-32768)
19339+/**
19340+* @def LVEQ_EQ_COEFS_MAX
19341+* MaxValue of EQ_Coefs
19342+* @see LVEQ_ControlParams_st
19343+*/
19344+#define LVEQ_EQ_COEFS_MAX (32767)
19345+/**
19346+* @def LVEQ_EQ_COEFS_LENGTH
19347+* Length of EQ_Coefs
19348+* @see LVEQ_ControlParams_st
19349+*/
19350+#define LVEQ_EQ_COEFS_LENGTH (32)
19351+
19352+/**
19353+* @def LVVOL_VOL_OPERATINGMODE_DEFAULT
19354+* Default of VOL_OperatingMode
19355+* @see LVVOL_ControlParams_st
19356+*/
19357+#define LVVOL_VOL_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
19358+
19359+/**
19360+* @def LVVOL_VOL_GAIN_DEFAULT
19361+* Default of VOL_Gain
19362+* @see LVVOL_ControlParams_st
19363+*/
19364+#define LVVOL_VOL_GAIN_DEFAULT (0)
19365+/**
19366+* @def LVVOL_VOL_GAIN_MIN
19367+* MinValue of VOL_Gain
19368+* @see LVVOL_ControlParams_st
19369+*/
19370+#define LVVOL_VOL_GAIN_MIN (-96)
19371+/**
19372+* @def LVVOL_VOL_GAIN_MAX
19373+* MaxValue of VOL_Gain
19374+* @see LVVOL_ControlParams_st
19375+*/
19376+#define LVVOL_VOL_GAIN_MAX (24)
19377+
19378+/**
19379+* @def LVHPF_HPF_OPERATINGMODE_DEFAULT
19380+* Default of HPF_OperatingMode
19381+* @see LVHPF_ControlParams_st
19382+*/
19383+#define LVHPF_HPF_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
19384+
19385+/**
19386+* @def LVHPF_HPF_CORNERFREQ_DEFAULT
19387+* Default of HPF_CornerFreq
19388+* @see LVHPF_ControlParams_st
19389+*/
19390+#define LVHPF_HPF_CORNERFREQ_DEFAULT (50)
19391+/**
19392+* @def LVHPF_HPF_CORNERFREQ_MIN
19393+* MinValue of HPF_CornerFreq
19394+* @see LVHPF_ControlParams_st
19395+*/
19396+#define LVHPF_HPF_CORNERFREQ_MIN (50)
19397+/**
19398+* @def LVHPF_HPF_CORNERFREQ_MAX
19399+* MaxValue of HPF_CornerFreq
19400+* @see LVHPF_ControlParams_st
19401+*/
19402+#define LVHPF_HPF_CORNERFREQ_MAX (1500)
19403+
19404+/**
19405+* @def LVMUTE_MUTE_DEFAULT
19406+* Default of Mute
19407+* @see LVMUTE_ControlParams_st
19408+*/
19409+#define LVMUTE_MUTE_DEFAULT (LVM_MODE_OFF)
19410+
19411+/**
19412+* @def LVVE_RX_OPERATINGMODE_DEFAULT
19413+* Default of OperatingMode
19414+* @see LVVE_Rx_ControlParams_st
19415+*/
19416+#define LVVE_RX_OPERATINGMODE_DEFAULT (LVVE_RX_MODE_OFF)
19417+
19418+/**
19419+* @def LVVE_RX_MUTE_DEFAULT
19420+* Default of Mute
19421+* @see LVVE_Rx_ControlParams_st
19422+*/
19423+#define LVVE_RX_MUTE_DEFAULT (LVM_MODE_OFF)
19424+
19425+/**
19426+* @def LVVE_RX_VOL_OPERATINGMODE_DEFAULT
19427+* Default of VOL_OperatingMode
19428+* @see LVVE_Rx_ControlParams_st
19429+*/
19430+#define LVVE_RX_VOL_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
19431+
19432+/**
19433+* @def LVVE_RX_VOL_GAIN_DEFAULT
19434+* Default of VOL_Gain
19435+* @see LVVE_Rx_ControlParams_st
19436+*/
19437+#define LVVE_RX_VOL_GAIN_DEFAULT (0)
19438+/**
19439+* @def LVVE_RX_VOL_GAIN_MIN
19440+* MinValue of VOL_Gain
19441+* @see LVVE_Rx_ControlParams_st
19442+*/
19443+#define LVVE_RX_VOL_GAIN_MIN (-96)
19444+/**
19445+* @def LVVE_RX_VOL_GAIN_MAX
19446+* MaxValue of VOL_Gain
19447+* @see LVVE_Rx_ControlParams_st
19448+*/
19449+#define LVVE_RX_VOL_GAIN_MAX (24)
19450+
19451+
19452+/**
19453+* @def LVVE_RX_NLPP_OPERATINGMODE_DEFAULT
19454+* Default of NLPP_OperatingMode
19455+* @see LVVE_Rx_ControlParams_st
19456+*/
19457+#define LVVE_RX_NLPP_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
19458+
19459+
19460+
19461+/**
19462+* @def LVVE_RX_EQ_OPERATINGMODE_DEFAULT
19463+* Default of EQ_OperatingMode
19464+* @see LVVE_Rx_ControlParams_st
19465+*/
19466+#define LVVE_RX_EQ_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
19467+
19468+
19469+
19470+/**
19471+* @def LVVE_RX_HPF_OPERATINGMODE_DEFAULT
19472+* Default of HPF_OperatingMode
19473+* @see LVVE_Rx_ControlParams_st
19474+*/
19475+#define LVVE_RX_HPF_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
19476+
19477+/**
19478+* @def LVVE_RX_HPF_CORNERFREQ_DEFAULT
19479+* Default of HPF_CornerFreq
19480+* @see LVVE_Rx_ControlParams_st
19481+*/
19482+#define LVVE_RX_HPF_CORNERFREQ_DEFAULT (50)
19483+/**
19484+* @def LVVE_RX_HPF_CORNERFREQ_MIN
19485+* MinValue of HPF_CornerFreq
19486+* @see LVVE_Rx_ControlParams_st
19487+*/
19488+#define LVVE_RX_HPF_CORNERFREQ_MIN (50)
19489+/**
19490+* @def LVVE_RX_HPF_CORNERFREQ_MAX
19491+* MaxValue of HPF_CornerFreq
19492+* @see LVVE_Rx_ControlParams_st
19493+*/
19494+#define LVVE_RX_HPF_CORNERFREQ_MAX (1500)
19495+
19496+
19497+
19498+/**
19499+* @def LVNV_OPERATINGMODE_DEFAULT
19500+* Default of OperatingMode
19501+* @see LVNV_ControlParams_st
19502+*/
19503+#define LVNV_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
19504+
19505+/**
19506+* @def LVNV_MODE_DEFAULT
19507+* Default of Mode
19508+* @see LVNV_ControlParams_st
19509+*/
19510+#define LVNV_MODE_DEFAULT (18935)
19511+
19512+/**
19513+* @def LVNV_MODE2_DEFAULT
19514+* Default of Mode2
19515+* @see LVNV_ControlParams_st
19516+*/
19517+#define LVNV_MODE2_DEFAULT (14)
19518+
19519+/**
19520+* @def LVNV_TUNING_MODE_DEFAULT
19521+* Default of Tuning_mode
19522+* @see LVNV_ControlParams_st
19523+*/
19524+#define LVNV_TUNING_MODE_DEFAULT (0)
19525+
19526+/**
19527+* @def LVNV_INPUT_GAIN_MIC0_DEFAULT
19528+* Default of Input_Gain_Mic0
19529+* @see LVNV_ControlParams_st
19530+*/
19531+#define LVNV_INPUT_GAIN_MIC0_DEFAULT (8192)
19532+/**
19533+* @def LVNV_INPUT_GAIN_MIC0_MIN
19534+* MinValue of Input_Gain_Mic0
19535+* @see LVNV_ControlParams_st
19536+*/
19537+#define LVNV_INPUT_GAIN_MIC0_MIN (0)
19538+/**
19539+* @def LVNV_INPUT_GAIN_MIC0_MAX
19540+* MaxValue of Input_Gain_Mic0
19541+* @see LVNV_ControlParams_st
19542+*/
19543+#define LVNV_INPUT_GAIN_MIC0_MAX (32767)
19544+
19545+/**
19546+* @def LVNV_INPUT_GAIN_MIC1_DEFAULT
19547+* Default of Input_Gain_Mic1
19548+* @see LVNV_ControlParams_st
19549+*/
19550+#define LVNV_INPUT_GAIN_MIC1_DEFAULT (8192)
19551+/**
19552+* @def LVNV_INPUT_GAIN_MIC1_MIN
19553+* MinValue of Input_Gain_Mic1
19554+* @see LVNV_ControlParams_st
19555+*/
19556+#define LVNV_INPUT_GAIN_MIC1_MIN (0)
19557+/**
19558+* @def LVNV_INPUT_GAIN_MIC1_MAX
19559+* MaxValue of Input_Gain_Mic1
19560+* @see LVNV_ControlParams_st
19561+*/
19562+#define LVNV_INPUT_GAIN_MIC1_MAX (32767)
19563+
19564+/**
19565+* @def LVNV_OUTPUT_GAIN_DEFAULT
19566+* Default of Output_Gain
19567+* @see LVNV_ControlParams_st
19568+*/
19569+#define LVNV_OUTPUT_GAIN_DEFAULT (2048)
19570+/**
19571+* @def LVNV_OUTPUT_GAIN_MIN
19572+* MinValue of Output_Gain
19573+* @see LVNV_ControlParams_st
19574+*/
19575+#define LVNV_OUTPUT_GAIN_MIN (0)
19576+/**
19577+* @def LVNV_OUTPUT_GAIN_MAX
19578+* MaxValue of Output_Gain
19579+* @see LVNV_ControlParams_st
19580+*/
19581+#define LVNV_OUTPUT_GAIN_MAX (32767)
19582+
19583+/**
19584+* @def LVNV_NLMS0_LB_TAPS_DEFAULT
19585+* Default of NLMS0_LB_taps
19586+* @see LVNV_ControlParams_st
19587+*/
19588+#define LVNV_NLMS0_LB_TAPS_DEFAULT (32)
19589+/**
19590+* @def LVNV_NLMS0_LB_TAPS_MIN
19591+* MinValue of NLMS0_LB_taps
19592+* @see LVNV_ControlParams_st
19593+*/
19594+#define LVNV_NLMS0_LB_TAPS_MIN (16)
19595+/**
19596+* @def LVNV_NLMS0_LB_TAPS_MAX
19597+* MaxValue of NLMS0_LB_taps
19598+* @see LVNV_ControlParams_st
19599+*/
19600+#define LVNV_NLMS0_LB_TAPS_MAX (64)
19601+
19602+/**
19603+* @def LVNV_NLMS0_LB_TWOALPHA_DEFAULT
19604+* Default of NLMS0_LB_twoalpha
19605+* @see LVNV_ControlParams_st
19606+*/
19607+#define LVNV_NLMS0_LB_TWOALPHA_DEFAULT (8192)
19608+/**
19609+* @def LVNV_NLMS0_LB_TWOALPHA_MIN
19610+* MinValue of NLMS0_LB_twoalpha
19611+* @see LVNV_ControlParams_st
19612+*/
19613+#define LVNV_NLMS0_LB_TWOALPHA_MIN (0)
19614+/**
19615+* @def LVNV_NLMS0_LB_TWOALPHA_MAX
19616+* MaxValue of NLMS0_LB_twoalpha
19617+* @see LVNV_ControlParams_st
19618+*/
19619+#define LVNV_NLMS0_LB_TWOALPHA_MAX (32767)
19620+
19621+/**
19622+* @def LVNV_NLMS0_LB_ERL_DEFAULT
19623+* Default of NLMS0_LB_erl
19624+* @see LVNV_ControlParams_st
19625+*/
19626+#define LVNV_NLMS0_LB_ERL_DEFAULT (1000)
19627+/**
19628+* @def LVNV_NLMS0_LB_ERL_MIN
19629+* MinValue of NLMS0_LB_erl
19630+* @see LVNV_ControlParams_st
19631+*/
19632+#define LVNV_NLMS0_LB_ERL_MIN (64)
19633+/**
19634+* @def LVNV_NLMS0_LB_ERL_MAX
19635+* MaxValue of NLMS0_LB_erl
19636+* @see LVNV_ControlParams_st
19637+*/
19638+#define LVNV_NLMS0_LB_ERL_MAX (32767)
19639+
19640+/**
19641+* @def LVNV_NLMS0_HB_TAPS_DEFAULT
19642+* Default of NLMS0_HB_taps
19643+* @see LVNV_ControlParams_st
19644+*/
19645+#define LVNV_NLMS0_HB_TAPS_DEFAULT (24)
19646+/**
19647+* @def LVNV_NLMS0_HB_TAPS_MIN
19648+* MinValue of NLMS0_HB_taps
19649+* @see LVNV_ControlParams_st
19650+*/
19651+#define LVNV_NLMS0_HB_TAPS_MIN (16)
19652+/**
19653+* @def LVNV_NLMS0_HB_TAPS_MAX
19654+* MaxValue of NLMS0_HB_taps
19655+* @see LVNV_ControlParams_st
19656+*/
19657+#define LVNV_NLMS0_HB_TAPS_MAX (64)
19658+
19659+/**
19660+* @def LVNV_NLMS0_HB_TWOALPHA_DEFAULT
19661+* Default of NLMS0_HB_twoalpha
19662+* @see LVNV_ControlParams_st
19663+*/
19664+#define LVNV_NLMS0_HB_TWOALPHA_DEFAULT (8192)
19665+/**
19666+* @def LVNV_NLMS0_HB_TWOALPHA_MIN
19667+* MinValue of NLMS0_HB_twoalpha
19668+* @see LVNV_ControlParams_st
19669+*/
19670+#define LVNV_NLMS0_HB_TWOALPHA_MIN (0)
19671+/**
19672+* @def LVNV_NLMS0_HB_TWOALPHA_MAX
19673+* MaxValue of NLMS0_HB_twoalpha
19674+* @see LVNV_ControlParams_st
19675+*/
19676+#define LVNV_NLMS0_HB_TWOALPHA_MAX (32767)
19677+
19678+/**
19679+* @def LVNV_NLMS0_HB_ERL_DEFAULT
19680+* Default of NLMS0_HB_erl
19681+* @see LVNV_ControlParams_st
19682+*/
19683+#define LVNV_NLMS0_HB_ERL_DEFAULT (1000)
19684+/**
19685+* @def LVNV_NLMS0_HB_ERL_MIN
19686+* MinValue of NLMS0_HB_erl
19687+* @see LVNV_ControlParams_st
19688+*/
19689+#define LVNV_NLMS0_HB_ERL_MIN (64)
19690+/**
19691+* @def LVNV_NLMS0_HB_ERL_MAX
19692+* MaxValue of NLMS0_HB_erl
19693+* @see LVNV_ControlParams_st
19694+*/
19695+#define LVNV_NLMS0_HB_ERL_MAX (32767)
19696+
19697+/**
19698+* @def LVNV_NLMS0_PRESET_COEFS_DEFAULT
19699+* Default of NLMS0_preset_coefs
19700+* @see LVNV_ControlParams_st
19701+*/
19702+#define LVNV_NLMS0_PRESET_COEFS_DEFAULT (0)
19703+/**
19704+* @def LVNV_NLMS0_PRESET_COEFS_MIN
19705+* MinValue of NLMS0_preset_coefs
19706+* @see LVNV_ControlParams_st
19707+*/
19708+#define LVNV_NLMS0_PRESET_COEFS_MIN (0)
19709+/**
19710+* @def LVNV_NLMS0_PRESET_COEFS_MAX
19711+* MaxValue of NLMS0_preset_coefs
19712+* @see LVNV_ControlParams_st
19713+*/
19714+#define LVNV_NLMS0_PRESET_COEFS_MAX (2)
19715+
19716+/**
19717+* @def LVNV_NLMS0_OFFSET_DEFAULT
19718+* Default of NLMS0_offset
19719+* @see LVNV_ControlParams_st
19720+*/
19721+#define LVNV_NLMS0_OFFSET_DEFAULT (776)
19722+/**
19723+* @def LVNV_NLMS0_OFFSET_MIN
19724+* MinValue of NLMS0_offset
19725+* @see LVNV_ControlParams_st
19726+*/
19727+#define LVNV_NLMS0_OFFSET_MIN (0)
19728+/**
19729+* @def LVNV_NLMS0_OFFSET_MAX
19730+* MaxValue of NLMS0_offset
19731+* @see LVNV_ControlParams_st
19732+*/
19733+#define LVNV_NLMS0_OFFSET_MAX (32767)
19734+
19735+/**
19736+* @def LVNV_NLMS1_LB_TAPS_DEFAULT
19737+* Default of NLMS1_LB_taps
19738+* @see LVNV_ControlParams_st
19739+*/
19740+#define LVNV_NLMS1_LB_TAPS_DEFAULT (32)
19741+/**
19742+* @def LVNV_NLMS1_LB_TAPS_MIN
19743+* MinValue of NLMS1_LB_taps
19744+* @see LVNV_ControlParams_st
19745+*/
19746+#define LVNV_NLMS1_LB_TAPS_MIN (16)
19747+/**
19748+* @def LVNV_NLMS1_LB_TAPS_MAX
19749+* MaxValue of NLMS1_LB_taps
19750+* @see LVNV_ControlParams_st
19751+*/
19752+#define LVNV_NLMS1_LB_TAPS_MAX (32)
19753+
19754+/**
19755+* @def LVNV_NLMS1_LB_TWOALPHA_DEFAULT
19756+* Default of NLMS1_LB_twoalpha
19757+* @see LVNV_ControlParams_st
19758+*/
19759+#define LVNV_NLMS1_LB_TWOALPHA_DEFAULT (8192)
19760+/**
19761+* @def LVNV_NLMS1_LB_TWOALPHA_MIN
19762+* MinValue of NLMS1_LB_twoalpha
19763+* @see LVNV_ControlParams_st
19764+*/
19765+#define LVNV_NLMS1_LB_TWOALPHA_MIN (0)
19766+/**
19767+* @def LVNV_NLMS1_LB_TWOALPHA_MAX
19768+* MaxValue of NLMS1_LB_twoalpha
19769+* @see LVNV_ControlParams_st
19770+*/
19771+#define LVNV_NLMS1_LB_TWOALPHA_MAX (32767)
19772+
19773+/**
19774+* @def LVNV_NLMS1_LB_ERL_DEFAULT
19775+* Default of NLMS1_LB_erl
19776+* @see LVNV_ControlParams_st
19777+*/
19778+#define LVNV_NLMS1_LB_ERL_DEFAULT (1000)
19779+/**
19780+* @def LVNV_NLMS1_LB_ERL_MIN
19781+* MinValue of NLMS1_LB_erl
19782+* @see LVNV_ControlParams_st
19783+*/
19784+#define LVNV_NLMS1_LB_ERL_MIN (64)
19785+/**
19786+* @def LVNV_NLMS1_LB_ERL_MAX
19787+* MaxValue of NLMS1_LB_erl
19788+* @see LVNV_ControlParams_st
19789+*/
19790+#define LVNV_NLMS1_LB_ERL_MAX (32767)
19791+
19792+/**
19793+* @def LVNV_NLMS1_HB_TAPS_DEFAULT
19794+* Default of NLMS1_HB_taps
19795+* @see LVNV_ControlParams_st
19796+*/
19797+#define LVNV_NLMS1_HB_TAPS_DEFAULT (24)
19798+/**
19799+* @def LVNV_NLMS1_HB_TAPS_MIN
19800+* MinValue of NLMS1_HB_taps
19801+* @see LVNV_ControlParams_st
19802+*/
19803+#define LVNV_NLMS1_HB_TAPS_MIN (16)
19804+/**
19805+* @def LVNV_NLMS1_HB_TAPS_MAX
19806+* MaxValue of NLMS1_HB_taps
19807+* @see LVNV_ControlParams_st
19808+*/
19809+#define LVNV_NLMS1_HB_TAPS_MAX (32)
19810+
19811+/**
19812+* @def LVNV_NLMS1_HB_TWOALPHA_DEFAULT
19813+* Default of NLMS1_HB_twoalpha
19814+* @see LVNV_ControlParams_st
19815+*/
19816+#define LVNV_NLMS1_HB_TWOALPHA_DEFAULT (8192)
19817+/**
19818+* @def LVNV_NLMS1_HB_TWOALPHA_MIN
19819+* MinValue of NLMS1_HB_twoalpha
19820+* @see LVNV_ControlParams_st
19821+*/
19822+#define LVNV_NLMS1_HB_TWOALPHA_MIN (0)
19823+/**
19824+* @def LVNV_NLMS1_HB_TWOALPHA_MAX
19825+* MaxValue of NLMS1_HB_twoalpha
19826+* @see LVNV_ControlParams_st
19827+*/
19828+#define LVNV_NLMS1_HB_TWOALPHA_MAX (32767)
19829+
19830+/**
19831+* @def LVNV_NLMS1_HB_ERL_DEFAULT
19832+* Default of NLMS1_HB_erl
19833+* @see LVNV_ControlParams_st
19834+*/
19835+#define LVNV_NLMS1_HB_ERL_DEFAULT (1000)
19836+/**
19837+* @def LVNV_NLMS1_HB_ERL_MIN
19838+* MinValue of NLMS1_HB_erl
19839+* @see LVNV_ControlParams_st
19840+*/
19841+#define LVNV_NLMS1_HB_ERL_MIN (64)
19842+/**
19843+* @def LVNV_NLMS1_HB_ERL_MAX
19844+* MaxValue of NLMS1_HB_erl
19845+* @see LVNV_ControlParams_st
19846+*/
19847+#define LVNV_NLMS1_HB_ERL_MAX (32767)
19848+
19849+/**
19850+* @def LVNV_NLMS1_PRESET_COEFS_DEFAULT
19851+* Default of NLMS1_preset_coefs
19852+* @see LVNV_ControlParams_st
19853+*/
19854+#define LVNV_NLMS1_PRESET_COEFS_DEFAULT (0)
19855+/**
19856+* @def LVNV_NLMS1_PRESET_COEFS_MIN
19857+* MinValue of NLMS1_preset_coefs
19858+* @see LVNV_ControlParams_st
19859+*/
19860+#define LVNV_NLMS1_PRESET_COEFS_MIN (0)
19861+/**
19862+* @def LVNV_NLMS1_PRESET_COEFS_MAX
19863+* MaxValue of NLMS1_preset_coefs
19864+* @see LVNV_ControlParams_st
19865+*/
19866+#define LVNV_NLMS1_PRESET_COEFS_MAX (2)
19867+
19868+/**
19869+* @def LVNV_NLMS1_OFFSET_DEFAULT
19870+* Default of NLMS1_offset
19871+* @see LVNV_ControlParams_st
19872+*/
19873+#define LVNV_NLMS1_OFFSET_DEFAULT (776)
19874+/**
19875+* @def LVNV_NLMS1_OFFSET_MIN
19876+* MinValue of NLMS1_offset
19877+* @see LVNV_ControlParams_st
19878+*/
19879+#define LVNV_NLMS1_OFFSET_MIN (0)
19880+/**
19881+* @def LVNV_NLMS1_OFFSET_MAX
19882+* MaxValue of NLMS1_offset
19883+* @see LVNV_ControlParams_st
19884+*/
19885+#define LVNV_NLMS1_OFFSET_MAX (32767)
19886+
19887+/**
19888+* @def LVNV_CAL_MICPOWFLOORMIN_DEFAULT
19889+* Default of CAL_micPowFloorMin
19890+* @see LVNV_ControlParams_st
19891+*/
19892+#define LVNV_CAL_MICPOWFLOORMIN_DEFAULT (150)
19893+/**
19894+* @def LVNV_CAL_MICPOWFLOORMIN_MIN
19895+* MinValue of CAL_micPowFloorMin
19896+* @see LVNV_ControlParams_st
19897+*/
19898+#define LVNV_CAL_MICPOWFLOORMIN_MIN (0)
19899+/**
19900+* @def LVNV_CAL_MICPOWFLOORMIN_MAX
19901+* MaxValue of CAL_micPowFloorMin
19902+* @see LVNV_ControlParams_st
19903+*/
19904+#define LVNV_CAL_MICPOWFLOORMIN_MAX (32767)
19905+
19906+/**
19907+* @def LVNV_WGTHRESHOLD_DEFAULT
19908+* Default of WgThreshold
19909+* @see LVNV_ControlParams_st
19910+*/
19911+#define LVNV_WGTHRESHOLD_DEFAULT (32767)
19912+/**
19913+* @def LVNV_WGTHRESHOLD_MIN
19914+* MinValue of WgThreshold
19915+* @see LVNV_ControlParams_st
19916+*/
19917+#define LVNV_WGTHRESHOLD_MIN (0)
19918+/**
19919+* @def LVNV_WGTHRESHOLD_MAX
19920+* MaxValue of WgThreshold
19921+* @see LVNV_ControlParams_st
19922+*/
19923+#define LVNV_WGTHRESHOLD_MAX (32767)
19924+
19925+/**
19926+* @def LVNV_MPTHRESHOLD_DEFAULT
19927+* Default of MpThreshold
19928+* @see LVNV_ControlParams_st
19929+*/
19930+#define LVNV_MPTHRESHOLD_DEFAULT (6554)
19931+/**
19932+* @def LVNV_MPTHRESHOLD_MIN
19933+* MinValue of MpThreshold
19934+* @see LVNV_ControlParams_st
19935+*/
19936+#define LVNV_MPTHRESHOLD_MIN (0)
19937+/**
19938+* @def LVNV_MPTHRESHOLD_MAX
19939+* MaxValue of MpThreshold
19940+* @see LVNV_ControlParams_st
19941+*/
19942+#define LVNV_MPTHRESHOLD_MAX (32767)
19943+
19944+/**
19945+* @def LVNV_FSB_INIT_TABLE0_DEFAULT
19946+* Default of FSB_init_table0
19947+* @see LVNV_ControlParams_st
19948+*/
19949+#define LVNV_FSB_INIT_TABLE0_DEFAULT {32767, 0, 0, 0, 0, 0, 0, 0}
19950+/**
19951+* @def LVNV_FSB_INIT_TABLE0_MIN
19952+* MinValue of FSB_init_table0
19953+* @see LVNV_ControlParams_st
19954+*/
19955+#define LVNV_FSB_INIT_TABLE0_MIN (-32768)
19956+/**
19957+* @def LVNV_FSB_INIT_TABLE0_MAX
19958+* MaxValue of FSB_init_table0
19959+* @see LVNV_ControlParams_st
19960+*/
19961+#define LVNV_FSB_INIT_TABLE0_MAX (32767)
19962+/**
19963+* @def LVNV_FSB_INIT_TABLE0_LENGTH
19964+* Length of FSB_init_table0
19965+* @see LVNV_ControlParams_st
19966+*/
19967+#define LVNV_FSB_INIT_TABLE0_LENGTH (8)
19968+
19969+/**
19970+* @def LVNV_FSB_INIT_TABLE1_DEFAULT
19971+* Default of FSB_init_table1
19972+* @see LVNV_ControlParams_st
19973+*/
19974+#define LVNV_FSB_INIT_TABLE1_DEFAULT {0, 0, 0, 0, 0, 0, 0, 0}
19975+/**
19976+* @def LVNV_FSB_INIT_TABLE1_MIN
19977+* MinValue of FSB_init_table1
19978+* @see LVNV_ControlParams_st
19979+*/
19980+#define LVNV_FSB_INIT_TABLE1_MIN (-32768)
19981+/**
19982+* @def LVNV_FSB_INIT_TABLE1_MAX
19983+* MaxValue of FSB_init_table1
19984+* @see LVNV_ControlParams_st
19985+*/
19986+#define LVNV_FSB_INIT_TABLE1_MAX (32767)
19987+/**
19988+* @def LVNV_FSB_INIT_TABLE1_LENGTH
19989+* Length of FSB_init_table1
19990+* @see LVNV_ControlParams_st
19991+*/
19992+#define LVNV_FSB_INIT_TABLE1_LENGTH (8)
19993+
19994+/**
19995+* @def LVNV_FSB_TAPS_DEFAULT
19996+* Default of FSB_taps
19997+* @see LVNV_ControlParams_st
19998+*/
19999+#define LVNV_FSB_TAPS_DEFAULT (16)
20000+/**
20001+* @def LVNV_FSB_TAPS_MIN
20002+* MinValue of FSB_taps
20003+* @see LVNV_ControlParams_st
20004+*/
20005+#define LVNV_FSB_TAPS_MIN (8)
20006+/**
20007+* @def LVNV_FSB_TAPS_MAX
20008+* MaxValue of FSB_taps
20009+* @see LVNV_ControlParams_st
20010+*/
20011+#define LVNV_FSB_TAPS_MAX (16)
20012+
20013+/**
20014+* @def LVNV_FSB_TWOALPHA_DEFAULT
20015+* Default of FSB_twoalpha
20016+* @see LVNV_ControlParams_st
20017+*/
20018+#define LVNV_FSB_TWOALPHA_DEFAULT (655)
20019+/**
20020+* @def LVNV_FSB_TWOALPHA_MIN
20021+* MinValue of FSB_twoalpha
20022+* @see LVNV_ControlParams_st
20023+*/
20024+#define LVNV_FSB_TWOALPHA_MIN (0)
20025+/**
20026+* @def LVNV_FSB_TWOALPHA_MAX
20027+* MaxValue of FSB_twoalpha
20028+* @see LVNV_ControlParams_st
20029+*/
20030+#define LVNV_FSB_TWOALPHA_MAX (32767)
20031+
20032+/**
20033+* @def LVNV_FSB_REF_GAIN_DEFAULT
20034+* Default of FSB_ref_gain
20035+* @see LVNV_ControlParams_st
20036+*/
20037+#define LVNV_FSB_REF_GAIN_DEFAULT (1024)
20038+/**
20039+* @def LVNV_FSB_REF_GAIN_MIN
20040+* MinValue of FSB_ref_gain
20041+* @see LVNV_ControlParams_st
20042+*/
20043+#define LVNV_FSB_REF_GAIN_MIN (0)
20044+/**
20045+* @def LVNV_FSB_REF_GAIN_MAX
20046+* MaxValue of FSB_ref_gain
20047+* @see LVNV_ControlParams_st
20048+*/
20049+#define LVNV_FSB_REF_GAIN_MAX (32767)
20050+
20051+/**
20052+* @def LVNV_GSC_TAPS_DEFAULT
20053+* Default of GSC_taps
20054+* @see LVNV_ControlParams_st
20055+*/
20056+#define LVNV_GSC_TAPS_DEFAULT (16)
20057+/**
20058+* @def LVNV_GSC_TAPS_MIN
20059+* MinValue of GSC_taps
20060+* @see LVNV_ControlParams_st
20061+*/
20062+#define LVNV_GSC_TAPS_MIN (8)
20063+/**
20064+* @def LVNV_GSC_TAPS_MAX
20065+* MaxValue of GSC_taps
20066+* @see LVNV_ControlParams_st
20067+*/
20068+#define LVNV_GSC_TAPS_MAX (48)
20069+
20070+/**
20071+* @def LVNV_GSC_TWOALPHA_DEFAULT
20072+* Default of GSC_twoalpha
20073+* @see LVNV_ControlParams_st
20074+*/
20075+#define LVNV_GSC_TWOALPHA_DEFAULT (1638)
20076+/**
20077+* @def LVNV_GSC_TWOALPHA_MIN
20078+* MinValue of GSC_twoalpha
20079+* @see LVNV_ControlParams_st
20080+*/
20081+#define LVNV_GSC_TWOALPHA_MIN (0)
20082+/**
20083+* @def LVNV_GSC_TWOALPHA_MAX
20084+* MaxValue of GSC_twoalpha
20085+* @see LVNV_ControlParams_st
20086+*/
20087+#define LVNV_GSC_TWOALPHA_MAX (32767)
20088+
20089+/**
20090+* @def LVNV_GSC_ERL_DEFAULT
20091+* Default of GSC_erl
20092+* @see LVNV_ControlParams_st
20093+*/
20094+#define LVNV_GSC_ERL_DEFAULT (256)
20095+/**
20096+* @def LVNV_GSC_ERL_MIN
20097+* MinValue of GSC_erl
20098+* @see LVNV_ControlParams_st
20099+*/
20100+#define LVNV_GSC_ERL_MIN (64)
20101+/**
20102+* @def LVNV_GSC_ERL_MAX
20103+* MaxValue of GSC_erl
20104+* @see LVNV_ControlParams_st
20105+*/
20106+#define LVNV_GSC_ERL_MAX (32767)
20107+
20108+/**
20109+* @def LVNV_GSC_OFFSET_DEFAULT
20110+* Default of GSC_offset
20111+* @see LVNV_ControlParams_st
20112+*/
20113+#define LVNV_GSC_OFFSET_DEFAULT (1638)
20114+/**
20115+* @def LVNV_GSC_OFFSET_MIN
20116+* MinValue of GSC_offset
20117+* @see LVNV_ControlParams_st
20118+*/
20119+#define LVNV_GSC_OFFSET_MIN (0)
20120+/**
20121+* @def LVNV_GSC_OFFSET_MAX
20122+* MaxValue of GSC_offset
20123+* @see LVNV_ControlParams_st
20124+*/
20125+#define LVNV_GSC_OFFSET_MAX (32767)
20126+
20127+/**
20128+* @def LVNV_DNNS_ECHOGAMMAHI_DEFAULT
20129+* Default of DNNS_EchoGammaHi
20130+* @see LVNV_ControlParams_st
20131+*/
20132+#define LVNV_DNNS_ECHOGAMMAHI_DEFAULT (16384)
20133+/**
20134+* @def LVNV_DNNS_ECHOGAMMAHI_MIN
20135+* MinValue of DNNS_EchoGammaHi
20136+* @see LVNV_ControlParams_st
20137+*/
20138+#define LVNV_DNNS_ECHOGAMMAHI_MIN (0)
20139+/**
20140+* @def LVNV_DNNS_ECHOGAMMAHI_MAX
20141+* MaxValue of DNNS_EchoGammaHi
20142+* @see LVNV_ControlParams_st
20143+*/
20144+#define LVNV_DNNS_ECHOGAMMAHI_MAX (32767)
20145+
20146+/**
20147+* @def LVNV_DNNS_ECHOGAMMALO_DEFAULT
20148+* Default of DNNS_EchoGammaLo
20149+* @see LVNV_ControlParams_st
20150+*/
20151+#define LVNV_DNNS_ECHOGAMMALO_DEFAULT (8192)
20152+/**
20153+* @def LVNV_DNNS_ECHOGAMMALO_MIN
20154+* MinValue of DNNS_EchoGammaLo
20155+* @see LVNV_ControlParams_st
20156+*/
20157+#define LVNV_DNNS_ECHOGAMMALO_MIN (0)
20158+/**
20159+* @def LVNV_DNNS_ECHOGAMMALO_MAX
20160+* MaxValue of DNNS_EchoGammaLo
20161+* @see LVNV_ControlParams_st
20162+*/
20163+#define LVNV_DNNS_ECHOGAMMALO_MAX (32767)
20164+
20165+/**
20166+* @def LVNV_DNNS_ECHOALPHAREV_DEFAULT
20167+* Default of DNNS_EchoAlphaRev
20168+* @see LVNV_ControlParams_st
20169+*/
20170+#define LVNV_DNNS_ECHOALPHAREV_DEFAULT (12000)
20171+/**
20172+* @def LVNV_DNNS_ECHOALPHAREV_MIN
20173+* MinValue of DNNS_EchoAlphaRev
20174+* @see LVNV_ControlParams_st
20175+*/
20176+#define LVNV_DNNS_ECHOALPHAREV_MIN (0)
20177+/**
20178+* @def LVNV_DNNS_ECHOALPHAREV_MAX
20179+* MaxValue of DNNS_EchoAlphaRev
20180+* @see LVNV_ControlParams_st
20181+*/
20182+#define LVNV_DNNS_ECHOALPHAREV_MAX (32767)
20183+
20184+/**
20185+* @def LVNV_DNNS_ECHOTAILPORTION_DEFAULT
20186+* Default of DNNS_EchoTailPortion
20187+* @see LVNV_ControlParams_st
20188+*/
20189+#define LVNV_DNNS_ECHOTAILPORTION_DEFAULT (7000)
20190+/**
20191+* @def LVNV_DNNS_ECHOTAILPORTION_MIN
20192+* MinValue of DNNS_EchoTailPortion
20193+* @see LVNV_ControlParams_st
20194+*/
20195+#define LVNV_DNNS_ECHOTAILPORTION_MIN (0)
20196+/**
20197+* @def LVNV_DNNS_ECHOTAILPORTION_MAX
20198+* MaxValue of DNNS_EchoTailPortion
20199+* @see LVNV_ControlParams_st
20200+*/
20201+#define LVNV_DNNS_ECHOTAILPORTION_MAX (32767)
20202+
20203+/**
20204+* @def LVNV_DNNS_NLATTEN_DEFAULT
20205+* Default of DNNS_NlAtten
20206+* @see LVNV_ControlParams_st
20207+*/
20208+#define LVNV_DNNS_NLATTEN_DEFAULT (256)
20209+/**
20210+* @def LVNV_DNNS_NLATTEN_MIN
20211+* MinValue of DNNS_NlAtten
20212+* @see LVNV_ControlParams_st
20213+*/
20214+#define LVNV_DNNS_NLATTEN_MIN (0)
20215+/**
20216+* @def LVNV_DNNS_NLATTEN_MAX
20217+* MaxValue of DNNS_NlAtten
20218+* @see LVNV_ControlParams_st
20219+*/
20220+#define LVNV_DNNS_NLATTEN_MAX (2048)
20221+
20222+/**
20223+* @def LVNV_DNNS_NOISEGAMMAS_DEFAULT
20224+* Default of DNNS_NoiseGammaS
20225+* @see LVNV_ControlParams_st
20226+*/
20227+#define LVNV_DNNS_NOISEGAMMAS_DEFAULT (11470)
20228+/**
20229+* @def LVNV_DNNS_NOISEGAMMAS_MIN
20230+* MinValue of DNNS_NoiseGammaS
20231+* @see LVNV_ControlParams_st
20232+*/
20233+#define LVNV_DNNS_NOISEGAMMAS_MIN (0)
20234+/**
20235+* @def LVNV_DNNS_NOISEGAMMAS_MAX
20236+* MaxValue of DNNS_NoiseGammaS
20237+* @see LVNV_ControlParams_st
20238+*/
20239+#define LVNV_DNNS_NOISEGAMMAS_MAX (32767)
20240+
20241+/**
20242+* @def LVNV_DNNS_NOISEGAMMAN_DEFAULT
20243+* Default of DNNS_NoiseGammaN
20244+* @see LVNV_ControlParams_st
20245+*/
20246+#define LVNV_DNNS_NOISEGAMMAN_DEFAULT (16384)
20247+/**
20248+* @def LVNV_DNNS_NOISEGAMMAN_MIN
20249+* MinValue of DNNS_NoiseGammaN
20250+* @see LVNV_ControlParams_st
20251+*/
20252+#define LVNV_DNNS_NOISEGAMMAN_MIN (0)
20253+/**
20254+* @def LVNV_DNNS_NOISEGAMMAN_MAX
20255+* MaxValue of DNNS_NoiseGammaN
20256+* @see LVNV_ControlParams_st
20257+*/
20258+#define LVNV_DNNS_NOISEGAMMAN_MAX (32767)
20259+
20260+/**
20261+* @def LVNV_DNNS_NOISEGAINMINS_DEFAULT
20262+* Default of DNNS_NoiseGainMinS
20263+* @see LVNV_ControlParams_st
20264+*/
20265+#define LVNV_DNNS_NOISEGAINMINS_DEFAULT (11140)
20266+/**
20267+* @def LVNV_DNNS_NOISEGAINMINS_MIN
20268+* MinValue of DNNS_NoiseGainMinS
20269+* @see LVNV_ControlParams_st
20270+*/
20271+#define LVNV_DNNS_NOISEGAINMINS_MIN (0)
20272+/**
20273+* @def LVNV_DNNS_NOISEGAINMINS_MAX
20274+* MaxValue of DNNS_NoiseGainMinS
20275+* @see LVNV_ControlParams_st
20276+*/
20277+#define LVNV_DNNS_NOISEGAINMINS_MAX (32767)
20278+
20279+/**
20280+* @def LVNV_DNNS_NOISEGAINMINN_DEFAULT
20281+* Default of DNNS_NoiseGainMinN
20282+* @see LVNV_ControlParams_st
20283+*/
20284+#define LVNV_DNNS_NOISEGAINMINN_DEFAULT (6554)
20285+/**
20286+* @def LVNV_DNNS_NOISEGAINMINN_MIN
20287+* MinValue of DNNS_NoiseGainMinN
20288+* @see LVNV_ControlParams_st
20289+*/
20290+#define LVNV_DNNS_NOISEGAINMINN_MIN (0)
20291+/**
20292+* @def LVNV_DNNS_NOISEGAINMINN_MAX
20293+* MaxValue of DNNS_NoiseGainMinN
20294+* @see LVNV_ControlParams_st
20295+*/
20296+#define LVNV_DNNS_NOISEGAINMINN_MAX (32767)
20297+
20298+/**
20299+* @def LVNV_DNNS_NOISEBIASCOMP_DEFAULT
20300+* Default of DNNS_NoiseBiasComp
20301+* @see LVNV_ControlParams_st
20302+*/
20303+#define LVNV_DNNS_NOISEBIASCOMP_DEFAULT (9830)
20304+/**
20305+* @def LVNV_DNNS_NOISEBIASCOMP_MIN
20306+* MinValue of DNNS_NoiseBiasComp
20307+* @see LVNV_ControlParams_st
20308+*/
20309+#define LVNV_DNNS_NOISEBIASCOMP_MIN (0)
20310+/**
20311+* @def LVNV_DNNS_NOISEBIASCOMP_MAX
20312+* MaxValue of DNNS_NoiseBiasComp
20313+* @see LVNV_ControlParams_st
20314+*/
20315+#define LVNV_DNNS_NOISEBIASCOMP_MAX (32767)
20316+
20317+/**
20318+* @def LVNV_DNNS_GAINETA_DEFAULT
20319+* Default of DNNS_GainEta
20320+* @see LVNV_ControlParams_st
20321+*/
20322+#define LVNV_DNNS_GAINETA_DEFAULT (256)
20323+/**
20324+* @def LVNV_DNNS_GAINETA_MIN
20325+* MinValue of DNNS_GainEta
20326+* @see LVNV_ControlParams_st
20327+*/
20328+#define LVNV_DNNS_GAINETA_MIN (0)
20329+/**
20330+* @def LVNV_DNNS_GAINETA_MAX
20331+* MaxValue of DNNS_GainEta
20332+* @see LVNV_ControlParams_st
20333+*/
20334+#define LVNV_DNNS_GAINETA_MAX (32767)
20335+
20336+/**
20337+* @def LVNV_DNNS_ACTHRESHOLD_DEFAULT
20338+* Default of DNNS_AcThreshold
20339+* @see LVNV_ControlParams_st
20340+*/
20341+#define LVNV_DNNS_ACTHRESHOLD_DEFAULT (12288)
20342+/**
20343+* @def LVNV_DNNS_ACTHRESHOLD_MIN
20344+* MinValue of DNNS_AcThreshold
20345+* @see LVNV_ControlParams_st
20346+*/
20347+#define LVNV_DNNS_ACTHRESHOLD_MIN (0)
20348+/**
20349+* @def LVNV_DNNS_ACTHRESHOLD_MAX
20350+* MaxValue of DNNS_AcThreshold
20351+* @see LVNV_ControlParams_st
20352+*/
20353+#define LVNV_DNNS_ACTHRESHOLD_MAX (32767)
20354+
20355+/**
20356+* @def LVNV_DNNS_WBTHRESHOLD_DEFAULT
20357+* Default of DNNS_WbThreshold
20358+* @see LVNV_ControlParams_st
20359+*/
20360+#define LVNV_DNNS_WBTHRESHOLD_DEFAULT (9216)
20361+/**
20362+* @def LVNV_DNNS_WBTHRESHOLD_MIN
20363+* MinValue of DNNS_WbThreshold
20364+* @see LVNV_ControlParams_st
20365+*/
20366+#define LVNV_DNNS_WBTHRESHOLD_MIN (0)
20367+/**
20368+* @def LVNV_DNNS_WBTHRESHOLD_MAX
20369+* MaxValue of DNNS_WbThreshold
20370+* @see LVNV_ControlParams_st
20371+*/
20372+#define LVNV_DNNS_WBTHRESHOLD_MAX (32767)
20373+
20374+/**
20375+* @def LVNV_DNNS_LOSTBEAMTHRESHOLD_DEFAULT
20376+* Default of DNNS_LostBeamThreshold
20377+* @see LVNV_ControlParams_st
20378+*/
20379+#define LVNV_DNNS_LOSTBEAMTHRESHOLD_DEFAULT (320)
20380+/**
20381+* @def LVNV_DNNS_LOSTBEAMTHRESHOLD_MIN
20382+* MinValue of DNNS_LostBeamThreshold
20383+* @see LVNV_ControlParams_st
20384+*/
20385+#define LVNV_DNNS_LOSTBEAMTHRESHOLD_MIN (0)
20386+/**
20387+* @def LVNV_DNNS_LOSTBEAMTHRESHOLD_MAX
20388+* MaxValue of DNNS_LostBeamThreshold
20389+* @see LVNV_ControlParams_st
20390+*/
20391+#define LVNV_DNNS_LOSTBEAMTHRESHOLD_MAX (32767)
20392+
20393+/**
20394+* @def LVNV_PCD_BETA_DEFAULT
20395+* Default of PCD_beta
20396+* @see LVNV_ControlParams_st
20397+*/
20398+#define LVNV_PCD_BETA_DEFAULT (230)
20399+/**
20400+* @def LVNV_PCD_BETA_MIN
20401+* MinValue of PCD_beta
20402+* @see LVNV_ControlParams_st
20403+*/
20404+#define LVNV_PCD_BETA_MIN (0)
20405+/**
20406+* @def LVNV_PCD_BETA_MAX
20407+* MaxValue of PCD_beta
20408+* @see LVNV_ControlParams_st
20409+*/
20410+#define LVNV_PCD_BETA_MAX (32767)
20411+
20412+/**
20413+* @def LVNV_PCD_THRESHOLD_DEFAULT
20414+* Default of PCD_Threshold
20415+* @see LVNV_ControlParams_st
20416+*/
20417+#define LVNV_PCD_THRESHOLD_DEFAULT (26213)
20418+/**
20419+* @def LVNV_PCD_THRESHOLD_MIN
20420+* MinValue of PCD_Threshold
20421+* @see LVNV_ControlParams_st
20422+*/
20423+#define LVNV_PCD_THRESHOLD_MIN (0)
20424+/**
20425+* @def LVNV_PCD_THRESHOLD_MAX
20426+* MaxValue of PCD_Threshold
20427+* @see LVNV_ControlParams_st
20428+*/
20429+#define LVNV_PCD_THRESHOLD_MAX (32767)
20430+
20431+/**
20432+* @def LVHF_OPERATINGMODE_DEFAULT
20433+* Default of OperatingMode
20434+* @see LVHF_ControlParams_st
20435+*/
20436+#define LVHF_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
20437+
20438+/**
20439+* @def LVHF_MODE_DEFAULT
20440+* Default of Mode
20441+* @see LVHF_ControlParams_st
20442+*/
20443+#define LVHF_MODE_DEFAULT (4607)
20444+
20445+/**
20446+* @def LVHF_TUNINGMODE_DEFAULT
20447+* Default of TuningMode
20448+* @see LVHF_ControlParams_st
20449+*/
20450+#define LVHF_TUNINGMODE_DEFAULT (0)
20451+
20452+/**
20453+* @def LVHF_INPUTGAIN_DEFAULT
20454+* Default of InputGain
20455+* @see LVHF_ControlParams_st
20456+*/
20457+#define LVHF_INPUTGAIN_DEFAULT (8192)
20458+/**
20459+* @def LVHF_INPUTGAIN_MIN
20460+* MinValue of InputGain
20461+* @see LVHF_ControlParams_st
20462+*/
20463+#define LVHF_INPUTGAIN_MIN (0)
20464+/**
20465+* @def LVHF_INPUTGAIN_MAX
20466+* MaxValue of InputGain
20467+* @see LVHF_ControlParams_st
20468+*/
20469+#define LVHF_INPUTGAIN_MAX (32767)
20470+
20471+/**
20472+* @def LVHF_OUTPUTGAIN_DEFAULT
20473+* Default of OutputGain
20474+* @see LVHF_ControlParams_st
20475+*/
20476+#define LVHF_OUTPUTGAIN_DEFAULT (2048)
20477+/**
20478+* @def LVHF_OUTPUTGAIN_MIN
20479+* MinValue of OutputGain
20480+* @see LVHF_ControlParams_st
20481+*/
20482+#define LVHF_OUTPUTGAIN_MIN (0)
20483+/**
20484+* @def LVHF_OUTPUTGAIN_MAX
20485+* MaxValue of OutputGain
20486+* @see LVHF_ControlParams_st
20487+*/
20488+#define LVHF_OUTPUTGAIN_MAX (32767)
20489+
20490+/**
20491+* @def LVHF_NLMS_LIMIT_DEFAULT
20492+* Default of NLMS_limit
20493+* @see LVHF_ControlParams_st
20494+*/
20495+#define LVHF_NLMS_LIMIT_DEFAULT (0)
20496+/**
20497+* @def LVHF_NLMS_LIMIT_MIN
20498+* MinValue of NLMS_limit
20499+* @see LVHF_ControlParams_st
20500+*/
20501+#define LVHF_NLMS_LIMIT_MIN (-24)
20502+/**
20503+* @def LVHF_NLMS_LIMIT_MAX
20504+* MaxValue of NLMS_limit
20505+* @see LVHF_ControlParams_st
20506+*/
20507+#define LVHF_NLMS_LIMIT_MAX (0)
20508+
20509+/**
20510+* @def LVHF_NLMS_LB_TAPS_DEFAULT
20511+* Default of NLMS_LB_taps
20512+* @see LVHF_ControlParams_st
20513+*/
20514+#define LVHF_NLMS_LB_TAPS_DEFAULT (64)
20515+/**
20516+* @def LVHF_NLMS_LB_TAPS_MIN
20517+* MinValue of NLMS_LB_taps
20518+* @see LVHF_ControlParams_st
20519+*/
20520+#define LVHF_NLMS_LB_TAPS_MIN (16)
20521+/**
20522+* @def LVHF_NLMS_LB_TAPS_MAX
20523+* MaxValue of NLMS_LB_taps
20524+* @see LVHF_ControlParams_st
20525+*/
20526+#define LVHF_NLMS_LB_TAPS_MAX (200)
20527+
20528+/**
20529+* @def LVHF_NLMS_LB_TWO_ALPHA_DEFAULT
20530+* Default of NLMS_LB_two_alpha
20531+* @see LVHF_ControlParams_st
20532+*/
20533+#define LVHF_NLMS_LB_TWO_ALPHA_DEFAULT (8192)
20534+/**
20535+* @def LVHF_NLMS_LB_TWO_ALPHA_MIN
20536+* MinValue of NLMS_LB_two_alpha
20537+* @see LVHF_ControlParams_st
20538+*/
20539+#define LVHF_NLMS_LB_TWO_ALPHA_MIN (0)
20540+/**
20541+* @def LVHF_NLMS_LB_TWO_ALPHA_MAX
20542+* MaxValue of NLMS_LB_two_alpha
20543+* @see LVHF_ControlParams_st
20544+*/
20545+#define LVHF_NLMS_LB_TWO_ALPHA_MAX (32767)
20546+
20547+/**
20548+* @def LVHF_NLMS_LB_ERL_DEFAULT
20549+* Default of NLMS_LB_erl
20550+* @see LVHF_ControlParams_st
20551+*/
20552+#define LVHF_NLMS_LB_ERL_DEFAULT (128)
20553+/**
20554+* @def LVHF_NLMS_LB_ERL_MIN
20555+* MinValue of NLMS_LB_erl
20556+* @see LVHF_ControlParams_st
20557+*/
20558+#define LVHF_NLMS_LB_ERL_MIN (64)
20559+/**
20560+* @def LVHF_NLMS_LB_ERL_MAX
20561+* MaxValue of NLMS_LB_erl
20562+* @see LVHF_ControlParams_st
20563+*/
20564+#define LVHF_NLMS_LB_ERL_MAX (32767)
20565+
20566+/**
20567+* @def LVHF_NLMS_HB_TAPS_DEFAULT
20568+* Default of NLMS_HB_taps
20569+* @see LVHF_ControlParams_st
20570+*/
20571+#define LVHF_NLMS_HB_TAPS_DEFAULT (64)
20572+/**
20573+* @def LVHF_NLMS_HB_TAPS_MIN
20574+* MinValue of NLMS_HB_taps
20575+* @see LVHF_ControlParams_st
20576+*/
20577+#define LVHF_NLMS_HB_TAPS_MIN (16)
20578+/**
20579+* @def LVHF_NLMS_HB_TAPS_MAX
20580+* MaxValue of NLMS_HB_taps
20581+* @see LVHF_ControlParams_st
20582+*/
20583+#define LVHF_NLMS_HB_TAPS_MAX (136)
20584+
20585+/**
20586+* @def LVHF_NLMS_HB_TWO_ALPHA_DEFAULT
20587+* Default of NLMS_HB_two_alpha
20588+* @see LVHF_ControlParams_st
20589+*/
20590+#define LVHF_NLMS_HB_TWO_ALPHA_DEFAULT (8192)
20591+/**
20592+* @def LVHF_NLMS_HB_TWO_ALPHA_MIN
20593+* MinValue of NLMS_HB_two_alpha
20594+* @see LVHF_ControlParams_st
20595+*/
20596+#define LVHF_NLMS_HB_TWO_ALPHA_MIN (0)
20597+/**
20598+* @def LVHF_NLMS_HB_TWO_ALPHA_MAX
20599+* MaxValue of NLMS_HB_two_alpha
20600+* @see LVHF_ControlParams_st
20601+*/
20602+#define LVHF_NLMS_HB_TWO_ALPHA_MAX (32767)
20603+
20604+/**
20605+* @def LVHF_NLMS_HB_ERL_DEFAULT
20606+* Default of NLMS_HB_erl
20607+* @see LVHF_ControlParams_st
20608+*/
20609+#define LVHF_NLMS_HB_ERL_DEFAULT (128)
20610+/**
20611+* @def LVHF_NLMS_HB_ERL_MIN
20612+* MinValue of NLMS_HB_erl
20613+* @see LVHF_ControlParams_st
20614+*/
20615+#define LVHF_NLMS_HB_ERL_MIN (64)
20616+/**
20617+* @def LVHF_NLMS_HB_ERL_MAX
20618+* MaxValue of NLMS_HB_erl
20619+* @see LVHF_ControlParams_st
20620+*/
20621+#define LVHF_NLMS_HB_ERL_MAX (32767)
20622+
20623+/**
20624+* @def LVHF_NLMS_PRESET_COEFS_DEFAULT
20625+* Default of NLMS_preset_coefs
20626+* @see LVHF_ControlParams_st
20627+*/
20628+#define LVHF_NLMS_PRESET_COEFS_DEFAULT (1)
20629+/**
20630+* @def LVHF_NLMS_PRESET_COEFS_MIN
20631+* MinValue of NLMS_preset_coefs
20632+* @see LVHF_ControlParams_st
20633+*/
20634+#define LVHF_NLMS_PRESET_COEFS_MIN (0)
20635+/**
20636+* @def LVHF_NLMS_PRESET_COEFS_MAX
20637+* MaxValue of NLMS_preset_coefs
20638+* @see LVHF_ControlParams_st
20639+*/
20640+#define LVHF_NLMS_PRESET_COEFS_MAX (2)
20641+
20642+/**
20643+* @def LVHF_NLMS_OFFSET_DEFAULT
20644+* Default of NLMS_offset
20645+* @see LVHF_ControlParams_st
20646+*/
20647+#define LVHF_NLMS_OFFSET_DEFAULT (767)
20648+/**
20649+* @def LVHF_NLMS_OFFSET_MIN
20650+* MinValue of NLMS_offset
20651+* @see LVHF_ControlParams_st
20652+*/
20653+#define LVHF_NLMS_OFFSET_MIN (0)
20654+/**
20655+* @def LVHF_NLMS_OFFSET_MAX
20656+* MaxValue of NLMS_offset
20657+* @see LVHF_ControlParams_st
20658+*/
20659+#define LVHF_NLMS_OFFSET_MAX (32767)
20660+
20661+/**
20662+* @def LVHF_DENS_TAIL_ALPHA_LB_DEFAULT
20663+* Default of DENS_tail_alpha_LB
20664+* @see LVHF_ControlParams_st
20665+*/
20666+#define LVHF_DENS_TAIL_ALPHA_LB_DEFAULT (25395)
20667+/**
20668+* @def LVHF_DENS_TAIL_ALPHA_LB_MIN
20669+* MinValue of DENS_tail_alpha_LB
20670+* @see LVHF_ControlParams_st
20671+*/
20672+#define LVHF_DENS_TAIL_ALPHA_LB_MIN (0)
20673+/**
20674+* @def LVHF_DENS_TAIL_ALPHA_LB_MAX
20675+* MaxValue of DENS_tail_alpha_LB
20676+* @see LVHF_ControlParams_st
20677+*/
20678+#define LVHF_DENS_TAIL_ALPHA_LB_MAX (32767)
20679+
20680+/**
20681+* @def LVHF_DENS_TAIL_PORTION_LB_DEFAULT
20682+* Default of DENS_tail_portion_LB
20683+* @see LVHF_ControlParams_st
20684+*/
20685+#define LVHF_DENS_TAIL_PORTION_LB_DEFAULT (29491)
20686+/**
20687+* @def LVHF_DENS_TAIL_PORTION_LB_MIN
20688+* MinValue of DENS_tail_portion_LB
20689+* @see LVHF_ControlParams_st
20690+*/
20691+#define LVHF_DENS_TAIL_PORTION_LB_MIN (0)
20692+/**
20693+* @def LVHF_DENS_TAIL_PORTION_LB_MAX
20694+* MaxValue of DENS_tail_portion_LB
20695+* @see LVHF_ControlParams_st
20696+*/
20697+#define LVHF_DENS_TAIL_PORTION_LB_MAX (32767)
20698+
20699+/**
20700+* @def LVHF_DENS_GAMMA_E_HIGH_LB_DEFAULT
20701+* Default of DENS_gamma_e_high_LB
20702+* @see LVHF_ControlParams_st
20703+*/
20704+#define LVHF_DENS_GAMMA_E_HIGH_LB_DEFAULT (512)
20705+/**
20706+* @def LVHF_DENS_GAMMA_E_HIGH_LB_MIN
20707+* MinValue of DENS_gamma_e_high_LB
20708+* @see LVHF_ControlParams_st
20709+*/
20710+#define LVHF_DENS_GAMMA_E_HIGH_LB_MIN (0)
20711+/**
20712+* @def LVHF_DENS_GAMMA_E_HIGH_LB_MAX
20713+* MaxValue of DENS_gamma_e_high_LB
20714+* @see LVHF_ControlParams_st
20715+*/
20716+#define LVHF_DENS_GAMMA_E_HIGH_LB_MAX (32767)
20717+
20718+/**
20719+* @def LVHF_DENS_GAMMA_E_DT_LB_DEFAULT
20720+* Default of DENS_gamma_e_dt_LB
20721+* @see LVHF_ControlParams_st
20722+*/
20723+#define LVHF_DENS_GAMMA_E_DT_LB_DEFAULT (256)
20724+/**
20725+* @def LVHF_DENS_GAMMA_E_DT_LB_MIN
20726+* MinValue of DENS_gamma_e_dt_LB
20727+* @see LVHF_ControlParams_st
20728+*/
20729+#define LVHF_DENS_GAMMA_E_DT_LB_MIN (0)
20730+/**
20731+* @def LVHF_DENS_GAMMA_E_DT_LB_MAX
20732+* MaxValue of DENS_gamma_e_dt_LB
20733+* @see LVHF_ControlParams_st
20734+*/
20735+#define LVHF_DENS_GAMMA_E_DT_LB_MAX (32767)
20736+
20737+/**
20738+* @def LVHF_DENS_GAMMA_E_LOW_LB_DEFAULT
20739+* Default of DENS_gamma_e_low_LB
20740+* @see LVHF_ControlParams_st
20741+*/
20742+#define LVHF_DENS_GAMMA_E_LOW_LB_DEFAULT (256)
20743+/**
20744+* @def LVHF_DENS_GAMMA_E_LOW_LB_MIN
20745+* MinValue of DENS_gamma_e_low_LB
20746+* @see LVHF_ControlParams_st
20747+*/
20748+#define LVHF_DENS_GAMMA_E_LOW_LB_MIN (0)
20749+/**
20750+* @def LVHF_DENS_GAMMA_E_LOW_LB_MAX
20751+* MaxValue of DENS_gamma_e_low_LB
20752+* @see LVHF_ControlParams_st
20753+*/
20754+#define LVHF_DENS_GAMMA_E_LOW_LB_MAX (32767)
20755+
20756+/**
20757+* @def LVHF_DENS_NL_ATTEN_LB_DEFAULT
20758+* Default of DENS_NL_atten_LB
20759+* @see LVHF_ControlParams_st
20760+*/
20761+#define LVHF_DENS_NL_ATTEN_LB_DEFAULT (0)
20762+/**
20763+* @def LVHF_DENS_NL_ATTEN_LB_MIN
20764+* MinValue of DENS_NL_atten_LB
20765+* @see LVHF_ControlParams_st
20766+*/
20767+#define LVHF_DENS_NL_ATTEN_LB_MIN (0)
20768+/**
20769+* @def LVHF_DENS_NL_ATTEN_LB_MAX
20770+* MaxValue of DENS_NL_atten_LB
20771+* @see LVHF_ControlParams_st
20772+*/
20773+#define LVHF_DENS_NL_ATTEN_LB_MAX (2048)
20774+
20775+/**
20776+* @def LVHF_DENS_TAIL_ALPHA_HB_DEFAULT
20777+* Default of DENS_tail_alpha_HB
20778+* @see LVHF_ControlParams_st
20779+*/
20780+#define LVHF_DENS_TAIL_ALPHA_HB_DEFAULT (25395)
20781+/**
20782+* @def LVHF_DENS_TAIL_ALPHA_HB_MIN
20783+* MinValue of DENS_tail_alpha_HB
20784+* @see LVHF_ControlParams_st
20785+*/
20786+#define LVHF_DENS_TAIL_ALPHA_HB_MIN (0)
20787+/**
20788+* @def LVHF_DENS_TAIL_ALPHA_HB_MAX
20789+* MaxValue of DENS_tail_alpha_HB
20790+* @see LVHF_ControlParams_st
20791+*/
20792+#define LVHF_DENS_TAIL_ALPHA_HB_MAX (32767)
20793+
20794+/**
20795+* @def LVHF_DENS_TAIL_PORTION_HB_DEFAULT
20796+* Default of DENS_tail_portion_HB
20797+* @see LVHF_ControlParams_st
20798+*/
20799+#define LVHF_DENS_TAIL_PORTION_HB_DEFAULT (29491)
20800+/**
20801+* @def LVHF_DENS_TAIL_PORTION_HB_MIN
20802+* MinValue of DENS_tail_portion_HB
20803+* @see LVHF_ControlParams_st
20804+*/
20805+#define LVHF_DENS_TAIL_PORTION_HB_MIN (0)
20806+/**
20807+* @def LVHF_DENS_TAIL_PORTION_HB_MAX
20808+* MaxValue of DENS_tail_portion_HB
20809+* @see LVHF_ControlParams_st
20810+*/
20811+#define LVHF_DENS_TAIL_PORTION_HB_MAX (32767)
20812+
20813+/**
20814+* @def LVHF_DENS_GAMMA_E_HIGH_HB_DEFAULT
20815+* Default of DENS_gamma_e_high_HB
20816+* @see LVHF_ControlParams_st
20817+*/
20818+#define LVHF_DENS_GAMMA_E_HIGH_HB_DEFAULT (512)
20819+/**
20820+* @def LVHF_DENS_GAMMA_E_HIGH_HB_MIN
20821+* MinValue of DENS_gamma_e_high_HB
20822+* @see LVHF_ControlParams_st
20823+*/
20824+#define LVHF_DENS_GAMMA_E_HIGH_HB_MIN (0)
20825+/**
20826+* @def LVHF_DENS_GAMMA_E_HIGH_HB_MAX
20827+* MaxValue of DENS_gamma_e_high_HB
20828+* @see LVHF_ControlParams_st
20829+*/
20830+#define LVHF_DENS_GAMMA_E_HIGH_HB_MAX (32767)
20831+
20832+/**
20833+* @def LVHF_DENS_GAMMA_E_DT_HB_DEFAULT
20834+* Default of DENS_gamma_e_dt_HB
20835+* @see LVHF_ControlParams_st
20836+*/
20837+#define LVHF_DENS_GAMMA_E_DT_HB_DEFAULT (256)
20838+/**
20839+* @def LVHF_DENS_GAMMA_E_DT_HB_MIN
20840+* MinValue of DENS_gamma_e_dt_HB
20841+* @see LVHF_ControlParams_st
20842+*/
20843+#define LVHF_DENS_GAMMA_E_DT_HB_MIN (0)
20844+/**
20845+* @def LVHF_DENS_GAMMA_E_DT_HB_MAX
20846+* MaxValue of DENS_gamma_e_dt_HB
20847+* @see LVHF_ControlParams_st
20848+*/
20849+#define LVHF_DENS_GAMMA_E_DT_HB_MAX (32767)
20850+
20851+/**
20852+* @def LVHF_DENS_GAMMA_E_LOW_HB_DEFAULT
20853+* Default of DENS_gamma_e_low_HB
20854+* @see LVHF_ControlParams_st
20855+*/
20856+#define LVHF_DENS_GAMMA_E_LOW_HB_DEFAULT (256)
20857+/**
20858+* @def LVHF_DENS_GAMMA_E_LOW_HB_MIN
20859+* MinValue of DENS_gamma_e_low_HB
20860+* @see LVHF_ControlParams_st
20861+*/
20862+#define LVHF_DENS_GAMMA_E_LOW_HB_MIN (0)
20863+/**
20864+* @def LVHF_DENS_GAMMA_E_LOW_HB_MAX
20865+* MaxValue of DENS_gamma_e_low_HB
20866+* @see LVHF_ControlParams_st
20867+*/
20868+#define LVHF_DENS_GAMMA_E_LOW_HB_MAX (32767)
20869+
20870+/**
20871+* @def LVHF_DENS_NL_ATTEN_HB_DEFAULT
20872+* Default of DENS_NL_atten_HB
20873+* @see LVHF_ControlParams_st
20874+*/
20875+#define LVHF_DENS_NL_ATTEN_HB_DEFAULT (0)
20876+/**
20877+* @def LVHF_DENS_NL_ATTEN_HB_MIN
20878+* MinValue of DENS_NL_atten_HB
20879+* @see LVHF_ControlParams_st
20880+*/
20881+#define LVHF_DENS_NL_ATTEN_HB_MIN (0)
20882+/**
20883+* @def LVHF_DENS_NL_ATTEN_HB_MAX
20884+* MaxValue of DENS_NL_atten_HB
20885+* @see LVHF_ControlParams_st
20886+*/
20887+#define LVHF_DENS_NL_ATTEN_HB_MAX (2048)
20888+
20889+/**
20890+* @def LVHF_DENS_GAMMA_E_ALPHA_DEFAULT
20891+* Default of DENS_gamma_e_alpha
20892+* @see LVHF_ControlParams_st
20893+*/
20894+#define LVHF_DENS_GAMMA_E_ALPHA_DEFAULT (24000)
20895+/**
20896+* @def LVHF_DENS_GAMMA_E_ALPHA_MIN
20897+* MinValue of DENS_gamma_e_alpha
20898+* @see LVHF_ControlParams_st
20899+*/
20900+#define LVHF_DENS_GAMMA_E_ALPHA_MIN (0)
20901+/**
20902+* @def LVHF_DENS_GAMMA_E_ALPHA_MAX
20903+* MaxValue of DENS_gamma_e_alpha
20904+* @see LVHF_ControlParams_st
20905+*/
20906+#define LVHF_DENS_GAMMA_E_ALPHA_MAX (32767)
20907+
20908+/**
20909+* @def LVHF_DENS_GAMMA_N_DEFAULT
20910+* Default of DENS_gamma_n
20911+* @see LVHF_ControlParams_st
20912+*/
20913+#define LVHF_DENS_GAMMA_N_DEFAULT (280)
20914+/**
20915+* @def LVHF_DENS_GAMMA_N_MIN
20916+* MinValue of DENS_gamma_n
20917+* @see LVHF_ControlParams_st
20918+*/
20919+#define LVHF_DENS_GAMMA_N_MIN (0)
20920+/**
20921+* @def LVHF_DENS_GAMMA_N_MAX
20922+* MaxValue of DENS_gamma_n
20923+* @see LVHF_ControlParams_st
20924+*/
20925+#define LVHF_DENS_GAMMA_N_MAX (32767)
20926+
20927+/**
20928+* @def LVHF_DENS_SPDET_NEAR_DEFAULT
20929+* Default of DENS_spdet_near
20930+* @see LVHF_ControlParams_st
20931+*/
20932+#define LVHF_DENS_SPDET_NEAR_DEFAULT (512)
20933+/**
20934+* @def LVHF_DENS_SPDET_NEAR_MIN
20935+* MinValue of DENS_spdet_near
20936+* @see LVHF_ControlParams_st
20937+*/
20938+#define LVHF_DENS_SPDET_NEAR_MIN (0)
20939+/**
20940+* @def LVHF_DENS_SPDET_NEAR_MAX
20941+* MaxValue of DENS_spdet_near
20942+* @see LVHF_ControlParams_st
20943+*/
20944+#define LVHF_DENS_SPDET_NEAR_MAX (32767)
20945+
20946+/**
20947+* @def LVHF_DENS_SPDET_ACT_DEFAULT
20948+* Default of DENS_spdet_act
20949+* @see LVHF_ControlParams_st
20950+*/
20951+#define LVHF_DENS_SPDET_ACT_DEFAULT (768)
20952+/**
20953+* @def LVHF_DENS_SPDET_ACT_MIN
20954+* MinValue of DENS_spdet_act
20955+* @see LVHF_ControlParams_st
20956+*/
20957+#define LVHF_DENS_SPDET_ACT_MIN (0)
20958+/**
20959+* @def LVHF_DENS_SPDET_ACT_MAX
20960+* MaxValue of DENS_spdet_act
20961+* @see LVHF_ControlParams_st
20962+*/
20963+#define LVHF_DENS_SPDET_ACT_MAX (32767)
20964+
20965+/**
20966+* @def LVHF_DENS_LIMIT_NS_DEFAULT
20967+* Default of DENS_limit_ns
20968+* @see LVHF_ControlParams_st
20969+*/
20970+#define LVHF_DENS_LIMIT_NS_DEFAULT (10361)
20971+/**
20972+* @def LVHF_DENS_LIMIT_NS_MIN
20973+* MinValue of DENS_limit_ns
20974+* @see LVHF_ControlParams_st
20975+*/
20976+#define LVHF_DENS_LIMIT_NS_MIN (0)
20977+/**
20978+* @def LVHF_DENS_LIMIT_NS_MAX
20979+* MaxValue of DENS_limit_ns
20980+* @see LVHF_ControlParams_st
20981+*/
20982+#define LVHF_DENS_LIMIT_NS_MAX (32767)
20983+
20984+/**
20985+* @def LVHF_DENS_CNI_GAIN_DEFAULT
20986+* Default of DENS_CNI_Gain
20987+* @see LVHF_ControlParams_st
20988+*/
20989+#define LVHF_DENS_CNI_GAIN_DEFAULT (16384)
20990+/**
20991+* @def LVHF_DENS_CNI_GAIN_MIN
20992+* MinValue of DENS_CNI_Gain
20993+* @see LVHF_ControlParams_st
20994+*/
20995+#define LVHF_DENS_CNI_GAIN_MIN (0)
20996+/**
20997+* @def LVHF_DENS_CNI_GAIN_MAX
20998+* MaxValue of DENS_CNI_Gain
20999+* @see LVHF_ControlParams_st
21000+*/
21001+#define LVHF_DENS_CNI_GAIN_MAX (32767)
21002+
21003+/**
21004+* @def LVHF_DENS_NFE_BLOCKSIZE_DEFAULT
21005+* Default of DENS_NFE_blocksize
21006+* @see LVHF_ControlParams_st
21007+*/
21008+#define LVHF_DENS_NFE_BLOCKSIZE_DEFAULT (150)
21009+/**
21010+* @def LVHF_DENS_NFE_BLOCKSIZE_MIN
21011+* MinValue of DENS_NFE_blocksize
21012+* @see LVHF_ControlParams_st
21013+*/
21014+#define LVHF_DENS_NFE_BLOCKSIZE_MIN (0)
21015+/**
21016+* @def LVHF_DENS_NFE_BLOCKSIZE_MAX
21017+* MaxValue of DENS_NFE_blocksize
21018+* @see LVHF_ControlParams_st
21019+*/
21020+#define LVHF_DENS_NFE_BLOCKSIZE_MAX (32767)
21021+
21022+/**
21023+* @def LVHF_SPDET_FAR_DEFAULT
21024+* Default of SPDET_far
21025+* @see LVHF_ControlParams_st
21026+*/
21027+#define LVHF_SPDET_FAR_DEFAULT (16384)
21028+/**
21029+* @def LVHF_SPDET_FAR_MIN
21030+* MinValue of SPDET_far
21031+* @see LVHF_ControlParams_st
21032+*/
21033+#define LVHF_SPDET_FAR_MIN (0)
21034+/**
21035+* @def LVHF_SPDET_FAR_MAX
21036+* MaxValue of SPDET_far
21037+* @see LVHF_ControlParams_st
21038+*/
21039+#define LVHF_SPDET_FAR_MAX (32767)
21040+
21041+/**
21042+* @def LVHF_SPDET_MIC_DEFAULT
21043+* Default of SPDET_mic
21044+* @see LVHF_ControlParams_st
21045+*/
21046+#define LVHF_SPDET_MIC_DEFAULT (16384)
21047+/**
21048+* @def LVHF_SPDET_MIC_MIN
21049+* MinValue of SPDET_mic
21050+* @see LVHF_ControlParams_st
21051+*/
21052+#define LVHF_SPDET_MIC_MIN (0)
21053+/**
21054+* @def LVHF_SPDET_MIC_MAX
21055+* MaxValue of SPDET_mic
21056+* @see LVHF_ControlParams_st
21057+*/
21058+#define LVHF_SPDET_MIC_MAX (32767)
21059+
21060+/**
21061+* @def LVHF_SPDET_X_CLIP_DEFAULT
21062+* Default of SPDET_x_clip
21063+* @see LVHF_ControlParams_st
21064+*/
21065+#define LVHF_SPDET_X_CLIP_DEFAULT (0)
21066+/**
21067+* @def LVHF_SPDET_X_CLIP_MIN
21068+* MinValue of SPDET_x_clip
21069+* @see LVHF_ControlParams_st
21070+*/
21071+#define LVHF_SPDET_X_CLIP_MIN (0)
21072+/**
21073+* @def LVHF_SPDET_X_CLIP_MAX
21074+* MaxValue of SPDET_x_clip
21075+* @see LVHF_ControlParams_st
21076+*/
21077+#define LVHF_SPDET_X_CLIP_MAX (32767)
21078+
21079+/**
21080+* @def LVHF_PCD_THRESHOLD_DEFAULT
21081+* Default of PCD_threshold
21082+* @see LVHF_ControlParams_st
21083+*/
21084+#define LVHF_PCD_THRESHOLD_DEFAULT (20000)
21085+/**
21086+* @def LVHF_PCD_THRESHOLD_MIN
21087+* MinValue of PCD_threshold
21088+* @see LVHF_ControlParams_st
21089+*/
21090+#define LVHF_PCD_THRESHOLD_MIN (0)
21091+/**
21092+* @def LVHF_PCD_THRESHOLD_MAX
21093+* MaxValue of PCD_threshold
21094+* @see LVHF_ControlParams_st
21095+*/
21096+#define LVHF_PCD_THRESHOLD_MAX (32767)
21097+
21098+/**
21099+* @def LVHF_PCD_TAPS_DEFAULT
21100+* Default of PCD_taps
21101+* @see LVHF_ControlParams_st
21102+*/
21103+#define LVHF_PCD_TAPS_DEFAULT (16)
21104+/**
21105+* @def LVHF_PCD_TAPS_MIN
21106+* MinValue of PCD_taps
21107+* @see LVHF_ControlParams_st
21108+*/
21109+#define LVHF_PCD_TAPS_MIN (16)
21110+/**
21111+* @def LVHF_PCD_TAPS_MAX
21112+* MaxValue of PCD_taps
21113+* @see LVHF_ControlParams_st
21114+*/
21115+#define LVHF_PCD_TAPS_MAX (64)
21116+
21117+/**
21118+* @def LVHF_PCD_ERL_DEFAULT
21119+* Default of PCD_erl
21120+* @see LVHF_ControlParams_st
21121+*/
21122+#define LVHF_PCD_ERL_DEFAULT (64)
21123+/**
21124+* @def LVHF_PCD_ERL_MIN
21125+* MinValue of PCD_erl
21126+* @see LVHF_ControlParams_st
21127+*/
21128+#define LVHF_PCD_ERL_MIN (64)
21129+/**
21130+* @def LVHF_PCD_ERL_MAX
21131+* MaxValue of PCD_erl
21132+* @see LVHF_ControlParams_st
21133+*/
21134+#define LVHF_PCD_ERL_MAX (32767)
21135+
21136+/**
21137+* @def LVHF_PCD_MINIMUM_ERL_DEFAULT
21138+* Default of PCD_minimum_erl
21139+* @see LVHF_ControlParams_st
21140+*/
21141+#define LVHF_PCD_MINIMUM_ERL_DEFAULT (64)
21142+/**
21143+* @def LVHF_PCD_MINIMUM_ERL_MIN
21144+* MinValue of PCD_minimum_erl
21145+* @see LVHF_ControlParams_st
21146+*/
21147+#define LVHF_PCD_MINIMUM_ERL_MIN (64)
21148+/**
21149+* @def LVHF_PCD_MINIMUM_ERL_MAX
21150+* MaxValue of PCD_minimum_erl
21151+* @see LVHF_ControlParams_st
21152+*/
21153+#define LVHF_PCD_MINIMUM_ERL_MAX (32767)
21154+
21155+/**
21156+* @def LVHF_PCD_ERL_STEP_DEFAULT
21157+* Default of PCD_erl_step
21158+* @see LVHF_ControlParams_st
21159+*/
21160+#define LVHF_PCD_ERL_STEP_DEFAULT (16800)
21161+/**
21162+* @def LVHF_PCD_ERL_STEP_MIN
21163+* MinValue of PCD_erl_step
21164+* @see LVHF_ControlParams_st
21165+*/
21166+#define LVHF_PCD_ERL_STEP_MIN (16384)
21167+/**
21168+* @def LVHF_PCD_ERL_STEP_MAX
21169+* MaxValue of PCD_erl_step
21170+* @see LVHF_ControlParams_st
21171+*/
21172+#define LVHF_PCD_ERL_STEP_MAX (32767)
21173+
21174+/**
21175+* @def LVHF_PCD_GAMMA_E_RESCUE_DEFAULT
21176+* Default of PCD_gamma_e_rescue
21177+* @see LVHF_ControlParams_st
21178+*/
21179+#define LVHF_PCD_GAMMA_E_RESCUE_DEFAULT (5000)
21180+/**
21181+* @def LVHF_PCD_GAMMA_E_RESCUE_MIN
21182+* MinValue of PCD_gamma_e_rescue
21183+* @see LVHF_ControlParams_st
21184+*/
21185+#define LVHF_PCD_GAMMA_E_RESCUE_MIN (0)
21186+/**
21187+* @def LVHF_PCD_GAMMA_E_RESCUE_MAX
21188+* MaxValue of PCD_gamma_e_rescue
21189+* @see LVHF_ControlParams_st
21190+*/
21191+#define LVHF_PCD_GAMMA_E_RESCUE_MAX (32767)
21192+
21193+/**
21194+* @def LVBD_BD_OPERATINGMODE_DEFAULT
21195+* Default of BD_OperatingMode
21196+* @see LVBD_ControlParams_st
21197+*/
21198+#define LVBD_BD_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
21199+
21200+/**
21201+* @def LVBD_BULKDELAY_DEFAULT
21202+* Default of BulkDelay
21203+* @see LVBD_ControlParams_st
21204+*/
21205+#define LVBD_BULKDELAY_DEFAULT (0)
21206+/**
21207+* @def LVBD_BULKDELAY_MIN
21208+* MinValue of BulkDelay
21209+* @see LVBD_ControlParams_st
21210+*/
21211+#define LVBD_BULKDELAY_MIN (0)
21212+/**
21213+* @def LVBD_BULKDELAY_MAX
21214+* MaxValue of BulkDelay
21215+* @see LVBD_ControlParams_st
21216+*/
21217+#define LVBD_BULKDELAY_MAX (6400)
21218+
21219+/**
21220+* @def LVBD_BD_GAIN_DEFAULT
21221+* Default of BD_Gain
21222+* @see LVBD_ControlParams_st
21223+*/
21224+#define LVBD_BD_GAIN_DEFAULT (8192)
21225+/**
21226+* @def LVBD_BD_GAIN_MIN
21227+* MinValue of BD_Gain
21228+* @see LVBD_ControlParams_st
21229+*/
21230+#define LVBD_BD_GAIN_MIN (0)
21231+/**
21232+* @def LVBD_BD_GAIN_MAX
21233+* MaxValue of BD_Gain
21234+* @see LVBD_ControlParams_st
21235+*/
21236+#define LVBD_BD_GAIN_MAX (32767)
21237+
21238+/**
21239+* @def LVVE_TX_OPERATINGMODE_DEFAULT
21240+* Default of OperatingMode
21241+* @see LVVE_Tx_ControlParams_st
21242+*/
21243+#define LVVE_TX_OPERATINGMODE_DEFAULT (LVVE_TX_MODE_OFF)
21244+
21245+/**
21246+* @def LVVE_TX_MUTE_DEFAULT
21247+* Default of Mute
21248+* @see LVVE_Tx_ControlParams_st
21249+*/
21250+#define LVVE_TX_MUTE_DEFAULT (LVM_MODE_OFF)
21251+
21252+/**
21253+* @def LVVE_TX_BD_OPERATINGMODE_DEFAULT
21254+* Default of BD_OperatingMode
21255+* @see LVVE_Tx_ControlParams_st
21256+*/
21257+#define LVVE_TX_BD_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
21258+
21259+/**
21260+* @def LVVE_TX_BULKDELAY_DEFAULT
21261+* Default of BulkDelay
21262+* @see LVVE_Tx_ControlParams_st
21263+*/
21264+#define LVVE_TX_BULKDELAY_DEFAULT (0)
21265+/**
21266+* @def LVVE_TX_BULKDELAY_MIN
21267+* MinValue of BulkDelay
21268+* @see LVVE_Tx_ControlParams_st
21269+*/
21270+#define LVVE_TX_BULKDELAY_MIN (0)
21271+/**
21272+* @def LVVE_TX_BULKDELAY_MAX
21273+* MaxValue of BulkDelay
21274+* @see LVVE_Tx_ControlParams_st
21275+*/
21276+#define LVVE_TX_BULKDELAY_MAX (6400)
21277+
21278+/**
21279+* @def LVVE_TX_BD_GAIN_DEFAULT
21280+* Default of BD_Gain
21281+* @see LVVE_Tx_ControlParams_st
21282+*/
21283+#define LVVE_TX_BD_GAIN_DEFAULT (8192)
21284+/**
21285+* @def LVVE_TX_BD_GAIN_MIN
21286+* MinValue of BD_Gain
21287+* @see LVVE_Tx_ControlParams_st
21288+*/
21289+#define LVVE_TX_BD_GAIN_MIN (0)
21290+/**
21291+* @def LVVE_TX_BD_GAIN_MAX
21292+* MaxValue of BD_Gain
21293+* @see LVVE_Tx_ControlParams_st
21294+*/
21295+#define LVVE_TX_BD_GAIN_MAX (32767)
21296+
21297+/**
21298+* @def LVVE_TX_VOL_OPERATINGMODE_DEFAULT
21299+* Default of VOL_OperatingMode
21300+* @see LVVE_Tx_ControlParams_st
21301+*/
21302+#define LVVE_TX_VOL_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
21303+
21304+/**
21305+* @def LVVE_TX_VOL_GAIN_DEFAULT
21306+* Default of VOL_Gain
21307+* @see LVVE_Tx_ControlParams_st
21308+*/
21309+#define LVVE_TX_VOL_GAIN_DEFAULT (0)
21310+/**
21311+* @def LVVE_TX_VOL_GAIN_MIN
21312+* MinValue of VOL_Gain
21313+* @see LVVE_Tx_ControlParams_st
21314+*/
21315+#define LVVE_TX_VOL_GAIN_MIN (-96)
21316+/**
21317+* @def LVVE_TX_VOL_GAIN_MAX
21318+* MaxValue of VOL_Gain
21319+* @see LVVE_Tx_ControlParams_st
21320+*/
21321+#define LVVE_TX_VOL_GAIN_MAX (24)
21322+
21323+/**
21324+* @def LVVE_TX_HPF_OPERATINGMODE_DEFAULT
21325+* Default of HPF_OperatingMode
21326+* @see LVVE_Tx_ControlParams_st
21327+*/
21328+#define LVVE_TX_HPF_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
21329+
21330+/**
21331+* @def LVVE_TX_MIC_HPF_CORNERFREQ_DEFAULT
21332+* Default of MIC_HPF_CornerFreq
21333+* @see LVVE_Tx_ControlParams_st
21334+*/
21335+#define LVVE_TX_MIC_HPF_CORNERFREQ_DEFAULT (50)
21336+/**
21337+* @def LVVE_TX_MIC_HPF_CORNERFREQ_MIN
21338+* MinValue of MIC_HPF_CornerFreq
21339+* @see LVVE_Tx_ControlParams_st
21340+*/
21341+#define LVVE_TX_MIC_HPF_CORNERFREQ_MIN (50)
21342+/**
21343+* @def LVVE_TX_MIC_HPF_CORNERFREQ_MAX
21344+* MaxValue of MIC_HPF_CornerFreq
21345+* @see LVVE_Tx_ControlParams_st
21346+*/
21347+#define LVVE_TX_MIC_HPF_CORNERFREQ_MAX (1500)
21348+
21349+
21350+
21351+/**
21352+* @def LVVE_TX_EQ_OPERATINGMODE_DEFAULT
21353+* Default of EQ_OperatingMode
21354+* @see LVVE_Tx_ControlParams_st
21355+*/
21356+#define LVVE_TX_EQ_OPERATINGMODE_DEFAULT (LVM_MODE_OFF)
21357+
21358+
21359+
21360+/**
21361+* @def LVVC_GAIN_DEFAULT
21362+* Default of Gain
21363+* @see LVVC_ControlParams_st
21364+*/
21365+#define LVVC_GAIN_DEFAULT (0)
21366+/**
21367+* @def LVVC_GAIN_MIN
21368+* MinValue of Gain
21369+* @see LVVC_ControlParams_st
21370+*/
21371+#define LVVC_GAIN_MIN (0)
21372+/**
21373+* @def LVVC_GAIN_MAX
21374+* MaxValue of Gain
21375+* @see LVVC_ControlParams_st
21376+*/
21377+#define LVVC_GAIN_MAX (32767)
21378+
21379+/**
21380+* @def LVVC_SPDETECTED_DEFAULT
21381+* Default of SpDetected
21382+* @see LVVC_ControlParams_st
21383+*/
21384+#define LVVC_SPDETECTED_DEFAULT (0)
21385+/**
21386+* @def LVVC_SPDETECTED_MIN
21387+* MinValue of SpDetected
21388+* @see LVVC_ControlParams_st
21389+*/
21390+#define LVVC_SPDETECTED_MIN (0)
21391+/**
21392+* @def LVVC_SPDETECTED_MAX
21393+* MaxValue of SpDetected
21394+* @see LVVC_ControlParams_st
21395+*/
21396+#define LVVC_SPDETECTED_MAX (1)
21397+
21398+/**
21399+* @def LVWM_AVL_GAIN_DEFAULT
21400+* Default of AVL_Gain
21401+* @see LVWM_ControlParams_st
21402+*/
21403+#define LVWM_AVL_GAIN_DEFAULT (0)
21404+/**
21405+* @def LVWM_AVL_GAIN_MIN
21406+* MinValue of AVL_Gain
21407+* @see LVWM_ControlParams_st
21408+*/
21409+#define LVWM_AVL_GAIN_MIN (0)
21410+/**
21411+* @def LVWM_AVL_GAIN_MAX
21412+* MaxValue of AVL_Gain
21413+* @see LVWM_ControlParams_st
21414+*/
21415+#define LVWM_AVL_GAIN_MAX (32767)
21416+
21417+
21418+
21419+/**
21420+* @def LVVE_RX_DUMMY_DEFAULT
21421+* Default of dummy
21422+* @see LVVE_Rx_ControlParams_st
21423+*/
21424+#define LVVE_RX_DUMMY_DEFAULT (0)
21425+/**
21426+* @def LVVE_RX_DUMMY_MIN
21427+* MinValue of dummy
21428+* @see LVVE_Rx_ControlParams_st
21429+*/
21430+#define LVVE_RX_DUMMY_MIN (-128)
21431+/**
21432+* @def LVVE_RX_DUMMY_MAX
21433+* MaxValue of dummy
21434+* @see LVVE_Rx_ControlParams_st
21435+*/
21436+#define LVVE_RX_DUMMY_MAX (127)
21437+
21438+/**
21439+* @def LVNV_STATUS_DEFAULT
21440+* Default of status
21441+* @see LVNV_ControlParams_st
21442+*/
21443+#define LVNV_STATUS_DEFAULT (0)
21444+
21445+/**
21446+* @def LVNV_DUMMY_DEFAULT
21447+* Default of Dummy
21448+* @see LVNV_ControlParams_st
21449+*/
21450+#define LVNV_DUMMY_DEFAULT (0)
21451+/**
21452+* @def LVNV_DUMMY_MIN
21453+* MinValue of Dummy
21454+* @see LVNV_ControlParams_st
21455+*/
21456+#define LVNV_DUMMY_MIN (0)
21457+/**
21458+* @def LVNV_DUMMY_MAX
21459+* MaxValue of Dummy
21460+* @see LVNV_ControlParams_st
21461+*/
21462+#define LVNV_DUMMY_MAX (0)
21463+
21464+/**
21465+* @def LVNV_PNLMS0_LB_COEFFS_DEFAULT
21466+* Default of pNLMS0_LB_Coeffs
21467+* @see LVNV_ControlParams_st
21468+*/
21469+#define LVNV_PNLMS0_LB_COEFFS_DEFAULT (0)
21470+/**
21471+* @def LVNV_PNLMS0_LB_COEFFS_MIN
21472+* MinValue of pNLMS0_LB_Coeffs
21473+* @see LVNV_ControlParams_st
21474+*/
21475+#define LVNV_PNLMS0_LB_COEFFS_MIN (-2147483648)
21476+/**
21477+* @def LVNV_PNLMS0_LB_COEFFS_MAX
21478+* MaxValue of pNLMS0_LB_Coeffs
21479+* @see LVNV_ControlParams_st
21480+*/
21481+#define LVNV_PNLMS0_LB_COEFFS_MAX (2147483647)
21482+
21483+/**
21484+* @def LVNV_PNLMS0_HB_COEFFS_DEFAULT
21485+* Default of pNLMS0_HB_Coeffs
21486+* @see LVNV_ControlParams_st
21487+*/
21488+#define LVNV_PNLMS0_HB_COEFFS_DEFAULT (0)
21489+/**
21490+* @def LVNV_PNLMS0_HB_COEFFS_MIN
21491+* MinValue of pNLMS0_HB_Coeffs
21492+* @see LVNV_ControlParams_st
21493+*/
21494+#define LVNV_PNLMS0_HB_COEFFS_MIN (-2147483648)
21495+/**
21496+* @def LVNV_PNLMS0_HB_COEFFS_MAX
21497+* MaxValue of pNLMS0_HB_Coeffs
21498+* @see LVNV_ControlParams_st
21499+*/
21500+#define LVNV_PNLMS0_HB_COEFFS_MAX (2147483647)
21501+
21502+/**
21503+* @def LVNV_PNLMS1_LB_COEFFS_DEFAULT
21504+* Default of pNLMS1_LB_Coeffs
21505+* @see LVNV_ControlParams_st
21506+*/
21507+#define LVNV_PNLMS1_LB_COEFFS_DEFAULT (0)
21508+/**
21509+* @def LVNV_PNLMS1_LB_COEFFS_MIN
21510+* MinValue of pNLMS1_LB_Coeffs
21511+* @see LVNV_ControlParams_st
21512+*/
21513+#define LVNV_PNLMS1_LB_COEFFS_MIN (-2147483648)
21514+/**
21515+* @def LVNV_PNLMS1_LB_COEFFS_MAX
21516+* MaxValue of pNLMS1_LB_Coeffs
21517+* @see LVNV_ControlParams_st
21518+*/
21519+#define LVNV_PNLMS1_LB_COEFFS_MAX (2147483647)
21520+
21521+/**
21522+* @def LVNV_PNLMS1_HB_COEFFS_DEFAULT
21523+* Default of pNLMS1_HB_Coeffs
21524+* @see LVNV_ControlParams_st
21525+*/
21526+#define LVNV_PNLMS1_HB_COEFFS_DEFAULT (0)
21527+/**
21528+* @def LVNV_PNLMS1_HB_COEFFS_MIN
21529+* MinValue of pNLMS1_HB_Coeffs
21530+* @see LVNV_ControlParams_st
21531+*/
21532+#define LVNV_PNLMS1_HB_COEFFS_MIN (-2147483648)
21533+/**
21534+* @def LVNV_PNLMS1_HB_COEFFS_MAX
21535+* MaxValue of pNLMS1_HB_Coeffs
21536+* @see LVNV_ControlParams_st
21537+*/
21538+#define LVNV_PNLMS1_HB_COEFFS_MAX (2147483647)
21539+
21540+/**
21541+* @def LVNV_PFSB_COEFFS_DEFAULT
21542+* Default of pFSB_Coeffs
21543+* @see LVNV_ControlParams_st
21544+*/
21545+#define LVNV_PFSB_COEFFS_DEFAULT (0)
21546+/**
21547+* @def LVNV_PFSB_COEFFS_MIN
21548+* MinValue of pFSB_Coeffs
21549+* @see LVNV_ControlParams_st
21550+*/
21551+#define LVNV_PFSB_COEFFS_MIN (-2147483648)
21552+/**
21553+* @def LVNV_PFSB_COEFFS_MAX
21554+* MaxValue of pFSB_Coeffs
21555+* @see LVNV_ControlParams_st
21556+*/
21557+#define LVNV_PFSB_COEFFS_MAX (2147483647)
21558+
21559+/**
21560+* @def LVNV_PGSC_COEFFS_DEFAULT
21561+* Default of pGSC_Coeffs
21562+* @see LVNV_ControlParams_st
21563+*/
21564+#define LVNV_PGSC_COEFFS_DEFAULT (0)
21565+/**
21566+* @def LVNV_PGSC_COEFFS_MIN
21567+* MinValue of pGSC_Coeffs
21568+* @see LVNV_ControlParams_st
21569+*/
21570+#define LVNV_PGSC_COEFFS_MIN (-2147483648)
21571+/**
21572+* @def LVNV_PGSC_COEFFS_MAX
21573+* MaxValue of pGSC_Coeffs
21574+* @see LVNV_ControlParams_st
21575+*/
21576+#define LVNV_PGSC_COEFFS_MAX (2147483647)
21577+
21578+/**
21579+* @def LVNV_PMICPOWSP_DEFAULT
21580+* Default of pMicPowSp
21581+* @see LVNV_ControlParams_st
21582+*/
21583+#define LVNV_PMICPOWSP_DEFAULT (0)
21584+/**
21585+* @def LVNV_PMICPOWSP_MIN
21586+* MinValue of pMicPowSp
21587+* @see LVNV_ControlParams_st
21588+*/
21589+#define LVNV_PMICPOWSP_MIN (0)
21590+/**
21591+* @def LVNV_PMICPOWSP_MAX
21592+* MaxValue of pMicPowSp
21593+* @see LVNV_ControlParams_st
21594+*/
21595+#define LVNV_PMICPOWSP_MAX (1)
21596+
21597+/**
21598+* @def LVNV_PCALFACTOR_DEFAULT
21599+* Default of pCalFactor
21600+* @see LVNV_ControlParams_st
21601+*/
21602+#define LVNV_PCALFACTOR_DEFAULT (0)
21603+/**
21604+* @def LVNV_PCALFACTOR_MIN
21605+* MinValue of pCalFactor
21606+* @see LVNV_ControlParams_st
21607+*/
21608+#define LVNV_PCALFACTOR_MIN (0)
21609+/**
21610+* @def LVNV_PCALFACTOR_MAX
21611+* MaxValue of pCalFactor
21612+* @see LVNV_ControlParams_st
21613+*/
21614+#define LVNV_PCALFACTOR_MAX (32767)
21615+
21616+/**
21617+* @def LVNV_PCALREADY_DEFAULT
21618+* Default of pCalReady
21619+* @see LVNV_ControlParams_st
21620+*/
21621+#define LVNV_PCALREADY_DEFAULT (0)
21622+/**
21623+* @def LVNV_PCALREADY_MIN
21624+* MinValue of pCalReady
21625+* @see LVNV_ControlParams_st
21626+*/
21627+#define LVNV_PCALREADY_MIN (0)
21628+/**
21629+* @def LVNV_PCALREADY_MAX
21630+* MaxValue of pCalReady
21631+* @see LVNV_ControlParams_st
21632+*/
21633+#define LVNV_PCALREADY_MAX (2)
21634+
21635+/**
21636+* @def LVNV_PBROADSIDE_INTERCC_DEFAULT
21637+* Default of pBroadside_interCC
21638+* @see LVNV_ControlParams_st
21639+*/
21640+#define LVNV_PBROADSIDE_INTERCC_DEFAULT (0)
21641+/**
21642+* @def LVNV_PBROADSIDE_INTERCC_MIN
21643+* MinValue of pBroadside_interCC
21644+* @see LVNV_ControlParams_st
21645+*/
21646+#define LVNV_PBROADSIDE_INTERCC_MIN (0)
21647+/**
21648+* @def LVNV_PBROADSIDE_INTERCC_MAX
21649+* MaxValue of pBroadside_interCC
21650+* @see LVNV_ControlParams_st
21651+*/
21652+#define LVNV_PBROADSIDE_INTERCC_MAX (32767)
21653+
21654+/**
21655+* @def LVHF_GAMMAE_DEFAULT
21656+* Default of gammae
21657+* @see LVHF_ControlParams_st
21658+*/
21659+#define LVHF_GAMMAE_DEFAULT (0)
21660+/**
21661+* @def LVHF_GAMMAE_MIN
21662+* MinValue of gammae
21663+* @see LVHF_ControlParams_st
21664+*/
21665+#define LVHF_GAMMAE_MIN (0)
21666+/**
21667+* @def LVHF_GAMMAE_MAX
21668+* MaxValue of gammae
21669+* @see LVHF_ControlParams_st
21670+*/
21671+#define LVHF_GAMMAE_MAX (32767)
21672+
21673+/**
21674+* @def LVHF_STATUS_DEFAULT
21675+* Default of status
21676+* @see LVHF_ControlParams_st
21677+*/
21678+#define LVHF_STATUS_DEFAULT (0)
21679+
21680+/**
21681+* @def LVHF_PNLMS_LB_COEFS_DEFAULT
21682+* Default of pNLMS_LB_Coefs
21683+* @see LVHF_ControlParams_st
21684+*/
21685+#define LVHF_PNLMS_LB_COEFS_DEFAULT (0)
21686+/**
21687+* @def LVHF_PNLMS_LB_COEFS_MIN
21688+* MinValue of pNLMS_LB_Coefs
21689+* @see LVHF_ControlParams_st
21690+*/
21691+#define LVHF_PNLMS_LB_COEFS_MIN (-2147483648)
21692+/**
21693+* @def LVHF_PNLMS_LB_COEFS_MAX
21694+* MaxValue of pNLMS_LB_Coefs
21695+* @see LVHF_ControlParams_st
21696+*/
21697+#define LVHF_PNLMS_LB_COEFS_MAX (2147483647)
21698+
21699+/**
21700+* @def LVHF_PNLMS_HB_COEFS_DEFAULT
21701+* Default of pNLMS_HB_Coefs
21702+* @see LVHF_ControlParams_st
21703+*/
21704+#define LVHF_PNLMS_HB_COEFS_DEFAULT (0)
21705+/**
21706+* @def LVHF_PNLMS_HB_COEFS_MIN
21707+* MinValue of pNLMS_HB_Coefs
21708+* @see LVHF_ControlParams_st
21709+*/
21710+#define LVHF_PNLMS_HB_COEFS_MIN (-2147483648)
21711+/**
21712+* @def LVHF_PNLMS_HB_COEFS_MAX
21713+* MaxValue of pNLMS_HB_Coefs
21714+* @see LVHF_ControlParams_st
21715+*/
21716+#define LVHF_PNLMS_HB_COEFS_MAX (2147483647)
21717+
21718+/**
21719+* @def LVHF_PPCD_COEFS_DEFAULT
21720+* Default of pPCD_Coefs
21721+* @see LVHF_ControlParams_st
21722+*/
21723+#define LVHF_PPCD_COEFS_DEFAULT (0)
21724+/**
21725+* @def LVHF_PPCD_COEFS_MIN
21726+* MinValue of pPCD_Coefs
21727+* @see LVHF_ControlParams_st
21728+*/
21729+#define LVHF_PPCD_COEFS_MIN (-2147483648)
21730+/**
21731+* @def LVHF_PPCD_COEFS_MAX
21732+* MaxValue of pPCD_Coefs
21733+* @see LVHF_ControlParams_st
21734+*/
21735+#define LVHF_PPCD_COEFS_MAX (2147483647)
21736+
21737+
21738+
21739+/**
21740+* @def LVVE_TX_DUMMY_DEFAULT
21741+* Default of dummy
21742+* @see LVVE_Tx_ControlParams_st
21743+*/
21744+#define LVVE_TX_DUMMY_DEFAULT (0)
21745+/**
21746+* @def LVVE_TX_DUMMY_MIN
21747+* MinValue of dummy
21748+* @see LVVE_Tx_ControlParams_st
21749+*/
21750+#define LVVE_TX_DUMMY_MIN (-128)
21751+/**
21752+* @def LVVE_TX_DUMMY_MAX
21753+* MaxValue of dummy
21754+* @see LVVE_Tx_ControlParams_st
21755+*/
21756+#define LVVE_TX_DUMMY_MAX (127)
21757+
21758+/**
21759+* Enum type for LVVIDHeader_MessageID_en
21760+*/
21761+typedef enum
21762+{
21763+ LVVE_RX_PRESET = 0, ///< VID header Message ID for LVVE_Rx presets
21764+ LVVE_TX_PRESET = 1, ///< VID header Message ID for LVVE_Tx Presets
21765+ LVVIDHEADER_MESSAGEID_EN_DUMMY = LVM_MAXENUM
21766+} LVVIDHeader_MessageID_en;
21767+
21768+/**
21769+* Enum type for LVVIDHeader_ReturnStatus_en
21770+*/
21771+typedef enum
21772+{
21773+ LVVIDHEADER_NULLADDRESS = 0, ///< LVVIDHeader module returns NULL address error
21774+ LVVIDHEADER_SUCCESS = 1, ///< LVVIDHeader module returns with success
21775+ LVVIDHEADER_RETURNSTATUS_EN_DUMMY = LVM_MAXENUM
21776+} LVVIDHeader_ReturnStatus_en;
21777+
21778+/**
21779+* Enum type for LVVE_Rx_Mode_en
21780+*/
21781+typedef enum
21782+{
21783+ LVVE_RX_MODE_OFF = 0, ///< Rx voice engine is turned off
21784+ LVVE_RX_MODE_ON = 1, ///< Rx voice in will run
21785+ LVVE_RX_MODE_BYPASS = 2, ///< Rx voice engine will run but output will be ignored
21786+ LVVE_RX_MODE_EN_DUMMY = LVM_MAXENUM
21787+} LVVE_Rx_Mode_en;
21788+
21789+/**
21790+* Enum type for LVVE_Tx_Mode_en
21791+*/
21792+typedef enum
21793+{
21794+ LVVE_TX_MODE_OFF = 0, ///< Tx in LVVE engine is disabled
21795+ LVVE_TX_MODE_ON = 1, ///< TX in LVVE is enabled
21796+ LVVE_TX_MODE_BYPASS_MIC0 = 2, ///< TX in LVVE engine will run but output will be Mic0 signal
21797+ LVVE_TX_MODE_BYPASS_MIC1 = 3, ///< Tx in LVVE engine will run but output will be Mic1 signal
21798+ LVVE_TX_MODE_BYPASS_REF = 4, ///< Tx in LVVE engine will run but output will be Ref signal
21799+ LVVE_TX_MODE_EN_DUMMY = LVM_MAXENUM
21800+} LVVE_Tx_Mode_en;
21801+
21802+/****************************************************************************************/
21803+/* */
21804+/* Structures */
21805+/* */
21806+/****************************************************************************************/
21807+/**
21808+* The status parameters are used to retrieve the status of the module.
21809+* @see LVVC_GetStatusParameters
21810+*/
21811+typedef struct
21812+{
21813+ /**
21814+ The internal gain setting used by VoiceClarity.
21815+ <table border>
21816+ <tr>
21817+ <td><b>Q-format</b></td>
21818+ <td><b>Min</b></td>
21819+ <td><b>Default</b></td>
21820+ <td><b>Max</b></td>
21821+ </tr>
21822+ <tr>
21823+ <td>6.9</td>
21824+ <td>@ref LVVC_GAIN_MIN (0)</td>
21825+ <td>@ref LVVC_GAIN_DEFAULT (0)</td>
21826+ <td>@ref LVVC_GAIN_MAX (32767)</td>
21827+ </tr>
21828+ </table> */
21829+ LVM_INT16 Gain; ///< Gain
21830+
21831+ /**
21832+ 0 (no detection) or 1 (detection).
21833+ <table border>
21834+ <tr>
21835+ <td><b>Q-format</b></td>
21836+ <td><b>Min</b></td>
21837+ <td><b>Default</b></td>
21838+ <td><b>Max</b></td>
21839+ </tr>
21840+ <tr>
21841+ <td>15.0</td>
21842+ <td>@ref LVVC_SPDETECTED_MIN (0)</td>
21843+ <td>@ref LVVC_SPDETECTED_DEFAULT (0)</td>
21844+ <td>@ref LVVC_SPDETECTED_MAX (1)</td>
21845+ </tr>
21846+ </table> */
21847+ LVM_INT16 SpDetected; ///< The speech detector flag.
21848+
21849+} LVVC_StatusParams_st;
21850+
21851+/**
21852+* The status parameters are used to retrieve the status of the module.
21853+* @see LVWM_GetStatusParameters
21854+*/
21855+typedef struct
21856+{
21857+ /**
21858+ The internal gain setting used by WhisperMode in dB.
21859+ <table border>
21860+ <tr>
21861+ <td><b>Q-format</b></td>
21862+ <td><b>Min</b></td>
21863+ <td><b>Default</b></td>
21864+ <td><b>Max</b></td>
21865+ </tr>
21866+ <tr>
21867+ <td>6.9</td>
21868+ <td>@ref LVWM_AVL_GAIN_MIN (0)</td>
21869+ <td>@ref LVWM_AVL_GAIN_DEFAULT (0)</td>
21870+ <td>@ref LVWM_AVL_GAIN_MAX (32767)</td>
21871+ </tr>
21872+ </table> */
21873+ LVM_INT16 AVL_Gain; ///< gain (dB)
21874+
21875+} LVWM_StatusParams_st;
21876+
21877+/**
21878+* The status parameters are used to retrieve the status of the module.
21879+* @see LVVE_Rx_GetStatusParameters
21880+*/
21881+typedef struct
21882+{
21883+ /**
21884+ Voice Clarity Status Parameter Structure.
21885+ */
21886+ LVVC_StatusParams_st VC_StatusParams; ///< Voice Clarity Status Parameter Structure
21887+
21888+ /**
21889+ Whisper Mode Status Parameter Structure.
21890+ */
21891+ LVWM_StatusParams_st WM_StatusParams; ///< Whisper Mode Status Parameter Structure
21892+
21893+ /**
21894+ Dummy Param.
21895+ <table border>
21896+ <tr>
21897+ <td><b>Q-format</b></td>
21898+ <td><b>Min</b></td>
21899+ <td><b>Default</b></td>
21900+ <td><b>Max</b></td>
21901+ </tr>
21902+ <tr>
21903+ <td>1.7</td>
21904+ <td>@ref LVVE_RX_DUMMY_MIN (-128)</td>
21905+ <td>@ref LVVE_RX_DUMMY_DEFAULT (0)</td>
21906+ <td>@ref LVVE_RX_DUMMY_MAX (127)</td>
21907+ </tr>
21908+ </table> */
21909+ LVM_INT8 dummy; ///< Dummy Param
21910+
21911+} LVVE_Rx_StatusParams_st;
21912+
21913+/**
21914+* The status parameters are used to retrieve the status of the module.
21915+* @see LVNV_GetStatusParameters
21916+*/
21917+typedef struct
21918+{
21919+ /**
21920+ Bit mask describing the current state of LVNV, used for debugging.
21921+ */
21922+ LVNV_StatusWord_bm status; ///< current state
21923+
21924+ /**
21925+ To keep correct memory alignment. To be removed when LVNV_StatusWord_bm has
21926+ become int32 as it should.
21927+ <table border>
21928+ <tr>
21929+ <td><b>Q-format</b></td>
21930+ <td><b>Min</b></td>
21931+ <td><b>Default</b></td>
21932+ <td><b>Max</b></td>
21933+ </tr>
21934+ <tr>
21935+ <td>0.15</td>
21936+ <td>@ref LVNV_DUMMY_MIN (0)</td>
21937+ <td>@ref LVNV_DUMMY_DEFAULT (0)</td>
21938+ <td>@ref LVNV_DUMMY_MAX (0)</td>
21939+ </tr>
21940+ </table> */
21941+ LVM_INT16 Dummy; ///< Dummy for memory alignment.
21942+
21943+ /**
21944+ Pointer to the coefficients of the primary low-band (0-4kHz) NLMS filter
21945+ <table border>
21946+ <tr>
21947+ <td><b>Q-format</b></td>
21948+ <td><b>Min</b></td>
21949+ <td><b>Default</b></td>
21950+ <td><b>Max</b></td>
21951+ </tr>
21952+ <tr>
21953+ <td>1.30</td>
21954+ <td>@ref LVNV_PNLMS0_LB_COEFFS_MIN (-2147483648)</td>
21955+ <td>@ref LVNV_PNLMS0_LB_COEFFS_DEFAULT (0)</td>
21956+ <td>@ref LVNV_PNLMS0_LB_COEFFS_MAX (2147483647)</td>
21957+ </tr>
21958+ </table> */
21959+ LVM_INT32* pNLMS0_LB_Coeffs; ///< NLMS0 lowband filter coefficients
21960+
21961+ /**
21962+ Pointer to the coefficients of the primary high-band (4-8kHz) NLMS filter
21963+ <table border>
21964+ <tr>
21965+ <td><b>Q-format</b></td>
21966+ <td><b>Min</b></td>
21967+ <td><b>Default</b></td>
21968+ <td><b>Max</b></td>
21969+ </tr>
21970+ <tr>
21971+ <td>1.30</td>
21972+ <td>@ref LVNV_PNLMS0_HB_COEFFS_MIN (-2147483648)</td>
21973+ <td>@ref LVNV_PNLMS0_HB_COEFFS_DEFAULT (0)</td>
21974+ <td>@ref LVNV_PNLMS0_HB_COEFFS_MAX (2147483647)</td>
21975+ </tr>
21976+ </table> */
21977+ LVM_INT32* pNLMS0_HB_Coeffs; ///< NLMS0 highband filter coefficients
21978+
21979+ /**
21980+ Pointer to the coefficients of the secondary low-band (0-4kHz) NLMS filter
21981+ <table border>
21982+ <tr>
21983+ <td><b>Q-format</b></td>
21984+ <td><b>Min</b></td>
21985+ <td><b>Default</b></td>
21986+ <td><b>Max</b></td>
21987+ </tr>
21988+ <tr>
21989+ <td>1.30</td>
21990+ <td>@ref LVNV_PNLMS1_LB_COEFFS_MIN (-2147483648)</td>
21991+ <td>@ref LVNV_PNLMS1_LB_COEFFS_DEFAULT (0)</td>
21992+ <td>@ref LVNV_PNLMS1_LB_COEFFS_MAX (2147483647)</td>
21993+ </tr>
21994+ </table> */
21995+ LVM_INT32* pNLMS1_LB_Coeffs; ///< NLMS1 lowband filter coefficients
21996+
21997+ /**
21998+ Pointer to the coefficients of the secondary high-band (4-8kHz) NLMS filter
21999+ <table border>
22000+ <tr>
22001+ <td><b>Q-format</b></td>
22002+ <td><b>Min</b></td>
22003+ <td><b>Default</b></td>
22004+ <td><b>Max</b></td>
22005+ </tr>
22006+ <tr>
22007+ <td>1.30</td>
22008+ <td>@ref LVNV_PNLMS1_HB_COEFFS_MIN (-2147483648)</td>
22009+ <td>@ref LVNV_PNLMS1_HB_COEFFS_DEFAULT (0)</td>
22010+ <td>@ref LVNV_PNLMS1_HB_COEFFS_MAX (2147483647)</td>
22011+ </tr>
22012+ </table> */
22013+ LVM_INT32* pNLMS1_HB_Coeffs; ///< NLMS1 highband filter coefficients
22014+
22015+ /**
22016+ Pointer to the coefficients of the FSB0 and FSB1 filters
22017+ <table border>
22018+ <tr>
22019+ <td><b>Q-format</b></td>
22020+ <td><b>Min</b></td>
22021+ <td><b>Default</b></td>
22022+ <td><b>Max</b></td>
22023+ </tr>
22024+ <tr>
22025+ <td>16.15</td>
22026+ <td>@ref LVNV_PFSB_COEFFS_MIN (-2147483648)</td>
22027+ <td>@ref LVNV_PFSB_COEFFS_DEFAULT (0)</td>
22028+ <td>@ref LVNV_PFSB_COEFFS_MAX (2147483647)</td>
22029+ </tr>
22030+ </table> */
22031+ LVM_INT32* pFSB_Coeffs; ///< FSB0 and FSB1 coefficients
22032+
22033+ /**
22034+ Pointer to the coefficients of the GSC filter
22035+ <table border>
22036+ <tr>
22037+ <td><b>Q-format</b></td>
22038+ <td><b>Min</b></td>
22039+ <td><b>Default</b></td>
22040+ <td><b>Max</b></td>
22041+ </tr>
22042+ <tr>
22043+ <td>1.30</td>
22044+ <td>@ref LVNV_PGSC_COEFFS_MIN (-2147483648)</td>
22045+ <td>@ref LVNV_PGSC_COEFFS_DEFAULT (0)</td>
22046+ <td>@ref LVNV_PGSC_COEFFS_MAX (2147483647)</td>
22047+ </tr>
22048+ </table> */
22049+ LVM_INT32* pGSC_Coeffs; ///< GSC coefficients
22050+
22051+ /**
22052+ Pointer to the MicPowSp detection flag
22053+ <table border>
22054+ <tr>
22055+ <td><b>Q-format</b></td>
22056+ <td><b>Min</b></td>
22057+ <td><b>Default</b></td>
22058+ <td><b>Max</b></td>
22059+ </tr>
22060+ <tr>
22061+ <td>15.0</td>
22062+ <td>@ref LVNV_PMICPOWSP_MIN (0)</td>
22063+ <td>@ref LVNV_PMICPOWSP_DEFAULT (0)</td>
22064+ <td>@ref LVNV_PMICPOWSP_MAX (1)</td>
22065+ </tr>
22066+ </table> */
22067+ LVM_INT16* pMicPowSp; ///< MicPow Speech detection flag
22068+
22069+ /**
22070+ Pointer to the variable of Calibration factor
22071+ <table border>
22072+ <tr>
22073+ <td><b>Q-format</b></td>
22074+ <td><b>Min</b></td>
22075+ <td><b>Default</b></td>
22076+ <td><b>Max</b></td>
22077+ </tr>
22078+ <tr>
22079+ <td>2.13</td>
22080+ <td>@ref LVNV_PCALFACTOR_MIN (0)</td>
22081+ <td>@ref LVNV_PCALFACTOR_DEFAULT (0)</td>
22082+ <td>@ref LVNV_PCALFACTOR_MAX (32767)</td>
22083+ </tr>
22084+ </table> */
22085+ LVM_INT16* pCalFactor; ///< Calibration factor value
22086+
22087+ /**
22088+ Pointer to the variable of Calibration ready
22089+ <table border>
22090+ <tr>
22091+ <td><b>Q-format</b></td>
22092+ <td><b>Min</b></td>
22093+ <td><b>Default</b></td>
22094+ <td><b>Max</b></td>
22095+ </tr>
22096+ <tr>
22097+ <td>15.0</td>
22098+ <td>@ref LVNV_PCALREADY_MIN (0)</td>
22099+ <td>@ref LVNV_PCALREADY_DEFAULT (0)</td>
22100+ <td>@ref LVNV_PCALREADY_MAX (2)</td>
22101+ </tr>
22102+ </table> */
22103+ LVM_INT16* pCalReady; ///< Calibration ready value
22104+
22105+ /**
22106+ Pointer to the inter-channel correlation value used in broadside detection.
22107+ <table border>
22108+ <tr>
22109+ <td><b>Q-format</b></td>
22110+ <td><b>Min</b></td>
22111+ <td><b>Default</b></td>
22112+ <td><b>Max</b></td>
22113+ </tr>
22114+ <tr>
22115+ <td>0.15</td>
22116+ <td>@ref LVNV_PBROADSIDE_INTERCC_MIN (0)</td>
22117+ <td>@ref LVNV_PBROADSIDE_INTERCC_DEFAULT (0)</td>
22118+ <td>@ref LVNV_PBROADSIDE_INTERCC_MAX (32767)</td>
22119+ </tr>
22120+ </table> */
22121+ LVM_INT16* pBroadside_interCC; ///< Broadside correlation
22122+
22123+} LVNV_StatusParams_st;
22124+
22125+/**
22126+* The status parameters are used to retrieve the status of the module.
22127+* @see LVHF_GetStatusParameters
22128+*/
22129+typedef struct
22130+{
22131+ /**
22132+ Current value of the echo subtraction factor.
22133+ <table border>
22134+ <tr>
22135+ <td><b>Q-format</b></td>
22136+ <td><b>Min</b></td>
22137+ <td><b>Default</b></td>
22138+ <td><b>Max</b></td>
22139+ </tr>
22140+ <tr>
22141+ <td>5.10</td>
22142+ <td>@ref LVHF_GAMMAE_MIN (0)</td>
22143+ <td>@ref LVHF_GAMMAE_DEFAULT (0)</td>
22144+ <td>@ref LVHF_GAMMAE_MAX (32767)</td>
22145+ </tr>
22146+ </table> */
22147+ LVM_INT16 gammae; ///< multiplicator factor of echo suppression
22148+
22149+ /**
22150+ Bit mask describing the current state of LVHF, used for debugging.
22151+ */
22152+ LVHF_StatusWord_bm status; ///< current state
22153+
22154+ /**
22155+ Pointer to the coefficients of the LB NLMS.
22156+ <table border>
22157+ <tr>
22158+ <td><b>Q-format</b></td>
22159+ <td><b>Min</b></td>
22160+ <td><b>Default</b></td>
22161+ <td><b>Max</b></td>
22162+ </tr>
22163+ <tr>
22164+ <td>1.30</td>
22165+ <td>@ref LVHF_PNLMS_LB_COEFS_MIN (-2147483648)</td>
22166+ <td>@ref LVHF_PNLMS_LB_COEFS_DEFAULT (0)</td>
22167+ <td>@ref LVHF_PNLMS_LB_COEFS_MAX (2147483647)</td>
22168+ </tr>
22169+ </table> */
22170+ LVM_INT32* pNLMS_LB_Coefs; ///< NLMS lowband filter coefficients
22171+
22172+ /**
22173+ Pointer to the coefficients of the HB NLMS.
22174+ <table border>
22175+ <tr>
22176+ <td><b>Q-format</b></td>
22177+ <td><b>Min</b></td>
22178+ <td><b>Default</b></td>
22179+ <td><b>Max</b></td>
22180+ </tr>
22181+ <tr>
22182+ <td>1.30</td>
22183+ <td>@ref LVHF_PNLMS_HB_COEFS_MIN (-2147483648)</td>
22184+ <td>@ref LVHF_PNLMS_HB_COEFS_DEFAULT (0)</td>
22185+ <td>@ref LVHF_PNLMS_HB_COEFS_MAX (2147483647)</td>
22186+ </tr>
22187+ </table> */
22188+ LVM_INT32* pNLMS_HB_Coefs; ///< NLMS highband filter coefficients
22189+
22190+ /**
22191+ Pointer to the coefficients of the PCD NLMS.
22192+ <table border>
22193+ <tr>
22194+ <td><b>Q-format</b></td>
22195+ <td><b>Min</b></td>
22196+ <td><b>Default</b></td>
22197+ <td><b>Max</b></td>
22198+ </tr>
22199+ <tr>
22200+ <td>1.30</td>
22201+ <td>@ref LVHF_PPCD_COEFS_MIN (-2147483648)</td>
22202+ <td>@ref LVHF_PPCD_COEFS_DEFAULT (0)</td>
22203+ <td>@ref LVHF_PPCD_COEFS_MAX (2147483647)</td>
22204+ </tr>
22205+ </table> */
22206+ LVM_INT32* pPCD_Coefs; ///< PCD NLMS filter coefficients
22207+
22208+} LVHF_StatusParams_st;
22209+
22210+/**
22211+* The status parameters are used to retrieve the status of the module.
22212+* @see LVVE_Tx_GetStatusParameters
22213+*/
22214+typedef struct
22215+{
22216+ /**
22217+ HandsFree Status Parameter Structure.
22218+ */
22219+ LVHF_StatusParams_st HF_StatusParams; ///< HandsFree Status Parameters Structure
22220+
22221+ /**
22222+ NoiseVoid Status Parameter Structure.
22223+ */
22224+ LVNV_StatusParams_st NV_StatusParams; ///< NoiseVoid Status Parameters Structrue
22225+
22226+ /**
22227+ Dummy Param.
22228+ <table border>
22229+ <tr>
22230+ <td><b>Q-format</b></td>
22231+ <td><b>Min</b></td>
22232+ <td><b>Default</b></td>
22233+ <td><b>Max</b></td>
22234+ </tr>
22235+ <tr>
22236+ <td>1.7</td>
22237+ <td>@ref LVVE_TX_DUMMY_MIN (-128)</td>
22238+ <td>@ref LVVE_TX_DUMMY_DEFAULT (0)</td>
22239+ <td>@ref LVVE_TX_DUMMY_MAX (127)</td>
22240+ </tr>
22241+ </table> */
22242+ LVM_INT8 dummy; ///< Dummy Param
22243+
22244+} LVVE_Tx_StatusParams_st;
22245+
22246+/**
22247+* The control parameters are used to control the overall module behavior. These parameters may
22248+* be changed at any time during processing using the LVVIDHeader_SetControlParameters function but they
22249+* will not take effect until the next call to the LVVIDHeader_Process function.
22250+*
22251+* @see LVVIDHeader_SetControlParameters
22252+* @see LVVIDHeader_Process
22253+*/
22254+typedef struct
22255+{
22256+ /**
22257+ This number always increments by one when there is change in the header format.
22258+ <table border>
22259+ <tr>
22260+ <td><b>Q-format</b></td>
22261+ <td><b>Min</b></td>
22262+ <td><b>Default</b></td>
22263+ <td><b>Max</b></td>
22264+ </tr>
22265+ <tr>
22266+ <td>8.0</td>
22267+ <td>@ref LVVIDHEADER_HEADERVERSION_MIN (0)</td>
22268+ <td>@ref LVVIDHEADER_HEADERVERSION_DEFAULT (3)</td>
22269+ <td>@ref LVVIDHEADER_HEADERVERSION_MAX (255)</td>
22270+ </tr>
22271+ </table> */
22272+ LVM_UINT8 HeaderVersion; ///< Header Format Version
22273+
22274+ /**
22275+ Initially This variable holds value of the baseline version. The value is in
22276+ format of xxyyzzpp where xx is major number of the library, yy is minor number,
22277+ zz is second minor number and pp is patch number of the baseline.
22278+ <table border>
22279+ <tr>
22280+ <td><b>Q-format</b></td>
22281+ <td><b>Min</b></td>
22282+ <td><b>Default</b></td>
22283+ <td><b>Max</b></td>
22284+ </tr>
22285+ <tr>
22286+ <td>32.0</td>
22287+ <td>@ref LVVIDHEADER_BASELINEVERSION_MIN (1)</td>
22288+ <td>@ref LVVIDHEADER_BASELINEVERSION_DEFAULT (51906816)</td>
22289+ <td>@ref LVVIDHEADER_BASELINEVERSION_MAX (4294967295)</td>
22290+ </tr>
22291+ </table> */
22292+ LVM_UINT32 BaselineVersion; ///< This is LVVE tagged version name
22293+
22294+ /**
22295+ First LVVE_Rx algorithm mask which holds information of which LVVE_Rx
22296+ algorithms are present.
22297+ */
22298+ LVVIDHeader_LVVE_Rx_Mask1_bm LVVE_Rx_AlgoMask1; ///< This variable forms first part of LVVE_Rx algorithm mask
22299+
22300+ /**
22301+ Second LVVE_Rx algorithm mask which holds information of which LVVE_Rx
22302+ algorithms are present.
22303+ */
22304+ LVVIDHeader_LVVE_Rx_Mask2_bm LVVE_Rx_AlgoMask2; ///< This variable forms second part of LVVE_Rx algorithm mask
22305+
22306+ /**
22307+ First LVVE_Tx algorithm mask which holds information of which LVVE_Tx
22308+ algorithms are present.
22309+ */
22310+ LVVIDHeader_LVVE_Tx_Mask1_bm LVVE_Tx_AlgoMask1; ///< This variable forms first part of LVVE_Tx mask
22311+
22312+ /**
22313+ Second LVVE_Tx algorithm mask which holds information of which LVVE_Tx
22314+ algorithms are present.
22315+ */
22316+ LVVIDHeader_LVVE_Tx_Mask2_bm LVVE_Tx_AlgoMask2; ///< This variable forms second part of LVVE_Tx mask
22317+
22318+ /**
22319+ First LVVE configuration mask which holds information of which configurations
22320+ of LVVE_Tx and LVVE_Rx algorithm are present.
22321+ */
22322+ LVVIDHeader_Configurations_Mask1_bm LVVE_Config_AlgoMask1; ///< This variable forms first part of common LVVE_Tx and LVVE_Rx configuration mask
22323+
22324+ /**
22325+ Second LVVE configuration mask which holds information of which configurations
22326+ of LVVE_Tx and LVVE_Rx algorithm are present.
22327+ */
22328+ LVVIDHeader_Configurations_Mask2_bm LVVE_Config_AlgoMask2; ///< This variable forms second part of common LVVE_Tx and LVVE_Rx configuration mask
22329+
22330+ /**
22331+ Messge ID is used to identify stream
22332+ */
22333+ LVVIDHeader_MessageID_en MessageID; ///< This param holds message ID of the buffer
22334+
22335+ /**
22336+ This parameter specifies the sample rate information of the buffer.
22337+ */
22338+ LVM_Fs_en SampleRate; ///< Sample rate information of the buffer.
22339+
22340+ /**
22341+ This parameter specifies the volume index corresponding to the subsequent data.
22342+ <table border>
22343+ <tr>
22344+ <td><b>Q-format</b></td>
22345+ <td><b>Min</b></td>
22346+ <td><b>Default</b></td>
22347+ <td><b>Max</b></td>
22348+ </tr>
22349+ <tr>
22350+ <td>8.0</td>
22351+ <td>@ref LVVIDHEADER_VOLUMEINDEX_MIN (0)</td>
22352+ <td>@ref LVVIDHEADER_VOLUMEINDEX_DEFAULT (0)</td>
22353+ <td>@ref LVVIDHEADER_VOLUMEINDEX_MAX (255)</td>
22354+ </tr>
22355+ </table> */
22356+ LVM_UINT8 VolumeIndex; ///< Volume index corresponding to the subsequent data.
22357+
22358+ /**
22359+ This parameter specifies how many volumes are present in the binary file.
22360+ <table border>
22361+ <tr>
22362+ <td><b>Q-format</b></td>
22363+ <td><b>Min</b></td>
22364+ <td><b>Default</b></td>
22365+ <td><b>Max</b></td>
22366+ </tr>
22367+ <tr>
22368+ <td>8.0</td>
22369+ <td>@ref LVVIDHEADER_NUMVOLUMES_MIN (0)</td>
22370+ <td>@ref LVVIDHEADER_NUMVOLUMES_DEFAULT (1)</td>
22371+ <td>@ref LVVIDHEADER_NUMVOLUMES_MAX (255)</td>
22372+ </tr>
22373+ </table> */
22374+ LVM_UINT8 NumVolumes; ///< Number of volumes present in the binary file.
22375+
22376+} LVVIDHeader_ControlParams_st;
22377+
22378+/**
22379+* The control parameters are used to control the overall module behavior. These parameters may
22380+* be changed at any time during processing using the LVVC_SetControlParameters function but they
22381+* will not take effect until the next call to the LVVC_Process function.
22382+*
22383+* @see LVVC_SetControlParameters
22384+* @see LVVC_Process
22385+*/
22386+typedef struct
22387+{
22388+ /**
22389+ Control the operating mode (ON/OFF) of the algorithm.
22390+ */
22391+ LVM_Mode_en OperatingMode; ///< Operating mode
22392+
22393+ /**
22394+ The mode word to enable/disable internal algorithm blocks of VoiceClarity.
22395+ */
22396+ LVVC_ModeWord_bm mode; ///< Mode word
22397+
22398+ /**
22399+ Maximum Gain applied to the signal.
22400+ <table border>
22401+ <tr>
22402+ <td><b>Q-format</b></td>
22403+ <td><b>Min</b></td>
22404+ <td><b>Default</b></td>
22405+ <td><b>Max</b></td>
22406+ </tr>
22407+ <tr>
22408+ <td>6.9</td>
22409+ <td>@ref LVVC_GAIN_LIN_MAX_MIN (512)</td>
22410+ <td>@ref LVVC_GAIN_LIN_MAX_DEFAULT (1286)</td>
22411+ <td>@ref LVVC_GAIN_LIN_MAX_MAX (32767)</td>
22412+ </tr>
22413+ </table> */
22414+ LVM_INT16 Gain_Lin_Max; ///< Maximum Gain.
22415+
22416+ /**
22417+ The Noise_Sensitivity parameter sets how sensitive VoiceClarity will be to the
22418+ background noise level. The Noise_Sensitivity parameter allows adjusting the
22419+ sensitivity of those processing blocks to the nearend noise level. For high
22420+ values of the Noise_Sensitivity the effect of the mentioned processing blocks
22421+ will be big, even at low to moderate nearend noise levels. For low values of
22422+ the Noise_Sensitivity the effect of the processing blocks will be smaller, even
22423+ for high nearend noise levels.
22424+ <table border>
22425+ <tr>
22426+ <td><b>Q-format</b></td>
22427+ <td><b>Min</b></td>
22428+ <td><b>Default</b></td>
22429+ <td><b>Max</b></td>
22430+ </tr>
22431+ <tr>
22432+ <td>0.15</td>
22433+ <td>@ref LVVC_NOISE_SENSITIVITY_MIN (-6709)</td>
22434+ <td>@ref LVVC_NOISE_SENSITIVITY_DEFAULT (20000)</td>
22435+ <td>@ref LVVC_NOISE_SENSITIVITY_MAX (32767)</td>
22436+ </tr>
22437+ </table> */
22438+ LVM_INT16 Noise_Sensitivity; ///< Noise Sensitivity.
22439+
22440+ /**
22441+ The desired output level of the AGC. <br>
22442+ AVL_Target_level_lin = \f$32767*10^{Target_Level_dB/20}\f$
22443+ <table border>
22444+ <tr>
22445+ <td><b>Q-format</b></td>
22446+ <td><b>Min</b></td>
22447+ <td><b>Default</b></td>
22448+ <td><b>Max</b></td>
22449+ </tr>
22450+ <tr>
22451+ <td>0.15</td>
22452+ <td>@ref LVVC_AVL_TARGET_LEVEL_LIN_MIN (0)</td>
22453+ <td>@ref LVVC_AVL_TARGET_LEVEL_LIN_DEFAULT (16384)</td>
22454+ <td>@ref LVVC_AVL_TARGET_LEVEL_LIN_MAX (32767)</td>
22455+ </tr>
22456+ </table> */
22457+ LVM_INT16 AVL_Target_level_lin; ///< The desired output level of the AGC.
22458+
22459+ /**
22460+ The maximal attenuation of the AGC. <br>
22461+ AVL_MinGainLin = \f$512*10^{MinGain_dB/20}\f$
22462+ <table border>
22463+ <tr>
22464+ <td><b>Q-format</b></td>
22465+ <td><b>Min</b></td>
22466+ <td><b>Default</b></td>
22467+ <td><b>Max</b></td>
22468+ </tr>
22469+ <tr>
22470+ <td>6.9</td>
22471+ <td>@ref LVVC_AVL_MINGAINLIN_MIN (0)</td>
22472+ <td>@ref LVVC_AVL_MINGAINLIN_DEFAULT (256)</td>
22473+ <td>@ref LVVC_AVL_MINGAINLIN_MAX (512)</td>
22474+ </tr>
22475+ </table> */
22476+ LVM_INT16 AVL_MinGainLin; ///< The maximal attenuation of the AGC.
22477+
22478+ /**
22479+ The maximal gain of the AGC. <br>
22480+ AVL_MaxGainLin = \f$512*10^{MaxGain_dB/20}\f$
22481+ <table border>
22482+ <tr>
22483+ <td><b>Q-format</b></td>
22484+ <td><b>Min</b></td>
22485+ <td><b>Default</b></td>
22486+ <td><b>Max</b></td>
22487+ </tr>
22488+ <tr>
22489+ <td>6.9</td>
22490+ <td>@ref LVVC_AVL_MAXGAINLIN_MIN (512)</td>
22491+ <td>@ref LVVC_AVL_MAXGAINLIN_DEFAULT (8192)</td>
22492+ <td>@ref LVVC_AVL_MAXGAINLIN_MAX (32767)</td>
22493+ </tr>
22494+ </table> */
22495+ LVM_INT16 AVL_MaxGainLin; ///< The maximal gain of the AGC.
22496+
22497+ /**
22498+ The nominal gain of the AGC.<br>
22499+ AVL_NominalGain = \f$512*10^{NominalGain_dB/20}\f$
22500+ <table border>
22501+ <tr>
22502+ <td><b>Q-format</b></td>
22503+ <td><b>Min</b></td>
22504+ <td><b>Default</b></td>
22505+ <td><b>Max</b></td>
22506+ </tr>
22507+ <tr>
22508+ <td>6.9</td>
22509+ <td>@ref LVVC_AVL_NOMINALGAIN_MIN (0)</td>
22510+ <td>@ref LVVC_AVL_NOMINALGAIN_DEFAULT (512)</td>
22511+ <td>@ref LVVC_AVL_NOMINALGAIN_MAX (32767)</td>
22512+ </tr>
22513+ </table> */
22514+ LVM_INT16 AVL_NominalGain; ///< The nominal gain of the AGC.
22515+
22516+ /**
22517+ The gain of the AGC is smoothed across time. The time constant of the smoothing
22518+ depends on whether the gain is increasing or decreasing. When a sudden loud
22519+ signal is encountered (e.g. attack of speech), the attack time is used. When
22520+ the gain is increasing (e.g. long period of whispered speech), the release time
22521+ is used. <br>
22522+
22523+ AVL_Attack = \f$32767*\exp(-1/(100*AttackTimeSec))\f$
22524+ <table border>
22525+ <tr>
22526+ <td><b>Q-format</b></td>
22527+ <td><b>Min</b></td>
22528+ <td><b>Default</b></td>
22529+ <td><b>Max</b></td>
22530+ </tr>
22531+ <tr>
22532+ <td>0.15</td>
22533+ <td>@ref LVVC_AVL_ATTACK_MIN (0)</td>
22534+ <td>@ref LVVC_AVL_ATTACK_DEFAULT (12055)</td>
22535+ <td>@ref LVVC_AVL_ATTACK_MAX (32767)</td>
22536+ </tr>
22537+ </table> */
22538+ LVM_INT16 AVL_Attack; ///< The attack time of the AGC.
22539+
22540+ /**
22541+ The gain of the AGC is smoothed across time. The time constant of the smoothing
22542+ depends on whether the gain is increasing or decreasing. When a sudden loud
22543+ signal is encountered (e.g. attack of speech), the attack time is used. When
22544+ the gain is increasing (e.g. long period of whispered speech), the release time
22545+ is used. <br>
22546+
22547+ AVL_Release = \f$32767*\exp(-1/(100*ReleaseTimeSec))\f$
22548+ <table border>
22549+ <tr>
22550+ <td><b>Q-format</b></td>
22551+ <td><b>Min</b></td>
22552+ <td><b>Default</b></td>
22553+ <td><b>Max</b></td>
22554+ </tr>
22555+ <tr>
22556+ <td>0.15</td>
22557+ <td>@ref LVVC_AVL_RELEASE_MIN (0)</td>
22558+ <td>@ref LVVC_AVL_RELEASE_DEFAULT (32604)</td>
22559+ <td>@ref LVVC_AVL_RELEASE_MAX (32767)</td>
22560+ </tr>
22561+ </table> */
22562+ LVM_INT16 AVL_Release; ///< The release time of the AGC.
22563+
22564+ /**
22565+ The release time at maximum noise level.<br>
22566+
22567+ AVL_ReleaseMax = \f$32767*\exp(-1/(100*ReleaseMaxTimeSec))\f$
22568+ <table border>
22569+ <tr>
22570+ <td><b>Q-format</b></td>
22571+ <td><b>Min</b></td>
22572+ <td><b>Default</b></td>
22573+ <td><b>Max</b></td>
22574+ </tr>
22575+ <tr>
22576+ <td>0.15</td>
22577+ <td>@ref LVVC_AVL_RELEASEMAX_MIN (0)</td>
22578+ <td>@ref LVVC_AVL_RELEASEMAX_DEFAULT (32441)</td>
22579+ <td>@ref LVVC_AVL_RELEASEMAX_MAX (32767)</td>
22580+ </tr>
22581+ </table> */
22582+ LVM_INT16 AVL_ReleaseMax; ///< The release time at maximum noise level.
22583+
22584+ /**
22585+ AVL_Limit_MaxOutputLin = \f$32767*10^{TargetLimiterLeveldB/20}\f$
22586+ <table border>
22587+ <tr>
22588+ <td><b>Q-format</b></td>
22589+ <td><b>Min</b></td>
22590+ <td><b>Default</b></td>
22591+ <td><b>Max</b></td>
22592+ </tr>
22593+ <tr>
22594+ <td>0.15</td>
22595+ <td>@ref LVVC_AVL_LIMIT_MAXOUTPUTLIN_MIN (0)</td>
22596+ <td>@ref LVVC_AVL_LIMIT_MAXOUTPUTLIN_DEFAULT (23170)</td>
22597+ <td>@ref LVVC_AVL_LIMIT_MAXOUTPUTLIN_MAX (32767)</td>
22598+ </tr>
22599+ </table> */
22600+ LVM_INT16 AVL_Limit_MaxOutputLin; ///< The level to which the signal will be limited.
22601+
22602+ /**
22603+ The higher the value of the threshold, the less speech detections will occur.
22604+ <br>
22605+ SpDetect_Threshold = \f$512 * [0,64]\f$
22606+ <table border>
22607+ <tr>
22608+ <td><b>Q-format</b></td>
22609+ <td><b>Min</b></td>
22610+ <td><b>Default</b></td>
22611+ <td><b>Max</b></td>
22612+ </tr>
22613+ <tr>
22614+ <td>6.9</td>
22615+ <td>@ref LVVC_SPDETECT_THRESHOLD_MIN (0)</td>
22616+ <td>@ref LVVC_SPDETECT_THRESHOLD_DEFAULT (1024)</td>
22617+ <td>@ref LVVC_SPDETECT_THRESHOLD_MAX (32767)</td>
22618+ </tr>
22619+ </table> */
22620+ LVM_INT16 SpDetect_Threshold; ///< The threshold used in the speech detector of VoiceClarity.
22621+
22622+} LVVC_ControlParams_st;
22623+
22624+/**
22625+* The control parameters are used to control the overall module behavior. These parameters may
22626+* be changed at any time during processing using the LVFENS_SetControlParameters function but they
22627+* will not take effect until the next call to the LVFENS_Process function.
22628+*
22629+* @see LVFENS_SetControlParameters
22630+* @see LVFENS_Process
22631+*/
22632+typedef struct
22633+{
22634+ /**
22635+ */
22636+ LVM_Mode_en OperatingMode; ///< Operating Mode
22637+
22638+ /**
22639+ The maximum amount of noise suppression. <br>
22640+ Unit: dB<br>
22641+ FENS_limit_ns = \f$32767*10^{-max noise reduction[dB]/20}\f$
22642+ <table border>
22643+ <tr>
22644+ <td><b>Q-format</b></td>
22645+ <td><b>Min</b></td>
22646+ <td><b>Default</b></td>
22647+ <td><b>Max</b></td>
22648+ </tr>
22649+ <tr>
22650+ <td>0.15</td>
22651+ <td>@ref LVFENS_FENS_LIMIT_NS_MIN (0)</td>
22652+ <td>@ref LVFENS_FENS_LIMIT_NS_DEFAULT (10976)</td>
22653+ <td>@ref LVFENS_FENS_LIMIT_NS_MAX (32767)</td>
22654+ </tr>
22655+ </table> */
22656+ LVM_INT16 FENS_limit_NS; ///< FENS Noise Suppression Limit
22657+
22658+ /**
22659+ The mode word to control the internal operation of FENS.
22660+ */
22661+ LVFENS_ModeWord_bm Mode; ///< Mode word
22662+
22663+} LVFENS_ControlParams_st;
22664+
22665+/**
22666+* The control parameters are used to control the overall module behavior. These parameters may
22667+* be changed at any time during processing using the LVWM_SetControlParameters function but they
22668+* will not take effect until the next call to the LVWM_Process function.
22669+*
22670+* @see LVWM_SetControlParameters
22671+* @see LVWM_Process
22672+*/
22673+typedef struct
22674+{
22675+ /**
22676+ Control the operating mode (ON/OFF) of the algorithm.
22677+ */
22678+ LVM_Mode_en OperatingMode; ///< Operating mode
22679+
22680+ /**
22681+ The mode word to enable/disable internal algorithm blocks of WhisperMode.
22682+ */
22683+ LVWM_ModeWord_bm mode; ///< Mode word
22684+
22685+ /**
22686+ The desired output level of the AGC. <br>
22687+ AVL_Target_level_lin = \f$32767*10^{TargetLeveldB/20}\f$
22688+ <table border>
22689+ <tr>
22690+ <td><b>Q-format</b></td>
22691+ <td><b>Min</b></td>
22692+ <td><b>Default</b></td>
22693+ <td><b>Max</b></td>
22694+ </tr>
22695+ <tr>
22696+ <td>0.15</td>
22697+ <td>@ref LVWM_AVL_TARGET_LEVEL_LIN_MIN (0)</td>
22698+ <td>@ref LVWM_AVL_TARGET_LEVEL_LIN_DEFAULT (16384)</td>
22699+ <td>@ref LVWM_AVL_TARGET_LEVEL_LIN_MAX (32767)</td>
22700+ </tr>
22701+ </table> */
22702+ LVM_INT16 AVL_Target_level_lin; ///< The desired output level of the AGC.
22703+
22704+ /**
22705+ The maximal attenuation of the AGC. <br>
22706+ AVL_MinGainLin = \f$512*10^{MinGaindB/20}\f$
22707+ <table border>
22708+ <tr>
22709+ <td><b>Q-format</b></td>
22710+ <td><b>Min</b></td>
22711+ <td><b>Default</b></td>
22712+ <td><b>Max</b></td>
22713+ </tr>
22714+ <tr>
22715+ <td>6.9</td>
22716+ <td>@ref LVWM_AVL_MINGAINLIN_MIN (0)</td>
22717+ <td>@ref LVWM_AVL_MINGAINLIN_DEFAULT (128)</td>
22718+ <td>@ref LVWM_AVL_MINGAINLIN_MAX (512)</td>
22719+ </tr>
22720+ </table> */
22721+ LVM_INT16 AVL_MinGainLin; ///< The maximal attenuation of the AGC.
22722+
22723+ /**
22724+ The maximal gain of the AGC. <br>
22725+ AVL_MaxGainLin = \f$512*10^{MaxGaindB/20}\f$
22726+ <table border>
22727+ <tr>
22728+ <td><b>Q-format</b></td>
22729+ <td><b>Min</b></td>
22730+ <td><b>Default</b></td>
22731+ <td><b>Max</b></td>
22732+ </tr>
22733+ <tr>
22734+ <td>6.9</td>
22735+ <td>@ref LVWM_AVL_MAXGAINLIN_MIN (512)</td>
22736+ <td>@ref LVWM_AVL_MAXGAINLIN_DEFAULT (8189)</td>
22737+ <td>@ref LVWM_AVL_MAXGAINLIN_MAX (32767)</td>
22738+ </tr>
22739+ </table> */
22740+ LVM_INT16 AVL_MaxGainLin; ///< The maximal gain of the AGC.
22741+
22742+ /**
22743+ The gain of the AGC is smoothed across time. The time constant of the smoothing
22744+ depends on whether the gain is increasing or decreasing. When a sudden loud
22745+ signal is encountered (e.g. attack of speech), the attack time is used. When
22746+ the gain is increasing (e.g. long period of whispered speech), the release time
22747+ is used. <br>
22748+
22749+ AVL_Attack = \f$32767*\exp(-1/(100*AttackTimeSec))\f$
22750+ <table border>
22751+ <tr>
22752+ <td><b>Q-format</b></td>
22753+ <td><b>Min</b></td>
22754+ <td><b>Default</b></td>
22755+ <td><b>Max</b></td>
22756+ </tr>
22757+ <tr>
22758+ <td>0.15</td>
22759+ <td>@ref LVWM_AVL_ATTACK_MIN (0)</td>
22760+ <td>@ref LVWM_AVL_ATTACK_DEFAULT (25520)</td>
22761+ <td>@ref LVWM_AVL_ATTACK_MAX (32767)</td>
22762+ </tr>
22763+ </table> */
22764+ LVM_INT16 AVL_Attack; ///< The attack time of the AGC.
22765+
22766+ /**
22767+ The gain of the AGC is smoothed across time. The time constant of the smoothing
22768+ depends on whether the gain is increasing or decreasing. When a sudden loud
22769+ signal is encountered (e.g. attack of speech), the attack time is used. When
22770+ the gain is increasing (e.g. long period of whispered speech), the release time
22771+ is used. <br>
22772+
22773+ AVL_Release = \f$32767*\exp(-1/(100*ReleasTimeSec))\f$
22774+ <table border>
22775+ <tr>
22776+ <td><b>Q-format</b></td>
22777+ <td><b>Min</b></td>
22778+ <td><b>Default</b></td>
22779+ <td><b>Max</b></td>
22780+ </tr>
22781+ <tr>
22782+ <td>0.15</td>
22783+ <td>@ref LVWM_AVL_RELEASE_MIN (0)</td>
22784+ <td>@ref LVWM_AVL_RELEASE_DEFAULT (32685)</td>
22785+ <td>@ref LVWM_AVL_RELEASE_MAX (32767)</td>
22786+ </tr>
22787+ </table> */
22788+ LVM_INT16 AVL_Release; ///< The release time of the AGC.
22789+
22790+ /**
22791+ AVL_Limit_MaxOutputLin = \f$32767*10^{TargetLimiterLeveldB/20}\f$
22792+ <table border>
22793+ <tr>
22794+ <td><b>Q-format</b></td>
22795+ <td><b>Min</b></td>
22796+ <td><b>Default</b></td>
22797+ <td><b>Max</b></td>
22798+ </tr>
22799+ <tr>
22800+ <td>0.15</td>
22801+ <td>@ref LVWM_AVL_LIMIT_MAXOUTPUTLIN_MIN (0)</td>
22802+ <td>@ref LVWM_AVL_LIMIT_MAXOUTPUTLIN_DEFAULT (23197)</td>
22803+ <td>@ref LVWM_AVL_LIMIT_MAXOUTPUTLIN_MAX (32767)</td>
22804+ </tr>
22805+ </table> */
22806+ LVM_INT16 AVL_Limit_MaxOutputLin; ///< The level to which the signal will be limited.
22807+
22808+ /**
22809+ The higher the value of the threshold, the less speech detections will occur.
22810+ <br>
22811+ SpDetect_Threshold = \f$512 * [0,64]\f$
22812+ <table border>
22813+ <tr>
22814+ <td><b>Q-format</b></td>
22815+ <td><b>Min</b></td>
22816+ <td><b>Default</b></td>
22817+ <td><b>Max</b></td>
22818+ </tr>
22819+ <tr>
22820+ <td>6.9</td>
22821+ <td>@ref LVWM_SPDETECT_THRESHOLD_MIN (0)</td>
22822+ <td>@ref LVWM_SPDETECT_THRESHOLD_DEFAULT (9216)</td>
22823+ <td>@ref LVWM_SPDETECT_THRESHOLD_MAX (32767)</td>
22824+ </tr>
22825+ </table> */
22826+ LVM_INT16 SpDetect_Threshold; ///< The threshold used in the speech detector of WhisperMode.
22827+
22828+} LVWM_ControlParams_st;
22829+
22830+/**
22831+* The control parameters are used to control the overall module behavior. These parameters may
22832+* be changed at any time during processing using the LVDRC_SetControlParameters function but they
22833+* will not take effect until the next call to the LVDRC_Process function.
22834+*
22835+* @see LVDRC_SetControlParameters
22836+* @see LVDRC_Process
22837+*/
22838+typedef struct
22839+{
22840+ /**
22841+ Operating mode for DRC
22842+ */
22843+ LVM_Mode_en OperatingMode; ///< Operating mode
22844+
22845+ /**
22846+ Sets the number of sections (knee points) in the compressor curve
22847+ <table border>
22848+ <tr>
22849+ <td><b>Q-format</b></td>
22850+ <td><b>Min</b></td>
22851+ <td><b>Default</b></td>
22852+ <td><b>Max</b></td>
22853+ </tr>
22854+ <tr>
22855+ <td>16.0</td>
22856+ <td>@ref LVDRC_NUMKNEES_MIN (1)</td>
22857+ <td>@ref LVDRC_NUMKNEES_DEFAULT (5)</td>
22858+ <td>@ref LVDRC_NUMKNEES_MAX (5)</td>
22859+ </tr>
22860+ </table> */
22861+ LVM_UINT16 NumKnees; ///< Number of Knee points in compressor curve
22862+
22863+ /**
22864+ An array of size 5(maximum) containing the knee points specified by the
22865+ compression curve in dBFs. The number of knee points in use is limited by the
22866+ NumKnees parameter. Th input level for the first knee should be equal to or
22867+ larger than -96dB, and the input level for the last knee should be 0dB.
22868+ <table border>
22869+ <tr>
22870+ <td><b>Q-format</b></td>
22871+ <td><b>Min</b></td>
22872+ <td><b>Default</b></td>
22873+ <td><b>Max</b></td>
22874+ </tr>
22875+ <tr>
22876+ <td>15.0</td>
22877+ <td>@ref LVDRC_COMPRESSORCURVEINPUTLEVELS_MIN (-96)</td>
22878+ <td>@ref LVDRC_COMPRESSORCURVEINPUTLEVELS_DEFAULT {-96,-70,-50, -24, 0}</td>
22879+ <td>@ref LVDRC_COMPRESSORCURVEINPUTLEVELS_MAX (0)</td>
22880+ </tr>
22881+ </table> */
22882+ LVM_INT16 CompressorCurveInputLevels[LVDRC_COMPRESSORCURVEINPUTLEVELS_LENGTH]; ///< Compressor Curve Input Levels
22883+
22884+ /**
22885+ An array of size 5(maximum) containing the knee points specified by the
22886+ compression curve in dBFs. The number of knee points in use is limited by the
22887+ NumKnees parameter. The output level for the first knee should be equal to or
22888+ larger than -96dB, and the output level for the last knee should be equal to or
22889+ smaller than 0dB.
22890+ <table border>
22891+ <tr>
22892+ <td><b>Q-format</b></td>
22893+ <td><b>Min</b></td>
22894+ <td><b>Default</b></td>
22895+ <td><b>Max</b></td>
22896+ </tr>
22897+ <tr>
22898+ <td>15.0</td>
22899+ <td>@ref LVDRC_COMPRESSORCURVEOUTPUTLEVELS_MIN (-96)</td>
22900+ <td>@ref LVDRC_COMPRESSORCURVEOUTPUTLEVELS_DEFAULT {-96,-70,-38,-12,0}</td>
22901+ <td>@ref LVDRC_COMPRESSORCURVEOUTPUTLEVELS_MAX (0)</td>
22902+ </tr>
22903+ </table> */
22904+ LVM_INT16 CompressorCurveOutputLevels[LVDRC_COMPRESSORCURVEOUTPUTLEVELS_LENGTH]; ///< Compressor Curve Output Levels
22905+
22906+ /**
22907+ The AttackTime parameter is the time constant controlling the rate of reaction
22908+ to increase in signal level. The AttackTime is specified in increments of 100µs
22909+ <table border>
22910+ <tr>
22911+ <td><b>Q-format</b></td>
22912+ <td><b>Min</b></td>
22913+ <td><b>Default</b></td>
22914+ <td><b>Max</b></td>
22915+ </tr>
22916+ <tr>
22917+ <td>15.0</td>
22918+ <td>@ref LVDRC_ATTACKTIME_MIN (0)</td>
22919+ <td>@ref LVDRC_ATTACKTIME_DEFAULT (50)</td>
22920+ <td>@ref LVDRC_ATTACKTIME_MAX (32767)</td>
22921+ </tr>
22922+ </table> */
22923+ LVM_INT16 AttackTime; ///< Attack Time
22924+
22925+ /**
22926+ The ReleaseTime parameter is the time constant controlling the rate of reaction
22927+ to decrease in signal level. The ReleaseTime is specified in increments of
22928+ 100µs.
22929+ <table border>
22930+ <tr>
22931+ <td><b>Q-format</b></td>
22932+ <td><b>Min</b></td>
22933+ <td><b>Default</b></td>
22934+ <td><b>Max</b></td>
22935+ </tr>
22936+ <tr>
22937+ <td>15.0</td>
22938+ <td>@ref LVDRC_RELEASETIME_MIN (0)</td>
22939+ <td>@ref LVDRC_RELEASETIME_DEFAULT (50)</td>
22940+ <td>@ref LVDRC_RELEASETIME_MAX (32767)</td>
22941+ </tr>
22942+ </table> */
22943+ LVM_INT16 ReleaseTime; ///< Release Time
22944+
22945+ /**
22946+ Enable or Disable limiter with soft clipping.
22947+ */
22948+ LVM_Mode_en LimiterOperatingMode; ///< Enable or Disable limiter with soft clipping
22949+
22950+ /**
22951+ Sets the limit level of the compressor in dB.
22952+ <table border>
22953+ <tr>
22954+ <td><b>Q-format</b></td>
22955+ <td><b>Min</b></td>
22956+ <td><b>Default</b></td>
22957+ <td><b>Max</b></td>
22958+ </tr>
22959+ <tr>
22960+ <td>15.0</td>
22961+ <td>@ref LVDRC_LIMITLEVEL_MIN (-96)</td>
22962+ <td>@ref LVDRC_LIMITLEVEL_DEFAULT (0)</td>
22963+ <td>@ref LVDRC_LIMITLEVEL_MAX (0)</td>
22964+ </tr>
22965+ </table> */
22966+ LVM_INT16 LimitLevel; ///< Sets the limit level of the compressor in dB
22967+
22968+} LVDRC_ControlParams_st;
22969+
22970+/**
22971+* The control parameters are used to control the overall module behavior. These parameters may
22972+* be changed at any time during processing using the LVNG_SetControlParameters function but they
22973+* will not take effect until the next call to the LVNG_Process function.
22974+*
22975+* @see LVNG_SetControlParameters
22976+* @see LVNG_Process
22977+*/
22978+typedef struct
22979+{
22980+ /**
22981+ Operating mode for Noise Gate
22982+ */
22983+ LVM_Mode_en OperatingMode; ///< Operating mode
22984+
22985+ /**
22986+ Sets the number of sections (knee points) in the compressor curve
22987+ <table border>
22988+ <tr>
22989+ <td><b>Q-format</b></td>
22990+ <td><b>Min</b></td>
22991+ <td><b>Default</b></td>
22992+ <td><b>Max</b></td>
22993+ </tr>
22994+ <tr>
22995+ <td>16.0</td>
22996+ <td>@ref LVNG_NUMKNEES_MIN (1)</td>
22997+ <td>@ref LVNG_NUMKNEES_DEFAULT (5)</td>
22998+ <td>@ref LVNG_NUMKNEES_MAX (5)</td>
22999+ </tr>
23000+ </table> */
23001+ LVM_UINT16 NumKnees; ///< Number of Knee points in compressor curve
23002+
23003+ /**
23004+ An array of size 5(maximum) containing the knee points specified by the
23005+ compression curve in dBFs. The number of knee points in use is limited by the
23006+ NumKnees parameter. The input level for the first knee should be equal to or
23007+ larger than -96dB, and the input level for the last knee should be 0dB.
23008+ <table border>
23009+ <tr>
23010+ <td><b>Q-format</b></td>
23011+ <td><b>Min</b></td>
23012+ <td><b>Default</b></td>
23013+ <td><b>Max</b></td>
23014+ </tr>
23015+ <tr>
23016+ <td>15.0</td>
23017+ <td>@ref LVNG_COMPRESSORCURVEINPUTLEVELS_MIN (-96)</td>
23018+ <td>@ref LVNG_COMPRESSORCURVEINPUTLEVELS_DEFAULT {-80,-70,-50, -24, 0}</td>
23019+ <td>@ref LVNG_COMPRESSORCURVEINPUTLEVELS_MAX (0)</td>
23020+ </tr>
23021+ </table> */
23022+ LVM_INT16 CompressorCurveInputLevels[LVNG_COMPRESSORCURVEINPUTLEVELS_LENGTH]; ///< Compressor Curve Input Levels
23023+
23024+ /**
23025+ An array of size 5(maximum) containing the knee points specified by the
23026+ compression curve in dBFs. The number of knee points in use is limited by the
23027+ NumKnees parameter. The output level for the first knee should be equal to or
23028+ larger than -96dB, and the output level for the last knee should be equal to or
23029+ smaller than 0dB.
23030+ <table border>
23031+ <tr>
23032+ <td><b>Q-format</b></td>
23033+ <td><b>Min</b></td>
23034+ <td><b>Default</b></td>
23035+ <td><b>Max</b></td>
23036+ </tr>
23037+ <tr>
23038+ <td>15.0</td>
23039+ <td>@ref LVNG_COMPRESSORCURVEOUTPUTLEVELS_MIN (-96)</td>
23040+ <td>@ref LVNG_COMPRESSORCURVEOUTPUTLEVELS_DEFAULT {-96,-80,-50, -24, 0}</td>
23041+ <td>@ref LVNG_COMPRESSORCURVEOUTPUTLEVELS_MAX (0)</td>
23042+ </tr>
23043+ </table> */
23044+ LVM_INT16 CompressorCurveOutputLevels[LVNG_COMPRESSORCURVEOUTPUTLEVELS_LENGTH]; ///< Compressor Curve Output Levels
23045+
23046+ /**
23047+ The AttackTime parameter is the time constant controlling the rate of reaction
23048+ to increase in signal level. The AttackTime is specified in increments of 100µs
23049+ <table border>
23050+ <tr>
23051+ <td><b>Q-format</b></td>
23052+ <td><b>Min</b></td>
23053+ <td><b>Default</b></td>
23054+ <td><b>Max</b></td>
23055+ </tr>
23056+ <tr>
23057+ <td>15.0</td>
23058+ <td>@ref LVNG_ATTACKTIME_MIN (0)</td>
23059+ <td>@ref LVNG_ATTACKTIME_DEFAULT (50)</td>
23060+ <td>@ref LVNG_ATTACKTIME_MAX (32767)</td>
23061+ </tr>
23062+ </table> */
23063+ LVM_INT16 AttackTime; ///< Attack Time
23064+
23065+ /**
23066+ The ReleaseTime parameter is the time constant controlling the rate of reaction
23067+ to decrease in signal level. The ReleaseTime is specified in increments of
23068+ 100µs.
23069+ <table border>
23070+ <tr>
23071+ <td><b>Q-format</b></td>
23072+ <td><b>Min</b></td>
23073+ <td><b>Default</b></td>
23074+ <td><b>Max</b></td>
23075+ </tr>
23076+ <tr>
23077+ <td>15.0</td>
23078+ <td>@ref LVNG_RELEASETIME_MIN (0)</td>
23079+ <td>@ref LVNG_RELEASETIME_DEFAULT (50)</td>
23080+ <td>@ref LVNG_RELEASETIME_MAX (32767)</td>
23081+ </tr>
23082+ </table> */
23083+ LVM_INT16 ReleaseTime; ///< Release Time
23084+
23085+} LVNG_ControlParams_st;
23086+
23087+/**
23088+* The control parameters are used to control the overall module behavior. These parameters may
23089+* be changed at any time during processing using the LVNLPP_SetControlParameters function but they
23090+* will not take effect until the next call to the LVNLPP_Process function.
23091+*
23092+* @see LVNLPP_SetControlParameters
23093+* @see LVNLPP_Process
23094+*/
23095+typedef struct
23096+{
23097+ /**
23098+ Limits the signal level compared to digital full scale in dB.
23099+ <table border>
23100+ <tr>
23101+ <td><b>Q-format</b></td>
23102+ <td><b>Min</b></td>
23103+ <td><b>Default</b></td>
23104+ <td><b>Max</b></td>
23105+ </tr>
23106+ <tr>
23107+ <td>15.0</td>
23108+ <td>@ref LVNLPP_NLPP_LIMIT_MIN (-24)</td>
23109+ <td>@ref LVNLPP_NLPP_LIMIT_DEFAULT (0)</td>
23110+ <td>@ref LVNLPP_NLPP_LIMIT_MAX (0)</td>
23111+ </tr>
23112+ </table> */
23113+ LVM_INT16 NLPP_Limit; ///< NLPP Limit
23114+
23115+ /**
23116+ Sets the -3dB corner frequency of the high-pass filter in Hz.
23117+ <table border>
23118+ <tr>
23119+ <td><b>Q-format</b></td>
23120+ <td><b>Min</b></td>
23121+ <td><b>Default</b></td>
23122+ <td><b>Max</b></td>
23123+ </tr>
23124+ <tr>
23125+ <td>16.0</td>
23126+ <td>@ref LVNLPP_NLPP_HPF_CORNERFREQ_MIN (50)</td>
23127+ <td>@ref LVNLPP_NLPP_HPF_CORNERFREQ_DEFAULT (50)</td>
23128+ <td>@ref LVNLPP_NLPP_HPF_CORNERFREQ_MAX (1000)</td>
23129+ </tr>
23130+ </table> */
23131+ LVM_UINT16 NLPP_HPF_CornerFreq; ///< NLPP HPF Corner Frequency
23132+
23133+} LVNLPP_ControlParams_st;
23134+
23135+/**
23136+* The control parameters are used to control the overall module behavior. These parameters may
23137+* be changed at any time during processing using the LVEQ_SetControlParameters function but they
23138+* will not take effect until the next call to the LVEQ_Process function.
23139+*
23140+* @see LVEQ_SetControlParameters
23141+* @see LVEQ_Process
23142+*/
23143+typedef struct
23144+{
23145+ /**
23146+ Sets the length of the Equalizer impulse response. This must never be more than
23147+ the value of EQ_MaxLength set at initialization time. The EQ_Length must be a
23148+ multiple of 8.
23149+ <table border>
23150+ <tr>
23151+ <td><b>Q-format</b></td>
23152+ <td><b>Min</b></td>
23153+ <td><b>Default</b></td>
23154+ <td><b>Max</b></td>
23155+ </tr>
23156+ <tr>
23157+ <td>16.0</td>
23158+ <td>@ref LVEQ_EQ_LENGTH_MIN (8)</td>
23159+ <td>@ref LVEQ_EQ_LENGTH_DEFAULT (32)</td>
23160+ <td>@ref LVEQ_EQ_LENGTH_MAX (32)</td>
23161+ </tr>
23162+ </table> */
23163+ LVM_UINT16 EQ_Length; ///< EQ Tap Length
23164+
23165+ /**
23166+ Pointer to an array containing the samples of the Equalizer impulse response.
23167+ The format of the array content is specified below. The samples of the
23168+ Equalizer impulse response must be in Q3.12 format.
23169+ <table border>
23170+ <tr>
23171+ <td><b>Q-format</b></td>
23172+ <td><b>Min</b></td>
23173+ <td><b>Default</b></td>
23174+ <td><b>Max</b></td>
23175+ </tr>
23176+ <tr>
23177+ <td>3.12</td>
23178+ <td>@ref LVEQ_EQ_COEFS_MIN (-32768)</td>
23179+ <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>
23180+ <td>@ref LVEQ_EQ_COEFS_MAX (32767)</td>
23181+ </tr>
23182+ </table> */
23183+ LVM_INT16 *pEQ_Coefs; ///< Equalizer impulse response
23184+
23185+} LVEQ_ControlParams_st;
23186+
23187+/**
23188+* The control parameters are used to control the overall module behavior. These parameters may
23189+* be changed at any time during processing using the LVVOL_SetControlParameters function but they
23190+* will not take effect until the next call to the LVVOL_Process function.
23191+*
23192+* @see LVVOL_SetControlParameters
23193+* @see LVVOL_Process
23194+*/
23195+typedef struct
23196+{
23197+ /**
23198+ Turns on/off VOL_Gain.
23199+ */
23200+ LVM_Mode_en VOL_OperatingMode; ///< Turns on/off VOL_Gain
23201+
23202+ /**
23203+ The volume control gain can be used to set the overall volume level of the
23204+ signal. The gain is set in dB with steps of 1dB.
23205+ <table border>
23206+ <tr>
23207+ <td><b>Q-format</b></td>
23208+ <td><b>Min</b></td>
23209+ <td><b>Default</b></td>
23210+ <td><b>Max</b></td>
23211+ </tr>
23212+ <tr>
23213+ <td>15.0</td>
23214+ <td>@ref LVVOL_VOL_GAIN_MIN (-96)</td>
23215+ <td>@ref LVVOL_VOL_GAIN_DEFAULT (0)</td>
23216+ <td>@ref LVVOL_VOL_GAIN_MAX (24)</td>
23217+ </tr>
23218+ </table> */
23219+ LVM_INT16 VOL_Gain; ///< Apply Gain to Input signal
23220+
23221+} LVVOL_ControlParams_st;
23222+
23223+/**
23224+* The control parameters are used to control the overall module behavior. These parameters may
23225+* be changed at any time during processing using the LVHPF_SetControlParameters function but they
23226+* will not take effect until the next call to the LVHPF_Process function.
23227+*
23228+* @see LVHPF_SetControlParameters
23229+* @see LVHPF_Process
23230+*/
23231+typedef struct
23232+{
23233+ /**
23234+ Turns on/off High Pass filter.
23235+ */
23236+ LVM_Mode_en HPF_OperatingMode; ///< Turns on/off High Pass filter
23237+
23238+ /**
23239+ Sets the 3dB corner frequency of the high-pass filter. In case NoiseVoid is
23240+ enabled, the same high-pass filter will be applied to the second microphone
23241+ channel.
23242+ <table border>
23243+ <tr>
23244+ <td><b>Q-format</b></td>
23245+ <td><b>Min</b></td>
23246+ <td><b>Default</b></td>
23247+ <td><b>Max</b></td>
23248+ </tr>
23249+ <tr>
23250+ <td>16.0</td>
23251+ <td>@ref LVHPF_HPF_CORNERFREQ_MIN (50)</td>
23252+ <td>@ref LVHPF_HPF_CORNERFREQ_DEFAULT (50)</td>
23253+ <td>@ref LVHPF_HPF_CORNERFREQ_MAX (1500)</td>
23254+ </tr>
23255+ </table> */
23256+ LVM_UINT16 HPF_CornerFreq; ///< High Pass Filter Corner Frequency in Hz
23257+
23258+} LVHPF_ControlParams_st;
23259+
23260+/**
23261+* The control parameters are used to control the overall module behavior. These parameters may
23262+* be changed at any time during processing using the LVMUTE_SetControlParameters function but they
23263+* will not take effect until the next call to the LVMUTE_Process function.
23264+*
23265+* @see LVMUTE_SetControlParameters
23266+* @see LVMUTE_Process
23267+*/
23268+typedef struct
23269+{
23270+ /**
23271+ This param can mute unmute the Rx/Tx engine output.
23272+ */
23273+ LVM_Mode_en Mute; ///< This param can mute unmute the Rx/Tx engine output
23274+
23275+} LVMUTE_ControlParams_st;
23276+
23277+/**
23278+* The control parameters are used to control the overall module behavior. These parameters may
23279+* be changed at any time during processing using the LVVE_Rx_SetControlParameters function but they
23280+* will not take effect until the next call to the LVVE_Rx_Process function.
23281+*
23282+* @see LVVE_Rx_SetControlParameters
23283+* @see LVVE_Rx_Process
23284+*/
23285+typedef struct
23286+{
23287+ /**
23288+ This enumerated type is used to set the operating mode of the Rx path. The
23289+ processing can be separately set to enable all processing modules (i.e., ON),
23290+ to disable all processing modules (i.e., OFF) or to bypass all processing
23291+ modules (i.e., BYPASS). When bypassed, all processing modules keep on running,
23292+ but their output is not used.
23293+ */
23294+ LVVE_Rx_Mode_en OperatingMode; ///< This param controls the on/off of RX voice engine.
23295+
23296+ /**
23297+ This param can mute unmute the Rx/Tx engine output.
23298+ */
23299+ LVM_Mode_en Mute; ///< This param can mute unmute the Rx/Tx engine output
23300+
23301+ /**
23302+ Turns on/off VOL_Gain.
23303+ */
23304+ LVM_Mode_en VOL_OperatingMode; ///< Turns on/off VOL_Gain
23305+
23306+ /**
23307+ The volume control gain can be used to set the overall volume level of the
23308+ signal. The gain is set in dB with steps of 1dB.
23309+ <table border>
23310+ <tr>
23311+ <td><b>Q-format</b></td>
23312+ <td><b>Min</b></td>
23313+ <td><b>Default</b></td>
23314+ <td><b>Max</b></td>
23315+ </tr>
23316+ <tr>
23317+ <td>15.0</td>
23318+ <td>@ref LVVE_RX_VOL_GAIN_MIN (-96)</td>
23319+ <td>@ref LVVE_RX_VOL_GAIN_DEFAULT (0)</td>
23320+ <td>@ref LVVE_RX_VOL_GAIN_MAX (24)</td>
23321+ </tr>
23322+ </table> */
23323+ LVM_INT16 VOL_Gain; ///< Apply Gain to Input signal
23324+
23325+ /**
23326+ Far End Noise Suppression Control Parameter Structure.
23327+ */
23328+ LVFENS_ControlParams_st FENS_ControlParams; ///< Far End Noise Suppression Control Parameter Structure
23329+
23330+ /**
23331+ Turns on/off NLPP.
23332+ */
23333+ LVM_Mode_en NLPP_OperatingMode; ///< Turns on/off NLPP
23334+
23335+ /**
23336+ NLPP Control Parameter Structure.
23337+ */
23338+ LVNLPP_ControlParams_st NLPP_ControlParams; ///< NLPP Control Parameter Structure
23339+
23340+ /**
23341+ Voice Clarity Control Parameter Structure.
23342+ */
23343+ LVVC_ControlParams_st VC_ControlParams; ///< Voice Clarity Control Parameter Structure
23344+
23345+ /**
23346+ Equalizer Operating mode.
23347+ */
23348+ LVM_Mode_en EQ_OperatingMode; ///< Equalizer Operating mode
23349+
23350+ /**
23351+ Equalizer Control Parameters Structure.
23352+ */
23353+ LVEQ_ControlParams_st EQ_ControlParams; ///< Equalizer Control Parameters Structure
23354+
23355+ /**
23356+ DRC Control Parameter Strcuture.
23357+ */
23358+ LVDRC_ControlParams_st DRC_ControlParams; ///< DRC Control Parameter Strcuture
23359+
23360+ /**
23361+ Turns on/off High Pass filter.
23362+ */
23363+ LVM_Mode_en HPF_OperatingMode; ///< Turns on/off High Pass filter
23364+
23365+ /**
23366+ Sets the 3dB corner frequency of the high-pass filter. In case NoiseVoid is
23367+ enabled, the same high-pass filter will be applied to the second microphone
23368+ channel.
23369+ <table border>
23370+ <tr>
23371+ <td><b>Q-format</b></td>
23372+ <td><b>Min</b></td>
23373+ <td><b>Default</b></td>
23374+ <td><b>Max</b></td>
23375+ </tr>
23376+ <tr>
23377+ <td>16.0</td>
23378+ <td>@ref LVVE_RX_HPF_CORNERFREQ_MIN (50)</td>
23379+ <td>@ref LVVE_RX_HPF_CORNERFREQ_DEFAULT (50)</td>
23380+ <td>@ref LVVE_RX_HPF_CORNERFREQ_MAX (1500)</td>
23381+ </tr>
23382+ </table> */
23383+ LVM_UINT16 HPF_CornerFreq; ///< High Pass Filter Corner Frequency in Hz
23384+
23385+ /**
23386+ Whisper Mode Control Parameter Strcuture.
23387+ */
23388+ LVWM_ControlParams_st WM_ControlParams; ///< Whisper Mode Control Parameter Strcuture
23389+
23390+ /**
23391+ Noise Gate Control Parameter Structure.
23392+ */
23393+ LVNG_ControlParams_st NG_ControlParams; ///< Noise Gate Control Parameter Structure
23394+
23395+} LVVE_Rx_ControlParams_st;
23396+
23397+/**
23398+* The control parameters are used to control the overall module behavior. These parameters may
23399+* be changed at any time during processing using the LVNV_SetControlParameters function but they
23400+* will not take effect until the next call to the LVNV_Process function.
23401+*
23402+* @see LVNV_SetControlParameters
23403+* @see LVNV_Process
23404+*/
23405+typedef struct
23406+{
23407+ /**
23408+ */
23409+ LVM_Mode_en OperatingMode; ///< Operating Mode
23410+
23411+ /**
23412+ The mode word to enable/disable internal algorithm blocks of LVNV.
23413+ */
23414+ LVNV_ModeWord_bm Mode; ///< Mode word
23415+
23416+ /**
23417+ The mode2 word to allow switching or combining different blocks inside LVNV.
23418+ */
23419+ LVNV_Mode2Word_bm Mode2; ///< Mode2 word
23420+
23421+ /**
23422+ The tuning mode word to enable/disable internal algorithm tuning capabilities
23423+ in the different blocks of LVNV. Only one bit is allowed to be enabled at a
23424+ time.
23425+ */
23426+ LVNV_TuningModeWord_bm Tuning_mode; ///< Tuning mode word
23427+
23428+ /**
23429+ Gain applied at the primary channel in the Tx input. Used to scale the
23430+ microphone signal in order to give the NLMS0_LB and NLMS0_HB filters headroom
23431+ for correct operation.
23432+ <table border>
23433+ <tr>
23434+ <td><b>Q-format</b></td>
23435+ <td><b>Min</b></td>
23436+ <td><b>Default</b></td>
23437+ <td><b>Max</b></td>
23438+ </tr>
23439+ <tr>
23440+ <td>2.13</td>
23441+ <td>@ref LVNV_INPUT_GAIN_MIC0_MIN (0)</td>
23442+ <td>@ref LVNV_INPUT_GAIN_MIC0_DEFAULT (8192)</td>
23443+ <td>@ref LVNV_INPUT_GAIN_MIC0_MAX (32767)</td>
23444+ </tr>
23445+ </table> */
23446+ LVM_INT16 Input_Gain_Mic0; ///< The primary input gain.
23447+
23448+ /**
23449+ Gain applied at the secondary channel in the Tx input. Used to scale the
23450+ microphone signal in order to give the NLMS1_LB and NLMS1_HB filters headroom
23451+ for correct operation.
23452+ <table border>
23453+ <tr>
23454+ <td><b>Q-format</b></td>
23455+ <td><b>Min</b></td>
23456+ <td><b>Default</b></td>
23457+ <td><b>Max</b></td>
23458+ </tr>
23459+ <tr>
23460+ <td>2.13</td>
23461+ <td>@ref LVNV_INPUT_GAIN_MIC1_MIN (0)</td>
23462+ <td>@ref LVNV_INPUT_GAIN_MIC1_DEFAULT (8192)</td>
23463+ <td>@ref LVNV_INPUT_GAIN_MIC1_MAX (32767)</td>
23464+ </tr>
23465+ </table> */
23466+ LVM_INT16 Input_Gain_Mic1; ///< The secondary input gain.
23467+
23468+ /**
23469+ Gain applied at the Tx output of LVNV. Compensates the applied Input_Gain_Mic0
23470+ in order to preserve the overall Tx gain.
23471+ <table border>
23472+ <tr>
23473+ <td><b>Q-format</b></td>
23474+ <td><b>Min</b></td>
23475+ <td><b>Default</b></td>
23476+ <td><b>Max</b></td>
23477+ </tr>
23478+ <tr>
23479+ <td>4.11</td>
23480+ <td>@ref LVNV_OUTPUT_GAIN_MIN (0)</td>
23481+ <td>@ref LVNV_OUTPUT_GAIN_DEFAULT (2048)</td>
23482+ <td>@ref LVNV_OUTPUT_GAIN_MAX (32767)</td>
23483+ </tr>
23484+ </table> */
23485+ LVM_INT16 Output_Gain; ///< The output gain.
23486+
23487+ /**
23488+ Length of the low-band (0-4kHz) adaptive echo cancellation filter for the
23489+ primary channel. The Length should be chosen such that most of the energy of
23490+ the impulse response is covered by the filter. The length should be a multiple
23491+ of 8.
23492+ <table border>
23493+ <tr>
23494+ <td><b>Q-format</b></td>
23495+ <td><b>Min</b></td>
23496+ <td><b>Default</b></td>
23497+ <td><b>Max</b></td>
23498+ </tr>
23499+ <tr>
23500+ <td>16.0</td>
23501+ <td>@ref LVNV_NLMS0_LB_TAPS_MIN (16)</td>
23502+ <td>@ref LVNV_NLMS0_LB_TAPS_DEFAULT (32)</td>
23503+ <td>@ref LVNV_NLMS0_LB_TAPS_MAX (64)</td>
23504+ </tr>
23505+ </table> */
23506+ LVM_UINT16 NLMS0_LB_taps; ///< Number of NLMS0 low-band taps.
23507+
23508+ /**
23509+ Step size for the update of the low-band adaptive filter coefficients for the
23510+ primary channel. It is recommended not to change the default value.
23511+ <table border>
23512+ <tr>
23513+ <td><b>Q-format</b></td>
23514+ <td><b>Min</b></td>
23515+ <td><b>Default</b></td>
23516+ <td><b>Max</b></td>
23517+ </tr>
23518+ <tr>
23519+ <td>0.15</td>
23520+ <td>@ref LVNV_NLMS0_LB_TWOALPHA_MIN (0)</td>
23521+ <td>@ref LVNV_NLMS0_LB_TWOALPHA_DEFAULT (8192)</td>
23522+ <td>@ref LVNV_NLMS0_LB_TWOALPHA_MAX (32767)</td>
23523+ </tr>
23524+ </table> */
23525+ LVM_INT16 NLMS0_LB_twoalpha; ///< NLMS0 low-band step size
23526+
23527+ /**
23528+ Adaptive step-size control for the low-band adaptive echo cancellation filter
23529+ for the primary channel. This parameter is used to slow down the update speed
23530+ of the adaptive filter during double talk situations.
23531+ <table border>
23532+ <tr>
23533+ <td><b>Q-format</b></td>
23534+ <td><b>Min</b></td>
23535+ <td><b>Default</b></td>
23536+ <td><b>Max</b></td>
23537+ </tr>
23538+ <tr>
23539+ <td>9.6</td>
23540+ <td>@ref LVNV_NLMS0_LB_ERL_MIN (64)</td>
23541+ <td>@ref LVNV_NLMS0_LB_ERL_DEFAULT (1000)</td>
23542+ <td>@ref LVNV_NLMS0_LB_ERL_MAX (32767)</td>
23543+ </tr>
23544+ </table> */
23545+ LVM_INT16 NLMS0_LB_erl; ///< NLMS0 low-band erl
23546+
23547+ /**
23548+ Length of the high-band (4-8kHz) adaptive echo cancellation filter for the
23549+ primary channel. The Length should be chosen such that most of the energy of
23550+ the impulse response is covered by the filter. The length should be a multiple
23551+ of 8.
23552+ <table border>
23553+ <tr>
23554+ <td><b>Q-format</b></td>
23555+ <td><b>Min</b></td>
23556+ <td><b>Default</b></td>
23557+ <td><b>Max</b></td>
23558+ </tr>
23559+ <tr>
23560+ <td>16.0</td>
23561+ <td>@ref LVNV_NLMS0_HB_TAPS_MIN (16)</td>
23562+ <td>@ref LVNV_NLMS0_HB_TAPS_DEFAULT (24)</td>
23563+ <td>@ref LVNV_NLMS0_HB_TAPS_MAX (64)</td>
23564+ </tr>
23565+ </table> */
23566+ LVM_UINT16 NLMS0_HB_taps; ///< Number of NLMS0 high-band taps.
23567+
23568+ /**
23569+ Step size for the update of the high-band adaptive filter coefficients for the
23570+ primary channel. It is recommended not to change the default value.
23571+ <table border>
23572+ <tr>
23573+ <td><b>Q-format</b></td>
23574+ <td><b>Min</b></td>
23575+ <td><b>Default</b></td>
23576+ <td><b>Max</b></td>
23577+ </tr>
23578+ <tr>
23579+ <td>0.15</td>
23580+ <td>@ref LVNV_NLMS0_HB_TWOALPHA_MIN (0)</td>
23581+ <td>@ref LVNV_NLMS0_HB_TWOALPHA_DEFAULT (8192)</td>
23582+ <td>@ref LVNV_NLMS0_HB_TWOALPHA_MAX (32767)</td>
23583+ </tr>
23584+ </table> */
23585+ LVM_INT16 NLMS0_HB_twoalpha; ///< NLMS0 high-band step size
23586+
23587+ /**
23588+ Adaptive step-size control for the high-band adaptive echo cancellation filter
23589+ for the primary channel. This parameter is used to slow down the update speed
23590+ of the adaptive filter during double talk situations.
23591+ <table border>
23592+ <tr>
23593+ <td><b>Q-format</b></td>
23594+ <td><b>Min</b></td>
23595+ <td><b>Default</b></td>
23596+ <td><b>Max</b></td>
23597+ </tr>
23598+ <tr>
23599+ <td>9.6</td>
23600+ <td>@ref LVNV_NLMS0_HB_ERL_MIN (64)</td>
23601+ <td>@ref LVNV_NLMS0_HB_ERL_DEFAULT (1000)</td>
23602+ <td>@ref LVNV_NLMS0_HB_ERL_MAX (32767)</td>
23603+ </tr>
23604+ </table> */
23605+ LVM_INT16 NLMS0_HB_erl; ///< NLMS0 high-band erl
23606+
23607+ /**
23608+ Indicates whether a preset of adaptive filter coefficients should be done.<br>
23609+ 0 = No preset (coefficients as they are).<br>
23610+ 1 = Preset with internally calculated coefficients.<br>
23611+ 2 = Preset with zero coefficients.
23612+ <table border>
23613+ <tr>
23614+ <td><b>Q-format</b></td>
23615+ <td><b>Min</b></td>
23616+ <td><b>Default</b></td>
23617+ <td><b>Max</b></td>
23618+ </tr>
23619+ <tr>
23620+ <td>15.0</td>
23621+ <td>@ref LVNV_NLMS0_PRESET_COEFS_MIN (0)</td>
23622+ <td>@ref LVNV_NLMS0_PRESET_COEFS_DEFAULT (0)</td>
23623+ <td>@ref LVNV_NLMS0_PRESET_COEFS_MAX (2)</td>
23624+ </tr>
23625+ </table> */
23626+ LVM_INT16 NLMS0_preset_coefs; ///< NLMS0 preset
23627+
23628+ /**
23629+ Offset added to the normalization of the adaptation of the filter.
23630+ <table border>
23631+ <tr>
23632+ <td><b>Q-format</b></td>
23633+ <td><b>Min</b></td>
23634+ <td><b>Default</b></td>
23635+ <td><b>Max</b></td>
23636+ </tr>
23637+ <tr>
23638+ <td>0.15</td>
23639+ <td>@ref LVNV_NLMS0_OFFSET_MIN (0)</td>
23640+ <td>@ref LVNV_NLMS0_OFFSET_DEFAULT (776)</td>
23641+ <td>@ref LVNV_NLMS0_OFFSET_MAX (32767)</td>
23642+ </tr>
23643+ </table> */
23644+ LVM_INT16 NLMS0_offset; ///< NLMS0 offset
23645+
23646+ /**
23647+ Length of the low-band (0-4kHz) adaptive echo cancellation filter for the
23648+ secondary channel. The Length should be chosen such that most of the energy of
23649+ the impulse response is covered by the filter. The length should be a multiple
23650+ of 8.
23651+ <table border>
23652+ <tr>
23653+ <td><b>Q-format</b></td>
23654+ <td><b>Min</b></td>
23655+ <td><b>Default</b></td>
23656+ <td><b>Max</b></td>
23657+ </tr>
23658+ <tr>
23659+ <td>16.0</td>
23660+ <td>@ref LVNV_NLMS1_LB_TAPS_MIN (16)</td>
23661+ <td>@ref LVNV_NLMS1_LB_TAPS_DEFAULT (32)</td>
23662+ <td>@ref LVNV_NLMS1_LB_TAPS_MAX (32)</td>
23663+ </tr>
23664+ </table> */
23665+ LVM_UINT16 NLMS1_LB_taps; ///< Number of NLMS1 low-band taps.
23666+
23667+ /**
23668+ Step size for the update of the low-band adaptive filter coefficients for the
23669+ secondary channel. It is recommended not to change the default value.
23670+ <table border>
23671+ <tr>
23672+ <td><b>Q-format</b></td>
23673+ <td><b>Min</b></td>
23674+ <td><b>Default</b></td>
23675+ <td><b>Max</b></td>
23676+ </tr>
23677+ <tr>
23678+ <td>0.15</td>
23679+ <td>@ref LVNV_NLMS1_LB_TWOALPHA_MIN (0)</td>
23680+ <td>@ref LVNV_NLMS1_LB_TWOALPHA_DEFAULT (8192)</td>
23681+ <td>@ref LVNV_NLMS1_LB_TWOALPHA_MAX (32767)</td>
23682+ </tr>
23683+ </table> */
23684+ LVM_INT16 NLMS1_LB_twoalpha; ///< NLMS1 low-band step size
23685+
23686+ /**
23687+ Adaptive step-size control for the low-band adaptive echo cancellation filter
23688+ for the secondary channel. This parameter is used to slow down the update speed
23689+ of the adaptive filter during double talk situations.
23690+ <table border>
23691+ <tr>
23692+ <td><b>Q-format</b></td>
23693+ <td><b>Min</b></td>
23694+ <td><b>Default</b></td>
23695+ <td><b>Max</b></td>
23696+ </tr>
23697+ <tr>
23698+ <td>9.6</td>
23699+ <td>@ref LVNV_NLMS1_LB_ERL_MIN (64)</td>
23700+ <td>@ref LVNV_NLMS1_LB_ERL_DEFAULT (1000)</td>
23701+ <td>@ref LVNV_NLMS1_LB_ERL_MAX (32767)</td>
23702+ </tr>
23703+ </table> */
23704+ LVM_INT16 NLMS1_LB_erl; ///< NLMS1 low-band erl
23705+
23706+ /**
23707+ Length of the high-band (4-8kHz) adaptive echo cancellation filter for the
23708+ secondary channel. The Length should be chosen such that most of the energy of
23709+ the impulse response is covered by the filter. The length should be a multiple
23710+ of 8.
23711+ <table border>
23712+ <tr>
23713+ <td><b>Q-format</b></td>
23714+ <td><b>Min</b></td>
23715+ <td><b>Default</b></td>
23716+ <td><b>Max</b></td>
23717+ </tr>
23718+ <tr>
23719+ <td>16.0</td>
23720+ <td>@ref LVNV_NLMS1_HB_TAPS_MIN (16)</td>
23721+ <td>@ref LVNV_NLMS1_HB_TAPS_DEFAULT (24)</td>
23722+ <td>@ref LVNV_NLMS1_HB_TAPS_MAX (32)</td>
23723+ </tr>
23724+ </table> */
23725+ LVM_UINT16 NLMS1_HB_taps; ///< Number of NLMS1 high-band taps.
23726+
23727+ /**
23728+ Step size for the update of the high-band adaptive filter coefficients for the
23729+ secondary channel. It is recommended not to change the default value.
23730+ <table border>
23731+ <tr>
23732+ <td><b>Q-format</b></td>
23733+ <td><b>Min</b></td>
23734+ <td><b>Default</b></td>
23735+ <td><b>Max</b></td>
23736+ </tr>
23737+ <tr>
23738+ <td>0.15</td>
23739+ <td>@ref LVNV_NLMS1_HB_TWOALPHA_MIN (0)</td>
23740+ <td>@ref LVNV_NLMS1_HB_TWOALPHA_DEFAULT (8192)</td>
23741+ <td>@ref LVNV_NLMS1_HB_TWOALPHA_MAX (32767)</td>
23742+ </tr>
23743+ </table> */
23744+ LVM_INT16 NLMS1_HB_twoalpha; ///< NLMS1 high-band step size
23745+
23746+ /**
23747+ Adaptive step-size control for the high-band adaptive echo cancellation filter
23748+ for the secondary channel. This parameter is used to slow down the update speed
23749+ of the adaptive filter during double talk situations.
23750+ <table border>
23751+ <tr>
23752+ <td><b>Q-format</b></td>
23753+ <td><b>Min</b></td>
23754+ <td><b>Default</b></td>
23755+ <td><b>Max</b></td>
23756+ </tr>
23757+ <tr>
23758+ <td>9.6</td>
23759+ <td>@ref LVNV_NLMS1_HB_ERL_MIN (64)</td>
23760+ <td>@ref LVNV_NLMS1_HB_ERL_DEFAULT (1000)</td>
23761+ <td>@ref LVNV_NLMS1_HB_ERL_MAX (32767)</td>
23762+ </tr>
23763+ </table> */
23764+ LVM_INT16 NLMS1_HB_erl; ///< NLMS1 high-band erl
23765+
23766+ /**
23767+ Indicates whether a preset of adaptive filter coefficients should be done.<br>
23768+ 0 = No preset (coefficients as they are).<br>
23769+ 1 = Preset with internally calculated coefficients.<br>
23770+ 2 = Preset with zero coefficients.
23771+ <table border>
23772+ <tr>
23773+ <td><b>Q-format</b></td>
23774+ <td><b>Min</b></td>
23775+ <td><b>Default</b></td>
23776+ <td><b>Max</b></td>
23777+ </tr>
23778+ <tr>
23779+ <td>15.0</td>
23780+ <td>@ref LVNV_NLMS1_PRESET_COEFS_MIN (0)</td>
23781+ <td>@ref LVNV_NLMS1_PRESET_COEFS_DEFAULT (0)</td>
23782+ <td>@ref LVNV_NLMS1_PRESET_COEFS_MAX (2)</td>
23783+ </tr>
23784+ </table> */
23785+ LVM_INT16 NLMS1_preset_coefs; ///< NLMS1 preset
23786+
23787+ /**
23788+ Offset added to the normalization of the adaptation of the filter.
23789+ <table border>
23790+ <tr>
23791+ <td><b>Q-format</b></td>
23792+ <td><b>Min</b></td>
23793+ <td><b>Default</b></td>
23794+ <td><b>Max</b></td>
23795+ </tr>
23796+ <tr>
23797+ <td>0.15</td>
23798+ <td>@ref LVNV_NLMS1_OFFSET_MIN (0)</td>
23799+ <td>@ref LVNV_NLMS1_OFFSET_DEFAULT (776)</td>
23800+ <td>@ref LVNV_NLMS1_OFFSET_MAX (32767)</td>
23801+ </tr>
23802+ </table> */
23803+ LVM_INT16 NLMS1_offset; ///< NLMS1 offset
23804+
23805+ /**
23806+ A parameter representing a threshold for the detection of instrumental noise.
23807+ The higher the value for this parameter, the lower noise suppression
23808+ performance.
23809+ <table border>
23810+ <tr>
23811+ <td><b>Q-format</b></td>
23812+ <td><b>Min</b></td>
23813+ <td><b>Default</b></td>
23814+ <td><b>Max</b></td>
23815+ </tr>
23816+ <tr>
23817+ <td>0.15</td>
23818+ <td>@ref LVNV_CAL_MICPOWFLOORMIN_MIN (0)</td>
23819+ <td>@ref LVNV_CAL_MICPOWFLOORMIN_DEFAULT (150)</td>
23820+ <td>@ref LVNV_CAL_MICPOWFLOORMIN_MAX (32767)</td>
23821+ </tr>
23822+ </table> */
23823+ LVM_INT16 CAL_micPowFloorMin; ///< Instrumental noise threshold
23824+
23825+ /**
23826+ Threshold for Windgush detector. The higher the value, the less sensitive the
23827+ detection.
23828+ <table border>
23829+ <tr>
23830+ <td><b>Q-format</b></td>
23831+ <td><b>Min</b></td>
23832+ <td><b>Default</b></td>
23833+ <td><b>Max</b></td>
23834+ </tr>
23835+ <tr>
23836+ <td>6.9</td>
23837+ <td>@ref LVNV_WGTHRESHOLD_MIN (0)</td>
23838+ <td>@ref LVNV_WGTHRESHOLD_DEFAULT (32767)</td>
23839+ <td>@ref LVNV_WGTHRESHOLD_MAX (32767)</td>
23840+ </tr>
23841+ </table> */
23842+ LVM_INT16 WgThreshold; ///< Windgush threshold
23843+
23844+ /**
23845+ Threshold for speech detector based on power comparison between primary and
23846+ secondary microphones. The higher the value, the less sensitive the detection.
23847+ <table border>
23848+ <tr>
23849+ <td><b>Q-format</b></td>
23850+ <td><b>Min</b></td>
23851+ <td><b>Default</b></td>
23852+ <td><b>Max</b></td>
23853+ </tr>
23854+ <tr>
23855+ <td>3.12</td>
23856+ <td>@ref LVNV_MPTHRESHOLD_MIN (0)</td>
23857+ <td>@ref LVNV_MPTHRESHOLD_DEFAULT (6554)</td>
23858+ <td>@ref LVNV_MPTHRESHOLD_MAX (32767)</td>
23859+ </tr>
23860+ </table> */
23861+ LVM_INT16 MpThreshold; ///< MicPow threshold
23862+
23863+ /**
23864+ Set of first 8 coefficients for adaptive filter FSB0. These values should be
23865+ determined for the given microphone configuration
23866+ <table border>
23867+ <tr>
23868+ <td><b>Q-format</b></td>
23869+ <td><b>Min</b></td>
23870+ <td><b>Default</b></td>
23871+ <td><b>Max</b></td>
23872+ </tr>
23873+ <tr>
23874+ <td>0.15</td>
23875+ <td>@ref LVNV_FSB_INIT_TABLE0_MIN (-32768)</td>
23876+ <td>@ref LVNV_FSB_INIT_TABLE0_DEFAULT {32767, 0, 0, 0, 0, 0, 0, 0}</td>
23877+ <td>@ref LVNV_FSB_INIT_TABLE0_MAX (32767)</td>
23878+ </tr>
23879+ </table> */
23880+ LVM_INT16 FSB_init_table0[LVNV_FSB_INIT_TABLE0_LENGTH]; ///< FSB0 initial coefficients.
23881+
23882+ /**
23883+ Set of first 8 coefficients for adaptive filter FSB1. These values should be
23884+ determined for the given microphone configuration
23885+ <table border>
23886+ <tr>
23887+ <td><b>Q-format</b></td>
23888+ <td><b>Min</b></td>
23889+ <td><b>Default</b></td>
23890+ <td><b>Max</b></td>
23891+ </tr>
23892+ <tr>
23893+ <td>0.15</td>
23894+ <td>@ref LVNV_FSB_INIT_TABLE1_MIN (-32768)</td>
23895+ <td>@ref LVNV_FSB_INIT_TABLE1_DEFAULT {0, 0, 0, 0, 0, 0, 0, 0}</td>
23896+ <td>@ref LVNV_FSB_INIT_TABLE1_MAX (32767)</td>
23897+ </tr>
23898+ </table> */
23899+ LVM_INT16 FSB_init_table1[LVNV_FSB_INIT_TABLE1_LENGTH]; ///< FSB1 initial coefficients.
23900+
23901+ /**
23902+ Length of the FSB to model the acoustical paths between the speech source and
23903+ two microphones. The length must be equal to 16 for the handset application.
23904+ <table border>
23905+ <tr>
23906+ <td><b>Q-format</b></td>
23907+ <td><b>Min</b></td>
23908+ <td><b>Default</b></td>
23909+ <td><b>Max</b></td>
23910+ </tr>
23911+ <tr>
23912+ <td>16.0</td>
23913+ <td>@ref LVNV_FSB_TAPS_MIN (8)</td>
23914+ <td>@ref LVNV_FSB_TAPS_DEFAULT (16)</td>
23915+ <td>@ref LVNV_FSB_TAPS_MAX (16)</td>
23916+ </tr>
23917+ </table> */
23918+ LVM_UINT16 FSB_taps; ///< Number of FSB taps
23919+
23920+ /**
23921+ Step-size to update the coefficients of the adaptive filters. A higher value
23922+ leads to a faster speed of the adaptation, while a lower value provides more
23923+ stability, but a slow adaption speed.
23924+ <table border>
23925+ <tr>
23926+ <td><b>Q-format</b></td>
23927+ <td><b>Min</b></td>
23928+ <td><b>Default</b></td>
23929+ <td><b>Max</b></td>
23930+ </tr>
23931+ <tr>
23932+ <td>0.15</td>
23933+ <td>@ref LVNV_FSB_TWOALPHA_MIN (0)</td>
23934+ <td>@ref LVNV_FSB_TWOALPHA_DEFAULT (655)</td>
23935+ <td>@ref LVNV_FSB_TWOALPHA_MAX (32767)</td>
23936+ </tr>
23937+ </table> */
23938+ LVM_INT16 FSB_twoalpha; ///< FSB step size control
23939+
23940+ /**
23941+ Gain applied on the samples of the second FSB reference signal (fsbref[1]).
23942+ <table border>
23943+ <tr>
23944+ <td><b>Q-format</b></td>
23945+ <td><b>Min</b></td>
23946+ <td><b>Default</b></td>
23947+ <td><b>Max</b></td>
23948+ </tr>
23949+ <tr>
23950+ <td>5.10</td>
23951+ <td>@ref LVNV_FSB_REF_GAIN_MIN (0)</td>
23952+ <td>@ref LVNV_FSB_REF_GAIN_DEFAULT (1024)</td>
23953+ <td>@ref LVNV_FSB_REF_GAIN_MAX (32767)</td>
23954+ </tr>
23955+ </table> */
23956+ LVM_INT16 FSB_ref_gain; ///< FSB ref gain
23957+
23958+ /**
23959+ Length of the GSC to model the transfer function between the noise reference
23960+ and the residual signal, in order to reduce the noise and interfering sounds
23961+ from the desired signal. This number should be a multiple of 8.
23962+ <table border>
23963+ <tr>
23964+ <td><b>Q-format</b></td>
23965+ <td><b>Min</b></td>
23966+ <td><b>Default</b></td>
23967+ <td><b>Max</b></td>
23968+ </tr>
23969+ <tr>
23970+ <td>16.0</td>
23971+ <td>@ref LVNV_GSC_TAPS_MIN (8)</td>
23972+ <td>@ref LVNV_GSC_TAPS_DEFAULT (16)</td>
23973+ <td>@ref LVNV_GSC_TAPS_MAX (48)</td>
23974+ </tr>
23975+ </table> */
23976+ LVM_UINT16 GSC_taps; ///< Number of GSC taps
23977+
23978+ /**
23979+ Step-size to update the coefficients of the adaptive filter. A higher value
23980+ leads to a faster speed of the adaptation, while a lower value provides more
23981+ stability, but a slow adaption speed.
23982+ <table border>
23983+ <tr>
23984+ <td><b>Q-format</b></td>
23985+ <td><b>Min</b></td>
23986+ <td><b>Default</b></td>
23987+ <td><b>Max</b></td>
23988+ </tr>
23989+ <tr>
23990+ <td>0.15</td>
23991+ <td>@ref LVNV_GSC_TWOALPHA_MIN (0)</td>
23992+ <td>@ref LVNV_GSC_TWOALPHA_DEFAULT (1638)</td>
23993+ <td>@ref LVNV_GSC_TWOALPHA_MAX (32767)</td>
23994+ </tr>
23995+ </table> */
23996+ LVM_INT16 GSC_twoalpha; ///< GSC step size control
23997+
23998+ /**
23999+ Adaptive step-size control for GSC to avoid divergence of the adaptive filter
24000+ during desired speech. In general, GSC_erl is lower than NLMS_erl and ranges
24001+ between 0 and 30 dB.
24002+ <table border>
24003+ <tr>
24004+ <td><b>Q-format</b></td>
24005+ <td><b>Min</b></td>
24006+ <td><b>Default</b></td>
24007+ <td><b>Max</b></td>
24008+ </tr>
24009+ <tr>
24010+ <td>9.6</td>
24011+ <td>@ref LVNV_GSC_ERL_MIN (64)</td>
24012+ <td>@ref LVNV_GSC_ERL_DEFAULT (256)</td>
24013+ <td>@ref LVNV_GSC_ERL_MAX (32767)</td>
24014+ </tr>
24015+ </table> */
24016+ LVM_INT16 GSC_erl; ///< GSC erl
24017+
24018+ /**
24019+ Offset added to the computation of the power of the noise reference to avoid
24020+ that the power converges towards zero when the input is low.
24021+ <table border>
24022+ <tr>
24023+ <td><b>Q-format</b></td>
24024+ <td><b>Min</b></td>
24025+ <td><b>Default</b></td>
24026+ <td><b>Max</b></td>
24027+ </tr>
24028+ <tr>
24029+ <td>0.15</td>
24030+ <td>@ref LVNV_GSC_OFFSET_MIN (0)</td>
24031+ <td>@ref LVNV_GSC_OFFSET_DEFAULT (1638)</td>
24032+ <td>@ref LVNV_GSC_OFFSET_MAX (32767)</td>
24033+ </tr>
24034+ </table> */
24035+ LVM_INT16 GSC_offset; ///< GSC offset
24036+
24037+ /**
24038+ Echo subtraction factor applied during farend-only.
24039+ <table border>
24040+ <tr>
24041+ <td><b>Q-format</b></td>
24042+ <td><b>Min</b></td>
24043+ <td><b>Default</b></td>
24044+ <td><b>Max</b></td>
24045+ </tr>
24046+ <tr>
24047+ <td>2.13</td>
24048+ <td>@ref LVNV_DNNS_ECHOGAMMAHI_MIN (0)</td>
24049+ <td>@ref LVNV_DNNS_ECHOGAMMAHI_DEFAULT (16384)</td>
24050+ <td>@ref LVNV_DNNS_ECHOGAMMAHI_MAX (32767)</td>
24051+ </tr>
24052+ </table> */
24053+ LVM_INT16 DNNS_EchoGammaHi; ///< High echo subtraction factor
24054+
24055+ /**
24056+ Echo subtraction factor applied during double talk and nearend-only.
24057+ <table border>
24058+ <tr>
24059+ <td><b>Q-format</b></td>
24060+ <td><b>Min</b></td>
24061+ <td><b>Default</b></td>
24062+ <td><b>Max</b></td>
24063+ </tr>
24064+ <tr>
24065+ <td>2.13</td>
24066+ <td>@ref LVNV_DNNS_ECHOGAMMALO_MIN (0)</td>
24067+ <td>@ref LVNV_DNNS_ECHOGAMMALO_DEFAULT (8192)</td>
24068+ <td>@ref LVNV_DNNS_ECHOGAMMALO_MAX (32767)</td>
24069+ </tr>
24070+ </table> */
24071+ LVM_INT16 DNNS_EchoGammaLo; ///< Low echo subtraction factor
24072+
24073+ /**
24074+ Parameter related to the reverberation time of the acoustical environment,
24075+ which represents the decay in energy over time of the echo tail of the impulse
24076+ response.
24077+ <table border>
24078+ <tr>
24079+ <td><b>Q-format</b></td>
24080+ <td><b>Min</b></td>
24081+ <td><b>Default</b></td>
24082+ <td><b>Max</b></td>
24083+ </tr>
24084+ <tr>
24085+ <td>0.15</td>
24086+ <td>@ref LVNV_DNNS_ECHOALPHAREV_MIN (0)</td>
24087+ <td>@ref LVNV_DNNS_ECHOALPHAREV_DEFAULT (12000)</td>
24088+ <td>@ref LVNV_DNNS_ECHOALPHAREV_MAX (32767)</td>
24089+ </tr>
24090+ </table> */
24091+ LVM_INT16 DNNS_EchoAlphaRev; ///< Echo reverberation factor
24092+
24093+ /**
24094+ Parameter representing the portion of the echo tail (estimated by the NLMS
24095+ filter) that has to be extrapolated in time.
24096+ <table border>
24097+ <tr>
24098+ <td><b>Q-format</b></td>
24099+ <td><b>Min</b></td>
24100+ <td><b>Default</b></td>
24101+ <td><b>Max</b></td>
24102+ </tr>
24103+ <tr>
24104+ <td>0.15</td>
24105+ <td>@ref LVNV_DNNS_ECHOTAILPORTION_MIN (0)</td>
24106+ <td>@ref LVNV_DNNS_ECHOTAILPORTION_DEFAULT (7000)</td>
24107+ <td>@ref LVNV_DNNS_ECHOTAILPORTION_MAX (32767)</td>
24108+ </tr>
24109+ </table> */
24110+ LVM_INT16 DNNS_EchoTailPortion; ///< Echo tail portion
24111+
24112+ /**
24113+ Non-linear echo subtraction factor applied during double talk and nearend-only.
24114+ <table border>
24115+ <tr>
24116+ <td><b>Q-format</b></td>
24117+ <td><b>Min</b></td>
24118+ <td><b>Default</b></td>
24119+ <td><b>Max</b></td>
24120+ </tr>
24121+ <tr>
24122+ <td>4.11</td>
24123+ <td>@ref LVNV_DNNS_NLATTEN_MIN (0)</td>
24124+ <td>@ref LVNV_DNNS_NLATTEN_DEFAULT (256)</td>
24125+ <td>@ref LVNV_DNNS_NLATTEN_MAX (2048)</td>
24126+ </tr>
24127+ </table> */
24128+ LVM_INT16 DNNS_NlAtten; ///< Non-linear echo subtraction factor
24129+
24130+ /**
24131+ Gain factor for stationary noise oversubtraction.
24132+ <table border>
24133+ <tr>
24134+ <td><b>Q-format</b></td>
24135+ <td><b>Min</b></td>
24136+ <td><b>Default</b></td>
24137+ <td><b>Max</b></td>
24138+ </tr>
24139+ <tr>
24140+ <td>2.13</td>
24141+ <td>@ref LVNV_DNNS_NOISEGAMMAS_MIN (0)</td>
24142+ <td>@ref LVNV_DNNS_NOISEGAMMAS_DEFAULT (11470)</td>
24143+ <td>@ref LVNV_DNNS_NOISEGAMMAS_MAX (32767)</td>
24144+ </tr>
24145+ </table> */
24146+ LVM_INT16 DNNS_NoiseGammaS; ///< Stationary noise oversubtraction factor
24147+
24148+ /**
24149+ Gain factor for non-stationary noise oversubtraction.
24150+ <table border>
24151+ <tr>
24152+ <td><b>Q-format</b></td>
24153+ <td><b>Min</b></td>
24154+ <td><b>Default</b></td>
24155+ <td><b>Max</b></td>
24156+ </tr>
24157+ <tr>
24158+ <td>2.13</td>
24159+ <td>@ref LVNV_DNNS_NOISEGAMMAN_MIN (0)</td>
24160+ <td>@ref LVNV_DNNS_NOISEGAMMAN_DEFAULT (16384)</td>
24161+ <td>@ref LVNV_DNNS_NOISEGAMMAN_MAX (32767)</td>
24162+ </tr>
24163+ </table> */
24164+ LVM_INT16 DNNS_NoiseGammaN; ///< Non-stationary noise oversubtraction factor
24165+
24166+ /**
24167+ The maximum amount of stationary noise suppression.<br>
24168+ DNNS_NoiseGainMinS = \f$2*32767*10^{MaxNoiseReductiondB/20}\f$
24169+ <table border>
24170+ <tr>
24171+ <td><b>Q-format</b></td>
24172+ <td><b>Min</b></td>
24173+ <td><b>Default</b></td>
24174+ <td><b>Max</b></td>
24175+ </tr>
24176+ <tr>
24177+ <td>-1.16</td>
24178+ <td>@ref LVNV_DNNS_NOISEGAINMINS_MIN (0)</td>
24179+ <td>@ref LVNV_DNNS_NOISEGAINMINS_DEFAULT (11140)</td>
24180+ <td>@ref LVNV_DNNS_NOISEGAINMINS_MAX (32767)</td>
24181+ </tr>
24182+ </table> */
24183+ LVM_INT16 DNNS_NoiseGainMinS; ///< Maximum stationary noise suppression.
24184+
24185+ /**
24186+ The maximum amount of non-stationary noise suppression.<br>
24187+ DNNS_NoiseGainMinN = \f$2*32767*10^{MaxNoiseReductiondB/20}\f$
24188+ <table border>
24189+ <tr>
24190+ <td><b>Q-format</b></td>
24191+ <td><b>Min</b></td>
24192+ <td><b>Default</b></td>
24193+ <td><b>Max</b></td>
24194+ </tr>
24195+ <tr>
24196+ <td>-1.16</td>
24197+ <td>@ref LVNV_DNNS_NOISEGAINMINN_MIN (0)</td>
24198+ <td>@ref LVNV_DNNS_NOISEGAINMINN_DEFAULT (6554)</td>
24199+ <td>@ref LVNV_DNNS_NOISEGAINMINN_MAX (32767)</td>
24200+ </tr>
24201+ </table> */
24202+ LVM_INT16 DNNS_NoiseGainMinN; ///< Maximum non-stationary noise suppression.
24203+
24204+ /**
24205+ Bias compensation factor for stationary noise estimation.
24206+ <table border>
24207+ <tr>
24208+ <td><b>Q-format</b></td>
24209+ <td><b>Min</b></td>
24210+ <td><b>Default</b></td>
24211+ <td><b>Max</b></td>
24212+ </tr>
24213+ <tr>
24214+ <td>2.13</td>
24215+ <td>@ref LVNV_DNNS_NOISEBIASCOMP_MIN (0)</td>
24216+ <td>@ref LVNV_DNNS_NOISEBIASCOMP_DEFAULT (9830)</td>
24217+ <td>@ref LVNV_DNNS_NOISEBIASCOMP_MAX (32767)</td>
24218+ </tr>
24219+ </table> */
24220+ LVM_INT16 DNNS_NoiseBiasComp; ///< Bias compensation factor.
24221+
24222+ /**
24223+ Echo oversubtraction factor applied to the estimated non-stationary noise
24224+ floor.
24225+ <table border>
24226+ <tr>
24227+ <td><b>Q-format</b></td>
24228+ <td><b>Min</b></td>
24229+ <td><b>Default</b></td>
24230+ <td><b>Max</b></td>
24231+ </tr>
24232+ <tr>
24233+ <td>3.12</td>
24234+ <td>@ref LVNV_DNNS_GAINETA_MIN (0)</td>
24235+ <td>@ref LVNV_DNNS_GAINETA_DEFAULT (256)</td>
24236+ <td>@ref LVNV_DNNS_GAINETA_MAX (32767)</td>
24237+ </tr>
24238+ </table> */
24239+ LVM_INT16 DNNS_GainEta; ///< Echo oversubtraction factor.
24240+
24241+ /**
24242+ Detection threshold for microphone activity.
24243+ <table border>
24244+ <tr>
24245+ <td><b>Q-format</b></td>
24246+ <td><b>Min</b></td>
24247+ <td><b>Default</b></td>
24248+ <td><b>Max</b></td>
24249+ </tr>
24250+ <tr>
24251+ <td>3.12</td>
24252+ <td>@ref LVNV_DNNS_ACTHRESHOLD_MIN (0)</td>
24253+ <td>@ref LVNV_DNNS_ACTHRESHOLD_DEFAULT (12288)</td>
24254+ <td>@ref LVNV_DNNS_ACTHRESHOLD_MAX (32767)</td>
24255+ </tr>
24256+ </table> */
24257+ LVM_INT16 DNNS_AcThreshold; ///< Activity threshold.
24258+
24259+ /**
24260+ Detection threshold for activity within the beam of FSB.
24261+ <table border>
24262+ <tr>
24263+ <td><b>Q-format</b></td>
24264+ <td><b>Min</b></td>
24265+ <td><b>Default</b></td>
24266+ <td><b>Max</b></td>
24267+ </tr>
24268+ <tr>
24269+ <td>3.12</td>
24270+ <td>@ref LVNV_DNNS_WBTHRESHOLD_MIN (0)</td>
24271+ <td>@ref LVNV_DNNS_WBTHRESHOLD_DEFAULT (9216)</td>
24272+ <td>@ref LVNV_DNNS_WBTHRESHOLD_MAX (32767)</td>
24273+ </tr>
24274+ </table> */
24275+ LVM_INT16 DNNS_WbThreshold; ///< WithinBeam threshold.
24276+
24277+ /**
24278+ Detection threshold for lost beam where the nearend speaker is speaking outside
24279+ the beam of the FSB.
24280+ <table border>
24281+ <tr>
24282+ <td><b>Q-format</b></td>
24283+ <td><b>Min</b></td>
24284+ <td><b>Default</b></td>
24285+ <td><b>Max</b></td>
24286+ </tr>
24287+ <tr>
24288+ <td>9.6</td>
24289+ <td>@ref LVNV_DNNS_LOSTBEAMTHRESHOLD_MIN (0)</td>
24290+ <td>@ref LVNV_DNNS_LOSTBEAMTHRESHOLD_DEFAULT (320)</td>
24291+ <td>@ref LVNV_DNNS_LOSTBEAMTHRESHOLD_MAX (32767)</td>
24292+ </tr>
24293+ </table> */
24294+ LVM_INT16 DNNS_LostBeamThreshold; ///< Lost beam threshold.
24295+
24296+ /**
24297+ Smoothing factor applied to get a smoothed value of the inter-channel
24298+ correlation.
24299+ <table border>
24300+ <tr>
24301+ <td><b>Q-format</b></td>
24302+ <td><b>Min</b></td>
24303+ <td><b>Default</b></td>
24304+ <td><b>Max</b></td>
24305+ </tr>
24306+ <tr>
24307+ <td>9.6</td>
24308+ <td>@ref LVNV_PCD_BETA_MIN (0)</td>
24309+ <td>@ref LVNV_PCD_BETA_DEFAULT (230)</td>
24310+ <td>@ref LVNV_PCD_BETA_MAX (32767)</td>
24311+ </tr>
24312+ </table> */
24313+ LVM_INT16 PCD_beta; ///< ICC smoothing factor.
24314+
24315+ /**
24316+ Detection threshold for broadside when the nearend speaker is not in end-fire
24317+ position with respect to the microphone configuration.
24318+ <table border>
24319+ <tr>
24320+ <td><b>Q-format</b></td>
24321+ <td><b>Min</b></td>
24322+ <td><b>Default</b></td>
24323+ <td><b>Max</b></td>
24324+ </tr>
24325+ <tr>
24326+ <td>9.6</td>
24327+ <td>@ref LVNV_PCD_THRESHOLD_MIN (0)</td>
24328+ <td>@ref LVNV_PCD_THRESHOLD_DEFAULT (26213)</td>
24329+ <td>@ref LVNV_PCD_THRESHOLD_MAX (32767)</td>
24330+ </tr>
24331+ </table> */
24332+ LVM_INT16 PCD_Threshold; ///< Broadside detection threshold.
24333+
24334+} LVNV_ControlParams_st;
24335+
24336+/**
24337+* The control parameters are used to control the overall module behavior. These parameters may
24338+* be changed at any time during processing using the LVHF_SetControlParameters function but they
24339+* will not take effect until the next call to the LVHF_Process function.
24340+*
24341+* @see LVHF_SetControlParameters
24342+* @see LVHF_Process
24343+*/
24344+typedef struct
24345+{
24346+ /**
24347+ */
24348+ LVM_Mode_en OperatingMode; ///< Operating Mode
24349+
24350+ /**
24351+ The mode word to enable/disable internal algorithm blocks of HandsFree
24352+ */
24353+ LVHF_ModeWord_bm Mode; ///< Mode Word
24354+
24355+ /**
24356+ The tuning mode is used to enable/disable internal algorithm tuning
24357+ capabilities in the different blocks of HandsFree. Only one bit allowed to be
24358+ enabled at a time.
24359+ */
24360+ LVHF_TuningModeWord TuningMode; ///< Tuning Mode
24361+
24362+ /**
24363+ Gain applied at the Tx input of LVHF. Used to scale the microphone signal in
24364+ order to give the NLMS filter headroom for correct operation.
24365+ <table border>
24366+ <tr>
24367+ <td><b>Q-format</b></td>
24368+ <td><b>Min</b></td>
24369+ <td><b>Default</b></td>
24370+ <td><b>Max</b></td>
24371+ </tr>
24372+ <tr>
24373+ <td>2.13</td>
24374+ <td>@ref LVHF_INPUTGAIN_MIN (0)</td>
24375+ <td>@ref LVHF_INPUTGAIN_DEFAULT (8192)</td>
24376+ <td>@ref LVHF_INPUTGAIN_MAX (32767)</td>
24377+ </tr>
24378+ </table> */
24379+ LVM_INT16 InputGain; ///< Input Gain
24380+
24381+ /**
24382+ Gain applied at the Tx output of LVHF. Compensates the applied InputGain in
24383+ order to preserve the overall Tx gain.
24384+ <table border>
24385+ <tr>
24386+ <td><b>Q-format</b></td>
24387+ <td><b>Min</b></td>
24388+ <td><b>Default</b></td>
24389+ <td><b>Max</b></td>
24390+ </tr>
24391+ <tr>
24392+ <td>4.11</td>
24393+ <td>@ref LVHF_OUTPUTGAIN_MIN (0)</td>
24394+ <td>@ref LVHF_OUTPUTGAIN_DEFAULT (2048)</td>
24395+ <td>@ref LVHF_OUTPUTGAIN_MAX (32767)</td>
24396+ </tr>
24397+ </table> */
24398+ LVM_INT16 OutputGain; ///< Output Gain
24399+
24400+ /**
24401+ Limit the NLMS reference signal. Value in dB Full Scale.
24402+ <table border>
24403+ <tr>
24404+ <td><b>Q-format</b></td>
24405+ <td><b>Min</b></td>
24406+ <td><b>Default</b></td>
24407+ <td><b>Max</b></td>
24408+ </tr>
24409+ <tr>
24410+ <td>15.0</td>
24411+ <td>@ref LVHF_NLMS_LIMIT_MIN (-24)</td>
24412+ <td>@ref LVHF_NLMS_LIMIT_DEFAULT (0)</td>
24413+ <td>@ref LVHF_NLMS_LIMIT_MAX (0)</td>
24414+ </tr>
24415+ </table> */
24416+ LVM_INT16 NLMS_limit; ///< Limit the NLMS reference signal.
24417+
24418+ /**
24419+ Length of the low-band (0-4kHz) adaptive echo cancellation filter. The Length
24420+ should be chosen such that most of the energy of the impulse response is
24421+ covered by the filter. The length should be a multiple of 8.
24422+ <table border>
24423+ <tr>
24424+ <td><b>Q-format</b></td>
24425+ <td><b>Min</b></td>
24426+ <td><b>Default</b></td>
24427+ <td><b>Max</b></td>
24428+ </tr>
24429+ <tr>
24430+ <td>16.0</td>
24431+ <td>@ref LVHF_NLMS_LB_TAPS_MIN (16)</td>
24432+ <td>@ref LVHF_NLMS_LB_TAPS_DEFAULT (64)</td>
24433+ <td>@ref LVHF_NLMS_LB_TAPS_MAX (200)</td>
24434+ </tr>
24435+ </table> */
24436+ LVM_UINT16 NLMS_LB_taps; ///< Number of taps for LB NLMS.
24437+
24438+ /**
24439+ Step size for the update of the low-band (0-4kHz) adaptive filter coefficients.
24440+ It is recommended not to change the default value.
24441+ <table border>
24442+ <tr>
24443+ <td><b>Q-format</b></td>
24444+ <td><b>Min</b></td>
24445+ <td><b>Default</b></td>
24446+ <td><b>Max</b></td>
24447+ </tr>
24448+ <tr>
24449+ <td>0.15</td>
24450+ <td>@ref LVHF_NLMS_LB_TWO_ALPHA_MIN (0)</td>
24451+ <td>@ref LVHF_NLMS_LB_TWO_ALPHA_DEFAULT (8192)</td>
24452+ <td>@ref LVHF_NLMS_LB_TWO_ALPHA_MAX (32767)</td>
24453+ </tr>
24454+ </table> */
24455+ LVM_INT16 NLMS_LB_two_alpha; ///< Step Size of LB NLMS
24456+
24457+ /**
24458+ Adaptive step size control for the low-band (0-4kHz) adaptive echo cancellation
24459+ filter. This parameter is used to slow down the update speed of the adaptive
24460+ filter during double talk situations.
24461+ <table border>
24462+ <tr>
24463+ <td><b>Q-format</b></td>
24464+ <td><b>Min</b></td>
24465+ <td><b>Default</b></td>
24466+ <td><b>Max</b></td>
24467+ </tr>
24468+ <tr>
24469+ <td>9.6</td>
24470+ <td>@ref LVHF_NLMS_LB_ERL_MIN (64)</td>
24471+ <td>@ref LVHF_NLMS_LB_ERL_DEFAULT (128)</td>
24472+ <td>@ref LVHF_NLMS_LB_ERL_MAX (32767)</td>
24473+ </tr>
24474+ </table> */
24475+ LVM_INT16 NLMS_LB_erl; ///< ERL of LB NLMS
24476+
24477+ /**
24478+ Length of the high-band (4-8kHz) adaptive echo cancellation filter. The Length
24479+ should be chosen such that most of the energy of the impulse response is
24480+ covered by the filter. The length should be a multiple of 8. In case of
24481+ narrowband processing, this parameter has no effect.
24482+ <table border>
24483+ <tr>
24484+ <td><b>Q-format</b></td>
24485+ <td><b>Min</b></td>
24486+ <td><b>Default</b></td>
24487+ <td><b>Max</b></td>
24488+ </tr>
24489+ <tr>
24490+ <td>16.0</td>
24491+ <td>@ref LVHF_NLMS_HB_TAPS_MIN (16)</td>
24492+ <td>@ref LVHF_NLMS_HB_TAPS_DEFAULT (64)</td>
24493+ <td>@ref LVHF_NLMS_HB_TAPS_MAX (136)</td>
24494+ </tr>
24495+ </table> */
24496+ LVM_UINT16 NLMS_HB_taps; ///< Number of taps for HB NLMS.
24497+
24498+ /**
24499+ Step size for the update of the high-band (4-8kHz) adaptive filter
24500+ coefficients. It is recommended not to change the default value. In case of
24501+ narrowband processing, this parameter has no effect.
24502+ <table border>
24503+ <tr>
24504+ <td><b>Q-format</b></td>
24505+ <td><b>Min</b></td>
24506+ <td><b>Default</b></td>
24507+ <td><b>Max</b></td>
24508+ </tr>
24509+ <tr>
24510+ <td>0.15</td>
24511+ <td>@ref LVHF_NLMS_HB_TWO_ALPHA_MIN (0)</td>
24512+ <td>@ref LVHF_NLMS_HB_TWO_ALPHA_DEFAULT (8192)</td>
24513+ <td>@ref LVHF_NLMS_HB_TWO_ALPHA_MAX (32767)</td>
24514+ </tr>
24515+ </table> */
24516+ LVM_INT16 NLMS_HB_two_alpha; ///< Step Size of HB NLMS
24517+
24518+ /**
24519+ Adaptive step size control for the high-band (4-8kHz) adaptive echo
24520+ cancellation filter. This parameter is used to slow down the update speed of
24521+ the adaptive filter during double talk situations. In case of narrowband
24522+ processing, this parameter has no effect.
24523+ <table border>
24524+ <tr>
24525+ <td><b>Q-format</b></td>
24526+ <td><b>Min</b></td>
24527+ <td><b>Default</b></td>
24528+ <td><b>Max</b></td>
24529+ </tr>
24530+ <tr>
24531+ <td>9.6</td>
24532+ <td>@ref LVHF_NLMS_HB_ERL_MIN (64)</td>
24533+ <td>@ref LVHF_NLMS_HB_ERL_DEFAULT (128)</td>
24534+ <td>@ref LVHF_NLMS_HB_ERL_MAX (32767)</td>
24535+ </tr>
24536+ </table> */
24537+ LVM_INT16 NLMS_HB_erl; ///< ERL of HB NLMS
24538+
24539+ /**
24540+ Indicates whether a preset of adaptive filter coefficients should be done. <br>
24541+ 0 = No preset (Coefficients as they are)<br>
24542+ 1= Preset with internally calculated coefficients.<br>
24543+ 2= Preset with zero coefficients.
24544+ <table border>
24545+ <tr>
24546+ <td><b>Q-format</b></td>
24547+ <td><b>Min</b></td>
24548+ <td><b>Default</b></td>
24549+ <td><b>Max</b></td>
24550+ </tr>
24551+ <tr>
24552+ <td>15.0</td>
24553+ <td>@ref LVHF_NLMS_PRESET_COEFS_MIN (0)</td>
24554+ <td>@ref LVHF_NLMS_PRESET_COEFS_DEFAULT (1)</td>
24555+ <td>@ref LVHF_NLMS_PRESET_COEFS_MAX (2)</td>
24556+ </tr>
24557+ </table> */
24558+ LVM_INT16 NLMS_preset_coefs; ///< Coefficient preset.
24559+
24560+ /**
24561+ Offset added to the normalization of the adaptation of the filter.
24562+ <table border>
24563+ <tr>
24564+ <td><b>Q-format</b></td>
24565+ <td><b>Min</b></td>
24566+ <td><b>Default</b></td>
24567+ <td><b>Max</b></td>
24568+ </tr>
24569+ <tr>
24570+ <td>0.15</td>
24571+ <td>@ref LVHF_NLMS_OFFSET_MIN (0)</td>
24572+ <td>@ref LVHF_NLMS_OFFSET_DEFAULT (767)</td>
24573+ <td>@ref LVHF_NLMS_OFFSET_MAX (32767)</td>
24574+ </tr>
24575+ </table> */
24576+ LVM_INT16 NLMS_offset; ///< NLMS offset
24577+
24578+ /**
24579+ Parameter related to the reverberation of the acoustic environment. It
24580+ represents the decay in time of the energy of the echo tail of the impulse
24581+ response for the LB.
24582+ <table border>
24583+ <tr>
24584+ <td><b>Q-format</b></td>
24585+ <td><b>Min</b></td>
24586+ <td><b>Default</b></td>
24587+ <td><b>Max</b></td>
24588+ </tr>
24589+ <tr>
24590+ <td>0.15</td>
24591+ <td>@ref LVHF_DENS_TAIL_ALPHA_LB_MIN (0)</td>
24592+ <td>@ref LVHF_DENS_TAIL_ALPHA_LB_DEFAULT (25395)</td>
24593+ <td>@ref LVHF_DENS_TAIL_ALPHA_LB_MAX (32767)</td>
24594+ </tr>
24595+ </table> */
24596+ LVM_INT16 DENS_tail_alpha_LB;
24597+ /**
24598+ Parameter related to the portion of the echo tail that has to be extrapolated
24599+ in time for LB.
24600+ <table border>
24601+ <tr>
24602+ <td><b>Q-format</b></td>
24603+ <td><b>Min</b></td>
24604+ <td><b>Default</b></td>
24605+ <td><b>Max</b></td>
24606+ </tr>
24607+ <tr>
24608+ <td>0.15</td>
24609+ <td>@ref LVHF_DENS_TAIL_PORTION_LB_MIN (0)</td>
24610+ <td>@ref LVHF_DENS_TAIL_PORTION_LB_DEFAULT (29491)</td>
24611+ <td>@ref LVHF_DENS_TAIL_PORTION_LB_MAX (32767)</td>
24612+ </tr>
24613+ </table> */
24614+ LVM_INT16 DENS_tail_portion_LB;
24615+ /**
24616+ Echo subtraction factor applied during farend-only for the LB.
24617+ <table border>
24618+ <tr>
24619+ <td><b>Q-format</b></td>
24620+ <td><b>Min</b></td>
24621+ <td><b>Default</b></td>
24622+ <td><b>Max</b></td>
24623+ </tr>
24624+ <tr>
24625+ <td>7.8</td>
24626+ <td>@ref LVHF_DENS_GAMMA_E_HIGH_LB_MIN (0)</td>
24627+ <td>@ref LVHF_DENS_GAMMA_E_HIGH_LB_DEFAULT (512)</td>
24628+ <td>@ref LVHF_DENS_GAMMA_E_HIGH_LB_MAX (32767)</td>
24629+ </tr>
24630+ </table> */
24631+ LVM_INT16 DENS_gamma_e_high_LB; ///< FE Echo subtraction LB
24632+
24633+ /**
24634+ Echo subtraction factor applied during double talk for the LB.
24635+ <table border>
24636+ <tr>
24637+ <td><b>Q-format</b></td>
24638+ <td><b>Min</b></td>
24639+ <td><b>Default</b></td>
24640+ <td><b>Max</b></td>
24641+ </tr>
24642+ <tr>
24643+ <td>7.8</td>
24644+ <td>@ref LVHF_DENS_GAMMA_E_DT_LB_MIN (0)</td>
24645+ <td>@ref LVHF_DENS_GAMMA_E_DT_LB_DEFAULT (256)</td>
24646+ <td>@ref LVHF_DENS_GAMMA_E_DT_LB_MAX (32767)</td>
24647+ </tr>
24648+ </table> */
24649+ LVM_INT16 DENS_gamma_e_dt_LB; ///< DT Echo subtraction factor LB
24650+
24651+ /**
24652+ Echo subtraction factor applied during nearend-only for the LB.
24653+ <table border>
24654+ <tr>
24655+ <td><b>Q-format</b></td>
24656+ <td><b>Min</b></td>
24657+ <td><b>Default</b></td>
24658+ <td><b>Max</b></td>
24659+ </tr>
24660+ <tr>
24661+ <td>7.8</td>
24662+ <td>@ref LVHF_DENS_GAMMA_E_LOW_LB_MIN (0)</td>
24663+ <td>@ref LVHF_DENS_GAMMA_E_LOW_LB_DEFAULT (256)</td>
24664+ <td>@ref LVHF_DENS_GAMMA_E_LOW_LB_MAX (32767)</td>
24665+ </tr>
24666+ </table> */
24667+ LVM_INT16 DENS_gamma_e_low_LB; ///< NE Echo subtraction factor LB
24668+
24669+ /**
24670+ The amount of extra non-linear suppression relative to the maximum linear echo
24671+ suppression for the LB. The use of these non-linear echo suppression mechanisms
24672+ should be avoided as much as possible since it affects the double talk
24673+ performance.
24674+ <table border>
24675+ <tr>
24676+ <td><b>Q-format</b></td>
24677+ <td><b>Min</b></td>
24678+ <td><b>Default</b></td>
24679+ <td><b>Max</b></td>
24680+ </tr>
24681+ <tr>
24682+ <td>4.11</td>
24683+ <td>@ref LVHF_DENS_NL_ATTEN_LB_MIN (0)</td>
24684+ <td>@ref LVHF_DENS_NL_ATTEN_LB_DEFAULT (0)</td>
24685+ <td>@ref LVHF_DENS_NL_ATTEN_LB_MAX (2048)</td>
24686+ </tr>
24687+ </table> */
24688+ LVM_INT16 DENS_NL_atten_LB; ///< LB Non linear attenuation
24689+
24690+ /**
24691+ Parameter related to the reverberation of the acoustic environment. It
24692+ represents the decay in time of the energy of the echo tail of the impulse
24693+ response for the HB.
24694+ <table border>
24695+ <tr>
24696+ <td><b>Q-format</b></td>
24697+ <td><b>Min</b></td>
24698+ <td><b>Default</b></td>
24699+ <td><b>Max</b></td>
24700+ </tr>
24701+ <tr>
24702+ <td>0.15</td>
24703+ <td>@ref LVHF_DENS_TAIL_ALPHA_HB_MIN (0)</td>
24704+ <td>@ref LVHF_DENS_TAIL_ALPHA_HB_DEFAULT (25395)</td>
24705+ <td>@ref LVHF_DENS_TAIL_ALPHA_HB_MAX (32767)</td>
24706+ </tr>
24707+ </table> */
24708+ LVM_INT16 DENS_tail_alpha_HB;
24709+ /**
24710+ Parameter related to the portion of the echo tail that has to be extrapolated
24711+ in time for HB.
24712+ <table border>
24713+ <tr>
24714+ <td><b>Q-format</b></td>
24715+ <td><b>Min</b></td>
24716+ <td><b>Default</b></td>
24717+ <td><b>Max</b></td>
24718+ </tr>
24719+ <tr>
24720+ <td>0.15</td>
24721+ <td>@ref LVHF_DENS_TAIL_PORTION_HB_MIN (0)</td>
24722+ <td>@ref LVHF_DENS_TAIL_PORTION_HB_DEFAULT (29491)</td>
24723+ <td>@ref LVHF_DENS_TAIL_PORTION_HB_MAX (32767)</td>
24724+ </tr>
24725+ </table> */
24726+ LVM_INT16 DENS_tail_portion_HB;
24727+ /**
24728+ Echo subtraction factor applied during farend-only for the HB.
24729+ <table border>
24730+ <tr>
24731+ <td><b>Q-format</b></td>
24732+ <td><b>Min</b></td>
24733+ <td><b>Default</b></td>
24734+ <td><b>Max</b></td>
24735+ </tr>
24736+ <tr>
24737+ <td>7.8</td>
24738+ <td>@ref LVHF_DENS_GAMMA_E_HIGH_HB_MIN (0)</td>
24739+ <td>@ref LVHF_DENS_GAMMA_E_HIGH_HB_DEFAULT (512)</td>
24740+ <td>@ref LVHF_DENS_GAMMA_E_HIGH_HB_MAX (32767)</td>
24741+ </tr>
24742+ </table> */
24743+ LVM_INT16 DENS_gamma_e_high_HB; ///< FE Echo subtraction HB
24744+
24745+ /**
24746+ Echo subtraction factor applied during double talk for the HB.
24747+ <table border>
24748+ <tr>
24749+ <td><b>Q-format</b></td>
24750+ <td><b>Min</b></td>
24751+ <td><b>Default</b></td>
24752+ <td><b>Max</b></td>
24753+ </tr>
24754+ <tr>
24755+ <td>7.8</td>
24756+ <td>@ref LVHF_DENS_GAMMA_E_DT_HB_MIN (0)</td>
24757+ <td>@ref LVHF_DENS_GAMMA_E_DT_HB_DEFAULT (256)</td>
24758+ <td>@ref LVHF_DENS_GAMMA_E_DT_HB_MAX (32767)</td>
24759+ </tr>
24760+ </table> */
24761+ LVM_INT16 DENS_gamma_e_dt_HB; ///< DT Echo subtraction factor HB
24762+
24763+ /**
24764+ Echo subtraction factor applied during nearend-only for the HB.
24765+ <table border>
24766+ <tr>
24767+ <td><b>Q-format</b></td>
24768+ <td><b>Min</b></td>
24769+ <td><b>Default</b></td>
24770+ <td><b>Max</b></td>
24771+ </tr>
24772+ <tr>
24773+ <td>7.8</td>
24774+ <td>@ref LVHF_DENS_GAMMA_E_LOW_HB_MIN (0)</td>
24775+ <td>@ref LVHF_DENS_GAMMA_E_LOW_HB_DEFAULT (256)</td>
24776+ <td>@ref LVHF_DENS_GAMMA_E_LOW_HB_MAX (32767)</td>
24777+ </tr>
24778+ </table> */
24779+ LVM_INT16 DENS_gamma_e_low_HB; ///< NE Echo subtraction factor HB
24780+
24781+ /**
24782+ The amount of extra non-linear suppression relative to the maximum linear echo
24783+ suppression. for the HB. The use of these non-linear echo suppression
24784+ mechanisms should be avoided as much as possible since it affects the double
24785+ talk performance.
24786+ <table border>
24787+ <tr>
24788+ <td><b>Q-format</b></td>
24789+ <td><b>Min</b></td>
24790+ <td><b>Default</b></td>
24791+ <td><b>Max</b></td>
24792+ </tr>
24793+ <tr>
24794+ <td>4.11</td>
24795+ <td>@ref LVHF_DENS_NL_ATTEN_HB_MIN (0)</td>
24796+ <td>@ref LVHF_DENS_NL_ATTEN_HB_DEFAULT (0)</td>
24797+ <td>@ref LVHF_DENS_NL_ATTEN_HB_MAX (2048)</td>
24798+ </tr>
24799+ </table> */
24800+ LVM_INT16 DENS_NL_atten_HB; ///< NE Echo subtraction factor HB
24801+
24802+ /**
24803+ Smoothing factor applied when switching between gamma_e values.
24804+ <table border>
24805+ <tr>
24806+ <td><b>Q-format</b></td>
24807+ <td><b>Min</b></td>
24808+ <td><b>Default</b></td>
24809+ <td><b>Max</b></td>
24810+ </tr>
24811+ <tr>
24812+ <td>0.15</td>
24813+ <td>@ref LVHF_DENS_GAMMA_E_ALPHA_MIN (0)</td>
24814+ <td>@ref LVHF_DENS_GAMMA_E_ALPHA_DEFAULT (24000)</td>
24815+ <td>@ref LVHF_DENS_GAMMA_E_ALPHA_MAX (32767)</td>
24816+ </tr>
24817+ </table> */
24818+ LVM_INT16 DENS_gamma_e_alpha; ///< Smoothing factor for gamma_e
24819+
24820+ /**
24821+ Gain factor for Noise subtraction.
24822+ <table border>
24823+ <tr>
24824+ <td><b>Q-format</b></td>
24825+ <td><b>Min</b></td>
24826+ <td><b>Default</b></td>
24827+ <td><b>Max</b></td>
24828+ </tr>
24829+ <tr>
24830+ <td>7.8</td>
24831+ <td>@ref LVHF_DENS_GAMMA_N_MIN (0)</td>
24832+ <td>@ref LVHF_DENS_GAMMA_N_DEFAULT (280)</td>
24833+ <td>@ref LVHF_DENS_GAMMA_N_MAX (32767)</td>
24834+ </tr>
24835+ </table> */
24836+ LVM_INT16 DENS_gamma_n; ///< Gain factor
24837+
24838+ /**
24839+ Threshold for nearend activity detection.
24840+ <table border>
24841+ <tr>
24842+ <td><b>Q-format</b></td>
24843+ <td><b>Min</b></td>
24844+ <td><b>Default</b></td>
24845+ <td><b>Max</b></td>
24846+ </tr>
24847+ <tr>
24848+ <td>7.8</td>
24849+ <td>@ref LVHF_DENS_SPDET_NEAR_MIN (0)</td>
24850+ <td>@ref LVHF_DENS_SPDET_NEAR_DEFAULT (512)</td>
24851+ <td>@ref LVHF_DENS_SPDET_NEAR_MAX (32767)</td>
24852+ </tr>
24853+ </table> */
24854+ LVM_INT16 DENS_spdet_near;
24855+ /**
24856+ Threshold for microphone activity detection.
24857+ <table border>
24858+ <tr>
24859+ <td><b>Q-format</b></td>
24860+ <td><b>Min</b></td>
24861+ <td><b>Default</b></td>
24862+ <td><b>Max</b></td>
24863+ </tr>
24864+ <tr>
24865+ <td>7.8</td>
24866+ <td>@ref LVHF_DENS_SPDET_ACT_MIN (0)</td>
24867+ <td>@ref LVHF_DENS_SPDET_ACT_DEFAULT (768)</td>
24868+ <td>@ref LVHF_DENS_SPDET_ACT_MAX (32767)</td>
24869+ </tr>
24870+ </table> */
24871+ LVM_INT16 DENS_spdet_act;
24872+ /**
24873+ The maximum amount of noise suppression. <br>
24874+ DENS_limit_ns = \f$32767*10^{-MaxNoiseReduction[dB]/20}\f$
24875+ <table border>
24876+ <tr>
24877+ <td><b>Q-format</b></td>
24878+ <td><b>Min</b></td>
24879+ <td><b>Default</b></td>
24880+ <td><b>Max</b></td>
24881+ </tr>
24882+ <tr>
24883+ <td>0.15</td>
24884+ <td>@ref LVHF_DENS_LIMIT_NS_MIN (0)</td>
24885+ <td>@ref LVHF_DENS_LIMIT_NS_DEFAULT (10361)</td>
24886+ <td>@ref LVHF_DENS_LIMIT_NS_MAX (32767)</td>
24887+ </tr>
24888+ </table> */
24889+ LVM_INT16 DENS_limit_ns; ///< Maximum noise suppression.
24890+
24891+ /**
24892+ The amount of comfort noise insertion.
24893+ <table border>
24894+ <tr>
24895+ <td><b>Q-format</b></td>
24896+ <td><b>Min</b></td>
24897+ <td><b>Default</b></td>
24898+ <td><b>Max</b></td>
24899+ </tr>
24900+ <tr>
24901+ <td>1.14</td>
24902+ <td>@ref LVHF_DENS_CNI_GAIN_MIN (0)</td>
24903+ <td>@ref LVHF_DENS_CNI_GAIN_DEFAULT (16384)</td>
24904+ <td>@ref LVHF_DENS_CNI_GAIN_MAX (32767)</td>
24905+ </tr>
24906+ </table> */
24907+ LVM_INT16 DENS_CNI_Gain; ///< CNI gain
24908+
24909+ /**
24910+ The window length (expressed in integer multiples of 10ms) for the estimation
24911+ of the noise components. It is recommended to keep this parameter at its
24912+ default value.
24913+ <table border>
24914+ <tr>
24915+ <td><b>Q-format</b></td>
24916+ <td><b>Min</b></td>
24917+ <td><b>Default</b></td>
24918+ <td><b>Max</b></td>
24919+ </tr>
24920+ <tr>
24921+ <td>0.15</td>
24922+ <td>@ref LVHF_DENS_NFE_BLOCKSIZE_MIN (0)</td>
24923+ <td>@ref LVHF_DENS_NFE_BLOCKSIZE_DEFAULT (150)</td>
24924+ <td>@ref LVHF_DENS_NFE_BLOCKSIZE_MAX (32767)</td>
24925+ </tr>
24926+ </table> */
24927+ LVM_INT16 DENS_NFE_blocksize; ///< NFE blocksize
24928+
24929+ /**
24930+ Threshold for farend activity detection.
24931+ <table border>
24932+ <tr>
24933+ <td><b>Q-format</b></td>
24934+ <td><b>Min</b></td>
24935+ <td><b>Default</b></td>
24936+ <td><b>Max</b></td>
24937+ </tr>
24938+ <tr>
24939+ <td>0.15</td>
24940+ <td>@ref LVHF_SPDET_FAR_MIN (0)</td>
24941+ <td>@ref LVHF_SPDET_FAR_DEFAULT (16384)</td>
24942+ <td>@ref LVHF_SPDET_FAR_MAX (32767)</td>
24943+ </tr>
24944+ </table> */
24945+ LVM_INT16 SPDET_far;
24946+ /**
24947+ Threshold for microphone activity detection.
24948+ <table border>
24949+ <tr>
24950+ <td><b>Q-format</b></td>
24951+ <td><b>Min</b></td>
24952+ <td><b>Default</b></td>
24953+ <td><b>Max</b></td>
24954+ </tr>
24955+ <tr>
24956+ <td>0.15</td>
24957+ <td>@ref LVHF_SPDET_MIC_MIN (0)</td>
24958+ <td>@ref LVHF_SPDET_MIC_DEFAULT (16384)</td>
24959+ <td>@ref LVHF_SPDET_MIC_MAX (32767)</td>
24960+ </tr>
24961+ </table> */
24962+ LVM_INT16 SPDET_mic;
24963+ /**
24964+ Threshold to activate the non-linear echo-suppression.
24965+ <table border>
24966+ <tr>
24967+ <td><b>Q-format</b></td>
24968+ <td><b>Min</b></td>
24969+ <td><b>Default</b></td>
24970+ <td><b>Max</b></td>
24971+ </tr>
24972+ <tr>
24973+ <td>0.15</td>
24974+ <td>@ref LVHF_SPDET_X_CLIP_MIN (0)</td>
24975+ <td>@ref LVHF_SPDET_X_CLIP_DEFAULT (0)</td>
24976+ <td>@ref LVHF_SPDET_X_CLIP_MAX (32767)</td>
24977+ </tr>
24978+ </table> */
24979+ LVM_INT16 SPDET_x_clip;
24980+ /**
24981+ Threshold to detect acoustical path changes.
24982+ <table border>
24983+ <tr>
24984+ <td><b>Q-format</b></td>
24985+ <td><b>Min</b></td>
24986+ <td><b>Default</b></td>
24987+ <td><b>Max</b></td>
24988+ </tr>
24989+ <tr>
24990+ <td>0.15</td>
24991+ <td>@ref LVHF_PCD_THRESHOLD_MIN (0)</td>
24992+ <td>@ref LVHF_PCD_THRESHOLD_DEFAULT (20000)</td>
24993+ <td>@ref LVHF_PCD_THRESHOLD_MAX (32767)</td>
24994+ </tr>
24995+ </table> */
24996+ LVM_INT16 PCD_threshold; ///< PCD threshold
24997+
24998+ /**
24999+ Length of the background adaptive filter. The length should be chosen such that
25000+ only the main peak of the impulse response is covered by the filter. The length
25001+ should be a multiple of 8.
25002+ <table border>
25003+ <tr>
25004+ <td><b>Q-format</b></td>
25005+ <td><b>Min</b></td>
25006+ <td><b>Default</b></td>
25007+ <td><b>Max</b></td>
25008+ </tr>
25009+ <tr>
25010+ <td>16.0</td>
25011+ <td>@ref LVHF_PCD_TAPS_MIN (16)</td>
25012+ <td>@ref LVHF_PCD_TAPS_DEFAULT (16)</td>
25013+ <td>@ref LVHF_PCD_TAPS_MAX (64)</td>
25014+ </tr>
25015+ </table> */
25016+ LVM_INT16 PCD_taps; ///< Number of taps of background NLMS.
25017+
25018+ /**
25019+ Adaptive step size control for the background adaptive filter.
25020+ <table border>
25021+ <tr>
25022+ <td><b>Q-format</b></td>
25023+ <td><b>Min</b></td>
25024+ <td><b>Default</b></td>
25025+ <td><b>Max</b></td>
25026+ </tr>
25027+ <tr>
25028+ <td>9.6</td>
25029+ <td>@ref LVHF_PCD_ERL_MIN (64)</td>
25030+ <td>@ref LVHF_PCD_ERL_DEFAULT (64)</td>
25031+ <td>@ref LVHF_PCD_ERL_MAX (32767)</td>
25032+ </tr>
25033+ </table> */
25034+ LVM_INT16 PCD_erl; ///< Step size of background NLMS.
25035+
25036+ /**
25037+ If a path change is detected, NLMS_erl of the NLMS is set to this value, to
25038+ ensure a fast adapting filter.
25039+ <table border>
25040+ <tr>
25041+ <td><b>Q-format</b></td>
25042+ <td><b>Min</b></td>
25043+ <td><b>Default</b></td>
25044+ <td><b>Max</b></td>
25045+ </tr>
25046+ <tr>
25047+ <td>9.6</td>
25048+ <td>@ref LVHF_PCD_MINIMUM_ERL_MIN (64)</td>
25049+ <td>@ref LVHF_PCD_MINIMUM_ERL_DEFAULT (64)</td>
25050+ <td>@ref LVHF_PCD_MINIMUM_ERL_MAX (32767)</td>
25051+ </tr>
25052+ </table> */
25053+ LVM_INT16 PCD_minimum_erl; ///< Step size of NLMS after PCD.
25054+
25055+ /**
25056+ After a path change the NLMS_erl of the NLMS increases back to the nominal
25057+ value. The speed to increase can be controlled by this parameter.
25058+ <table border>
25059+ <tr>
25060+ <td><b>Q-format</b></td>
25061+ <td><b>Min</b></td>
25062+ <td><b>Default</b></td>
25063+ <td><b>Max</b></td>
25064+ </tr>
25065+ <tr>
25066+ <td>1.14</td>
25067+ <td>@ref LVHF_PCD_ERL_STEP_MIN (16384)</td>
25068+ <td>@ref LVHF_PCD_ERL_STEP_DEFAULT (16800)</td>
25069+ <td>@ref LVHF_PCD_ERL_STEP_MAX (32767)</td>
25070+ </tr>
25071+ </table> */
25072+ LVM_INT16 PCD_erl_step; ///< Step of ERL increase after PCD.
25073+
25074+ /**
25075+ Gain factor applied to the echo subtraction during acoustical path change.
25076+ <table border>
25077+ <tr>
25078+ <td><b>Q-format</b></td>
25079+ <td><b>Min</b></td>
25080+ <td><b>Default</b></td>
25081+ <td><b>Max</b></td>
25082+ </tr>
25083+ <tr>
25084+ <td>7.8</td>
25085+ <td>@ref LVHF_PCD_GAMMA_E_RESCUE_MIN (0)</td>
25086+ <td>@ref LVHF_PCD_GAMMA_E_RESCUE_DEFAULT (5000)</td>
25087+ <td>@ref LVHF_PCD_GAMMA_E_RESCUE_MAX (32767)</td>
25088+ </tr>
25089+ </table> */
25090+ LVM_INT16 PCD_gamma_e_rescue; ///< gamma_e after PCD
25091+
25092+} LVHF_ControlParams_st;
25093+
25094+/**
25095+* The control parameters are used to control the overall module behavior. These parameters may
25096+* be changed at any time during processing using the LVBD_SetControlParameters function but they
25097+* will not take effect until the next call to the LVBD_Process function.
25098+*
25099+* @see LVBD_SetControlParameters
25100+* @see LVBD_Process
25101+*/
25102+typedef struct
25103+{
25104+ /**
25105+ Set Bulk Delay operating mode on/off.
25106+ */
25107+ LVM_Mode_en BD_OperatingMode; ///< Set Bulk Delay operating mode on/off
25108+
25109+ /**
25110+ This parameter compensates for the fixed delay in the echo path and can be
25111+ measured in advance. This delay is caused by the audio I/O buffering, AD/DA
25112+ converter and propagation time between the loudspeaker and microphone. The unit
25113+ of 'BulkDelay' is [number of samples] at the respective sampling rate.
25114+ <table border>
25115+ <tr>
25116+ <td><b>Q-format</b></td>
25117+ <td><b>Min</b></td>
25118+ <td><b>Default</b></td>
25119+ <td><b>Max</b></td>
25120+ </tr>
25121+ <tr>
25122+ <td>16.0</td>
25123+ <td>@ref LVBD_BULKDELAY_MIN (0)</td>
25124+ <td>@ref LVBD_BULKDELAY_DEFAULT (0)</td>
25125+ <td>@ref LVBD_BULKDELAY_MAX (6400)</td>
25126+ </tr>
25127+ </table> */
25128+ LVM_UINT16 BulkDelay; ///< Sets Bulk Delay
25129+
25130+ /**
25131+ This param sets the gain for the Echo reference signal. Value 8192 belong to
25132+ 0dB
25133+ <table border>
25134+ <tr>
25135+ <td><b>Q-format</b></td>
25136+ <td><b>Min</b></td>
25137+ <td><b>Default</b></td>
25138+ <td><b>Max</b></td>
25139+ </tr>
25140+ <tr>
25141+ <td>2.13</td>
25142+ <td>@ref LVBD_BD_GAIN_MIN (0)</td>
25143+ <td>@ref LVBD_BD_GAIN_DEFAULT (8192)</td>
25144+ <td>@ref LVBD_BD_GAIN_MAX (32767)</td>
25145+ </tr>
25146+ </table> */
25147+ LVM_INT16 BD_Gain; ///< Apply Gain to Echo reference signal
25148+
25149+} LVBD_ControlParams_st;
25150+
25151+/**
25152+* The control parameters are used to control the overall module behavior. These parameters may
25153+* be changed at any time during processing using the LVVE_Tx_SetControlParameters function but they
25154+* will not take effect until the next call to the LVVE_Tx_Process function.
25155+*
25156+* @see LVVE_Tx_SetControlParameters
25157+* @see LVVE_Tx_Process
25158+*/
25159+typedef struct
25160+{
25161+ /**
25162+ This enumerated type is used to set the operating mode of the Tx path. The
25163+ processing can be separately set to enable all processing modules (i.e., ON),
25164+ to disable all processing modules (i.e., OFF) or to bypass all processing
25165+ modules (i.e., BYPASS). When bypassed, all processing modules keep on running,
25166+ but their output is not used. When bypassing the Tx processing, the user can
25167+ select which buffer should be copied to the output buffer, if required: @li
25168+ Input microphone signal (or secondary microphone signal in case of
25169+ two-microphone setups); @li Rx reference signal; These operations ensure that
25170+ the input data is correctly transferred to the output buffer for all
25171+ combinations of input and output buffer types and input format. When OFF, the
25172+ input is copied to the output and the LVVE can be provided with invalid
25173+ parameters for modules. The sub module functions are not executed in this
25174+ scenario. Their combined functionality is summarized in follwoing table. <br>
25175+ <div align="center"> <table cellspacing="1" cellpadding="4" border="3">
25176+ <caption>LVVE Tx operating mode in combination with LVVE microphone routing
25177+ mode</caption> <tr> <th></th> <th colspan="2">MICROUTING_MODE_DEFAULT</th> <th
25178+ colspan="2">MICROUTING_MODE_SWAPPED</th> </tr> <tr> <th width="70"></th> <th
25179+ width="70">Process</th> <th width="70">Output</th> <th width="70">Process</th>
25180+ <th width="70">Output</th> </tr> <tr align="left"> <td>LVVE_TX_MODE_OFF</td>
25181+ <td>None</td> <td>Tx input 0</td> <td>None</td> <td>Tx input 1</td> </tr> <tr
25182+ align="left"> <td>LVVE_TX_MODE_ON</td> <td>Tx input 0</td> <td>Tx output</td>
25183+ <td>Tx input 1</td> <td>Tx output</td> </tr> <tr align="left">
25184+ <td>LVVE_TX_MODE_BYPASS_MIC0</td> <td>Tx input 0</td> <td>Tx input 0</td>
25185+ <td>Tx input 1</td> <td>Tx input 1</td> </tr> <tr align="left">
25186+ <td>LVVE_TX_MODE_BYPASS_MIC1</td> <td>Tx input 0</td> <td>Tx input 1</td>
25187+ <td>Tx input 1</td> <td>Tx input 0</td> </tr> <tr align="left">
25188+ <td>LVVE_TX_MODE_BYPASS_REF</td> <td>Tx input 0</td> <td>Tx ref input</td>
25189+ <td>Tx input 1</td> <td>Tx ref input</td> </tr> </table> </div>
25190+ */
25191+ LVVE_Tx_Mode_en OperatingMode; ///< TX Operating mode
25192+
25193+ /**
25194+ This param can mute unmute the Rx/Tx engine output.
25195+ */
25196+ LVM_Mode_en Mute; ///< This param can mute unmute the Rx/Tx engine output
25197+
25198+ /**
25199+ Set Bulk Delay operating mode on/off.
25200+ */
25201+ LVM_Mode_en BD_OperatingMode; ///< Set Bulk Delay operating mode on/off
25202+
25203+ /**
25204+ This parameter compensates for the fixed delay in the echo path and can be
25205+ measured in advance. This delay is caused by the audio I/O buffering, AD/DA
25206+ converter and propagation time between the loudspeaker and microphone. The unit
25207+ of 'BulkDelay' is [number of samples] at the respective sampling rate.
25208+ <table border>
25209+ <tr>
25210+ <td><b>Q-format</b></td>
25211+ <td><b>Min</b></td>
25212+ <td><b>Default</b></td>
25213+ <td><b>Max</b></td>
25214+ </tr>
25215+ <tr>
25216+ <td>16.0</td>
25217+ <td>@ref LVVE_TX_BULKDELAY_MIN (0)</td>
25218+ <td>@ref LVVE_TX_BULKDELAY_DEFAULT (0)</td>
25219+ <td>@ref LVVE_TX_BULKDELAY_MAX (6400)</td>
25220+ </tr>
25221+ </table> */
25222+ LVM_UINT16 BulkDelay; ///< Sets Bulk Delay
25223+
25224+ /**
25225+ This param sets the gain for the Echo reference signal. Value 8192 belong to
25226+ 0dB
25227+ <table border>
25228+ <tr>
25229+ <td><b>Q-format</b></td>
25230+ <td><b>Min</b></td>
25231+ <td><b>Default</b></td>
25232+ <td><b>Max</b></td>
25233+ </tr>
25234+ <tr>
25235+ <td>2.13</td>
25236+ <td>@ref LVVE_TX_BD_GAIN_MIN (0)</td>
25237+ <td>@ref LVVE_TX_BD_GAIN_DEFAULT (8192)</td>
25238+ <td>@ref LVVE_TX_BD_GAIN_MAX (32767)</td>
25239+ </tr>
25240+ </table> */
25241+ LVM_INT16 BD_Gain; ///< Apply Gain to Echo reference signal
25242+
25243+ /**
25244+ Turns on/off VOL_Gain.
25245+ */
25246+ LVM_Mode_en VOL_OperatingMode; ///< Turns on/off VOL_Gain
25247+
25248+ /**
25249+ The volume control gain can be used to set the overall volume level of the
25250+ signal. The gain is set in dB with steps of 1dB.
25251+ <table border>
25252+ <tr>
25253+ <td><b>Q-format</b></td>
25254+ <td><b>Min</b></td>
25255+ <td><b>Default</b></td>
25256+ <td><b>Max</b></td>
25257+ </tr>
25258+ <tr>
25259+ <td>15.0</td>
25260+ <td>@ref LVVE_TX_VOL_GAIN_MIN (-96)</td>
25261+ <td>@ref LVVE_TX_VOL_GAIN_DEFAULT (0)</td>
25262+ <td>@ref LVVE_TX_VOL_GAIN_MAX (24)</td>
25263+ </tr>
25264+ </table> */
25265+ LVM_INT16 VOL_Gain; ///< Apply Gain to Input signal
25266+
25267+ /**
25268+ Turns on/off High Pass filter.
25269+ */
25270+ LVM_Mode_en HPF_OperatingMode; ///< Turns on/off High Pass filter
25271+
25272+ /**
25273+ Sets the 3dB corner frequency of the high-pass filter. In case NoiseVoid is
25274+ enabled, the same high-pass filter will be applied to the second microphone
25275+ channel.
25276+ <table border>
25277+ <tr>
25278+ <td><b>Q-format</b></td>
25279+ <td><b>Min</b></td>
25280+ <td><b>Default</b></td>
25281+ <td><b>Max</b></td>
25282+ </tr>
25283+ <tr>
25284+ <td>16.0</td>
25285+ <td>@ref LVVE_TX_MIC_HPF_CORNERFREQ_MIN (50)</td>
25286+ <td>@ref LVVE_TX_MIC_HPF_CORNERFREQ_DEFAULT (50)</td>
25287+ <td>@ref LVVE_TX_MIC_HPF_CORNERFREQ_MAX (1500)</td>
25288+ </tr>
25289+ </table> */
25290+ LVM_UINT16 MIC_HPF_CornerFreq; ///< High Pass Filter Corner Frequency in Hz
25291+
25292+ /**
25293+ HandsFree Control Parameter Strcuture.
25294+ */
25295+ LVHF_ControlParams_st HF_ControlParams; ///< HandsFree Control Parameter Structure
25296+
25297+ /**
25298+ NoiseVoid Control Parameter Structure.
25299+ */
25300+ LVNV_ControlParams_st NV_ControlParams; ///< NoiseVoid Control Parameter Structure
25301+
25302+ /**
25303+ Equalizer Operating mode.
25304+ */
25305+ LVM_Mode_en EQ_OperatingMode; ///< Equalizer Operating mode
25306+
25307+ /**
25308+ Equalizer Control Parameter Structure.
25309+ */
25310+ LVEQ_ControlParams_st EQ_ControlParams; ///< Equalizer Control Parameters Structure
25311+
25312+ /**
25313+ DRC Control Parameter Structure.
25314+ */
25315+ LVDRC_ControlParams_st DRC_ControlParams; ///< DRC Control Parameter Structure
25316+
25317+} LVVE_Tx_ControlParams_st;
25318+
25319+//adb by xuxinqiang 20150519
25320+#define LVVE_MAX_EQ_LENGTH_NB 32 /* Maximum equaliser length for narrowband configuration */
25321+#define LVVE_MAX_EQ_LENGTH_WB 64 /* Maximum equaliser length for wideband configuration */
25322+/*[Begin] [lvwenhua-2013/10/21]*/
25323+typedef struct
25324+{
25325+ LVM_INT16 EqCoefs[LVVE_MAX_EQ_LENGTH_NB];
25326+} LVEQ_Coefs_st;
25327+/*[End] [lvwenhua-2013/10/21]*/
25328+/*[Begin] [lvwenhua-2012/3/12]*/
25329+#define LVVC_VOLUME_NUM 12
25330+
25331+typedef struct
25332+{
25333+ LVM_INT16 NoiseSensitivity[LVVC_VOLUME_NUM];
25334+} LVVC_NoiseSens_st;
25335+/*[End] [lvwenhua-2012/3/12]*/
25336+
25337+/*[Begin] [lvwenhua-2011/8/23]*/
25338+typedef struct
25339+{
25340+ LVVE_Tx_ControlParams_st Tx_ControlParams;
25341+ LVVE_Rx_ControlParams_st Rx_ControlParams;
25342+ LVEQ_Coefs_st TxEqCoefs;
25343+ LVEQ_Coefs_st RxEqCoefs;
25344+ /*[Begin] [lvwenhua-2012/3/12]*/
25345+ LVVC_NoiseSens_st RxVcNoiseSens;
25346+ /*[End] [lvwenhua-2012/3/12]*/
25347+} LVVE_ControlParams_st;
25348+typedef struct
25349+{
25350+ LVM_UINT32 isVpParamInNv;
25351+ LVVE_ControlParams_st Handset_ControlParams;
25352+ LVVE_ControlParams_st Handsfree_ControlParams;
25353+ LVVE_ControlParams_st Headset_ControlParams;
25354+ LVVE_ControlParams_st Bluetooth_ControlParams;
25355+} LVVE_ControlParams_All_st;
25356+/*[End] [lvwenhua-2011/8/23]*/
25357+
25358+
25359+
25360+#ifdef __cplusplus
25361+}
25362+#endif /* __cplusplus */
25363+
25364+#endif /* __REL_LVVE_HF_NV1_VC_AGC_RX_DRC_RX_VIDPP_H__ */
25365+
25366+/* End of file */
25367diff --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
25368new file mode 100755
25369index 0000000..0153e82
25370--- /dev/null
25371+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/uclinux/PARAM_Default.h
25372@@ -0,0 +1,178 @@
25373+static LVM_CHAR LVVE_Tx_Preset_Buffer_Voice_Tool[] ={
25374+0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xB5, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00,
25375+0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
25376+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
25377+0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x11, 0x00, 0x00, 0x00,
25378+0x20, 0x00, 0x08, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x80, 0x00, 0x40, 0x00, 0x00, 0x20, 0x80,
25379+0x00, 0x01, 0x00, 0xFF, 0x02, 0x33, 0x63, 0x33, 0x73, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00,
25380+0x00, 0x33, 0x63, 0x33, 0x73, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0xC0, 0x5D, 0x18,
25381+0x01, 0x00, 0x02, 0x00, 0x03, 0x79, 0x28, 0x00, 0x40, 0x96, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00,
25382+0x00, 0x20, 0x4E, 0x10, 0x00, 0x40, 0x00, 0x40, 0x00, 0xA0, 0x41, 0x88, 0x13, 0x00, 0x00, 0x00,
25383+0x00, 0xF7, 0x49, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x08, 0x20, 0x00, 0x00,
25384+0x20, 0xE8, 0x03, 0x18, 0x00, 0x00, 0x20, 0xE8, 0x03, 0x00, 0x00, 0x08, 0x03, 0x20, 0x00, 0x00,
25385+0x20, 0xE8, 0x03, 0x18, 0x00, 0x00, 0x20, 0xE8, 0x03, 0x00, 0x00, 0x08, 0x03, 0x96, 0x00, 0xFF,
25386+0x7F, 0x9A, 0x19, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25387+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25388+0x00, 0x00, 0x00, 0x10, 0x00, 0x8F, 0x02, 0x00, 0x04, 0x10, 0x00, 0x66, 0x06, 0x00, 0x01, 0x66,
25389+0x06, 0x00, 0x40, 0x00, 0x20, 0xE0, 0x2E, 0x58, 0x1B, 0x00, 0x01, 0xCE, 0x2C, 0x00, 0x40, 0x84,
25390+0x2B, 0x9A, 0x19, 0x66, 0x26, 0x00, 0x01, 0x00, 0x30, 0x00, 0x24, 0x40, 0x01, 0xE6, 0x00, 0x65,
25391+0x66, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25392+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25393+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25394+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25395+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xA0, 0xFF, 0xBA,
25396+0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA, 0xFF, 0xF4, 0xFF, 0x00,
25397+0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
25398+};
25399+static LVM_CHAR LVVE_Rx_Preset_Buffer_Voice_Tool []={
25400+0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xB5, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00,
25401+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00,
25402+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x2A, 0x00,
25403+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06,
25404+0x05, 0x20, 0x4E, 0x00, 0x40, 0x00, 0x01, 0x00, 0x20, 0x00, 0x02, 0x17, 0x2F, 0x5C, 0x7F, 0xB9,
25405+0x7E, 0x82, 0x5A, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
25406+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25407+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25408+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25409+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
25410+0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA,
25411+0xFF, 0xF4, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25412+0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x40, 0x80, 0x00, 0xFD,
25413+0x1F, 0xB0, 0x63, 0xAD, 0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xB0,
25414+0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xB0, 0xFF, 0xCE, 0xFF, 0xE8,
25415+0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00,
25416+0xB5, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25417+0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25418+0x00, 0x00, 0x00, 0x00, 0xE0, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00,
25419+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x05, 0x20, 0x4E, 0x00, 0x40, 0x00, 0x01, 0x00, 0x20,
25420+0x00, 0x02, 0x17, 0x2F, 0x5C, 0x7F, 0xB9, 0x7E, 0x82, 0x5A, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
25421+0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25422+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25423+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25424+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25425+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF,
25426+0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA, 0xFF, 0xF4, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00,
25427+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00,
25428+0x07, 0x00, 0x00, 0x40, 0x80, 0x00, 0xFD, 0x1F, 0xB0, 0x63, 0xAD, 0x7F, 0x9D, 0x5A, 0x00, 0x24,
25429+0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xB0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00,
25430+0xA0, 0xFF, 0xB0, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x03, 0x00,
25431+0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xB5, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
25432+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25433+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x2A, 0x00, 0x00, 0x00,
25434+0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x05, 0x20,
25435+0x4E, 0x00, 0x40, 0x00, 0x01, 0x00, 0x20, 0x00, 0x02, 0x17, 0x2F, 0x5C, 0x7F, 0xB9, 0x7E, 0x82,
25436+0x5A, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
25437+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25438+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25439+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25440+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xA0,
25441+0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA, 0xFF, 0xF4,
25442+0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25443+0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x40, 0x80, 0x00, 0xFD, 0x1F, 0xB0,
25444+0x63, 0xAD, 0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xB0, 0xFF, 0xBA,
25445+0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xB0, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00,
25446+0x00, 0x32, 0x00, 0x32, 0x00, 0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xB5, 0x02,
25447+0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x06,
25448+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25449+0x00, 0x00, 0xE0, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00,
25450+0x00, 0x00, 0x00, 0x00, 0x06, 0x05, 0x20, 0x4E, 0x00, 0x40, 0x00, 0x01, 0x00, 0x20, 0x00, 0x02,
25451+0x17, 0x2F, 0x5C, 0x7F, 0xB9, 0x7E, 0x82, 0x5A, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00,
25452+0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25453+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25454+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25455+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25456+0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00,
25457+0xA0, 0xFF, 0xBA, 0xFF, 0xDA, 0xFF, 0xF4, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00,
25458+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00,
25459+0x00, 0x40, 0x80, 0x00, 0xFD, 0x1F, 0xB0, 0x63, 0xAD, 0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00,
25460+0x00, 0x00, 0x05, 0x00, 0xB0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF,
25461+0xB0, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x03, 0x00, 0x09, 0x18,
25462+0x03, 0xD5, 0x07, 0x00, 0x00, 0xB5, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25463+0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25464+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00,
25465+0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x05, 0x20, 0x4E, 0x00,
25466+0x40, 0x00, 0x01, 0x00, 0x20, 0x00, 0x02, 0x17, 0x2F, 0x5C, 0x7F, 0xB9, 0x7E, 0x82, 0x5A, 0x00,
25467+0x04, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25468+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25469+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25470+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25471+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xA0, 0xFF, 0xBA,
25472+0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA, 0xFF, 0xF4, 0xFF, 0x00,
25473+0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32,
25474+0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x40, 0x80, 0x00, 0xFD, 0x1F, 0xB0, 0x63, 0xAD,
25475+0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xB0, 0xFF, 0xBA, 0xFF, 0xCE,
25476+0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xB0, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0x32,
25477+0x00, 0x32, 0x00, 0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xB5, 0x02, 0x00, 0x00,
25478+0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x06, 0x00, 0x00,
25479+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25480+0xE0, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00,
25481+0x00, 0x00, 0x06, 0x05, 0x20, 0x4E, 0x00, 0x40, 0x00, 0x01, 0x00, 0x20, 0x00, 0x02, 0x17, 0x2F,
25482+0x5C, 0x7F, 0xB9, 0x7E, 0x82, 0x5A, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10,
25483+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25484+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25485+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25486+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25487+0x00, 0x00, 0x05, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF,
25488+0xBA, 0xFF, 0xDA, 0xFF, 0xF4, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00,
25489+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x40,
25490+0x80, 0x00, 0xFD, 0x1F, 0xB0, 0x63, 0xAD, 0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00,
25491+0x05, 0x00, 0xB0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xB0, 0xFF,
25492+0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00
25493+};
25494+const static LVM_CHAR LVVE_Tx_Mute_File_Buffer[] ={
25495+0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xB5, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00,
25496+0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01,
25497+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
25498+0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x11, 0x00, 0x00, 0x00,
25499+0x20, 0x00, 0x08, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x80, 0x00, 0x40, 0x00, 0x00, 0x20, 0x80,
25500+0x00, 0x01, 0x00, 0xFF, 0x02, 0x33, 0x63, 0x33, 0x73, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00,
25501+0x00, 0x33, 0x63, 0x33, 0x73, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0xC0, 0x5D, 0x18,
25502+0x01, 0x00, 0x02, 0x00, 0x03, 0x79, 0x28, 0x00, 0x40, 0x96, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00,
25503+0x00, 0x20, 0x4E, 0x10, 0x00, 0x40, 0x00, 0x40, 0x00, 0xA0, 0x41, 0x88, 0x13, 0x00, 0x00, 0x00,
25504+0x00, 0xF7, 0x49, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x08, 0x20, 0x00, 0x00,
25505+0x20, 0xE8, 0x03, 0x18, 0x00, 0x00, 0x20, 0xE8, 0x03, 0x00, 0x00, 0x08, 0x03, 0x20, 0x00, 0x00,
25506+0x20, 0xE8, 0x03, 0x18, 0x00, 0x00, 0x20, 0xE8, 0x03, 0x00, 0x00, 0x08, 0x03, 0x96, 0x00, 0xFF,
25507+0x7F, 0x9A, 0x19, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25508+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25509+0x00, 0x00, 0x00, 0x10, 0x00, 0x8F, 0x02, 0x00, 0x04, 0x10, 0x00, 0x66, 0x06, 0x00, 0x01, 0x66,
25510+0x06, 0x00, 0x40, 0x00, 0x20, 0xE0, 0x2E, 0x58, 0x1B, 0x00, 0x01, 0xCE, 0x2C, 0x00, 0x40, 0x84,
25511+0x2B, 0x9A, 0x19, 0x66, 0x26, 0x00, 0x01, 0x00, 0x30, 0x00, 0x24, 0x40, 0x01, 0xE6, 0x00, 0x65,
25512+0x66, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25513+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25514+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25515+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25516+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xA0, 0xFF, 0xBA,
25517+0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA, 0xFF, 0xF4, 0xFF, 0x00,
25518+0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
25519+};
25520+const static LVM_CHAR LVVE_Tx_Wb_Mute_File_Buffer[] ={
25521+0x03, 0x00, 0x09, 0x18, 0x03, 0xD5, 0x07, 0x00, 0x00, 0xBD, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00,
25522+0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01,
25523+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
25524+0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x11, 0x00, 0x00, 0x00,
25525+0x20, 0x00, 0x08, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x80, 0x00, 0x40, 0x00, 0x00, 0x20, 0x80,
25526+0x00, 0x01, 0x00, 0xFF, 0x02, 0x33, 0x63, 0x33, 0x73, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00,
25527+0x00, 0x33, 0x63, 0x33, 0x73, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0xC0, 0x5D, 0x18,
25528+0x01, 0x00, 0x02, 0x00, 0x03, 0x79, 0x28, 0x00, 0x40, 0x96, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00,
25529+0x00, 0x20, 0x4E, 0x10, 0x00, 0x40, 0x00, 0x40, 0x00, 0xA0, 0x41, 0x88, 0x13, 0x00, 0x00, 0x00,
25530+0x00, 0xF7, 0x49, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x08, 0x20, 0x00, 0x00,
25531+0x20, 0xE8, 0x03, 0x18, 0x00, 0x00, 0x20, 0xE8, 0x03, 0x00, 0x00, 0x08, 0x03, 0x20, 0x00, 0x00,
25532+0x20, 0xE8, 0x03, 0x18, 0x00, 0x00, 0x20, 0xE8, 0x03, 0x00, 0x00, 0x08, 0x03, 0x96, 0x00, 0xFF,
25533+0x7F, 0x9A, 0x19, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25534+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25535+0x00, 0x00, 0x00, 0x10, 0x00, 0x8F, 0x02, 0x00, 0x04, 0x10, 0x00, 0x66, 0x06, 0x00, 0x01, 0x66,
25536+0x06, 0x00, 0x40, 0x00, 0x20, 0xE0, 0x2E, 0x58, 0x1B, 0x00, 0x01, 0xCE, 0x2C, 0x00, 0x40, 0x84,
25537+0x2B, 0x9A, 0x19, 0x66, 0x26, 0x00, 0x01, 0x00, 0x30, 0x00, 0x24, 0x40, 0x01, 0xE6, 0x00, 0x65,
25538+0x66, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x40, 0x80, 0x00, 0xFD, 0x1F, 0xB0, 0x63, 0xAD,
25539+0x7F, 0x9D, 0x5A, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
25540+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25541+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25542+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25543+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25544+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25545+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25546+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25547+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
25548+0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xCE, 0xFF, 0xE8, 0xFF, 0x00, 0x00, 0xA0, 0xFF, 0xBA, 0xFF, 0xDA,
25549+0xFF, 0xF4, 0xFF, 0x00, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
25550+};
25551diff --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
25552new file mode 100755
25553index 0000000..449febf
25554--- /dev/null
25555+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/uclinux/audio_process.a
25556Binary files differ
25557diff --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
25558new file mode 100755
25559index 0000000..ce95a87
25560--- /dev/null
25561+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/nxp/uclinux/nxp_DrvNvData.h
25562@@ -0,0 +1,10 @@
25563+//6 level volume
25564+//#define LVWM_TX_FILE_SIZE 463 //×Ö½ÚÊý
25565+//#define LVWM_RX_FILE_SIZE 1866
25566+//uc actual size
25567+//#define LVWM_TX_FILE_SIZE 379 //×Ö½ÚÊý
25568+//#define LVWM_RX_FILE_SIZE 1482
25569+
25570+
25571+
25572+//const static LVM_CHAR LVVE_Param_Test[] ={};
25573diff --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
25574index 322aea4..50e28da 100755
25575--- a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/tdm/hal_tdm.c
25576+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/tdm/hal_tdm.c
25577@@ -54,6 +54,7 @@
25578 #define TDM_DRIVER_VERSION 1
25579
25580 //#define ARM_TDM_LOOP_SET *((volatile unsigned int *)(ZX_SOC_SYS_BASE + 0x60))
25581+#define ARM_TDM_LOOP_CFG *((volatile UINT32 *)(SOC_SYS_REG_BASE+0x60))
25582
25583 /* version register */
25584 #define TDM_VERSION 0x0104 /*TDM Version V1.4*/
25585@@ -2415,7 +2416,12 @@
25586 memset(temp, 0, sizeof(temp));
25587 tdmDmaState[TDM_RX].channel = DMA_CH_TDM_RX0;
25588 tdmDmaState[TDM_RX].ch = dma_request_channel(mask, zx29_dma_filter_fn, (void*)(tdmDmaState[TDM_RX].channel));
25589-
25590+ if(!tdmDmaState[TDM_RX].ch){
25591+
25592+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO,"%s: dma_request_channel fail, dma_id(%d).\n",__func__,tdmDmaState[TDM_RX].channel);
25593+ return DRV_ERR_BUSY;
25594+
25595+ }
25596 for (i = 0; i < TDM_OUT_BUF_NUM; i++) {
25597 temp[i].dest_addr = tdmDmaState[TDM_RX].dma_phyaddr + (tdmStream->rxLen) * i;
25598 temp[i].src_addr = ZX29_TDM_PHYS + 0x24;
25599@@ -2484,6 +2490,12 @@
25600 memset(temp, 0, sizeof(temp));
25601 tdmDmaState[TDM_TX].channel = DMA_CH_TDM_TX0;
25602 tdmDmaState[TDM_TX].ch = dma_request_channel(mask, zx29_dma_filter_fn, (void*)(tdmDmaState[TDM_TX].channel));
25603+ if(!tdmDmaState[TDM_TX].ch){
25604+
25605+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO,"%s: dma_request_channel fail, dma_id(%d).\n",__func__,tdmDmaState[TDM_TX].channel);
25606+ return DRV_ERR_BUSY;
25607+
25608+ }
25609
25610 for (i = 0; i < TDM_OUT_BUF_NUM; i++) {
25611 temp[i].src_addr = tdmDmaState[TDM_TX].dma_phyaddr + (txStream->txLen) * i;
25612@@ -2840,6 +2852,7 @@
25613 SINT32 ret = DRV_SUCCESS;
25614
25615 ret = tdm_Reset();
25616+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvTDM_Reset , ret=%d",ret);
25617
25618 return ret;
25619 }
25620@@ -3751,6 +3764,21 @@
25621
25622 VOID vp_SetTopTdmConfig(VOID)
25623 {
25624+ UINT32 AmrRegBit = 0;
25625+
25626+ /* inter loop */
25627+ AmrRegBit = ARM_TDM_LOOP_CFG;
25628+
25629+ AmrRegBit &= 0xfffffe07;
25630+ AmrRegBit |= 0x000000a8; /* 0x000000a8 loop dsp afe(loop i2s1)--arm i2s2(loop i2s2) 0x00000150 loop dsp arm(loop i2s1)--afe i2s2(loop i2s2)*/
25631+
25632+ ARM_TDM_LOOP_CFG = AmrRegBit;
25633+
25634+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_SetTopTDMConfig ARM_TDM_LOOP_CFG=0x%x\n", ARM_TDM_LOOP_CFG);
25635+
25636+
25637+
25638+
25639 #if 0
25640 UINT32 AmrRegBit = 0;
25641 int ret = 0;
25642diff --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
25643new file mode 100755
25644index 0000000..8d0e5f7
25645--- /dev/null
25646+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/voiceprocess/hal_voicebuffer.c
25647@@ -0,0 +1,1065 @@
25648+/*******************************************************************************
25649+ * Copyright (C) 2007, ZTE Corporation.
25650+ *
25651+ * File Name:hal_voicebuffer.c
25652+ * File Mark:
25653+ * Description: voice buffer function.
25654+ * Others:
25655+ * Version:
25656+ * Author: xxq
25657+ * Date: 2024-07-03
25658+ * History 1:
25659+ * Date:
25660+ * Version:
25661+ * Author:
25662+ * Modification: edit for union version
25663+ * History 2:
25664+ ********************************************************************************/
25665+
25666+/****************************************************************************
25667+* Include files
25668+****************************************************************************/
25669+#include "drvs_general.h"
25670+#include "drvs_volte.h"
25671+#include "drvs_i2s.h"
25672+#include "drvs_voiceprocess.h"
25673+#include "hal_voiceprocess.h"
25674+#include "drvs_voice_config.h"
25675+//#include "hal_pcmmixer.h"
25676+#include "NvParam_drv.h"
25677+#include "drvs_io_voice.h"
25678+#include "hal_ringdata.h"
25679+#include "drvs_tdm.h"
25680+#include "hal_dtmf_detect.h"
25681+#include "hal_audio_data.h"
25682+//#define TEST_WHITE_NOISE
25683+
25684+//#define VB_DATA_LOSS_TEST
25685+#ifdef TEST_WHITE_NOISE
25686+#include "Fs8000_WhiteNoise_Mon.h"
25687+//#include "Fs8000_Sine_440Hz_Mon.h"
25688+#endif
25689+
25690+#include "drvs_icp.h"
25691+#include "drvs_rpmsg.h"
25692+//#include <linux/completion.h>
25693+#include "hal_voicebuffer.h"
25694+
25695+/****************************************************************************
25696+* Local Macros
25697+****************************************************************************/
25698+//#define USE_AUDIO_RING
25699+//#define VP_GET_TX_ALL_DATA
25700+
25701+
25702+/****************************************************************************
25703+* Local Types
25704+****************************************************************************/
25705+
25706+
25707+/****************************************************************************
25708+* Local Constants
25709+****************************************************************************/
25710+static SINT32 vp_Get_Add_RpMsg_Vbuffer(VOID);
25711+
25712+/****************************************************************************
25713+* Local Function Prototypes
25714+****************************************************************************/
25715+
25716+/****************************************************************************
25717+* Global Constants
25718+****************************************************************************/
25719+
25720+
25721+/****************************************************************************
25722+* Global Variables
25723+****************************************************************************/
25724+//static T_zDrvVp_SpeechState *s_pSpeechState = NULL;
25725+extern T_zDrvVp_SpeechState s_speechState; //104 bytes
25726+extern T_zDrvVoice_GbVar g_voiceVar;
25727+extern T_zDrvVp_State s_vpState;
25728+
25729+
25730+#ifdef ECALL_SUPPORT
25731+extern int eWrErr;
25732+extern UINT8 e_reg_flag;
25733+
25734+#endif
25735+
25736+//for test whiteNoise
25737+#ifdef TEST_WHITE_NOISE
25738+extern UINT32 tempCount;
25739+extern UINT8 *pVoiceTempBuf;
25740+#endif
25741+
25742+
25743+extern T_ZDrv_VpInOutBuffer vpInOutBuffer;
25744+
25745+extern T_HalMixerToneInfo mixerToneInfo;
25746+
25747+static int vbuffer_init_flag = 0;
25748+
25749+/****************************************************************************
25750+* Global Function Prototypes
25751+****************************************************************************/
25752+//aduvoice config code
25753+
25754+
25755+
25756+
25757+
25758+
25759+extern SINT32 voice_ToneMixerData(UINT8 *pvdata, UINT32 size, UINT8 *pmixdata);//xiu gai chu sheng ming
25760+extern SINT32 zDrvI2S_Read_Start(T_ZDrvI2S_Id tId, T_ZDrvI2s_Params *params, T_ZDrvI2S_Cfg *ptCfg);//xiu gai chu sheng ming
25761+extern SINT32 zDrvI2S_Write_Start(T_ZDrvI2S_Id tId, T_ZDrvI2s_Params *params, T_ZDrvI2S_Cfg *ptCfg);//xiu gai chu sheng ming
25762+
25763+
25764+
25765+/****************************************************************************
25766+* Function Definitions
25767+****************************************************************************/
25768+ZOSS_TIMER_ID s_voiceTimerId ;
25769+ZOSS_SEMAPHORE_ID s_voiceRdSema;
25770+ZOSS_SEMAPHORE_ID s_voiceWrSema;
25771+
25772+//#ifdef CONFIG_VOICE_BUFFER_DRV
25773+//#ifdef _VBUFF_IN_MULTI_CORE
25774+//voice buffer use in multi core
25775+//#define RPMSG_CAP_ID 1
25776+
25777+
25778+
25779+int timer_cb_count = 0;
25780+int first_full_flag = 0;
25781+int first_empty_flag = 0;
25782+
25783+int vb_read_count = 0;
25784+int vb_write_count = 0;
25785+
25786+
25787+
25788+struct voice_ring_buffer *voice_buff[2] = {NULL,NULL};
25789+
25790+
25791+
25792+static bool voice_buff_is_full(int read_pos, int write_pos)
25793+{
25794+
25795+
25796+ if ((write_pos - read_pos) >= 20000000) {
25797+ write_pos = write_pos - 20000000;
25798+ //voice_buff[UP_LINK]->write_pos = write_pos;
25799+ voice_buff[DOWN_LINK]->write_pos = write_pos;
25800+ }
25801+ return ((write_pos - read_pos) == MAX_BUF_NUM);
25802+}
25803+static bool voice_buff_is_empty(int read_pos, int write_pos)
25804+{
25805+
25806+ return (write_pos == read_pos);
25807+}
25808+static int voice_buffer_write( char *buf, int count)
25809+{
25810+ int read_pos, write_pos;
25811+
25812+
25813+ read_pos = voice_buff[DOWN_LINK]->read_pos;
25814+ write_pos = voice_buff[DOWN_LINK]->write_pos;
25815+ if(vb_write_count == 0){
25816+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO,"%s: first read_pos=%d write_pos=%d \n",__FUNCTION__,read_pos,write_pos);
25817+ }
25818+
25819+
25820+ if(voice_buff_is_full(read_pos, write_pos)){
25821+ //zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "voice_buffer_read readbuffer is full \n");
25822+ first_full_flag++;
25823+ VB_INT_OVERFLOW(first_full_flag);
25824+ if(first_full_flag == 1)
25825+ 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);
25826+ return DRV_ERROR_FULL;
25827+ }
25828+ else {
25829+ vb_write_count++;
25830+
25831+ VB_INT_OVERFLOW(vb_write_count);
25832+ first_full_flag = 0;
25833+ zOss_Memcpy(&(voice_buff[DOWN_LINK]->data[(write_pos%MAX_BUF_NUM)*MAX_BUF_SIZE]), buf, count);
25834+
25835+ write_pos++;
25836+
25837+ voice_buff[DOWN_LINK]->write_pos = write_pos;
25838+
25839+ }
25840+
25841+ return DRV_SUCCESS;
25842+}
25843+static int voice_buffer_read(char *buf, size_t count)
25844+{
25845+ int read_pos, write_pos;
25846+ int* buf_int;
25847+ int i;
25848+
25849+ read_pos = voice_buff[UP_LINK]->read_pos;
25850+ write_pos = voice_buff[UP_LINK]->write_pos;
25851+ if(vb_read_count == 0){
25852+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO,"%s: first read_pos=%d write_pos=%d \n",__FUNCTION__,read_pos,write_pos);
25853+ }
25854+
25855+ if ((count > 0) && (count <= MAX_BUF_SIZE)) {
25856+ if(voice_buff_is_empty(read_pos, write_pos)){
25857+ first_empty_flag++;
25858+ VB_INT_OVERFLOW(first_empty_flag);
25859+ if(first_empty_flag ==1)
25860+ 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);
25861+ //add memset,del return . edit for far end hear near end repreat voice pcm, FROM MBB TEST
25862+
25863+ #ifndef VB_DATA_LOSS_TEST
25864+ zOss_Memset(&(voice_buff[UP_LINK]->data[(read_pos%MAX_BUF_NUM)*MAX_BUF_SIZE]),0, count);
25865+ zOss_Memset(buf,0, count);
25866+ #endif
25867+ //return DRV_ERROR_EMPTY;
25868+
25869+
25870+ }
25871+ else {
25872+
25873+ vb_read_count++;
25874+ VB_INT_OVERFLOW(vb_read_count);
25875+ first_empty_flag = 0;
25876+
25877+ zOss_Memcpy(buf, &(voice_buff[UP_LINK]->data[(read_pos%MAX_BUF_NUM)*MAX_BUF_SIZE]), count);
25878+ //zOss_Memset(&(voice_buff[UP_LINK]->data[(read_pos%MAX_BUF_NUM)*MAX_BUF_SIZE]),0, count);
25879+
25880+#ifdef VB_DATA_LOSS_TEST
25881+
25882+
25883+ if(vb_read_count < 5){
25884+ pr_info("ps :count=%d vb_read_count=%d,read_pos=%d,write_pos=%d\n",count,vb_read_count,read_pos,write_pos);
25885+
25886+
25887+ buf_int =( int*) &voice_buff[UP_LINK]->data[(write_pos%MAX_BUF_NUM)*MAX_BUF_SIZE];
25888+
25889+ for(i=0;i<(count/4);i++){
25890+ //*(buf_int+i) = i;
25891+ //buf_int[i] = i;
25892+ if(i>0x1f)
25893+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO,"ps: *(buf_int+%d)=%d\n",i,*(buf_int+i));
25894+ }
25895+
25896+ }
25897+#endif
25898+ read_pos++;
25899+ if(read_pos == 20000000)
25900+ read_pos = 0;
25901+ voice_buff[UP_LINK]->read_pos = read_pos;
25902+ }
25903+
25904+
25905+ }
25906+
25907+
25908+ return DRV_SUCCESS;
25909+}
25910+
25911+
25912+//voice buffer use in single core
25913+extern int voicebuffer_ulqueue_read(void *buf, unsigned int size);
25914+extern int voicebuffer_dlqueue_write(void *buf, unsigned int size);
25915+extern void voice_inform_to_app(void);
25916+//static DECLARE_COMPLETION(s_voice_completion);
25917+//ZOSS_TIMER_ID s_voiceTimerId ;
25918+//ZOSS_SEMAPHORE_ID s_voiceRdSema;
25919+//ZOSS_SEMAPHORE_ID s_voiceWrSema;
25920+static void voiceTimerCallBack(SINT32 para)
25921+{
25922+
25923+
25924+ if (g_voiceVar.voiceBufferType == 1)//multi core
25925+ {
25926+
25927+
25928+ T_ZDrvRpMsg_Msg icp_pMsg = {0};
25929+
25930+ UINT8 s = 1;
25931+ icp_pMsg.actorID = RPMSG_CAP_ID;
25932+
25933+ icp_pMsg.chID = channel_41;
25934+ icp_pMsg.flag |= RPMSG_WRITE_INT;
25935+ icp_pMsg.buf = (void *)&s;
25936+ icp_pMsg.len = 1;
25937+
25938+
25939+ zOss_PutSemaphore(s_voiceWrSema);
25940+ zOss_PutSemaphore(s_voiceRdSema);
25941+ //zDrvRpMsg_Write(&icp_pMsg);
25942+#ifdef _USE_VEHICLE_DC
25943+ zDrvRpMsg_Write_Cap(&icp_pMsg);
25944+#endif
25945+ timer_cb_count++;
25946+ VB_INT_OVERFLOW(timer_cb_count);
25947+#ifdef VB_DATA_LOSS_TEST
25948+
25949+ if((timer_cb_count%1000 ) == 0){
25950+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s:timer_cb_count(%d)\n",__FUNCTION__,timer_cb_count);
25951+ if(timer_cb_count> 10000000)
25952+ timer_cb_count=0;
25953+ }
25954+
25955+#endif
25956+
25957+
25958+ }
25959+ else{
25960+
25961+
25962+
25963+ // complete_all(&s_voice_completion);
25964+ zOss_PutSemaphore(s_voiceWrSema);
25965+ zOss_PutSemaphore(s_voiceRdSema);
25966+ voice_inform_to_app();
25967+ // zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "voiceTimerCallBack timer=%u\n", cpu_clock(0)>>10);
25968+ }
25969+
25970+
25971+}
25972+
25973+
25974+
25975+
25976+
25977+static SINT32 vp_rxsem_count_Init(void)
25978+{
25979+ UINT32 i = 0;
25980+ UINT32 semCount = 0;
25981+ SINT32 Count = 0;
25982+
25983+ semCount = zOss_GetSemaphoreCount(s_voiceRdSema);
25984+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_rxsem_count_Init rxSem count=%d\n", semCount);
25985+
25986+ Count = semCount;
25987+ if(Count > 0) {
25988+ for(i = 0; i < Count; i++) {
25989+ zOss_GetSemaphore(s_voiceRdSema, ZOSS_NO_WAIT);
25990+ }
25991+ }
25992+
25993+ return DRV_SUCCESS;
25994+}
25995+
25996+static SINT32 vp_txsem_count_Init(void)
25997+{
25998+ UINT32 i = 0;
25999+ UINT32 semCount = 0;
26000+ SINT32 Count = 0;
26001+
26002+ semCount = zOss_GetSemaphoreCount(s_voiceWrSema);
26003+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_txsem_count_Init txSem count=%d \n", semCount);
26004+
26005+ Count = 3 - semCount;
26006+ if(Count > 0) {
26007+ for(i = 0; i < Count; i++) {
26008+ zOss_PutSemaphore(s_voiceWrSema);
26009+ }
26010+ } else if(Count < 0) {
26011+ Count = 0 - Count;
26012+ for(i = 0; i < Count; i++) {
26013+ zOss_GetSemaphore(s_voiceWrSema, ZOSS_NO_WAIT);
26014+ }
26015+ }
26016+
26017+ return DRV_SUCCESS;
26018+}
26019+
26020+
26021+
26022+
26023+
26024+SINT32 vp_Open_Vbuffer(void)
26025+{
26026+ SINT32 ret = DRV_SUCCESS;
26027+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: start \n", __func__);
26028+ if (g_voiceVar.voiceBufferType == 1)//multi core
26029+ {
26030+ vp_Get_Add_RpMsg_Vbuffer();
26031+
26032+ vp_rxsem_count_Init();
26033+ vp_txsem_count_Init();
26034+ voice_buff[UP_LINK]->read_pos = 0;
26035+ voice_buff[UP_LINK]->write_pos = 0;
26036+ voice_buff[DOWN_LINK]->read_pos = 0;
26037+ voice_buff[DOWN_LINK]->write_pos = 0;
26038+ zOss_Memset(&(voice_buff[DOWN_LINK]->data[0]),0, MAX_BUF_NUM*MAX_BUF_SIZE);
26039+ zOss_Memset(&(voice_buff[UP_LINK]->data[0]),0, MAX_BUF_NUM*MAX_BUF_SIZE);
26040+ //for debug
26041+ timer_cb_count = 0;
26042+ first_full_flag = 0;
26043+ first_empty_flag = 0;
26044+
26045+ vb_read_count = 0;
26046+ vb_write_count = 0;
26047+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_Open_Vbuffer init voice buffer val!\n");
26048+
26049+
26050+ }else{
26051+
26052+ // INIT_COMPLETION(s_voice_copletion);
26053+ vp_rxsem_count_Init();
26054+ vp_txsem_count_Init();
26055+ }
26056+
26057+ return DRV_SUCCESS;
26058+
26059+}
26060+
26061+
26062+SINT32 vp_Close_Vbuffer(void)
26063+{
26064+ SINT32 ret = DRV_SUCCESS;
26065+
26066+ if (g_voiceVar.voiceBufferType == 1)//multi core
26067+ {
26068+ 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);
26069+ }
26070+
26071+ return DRV_SUCCESS;
26072+}
26073+
26074+SINT32 vp_VoiceI2sStart_Vbuffer(VOID)
26075+{
26076+ SINT32 ret = DRV_SUCCESS;
26077+
26078+ UINT8 *read_buf = NULL;
26079+ UINT8 *write_buf = NULL;
26080+ UINT32 read_len = 0;
26081+ UINT32 write_len = 0;
26082+
26083+
26084+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: start.\n",__func__);
26085+
26086+
26087+ ret = zDrvI2S_Read_Start(I2S_2, &s_speechState.i2sReadParam, s_vpState.pVpInnerI2sCfg);
26088+ if (ret != DRV_SUCCESS)
26089+ {
26090+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart_Vbuffer failed ret is %d .\n", ret);
26091+ return DRV_ERROR;
26092+ }
26093+
26094+ zOss_StartTimer(s_voiceTimerId, 20, voiceTimerCallBack, 0);
26095+
26096+
26097+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart_Vbuffer VB zOss_StartTimer\n");
26098+
26099+ ret = zDrvI2S_Write_Start(I2S_2, &s_speechState.i2sWriteParam, s_vpState.pVpInnerI2sCfg);
26100+
26101+ ret += zDrvI2S_GetBuf(I2S_2, &write_buf, &write_len);
26102+ if (ret != DRV_SUCCESS)
26103+ {
26104+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart_Vbuffer error7:zDrvI2S_GetBuf I2S_2 ret=%d", ret);
26105+ return DRV_ERROR;
26106+ }
26107+ zOss_Memset(write_buf, 0, write_len);
26108+ ret = zDrvI2S_Write(I2S_2, write_buf, write_len);
26109+ if (ret != DRV_SUCCESS)
26110+ {
26111+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart_Vbuffer error12:zDrvI2S_Write I2S_2 ret=%d", ret);
26112+ }
26113+
26114+ ret += zDrvI2S_GetBuf(I2S_2, &write_buf, &write_len);
26115+ if (ret != DRV_SUCCESS)
26116+ {
26117+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart_Vbuffer error13:zDrvI2S_GetBuf I2S_2 ret=%d", ret);
26118+ return DRV_ERROR;
26119+ }
26120+ zOss_Memset(write_buf, 0, write_len);
26121+ ret = zDrvI2S_Write(I2S_2, write_buf, write_len);
26122+ if (ret != DRV_SUCCESS)
26123+ {
26124+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart_Vbuffer error14:zDrvI2S_Write I2S_2 ret=%d", ret);
26125+ }
26126+
26127+ if (g_voiceVar.voiceBufferType == 1)//multi core
26128+ {
26129+
26130+ voice_buffer_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
26131+
26132+ }else{
26133+ voicebuffer_dlqueue_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
26134+ }
26135+
26136+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: end.\n",__func__);
26137+ return ret;
26138+}
26139+VOID vp_VoiceI2sStop_Vbuffer(VOID)
26140+{
26141+ SINT32 ret = DRV_SUCCESS;
26142+ return ret;
26143+}
26144+
26145+
26146+
26147+SINT32 zDrvVp_VoiceWorkStop_Vbuffer(VOID)
26148+{
26149+ SINT32 ret = DRV_SUCCESS;
26150+
26151+ //complete_all(&s_voice_completion);
26152+ zOss_PutSemaphore(s_voiceRdSema);
26153+ zOss_PutSemaphore(s_voiceWrSema);
26154+ zOss_StopTimer(s_voiceTimerId);
26155+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: zOss_StopTimer\n",__func__);
26156+
26157+
26158+
26159+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: success",__func__);
26160+ return DRV_SUCCESS;
26161+}
26162+
26163+
26164+SINT32 vp_VolteReadStart_Vbuffer(VOID)
26165+{
26166+ SINT32 ret = DRV_SUCCESS;
26167+
26168+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteReadStart_Vbuffer start\n");
26169+
26170+ zOss_StartTimer(s_voiceTimerId, 20, voiceTimerCallBack, 0);
26171+
26172+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteReadStart_Vbuffer zOss_StartTimer start\n");
26173+
26174+ return DRV_SUCCESS;
26175+}
26176+//whole replace
26177+SINT32 vp_VolteReadStop_Vbuffer(VOID)
26178+{
26179+ SINT32 ret = DRV_SUCCESS;
26180+
26181+ if (g_voiceVar.useVoiceBuffer == 1)
26182+ {
26183+ zOss_PutSemaphore(s_voiceRdSema);
26184+
26185+ }
26186+ else
26187+ {
26188+
26189+#ifdef CONFIG_VOICE_BUFFER_DRV
26190+ zOss_PutSemaphore(s_voiceRdSema);
26191+#else
26192+
26193+ //zDrvI2s_RxRlsSemaBeforeStop(I2S_1);
26194+ zDrvExtAudio_RxRlsSemaBeforeStop();
26195+
26196+#if 0//move to close lvwenhua 20150910
26197+ ret = zDrvExtAudio_Read_Stop();
26198+ if (ret != DRV_SUCCESS)
26199+ {
26200+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvVolte_ReadStop I2S1 Stop wrong ret=%d", ret);
26201+ }
26202+#endif
26203+#endif
26204+
26205+ }
26206+
26207+ if (s_speechState.volteVpCfgEnFlag == 1)
26208+ {
26209+ ret = halVpCfg_Disable();
26210+ if (ret != DRV_SUCCESS)
26211+ {
26212+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: halVpCfg_Enable err ret=%x !\n",__func__, ret);
26213+ }
26214+ else
26215+ {
26216+ s_speechState.volteVpCfgEnFlag = 0;
26217+ }
26218+ }
26219+
26220+ s_speechState.volteVpReadStopFlag = 1;//together control vp s_speechState
26221+ if ((s_speechState.volteVpWriteStopFlag == 1) && (s_speechState.volteVpReadStopFlag == 1))
26222+ {
26223+ g_voiceVar.vpI2sStatus = VP_I2S_OPEN;
26224+
26225+ if (g_voiceVar.useVoiceBuffer == 1)
26226+ {
26227+ zOss_StopTimer(s_voiceTimerId);
26228+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: zOss_StopTimer\n",__func__);
26229+
26230+ }
26231+ else
26232+ {
26233+#ifdef CONFIG_VOICE_BUFFER_DRV
26234+ zOss_StopTimer(s_voiceTimerId);
26235+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteReadStop_Vbuffer zOss_StopTimer\n");
26236+#endif
26237+ }
26238+ }
26239+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: end\n",__func__);
26240+ return ret;
26241+}
26242+
26243+SINT32 vp_VolteWriteStart_Vbuffer(VOID)
26244+{
26245+ SINT32 ret = DRV_SUCCESS;
26246+
26247+ //???? for check
26248+ if (g_voiceVar.voiceBufferType == 1)//multi core
26249+ {
26250+ voice_buffer_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
26251+ }
26252+ else
26253+ {
26254+ voicebuffer_dlqueue_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
26255+ }
26256+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s:end \n",__func__);
26257+
26258+ return ret;
26259+}
26260+//whole replace
26261+SINT32 vp_VolteWriteStop_Vbuffer(VOID)
26262+{
26263+ SINT32 ret = DRV_SUCCESS;
26264+ if (g_voiceVar.useVoiceBuffer == 1)
26265+ {
26266+ zOss_PutSemaphore(s_voiceWrSema);
26267+
26268+ }
26269+ else
26270+ {
26271+
26272+#ifdef CONFIG_VOICE_BUFFER_DRV
26273+ //complete_all(&s_voice_completion);
26274+ zOss_PutSemaphore(s_voiceWrSema);
26275+#else
26276+ //zDrvI2s_TxRlsSemaBeforeStop(I2S_1);
26277+ zDrvExtAudio_TxRlsSemaBeforeStop();
26278+#endif
26279+ }
26280+#if 0//move to close lvwenhua 20150910
26281+ //wait for write drain semaphore
26282+#ifdef VOICE_TONE_MIXER_FUNCTION
26283+ voice_ToneMixerStop();
26284+#endif
26285+
26286+ ret = zDrvExtAudio_Write_Stop();
26287+ if (ret != DRV_SUCCESS)
26288+ {
26289+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvVolte_WriteStop I2S1 Stop wrong ret=%d", ret);
26290+ }
26291+
26292+ //s_VolteWriteSema = 0;
26293+#endif
26294+
26295+ if (s_speechState.volteVpCfgEnFlag == 1)
26296+ {
26297+ ret = halVpCfg_Disable();
26298+ if (ret != DRV_SUCCESS)
26299+ {
26300+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStop_Vbuffer halVpCfg_Enable err ret=%x !\n", ret);
26301+ }
26302+ else
26303+ {
26304+ s_speechState.volteVpCfgEnFlag = 0;
26305+ }
26306+ }
26307+
26308+ s_speechState.volteVpWriteStopFlag = 1;//together control vp s_speechState
26309+ if ((s_speechState.volteVpWriteStopFlag == 1) && (s_speechState.volteVpReadStopFlag == 1))
26310+ {
26311+ g_voiceVar.vpI2sStatus = VP_I2S_OPEN;
26312+
26313+ if (g_voiceVar.useVoiceBuffer == 1)
26314+ {
26315+
26316+ zOss_StopTimer(s_voiceTimerId);
26317+
26318+ }
26319+ else
26320+ {
26321+
26322+#ifdef CONFIG_VOICE_BUFFER_DRV
26323+ zOss_StopTimer(s_voiceTimerId);
26324+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStop_Vbuffer zOss_StopTimer\n");
26325+#endif
26326+ }
26327+ }
26328+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStop_Vbuffer \n");
26329+ return ret;
26330+}
26331+
26332+
26333+/*******************************************************************************
26334+ * For union version
26335+ * Others:
26336+ ********************************************************************************/
26337+SINT32 vp_WriteDataToCodec_Vbuffer(UINT8 *pBuf, UINT32 count)
26338+{
26339+ SINT32 ret = DRV_SUCCESS;
26340+ SINT32 e_ret = DRV_SUCCESS;
26341+ UINT8 *write_buf = NULL;
26342+ UINT32 write_len = 0;
26343+ UINT8 *e_write_buf = NULL;
26344+ UINT32 e_write_len = 0;
26345+ UINT32 i = 0, j = 0;
26346+#ifdef TEST_WHITE_NOISE
26347+ // UINT32 tempCount = 0;
26348+ //zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "test the white noise");
26349+ //UINT8 *pVoiceTempBuf = s_voiceTempBuffer;
26350+#endif
26351+
26352+
26353+
26354+ if (pBuf == NULL)
26355+ {
26356+ return DRV_ERR_INVALID_PARAM;
26357+ }
26358+
26359+ if (count != s_speechState.i2sWriteParam.buffersize)
26360+ {
26361+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_WriteDataToCodec_Vbuffer write data length err,count=%d,writebuffersize=%d \n", count, s_speechState.i2sWriteParam.buffersize);
26362+ return DRV_ERR_INVALID_PARAM;
26363+ }
26364+ #ifdef ECALL_SUPPORT
26365+
26366+ if(e_reg_flag == 1)
26367+ {
26368+ e_ret = update_ecall_state(DIR_RX);
26369+ if (e_ret == DRV_ERR_NOT_SUPPORTED)
26370+ {
26371+ 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);
26372+
26373+ }
26374+ }
26375+ #endif
26376+
26377+
26378+
26379+ #ifdef TEST_WHITE_NOISE
26380+
26381+ zOss_Memcpy(s_speechState.pVpTempRxInBuffer, pVoiceTempBuf, s_speechState.totalFrameBufSize);
26382+
26383+ pVoiceTempBuf += s_speechState.totalFrameBufSize;
26384+ tempCount += s_speechState.totalFrameBufSize;
26385+ if (tempCount >= 0x4df80) //307200
26386+ //if(tempCount >= 0x4e200) //320000
26387+ {
26388+ pVoiceTempBuf = s_voiceTempBuffer;
26389+ tempCount = 0;
26390+ }
26391+ #endif
26392+
26393+ #ifdef VOICE_TONE_MIXER_FUNCTION
26394+
26395+ if (mixerToneInfo.StartMixer == TRUE)
26396+ {
26397+ //voice_ToneMixerData( s_speechState.pVpTempRxInBuffer);
26398+ if ((g_voiceVar.voiceInVolteMode == 1) && (g_voiceVar.volteIsWb == 1))
26399+ {
26400+ voice_ToneMixerData(s_speechState.pVpTempRxInBuffer, 640, s_speechState.pVpTempRxInBuffer);
26401+ }
26402+ else
26403+ {
26404+ voice_ToneMixerData(s_speechState.pVpTempRxInBuffer, 320, s_speechState.pVpTempRxInBuffer);
26405+ }
26406+
26407+ }
26408+
26409+ #endif
26410+ if (pBuf != s_speechState.pVpTempRxInBuffer)
26411+ {
26412+ zOss_Memcpy(s_speechState.pVpTempRxInBuffer, pBuf, s_speechState.totalFrameBufSize);
26413+ }
26414+
26415+ if (g_voiceVar.vProcIsNormal == TRUE)
26416+ {
26417+ VoiceProc_RxProcess(& s_speechState.pVpTempRxInBuffer, & s_speechState.pVpTempRxOutPutBuffer, s_speechState.frameCount);
26418+ }
26419+ else
26420+ {
26421+ zOss_Memcpy((VOID *)(s_speechState.pVpTempRxOutPutBuffer), (VOID *) s_speechState.pVpTempRxInBuffer, s_speechState.totalFrameBufSize);
26422+ }
26423+ //wait_for_completion_timeout(&s_voice_completion, 60);
26424+ zOss_GetSemaphore(s_voiceWrSema, 60);
26425+ //#ifdef _VBUFF_IN_MULTI_CORE
26426+ if (g_voiceVar.voiceBufferType == 1)
26427+ {
26428+ voice_buffer_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
26429+ }
26430+ else
26431+ {
26432+ voicebuffer_dlqueue_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
26433+ }
26434+ if (g_voiceVar.voiceInVolteMode == 1)
26435+ {
26436+ s_speechState.rxSaveLen += s_speechState.totalFrameBufSize;
26437+ if (s_speechState.rxSaveLen >= s_speechState.inOutBufUseSize)
26438+ {
26439+ s_speechState.rxSaveLen = 0;
26440+ }
26441+ s_speechState.pVpTempRxInBuffer = s_vpState.pVpRxInBuffer + s_speechState.rxSaveLen;
26442+ #ifdef _USE_VP_OUTPUT_RXOUT_DATA
26443+ s_speechState.pVpTempRxOutPutBuffer = s_vpState.pVpRxOutPutBuffer + s_speechState.rxSaveLen;
26444+ #else
26445+ s_speechState.pVpTempRxOutPutBuffer = s_vpState.pVpRxOutPutBuffer;
26446+ #endif
26447+ }
26448+
26449+
26450+ if (s_speechState.firstWriteDataFlag == FALSE)
26451+ {
26452+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_WriteDataToCodec_Vbuffer first write ret=%d,tick=%d.\n", ret, zOss_GetTickCount());
26453+ s_speechState.firstWriteDataFlag = TRUE;
26454+ }
26455+
26456+ return ret;
26457+}
26458+
26459+
26460+
26461+SINT32 vp_ReadDataFromCodec_Vbuffer(UINT8 *pBuf, UINT32 count)
26462+{
26463+ SINT32 ret = DRV_SUCCESS;
26464+ UINT8 *read_buf = NULL;
26465+ UINT32 read_len = 0;
26466+
26467+ UINT32 i = 0, j = 0;
26468+#ifdef CONFIG_ARCH_ZX297520V3_CPE_SWITCH
26469+ UINT8 temp8bit = 0;
26470+ UINT8 *ptemp8bit = NULL;
26471+#endif
26472+
26473+ if (pBuf == NULL)
26474+ {
26475+ return DRV_ERR_INVALID_PARAM;
26476+ }
26477+
26478+ if (count != s_speechState.i2sReadParam.buffersize)
26479+ {
26480+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: read data length err,count=%d,readbuffersize=%d \n",__func__, count, s_speechState.i2sReadParam.buffersize);
26481+ return DRV_ERR_INVALID_PARAM;
26482+ }
26483+#ifdef ECALL_SUPPORT
26484+
26485+ if(e_reg_flag == 1)
26486+ {
26487+ ret = update_ecall_state(DIR_TX);
26488+ if (ret == DRV_ERR_NOT_SUPPORTED)
26489+ {
26490+ zOss_Printf(SUBMDL_HAL, PRINT_LEVEL_NORMAL, "vp_ReadDataFromCodecvp_ReadDataFromCodec get__ecall_state fun not register,ret=%d !\n",ret);
26491+
26492+ }
26493+ }
26494+#endif
26495+
26496+
26497+// wait_for_completion_timeout(&s_voice_completion, 60);
26498+ zOss_GetSemaphore(s_voiceRdSema, 60);
26499+ if (g_voiceVar.voiceBufferType == 1)
26500+ {
26501+ voice_buffer_read(s_speechState.pVpTempTxInBuffer, s_speechState.totalFrameBufSize);
26502+
26503+ }
26504+ else
26505+ {
26506+ voicebuffer_ulqueue_read(s_speechState.pVpTempTxInBuffer, s_speechState.totalFrameBufSize);
26507+ }
26508+ if (g_voiceVar.vProcIsNormal == TRUE)
26509+ {
26510+ VoiceProc_TxProcess(&s_speechState.pVpTempTxInBuffer, NULL, &s_speechState.pVpTempTxOutPutBuffer, s_speechState.frameCount);
26511+ }
26512+ else
26513+ {
26514+ zOss_Memcpy((VOID *)(s_speechState.pVpTempTxOutPutBuffer), (VOID *) s_speechState.pVpTempTxInBuffer, s_speechState.totalFrameBufSize);
26515+ }
26516+
26517+ if (pBuf != s_speechState.pVpTempTxOutPutBuffer)
26518+ {
26519+ zOss_Memcpy(pBuf, s_speechState.pVpTempTxOutPutBuffer, s_speechState.totalFrameBufSize);
26520+ }
26521+
26522+ if (g_voiceVar.voiceInVolteMode == 1)
26523+ {
26524+ // s_speechState.txSaveLen += VP_FRAME_BUFFER_SIZE;
26525+ s_speechState.txSaveLen += s_speechState.totalFrameBufSize;
26526+ if (s_speechState.txSaveLen >= s_speechState.inOutBufUseSize)
26527+ {
26528+ s_speechState.txSaveLen = 0;
26529+ }
26530+ s_speechState.pVpTempTxInBuffer = s_vpState.pVpTxInBuffer + s_speechState.txSaveLen;
26531+ s_speechState.pVpTempTxOutPutBuffer = s_vpState.pVpTxOutPutBuffer + s_speechState.txSaveLen;
26532+ }
26533+
26534+
26535+ if (s_speechState.firstReadDataFlag == FALSE)
26536+ {
26537+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_ReadDataFromCodec first read tick=%d.\n", zOss_GetTickCount());
26538+ s_speechState.firstReadDataFlag = TRUE;
26539+ }
26540+
26541+ return ret;
26542+}
26543+
26544+
26545+
26546+
26547+SINT32 vp_CreateThreadSemaph_Vbuffer(VOID)
26548+{
26549+ SINT32 ret = 0;
26550+//#ifdef CONFIG_VOICE_BUFFER_DRV
26551+// init_completion(&s_voice_completion);
26552+ /*
26553+ if(vbuffer_init_flag == 1){
26554+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vbuffer already init,return! \n");
26555+ return DRV_SUCCESS;
26556+
26557+ }
26558+ */
26559+ s_voiceRdSema = zOss_CreateSemaphore("voice_rx_sem", 0);
26560+ if(NULL == s_voiceRdSema) {
26561+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "create voice_rx_sem err \n");
26562+ return DRV_ERROR;
26563+ }
26564+
26565+ s_voiceWrSema = zOss_CreateSemaphore("voice_tx_sem", 0);
26566+ if(NULL == s_voiceWrSema) {
26567+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "create voice_tx_sem err \n");
26568+ return DRV_ERROR;
26569+ }
26570+
26571+
26572+
26573+ s_voiceTimerId = zOss_CreateTimer("voice_frameTimer", voiceTimerCallBack, 0, TRUE);
26574+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "s_voiceTimerId=%p\n", s_voiceTimerId);
26575+ if(!s_voiceTimerId)
26576+ {
26577+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "voice_frameTimer failed\n");
26578+ return DRV_ERROR;
26579+ }
26580+
26581+
26582+
26583+
26584+ //ret = zDrvRpMsg_CreateChannel(IPC_MSG_ACTOR_A9,channel_41,0x10);
26585+#ifdef _USE_VEHICLE_DC
26586+ ret = zDrvRpMsg_CreateChannel_Cap(RPMSG_CAP_ID,channel_41,0x10);
26587+
26588+ if(DRV_SUCCESS != ret) {
26589+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "create rpmsg err(%d) \n",ret);
26590+ return DRV_ERROR;
26591+ }
26592+/*
26593+ volatile T_ZDrvRpMsg_Msg icp_pMsg = {0};
26594+ volatile unsigned int rpMsgBuf[2] = {0,0};
26595+ //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]);
26596+ icp_pMsg.actorID = RPMSG_CAP_ID;
26597+ icp_pMsg.chID = channel_41;
26598+ icp_pMsg.flag &= ~RPMSG_READ_POLL;
26599+ icp_pMsg.buf = rpMsgBuf;
26600+ icp_pMsg.len = 8;
26601+
26602+
26603+ ret = zDrvRpMsg_Read_Cap(&icp_pMsg);
26604+ if(ret <= 0){
26605+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "voice buffer rpmsg addr read fail,ret=%d \n",ret);
26606+ zOss_Printf(SUBMDL_HAL, PRINT_LEVEL_NORMAL, "ps voice buffer rpmsg addr read fail,ret=%d \n",ret);
26607+
26608+
26609+ }
26610+ else{
26611+ #if 0
26612+
26613+ voice_buff[UP_LINK] = (struct voice_ring_buffer *)(rpMsgBuf[0]);
26614+ voice_buff[DOWN_LINK] = (struct voice_ring_buffer *)(rpMsgBuf[1]);
26615+ #else
26616+
26617+ voice_buff[UP_LINK] = (struct voice_ring_buffer *)ioremap_wc(rpMsgBuf[0], (sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
26618+ voice_buff[DOWN_LINK] = (struct voice_ring_buffer *)ioremap_wc(rpMsgBuf[1],(sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
26619+ #endif
26620+
26621+ 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" \
26622+ ,voice_buff[0],voice_buff[1],rpMsgBuf[0],rpMsgBuf[1],(sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
26623+ 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" \
26624+ ,voice_buff[0],voice_buff[1],rpMsgBuf[0],rpMsgBuf[1],(sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
26625+ }
26626+*/
26627+
26628+
26629+#endif
26630+ //vbuffer_init_flag = 1;
26631+
26632+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_CreateThreadSemaph success. \r\n");
26633+ return DRV_SUCCESS;
26634+}
26635+
26636+
26637+
26638+
26639+static SINT32 vp_Get_Add_RpMsg_Vbuffer(VOID)
26640+{
26641+ SINT32 ret = 0;
26642+//#ifdef CONFIG_VOICE_BUFFER_DRV
26643+// init_completion(&s_voice_completion);
26644+
26645+ if(vbuffer_init_flag == 1){
26646+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vbuffer already init,return! \n");
26647+ return DRV_SUCCESS;
26648+
26649+ }
26650+
26651+ //ret = zDrvRpMsg_CreateChannel(IPC_MSG_ACTOR_A9,channel_41,0x10);
26652+#ifdef _USE_VEHICLE_DC
26653+
26654+ volatile T_ZDrvRpMsg_Msg icp_pMsg = {0};
26655+ volatile unsigned int rpMsgBuf[2] = {0,0};
26656+ //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]);
26657+ icp_pMsg.actorID = RPMSG_CAP_ID;
26658+ icp_pMsg.chID = channel_41;
26659+ icp_pMsg.flag &= ~RPMSG_READ_POLL;
26660+ icp_pMsg.buf = rpMsgBuf;
26661+ icp_pMsg.len = 8;
26662+
26663+
26664+ ret = zDrvRpMsg_Read_Cap(&icp_pMsg);
26665+ if(ret <= 0){
26666+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "voice buffer rpmsg addr read fail,ret=%d \n",ret);
26667+ zOss_Printf(SUBMDL_HAL, PRINT_LEVEL_NORMAL, "ps voice buffer rpmsg addr read fail,ret=%d \n",ret);
26668+
26669+
26670+ }
26671+ else{
26672+ #if 0
26673+
26674+ voice_buff[UP_LINK] = (struct voice_ring_buffer *)(rpMsgBuf[0]);
26675+ voice_buff[DOWN_LINK] = (struct voice_ring_buffer *)(rpMsgBuf[1]);
26676+ #else
26677+
26678+ voice_buff[UP_LINK] = (struct voice_ring_buffer *)ioremap_wc(rpMsgBuf[0], (sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
26679+ voice_buff[DOWN_LINK] = (struct voice_ring_buffer *)ioremap_wc(rpMsgBuf[1],(sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
26680+ #endif
26681+
26682+ 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" \
26683+ ,voice_buff[0],voice_buff[1],rpMsgBuf[0],rpMsgBuf[1],(sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
26684+ 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" \
26685+ ,voice_buff[0],voice_buff[1],rpMsgBuf[0],rpMsgBuf[1],(sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
26686+
26687+ vbuffer_init_flag = 1;
26688+
26689+ }
26690+
26691+
26692+
26693+#endif
26694+
26695+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: success. \r\n",__func__);
26696+ return DRV_SUCCESS;
26697+}
26698+
26699+
26700+
26701+
26702+
26703+
26704+
26705+
26706+
26707+
26708+
26709+
26710+
26711+
26712+
26713diff --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
26714index f34d0b7..3296dad 100755
26715--- a/Uboot/cp/ps/driver/src/chipsets/src/audio_base/voiceprocess/hal_voiceprocess.c
26716+++ b/Uboot/cp/ps/driver/src/chipsets/src/audio_base/voiceprocess/hal_voiceprocess.c
26717@@ -34,9 +34,7 @@
26718 #include "drvs_tdm.h"
26719 #include "hal_dtmf_detect.h"
26720 #include "hal_audio_data.h"
26721-//#define TEST_WHITE_NOISE
26722
26723-//#define VB_DATA_LOSS_TEST
26724 #ifdef TEST_WHITE_NOISE
26725 #include "Fs8000_WhiteNoise_Mon.h"
26726 //#include "Fs8000_Sine_440Hz_Mon.h"
26727@@ -45,40 +43,19 @@
26728 #include "drvs_icp.h"
26729 #include "drvs_rpmsg.h"
26730 //#include <linux/completion.h>
26731+
26732+#include "hal_voicebuffer.h"
26733+
26734 /****************************************************************************
26735 * Local Macros
26736 ****************************************************************************/
26737 //#define USE_AUDIO_RING
26738 //#define VP_GET_TX_ALL_DATA
26739
26740-#define VP_BUF_LENGTH 0x7FF80 //0xFFD80 //0x7FE40 //0x4df80// (0.5M 0x80000)
26741-#define VP_FRAME_BUFFER_SIZE 320 //20ms 800KHZ
26742-#define VP_I2S_BUFFER_SIZE 320
26743-#define VOICE_SYNC_TIMEOUT_TIME 100
26744-
26745-#define VP_INOUT_BAK_BUFFER_SIZE 0x30000 // 0x60000
26746-#define VP_INOUT_NOBAK_BUFSIZE 640
26747-#define VB_MAX_INT 0x7fffffff
26748-#define VB_MIN_INT 0 //(0-2<<31)//0x80000000
26749-
26750-#define VB_INT_OVERFLOW(x) if((x < VB_MIN_INT)||(x > VB_MAX_INT)) x = 0;
26751 /****************************************************************************
26752 * Local Types
26753 ****************************************************************************/
26754- typedef enum
26755- {
26756- VBUF_SEM = 0,//voice buffer
26757- ECALL_SEM,
26758- SEM_MAX
26759- } T_Sem_Owner;
26760
26761- typedef enum
26762- {
26763- DIR_RX,
26764- DIR_TX,
26765- DIR_ALL,
26766- DIR_MAX
26767- } T_Data_Dir_Type;
26768
26769 /****************************************************************************
26770 * Local Constants
26771@@ -104,7 +81,46 @@
26772 * Global Variables
26773 ****************************************************************************/
26774 //static T_zDrvVp_SpeechState *s_pSpeechState = NULL;
26775+#if 0
26776 static T_zDrvVp_SpeechState s_speechState = {0}; //104 bytes
26777+#else
26778+T_zDrvVp_SpeechState s_speechState = {
26779+ //use for vp data process
26780+ .pVpTempRxInBuffer = NULL,
26781+ .pVpTempTxInBuffer = NULL,
26782+ .pVpTempRxOutPutBuffer = NULL,
26783+ .pVpTempTxOutPutBuffer = NULL,
26784+
26785+ .pVpI2sCfg = NULL,
26786+
26787+ .vpCfgParam = {0},
26788+
26789+ .i2sWriteParam = {0},
26790+ .i2sReadParam = {0},
26791+
26792+ .frameCount = 0,
26793+ .totalFrameBufSize = 0,
26794+ .inOutBufUseSize = 0,
26795+ .rxSaveLen = 0,
26796+ .txSaveLen = 0,
26797+ .saveLen = 0,
26798+
26799+ .pcmSlotNum = 0,
26800+ .pcmWbSecDataPosition = 0,
26801+
26802+ .volteVpWriteStopFlag = 0,
26803+ .volteVpReadStopFlag = 0,
26804+ . volteVpCfgEnFlag = 0,
26805+ .firstWriteDataFlag = FALSE,
26806+ .firstReadDataFlag = FALSE,
26807+ .i2sIsRstFlag = FALSE,
26808+
26809+};
26810+
26811+
26812+#endif
26813+
26814+#if 0
26815
26816 T_zDrvVoice_GbVar g_voiceVar =
26817 {
26818@@ -138,32 +154,104 @@
26819 #endif
26820 0 //27 voice_nv_update
26821 };
26822+#else
26823+T_zDrvVoice_GbVar g_voiceVar =
26824+{
26825+ .volteIsWb = 0, //volteIsWb
26826+ .isUseSlicCodec = 0, //isUseSlicCodec
26827+ .g_isUseTdm = 0, //g_isUseTdm
26828+ .voiceInGsmTdMode = 0, //voiceInGsmTdMode
26829+ .voiceInVolteMode = 0, //voiceInVolteMode
26830+ .innerI2sIsMaster = FALSE, //innerI2sIsMaster
26831+ .innerI2sIsI2sMode = TRUE, //innerI2sIsI2sMode
26832+ .vpLoopRuning = FALSE, //vpLoopRunning
26833+ .muteEn = FALSE, //muteEn
26834+ .vProcIsNormal = FALSE, //vProcIsNormal
26835+ .vpI2sStatus = VP_I2S_IDLE, //vpI2sStatus
26836+ .vpPath = VP_PATH_HANDSET, //vpPath
26837+ .vpLoopPath = VP_PATH_HANDSET, //vpLoopPath
26838+ .vpVol = VP_VOL_3, //vpVol
26839+ .voiceMode = MAX_VOICE_MODE, //voiceMode
26840+ .vpInitGain = -1, //vpInitGain
26841+ .audio_ctrlFlag = {0}, //audio_ctrlFlag
26842+
26843+ .dtmfDirSel = DTMF_IDLE, //dtmfDirSel
26844+ .sample_rate = 0, //sample_rate
26845+ .useDtmfLoop = 0, //useDtmfLoop
26846+ .muteCount = 0, //muteCount
26847+ .vpLoopBkRunning = FALSE, //vpLoopBkRunning
26848+ .rxMuteEn = FALSE, //rxMuteEn
26849+ .firstRegZCATFlag = FALSE,
26850+#ifdef ECALL_SUPPORT
26851+ .ecallData = {0}, //ecallData
26852+#endif
26853+ .voice_nv_update = 0, // voice_nv_update
26854+ .useVoiceBuffer = 0,// 0 not use,1 use
26855+ .voiceBufferType = 0, //0 single core, 1 dual core
26856+
26857+};
26858+
26859+#endif
26860+
26861+#if 0
26862+
26863
26864 static T_zDrvVp_State s_vpState =
26865 {
26866- NULL,
26867- NULL,
26868- NULL,
26869- NULL,
26870- 0,
26871- NULL,
26872- NULL,
26873- NULL,
26874- NULL,
26875- NULL,
26876- NULL,
26877- {0},
26878- {0},
26879- 0,
26880- NULL,
26881- NULL,
26882- NULL,
26883- NULL,
26884- NULL,
26885- NULL,
26886- NULL
26887+ NULL,//1 pVpRxInBuffer
26888+ NULL,//2 pVpTxInBuffer
26889+ NULL,//3 pVpRxOutPutBuffer
26890+ NULL,//4 pVpTxOutPutBuffer
26891+ 0,//5 inOutBufSize
26892+ NULL,//6 pVpInnerI2sCfg
26893+ NULL,//7 pVpExtI2sCfg
26894+ NULL,//8 pVpExtI2sWbCfg
26895+ NULL,//9 s_pVpTdmCfg
26896+ NULL,//10 s_pVpTdmWbCfg
26897+ NULL,//11 pVpTdmCfg
26898+ {0},//12 pMsg
26899+ {0},//13 pMsgBuf[2]
26900+ //0,//14
26901+ NULL,//15 vpThread
26902+ NULL,//16 rcvDtmfThread
26903+ NULL,//17 vpSemaphore
26904+ NULL,//18 vpThreadQuitSema
26905+ NULL,//19 vpLoopThread
26906+ NULL,//20 vpLoopSemaphore
26907+ NULL//21 vpState
26908 // {0}
26909 };
26910+#else
26911+T_zDrvVp_State s_vpState =
26912+{
26913+ .pVpRxInBuffer = NULL,//1
26914+ .pVpTxInBuffer = NULL,//2
26915+ .pVpRxOutPutBuffer = NULL,//3
26916+ .pVpTxOutPutBuffer = NULL,//4
26917+ .inOutBufSize = 0,//5
26918+ .pVpInnerI2sCfg = NULL,//6
26919+ .pVpExtI2sCfg = NULL,//7
26920+ .pVpExtI2sWbCfg = NULL,//8
26921+ .s_pVpTdmCfg = NULL,//9
26922+ .s_pVpTdmWbCfg = NULL,//10
26923+ .pVpTdmCfg = NULL,//11
26924+ .pMsg = {0},//12
26925+ .pMsgBuf = {0},//13
26926+ .vpThread = NULL,//14
26927+ .rcvDtmfThread = NULL,//15
26928+ .vpSemaphore = NULL,//16
26929+ .vpThreadQuitSema = NULL,//17
26930+ .vpLoopThread = NULL,//18
26931+ .vpLoopSemaphore = NULL,//19
26932+
26933+ .vpState = NULL,//
26934+// {0}
26935+};
26936+
26937+
26938+#endif
26939+
26940+
26941
26942 //for test whiteNoise
26943 #ifdef TEST_WHITE_NOISE
26944@@ -271,8 +359,8 @@
26945 ****************************************************************************/
26946 #ifdef CONFIG_VOICE_BUFFER_DRV
26947 #ifdef _VBUFF_IN_MULTI_CORE
26948-#define RPMSG_CAP_ID 1
26949-
26950+//#define RPMSG_CAP_ID 1
26951+#if 0
26952 ZOSS_TIMER_ID s_voiceTimerId ;
26953 ZOSS_SEMAPHORE_ID s_voiceRdSema;
26954 ZOSS_SEMAPHORE_ID s_voiceWrSema;
26955@@ -283,9 +371,22 @@
26956
26957 int vb_read_count = 0;
26958 int vb_write_count = 0;
26959+#else
26960+//define in hal_voicebuffer.c
26961+extern ZOSS_TIMER_ID s_voiceTimerId ;
26962+extern ZOSS_SEMAPHORE_ID s_voiceRdSema;
26963+extern ZOSS_SEMAPHORE_ID s_voiceWrSema;
26964
26965+extern int timer_cb_count;
26966+extern int first_full_flag;
26967+extern int first_empty_flag;
26968
26969-void voiceTimerCallBack(SINT32 para)
26970+extern int vb_read_count;
26971+extern int vb_write_count;
26972+
26973+#endif
26974+
26975+static void voiceTimerCallBack(SINT32 para)
26976 {
26977 T_ZDrvRpMsg_Msg icp_pMsg = {0};
26978
26979@@ -316,22 +417,8 @@
26980
26981 // zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "voiceTimerCallBack timer=%u\n", cpu_clock(0)>>10);
26982 }
26983-#define MAX_BUF_SIZE 640
26984-#define MAX_BUF_NUM 3
26985
26986-
26987-enum{
26988- UP_LINK,
26989- DOWN_LINK
26990-};
26991-
26992-struct voice_ring_buffer {
26993- volatile uint read_pos;
26994- volatile uint write_pos;
26995- volatile char data[];
26996-
26997-};
26998-struct voice_ring_buffer *voice_buff[2] = {NULL,NULL};
26999+extern struct voice_ring_buffer *voice_buff[2];
27000
27001
27002
27003@@ -460,10 +547,10 @@
27004 extern int voicebuffer_dlqueue_write(void *buf, unsigned int size);
27005 extern void voice_inform_to_app(void);
27006 //static DECLARE_COMPLETION(s_voice_completion);
27007-ZOSS_TIMER_ID s_voiceTimerId ;
27008-ZOSS_SEMAPHORE_ID s_voiceRdSema;
27009-ZOSS_SEMAPHORE_ID s_voiceWrSema;
27010-void voiceTimerCallBack(SINT32 para)
27011+extern ZOSS_TIMER_ID s_voiceTimerId ;
27012+extern ZOSS_SEMAPHORE_ID s_voiceRdSema;
27013+extern ZOSS_SEMAPHORE_ID s_voiceWrSema;
27014+static void voiceTimerCallBack(SINT32 para)
27015 {
27016 // complete_all(&s_voice_completion);
27017 zOss_PutSemaphore(s_voiceWrSema);
27018@@ -476,7 +563,7 @@
27019
27020 #endif
27021
27022-SINT32 vp_rxsem_count_Init(void)
27023+static SINT32 vp_rxsem_count_Init(void)
27024 {
27025 UINT32 i = 0;
27026 UINT32 semCount = 0;
27027@@ -495,7 +582,7 @@
27028 return DRV_SUCCESS;
27029 }
27030
27031-SINT32 vp_txsem_count_Init(void)
27032+static SINT32 vp_txsem_count_Init(void)
27033 {
27034 UINT32 i = 0;
27035 UINT32 semCount = 0;
27036@@ -522,6 +609,7 @@
27037 #endif
27038
27039
27040+
27041 #ifdef ECALL_SUPPORT
27042 int eWrErr = 0;
27043 UINT8 e_reg_flag = 0;
27044@@ -533,6 +621,7 @@
27045 T_Ecall_State preEcallRxSta = 0;
27046 T_Ecall_State preEcallTxSta = 0;
27047
27048+
27049 //tx
27050 SINT32 rdsem_count_Init(T_Sem_Owner owner)
27051 {
27052@@ -706,7 +795,7 @@
27053
27054 e_startCount = 0;
27055 e_stopCount = 0;
27056- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "ecall_Open end!\n");
27057+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "ecall_Open bufsize=%d end!\n",bufsize);
27058
27059 return DRV_SUCCESS;
27060
27061@@ -758,7 +847,7 @@
27062 {
27063 SINT32 ret = DRV_SUCCESS;
27064
27065- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s start e_startCount=%d \n",__FUNCTION__,e_startCount);
27066+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: start e_startCount=%d \n",__FUNCTION__,e_startCount);
27067 if(g_voiceVar.ecallData.ecallSta == ECALL_ST_START)
27068 {
27069 zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "ecall_Start repeat ecallSta=%d\n",g_voiceVar.ecallData.ecallSta);
27070@@ -785,7 +874,7 @@
27071 SINT32 ecall_Stop(VOID)
27072 {
27073 SINT32 ret = DRV_SUCCESS;
27074- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s start e_stopCount=%d \n",__FUNCTION__,e_stopCount);
27075+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: start e_stopCount=%d \n",__FUNCTION__,e_stopCount);
27076
27077 if((g_voiceVar.ecallData.ecallSta == ECALL_ST_STOP)||(g_voiceVar.ecallData.ecallSta == ECALL_ST_CLOSE))
27078 {
27079@@ -833,7 +922,7 @@
27080 {
27081 if(dir == DIR_RX)
27082 {
27083-
27084+
27085 preEcallRxSta = g_voiceVar.ecallData.ecallRxSta;
27086 g_voiceVar.ecallData.ecallRxSta = ECALL_ST_RX_INUSE;
27087 //zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "update_ecall_state rx state change to ecallRxSta = %d\n", g_voiceVar.ecallData.ecallRxSta);
27088@@ -964,9 +1053,15 @@
27089 return DRV_SUCCESS;
27090 }
27091
27092+
27093 SINT32 zDrvExtAudio_Open(T_ZDrvI2s_TransMode i2sTransMode)
27094 {
27095+
27096 int ret = 0;
27097+ if (g_voiceVar.useVoiceBuffer == 1){
27098+ return ret;
27099+ }
27100+
27101 #ifdef CONFIG_VOICE_BUFFER_DRV
27102 #else
27103 if (g_voiceVar.g_isUseTdm != 1)
27104@@ -984,6 +1079,9 @@
27105 SINT32 zDrvExtAudio_Reset()
27106 {
27107 int ret = 0;
27108+ if (g_voiceVar.useVoiceBuffer == 1){
27109+ return ret;
27110+ }
27111 #ifdef CONFIG_VOICE_BUFFER_DRV
27112 #else
27113 if (g_voiceVar.g_isUseTdm != 1)
27114@@ -1000,6 +1098,9 @@
27115 SINT32 zDrvExtAudio_Close()
27116 {
27117 int ret = 0;
27118+ if (g_voiceVar.useVoiceBuffer == 1){
27119+ return ret;
27120+ }
27121 #ifdef CONFIG_VOICE_BUFFER_DRV
27122 #else
27123 if (g_voiceVar.g_isUseTdm != 1)
27124@@ -1017,6 +1118,9 @@
27125 SINT32 zDrvExtAudio_Write_Prepare(T_ZDrvI2S_Cfg *i2sCfg, T_ZDrvTdm_Cfg *tdmCfg)
27126 {
27127 int ret = 0;
27128+ if (g_voiceVar.useVoiceBuffer == 1){
27129+ return ret;
27130+ }
27131 #ifdef CONFIG_VOICE_BUFFER_DRV
27132 #else
27133 if (g_voiceVar.g_isUseTdm != 1)
27134@@ -1035,6 +1139,9 @@
27135 T_ZDrvTdm_Params *tdmParams, T_ZDrvTdm_Cfg *tdmCfg)
27136 {
27137 int ret = 0;
27138+ if (g_voiceVar.useVoiceBuffer == 1){
27139+ return ret;
27140+ }
27141 #ifdef CONFIG_VOICE_BUFFER_DRV
27142 #else
27143 if (g_voiceVar.g_isUseTdm != 1)
27144@@ -1052,6 +1159,9 @@
27145 T_ZDrvTdm_Params *tdmParams, T_ZDrvTdm_Cfg *tdmCfg)
27146 {
27147 int ret = 0;
27148+ if (g_voiceVar.useVoiceBuffer == 1){
27149+ return ret;
27150+ }
27151 #ifdef CONFIG_VOICE_BUFFER_DRV
27152 #else
27153 if (g_voiceVar.g_isUseTdm != 1)
27154@@ -1068,6 +1178,9 @@
27155 SINT32 zDrvExtAudio_Read_Prepare(T_ZDrvI2S_Cfg *i2sCfg, T_ZDrvTdm_Cfg *tdmCfg)
27156 {
27157 int ret = 0;
27158+ if (g_voiceVar.useVoiceBuffer == 1){
27159+ return ret;
27160+ }
27161 #ifdef CONFIG_VOICE_BUFFER_DRV
27162 #else
27163 if (g_voiceVar.g_isUseTdm != 1)
27164@@ -1086,6 +1199,9 @@
27165 T_ZDrvTdm_Params *tdmParams, T_ZDrvTdm_Cfg *tdmCfg)
27166 {
27167 int ret = 0;
27168+ if (g_voiceVar.useVoiceBuffer == 1){
27169+ return ret;
27170+ }
27171 #ifdef CONFIG_VOICE_BUFFER_DRV
27172 #else
27173 if (g_voiceVar.g_isUseTdm != 1)
27174@@ -1103,6 +1219,9 @@
27175 T_ZDrvTdm_Params *tdmParams, T_ZDrvTdm_Cfg *tdmCfg)
27176 {
27177 int ret = 0;
27178+ if (g_voiceVar.useVoiceBuffer == 1){
27179+ return ret;
27180+ }
27181 #ifdef CONFIG_VOICE_BUFFER_DRV
27182 #else
27183 if (g_voiceVar.g_isUseTdm != 1)
27184@@ -1119,6 +1238,9 @@
27185 SINT32 zDrvExtAudio_Write(const UINT8 *pBuf, UINT32 uiLen)
27186 {
27187 int ret = 0;
27188+ if (g_voiceVar.useVoiceBuffer == 1){
27189+ return ret;
27190+ }
27191 #ifdef CONFIG_VOICE_BUFFER_DRV
27192 #else
27193 if (g_voiceVar.g_isUseTdm != 1)
27194@@ -1136,6 +1258,9 @@
27195 SINT32 zDrvExtAudio_Read(const UINT8 **pBuf, UINT32 *uiLen)
27196 {
27197 int ret = 0;
27198+ if (g_voiceVar.useVoiceBuffer == 1){
27199+ return ret;
27200+ }
27201 #ifdef CONFIG_VOICE_BUFFER_DRV
27202 #else
27203 if (g_voiceVar.g_isUseTdm != 1)
27204@@ -1195,9 +1320,13 @@
27205 return ret;
27206 }
27207 #endif
27208+
27209 SINT32 zDrvExtAudio_Write_Stop()
27210 {
27211 int ret = 0;
27212+ if (g_voiceVar.useVoiceBuffer == 1){
27213+ return ret;
27214+ }
27215 #ifdef CONFIG_VOICE_BUFFER_DRV
27216 #else
27217 if (g_voiceVar.g_isUseTdm != 1)
27218@@ -1215,6 +1344,9 @@
27219 SINT32 zDrvExtAudio_Read_Stop()
27220 {
27221 int ret = 0;
27222+ if (g_voiceVar.useVoiceBuffer == 1){
27223+ return ret;
27224+ }
27225 #ifdef CONFIG_VOICE_BUFFER_DRV
27226 #else
27227 if (g_voiceVar.g_isUseTdm != 1)
27228@@ -1232,6 +1364,9 @@
27229 SINT32 zDrvExtAudio_GetBuf(UINT8 **pBuf, UINT32 *uiLen)
27230 {
27231 int ret = 0;
27232+ if (g_voiceVar.useVoiceBuffer == 1){
27233+ return ret;
27234+ }
27235 #ifdef CONFIG_VOICE_BUFFER_DRV
27236 #else
27237 if (g_voiceVar.g_isUseTdm != 1)
27238@@ -1263,6 +1398,9 @@
27239 SINT32 zDrvExtAudio_FreeBuf(UINT8 *pBuf)
27240 {
27241 int ret = 0;
27242+ if (g_voiceVar.useVoiceBuffer == 1){
27243+ return ret;
27244+ }
27245 #ifdef CONFIG_VOICE_BUFFER_DRV
27246 #else
27247 if (g_voiceVar.g_isUseTdm != 1)
27248@@ -1279,6 +1417,10 @@
27249
27250 void zDrvExtAudio_RlsAllSemaBeforeStop(void)
27251 {
27252+ if (g_voiceVar.useVoiceBuffer == 1){
27253+ return;
27254+ }
27255+
27256 #ifdef CONFIG_VOICE_BUFFER_DRV
27257 #else
27258 if (g_voiceVar.g_isUseTdm == 1)
27259@@ -1296,6 +1438,10 @@
27260
27261 void zDrvExtAudio_RxRlsSemaBeforeStop(void)
27262 {
27263+ if (g_voiceVar.useVoiceBuffer == 1){
27264+ return;
27265+ }
27266+
27267 #ifdef CONFIG_VOICE_BUFFER_DRV
27268 #else
27269 if (g_voiceVar.g_isUseTdm == 1)
27270@@ -1311,6 +1457,10 @@
27271
27272 void zDrvExtAudio_TxRlsSemaBeforeStop(void)
27273 {
27274+ if (g_voiceVar.useVoiceBuffer == 1){
27275+ return;
27276+ }
27277+
27278 #ifdef CONFIG_VOICE_BUFFER_DRV
27279 #else
27280 if (g_voiceVar.g_isUseTdm == 1)
27281@@ -1595,7 +1745,19 @@
27282
27283 ext_aRdCount = 0;
27284 ext_aRdFBufCount = 0;
27285+
27286+
27287
27288+ if (g_voiceVar.useVoiceBuffer == 1)
27289+ {
27290+ ret = vp_Open_Vbuffer();
27291+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_Open_Vbuffer ret=%d!\n",ret);
27292+ }
27293+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_Open_Vbuffer useVoiceBuffer=%d voiceBufferType=%d!\n",g_voiceVar.useVoiceBuffer,g_voiceVar.voiceBufferType);
27294+
27295+
27296+
27297+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_Open end!\n");
27298
27299 return DRV_SUCCESS;
27300
27301@@ -2282,7 +2444,7 @@
27302 ret = ecall_Close();
27303 if (ret != DRV_SUCCESS)
27304 {
27305- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "ecall_Open error,ret=%d", ret);
27306+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s:ecall_Close error,ret=%d",__func__,ret);
27307 }
27308 e_reg_flag = 0;
27309 }
27310@@ -2305,6 +2467,12 @@
27311 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);
27312 #endif
27313
27314+ if(g_voiceVar.useVoiceBuffer == 1)
27315+ {
27316+ ret = vp_Close_Vbuffer();
27317+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_Close_Vbuffer ret=%d!\n",ret);
27318+
27319+ }
27320 zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "%s: ext_aRdCount %d,ext_aRdFBufCount %d!\n",__FUNCTION__,ext_aRdCount,ext_aRdFBufCount);
27321
27322
27323@@ -2337,176 +2505,185 @@
27324 // {
27325 // zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "is the i2s loopback mode");
27326 // }
27327+
27328+ if (g_voiceVar.useVoiceBuffer == 1)
27329+ {
27330+ ret = vp_VoiceI2sStart_Vbuffer();
27331+ }
27332+ else
27333+ {
27334+
27335 #ifdef CONFIG_VOICE_BUFFER_DRV
27336- ret = zDrvI2S_Read_Start(I2S_2, &s_speechState.i2sReadParam, s_vpState.pVpInnerI2sCfg);
27337- if (ret != DRV_SUCCESS)
27338- {
27339- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvI2S2_Read_Start failed ret is %d .\n", ret);
27340- return DRV_ERROR;
27341- }
27342-
27343- zOss_StartTimer(s_voiceTimerId, 20, voiceTimerCallBack, 0);
27344- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart VB zOss_StartTimer\n");
27345+ ret = zDrvI2S_Read_Start(I2S_2, &s_speechState.i2sReadParam, s_vpState.pVpInnerI2sCfg);
27346+ if (ret != DRV_SUCCESS)
27347+ {
27348+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvI2S2_Read_Start failed ret is %d .\n", ret);
27349+ return DRV_ERROR;
27350+ }
27351+
27352+ zOss_StartTimer(s_voiceTimerId, 20, voiceTimerCallBack, 0);
27353+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart VB zOss_StartTimer\n");
27354
27355- ret = zDrvI2S_Write_Start(I2S_2, &s_speechState.i2sWriteParam, s_vpState.pVpInnerI2sCfg);
27356+ ret = zDrvI2S_Write_Start(I2S_2, &s_speechState.i2sWriteParam, s_vpState.pVpInnerI2sCfg);
27357
27358- ret += zDrvI2S_GetBuf(I2S_2, &write_buf, &write_len);
27359- if (ret != DRV_SUCCESS)
27360- {
27361- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error7:zDrvI2S_GetBuf I2S_2 ret=%d", ret);
27362- return DRV_ERROR;
27363- }
27364- zOss_Memset(write_buf, 0, write_len);
27365- ret = zDrvI2S_Write(I2S_2, write_buf, write_len);
27366- if (ret != DRV_SUCCESS)
27367- {
27368- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error12:zDrvI2S_Write I2S_2 ret=%d", ret);
27369- }
27370-
27371- ret += zDrvI2S_GetBuf(I2S_2, &write_buf, &write_len);
27372- if (ret != DRV_SUCCESS)
27373- {
27374- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error13:zDrvI2S_GetBuf I2S_2 ret=%d", ret);
27375- return DRV_ERROR;
27376- }
27377- zOss_Memset(write_buf, 0, write_len);
27378- ret = zDrvI2S_Write(I2S_2, write_buf, write_len);
27379- if (ret != DRV_SUCCESS)
27380- {
27381- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error14:zDrvI2S_Write I2S_2 ret=%d", ret);
27382- }
27383+ ret += zDrvI2S_GetBuf(I2S_2, &write_buf, &write_len);
27384+ if (ret != DRV_SUCCESS)
27385+ {
27386+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error7:zDrvI2S_GetBuf I2S_2 ret=%d", ret);
27387+ return DRV_ERROR;
27388+ }
27389+ zOss_Memset(write_buf, 0, write_len);
27390+ ret = zDrvI2S_Write(I2S_2, write_buf, write_len);
27391+ if (ret != DRV_SUCCESS)
27392+ {
27393+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error12:zDrvI2S_Write I2S_2 ret=%d", ret);
27394+ }
27395+
27396+ ret += zDrvI2S_GetBuf(I2S_2, &write_buf, &write_len);
27397+ if (ret != DRV_SUCCESS)
27398+ {
27399+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error13:zDrvI2S_GetBuf I2S_2 ret=%d", ret);
27400+ return DRV_ERROR;
27401+ }
27402+ zOss_Memset(write_buf, 0, write_len);
27403+ ret = zDrvI2S_Write(I2S_2, write_buf, write_len);
27404+ if (ret != DRV_SUCCESS)
27405+ {
27406+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error14:zDrvI2S_Write I2S_2 ret=%d", ret);
27407+ }
27408 #ifdef _VBUFF_IN_MULTI_CORE
27409- voice_buffer_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
27410+ voice_buffer_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
27411
27412 #else
27413- voicebuffer_dlqueue_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
27414+ voicebuffer_dlqueue_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
27415 #endif
27416 #else
27417- if (g_voiceVar.isUseSlicCodec == 1)
27418- {
27419-
27420- if (s_speechState.i2sIsRstFlag == FALSE)
27421+ if (g_voiceVar.isUseSlicCodec == 1)
27422 {
27423- ret = zDrvExtAudio_Reset();
27424- if (ret != DRV_SUCCESS)
27425+
27426+ if (s_speechState.i2sIsRstFlag == FALSE)
27427 {
27428- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart zDrvExtAudio_Reset() err ret=%d ", ret);
27429- return DRV_ERROR;
27430+ ret = zDrvExtAudio_Reset();
27431+ if (ret != DRV_SUCCESS)
27432+ {
27433+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart zDrvExtAudio_Reset() err ret=%d ", ret);
27434+ return DRV_ERROR;
27435+ }
27436+ s_speechState.i2sIsRstFlag = TRUE;
27437 }
27438- s_speechState.i2sIsRstFlag = TRUE;
27439+
27440 }
27441
27442- }
27443+ ret = zDrvI2S_Read_Start(I2S_2, &s_speechState.i2sReadParam, s_vpState.pVpInnerI2sCfg);
27444+ if (ret != DRV_SUCCESS)
27445+ {
27446+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvI2S2_Read_Start failed ret is %d .\n", ret);
27447+ return DRV_ERROR;
27448+ }
27449
27450- ret = zDrvI2S_Read_Start(I2S_2, &s_speechState.i2sReadParam, s_vpState.pVpInnerI2sCfg);
27451- if (ret != DRV_SUCCESS)
27452- {
27453- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvI2S2_Read_Start failed ret is %d .\n", ret);
27454- return DRV_ERROR;
27455- }
27456+ ret += zDrvExtAudio_Read_Start(&s_speechState.i2sReadParam, s_speechState.pVpI2sCfg, &s_vpTdmReadParam, s_vpState.pVpTdmCfg);
27457
27458- ret += zDrvExtAudio_Read_Start(&s_speechState.i2sReadParam, s_speechState.pVpI2sCfg, &s_vpTdmReadParam, s_vpState.pVpTdmCfg);
27459+ if (ret != DRV_SUCCESS)
27460+ {
27461+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvI2S1_Read_Start failed ret is %d .\n", ret);
27462+ zDrvI2S_Read_Stop(I2S_2);
27463+ return DRV_ERROR;
27464+ }
27465
27466- if (ret != DRV_SUCCESS)
27467- {
27468- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvI2S1_Read_Start failed ret is %d .\n", ret);
27469- zDrvI2S_Read_Stop(I2S_2);
27470- return DRV_ERROR;
27471- }
27472+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart zDrvI2S_Read_Start ret=%d", ret);
27473
27474- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart zDrvI2S_Read_Start ret=%d", ret);
27475+ ret = zDrvI2S_Read(I2S_2, &read_buf, &read_len);
27476+ if (ret != DRV_SUCCESS)
27477+ {
27478+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error:zDrvI2S_Read I2S_2 ret=%d", ret);
27479+ return DRV_ERROR;
27480+ }
27481+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart zDrvI2S_Read I2S_2 ret=%d", ret);
27482
27483- ret = zDrvI2S_Read(I2S_2, &read_buf, &read_len);
27484- if (ret != DRV_SUCCESS)
27485- {
27486- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error:zDrvI2S_Read I2S_2 ret=%d", ret);
27487- return DRV_ERROR;
27488- }
27489- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart zDrvI2S_Read I2S_2 ret=%d", ret);
27490+ ret = zDrvExtAudio_Read(&read_buf, &read_len);
27491+ if (ret != DRV_SUCCESS)
27492+ {
27493+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error:zDrvI2S_Read ret=%d", ret);
27494+ return DRV_ERROR;
27495+ }
27496+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart zDrvI2S_Read I2S_1 ret=%d", ret);
27497
27498- ret = zDrvExtAudio_Read(&read_buf, &read_len);
27499- if (ret != DRV_SUCCESS)
27500- {
27501- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error:zDrvI2S_Read ret=%d", ret);
27502- return DRV_ERROR;
27503- }
27504- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart zDrvI2S_Read I2S_1 ret=%d", ret);
27505+ ret += zDrvExtAudio_Read_Stop();
27506+ ret += zDrvI2S_Read_Stop(I2S_2);
27507+ if (ret != DRV_SUCCESS)
27508+ {
27509+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error:zDrvI2S_Read ret=%d", ret);
27510+ return DRV_ERROR;
27511+ }
27512
27513- ret += zDrvExtAudio_Read_Stop();
27514- ret += zDrvI2S_Read_Stop(I2S_2);
27515- if (ret != DRV_SUCCESS)
27516- {
27517- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error:zDrvI2S_Read ret=%d", ret);
27518- return DRV_ERROR;
27519- }
27520+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart first read/write stop ret=%d", ret);
27521
27522- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart first read/write stop ret=%d", ret);
27523+ ret += zDrvExtAudio_Read_Start(&s_speechState.i2sReadParam, s_speechState.pVpI2sCfg, &s_vpTdmReadParam, s_vpState.pVpTdmCfg);
27524
27525- ret += zDrvExtAudio_Read_Start(&s_speechState.i2sReadParam, s_speechState.pVpI2sCfg, &s_vpTdmReadParam, s_vpState.pVpTdmCfg);
27526+ ret += zDrvI2S_Read_Start(I2S_2, &s_speechState.i2sReadParam, s_vpState.pVpInnerI2sCfg);
27527
27528- ret += zDrvI2S_Read_Start(I2S_2, &s_speechState.i2sReadParam, s_vpState.pVpInnerI2sCfg);
27529+ ret += zDrvExtAudio_Write_Start(&s_speechState.i2sWriteParam, s_speechState.pVpI2sCfg, &s_VpTdmWriteParam, s_vpState.pVpTdmCfg);
27530+ if (ret != DRV_SUCCESS)
27531+ {
27532+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error4:zDrvI2S_Write_Start ret=%d", ret);
27533+ return DRV_ERROR;
27534+ }
27535+ ret += zDrvExtAudio_GetBuf(&write_buf, &write_len);
27536+ if (ret != DRV_SUCCESS)
27537+ {
27538+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error5:zDrvI2S_GetBuf ret=%d", ret);
27539+ return DRV_ERROR;
27540+ }
27541
27542- ret += zDrvExtAudio_Write_Start(&s_speechState.i2sWriteParam, s_speechState.pVpI2sCfg, &s_VpTdmWriteParam, s_vpState.pVpTdmCfg);
27543- if (ret != DRV_SUCCESS)
27544- {
27545- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error4:zDrvI2S_Write_Start ret=%d", ret);
27546- return DRV_ERROR;
27547- }
27548- ret += zDrvExtAudio_GetBuf(&write_buf, &write_len);
27549- if (ret != DRV_SUCCESS)
27550- {
27551- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error5:zDrvI2S_GetBuf ret=%d", ret);
27552- return DRV_ERROR;
27553- }
27554-
27555- zOss_Memset(write_buf, 0, write_len);
27556- ret += zDrvExtAudio_Write(write_buf, write_len);
27557- if (ret != DRV_SUCCESS)
27558- {
27559- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error6:zDrvI2S_Write ret=%d", ret);
27560- return DRV_ERROR;
27561- }
27562- ret = zDrvI2S_Write_Start(I2S_2, &s_speechState.i2sWriteParam, s_vpState.pVpInnerI2sCfg);
27563- ret += zDrvI2S_GetBuf(I2S_2, &write_buf, &write_len);
27564- if (ret != DRV_SUCCESS)
27565- {
27566- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error7:zDrvI2S_GetBuf I2S_2 ret=%d", ret);
27567- return DRV_ERROR;
27568- }
27569- zOss_Memset(write_buf, 0, write_len);
27570- ret = zDrvI2S_Write(I2S_2, write_buf, write_len);
27571- if (ret != DRV_SUCCESS)
27572- {
27573- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error8:zDrvI2S_Write I2S_2 ret=%d", ret);
27574- return DRV_ERROR;
27575- }
27576- ret += zDrvExtAudio_GetBuf(&write_buf, &write_len);
27577- if (ret != DRV_SUCCESS)
27578- {
27579- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error9:zDrvI2S_GetBuf ret=%d", ret);
27580- return DRV_ERROR;
27581- }
27582- zOss_Memset(write_buf, 0, write_len);
27583- ret += zDrvExtAudio_Write(write_buf, write_len);
27584- if (ret != DRV_SUCCESS)
27585- {
27586- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error10:zDrvI2S_Write ret=%d", ret);
27587- return DRV_ERROR;
27588- }
27589- ret += zDrvI2S_GetBuf(I2S_2, &write_buf, &write_len);
27590- if (ret != DRV_SUCCESS)
27591- {
27592- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error11:zDrvI2S_GetBuf I2S_2 ret=%d", ret);
27593- return DRV_ERROR;
27594- }
27595- zOss_Memset(write_buf, 0, write_len);
27596- ret = zDrvI2S_Write(I2S_2, write_buf, write_len);
27597- if (ret != DRV_SUCCESS)
27598- {
27599- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error12:zDrvI2S_Write I2S_2 ret=%d", ret);
27600- }
27601+ zOss_Memset(write_buf, 0, write_len);
27602+ ret += zDrvExtAudio_Write(write_buf, write_len);
27603+ if (ret != DRV_SUCCESS)
27604+ {
27605+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error6:zDrvI2S_Write ret=%d", ret);
27606+ return DRV_ERROR;
27607+ }
27608+ ret = zDrvI2S_Write_Start(I2S_2, &s_speechState.i2sWriteParam, s_vpState.pVpInnerI2sCfg);
27609+ ret += zDrvI2S_GetBuf(I2S_2, &write_buf, &write_len);
27610+ if (ret != DRV_SUCCESS)
27611+ {
27612+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error7:zDrvI2S_GetBuf I2S_2 ret=%d", ret);
27613+ return DRV_ERROR;
27614+ }
27615+ zOss_Memset(write_buf, 0, write_len);
27616+ ret = zDrvI2S_Write(I2S_2, write_buf, write_len);
27617+ if (ret != DRV_SUCCESS)
27618+ {
27619+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error8:zDrvI2S_Write I2S_2 ret=%d", ret);
27620+ return DRV_ERROR;
27621+ }
27622+ ret += zDrvExtAudio_GetBuf(&write_buf, &write_len);
27623+ if (ret != DRV_SUCCESS)
27624+ {
27625+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error9:zDrvI2S_GetBuf ret=%d", ret);
27626+ return DRV_ERROR;
27627+ }
27628+ zOss_Memset(write_buf, 0, write_len);
27629+ ret += zDrvExtAudio_Write(write_buf, write_len);
27630+ if (ret != DRV_SUCCESS)
27631+ {
27632+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error10:zDrvI2S_Write ret=%d", ret);
27633+ return DRV_ERROR;
27634+ }
27635+ ret += zDrvI2S_GetBuf(I2S_2, &write_buf, &write_len);
27636+ if (ret != DRV_SUCCESS)
27637+ {
27638+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error11:zDrvI2S_GetBuf I2S_2 ret=%d", ret);
27639+ return DRV_ERROR;
27640+ }
27641+ zOss_Memset(write_buf, 0, write_len);
27642+ ret = zDrvI2S_Write(I2S_2, write_buf, write_len);
27643+ if (ret != DRV_SUCCESS)
27644+ {
27645+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VoiceI2sStart error12:zDrvI2S_Write I2S_2 ret=%d", ret);
27646+ }
27647
27648 #endif
27649+ }
27650 #ifdef ECALL_SUPPORT
27651 if((g_voiceVar.audio_ctrlFlag.isUseEcall == 1)&&(e_reg_flag == 1))
27652 {
27653@@ -2657,18 +2834,27 @@
27654 zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvVp_VoiceWorkStop call voice_ToneMixerStop !\n");
27655
27656 g_voiceVar.vpI2sStatus = VP_I2S_OPEN;
27657-#ifdef CONFIG_VOICE_BUFFER_DRV
27658- //complete_all(&s_voice_completion);
27659- zOss_PutSemaphore(s_voiceRdSema);
27660- zOss_PutSemaphore(s_voiceWrSema);
27661- zOss_StopTimer(s_voiceTimerId);
27662- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvVp_VoiceWorkStop zOss_StopTimer\n");
27663-#else
27664- //zDrvI2s_RxRlsSemaBeforeStop(I2S_1);
27665- //zDrvI2s_TxRlsSemaBeforeStop(I2S_1);
27666- zDrvExtAudio_RlsAllSemaBeforeStop();
27667-#endif
27668+
27669
27670+
27671+ if (g_voiceVar.useVoiceBuffer == 1)
27672+ {
27673+ ret = zDrvVp_VoiceWorkStop_Vbuffer();
27674+ }
27675+ else
27676+ {
27677+#ifdef CONFIG_VOICE_BUFFER_DRV
27678+ //complete_all(&s_voice_completion);
27679+ zOss_PutSemaphore(s_voiceRdSema);
27680+ zOss_PutSemaphore(s_voiceWrSema);
27681+ zOss_StopTimer(s_voiceTimerId);
27682+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "zDrvVp_VoiceWorkStop zOss_StopTimer\n");
27683+#else
27684+ //zDrvI2s_RxRlsSemaBeforeStop(I2S_1);
27685+ //zDrvI2s_TxRlsSemaBeforeStop(I2S_1);
27686+ zDrvExtAudio_RlsAllSemaBeforeStop();
27687+#endif
27688+ }
27689 zDrvI2s_RxRlsSemaBeforeStop(I2S_2);
27690 zDrvI2s_TxRlsSemaBeforeStop(I2S_2);
27691
27692@@ -2736,10 +2922,19 @@
27693 }
27694
27695 g_voiceVar.vpI2sStatus = VP_I2S_INUSE;
27696+
27697+
27698+ if (g_voiceVar.useVoiceBuffer == 1)
27699+ {
27700+ ret = vp_VolteReadStart_Vbuffer();
27701+ }
27702+ else
27703+ {
27704 #ifdef CONFIG_VOICE_BUFFER_DRV
27705- zOss_StartTimer(s_voiceTimerId, 20, voiceTimerCallBack, 0);
27706- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteReadStart zOss_StartTimer start\n");
27707-#endif
27708+ zOss_StartTimer(s_voiceTimerId, 20, voiceTimerCallBack, 0);
27709+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteReadStart zOss_StartTimer start\n");
27710+#endif
27711+ }
27712 zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteReadStart \n");
27713
27714 return DRV_SUCCESS;
27715@@ -2748,6 +2943,15 @@
27716 SINT32 vp_VolteReadStop(VOID)
27717 {
27718 SINT32 ret = DRV_SUCCESS;
27719+
27720+
27721+ if (g_voiceVar.useVoiceBuffer == 1)
27722+ {
27723+ ret = vp_VolteReadStop_Vbuffer();
27724+ return ret;
27725+ }
27726+
27727+
27728 #ifdef CONFIG_VOICE_BUFFER_DRV
27729 zOss_PutSemaphore(s_voiceRdSema);
27730 #else
27731@@ -2844,46 +3048,54 @@
27732 }
27733
27734 g_voiceVar.vpI2sStatus = VP_I2S_INUSE;
27735+
27736+ if (g_voiceVar.useVoiceBuffer == 1)
27737+ {
27738+ vp_VolteWriteStart_Vbuffer();
27739+ }
27740+ else
27741+ {
27742 #ifdef CONFIG_VOICE_BUFFER_DRV
27743 #ifdef _VBUFF_IN_MULTI_CORE
27744- voice_buffer_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
27745+ voice_buffer_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
27746
27747 #else
27748- voicebuffer_dlqueue_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
27749+ voicebuffer_dlqueue_write(s_speechState.pVpTempRxOutPutBuffer, s_speechState.totalFrameBufSize);
27750 #endif
27751 #else
27752- ret = zDrvExtAudio_GetBuf(&write_buf, &write_len);
27753- if (ret != DRV_SUCCESS)
27754- {
27755- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStart error1:zDrvI2S_GetBuf I2S_1 ret=%d", ret);
27756- zDrvExtAudio_Write_Stop();
27757- return DRV_ERROR;
27758- }
27759- zOss_Memset(write_buf, 0, write_len);
27760- ret = zDrvExtAudio_Write(write_buf, write_len);
27761- if (ret != DRV_SUCCESS)
27762- {
27763- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStart error2:zDrvI2S_Write I2S_1 ret=%d", ret);
27764- zDrvExtAudio_Write_Stop();
27765- return DRV_ERROR;
27766- }
27767- ret = zDrvExtAudio_GetBuf(&write_buf, &write_len);
27768- if (ret != DRV_SUCCESS)
27769- {
27770- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStart error3:zDrvI2S_GetBuf I2S_1 ret=%d", ret);
27771- zDrvExtAudio_Write_Stop();
27772- return DRV_ERROR;
27773- }
27774- zOss_Memset(write_buf, 0, write_len);
27775- ret = zDrvExtAudio_Write(write_buf, write_len);
27776- if (ret != DRV_SUCCESS)
27777- {
27778- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStart error4:zDrvI2S_Write I2S_1 ret=%d", ret);
27779- zDrvExtAudio_Write_Stop();
27780- return DRV_ERROR;
27781- }
27782+ ret = zDrvExtAudio_GetBuf(&write_buf, &write_len);
27783+ if (ret != DRV_SUCCESS)
27784+ {
27785+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStart error1:zDrvI2S_GetBuf I2S_1 ret=%d", ret);
27786+ zDrvExtAudio_Write_Stop();
27787+ return DRV_ERROR;
27788+ }
27789+ zOss_Memset(write_buf, 0, write_len);
27790+ ret = zDrvExtAudio_Write(write_buf, write_len);
27791+ if (ret != DRV_SUCCESS)
27792+ {
27793+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStart error2:zDrvI2S_Write I2S_1 ret=%d", ret);
27794+ zDrvExtAudio_Write_Stop();
27795+ return DRV_ERROR;
27796+ }
27797+ ret = zDrvExtAudio_GetBuf(&write_buf, &write_len);
27798+ if (ret != DRV_SUCCESS)
27799+ {
27800+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStart error3:zDrvI2S_GetBuf I2S_1 ret=%d", ret);
27801+ zDrvExtAudio_Write_Stop();
27802+ return DRV_ERROR;
27803+ }
27804+ zOss_Memset(write_buf, 0, write_len);
27805+ ret = zDrvExtAudio_Write(write_buf, write_len);
27806+ if (ret != DRV_SUCCESS)
27807+ {
27808+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStart error4:zDrvI2S_Write I2S_1 ret=%d", ret);
27809+ zDrvExtAudio_Write_Stop();
27810+ return DRV_ERROR;
27811+ }
27812 #endif
27813- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStart \n");
27814+ }
27815+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_VolteWriteStart end\n");
27816
27817 return DRV_SUCCESS;
27818 }
27819@@ -2891,6 +3103,13 @@
27820 SINT32 vp_VolteWriteStop(VOID)
27821 {
27822 SINT32 ret = DRV_SUCCESS;
27823+ if (g_voiceVar.useVoiceBuffer == 1)
27824+ {
27825+ ret = vp_VolteWriteStop_Vbuffer();
27826+ return ret;
27827+ }
27828+
27829+
27830
27831 #ifdef CONFIG_VOICE_BUFFER_DRV
27832 //complete_all(&s_voice_completion);
27833@@ -2961,6 +3180,11 @@
27834 //UINT8 *pVoiceTempBuf = s_voiceTempBuffer;
27835 #endif
27836
27837+ if (g_voiceVar.useVoiceBuffer == 1)
27838+ {
27839+ ret = vp_WriteDataToCodec_Vbuffer(pBuf, count);
27840+ return ret;
27841+ }
27842
27843
27844 if (pBuf == NULL)
27845@@ -3285,6 +3509,14 @@
27846 UINT8 *ptemp8bit = NULL;
27847 #endif
27848
27849+ if (g_voiceVar.useVoiceBuffer == 1)
27850+ {
27851+ ret = vp_ReadDataFromCodec_Vbuffer(pBuf, count);
27852+ return ret;
27853+ }
27854+
27855+
27856+
27857 if (pBuf == NULL)
27858 {
27859 return DRV_ERR_INVALID_PARAM;
27860@@ -3313,6 +3545,8 @@
27861 // wait_for_completion_timeout(&s_voice_completion, 60);
27862 zOss_GetSemaphore(s_voiceRdSema, 60);
27863 #ifdef _VBUFF_IN_MULTI_CORE
27864+
27865+
27866 voice_buffer_read(s_speechState.pVpTempTxInBuffer, s_speechState.totalFrameBufSize);
27867
27868 #else
27869@@ -3911,11 +4145,14 @@
27870
27871 SINT32 vp_CreateThreadSemaph(VOID)
27872 {
27873+ SINT32 ret = 0;
27874+
27875 s_vpState.vpSemaphore = zOss_CreateSemaphore("VpI2sReadWriteSemaphore", 0);
27876 #ifdef _USE_WEBRTC_AUD
27877 s_vpState.vpThread = zOss_CreateThread("vp_DataProcessThreadEntry", vp_DataProcessThreadEntry, 0, 8192, 15, 0, 1);
27878 #else
27879- s_vpState.vpThread = zOss_CreateThread("vp_DataProcessThreadEntry", vp_DataProcessThreadEntry, 0, 1024, 15, 0, 1);
27880+ //s_vpState.vpThread = zOss_CreateThread("vp_DataProcessThreadEntry", vp_DataProcessThreadEntry, 0, 1024, 15, 0, 1);
27881+ s_vpState.vpThread = zOss_CreateThread("vp_DataProcessThreadEntry", vp_DataProcessThreadEntry, 0, 8192, 15, 0, 1);
27882 #endif
27883
27884 #ifdef _OS_TOS
27885@@ -3937,6 +4174,9 @@
27886 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);
27887 return DRV_ERROR;
27888 }
27889+
27890+
27891+
27892 #ifdef CONFIG_VOICE_BUFFER_DRV
27893 // init_completion(&s_voice_completion);
27894 s_voiceRdSema = zOss_CreateSemaphore("voice_rx_sem", 0);
27895@@ -3959,50 +4199,57 @@
27896 return DRV_ERROR;
27897 }
27898 #ifdef _VBUFF_IN_MULTI_CORE
27899- SINT32 ret = 0;
27900+ //SINT32 ret = 0;
27901
27902- //ret = zDrvRpMsg_CreateChannel(IPC_MSG_ACTOR_A9,channel_41,0x10);
27903- ret = zDrvRpMsg_CreateChannel_Cap(RPMSG_CAP_ID,channel_41,0x10);
27904+ //ret = zDrvRpMsg_CreateChannel(IPC_MSG_ACTOR_A9,channel_41,0x10);
27905+ ret = zDrvRpMsg_CreateChannel_Cap(RPMSG_CAP_ID,channel_41,0x10);
27906
27907- if(DRV_SUCCESS != ret) {
27908- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "create rpmsg err(%d) \n",ret);
27909- return DRV_ERROR;
27910- }
27911+ if(DRV_SUCCESS != ret) {
27912+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "create rpmsg err(%d) \n",ret);
27913+ return DRV_ERROR;
27914+ }
27915+
27916+ volatile T_ZDrvRpMsg_Msg icp_pMsg = {0};
27917+ volatile unsigned int rpMsgBuf[2] = {0,0};
27918+ //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]);
27919+ icp_pMsg.actorID = RPMSG_CAP_ID;
27920+ icp_pMsg.chID = channel_41;
27921+ icp_pMsg.flag &= ~RPMSG_READ_POLL;
27922+ icp_pMsg.buf = rpMsgBuf;
27923+ icp_pMsg.len = 8;
27924+ ret = zDrvRpMsg_Read_Cap(&icp_pMsg);
27925+ if(ret <= 0){
27926+ zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "voice buffer rpmsg addr read fail,ret=%d \n",ret);
27927+ zOss_Printf(SUBMDL_HAL, PRINT_LEVEL_NORMAL, "ps voice buffer rpmsg addr read fail,ret=%d \n",ret);
27928
27929- volatile T_ZDrvRpMsg_Msg icp_pMsg = {0};
27930- volatile unsigned int rpMsgBuf[2] = {0,0};
27931- //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]);
27932- icp_pMsg.actorID = RPMSG_CAP_ID;
27933- icp_pMsg.chID = channel_41;
27934- icp_pMsg.flag &= ~RPMSG_READ_POLL;
27935- icp_pMsg.buf = rpMsgBuf;
27936- icp_pMsg.len = 8;
27937- ret = zDrvRpMsg_Read_Cap(&icp_pMsg);
27938- if(ret <= 0){
27939- zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "voice buffer rpmsg addr read fail,ret=%d \n",ret);
27940- zOss_Printf(SUBMDL_HAL, PRINT_LEVEL_NORMAL, "ps voice buffer rpmsg addr read fail,ret=%d \n",ret);
27941-
27942
27943- }
27944- else{
27945- #if 0
27946+ }
27947+ else{
27948+ #if 0
27949
27950- voice_buff[UP_LINK] = (struct voice_ring_buffer *)(rpMsgBuf[0]);
27951- voice_buff[DOWN_LINK] = (struct voice_ring_buffer *)(rpMsgBuf[1]);
27952- #else
27953+ voice_buff[UP_LINK] = (struct voice_ring_buffer *)(rpMsgBuf[0]);
27954+ voice_buff[DOWN_LINK] = (struct voice_ring_buffer *)(rpMsgBuf[1]);
27955+ #else
27956
27957- voice_buff[UP_LINK] = (struct voice_ring_buffer *)ioremap_wc(rpMsgBuf[0], (sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
27958- voice_buff[DOWN_LINK] = (struct voice_ring_buffer *)ioremap_wc(rpMsgBuf[1],(sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
27959- #endif
27960-
27961- 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" \
27962+ voice_buff[UP_LINK] = (struct voice_ring_buffer *)ioremap_wc(rpMsgBuf[0], (sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
27963+ voice_buff[DOWN_LINK] = (struct voice_ring_buffer *)ioremap_wc(rpMsgBuf[1],(sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
27964+ #endif
27965+
27966+ 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" \
27967+ ,voice_buff[0],voice_buff[1],rpMsgBuf[0],rpMsgBuf[1],(sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
27968+ 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" \
27969 ,voice_buff[0],voice_buff[1],rpMsgBuf[0],rpMsgBuf[1],(sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
27970- 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" \
27971- ,voice_buff[0],voice_buff[1],rpMsgBuf[0],rpMsgBuf[1],(sizeof(struct voice_ring_buffer) + MAX_BUF_SIZE*MAX_BUF_NUM));
27972- }
27973+ }
27974 #endif
27975+
27976+#else
27977+ //flag ctrl voicebuffer func
27978+ vp_CreateThreadSemaph_Vbuffer();
27979+
27980+
27981 #endif
27982-
27983+
27984+
27985 zDrvRamlog_PRINTF(RAMLOG_MOD_AUDIO, "vp_CreateThreadSemaph success. \r\n");
27986 return DRV_SUCCESS;
27987 }
27988diff --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
27989index 072f131..a9ae08f 100755
27990--- a/Uboot/cp/ps/modem/com/src/appstart/inc/version_number.h
27991+++ b/Uboot/cp/ps/modem/com/src/appstart/inc/version_number.h
27992@@ -1,9 +1,9 @@
27993 #if defined _CHIP_ZX297520
27994-#define VERSION_NUMBER "7520SCV2.01.01.02P56U06"
27995+#define VERSION_NUMBER "7520SCV2.01.01.02P56U09"
27996 #endif
27997 #if defined _CHIP_ZX297520V2
27998-#define VERSION_NUMBER "7520V2SCV2.01.01.02P56U06"
27999+#define VERSION_NUMBER "7520V2SCV2.01.01.02P56U09"
28000 #endif
28001 #if defined _CHIP_ZX297520V3
28002-#define VERSION_NUMBER "7520V3SCV2.01.01.02P56U06"
28003+#define VERSION_NUMBER "7520V3SCV2.01.01.02P56U09"
28004 #endif
28005diff --git a/Uboot/cp/ps/modem/ps/inc/apuiccint.h b/Uboot/cp/ps/modem/ps/inc/apuiccint.h
28006index 57d364f..6d07534 100755
28007--- a/Uboot/cp/ps/modem/ps/inc/apuiccint.h
28008+++ b/Uboot/cp/ps/modem/ps/inc/apuiccint.h
28009@@ -1614,6 +1614,11 @@
28010
28011 #define Z_APUICC_EID_LEN (BYTE)10
28012
28013+#define Z_UICC_CARD_READY (BYTE)0
28014+#define Z_UICC_CARD_PWROFF (BYTE)1
28015+#define Z_UICC_CARD_REMOVE (BYTE)2
28016+#define Z_UICC_CARD_ERROR (BYTE)3
28017+
28018 /**************************************************************************
28019 * È«¾ÖÊý¾ÝÀàÐͶ¨Òå *
28020 **************************************************************************/
28021diff --git a/Uboot/cp/ps/modem/ps/inc/atipscom.h b/Uboot/cp/ps/modem/ps/inc/atipscom.h
28022index 72560ba..19bf907 100755
28023--- a/Uboot/cp/ps/modem/ps/inc/atipscom.h
28024+++ b/Uboot/cp/ps/modem/ps/inc/atipscom.h
28025@@ -429,6 +429,15 @@
28026 #define Z_DEV_NV_RAT_VERSION_GSM_PRIORITY (BYTE)3
28027 #define Z_DEV_NV_RAT_VERSION_DEFAULT (BYTE)4
28028
28029+/*************************CEER¼Ç¼ģ¿éÃû*******************/
28030+#define Z_CEER_MM_ID (BYTE)0
28031+#define Z_CEER_SM_ID (BYTE)1
28032+#define Z_CEER_UICCMNG_ID (BYTE)2
28033+#define Z_CEER_ATI_ID (BYTE)3
28034+#define Z_CEER_CC_ID (BYTE)4
28035+#define Z_CEER_SMS_ID (BYTE)5
28036+#define Z_CEER_SS_ID (BYTE)6
28037+
28038 /*V2-V3Ãû×Ö¼æÈÝend*/
28039 #define Z_SUBMDL_NUM (BYTE)((SUBMDL_PSEND - SUBMDL_PSBASE) + 1)
28040
28041diff --git a/Uboot/cp/ps/modem/ps/inc/atipsint.h b/Uboot/cp/ps/modem/ps/inc/atipsint.h
28042index 5a79eba..d037340 100755
28043--- a/Uboot/cp/ps/modem/ps/inc/atipsint.h
28044+++ b/Uboot/cp/ps/modem/ps/inc/atipsint.h
28045@@ -258,8 +258,14 @@
28046 #define Z_ATIUMM_MsgNormalWithNewCell_Err (BYTE)180 //retry upon entry into a new cell
28047 #define Z_ATIUMM_UeSecurityCapaMismatch (BYTE)181 //UE security capabilities mismatch
28048 #define Z_ATIUMM_Securitymoderejected (BYTE)182 //Security mode rejected, unspecified
28049-#define Z_ATIUMM_TemperatureStart (BYTE)183 //οؿªÊ¼
28050-#define Z_ATIUMM_TemperatureStop (BYTE)184 //οؽáÊø
28051+#define Z_ATIUMM_TemperatureStart (BYTE)183 //οؿªÊ¼
28052+#define Z_ATIUMM_TemperatureStop (BYTE)184 //οؽáÊø
28053+#define Z_ATIUMM_GsmRfOnFail (BYTE)190 //GSM¿ªÉäÆµÊ§°Ü
28054+#define Z_ATIUMM_GsmRfOffFail (BYTE)191 //GSM¹ØÉäÆµÊ§°Ü
28055+#define Z_ATIUMM_WRfOnFail (BYTE)192 //W¿ªÉäÆµÊ§°Ü
28056+#define Z_ATIUMM_WRfOffFail (BYTE)193 //W¹ØÉäÆµÊ§°Ü
28057+#define Z_ATIUMM_LteRfOnFail (BYTE)194 //LTE¿ªÉäÆµÊ§°Ü
28058+#define Z_ATIUMM_LteRfOffFail (BYTE)195 //LTE¹ØÉäÆµÊ§°Ü
28059
28060 /*============MMÄ£¿éCEER´íÎóÂë=============================== */
28061 #define Z_ATIMM_ImsiUnknownInHlr (BYTE)2 //IMSI unknown in HLR
28062@@ -315,7 +321,17 @@
28063 #define Z_ATIMM_MsgNotCompatProtocolState (BYTE)101 //Message not compatible with protocol state
28064 #define Z_ATIMM_ProtocolError (BYTE)111 //Protocol error, unspecified
28065
28066-#define Z_ATIMM_UnspecifiedFail (BYTE)120 //Unspecified Failure
28067+#define Z_ATIMM_UnspecifiedFail (BYTE)120 //Unspecified Failure
28068+#define Z_ATIMM_RrcFailUnspecifiedFail (BYTE)121 //RRCÁ´Â·Ê§°Ü£¬·ÇÌØÊâÔ­Òò
28069+
28070+#define Z_ATIMM_T3210Exipre (BYTE)123 //3210³¬Ê±
28071+#define Z_ATIMM_T3213Exipre (BYTE)123 //3213³¬Ê±
28072+#define Z_ATIMM_T3214_16Exipre (BYTE)124 //3214/3216³¬Ê±
28073+#define Z_ATIMM_T3220Exipre (BYTE)125 //3220³¬Ê±
28074+#define Z_ATIMM_T3230Exipre (BYTE)126 //3230³¬Ê±
28075+#define Z_ATIMM_T3225Exipre (BYTE)127 //3225³¬Ê±
28076+#define Z_ATIMM_T3231Exipre (BYTE)128 //3231³¬Ê±
28077+#define Z_ATIMM_TwpgrExipre (BYTE)129 //Twpgr³¬Ê±
28078
28079 /*================ Ë«¿¨Ë«´ýÅжÏÁ½ÕÅ¿¨ÊÇ·ñÐèÒª½»»»===============================*/
28080 #define Z_NO_NEED_CHANGE (BYTE)0
28081@@ -7674,7 +7690,12 @@
28082 BYTE bRxlev; /*LTE Rsrp 0-97 GSM Rxlev 0-64 TD&W Rscp 0-91*/
28083 BYTE bBlerFlg; /*ÊÇ·ñ´æÔÚBLERÖµÉϱ¨.bBlerFlg = 1±íʾÓÐÎóÂëÂÊÉϱ¨,bBlerFlg = 0±íʾÎÞÎóÂëÂÊÉϱ¨*/
28084 BYTE bBler;
28085- BYTE abPadding[3];
28086+ BYTE bRsrq;/*LTE·þÎñÐ¡ÇøµÄRSRQ,ÎÞЧֵ0xff*/
28087+ BYTE bSinrInt; /*LTE·þÎñÐ¡ÇøµÄSINRµÄÕûÊýÖµ,ȡֵ·¶Î§0~60; ÕæÊµÖµ»ù´¡ÉϼÓ20;ÕæÊµÖµÈ¡Öµ·¶Î§: -20~40*/
28088+ BYTE bSinrDec; /*LTE·þÎñÐ¡ÇøµÄSINRȡֵ·¶Î§ 0~9*/
28089+ BYTE bRssiInt; /*LTE·þÎñÐ¡ÇøµÄRSSIµÄÕûÊýÖµ,ȡֵ·¶Î§0~133,0xffΪÎÞЧֵ; ÕæÊµÖµ»ù´¡ÉϼÓ129;ÕæÊµÖµÈ¡Öµ·¶Î§: -129~-4*/
28090+ BYTE bEcno; /*W·þÎñÐ¡ÇøµÄECNOµÄ²âÁ¿Öµ,ȡֵ·¶Î§0~49,0xffΪÎÞЧֵ*/
28091+ BYTE abPadding[2];
28092 }T_zMmiaAs_RptRxlev_Ind;
28093
28094 /*==============================================================================
28095@@ -7689,7 +7710,7 @@
28096 BYTE bSrcIndex; /* Ô´Ë÷Òý */
28097 BYTE bDesIndex; /* Ä¿µÄË÷Òý*/
28098 BYTE bAction; /*1:´ò¿ªÐ¡ÇøÐÅÏ¢Ö÷¶¯Éϱ¨£¬0:¹Ø±ÕÐ¡ÇøÐÅÏ¢Ö÷¶¯Éϱ¨*/
28099- BYTE bPadding;
28100+ BYTE bAtType;
28101 }T_zMmiaAs_EM_CellInfo_Req;
28102
28103 /*==============================================================================
28104@@ -9040,5 +9061,8 @@
28105 extern int get_cid_state(unsigned char cid);
28106 extern BYTE zAti_GetS0Value(VOID);
28107 extern DWORD zAti_GetUlRateIndTimerVal(BYTE bInsIdx);
28108+
28109+extern VOID zAs_AddNasTraceInfo(BYTE bRat, WORD bCeer, BYTE ModeId, BYTE bDomain);
28110+
28111 #endif
28112
28113diff --git a/Uboot/cp/ps/modem/ps/inc/pstraceint.h b/Uboot/cp/ps/modem/ps/inc/pstraceint.h
28114index 5e1b179..35ced57 100755
28115--- a/Uboot/cp/ps/modem/ps/inc/pstraceint.h
28116+++ b/Uboot/cp/ps/modem/ps/inc/pstraceint.h
28117@@ -3445,9 +3445,10 @@
28118 WORD wDrx; //DRXÖÜÆÚ£¬µ¥Î»ms
28119 WORD wTac;
28120 WORD wT3412; //T3412¶¨Ê±Æ÷³¤¶È£¬µ¥Î»s
28121- WORD wPadding;
28122+ BYTE bSinrInt; /*·þÎñÐ¡ÇøµÄSINRµÄÕûÊýÖµ,ȡֵ·¶Î§0~60; ÕæÊµÖµ»ù´¡ÉϼÓ20;ÕæÊµÖµÈ¡Öµ·¶Î§: -20~40*/
28123+ BYTE bSinrDec; /*·þÎñÐ¡ÇøµÄSINRȡֵ·¶Î§ 0~9*/
28124 T_zEM_PlmnId tPlmnId; /*µ±Ç°×¤ÁôµÄplmnid*/
28125- BYTE bPadding;
28126+ BYTE bRssiInt; /*·þÎñÐ¡ÇøµÄRSSIµÄÕûÊýÖµ,ȡֵ·¶Î§0~133,0xffΪÎÞЧֵ;ÕæÊµÖµ»ù´¡ÉϼÓ129;ÕæÊµÖµÈ¡Öµ·¶Î§: -129~-4*/
28127 }T_zEm_Lte_NasInfo;
28128
28129 /* QoS Ïà¹ØÐÅÏ¢ */
28130@@ -4412,6 +4413,52 @@
28131 }uEmInfo;
28132 }T_zEM_EmInfo_Ind;
28133
28134+typedef struct {
28135+ DWORD dwCellId;
28136+ WORD wLac;
28137+ BYTE bBer;
28138+ BYTE bPadding;
28139+ BYTE bRssi;
28140+ T_zEM_PlmnId tPlmn;
28141+}T_zAt_Gsm_SCellInfo;
28142+
28143+typedef struct {
28144+ BYTE bStateInd;
28145+ T_zEM_PlmnId tPlmn;
28146+ DWORD dwCellId;
28147+ WORD wLac;
28148+ WORD wPsc;
28149+ BYTE bRscp;
28150+ BYTE bEcNo;
28151+ BYTE abPadding[2];
28152+}T_zAt_W_SCellInfo;
28153+
28154+typedef struct {
28155+ DWORD dwEarfcn;
28156+ DWORD dwCellId;
28157+ WORD wPci;
28158+ WORD wTac;
28159+ T_zEM_PlmnId tPlmnId;
28160+ BYTE bScellRsrp; //·þÎñÐ¡Çø²âÁ¿½á¹û
28161+ BYTE bScellRsrq;
28162+ BYTE bSinrInt; /*·þÎñÐ¡ÇøµÄSINRµÄÕûÊýÖµ,ȡֵ·¶Î§0~60; ÕæÊµÖµ»ù´¡ÉϼÓ20;ÕæÊµÖµÈ¡Öµ·¶Î§: -20~40*/
28163+ BYTE bSinrDec; /*·þÎñÐ¡ÇøµÄSINRȡֵ·¶Î§ 0~9*/
28164+ BYTE bRssiInt; /*·þÎñÐ¡ÇøµÄRSSIµÄÕûÊýÖµ,ȡֵ·¶Î§0~133,0xffΪÎÞЧֵ;ÕæÊµÖµ»ù´¡ÉϼÓ129;ÕæÊµÖµÈ¡Öµ·¶Î§: -129~-4*/
28165+}T_zAt_Lte_SCellInfo;
28166+
28167+typedef struct {
28168+ BYTE bVersion;
28169+ BYTE bRatType;/* ÖÆÊ½Ö¸Ê¾£º0x04-GSM¡¢0x01-TDSCDMA¡¢0x02-WCDMA¡¢0x10-LTE¡¢0x20-NRÆäËûÖµ±£Áô*/
28170+ BYTE bSrcIndex;/*Ô­±¾Îªpaddingλ,ÏÖË÷ÒýÖµ·ÅÔÚ´Ë´¦±ÜÃâ¶ÔAP²àµÄʹÓòúÉúÓ°Ïì*/
28171+ BYTE bDesIndex;
28172+
28173+ union{
28174+ T_zAt_Gsm_SCellInfo tGsmScellInfo;
28175+ T_zAt_W_SCellInfo tWScellInfo;
28176+ T_zAt_Lte_SCellInfo tLteScellInfo;
28177+ }uScellInfo;
28178+}T_zAt_CellInfo_Ind;
28179+
28180
28181 /**************************************************************************
28182 * º¯ÊýÀàÐͶ¨Òå *
28183diff --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
28184index 58bc12f..957fa25 100755
28185--- a/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zat_api.h
28186+++ b/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zat_api.h
28187@@ -114,6 +114,7 @@
28188 ZAT2_CFG_ZVREG,
28189 ZAT2_CFG_ZPOWSTAT,
28190 ZAT2_CFG_ZLOWPWR,
28191+ ZAT2_CFG_ZPSABNORMAL,
28192 ZAT2_CFG_END,
28193
28194 /*-----------MMÄ£¿é-------------*/
28195@@ -406,6 +407,8 @@
28196 ZAT2_EM_CESQ,
28197 ZAT2_EM_ZEMLTEHO,
28198 ZAT2_EM_ZLOCKCELL,
28199+ ZAT2_EM_ZSCIQ,
28200+ ZAT2_EM_ZSCIND,
28201
28202 /*-----------USATÄ£¿é--------------*/
28203 ZAT2_USAT_ZUEC,
28204diff --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
28205index 68e2b53..66c3225 100755
28206--- a/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zat_fnc.h
28207+++ b/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zat_fnc.h
28208@@ -1298,6 +1298,7 @@
28209 T_ZAt_ParseCmd2MsgRslt zAt_PsDecZpowstatQry(T_ZAt_DecCmdInfo * pDecCmdInfo);
28210 T_ZAt_ParseCmd2MsgRslt zAt_PsDecZlowPwrSetReq(T_ZAt_DecCmdInfo * pDecCmdInfo);
28211 T_ZAt_ParseCmd2MsgRslt zAt_PsDecZlowPwrQryReq(T_ZAt_DecCmdInfo * pDecCmdInfo);
28212+T_ZAt_ParseCmd2MsgRslt zAt_PsDecZpsabnormalQryReq(T_ZAt_DecCmdInfo * pDecCmdInfo);
28213 #ifdef DSDS_VSIM
28214 T_ZAt_ParseCmd2MsgRslt zAt_PsDecZcardSwitchReq(T_ZAt_DecCmdInfo *pDecCmdInfo);
28215 UINT16 zAt_PsEncCardSwitchReqCnf(T_ZAt_EncCmdInfo * pEncCmdInfo);
28216diff --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
28217index 4a047e7..5eb21d6 100755
28218--- a/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zati_com.h
28219+++ b/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zati_com.h
28220@@ -109,6 +109,9 @@
28221 /* ATIÔ´Ë÷Òý*/
28222 #define Z_ATI_SRCINDEX (BYTE)0xff
28223
28224+#define Z_ATI_PS_NORMAL (BYTE)0
28225+#define Z_ATI_PS_ABNORMAL (BYTE)1
28226+
28227
28228 /* ÈÎÎñÄ£¿éID */
28229 #define Z_ATI_TASKID_MMIA (BYTE)(SUBMDL_Z_ATI - SUBMDL_PSBASE)
28230@@ -1169,7 +1172,7 @@
28231 BYTE bSearchPlmnFg; /*¼Ç¼ÊÇ·ñ½øÐйýËÑÍø*/
28232 BYTE bZcwaFg; /*¼Ç¼ZCWAÉèÖõÄÖµ£¬0:ÊÕµ½waiting callʱֱ½Ó¾Ü¾ø²»Éϱ¨£¬1:Õý³£Éϱ¨*/
28233 BYTE bZemsciqIndex;/*¼Ç¼¹¤³Ìģʽ²éѯ¸ñʽ¶ÔÓ¦µÄË÷Òý*/
28234- BYTE bZemPadding;
28235+ BYTE bZemsciType;/*Çø·Ö¹¤³ÌģʽÖ÷¶¯Éϱ¨ÃüÁîÀàÐÍ,0-ZEMSCI,1-ZSCIND*/
28236 #ifdef Z_DUALSTANDBY
28237 BYTE bZpsStat; /*¼Ç¼PSÒµÎñ״̬*/
28238 #endif
28239@@ -1277,6 +1280,7 @@
28240 #ifdef DSDS_VSIM
28241 T_zAti_CardSitchStat tCardSwitch;
28242 #endif
28243+ BYTE bPsAbnormal;
28244 } T_zAti_Data;
28245
28246 typedef struct {
28247@@ -1788,7 +1792,7 @@
28248 BYTE zAti_GetRegState(VOID);
28249
28250 extern BOOL zAti_IsHasValidFg(BYTE *pbFg, BYTE bLen);
28251-
28252+extern VOID zAt_PsAbnormalStatusInd(BYTE bStat);
28253 extern VOID zAti_SetS0Value(BYTE bS0Value);
28254 extern BYTE zAti_GetS0Value(VOID);
28255 BYTE zAt_IsBeepCallNum(T_z_CallNum *ptCheckedNum);
28256diff --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
28257index 73cd495..8db7567 100755
28258--- a/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zati_int.h
28259+++ b/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zati_int.h
28260@@ -1496,6 +1496,9 @@
28261
28262 #define AP_MMIA_ZEPCG_SET (BYTE)0
28263 #define AP_MMIA_ZEPCG_QRY (BYTE)1
28264+
28265+#define Z_AT_ZEMSCI_IND (BYTE)0
28266+#define Z_AT_ZSCIND (BYTE)1
28267 /************************************************************************************
28268 * ½Ó¿ÚÊý¾Ý½á¹¹¶¨Òå *
28269 ************************************************************************************/
28270@@ -8704,9 +8707,27 @@
28271 */
28272 BYTE bAct;
28273 BYTE abPadding[3];
28274-}T_zApMmia_Rxlev_Cnf, T_zApMmia_ZRptRxlev_Ind;
28275+}T_zApMmia_Rxlev_Cnf;
28276
28277-
28278+typedef struct {
28279+ BYTE bSrcIndex;
28280+ BYTE bDesIndex;
28281+ BYTE bRxlev; /* ÐźÅÇ¿¶È
28282+ * TDDȡֵ£º100£­199 ÌØÊâÖµ 99
28283+ * GSMȡֵ£º0£­31 ÌØÊâÖµ 99
28284+ */
28285+ BYTE bBler; /* ÐŵÀÎóÂëÂÊ
28286+ * TDDȡֵ£ºTDÇé¿öÏ´ËÖµÎÞЧ£¬Îª99
28287+ * GSMȡֵ£ºbBler £º 0£­7 ÎÞЧֵ99
28288+ */
28289+ BYTE bAct;
28290+ BYTE bRsrq;/*LTE·þÎñÐ¡ÇøµÄRSRQ,ÎÞЧֵ0xff*/
28291+ BYTE bSinrInt; /*LTE·þÎñÐ¡ÇøµÄSINRµÄÕûÊýÖµ,ȡֵ·¶Î§0~60; ÕæÊµÖµ»ù´¡ÉϼÓ20;ÕæÊµÖµÈ¡Öµ·¶Î§: -20~40*/
28292+ BYTE bSinrDec; /*LTE·þÎñÐ¡ÇøµÄSINRȡֵ·¶Î§ 0~9*/
28293+ BYTE bRssiInt; /*LTE·þÎñÐ¡ÇøµÄRSSIµÄÕûÊýÖµ,ȡֵ·¶Î§0~133,0xffΪÎÞЧֵ; ÕæÊµÖµ»ù´¡ÉϼÓ129;ÕæÊµÖµÈ¡Öµ·¶Î§: -129~-4*/
28294+ BYTE bEcno; /*W·þÎñÐ¡ÇøµÄECNOµÄ²âÁ¿Öµ,ȡֵ·¶Î§0~49,0xffΪÎÞЧֵ*/
28295+ BYTE abPadding[2];
28296+}T_zApMmia_ZRptRxlev_Ind;
28297 /****************************************************************************
28298 Ô­Óï:Z_APMMIA_ZRptRxlevQueryCnf_Ev(MMMIA->ATI)
28299 ¹¦ÄÜ:²éѯÊÇ·ñÉèÖÃÁËÖ÷¶¯Éϱ¨ÐźÅÇ¿¶ÈµÄ»Ø¸´
28300diff --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
28301index 62cb645..5b9dc6a 100755
28302--- a/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zati_othr.h
28303+++ b/Uboot/cp/ps/modem/ps/src/nas/ati/inc/zati_othr.h
28304@@ -76,6 +76,7 @@
28305 VOID zAti_EM_CpyGrrCellInfo(T_z_CellInfo_Ind *ptApMmiaInd, T_zMmiaAs_EM_GCellInfo_Ind *ptMmiaAsInd);
28306 VOID zAti_EM_CpyUmcrCellInfo(T_z_CellInfo_Ind *ptApMmiaInd, T_zMmiaAs_EM_UCellInfo_Ind *ptMmiaAsInd);
28307 VOID zAti_EM_CpyEumcrCellInfo(T_z_CellInfo_Ind *ptApMmiaInd, T_zMmiaAs_EM_EUCellInfo_Ind *ptMmiaAsInd);
28308+VOID zAt_EM_CpyScellInfo(T_zEM_EmInfo_Ind *ptEmInfoInd, T_zAt_CellInfo_Ind *ptCellInfoInd);
28309 VOID zAti_ZulrtindTimerExpir(VOID);
28310 #endif
28311
28312diff --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
28313index 0aca45e..bd32a78 100755
28314--- a/Uboot/cp/ps/modem/ps/src/nas/ati/src/zat_fnc.c
28315+++ b/Uboot/cp/ps/modem/ps/src/nas/ati/src/zat_fnc.c
28316@@ -13095,7 +13095,12 @@
28317 if(!zAt_PsDecNextParamDecimalNumByteNeed( &prsCmd2Msg, strSubBuf, &pDecCmdStr, &zemciSetReq.bAction, NULL)
28318 || (zemciSetReq.bAction > Z_ATI_EM_TIMER_MAXLEN))
28319 {
28320- return zAt_GetParseRslt2(&prsCmd2Msg,ZAT2_CMD_PARAM_ERR);
28321+ return zAt_GetParseRslt2(&prsCmd2Msg, ZAT2_CMD_PARAM_ERR);
28322+ }
28323+
28324+ if(pDecCmdInfo->curCmdId == ZAT2_EM_ZSCIND)
28325+ {
28326+ zemciSetReq.bAtType = Z_AT_ZSCIND;
28327 }
28328
28329 return zAt_PsDecFinishParse(&prsCmd2Msg, pDecCmdStr, &zemciSetReq, sizeof(T_zMmiaAs_EM_CellInfo_Req), TRUE);
28330@@ -19458,7 +19463,9 @@
28331 T_zApMmia_ZRptRxlev_Ind *pZsqrInd = (T_zApMmia_ZRptRxlev_Ind*) pEncCmdInfo->pMsgBody;
28332
28333 /* +ZSQR: <rssi>[,<ber>] */
28334- return (UINT16)sprintf((char *)pEncCmdInfo->pStrCmd, "%s+ZSQR: %d,%d,%d%s", g_zAt_CRLF, pZsqrInd->bRssi, pZsqrInd->bBler, pZsqrInd->bAct, g_zAt_CRLF);
28335+ return (UINT16)sprintf((char *)pEncCmdInfo->pStrCmd, "%s+ZSQR: %d,%d,%d,%d,%d,%d,%d,%d%s", g_zAt_CRLF,
28336+ pZsqrInd->bRxlev, pZsqrInd->bBler, pZsqrInd->bAct, pZsqrInd->bEcno, pZsqrInd->bSinrInt, pZsqrInd->bSinrDec,
28337+ pZsqrInd->bRssiInt, pZsqrInd->bRsrq, g_zAt_CRLF);
28338 }
28339
28340
28341@@ -25952,6 +25959,30 @@
28342 prsCmd2Msg.decRslt2nd = ZAT2_CMD_REPLY_DIRECT;
28343 return prsCmd2Msg;
28344 }
28345+
28346+T_ZAt_ParseCmd2MsgRslt zAt_PsDecZpsabnormalQryReq(T_ZAt_DecCmdInfo * pDecCmdInfo)
28347+{
28348+ T_ZAt_ParseCmd2MsgRslt prsCmd2Msg = {0};
28349+
28350+ sprintf((char *)g_zAt_EncBuf, "%s+ZPSABNORMAL: %d%s%s", g_zAt_CRLF, g_zAti_ptData->bPsAbnormal, g_zAt_CRLF, g_zAt_OK);
28351+
28352+ prsCmd2Msg.decRslt2nd = ZAT2_CMD_REPLY_DIRECT;
28353+ return prsCmd2Msg;
28354+}
28355+
28356+VOID zAt_PsAbnormalStatusInd(BYTE bStat)
28357+{
28358+ UINT16 strLen=0;
28359+ CHAR abStr[30] = {0};
28360+
28361+ /*+ZPSABNORMAL: <status>*/
28362+ sprintf((char *)abStr, "%s+ZPSABNORMAL: %d%s", g_zAt_CRLF, bStat, g_zAt_CRLF);
28363+ strLen = (UINT16)strlen((const char *)abStr);
28364+
28365+ zAti_DeliverAllMsg(AP_MMIA_ZPSABNORMAL_IND_EV, abStr, strLen);
28366+
28367+ return;
28368+}
28369 /**************************************************************************
28370 * º¯ÊýÃû³Æ£º zAt_PsDecZtpmrReq
28371 * ¹¦ÄÜÃèÊö£º ¸ù¾ÝµÚ1²½½âÎö½á¹û£¬ÌîдÏûÏ¢¶ÔÓ¦µÄ½á¹¹Ìå
28372diff --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
28373index 4ac962d..7825509 100755
28374--- a/Uboot/cp/ps/modem/ps/src/nas/ati/src/zat_fnc_sup.c
28375+++ b/Uboot/cp/ps/modem/ps/src/nas/ati/src/zat_fnc_sup.c
28376@@ -5505,25 +5505,46 @@
28377 UINT16 __ps_static_func zAt_PsEncEmZemsciInd(T_ZAt_EncCmdInfo * pEncCmdInfo)
28378 {
28379 CHAR * pStrWalk = pEncCmdInfo->pStrCmd;
28380- WORD wInfoLen = sizeof(T_zEM_EmInfo_Ind);
28381+ WORD wInfoLen = 0;
28382 WORD wLen = 0;
28383 T_zEM_EmInfo_Ind *ptEmInfoInd = (T_zEM_EmInfo_Ind*)pEncCmdInfo->pMsgBody;
28384+ T_zAt_CellInfo_Ind *ptAtCellInfo = ZOSS_NULL;
28385
28386 /* ³¬³¤ÃüÁÐèÒª·ÖÅäZAT2_LONG_CMD_LEN * 2³¤¶È¿Õ¼ä */
28387 if (g_zAti_atDataEx[g_zAti_CurInstance].bCellInfSet != Z_APMMIA_EM_IND_DISABLE)
28388 {
28389 #ifndef BTRUNK_SUPPORT
28390- zAti_RetUB((VOID**)&pEncCmdInfo->pStrCmd);
28391- pEncCmdInfo->pStrCmd = (CHAR *)zAti_GetUB(sizeof(T_zEM_EmInfo_Ind) * 2 + 100);//100ÊÇΪÃüÁîÍ·ºÍÃüÁîβÁôµÄ
28392- pStrWalk = pEncCmdInfo->pStrCmd;
28393-
28394- pStrWalk += sprintf((char *)pStrWalk, "%s+ZEMSCI: ", g_zAt_CRLF);
28395-
28396- for(wLen = 0; wLen < wInfoLen; wLen++)
28397+ if(g_zAti_atDataEx[g_zAti_CurInstance].bZemsciType == Z_AT_ZSCIND)
28398 {
28399- pStrWalk += sprintf((char *)pStrWalk, "%02X", *((PBYTE)(ptEmInfoInd)+wLen));
28400- }
28401+ wInfoLen = sizeof(T_zAt_CellInfo_Ind);
28402+ ptAtCellInfo = (T_zAt_CellInfo_Ind*)zAti_GetUB(wInfoLen);
28403
28404+ zAt_EM_CpyScellInfo(ptEmInfoInd, ptAtCellInfo);
28405+
28406+ pStrWalk += sprintf((char *)pStrWalk, "%s+ZSCIND: ", g_zAt_CRLF);
28407+
28408+ for(wLen = 0; wLen < wInfoLen; wLen++)
28409+ {
28410+ pStrWalk += sprintf((char *)pStrWalk, "%02X", *((PBYTE)(ptAtCellInfo)+wLen));
28411+ }
28412+
28413+ zAti_RetUB((VOID**)&ptAtCellInfo);
28414+ }
28415+ else
28416+ {
28417+ zAti_RetUB((VOID**)&pEncCmdInfo->pStrCmd);
28418+ pEncCmdInfo->pStrCmd = (CHAR *)zAti_GetUB(sizeof(T_zEM_EmInfo_Ind) * 2 + 100);//100ÊÇΪÃüÁîÍ·ºÍÃüÁîβÁôµÄ
28419+ pStrWalk = pEncCmdInfo->pStrCmd;
28420+
28421+ pStrWalk += sprintf((char *)pStrWalk, "%s+ZEMSCI: ", g_zAt_CRLF);
28422+
28423+ wInfoLen = sizeof(T_zEM_EmInfo_Ind);
28424+
28425+ for(wLen = 0; wLen < wInfoLen; wLen++)
28426+ {
28427+ pStrWalk += sprintf((char *)pStrWalk, "%02X", *((PBYTE)(ptEmInfoInd)+wLen));
28428+ }
28429+ }
28430 sprintf((char *)pStrWalk, "%s", g_zAt_CRLF);
28431 #else
28432 if(ptEmInfoInd->bRatType == Z_LTE_ACT)
28433@@ -5583,25 +5604,47 @@
28434 UINT16 zAt_PsEncZemsciQCnf(T_ZAt_EncCmdInfo * pEncCmdInfo)
28435 {
28436 CHAR * pStrWalk = pEncCmdInfo->pStrCmd;
28437- WORD wInfoLen = sizeof(T_zEM_EmInfo_Ind);
28438+ WORD wInfoLen = 0;
28439 WORD wLen = 0;
28440 T_zEM_EmInfo_Ind *ptAscellInfoCnf = (T_zEM_EmInfo_Ind*)pEncCmdInfo->pMsgBody;
28441+ T_zAt_CellInfo_Ind *ptAtCellInfo = ZOSS_NULL;
28442
28443 if(Z_NO_ACT == ptAscellInfoCnf->bRatType)
28444 {
28445 zAti_SendExpt2TraceAgt(ERR_InvalidPara, TRACE_ERR_LEVEL_NORMAL,"");
28446 return zAt_EncErrorCode(pStrWalk, pEncCmdInfo->cmdId, ZAT2_CMEE_GETNOINFO_ERR);
28447 }
28448- zAti_RetUB((VOID**)&pEncCmdInfo->pStrCmd);
28449- pEncCmdInfo->pStrCmd = (CHAR *)zAti_GetUB(sizeof(T_zEM_EmInfo_Ind) * 2 + 100);//100ÊÇΪÃüÁîÍ·ºÍÃüÁîβÁôµÄ
28450- pStrWalk = pEncCmdInfo->pStrCmd;
28451
28452- pStrWalk += sprintf((char *)pStrWalk, "%s+ZEMSCIQ: ", g_zAt_CRLF);
28453- for(wLen = 0; wLen < wInfoLen; wLen++)
28454+ if(pEncCmdInfo->cmdId == ZAT2_EM_ZSCIQ)
28455 {
28456- pStrWalk += sprintf((char *)pStrWalk, "%02X", *((PBYTE)ptAscellInfoCnf+wLen));
28457- }
28458+ wInfoLen = sizeof(T_zAt_CellInfo_Ind);
28459+ ptAtCellInfo = (T_zAt_CellInfo_Ind*)zAti_GetUB(wInfoLen);
28460
28461+ zAt_EM_CpyScellInfo(ptAscellInfoCnf, ptAtCellInfo);
28462+
28463+ pStrWalk += sprintf((char *)pStrWalk, "%s+ZSCIQ: ", g_zAt_CRLF);
28464+
28465+ for(wLen = 0; wLen < wInfoLen; wLen++)
28466+ {
28467+ pStrWalk += sprintf((char *)pStrWalk, "%02X", *((PBYTE)ptAtCellInfo+wLen));
28468+ }
28469+
28470+ zAti_RetUB((VOID**)&ptAtCellInfo);
28471+ }
28472+ else
28473+ {
28474+ zAti_RetUB((VOID**)&pEncCmdInfo->pStrCmd);
28475+ pEncCmdInfo->pStrCmd = (CHAR *)zAti_GetUB(sizeof(T_zEM_EmInfo_Ind) * 2 + 100);//100ÊÇΪÃüÁîÍ·ºÍÃüÁîβÁôµÄ
28476+ pStrWalk = pEncCmdInfo->pStrCmd;
28477+
28478+ wInfoLen = sizeof(T_zEM_EmInfo_Ind);
28479+
28480+ pStrWalk += sprintf((char *)pStrWalk, "%s+ZEMSCIQ: ", g_zAt_CRLF);
28481+ for(wLen = 0; wLen < wInfoLen; wLen++)
28482+ {
28483+ pStrWalk += sprintf((char *)pStrWalk, "%02X", *((PBYTE)ptAscellInfoCnf+wLen));
28484+ }
28485+ }
28486 sprintf((char *)pStrWalk, "%s%s", g_zAt_CRLF, g_zAt_OK);
28487
28488 return (UINT16)strlen((const char *)pEncCmdInfo->pStrCmd);
28489diff --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
28490index 82ab961..3a6ce62 100755
28491--- a/Uboot/cp/ps/modem/ps/src/nas/ati/src/zat_var.c
28492+++ b/Uboot/cp/ps/modem/ps/src/nas/ati/src/zat_var.c
28493@@ -101,6 +101,7 @@
28494 { "+ZULRTIND", ZAT2_CFG_ZULRTIND, "" },
28495 { "+ZPOWSTAT", ZAT2_CFG_ZPOWSTAT, "+ZPOWSTAT: (0-2)" },
28496 { "+ZLOWPWR", ZAT2_CFG_ZLOWPWR, "+ZLOWPWR: (0,1)" },
28497+ { "+ZPSABNORMAL", ZAT2_CFG_ZPSABNORMAL, "" },
28498
28499 /********************************* MMÄ£¿é ************************************/
28500 { "+CREG", ZAT2_MM_CREG, "+CREG: (0-2)" },
28501@@ -391,6 +392,8 @@
28502 #if !defined (BTRUNK_SUPPORT) && (defined (_CHIP_ZX297520_LATER) || defined (_CHIP_ZX2804))
28503 { "+ZEMSCI", ZAT2_EM_ZEMSCI, "" },
28504 { "+ZEMSCIQ", ZAT2_EM_ZEMSCIQ, "" },
28505+ { "+ZSCIQ", ZAT2_EM_ZSCIQ, "" },
28506+ { "+ZSCIND", ZAT2_EM_ZSCIND, "" },
28507 #else
28508 { "+ZEMCI", ZAT2_EM_ZEMCI, "" },
28509 { "+ZEMCIQ", ZAT2_EM_ZEMCIQ, "" },
28510@@ -724,7 +727,11 @@
28511
28512 /***********************************+ZLOWPWR*********************************************/
28513 { ZAT2_CFG_ZLOWPWR, ZAT2_CO_SET_REQ, ATI_DISTRIBUTE_FUNC_ZLOWPWR_REQ_EV, zAt_PsDecZlowPwrSetReq },
28514- { ZAT2_CFG_ZLOWPWR, ZAT2_CO_QUERY_REQ, 0, zAt_PsDecZlowPwrQryReq},
28515+ { ZAT2_CFG_ZLOWPWR, ZAT2_CO_QUERY_REQ, 0, zAt_PsDecZlowPwrQryReq },
28516+
28517+ /***********************************+ZPSABNORMAL************************************/
28518+ { ZAT2_CFG_ZPSABNORMAL, ZAT2_CO_QUERY_REQ, 0, zAt_PsDecZpsabnormalQryReq },
28519+
28520 /***********************************************************************************************
28521 MMÄ£¿é
28522 ***********************************************************************************************/
28523@@ -1439,6 +1446,8 @@
28524 { ZAT2_EM_ZEMSCI, ZAT2_CO_QUERY_REQ, AP_MMIA_EM_CELL_INFO_QUERY_REQ_EV, zAt_PsDecCommonReq },
28525 { ZAT2_EM_ZEMSCIQ, ZAT2_CO_QUERY_REQ, ATI_DISTRIBUTE_FUNC_CELLINFO_QRY_REQ_EV, zAt_PsDecCommonReq},
28526 { ZAT2_EM_ZEMSCIQ, ZAT2_CO_SET_REQ, ATI_DISTRIBUTE_FUNC_CELLQRY_REQ_EV, zAt_PsDecEmZemsciqByIndexReq},
28527+ { ZAT2_EM_ZSCIND, ZAT2_CO_SET_REQ, ATI_DISTRIBUTE_FUNC_EM_CELL_INFO_REQ_EV, zAt_PsDecEmZemciSetReq},
28528+ { ZAT2_EM_ZSCIQ, ZAT2_CO_QUERY_REQ, ATI_DISTRIBUTE_FUNC_CELLINFO_QRY_REQ_EV, zAt_PsDecCommonReq},
28529 #else
28530 /******************************************* +ZEMCI *******************************************/
28531 { ZAT2_EM_ZEMCI, ZAT2_CO_SET_REQ, ATI_DISTRIBUTE_FUNC_EM_CELL_INFO_REQ_EV, zAt_PsDecEmZemciSetReq },
28532diff --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
28533index 9a3235c..3fb3142 100755
28534--- a/Uboot/cp/ps/modem/ps/src/nas/ati/src/zati_distribute_fnc.c
28535+++ b/Uboot/cp/ps/modem/ps/src/nas/ati/src/zati_distribute_fnc.c
28536@@ -2458,6 +2458,8 @@
28537 else
28538 {
28539 g_zAti_atDataEx[g_zAti_CurInstance].bCellInfSet = ptApMmiaReq->bAction;
28540+ g_zAti_atDataEx[g_zAti_CurInstance].bZemsciType = ptApMmiaReq->bAtType;
28541+
28542 sprintf((char *)g_zAt_EncBuf, "%s", g_zAt_OK);
28543 return Z_APMMIA_NOERROR_ERR;
28544 }
28545@@ -2709,21 +2711,26 @@
28546 ·µ »Ø£ºT_zApMmia_ZRptRxlev_Ind ½á¹¹Ö¸Õë
28547
28548 ************************************************************************/
28549-T_zApMmia_ZRptRxlev_Ind* __ps_2g_func zAti_CreateZRptRxlevIndMsg(BYTE bSourceIndex, BYTE bDestIndex, BYTE bRssi, BYTE bBler, BYTE bAct)
28550+T_zApMmia_ZRptRxlev_Ind* __ps_2g_func zAti_CreateZRptRxlevIndMsg(BYTE bRxlev, BYTE bBler, BYTE bAct, T_zMmiaAs_RptRxlev_Ind *ptAsInd)
28551 {
28552 T_zApMmia_ZRptRxlev_Ind * ptApInd = (T_zApMmia_ZRptRxlev_Ind*)zAti_GetUB(sizeof(T_zApMmia_ZRptRxlev_Ind));
28553
28554- ptApInd->bSrcIndex = bSourceIndex;
28555- ptApInd->bDesIndex = bDestIndex;
28556- ptApInd->bRssi = bRssi;
28557+ ptApInd->bRxlev = bRxlev;
28558 ptApInd->bBler = bBler;
28559 ptApInd->bAct = bAct;
28560+ ptApInd->bRsrq = ptAsInd->bRsrq;
28561+ ptApInd->bSinrInt = ptAsInd->bSinrInt;
28562+ ptApInd->bSinrDec = ptAsInd->bSinrDec;
28563+ ptApInd->bRssiInt = ptAsInd->bRssiInt;
28564+ ptApInd->bEcno = ptAsInd->bEcno;
28565
28566 return ptApInd;
28567 }
28568
28569 DWORD zAti_ZRptRxlevEnable (T_zApMmia_ZRptRxlev_Req *ptRxlevReq)
28570 {
28571+ T_zMmiaAs_RptRxlev_Ind tRptInd = {0};
28572+ T_zApMmia_ZRptRxlev_Ind *ptApInd = ZOSS_NULL;
28573 BYTE bRegState = Z_APMMIA_REGSTATE_UNKNOWN;
28574 BYTE bInsNo = ((g_zAti_CurInstance == Z_ATI_INSNO_1)? Z_ATI_INSNO_1 : Z_ATI_INSNO_2);
28575
28576@@ -2749,7 +2756,10 @@
28577
28578 if (bRegState == Z_APMMIA_REGSTATE_REGDENIED || bRegState == Z_APMMIA_REGSTATE_UNKNOWN)
28579 {
28580- T_zApMmia_ZRptRxlev_Ind *ptApInd = zAti_CreateZRptRxlevIndMsg(ptRxlevReq->bDesIndex, ptRxlevReq->bSrcIndex, 0, 99, Z_APMMIA_NOSERVE);
28581+ zOss_Memset(&tRptInd, 255, sizeof(T_zMmiaAs_RptRxlev_Ind));
28582+ ptApInd = zAti_CreateZRptRxlevIndMsg(0, 99, Z_APMMIA_NOSERVE, &tRptInd);
28583+ ptApInd->bDesIndex = ptRxlevReq->bSrcIndex;
28584+ ptApInd->bSrcIndex = ptRxlevReq->bDesIndex;
28585 zAti_MsgSend(AP_MMIA_ZRPT_RXLEVIND_EV, (PBYTE)ptApInd, sizeof(T_zApMmia_ZRptRxlev_Ind), Z_ATI_TASKID_ATI);
28586 }
28587 return zAti_ZRptRxlevProc (ptRxlevReq);
28588@@ -4817,6 +4827,10 @@
28589 if (Z_FAIL == ptRfCtrl->bResult) /* ʧ°Ü */
28590 {
28591 g_zAti_atDataEx[g_zAti_CurInstance].tFun.bFunBak = Z_ATI_INVALID_BYTE;
28592+
28593+ g_zAti_ptData->bPsAbnormal = Z_ATI_PS_ABNORMAL;
28594+ zAt_PsAbnormalStatusInd(Z_ATI_PS_ABNORMAL);
28595+
28596 return Z_APMMIA_UNKNOWN_ERR;
28597 }
28598 else /* ³É¹¦ */
28599@@ -4825,6 +4839,8 @@
28600 g_zAti_atDataEx[g_zAti_CurInstance].tFun.bRfVal = g_zAti_atDataEx[g_zAti_CurInstance].tFun.bFunBak;
28601 g_zAti_atDataEx[g_zAti_CurInstance].tFun.bFunBak = Z_ATI_INVALID_BYTE;
28602
28603+ g_zAti_ptData->bPsAbnormal = Z_ATI_PS_NORMAL;
28604+
28605 zDev_AtMemReadItem(Z_AtMem_ID_MmiaPrvtMem, 0, (PBYTE)&tAtData, g_zAti_CurInstance);
28606
28607 if (Z_APMMIA_CFUNFUN_FULLFUN == g_zAti_atDataEx[g_zAti_CurInstance].tFun.bFunVal)
28608@@ -7435,6 +7451,11 @@
28609 ºÍµ±Ç°ÎÞפÁôÇÒδËÑÍøÊ±²Å±¨£¬*/
28610 if (Z_VALID == zAti_ZsqrInvalidRxlevProc(&ptAsInd->bRxlev, &bAct))
28611 {
28612+ ptAsInd->bEcno = 0xff;
28613+ ptAsInd->bRsrq = 0xff;
28614+ ptAsInd->bRssiInt = 0xff;
28615+ ptAsInd->bSinrInt = 0xff;
28616+ ptAsInd->bSinrDec = 0xff;
28617 g_zAti_atDataEx[g_zAti_CurInstance].bPreLevel = 0xff;
28618 bRssi = zAti_GetTdRssi(ptAsInd->bRxlev);
28619 bAct = Z_APMMIA_NOSERVE;
28620@@ -7446,16 +7467,26 @@
28621 if (tTaskId == zDev_GetTaskId(Z_ATI_TASKID_EUMCR, 0) ||tTaskId == zDev_GetTaskId(Z_ATI_TASKID_EUMCR, 1))
28622 {
28623 flag = zAti_IsLtePowerLevelChng(ptAsInd->bRxlev);
28624+ ptAsInd->bEcno = 0xff;
28625 bAct = Z_APMMIA_LTE;
28626 }
28627 else if(tTaskId == zDev_GetTaskId(Z_ATI_TASKID_WMCR, 0) ||tTaskId == zDev_GetTaskId(Z_ATI_TASKID_WMCR, 1))
28628 {
28629 flag = zAti_IsWPowerLevelChng(ptAsInd->bRxlev);
28630+ ptAsInd->bRsrq = 0xff;
28631+ ptAsInd->bRssiInt = 0xff;
28632+ ptAsInd->bSinrInt = 0xff;
28633+ ptAsInd->bSinrDec = 0xff;
28634 bAct = Z_APMMIA_WCDMA;
28635 }
28636 else //MCR
28637 {
28638 flag = zAti_IsTdPowerLevelChng(ptAsInd->bRxlev);
28639+ ptAsInd->bEcno = 0xff;
28640+ ptAsInd->bRsrq = 0xff;
28641+ ptAsInd->bRssiInt = 0xff;
28642+ ptAsInd->bSinrInt = 0xff;
28643+ ptAsInd->bSinrDec = 0xff;
28644 bAct = Z_APMMIA_TDSCDMA;
28645 }
28646 }
28647@@ -7463,7 +7494,9 @@
28648 if (flag == Z_VALID)
28649 {
28650 bBler = (ptAsInd->bBlerFlg == Z_VALID)? ptAsInd->bBler : 99;
28651- ptApInd = zAti_CreateZRptRxlevIndMsg(0xfe, 0xff, bRssi, bBler, bAct);
28652+ ptApInd = zAti_CreateZRptRxlevIndMsg(bRssi, bBler, bAct, ptAsInd);
28653+ ptApInd->bDesIndex = 0xff;
28654+ ptApInd->bSrcIndex = 0xfe;
28655 zAti_RecvServerHandlerSlaver(AP_MMIA_ZRPT_RXLEVIND_EV, (UINT8 *)ptApInd, sizeof(T_zApMmia_ZRptRxlev_Ind));
28656 }
28657 }
28658@@ -7635,6 +7668,12 @@
28659 zAti_SendExpt2TraceAgt(ERR_InvalidPara, TRACE_ERR_LEVEL_SEVERE,"");
28660 return ;
28661 }
28662+
28663+ ptAsInd->bRsrq = 0xff;
28664+ ptAsInd->bSinrInt = 0xff;
28665+ ptAsInd->bSinrDec = 0xff;
28666+ ptAsInd->bRssiInt = 0xff;
28667+ ptAsInd->bEcno = 0xff;
28668 /*ÎÞЧֵ99Ê±ÖÆÊ½Í³Ò»±¨NOSERVE*/
28669 if(ptAsInd->bRxlev == 99)
28670 {
28671@@ -7657,7 +7696,9 @@
28672 if (flag == Z_VALID)
28673 {
28674 bBler = (ptAsInd->bBlerFlg == Z_VALID)? ptAsInd->bBler : 99;
28675- ptApInd = zAti_CreateZRptRxlevIndMsg(0xfe, 0xff, bRssi, bBler, bAct);
28676+ ptApInd = zAti_CreateZRptRxlevIndMsg(bRssi, bBler, bAct, ptAsInd);
28677+ ptApInd->bDesIndex = 0xff;
28678+ ptApInd->bSrcIndex = 0xfe;
28679 zAti_RecvServerHandlerSlaver(AP_MMIA_ZRPT_RXLEVIND_EV, (UINT8 *)ptApInd, sizeof(T_zApMmia_ZRptRxlev_Ind));
28680 }
28681 }
28682@@ -7784,11 +7825,13 @@
28683 g_zAti_atDataEx[g_zAti_CurInstance].bPreCsqAct = bAct;
28684 }
28685
28686- ptApRxlevCnf = (T_zApMmia_Rxlev_Cnf*)zAti_CreateZRptRxlevIndMsg(
28687- ptAsRptRxlevInd->bSrcIndex,
28688- ptAsRptRxlevInd->bDesIndex,
28689- zAti_GetGsmRssi(ptAsRptRxlevInd->bRxlev),
28690- (BYTE)((ptAsRptRxlevInd->bBlerFlg == Z_VALID)? ptAsRptRxlevInd->bBler : 99),bAct);
28691+ ptApRxlevCnf = (T_zApMmia_Rxlev_Cnf*)zAti_GetUB(sizeof(T_zApMmia_Rxlev_Cnf));
28692+
28693+ ptApRxlevCnf->bDesIndex = ptAsRptRxlevInd->bDesIndex;
28694+ ptApRxlevCnf->bSrcIndex = ptAsRptRxlevInd->bSrcIndex;
28695+ ptApRxlevCnf->bRssi = zAti_GetGsmRssi(ptAsRptRxlevInd->bRxlev);
28696+ ptApRxlevCnf->bBler = (ptAsRptRxlevInd->bBlerFlg == Z_VALID)? ptAsRptRxlevInd->bBler : 99;
28697+ ptApRxlevCnf->bAct = bAct;
28698
28699 zAti_RecvServerHandlerSlaver(AP_MMIA_RXLEV_CNF_EV, (UINT8 *)ptApRxlevCnf, sizeof(T_zApMmia_Rxlev_Cnf));
28700 }
28701diff --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
28702index ab3a03f..55236e0 100755
28703--- a/Uboot/cp/ps/modem/ps/src/nas/ati/src/zati_fnc.c
28704+++ b/Uboot/cp/ps/modem/ps/src/nas/ati/src/zati_fnc.c
28705@@ -3152,6 +3152,17 @@
28706 }
28707
28708 /**************************************************************************
28709+*º¯ÊýÃû³Æ:zAt_AddAtiTraceInfo
28710+*º¯Êý¹¦ÄÜ:ͨµÀ¶ÂÈûÐÅÏ¢¼ÓÈëά²âÐÅÏ¢
28711+**************************************************************************/
28712+VOID zAt_AddAtiTraceInfo(WORD wCmdId, BYTE bChnelID)
28713+{
28714+ BYTE bCurAct = zAti_GetCurAct_ByIndex(g_zAti_CurInstance);
28715+
28716+ zAs_AddNasTraceInfo(bCurAct, wCmdId, Z_CEER_ATI_ID, bChnelID);
28717+}
28718+
28719+/**************************************************************************
28720 * º¯ÊýÃû³Æ : zAti_ProcessCmd
28721 * ¹¦ÄÜÃèÊö : ´¦ÀíÉϲ㷢À´µÄÃüÁî
28722 * ²ÎÊý˵Ã÷£º (IN)£º
28723@@ -3178,6 +3189,10 @@
28724
28725 if ( ZAT2_NO_COMMAND != pChnelNode->cmd_id && ZAT2_CO_INVALID != pChnelNode->cmd_op)
28726 {
28727+ CHAR abStr[30] = {0};
28728+ sprintf(abStr, "Conflict Cmd id=%d\n", pChnelNode->cmd_id);
28729+ zAti_SendExpt2TraceAgt(ERR_InvalidMsg, TRACE_ERR_LEVEL_NORMAL, abStr);
28730+ zAt_AddAtiTraceInfo(pChnelNode->cmd_id, pChnelNode->iChnelId);
28731 zAti_ProcChnelConflict(pChnelNode);
28732 return;
28733 }
28734diff --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
28735index 32f9fe7..ea68869 100755
28736--- a/Uboot/cp/ps/modem/ps/src/nas/ati/src/zati_main.c
28737+++ b/Uboot/cp/ps/modem/ps/src/nas/ati/src/zati_main.c
28738@@ -392,7 +392,8 @@
28739 g_zAti_atDataEx[bInstance].tFun.bRfVal = Z_APMMIA_CFUNFUN_MINIFUN;
28740 zAti_RetUB((VOID **)&g_zAti_atDataEx[bInstance].ptUrrcHoInd);
28741 zAti_RetUB((VOID **)&g_zAti_atDataEx[bInstance].ptGrrcHoInd);
28742- g_zAti_atDataEx[bInstance].bCellInfSet = 0;
28743+ g_zAti_atDataEx[bInstance].bCellInfSet = 0;
28744+ g_zAti_atDataEx[bInstance].bZemsciType = 0;
28745 g_zAti_atDataEx[bInstance].bHoInfoSet = 0;
28746 g_zAti_atDataEx[bInstance].bZsqrSet = 0;
28747 g_zAti_atDataEx[bInstance].bRange = 0;
28748@@ -475,6 +476,7 @@
28749 g_zAti_ptData->bEModeType = 0xff;
28750 g_zAti_ptData->bPowerIndFlag = FALSE;
28751 g_zAti_ptData->bSmOnlyL2PFlag = FALSE;
28752+ g_zAti_ptData->bPsAbnormal = Z_ATI_PS_NORMAL;
28753 #ifdef DSDS_VSIM
28754 g_zAti_ptData->tCardSwitch.bSim1Stat = Z_ATI_CARD_ACT;
28755 g_zAti_ptData->tCardSwitch.bSim2Stat = Z_ATI_CARD_DEACT;
28756@@ -622,7 +624,8 @@
28757 g_zAti_atDataEx[bInstance].tFun.bFunVal = Z_APMMIA_CFUNFUN_MINIFUN;
28758 zAti_RetUB((VOID **)&g_zAti_atDataEx[bInstance].ptUrrcHoInd);
28759 zAti_RetUB((VOID **)&g_zAti_atDataEx[bInstance].ptGrrcHoInd);
28760- g_zAti_atDataEx[bInstance].bCellInfSet = 0;
28761+ g_zAti_atDataEx[bInstance].bCellInfSet = 0;
28762+ g_zAti_atDataEx[bInstance].bZemsciType = 0;
28763 g_zAti_atDataEx[bInstance].bHoInfoSet = 0;
28764 g_zAti_atDataEx[bInstance].bZsqrSet = 0;
28765 g_zAti_atDataEx[bInstance].bRange = 0;
28766@@ -687,6 +690,7 @@
28767 zAti_RetUB((VOID **)&g_zAti_atDataEx[bInstance].ptUrrcHoInd);
28768 zAti_RetUB((VOID **)&g_zAti_atDataEx[bInstance].ptGrrcHoInd);
28769 g_zAti_atDataEx[bInstance].bCellInfSet = 0;
28770+ g_zAti_atDataEx[bInstance].bZemsciType = 0;
28771 g_zAti_atDataEx[bInstance].bHoInfoSet = 0;
28772 g_zAti_atDataEx[bInstance].bZsqrSet = 0;
28773 g_zAti_atDataEx[bInstance].bRange = 0;
28774diff --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
28775index 6880eeb..a5009fd 100755
28776--- a/Uboot/cp/ps/modem/ps/src/nas/ati/src/zati_othr.c
28777+++ b/Uboot/cp/ps/modem/ps/src/nas/ati/src/zati_othr.c
28778@@ -1647,6 +1647,73 @@
28779 zAti_EM_CpyEumcrCellInfoLtePart(ptApMmiaInd, ptMmiaAsInd);
28780 }
28781
28782+VOID zAt_EM_CpyScellInfo(T_zEM_EmInfo_Ind *ptEmInfoInd, T_zAt_CellInfo_Ind *ptCellInfoInd)
28783+{
28784+ T_zEm_W_DchMeasInfo *ptDchInfo = ZOSS_NULL;
28785+ T_zEm_W_NotDchMeasInfo *ptNotDchInfo = ZOSS_NULL;
28786+
28787+ if(ptEmInfoInd == ZOSS_NULL || ptCellInfoInd == ZOSS_NULL)
28788+ {
28789+ return;
28790+ }
28791+
28792+ ptCellInfoInd->bRatType = ptEmInfoInd->bRatType;
28793+ ptCellInfoInd->bVersion = ptEmInfoInd->bVersion;
28794+ ptCellInfoInd->bDesIndex = ptEmInfoInd->bDesIndex;
28795+ ptCellInfoInd->bSrcIndex = ptEmInfoInd->bSrcIndex;
28796+
28797+ if(ptEmInfoInd->bRatType == Z_LTE_ACT)
28798+ {
28799+ ptCellInfoInd->uScellInfo.tLteScellInfo.dwEarfcn = ptEmInfoInd->uEmInfo.tLteEmInfo.tScellPara.tScellInfo.dwEarfcn;
28800+ ptCellInfoInd->uScellInfo.tLteScellInfo.dwCellId = ptEmInfoInd->uEmInfo.tLteEmInfo.tScellPara.tScellInfo.dwCellId;
28801+ ptCellInfoInd->uScellInfo.tLteScellInfo.wPci = ptEmInfoInd->uEmInfo.tLteEmInfo.tScellPara.tScellInfo.wPci;
28802+ ptCellInfoInd->uScellInfo.tLteScellInfo.wTac = ptEmInfoInd->uEmInfo.tLteEmInfo.tScellPara.tNasInfo.wTac;
28803+ ptCellInfoInd->uScellInfo.tLteScellInfo.tPlmnId = ptEmInfoInd->uEmInfo.tLteEmInfo.tScellPara.tNasInfo.tPlmnId;
28804+ ptCellInfoInd->uScellInfo.tLteScellInfo.bScellRsrp = ptEmInfoInd->uEmInfo.tLteEmInfo.tMeasInfo.bScellRsrp;
28805+ ptCellInfoInd->uScellInfo.tLteScellInfo.bScellRsrq = ptEmInfoInd->uEmInfo.tLteEmInfo.tMeasInfo.bScellRsrq;
28806+ ptCellInfoInd->uScellInfo.tLteScellInfo.bSinrInt = ptEmInfoInd->uEmInfo.tLteEmInfo.tScellPara.tNasInfo.bSinrInt;
28807+ ptCellInfoInd->uScellInfo.tLteScellInfo.bSinrDec = ptEmInfoInd->uEmInfo.tLteEmInfo.tScellPara.tNasInfo.bSinrDec;
28808+ ptCellInfoInd->uScellInfo.tLteScellInfo.bRssiInt = ptEmInfoInd->uEmInfo.tLteEmInfo.tScellPara.tNasInfo.bRssiInt;
28809+ }
28810+ else if(ptEmInfoInd->bRatType == Z_W_ACT)
28811+ {
28812+ ptCellInfoInd->uScellInfo.tWScellInfo.bStateInd = ptEmInfoInd->uEmInfo.tWEmInfo.bStateInd;
28813+ ptCellInfoInd->uScellInfo.tWScellInfo.dwCellId = ptEmInfoInd->uEmInfo.tWEmInfo.tCampPara.dwCellId;
28814+ ptCellInfoInd->uScellInfo.tWScellInfo.tPlmn = ptEmInfoInd->uEmInfo.tWEmInfo.tCampPara.tNasInfo.tPlmn;
28815+ ptCellInfoInd->uScellInfo.tWScellInfo.wLac = ptEmInfoInd->uEmInfo.tWEmInfo.tCampPara.tNasInfo.wLac;
28816+
28817+ if(ptEmInfoInd->uEmInfo.tWEmInfo.bStateInd == 0)
28818+ {
28819+ ptDchInfo = &ptEmInfoInd->uEmInfo.tWEmInfo.uWcellMeasInfo.tDchInfo;
28820+
28821+ ptCellInfoInd->uScellInfo.tWScellInfo.bRscp = ptDchInfo->tFreqAsVasInfo.tUsedFreqAsInfo.atAsVasCell[0].bRscp;
28822+ ptCellInfoInd->uScellInfo.tWScellInfo.wPsc = ptDchInfo->tFreqAsVasInfo.tUsedFreqAsInfo.atAsVasCell[0].wPsc;
28823+ ptCellInfoInd->uScellInfo.tWScellInfo.bEcNo = ptDchInfo->tFreqAsVasInfo.tUsedFreqAsInfo.atAsVasCell[0].bEcNo;
28824+ }
28825+ else
28826+ {
28827+ ptNotDchInfo = &ptEmInfoInd->uEmInfo.tWEmInfo.uWcellMeasInfo.tNotDchInfo;
28828+
28829+ ptCellInfoInd->uScellInfo.tWScellInfo.bRscp = ptNotDchInfo->tFddSCellReselInfo.tScellInfo.bRscp;
28830+ ptCellInfoInd->uScellInfo.tWScellInfo.wPsc = ptNotDchInfo->tFddSCellReselInfo.tScellInfo.wPsc;
28831+ ptCellInfoInd->uScellInfo.tWScellInfo.bEcNo = ptNotDchInfo->tFddSCellReselInfo.tScellInfo.bEcNo;
28832+ }
28833+ }
28834+ else if(ptEmInfoInd->bRatType == Z_GSM_ACT)
28835+ {
28836+ ptCellInfoInd->uScellInfo.tGsmScellInfo.dwCellId = ptEmInfoInd->uEmInfo.tGsmEmInfo.tScellPara.tScellInfo.dwCellId;
28837+ ptCellInfoInd->uScellInfo.tGsmScellInfo.wLac = ptEmInfoInd->uEmInfo.tGsmEmInfo.tScellPara.tNasInfo.wLac;
28838+ ptCellInfoInd->uScellInfo.tGsmScellInfo.tPlmn = ptEmInfoInd->uEmInfo.tGsmEmInfo.tScellPara.tNasInfo.tPlmn;
28839+ ptCellInfoInd->uScellInfo.tGsmScellInfo.bRssi = ptEmInfoInd->uEmInfo.tGsmEmInfo.tMeasInfo.bRssi;
28840+ ptCellInfoInd->uScellInfo.tGsmScellInfo.bBer = ptEmInfoInd->uEmInfo.tGsmEmInfo.tScellInfo.bBER;
28841+
28842+ if(ptCellInfoInd->uScellInfo.tGsmScellInfo.bBer == 255)
28843+ {
28844+ ptCellInfoInd->uScellInfo.tGsmScellInfo.bBer = 99;//¸úCSQÎÞЧֵ±£³ÖÒ»ÖÂ
28845+ }
28846+ }
28847+}
28848+
28849 VOID zAti_ZulrtindTimerExpir(VOID)
28850 {
28851 DWORD dwAckCnt = 0;
28852diff --git a/Uboot/cp/ps/plat/inc/oss/oss_sup.h b/Uboot/cp/ps/plat/inc/oss/oss_sup.h
28853index 686c318..313ccd4 100755
28854--- a/Uboot/cp/ps/plat/inc/oss/oss_sup.h
28855+++ b/Uboot/cp/ps/plat/inc/oss/oss_sup.h
28856@@ -462,7 +462,7 @@
28857 VOID zOss_RamPrintf(VOID);
28858
28859 /* ά²â */
28860-UINT32 zOss_DebugInfoRecord(UINT32 id, const VOID *pFormat, ...);
28861+UINT32 zOss_DebugInfoRecord(char *id, const VOID *pFormat, ...);
28862
28863 /* shellÄ£¿é */
28864 UINT32 zOss_AddShellCmd(const CHAR *cmd_name, const Shell_Func func, const CHAR *description);
28865diff --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
28866index fd355b2..8c87a48 100755
28867--- a/Uboot/cp/ps/plat/src/oss/sup/src/sup_except.c
28868+++ b/Uboot/cp/ps/plat/src/oss/sup/src/sup_except.c
28869@@ -371,7 +371,7 @@
28870 * ·µ »Ø Öµ£º ³É¹¦: дÈ볤¶È; ʧ°Ü: ZOSS_ERROR
28871 * ÆäËü˵Ã÷£º
28872 **************************************************************************/
28873-UINT32 zOss_DebugInfoRecord(UINT32 id, const VOID *pFormat, ...)
28874+UINT32 zOss_DebugInfoRecord(char *id, const VOID *pFormat, ...)
28875 {
28876 #ifdef _OS_WIN
28877 return ZOSS_ERROR;
28878@@ -387,7 +387,7 @@
28879 #endif
28880 }
28881 #else
28882-UINT32 zOss_DebugInfoRecord(UINT32 id, const VOID *pFormat, ...)
28883+UINT32 zOss_DebugInfoRecord(char *id, const VOID *pFormat, ...)
28884 {
28885 return ZOSS_SUCCESS;
28886 }
28887diff --git a/Uboot/pub/include/infra/pub_debug_info.h b/Uboot/pub/include/infra/pub_debug_info.h
28888index 10357aa..95a480f 100755
28889--- a/Uboot/pub/include/infra/pub_debug_info.h
28890+++ b/Uboot/pub/include/infra/pub_debug_info.h
28891@@ -6,62 +6,43 @@
28892 #define DEBUG_INFO_DEV_PATH "/dev/debug_info"
28893
28894 /* AP²àºÍCAP²àµÄPS\KERNEL\DRIVER\FS\APP ÒÔSTART~ENDÎªÇø¼ä£¬¸÷²¿·ÖÔ¤ÁôÁË100¸öID */
28895-#define MODULE_ID_PS_START (1)
28896-#define MODULE_ID_PS_NAS (1)
28897-#define MODULE_ID_PS_RRC (2)
28898-#define MODULE_ID_PS_L2 (3)
28899-#define MODULE_ID_PS_UICC (99)
28900-#define MODULE_ID_PS_END (100)
28901
28902-#define MODULE_ID_AP_KERNEL_START (101)
28903-#define MODULE_ID_AP_KERNEL_END (200)
28904+#define MODULE_ID_PS_NAS ("ps_nas")
28905+#define MODULE_ID_PS_RRC ("ps_rrc")
28906+#define MODULE_ID_PS_L2 ("ps_l2")
28907+#define MODULE_ID_PS_UICC ("ps_uicc")
28908+#define MODULE_ID_AP_USB ("ap_usb")
28909+#define MODULE_ID_AP_REBOOT ("ap_reboot")
28910+#define MODULE_ID_AP_TSC ("ap_tsc")
28911+#define MODULE_ID_AP_PSM ("ap_psm")
28912+#define MODULE_ID_AP_NAND ("ap_nand")
28913+#define MODULE_ID_AP_MMC ("ap_mmc")
28914+#define MODULE_ID_AP_WIFI ("ap_wifi")
28915
28916-#define MODULE_ID_CAP_KERNEL_START (201)
28917-#define MODULE_ID_CAP_KERNEL_END (300)
28918
28919-#define MODULE_ID_AP_DRIVES_START (301)
28920-#define MODULE_ID_AP_USB (301)
28921-#define MODULE_ID_AP_REBOOT (302)
28922-#define MODULE_ID_AP_TSC (303)
28923-#define MODULE_ID_AP_PSM (304)
28924-#define MODULE_ID_AP_NAND (305)
28925-#define MODULE_ID_AP_MMC (306)
28926-#define MODULE_ID_AP_WIFI (307)
28927-#define MODULE_ID_AP_DRIVES_END (400)
28928+#define MODULE_ID_CAP_USB ("cap_usb")
28929+#define MODULE_ID_CAP_TSC ("cap_tsc")
28930+#define MODULE_ID_CAP_PSM ("cap_psm")
28931+#define MODULE_ID_CAP_NAND ("cap_nand")
28932+#define MODULE_ID_CAP_SPI ("cap_spi")
28933+#define MODULE_ID_CAP_MMC ("cap_mmc")
28934+#define MODULE_ID_CAP_UART ("cap_uart")
28935+#define MODULE_ID_CAP_PM ("cap_pm")
28936
28937-#define MODULE_ID_CAP_DRIVES_START (401)
28938-#define MODULE_ID_CAP_USB (401)
28939-#define MODULE_ID_CAP_TSC (402)
28940-#define MODULE_ID_CAP_PSM (403)
28941-#define MODULE_ID_CAP_NAND (404)
28942-#define MODULE_ID_CAP_SPI (405)
28943-#define MODULE_ID_CAP_MMC (406)
28944-#define MODULE_ID_CAP_UART (407)
28945-#define MODULE_ID_CAP_DRIVES_END (500)
28946
28947-#define MODULE_ID_AP_FS_START (501)
28948-#define MODULE_ID_AP_JFFS2 (501)
28949-#define MODULE_ID_AP_FS_END (600)
28950+#define MODULE_ID_AP_JFFS2 ("ap_jffs2")
28951+#define MODULE_ID_AP_FOTA ("ap_fota")
28952+#define MODULE_ID_AP_FS_CHECK ("ap_fs_check")
28953
28954-#define MODULE_ID_CAP_FS_START (601)
28955-#define MODULE_ID_CAP_FS_END (700)
28956-
28957-#define MODULE_ID_AP_APP_START (701)
28958-#define MODULE_ID_AP_FOTA (701)
28959-#define MODULE_ID_AP_FS_CHECK (702)
28960-#define MODULE_ID_AP_APP_END (800)
28961-
28962-#define MODULE_ID_CAP_APP_START (801)
28963-#define MODULE_ID_CAP_FOTA (801)
28964-#define MODULE_ID_CAP_FS_CHECK (802)
28965-#define MODULE_ID_CAP_APP_END (900)
28966-
28967-#if defined(_USE_ZXIC_DEBUG_INFO) && !defined(CONFIG_SYSTEM_RECOVERY)
28968-int sc_debug_info_vrecord(unsigned int id, const char *format, va_list args);
28969-int sc_debug_info_record(unsigned int id, const char *format, ...);
28970+#define MODULE_ID_CAP_FOTA ("cap_fota")
28971+#define MODULE_ID_CAP_FS_CHECK ("cap_fs_check")
28972+
28973+#if defined(_USE_ZXIC_DEBUG_INFO)
28974+int sc_debug_info_vrecord(char *id, const char *format, va_list args);
28975+int sc_debug_info_record(char *id, const char *format, ...);
28976 #else
28977-static inline int sc_debug_info_vrecord(unsigned int id, const char *format, va_list args) { return 0; }
28978-static inline int sc_debug_info_record(unsigned int id, const char *format, ...) { return 0; }
28979+static inline int sc_debug_info_vrecord(char *id, const char *format, va_list args) { return 0; }
28980+static inline int sc_debug_info_record(char *id, const char *format, ...) { return 0; }
28981 #endif
28982
28983 #endif
28984\ No newline at end of file
28985diff --git a/Uboot/pub/include/ps_phy/atipsevent.h b/Uboot/pub/include/ps_phy/atipsevent.h
28986index 2bd5386..92e71e6 100755
28987--- a/Uboot/pub/include/ps_phy/atipsevent.h
28988+++ b/Uboot/pub/include/ps_phy/atipsevent.h
28989@@ -421,6 +421,7 @@
28990 #define AP_MMIA_ZCOPS_TEST_CNF_EV (DWORD)(AP_MMIA_MM_RSP_EVENT + 25)
28991 #define AP_MMIA_TIMEZONE_IND_EV (DWORD)(AP_MMIA_MM_RSP_EVENT + 26)
28992 #define AP_MMIA_ZULRTIND_IND_EV (DWORD)(AP_MMIA_MM_RSP_EVENT + 27)
28993+#define AP_MMIA_ZPSABNORMAL_IND_EV (DWORD)(AP_MMIA_MM_RSP_EVENT + 28)
28994 /* ========================================================================
28995 AP-MMIA CCÏà¹Ø²¿·ÖÏûÏ¢ºÅ
28996 ======================================================================== */
28997diff --git a/Uboot/pub/project/zx297520v3/include/drv/NvParam_drv.h b/Uboot/pub/project/zx297520v3/include/drv/NvParam_drv.h
28998index 66c6f6d..95c3158 100755
28999--- a/Uboot/pub/project/zx297520v3/include/drv/NvParam_drv.h
29000+++ b/Uboot/pub/project/zx297520v3/include/drv/NvParam_drv.h
29001@@ -214,8 +214,10 @@
29002 UINT8 isUseTxDtmfDet;
29003 UINT8 isUseRxMixData;
29004 UINT8 isUseTxMixData;//12
29005- UINT8 isUseEcall;
29006- UINT8 reserved[19];//32-13
29007+ UINT8 isUseEcall; //13
29008+ UINT8 isUseVoiceBuffer; //14 0 not use,1 use
29009+ UINT8 selVoiceBufferType; //15 0 single core, 1 dual core
29010+ UINT8 reserved[17];//32-15
29011
29012 } T_Audio_NvFlag;
29013
29014diff --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
29015index 6a1626d..edb3bfb 100755
29016--- a/Uboot/pub/project/zx297520v3/include/infra/ram_base_config_7520v3.h
29017+++ b/Uboot/pub/project/zx297520v3/include/infra/ram_base_config_7520v3.h
29018@@ -163,7 +163,7 @@
29019 #define DDR_BASE_OFF_CAP (DDR_BASE_OFF_CAP_BUF + DDR_BASE_LEN_CAP_BUF)
29020
29021 /* capºËµÄdtbµØÖ·¹©ubootºËcap kernelʹÓà */
29022-#define DDR_BASE_CAP_DTB_ADDR (DDR_BASE_ADDR_CAP_BUF + (0x00100000UL>>CPU_SHIFT))
29023+#define DDR_BASE_CAP_DTB_ADDR (DDR_BASE_ADDR_CAP_BUF + (0x00194000UL>>CPU_SHIFT))
29024 #else
29025 /* 42.75M£¬AP¹²ºË°æ±¾(´Ë´óСÊǰ´ÕÕº¬CAPºËµÄ64MÄÚ´æÅäÖö¨Ò壬¸Ãºê±ð´¦²»»á±»Ê¹ÓÃ) */
29026 #define DDR_BASE_ADDR_AP (DDR_BASE_ADDR_RAMDUMP + DDR_BASE_LEN_RAMDUMP)
29027@@ -253,6 +253,13 @@
29028 #define TEE_SHARE_BUF_ADDR (RAMDUMP_AP_TO_CAP_BUF_ADDR + RAMDUMP_AP_TO_CAP_BUF_LEN)
29029 #define TEE_SHARE_BUF_LEN ((384 * 1024UL)>>CPU_SHIFT)
29030
29031+/* psά²â¿Õ¼ä(Êý¾Ý + ¿ØÖÆ)¸´ÓÃAP_TO_CAPµÄramdump´æ´¢¿Õ¼ä */
29032+#define PS_DEBUG_INFO_LEN_ADDR (RAMDUMP_AP_TO_CAP_BUF_ADDR + ((4 * 1024UL)>>CPU_SHIFT))
29033+#define PS_DEBUG_INFO_LEN_SIZE ((4 * 1024UL)>>CPU_SHIFT)
29034+
29035+#define PS_DEBUG_INFO_ADDR (PS_DEBUG_INFO_LEN_ADDR + PS_DEBUG_INFO_LEN_SIZE)
29036+#define PS_DEBUG_INFO_SIZE ((64 * 1024UL)>>CPU_SHIFT)
29037+
29038 #define ICP_CAP_BUF_ADDR_PA DDR_BASE_CAPBUF_ADDR_PA
29039 #define TOOL_CAP_BUF_ADDR_PA (ICP_CAP_BUF_ADDR_PA + ICP_CAP_BUF_LEN)
29040 #define RINGBUF_CAP_TO_AP_ADDR_PA (TOOL_CAP_BUF_ADDR_PA + TOOL_CAP_BUF_LEN)
29041@@ -262,6 +269,9 @@
29042 #define TOOL_ZSP_TO_CAP_LOG_ADDR_PA (RINGBUF_AP_TO_CAP_ADDR_PA + RINGBUF_AP_TO_CAP_LEN)
29043 #define RAMDUMP_AP_TO_CAP_BUF_ADDR_PA (TOOL_ZSP_TO_CAP_LOG_ADDR_PA + TOOL_ZSP_TO_CAP_LOG_LEN)
29044 #define TEE_SHARE_BUF_ADDR_PA (RAMDUMP_AP_TO_CAP_BUF_ADDR_PA + RAMDUMP_AP_TO_CAP_BUF_LEN)
29045+
29046+#define PS_DEBUG_INFO_LEN_ADDR_PA (RAMDUMP_AP_TO_CAP_BUF_ADDR_PA + ((4 * 1024UL)>>CPU_SHIFT))
29047+#define PS_DEBUG_INFO_ADDR_PA (PS_DEBUG_INFO_LEN_ADDR_PA + PS_DEBUG_INFO_LEN_SIZE)
29048 #endif
29049
29050 /* 7520V3оƬIRAM0ѹËõ£¬Ð­ÒéÕ»ÎïÀí²ã½»»¥¿Õ¼äÒÆ¶¯µ½DDR£¬¸´ÓÃRamdump¿Õ¼ä */
29051diff --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
29052index 25435d8..e955a1c 100755
29053--- a/Uboot/rpm/project/zx297520v3/bin/tos/modem_7520v3/evb_cpurpm.elf
29054+++ b/Uboot/rpm/project/zx297520v3/bin/tos/modem_7520v3/evb_cpurpm.elf
29055Binary files differ
29056diff --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
29057index c177ef6..23e491e 100755
29058--- a/Uboot/rpm/project/zx297520v3/bin/tos/modem_7520v3/evb_cpurpm.img
29059+++ b/Uboot/rpm/project/zx297520v3/bin/tos/modem_7520v3/evb_cpurpm.img
29060Binary files differ
29061diff --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
29062index 0bc39a0..191ab18 100755
29063--- a/Uboot/rpm/project/zx297520v3/bin/tos/modem_7520v3/evb_cpurpm.map
29064+++ b/Uboot/rpm/project/zx297520v3/bin/tos/modem_7520v3/evb_cpurpm.map
29065@@ -246,9 +246,9 @@
29066 0x00000000 0xb8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29067 .text.zDrvSysSpinlock_SoftUnlock
29068 0x00000000 0x80 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29069- .rodata.__FUNCTION__.5142
29070+ .rodata.__FUNCTION__.5154
29071 0x00000000 0x1c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29072- .bss.lock_count.5134
29073+ .bss.lock_count.5146
29074 0x00000000 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29075 .text 0x00000000 0x0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
29076 .data 0x00000000 0x0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
29077@@ -429,22 +429,22 @@
29078 0x00000000 0x168 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
29079 .text.zDrvI2c_DevWrite_ByteStream
29080 0x00000000 0x140 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
29081- .rodata.__FUNCTION__.5357
29082+ .rodata.__FUNCTION__.5362
29083 0x00000000 0x1c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
29084- .rodata.__FUNCTION__.5298
29085+ .rodata.__FUNCTION__.5303
29086 0x00000000 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
29087- .rodata.__FUNCTION__.5376
29088+ .rodata.__FUNCTION__.5381
29089 0x00000000 0x1c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
29090- .rodata.__FUNCTION__.5318
29091+ .rodata.__FUNCTION__.5323
29092 0x00000000 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
29093- .rodata.__FUNCTION__.5278
29094+ .rodata.__FUNCTION__.5283
29095 0x00000000 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
29096 .text 0x00000000 0x0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
29097 .data 0x00000000 0x0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
29098 .bss 0x00000000 0x0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
29099 .text.wdt_set_switch
29100- 0x00000000 0x4c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
29101- .rodata.__FUNCTION__.5281
29102+ 0x00000000 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
29103+ .rodata.__FUNCTION__.5324
29104 0x00000000 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
29105 .text 0x00000000 0x0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
29106 .data 0x00000000 0x0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
29107@@ -453,10 +453,10 @@
29108 0x00000000 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
29109 .text.zDrvSysClk_IsAutoGate
29110 0x00000000 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
29111- .rodata.__FUNCTION__.5162
29112- 0x00000000 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
29113- .rodata.__FUNCTION__.5167
29114+ .rodata.__FUNCTION__.5172
29115 0x00000000 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
29116+ .rodata.__FUNCTION__.5167
29117+ 0x00000000 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
29118 .text 0x00000000 0x0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
29119 .data 0x00000000 0x0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
29120 .bss 0x00000000 0x0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
29121@@ -1449,7 +1449,7 @@
29122 0x000001f0 hal_virtual_vector_table_end = (hal_virtual_vector_table + 0x100)
29123 0x0000c000 hal_startup_stack = 0xc000
29124
29125-.debug_aranges 0x00000000 0x1530
29126+.debug_aranges 0x00000000 0x1540
29127 *(.debug_aranges)
29128 .debug_aranges
29129 0x00000000 0x20 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/vectors.o
29130@@ -1462,274 +1462,274 @@
29131 .debug_aranges
29132 0x000000f8 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_init.o)
29133 .debug_aranges
29134- 0x00000118 0x68 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29135+ 0x00000118 0x70 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29136 .debug_aranges
29137- 0x00000180 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
29138+ 0x00000188 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
29139 .debug_aranges
29140- 0x000001a8 0xa0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29141+ 0x000001b0 0xa0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29142 .debug_aranges
29143- 0x00000248 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
29144+ 0x00000250 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
29145 .debug_aranges
29146- 0x00000268 0xa8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29147+ 0x00000278 0xa8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29148 .debug_aranges
29149- 0x00000310 0x78 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
29150+ 0x00000320 0x78 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
29151 .debug_aranges
29152- 0x00000388 0x60 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
29153+ 0x00000398 0x60 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
29154 .debug_aranges
29155- 0x000003e8 0x70 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
29156+ 0x000003f8 0x70 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
29157 .debug_aranges
29158- 0x00000458 0x150 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
29159+ 0x00000468 0x150 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
29160 .debug_aranges
29161- 0x000005a8 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
29162+ 0x000005b8 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
29163 .debug_aranges
29164- 0x000005e8 0xa8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
29165+ 0x000005f8 0xa8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
29166 .debug_aranges
29167- 0x00000690 0x78 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
29168+ 0x000006a0 0x78 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
29169 .debug_aranges
29170- 0x00000708 0xa8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
29171+ 0x00000718 0xa8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
29172 .debug_aranges
29173- 0x000007b0 0x98 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
29174+ 0x000007c0 0x98 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
29175 .debug_aranges
29176- 0x00000848 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
29177+ 0x00000858 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
29178 .debug_aranges
29179- 0x00000860 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(int_cfg.o)
29180+ 0x00000870 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(int_cfg.o)
29181 .debug_aranges
29182- 0x00000878 0x38 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
29183+ 0x00000888 0x38 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
29184 .debug_aranges
29185- 0x000008b0 0xa8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
29186+ 0x000008c0 0xa8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
29187 .debug_aranges
29188- 0x00000958 0x60 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
29189+ 0x00000968 0x60 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
29190 .debug_aranges
29191- 0x000009b8 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
29192+ 0x000009c8 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
29193 .debug_aranges
29194- 0x000009e0 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
29195+ 0x000009f0 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
29196 .debug_aranges
29197- 0x00000a20 0xb8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
29198+ 0x00000a30 0xb8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
29199 .debug_aranges
29200- 0x00000ad8 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
29201+ 0x00000ae8 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
29202 .debug_aranges
29203- 0x00000b00 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
29204+ 0x00000b10 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
29205 .debug_aranges
29206- 0x00000b48 0xb0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
29207+ 0x00000b58 0xb0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
29208 .debug_aranges
29209- 0x00000bf8 0x48 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
29210+ 0x00000c08 0x48 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
29211 .debug_aranges
29212- 0x00000c40 0x28 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
29213+ 0x00000c50 0x28 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
29214 .debug_aranges
29215- 0x00000c68 0x30 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
29216+ 0x00000c78 0x30 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
29217 .debug_aranges
29218- 0x00000c98 0x20 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
29219+ 0x00000ca8 0x20 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
29220 .debug_aranges
29221- 0x00000cb8 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
29222+ 0x00000cc8 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
29223 .debug_aranges
29224- 0x00000cf0 0x3c8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
29225+ 0x00000d00 0x3c8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
29226 .debug_aranges
29227- 0x000010b8 0xe0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
29228+ 0x000010c8 0xe0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
29229 .debug_aranges
29230- 0x00001198 0xd0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
29231+ 0x000011a8 0xd0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
29232 .debug_aranges
29233- 0x00001268 0x90 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
29234+ 0x00001278 0x90 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
29235 .debug_aranges
29236- 0x000012f8 0x58 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
29237+ 0x00001308 0x58 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
29238 .debug_aranges
29239- 0x00001350 0x48 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
29240+ 0x00001360 0x48 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
29241 .debug_aranges
29242- 0x00001398 0x98 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
29243+ 0x000013a8 0x98 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
29244 .debug_aranges
29245- 0x00001430 0x20 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_context.o)
29246+ 0x00001440 0x20 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_context.o)
29247 .debug_aranges
29248- 0x00001450 0xe0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
29249+ 0x00001460 0xe0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
29250
29251 .debug_pubnames
29252 *(.debug_pubnames)
29253
29254-.debug_info 0x00000000 0x3172f
29255+.debug_info 0x00000000 0x31a2c
29256 *(.debug_info)
29257 .debug_info 0x00000000 0xbf K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/vectors.o
29258 .debug_info 0x000000bf 0x112 K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/SysEntry.o
29259 .debug_info 0x000001d1 0xbe K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/appstart.o
29260 .debug_info 0x0000028f 0x34f K:/rpm/project/zx297520v3/obj/tos/all/debug/os/tos/tos_irq.o
29261 .debug_info 0x000005de 0x23e K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_init.o)
29262- .debug_info 0x0000081c 0x934 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29263- .debug_info 0x00001150 0x3a4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
29264- .debug_info 0x000014f4 0x1bd4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29265- .debug_info 0x000030c8 0x367 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
29266- .debug_info 0x0000342f 0xe82 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29267- .debug_info 0x000042b1 0xf82 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
29268- .debug_info 0x00005233 0xf47 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
29269- .debug_info 0x0000617a 0x1cf6 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
29270- .debug_info 0x00007e70 0xb40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
29271- .debug_info 0x000089b0 0x8a8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
29272- .debug_info 0x00009258 0x2343 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
29273- .debug_info 0x0000b59b 0x2286 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
29274- .debug_info 0x0000d821 0x1825 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
29275- .debug_info 0x0000f046 0x1073 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
29276- .debug_info 0x000100b9 0x486 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
29277- .debug_info 0x0001053f 0xeb K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(int_cfg.o)
29278- .debug_info 0x0001062a 0xe0d K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
29279- .debug_info 0x00011437 0xf45 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
29280- .debug_info 0x0001237c 0x89f K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
29281- .debug_info 0x00012c1b 0x34e K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
29282- .debug_info 0x00012f69 0x368 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
29283- .debug_info 0x000132d1 0xbba K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
29284- .debug_info 0x00013e8b 0x4f4 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
29285- .debug_info 0x0001437f 0xa45 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
29286- .debug_info 0x00014dc4 0xc60 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
29287- .debug_info 0x00015a24 0x254 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
29288- .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)
29289- .debug_info 0x00015e2d 0x217 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
29290- .debug_info 0x00016044 0xd7 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
29291- .debug_info 0x0001611b 0x175d K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
29292- .debug_info 0x00017878 0x67a7 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
29293- .debug_info 0x0001e01f 0x445c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
29294- .debug_info 0x0002247b 0x2a7c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
29295- .debug_info 0x00024ef7 0x1fa9 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
29296- .debug_info 0x00026ea0 0x25c5 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
29297- .debug_info 0x00029465 0x2232 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
29298- .debug_info 0x0002b697 0x387d K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
29299- .debug_info 0x0002ef14 0xbf K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_context.o)
29300- .debug_info 0x0002efd3 0x275c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
29301+ .debug_info 0x0000081c 0xa3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29302+ .debug_info 0x00001258 0x3a4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
29303+ .debug_info 0x000015fc 0x1bd4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29304+ .debug_info 0x000031d0 0x3eb K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
29305+ .debug_info 0x000035bb 0xe82 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29306+ .debug_info 0x0000443d 0xf82 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
29307+ .debug_info 0x000053bf 0xf4e K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
29308+ .debug_info 0x0000630d 0x1cf6 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
29309+ .debug_info 0x00008003 0xb40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
29310+ .debug_info 0x00008b43 0x8a8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
29311+ .debug_info 0x000093eb 0x2343 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
29312+ .debug_info 0x0000b72e 0x228c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
29313+ .debug_info 0x0000d9ba 0x1989 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
29314+ .debug_info 0x0000f343 0x1073 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
29315+ .debug_info 0x000103b6 0x486 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
29316+ .debug_info 0x0001083c 0xeb K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(int_cfg.o)
29317+ .debug_info 0x00010927 0xe0d K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
29318+ .debug_info 0x00011734 0xf45 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
29319+ .debug_info 0x00012679 0x89f K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
29320+ .debug_info 0x00012f18 0x34e K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
29321+ .debug_info 0x00013266 0x368 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
29322+ .debug_info 0x000135ce 0xbba K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
29323+ .debug_info 0x00014188 0x4f4 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
29324+ .debug_info 0x0001467c 0xa45 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
29325+ .debug_info 0x000150c1 0xc60 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
29326+ .debug_info 0x00015d21 0x254 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
29327+ .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)
29328+ .debug_info 0x0001612a 0x217 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
29329+ .debug_info 0x00016341 0xd7 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
29330+ .debug_info 0x00016418 0x175d K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
29331+ .debug_info 0x00017b75 0x67a7 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
29332+ .debug_info 0x0001e31c 0x445c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
29333+ .debug_info 0x00022778 0x2a7c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
29334+ .debug_info 0x000251f4 0x1fa9 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
29335+ .debug_info 0x0002719d 0x25c5 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
29336+ .debug_info 0x00029762 0x2232 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
29337+ .debug_info 0x0002b994 0x387d K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
29338+ .debug_info 0x0002f211 0xbf K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_context.o)
29339+ .debug_info 0x0002f2d0 0x275c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
29340
29341-.debug_abbrev 0x00000000 0x80f5
29342+.debug_abbrev 0x00000000 0x8138
29343 *(.debug_abbrev)
29344 .debug_abbrev 0x00000000 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/vectors.o
29345 .debug_abbrev 0x00000014 0xab K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/SysEntry.o
29346 .debug_abbrev 0x000000bf 0x87 K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/appstart.o
29347 .debug_abbrev 0x00000146 0x187 K:/rpm/project/zx297520v3/obj/tos/all/debug/os/tos/tos_irq.o
29348 .debug_abbrev 0x000002cd 0xdd K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_init.o)
29349- .debug_abbrev 0x000003aa 0x278 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29350- .debug_abbrev 0x00000622 0x109 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
29351- .debug_abbrev 0x0000072b 0x3c2 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29352- .debug_abbrev 0x00000aed 0xd0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
29353- .debug_abbrev 0x00000bbd 0x378 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29354- .debug_abbrev 0x00000f35 0x30c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
29355- .debug_abbrev 0x00001241 0x29b K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
29356- .debug_abbrev 0x000014dc 0x407 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
29357- .debug_abbrev 0x000018e3 0x2f0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
29358- .debug_abbrev 0x00001bd3 0x21c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
29359- .debug_abbrev 0x00001def 0x2fb K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
29360- .debug_abbrev 0x000020ea 0x33b K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
29361- .debug_abbrev 0x00002425 0x304 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
29362- .debug_abbrev 0x00002729 0x216 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
29363- .debug_abbrev 0x0000293f 0xc6 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
29364- .debug_abbrev 0x00002a05 0x72 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(int_cfg.o)
29365- .debug_abbrev 0x00002a77 0x24c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
29366- .debug_abbrev 0x00002cc3 0x2b6 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
29367- .debug_abbrev 0x00002f79 0x1f3 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
29368- .debug_abbrev 0x0000316c 0x148 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
29369- .debug_abbrev 0x000032b4 0x1be K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
29370- .debug_abbrev 0x00003472 0x26f K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
29371- .debug_abbrev 0x000036e1 0x197 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
29372- .debug_abbrev 0x00003878 0x314 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
29373- .debug_abbrev 0x00003b8c 0x31c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
29374- .debug_abbrev 0x00003ea8 0x14d K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
29375- .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)
29376- .debug_abbrev 0x000040f9 0x167 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
29377- .debug_abbrev 0x00004260 0x9d K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
29378- .debug_abbrev 0x000042fd 0x3d2 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
29379- .debug_abbrev 0x000046cf 0x985 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
29380- .debug_abbrev 0x00005054 0x84e K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
29381- .debug_abbrev 0x000058a2 0x7cb K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
29382- .debug_abbrev 0x0000606d 0x5ba K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
29383- .debug_abbrev 0x00006627 0x735 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
29384- .debug_abbrev 0x00006d5c 0x5b6 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
29385- .debug_abbrev 0x00007312 0x62c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
29386- .debug_abbrev 0x0000793e 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_context.o)
29387- .debug_abbrev 0x00007952 0x7a3 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
29388+ .debug_abbrev 0x000003aa 0x283 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29389+ .debug_abbrev 0x0000062d 0x109 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
29390+ .debug_abbrev 0x00000736 0x3c2 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29391+ .debug_abbrev 0x00000af8 0x108 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
29392+ .debug_abbrev 0x00000c00 0x378 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29393+ .debug_abbrev 0x00000f78 0x30c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
29394+ .debug_abbrev 0x00001284 0x29b K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
29395+ .debug_abbrev 0x0000151f 0x407 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
29396+ .debug_abbrev 0x00001926 0x2f0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
29397+ .debug_abbrev 0x00001c16 0x21c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
29398+ .debug_abbrev 0x00001e32 0x2fb K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
29399+ .debug_abbrev 0x0000212d 0x33b K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
29400+ .debug_abbrev 0x00002468 0x304 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
29401+ .debug_abbrev 0x0000276c 0x216 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
29402+ .debug_abbrev 0x00002982 0xc6 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
29403+ .debug_abbrev 0x00002a48 0x72 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(int_cfg.o)
29404+ .debug_abbrev 0x00002aba 0x24c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
29405+ .debug_abbrev 0x00002d06 0x2b6 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
29406+ .debug_abbrev 0x00002fbc 0x1f3 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
29407+ .debug_abbrev 0x000031af 0x148 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
29408+ .debug_abbrev 0x000032f7 0x1be K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
29409+ .debug_abbrev 0x000034b5 0x26f K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
29410+ .debug_abbrev 0x00003724 0x197 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
29411+ .debug_abbrev 0x000038bb 0x314 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
29412+ .debug_abbrev 0x00003bcf 0x31c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
29413+ .debug_abbrev 0x00003eeb 0x14d K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
29414+ .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)
29415+ .debug_abbrev 0x0000413c 0x167 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
29416+ .debug_abbrev 0x000042a3 0x9d K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
29417+ .debug_abbrev 0x00004340 0x3d2 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
29418+ .debug_abbrev 0x00004712 0x985 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
29419+ .debug_abbrev 0x00005097 0x84e K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
29420+ .debug_abbrev 0x000058e5 0x7cb K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
29421+ .debug_abbrev 0x000060b0 0x5ba K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
29422+ .debug_abbrev 0x0000666a 0x735 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
29423+ .debug_abbrev 0x00006d9f 0x5b6 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
29424+ .debug_abbrev 0x00007355 0x62c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
29425+ .debug_abbrev 0x00007981 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_context.o)
29426+ .debug_abbrev 0x00007995 0x7a3 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
29427
29428-.debug_line 0x00000000 0x94e0
29429+.debug_line 0x00000000 0x957c
29430 *(.debug_line)
29431 .debug_line 0x00000000 0xf0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/vectors.o
29432 .debug_line 0x000000f0 0x8e K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/SysEntry.o
29433 .debug_line 0x0000017e 0xb0 K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/appstart.o
29434 .debug_line 0x0000022e 0x178 K:/rpm/project/zx297520v3/obj/tos/all/debug/os/tos/tos_irq.o
29435 .debug_line 0x000003a6 0xa4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_init.o)
29436- .debug_line 0x0000044a 0x24f K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29437- .debug_line 0x00000699 0xd8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
29438- .debug_line 0x00000771 0x493 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29439- .debug_line 0x00000c04 0xac K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
29440- .debug_line 0x00000cb0 0x345 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29441- .debug_line 0x00000ff5 0x2b3 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
29442- .debug_line 0x000012a8 0x288 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
29443- .debug_line 0x00001530 0x3c4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
29444- .debug_line 0x000018f4 0x568 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
29445- .debug_line 0x00001e5c 0x147 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
29446- .debug_line 0x00001fa3 0x5ea K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
29447- .debug_line 0x0000258d 0x52c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
29448- .debug_line 0x00002ab9 0x3b2 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
29449- .debug_line 0x00002e6b 0x2ff K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
29450- .debug_line 0x0000316a 0x96 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
29451- .debug_line 0x00003200 0x82 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(int_cfg.o)
29452- .debug_line 0x00003282 0x19b K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
29453- .debug_line 0x0000341d 0x319 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
29454- .debug_line 0x00003736 0x192 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
29455- .debug_line 0x000038c8 0xda K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
29456- .debug_line 0x000039a2 0x1d3 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
29457- .debug_line 0x00003b75 0x32f K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
29458- .debug_line 0x00003ea4 0x110 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
29459- .debug_line 0x00003fb4 0x317 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
29460- .debug_line 0x000042cb 0x486 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
29461- .debug_line 0x00004751 0x18c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
29462- .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)
29463- .debug_line 0x00004a49 0x156 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
29464- .debug_line 0x00004b9f 0x126 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
29465- .debug_line 0x00004cc5 0x1d2 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
29466- .debug_line 0x00004e97 0x1292 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
29467- .debug_line 0x00006129 0xddd K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
29468- .debug_line 0x00006f06 0x593 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
29469- .debug_line 0x00007499 0x3eb K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
29470- .debug_line 0x00007884 0x526 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
29471- .debug_line 0x00007daa 0x4b7 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
29472- .debug_line 0x00008261 0xabe K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
29473- .debug_line 0x00008d1f 0xb9 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_context.o)
29474- .debug_line 0x00008dd8 0x708 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
29475+ .debug_line 0x0000044a 0x29f K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29476+ .debug_line 0x000006e9 0xd8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
29477+ .debug_line 0x000007c1 0x493 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29478+ .debug_line 0x00000c54 0xe2 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
29479+ .debug_line 0x00000d36 0x345 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29480+ .debug_line 0x0000107b 0x2b3 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
29481+ .debug_line 0x0000132e 0x288 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
29482+ .debug_line 0x000015b6 0x3c4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
29483+ .debug_line 0x0000197a 0x568 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
29484+ .debug_line 0x00001ee2 0x147 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
29485+ .debug_line 0x00002029 0x5ea K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
29486+ .debug_line 0x00002613 0x52c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
29487+ .debug_line 0x00002b3f 0x3c8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
29488+ .debug_line 0x00002f07 0x2ff K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
29489+ .debug_line 0x00003206 0x96 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
29490+ .debug_line 0x0000329c 0x82 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(int_cfg.o)
29491+ .debug_line 0x0000331e 0x19b K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
29492+ .debug_line 0x000034b9 0x319 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
29493+ .debug_line 0x000037d2 0x192 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
29494+ .debug_line 0x00003964 0xda K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
29495+ .debug_line 0x00003a3e 0x1d3 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
29496+ .debug_line 0x00003c11 0x32f K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
29497+ .debug_line 0x00003f40 0x110 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
29498+ .debug_line 0x00004050 0x317 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
29499+ .debug_line 0x00004367 0x486 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
29500+ .debug_line 0x000047ed 0x18c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
29501+ .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)
29502+ .debug_line 0x00004ae5 0x156 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
29503+ .debug_line 0x00004c3b 0x126 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
29504+ .debug_line 0x00004d61 0x1d2 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
29505+ .debug_line 0x00004f33 0x1292 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
29506+ .debug_line 0x000061c5 0xddd K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
29507+ .debug_line 0x00006fa2 0x593 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
29508+ .debug_line 0x00007535 0x3eb K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
29509+ .debug_line 0x00007920 0x526 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
29510+ .debug_line 0x00007e46 0x4b7 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
29511+ .debug_line 0x000082fd 0xabe K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
29512+ .debug_line 0x00008dbb 0xb9 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_context.o)
29513+ .debug_line 0x00008e74 0x708 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
29514
29515-.debug_frame 0x00000000 0x37a8
29516+.debug_frame 0x00000000 0x37ec
29517 *(.debug_frame)
29518 .debug_frame 0x00000000 0x28 K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/SysEntry.o
29519 .debug_frame 0x00000028 0x38 K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/appstart.o
29520 .debug_frame 0x00000060 0x120 K:/rpm/project/zx297520v3/obj/tos/all/debug/os/tos/tos_irq.o
29521 .debug_frame 0x00000180 0x2c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_init.o)
29522- .debug_frame 0x000001ac 0x13c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29523- .debug_frame 0x000002e8 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
29524- .debug_frame 0x00000328 0x220 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29525- .debug_frame 0x00000548 0x2c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
29526- .debug_frame 0x00000574 0x194 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29527- .debug_frame 0x00000708 0x13c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
29528- .debug_frame 0x00000844 0x128 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
29529- .debug_frame 0x0000096c 0x128 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
29530- .debug_frame 0x00000a94 0x310 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
29531- .debug_frame 0x00000da4 0x70 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
29532- .debug_frame 0x00000e14 0x1c4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
29533- .debug_frame 0x00000fd8 0x1a8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
29534- .debug_frame 0x00001180 0x1f8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
29535- .debug_frame 0x00001378 0x1d0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
29536- .debug_frame 0x00001548 0x7c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
29537- .debug_frame 0x000015c4 0x1c0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
29538- .debug_frame 0x00001784 0x118 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
29539- .debug_frame 0x0000189c 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
29540- .debug_frame 0x000018e0 0x7c K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
29541- .debug_frame 0x0000195c 0x1f8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
29542- .debug_frame 0x00001b54 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
29543- .debug_frame 0x00001b9c 0xb8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
29544- .debug_frame 0x00001c54 0x1d0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
29545- .debug_frame 0x00001e24 0x98 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
29546- .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)
29547- .debug_frame 0x00001ef4 0x50 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
29548- .debug_frame 0x00001f44 0x28 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
29549- .debug_frame 0x00001f6c 0x6c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
29550- .debug_frame 0x00001fd8 0xadc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
29551- .debug_frame 0x00002ab4 0x2e0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
29552- .debug_frame 0x00002d94 0x24c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
29553- .debug_frame 0x00002fe0 0x15c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
29554- .debug_frame 0x0000313c 0xe8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
29555- .debug_frame 0x00003224 0xcc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
29556- .debug_frame 0x000032f0 0x214 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
29557- .debug_frame 0x00003504 0x254 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
29558- .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)
29559- .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)
29560+ .debug_frame 0x000001ac 0x168 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29561+ .debug_frame 0x00000314 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
29562+ .debug_frame 0x00000354 0x220 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29563+ .debug_frame 0x00000574 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
29564+ .debug_frame 0x000005b8 0x194 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29565+ .debug_frame 0x0000074c 0x13c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
29566+ .debug_frame 0x00000888 0x128 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
29567+ .debug_frame 0x000009b0 0x128 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
29568+ .debug_frame 0x00000ad8 0x310 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
29569+ .debug_frame 0x00000de8 0x70 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
29570+ .debug_frame 0x00000e58 0x1c4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
29571+ .debug_frame 0x0000101c 0x1a8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
29572+ .debug_frame 0x000011c4 0x1f8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
29573+ .debug_frame 0x000013bc 0x1d0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
29574+ .debug_frame 0x0000158c 0x7c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
29575+ .debug_frame 0x00001608 0x1c0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
29576+ .debug_frame 0x000017c8 0x118 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
29577+ .debug_frame 0x000018e0 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
29578+ .debug_frame 0x00001924 0x7c K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
29579+ .debug_frame 0x000019a0 0x1f8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
29580+ .debug_frame 0x00001b98 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
29581+ .debug_frame 0x00001be0 0xb8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
29582+ .debug_frame 0x00001c98 0x1d0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
29583+ .debug_frame 0x00001e68 0x98 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
29584+ .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)
29585+ .debug_frame 0x00001f38 0x50 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
29586+ .debug_frame 0x00001f88 0x28 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
29587+ .debug_frame 0x00001fb0 0x6c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
29588+ .debug_frame 0x0000201c 0xadc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
29589+ .debug_frame 0x00002af8 0x2e0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
29590+ .debug_frame 0x00002dd8 0x24c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
29591+ .debug_frame 0x00003024 0x15c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
29592+ .debug_frame 0x00003180 0xe8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
29593+ .debug_frame 0x00003268 0xcc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
29594+ .debug_frame 0x00003334 0x214 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
29595+ .debug_frame 0x00003548 0x254 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
29596+ .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)
29597+ .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)
29598
29599-.debug_str 0x00000000 0xb073
29600+.debug_str 0x00000000 0xb0f6
29601 *(.debug_str)
29602 .debug_str 0x00000000 0xec K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/SysEntry.o
29603 0x12c (size before relaxing)
29604@@ -1739,125 +1739,125 @@
29605 0x23b (size before relaxing)
29606 .debug_str 0x000002dd 0x3c6 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_init.o)
29607 0x491 (size before relaxing)
29608- .debug_str 0x000006a3 0x3e7 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29609- 0x809 (size before relaxing)
29610- .debug_str 0x00000a8a 0x2d3 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
29611+ .debug_str 0x000006a3 0x42c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29612+ 0x85a (size before relaxing)
29613+ .debug_str 0x00000acf 0x2d3 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
29614 0x6e3 (size before relaxing)
29615- .debug_str 0x00000d5d 0x80e K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29616+ .debug_str 0x00000da2 0x80e K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29617 0xdd8 (size before relaxing)
29618- .debug_str 0x0000156b 0xb6 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
29619- 0x68e (size before relaxing)
29620- .debug_str 0x00001621 0x513 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29621+ .debug_str 0x000015b0 0xfc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
29622+ 0x6e1 (size before relaxing)
29623+ .debug_str 0x000016ac 0x513 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29624 0xc6c (size before relaxing)
29625- .debug_str 0x00001b34 0x4ae K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
29626+ .debug_str 0x00001bbf 0x4ae K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
29627 0xcdf (size before relaxing)
29628- .debug_str 0x00001fe2 0x8ba K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
29629- 0xdc3 (size before relaxing)
29630- .debug_str 0x0000289c 0xb59 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
29631+ .debug_str 0x0000206d 0x8ba K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
29632+ 0xdce (size before relaxing)
29633+ .debug_str 0x00002927 0xb59 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
29634 0x18df (size before relaxing)
29635- .debug_str 0x000033f5 0x434 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
29636+ .debug_str 0x00003480 0x434 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
29637 0x567 (size before relaxing)
29638- .debug_str 0x00003829 0x16a K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
29639+ .debug_str 0x000038b4 0x16a K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
29640 0x827 (size before relaxing)
29641- .debug_str 0x00003993 0xd33 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
29642+ .debug_str 0x00003a1e 0xd33 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
29643 0x15c4 (size before relaxing)
29644- .debug_str 0x000046c6 0x5d2 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
29645- 0xf68 (size before relaxing)
29646- .debug_str 0x00004c98 0x33c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
29647- 0xff2 (size before relaxing)
29648- .debug_str 0x00004fd4 0x236 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
29649+ .debug_str 0x00004751 0x5ca K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
29650+ 0xf77 (size before relaxing)
29651+ .debug_str 0x00004d1b 0x33c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
29652+ 0x11ea (size before relaxing)
29653+ .debug_str 0x00005057 0x236 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
29654 0xbc6 (size before relaxing)
29655- .debug_str 0x0000520a 0x37 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
29656+ .debug_str 0x0000528d 0x37 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
29657 0x5fd (size before relaxing)
29658- .debug_str 0x00005241 0x33 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(int_cfg.o)
29659+ .debug_str 0x000052c4 0x33 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(int_cfg.o)
29660 0x127 (size before relaxing)
29661- .debug_str 0x00005274 0x17a K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
29662+ .debug_str 0x000052f7 0x17a K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
29663 0x10a1 (size before relaxing)
29664- .debug_str 0x000053ee 0x8fc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
29665+ .debug_str 0x00005471 0x8fc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
29666 0xec6 (size before relaxing)
29667- .debug_str 0x00005cea 0xc7 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
29668+ .debug_str 0x00005d6d 0xc7 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
29669 0x777 (size before relaxing)
29670- .debug_str 0x00005db1 0xc6 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
29671+ .debug_str 0x00005e34 0xc6 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
29672 0x527 (size before relaxing)
29673- .debug_str 0x00005e77 0x1b6 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
29674+ .debug_str 0x00005efa 0x1b6 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
29675 0x2ba (size before relaxing)
29676- .debug_str 0x0000602d 0x653 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
29677+ .debug_str 0x000060b0 0x653 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
29678 0x84d (size before relaxing)
29679- .debug_str 0x00006680 0xac K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
29680+ .debug_str 0x00006703 0xac K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
29681 0x703 (size before relaxing)
29682- .debug_str 0x0000672c 0x260 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
29683+ .debug_str 0x000067af 0x260 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
29684 0x54c (size before relaxing)
29685- .debug_str 0x0000698c 0x3bb K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
29686+ .debug_str 0x00006a0f 0x3bb K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
29687 0x55f (size before relaxing)
29688- .debug_str 0x00006d47 0x132 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
29689+ .debug_str 0x00006dca 0x132 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
29690 0x280 (size before relaxing)
29691- .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)
29692+ .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)
29693 0x1de (size before relaxing)
29694- .debug_str 0x00006f34 0xda K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
29695+ .debug_str 0x00006fb7 0xda K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
29696 0x1fc (size before relaxing)
29697- .debug_str 0x0000700e 0xbc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
29698+ .debug_str 0x00007091 0xbc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
29699 0x16e (size before relaxing)
29700- .debug_str 0x000070ca 0x14c4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
29701+ .debug_str 0x0000714d 0x14c4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
29702 0x194b (size before relaxing)
29703- .debug_str 0x0000858e 0x1b2a K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
29704+ .debug_str 0x00008611 0x1b2a K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
29705 0x38f7 (size before relaxing)
29706- .debug_str 0x0000a0b8 0x774 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
29707+ .debug_str 0x0000a13b 0x774 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
29708 0x2380 (size before relaxing)
29709- .debug_str 0x0000a82c 0x232 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
29710+ .debug_str 0x0000a8af 0x232 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
29711 0x2365 (size before relaxing)
29712- .debug_str 0x0000aa5e 0xdb K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
29713+ .debug_str 0x0000aae1 0xdb K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
29714 0x1f06 (size before relaxing)
29715- .debug_str 0x0000ab39 0x179 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
29716+ .debug_str 0x0000abbc 0x179 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
29717 0x22c8 (size before relaxing)
29718- .debug_str 0x0000acb2 0xa4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
29719+ .debug_str 0x0000ad35 0xa4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
29720 0x1c8c (size before relaxing)
29721- .debug_str 0x0000ad56 0xe5 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
29722+ .debug_str 0x0000add9 0xe5 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
29723 0x1ec0 (size before relaxing)
29724- .debug_str 0x0000ae3b 0x238 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
29725+ .debug_str 0x0000aebe 0x238 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
29726 0x14ca (size before relaxing)
29727
29728-.debug_loc 0x00000000 0x147e4
29729+.debug_loc 0x00000000 0x14b33
29730 *(.debug_loc)
29731 .debug_loc 0x00000000 0x20 K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/SysEntry.o
29732 .debug_loc 0x00000020 0x20 K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/appstart.o
29733 .debug_loc 0x00000040 0x160 K:/rpm/project/zx297520v3/obj/tos/all/debug/os/tos/tos_irq.o
29734 .debug_loc 0x000001a0 0x47 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_init.o)
29735- .debug_loc 0x000001e7 0x552 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29736- .debug_loc 0x00000739 0x165 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
29737- .debug_loc 0x0000089e 0x1238 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29738- .debug_loc 0x00001ad6 0x70 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
29739- .debug_loc 0x00001b46 0x7cc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29740- .debug_loc 0x00002312 0x60c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
29741- .debug_loc 0x0000291e 0xae3 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
29742- .debug_loc 0x00003401 0x711 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
29743- .debug_loc 0x00003b12 0x572 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
29744- .debug_loc 0x00004084 0x116 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
29745- .debug_loc 0x0000419a 0x1686 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
29746- .debug_loc 0x00005820 0x1fed K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
29747- .debug_loc 0x0000780d 0x90e K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
29748- .debug_loc 0x0000811b 0xe69 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
29749- .debug_loc 0x00008f84 0x512 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
29750- .debug_loc 0x00009496 0xb9b K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
29751- .debug_loc 0x0000a031 0x6c6 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
29752- .debug_loc 0x0000a6f7 0xdc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
29753- .debug_loc 0x0000a7d3 0x1b7 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
29754- .debug_loc 0x0000a98a 0x658 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
29755- .debug_loc 0x0000afe2 0x15b K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
29756- .debug_loc 0x0000b13d 0xb70 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
29757- .debug_loc 0x0000bcad 0x7e0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
29758- .debug_loc 0x0000c48d 0x147 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
29759- .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)
29760- .debug_loc 0x0000c5f4 0xed K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
29761- .debug_loc 0x0000c6e1 0x20 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
29762- .debug_loc 0x0000c701 0x146 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
29763- .debug_loc 0x0000c847 0x2a0e K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
29764- .debug_loc 0x0000f255 0x1cf1 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
29765- .debug_loc 0x00010f46 0x87e K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
29766- .debug_loc 0x000117c4 0x58e K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
29767- .debug_loc 0x00011d52 0x6e8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
29768- .debug_loc 0x0001243a 0x5c7 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
29769- .debug_loc 0x00012a01 0xfdc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
29770- .debug_loc 0x000139dd 0xe07 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
29771+ .debug_loc 0x000001e7 0x6bd K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29772+ .debug_loc 0x000008a4 0x165 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
29773+ .debug_loc 0x00000a09 0x1238 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29774+ .debug_loc 0x00001c41 0x254 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
29775+ .debug_loc 0x00001e95 0x7cc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29776+ .debug_loc 0x00002661 0x60c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
29777+ .debug_loc 0x00002c6d 0xae3 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
29778+ .debug_loc 0x00003750 0x711 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
29779+ .debug_loc 0x00003e61 0x572 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
29780+ .debug_loc 0x000043d3 0x116 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
29781+ .debug_loc 0x000044e9 0x1686 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
29782+ .debug_loc 0x00005b6f 0x1fed K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
29783+ .debug_loc 0x00007b5c 0x90e K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
29784+ .debug_loc 0x0000846a 0xe69 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
29785+ .debug_loc 0x000092d3 0x512 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
29786+ .debug_loc 0x000097e5 0xb9b K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
29787+ .debug_loc 0x0000a380 0x6c6 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
29788+ .debug_loc 0x0000aa46 0xdc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
29789+ .debug_loc 0x0000ab22 0x1b7 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
29790+ .debug_loc 0x0000acd9 0x658 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
29791+ .debug_loc 0x0000b331 0x15b K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
29792+ .debug_loc 0x0000b48c 0xb70 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
29793+ .debug_loc 0x0000bffc 0x7e0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
29794+ .debug_loc 0x0000c7dc 0x147 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
29795+ .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)
29796+ .debug_loc 0x0000c943 0xed K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
29797+ .debug_loc 0x0000ca30 0x20 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
29798+ .debug_loc 0x0000ca50 0x146 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
29799+ .debug_loc 0x0000cb96 0x2a0e K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
29800+ .debug_loc 0x0000f5a4 0x1cf1 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
29801+ .debug_loc 0x00011295 0x87e K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
29802+ .debug_loc 0x00011b13 0x58e K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
29803+ .debug_loc 0x000120a1 0x6e8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
29804+ .debug_loc 0x00012789 0x5c7 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
29805+ .debug_loc 0x00012d50 0xfdc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
29806+ .debug_loc 0x00013d2c 0xe07 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
29807
29808 .debug_macinfo
29809 *(.debug_macinfo)
29810@@ -1964,7 +1964,7 @@
29811 0x000001f8 . = .
29812 0x000001f8 __exidx_end = ABSOLUTE (.)
29813
29814-.text 0x000001f8 0x6aec
29815+.text 0x000001f8 0x6c28
29816 *(.text*)
29817 .text 0x000001f8 0xc4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/vectors.o
29818 0x000001f8 _start
29819@@ -2011,693 +2011,699 @@
29820 .text.zDrvSysSpinlock_SoftLockPsm
29821 0x000003b8 0x80 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29822 0x000003b8 zDrvSysSpinlock_SoftLockPsm
29823+ .text.zDrvSysSpinlock_SoftLockPsmTimeout
29824+ 0x00000438 0xb0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29825+ 0x00000438 zDrvSysSpinlock_SoftLockPsmTimeout
29826 .text.zDrvSysSpinlock_SoftUnlockPsm
29827- 0x00000438 0x84 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29828- 0x00000438 zDrvSysSpinlock_SoftUnlockPsm
29829+ 0x000004e8 0x80 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29830+ 0x000004e8 zDrvSysSpinlock_SoftUnlockPsm
29831 .text.zDrvSysSpinlock_RegLock
29832- 0x000004bc 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29833- 0x000004bc zDrvSysSpinlock_RegLock
29834+ 0x00000568 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29835+ 0x00000568 zDrvSysSpinlock_RegLock
29836 .text.zDrvSysSpinlock_RegUnlock
29837- 0x000004f8 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29838- 0x000004f8 zDrvSysSpinlock_RegUnlock
29839+ 0x000005a4 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29840+ 0x000005a4 zDrvSysSpinlock_RegUnlock
29841 .text.zDrvSysSpinlock_Initiate
29842- 0x00000510 0x90 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29843- 0x00000510 zDrvSysSpinlock_Initiate
29844+ 0x000005bc 0x94 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
29845+ 0x000005bc zDrvSysSpinlock_Initiate
29846 .text.zDrvSys_Initiate
29847- 0x000005a0 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
29848- 0x000005a0 zDrvSys_Initiate
29849- .text.mem_cpy 0x000005ac 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29850+ 0x00000650 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
29851+ 0x00000650 zDrvSys_Initiate
29852+ .text.mem_cpy 0x0000065c 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29853 .text.Icp_IsRecvChEmpty
29854- 0x000005cc 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29855+ 0x0000067c 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29856 .text.rpMsg_Write.part.2
29857- 0x000005e4 0xa0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29858+ 0x00000694 0xa0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29859 .text.rpMsg_read.part.3
29860- 0x00000684 0x60 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29861+ 0x00000734 0x60 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29862 .text.Icp_DispatchRpMsg
29863- 0x000006e4 0xe4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29864+ 0x00000794 0xe4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29865 .text.Icp_AllIsr
29866- 0x000007c8 0xbc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29867- 0x000007c8 Icp_AllIsr
29868+ 0x00000878 0xbc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29869+ 0x00000878 Icp_AllIsr
29870 .text.Icp_PHYIsr
29871- 0x00000884 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29872+ 0x00000934 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29873 .text.Icp_PSIsr
29874- 0x00000890 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29875+ 0x00000940 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29876 .text.Icp_APIsr
29877- 0x0000089c 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29878+ 0x0000094c 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29879 .text.zDrvRpMsg_UnMask
29880- 0x000008a8 0x74 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29881- 0x000008a8 zDrvRpMsg_UnMask
29882+ 0x00000958 0x74 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29883+ 0x00000958 zDrvRpMsg_UnMask
29884 .text.zDrvRpMsg_Write
29885- 0x0000091c 0x16c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29886- 0x0000091c zDrvRpMsg_Write
29887+ 0x000009cc 0x16c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29888+ 0x000009cc zDrvRpMsg_Write
29889 .text.zDrvRpMsg_CreateChannel
29890- 0x00000a88 0xec K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29891- 0x00000a88 zDrvRpMsg_CreateChannel
29892+ 0x00000b38 0xec K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29893+ 0x00000b38 zDrvRpMsg_CreateChannel
29894 .text.zDrvRpMsg_RegCallBack
29895- 0x00000b74 0x58 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29896- 0x00000b74 zDrvRpMsg_RegCallBack
29897+ 0x00000c24 0x58 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29898+ 0x00000c24 zDrvRpMsg_RegCallBack
29899 .text.zDrvRpMsg_Initiate
29900- 0x00000bcc 0xd0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29901- 0x00000bcc zDrvRpMsg_Initiate
29902+ 0x00000c7c 0xd0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
29903+ 0x00000c7c zDrvRpMsg_Initiate
29904+ .text.zDrvGpio_SetValue
29905+ 0x00000d4c 0x70 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
29906+ 0x00000d4c zDrvGpio_SetValue
29907 .text.zDrvGpio_Initiate
29908- 0x00000c9c 0x4c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
29909- 0x00000c9c zDrvGpio_Initiate
29910+ 0x00000dbc 0x4c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
29911+ 0x00000dbc zDrvGpio_Initiate
29912 .text.__disable_irq
29913- 0x00000ce8 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29914- 0x00000ce8 __disable_irq
29915+ 0x00000e08 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29916+ 0x00000e08 __disable_irq
29917 .text.zDrvInt_MaskIrq
29918- 0x00000cec 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29919- 0x00000cec zDrvInt_MaskIrq
29920+ 0x00000e0c 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29921+ 0x00000e0c zDrvInt_MaskIrq
29922 .text.zDrvInt_UnmaskIrq
29923- 0x00000d04 0x2c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29924- 0x00000d04 zDrvInt_UnmaskIrq
29925+ 0x00000e24 0x2c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29926+ 0x00000e24 zDrvInt_UnmaskIrq
29927 .text.zDrvInt_PreInit
29928- 0x00000d30 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29929- 0x00000d30 zDrvInt_PreInit
29930+ 0x00000e50 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29931+ 0x00000e50 zDrvInt_PreInit
29932 .text.zDrvInt_InstallIsrDsr
29933- 0x00000d78 0xd4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29934- 0x00000d78 zDrvInt_InstallIsrDsr
29935+ 0x00000e98 0xd4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29936+ 0x00000e98 zDrvInt_InstallIsrDsr
29937 .text.zDrvInt_InstallIsr
29938- 0x00000e4c 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29939- 0x00000e4c zDrvInt_InstallIsr
29940+ 0x00000f6c 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29941+ 0x00000f6c zDrvInt_InstallIsr
29942 .text.zDrvInt_UninstallIsr
29943- 0x00000e58 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29944- 0x00000e58 zDrvInt_UninstallIsr
29945+ 0x00000f78 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29946+ 0x00000f78 zDrvInt_UninstallIsr
29947 .text.zDrvPcu_ClearInt
29948- 0x00000ea0 0x98 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29949- 0x00000ea0 zDrvPcu_ClearInt
29950+ 0x00000fc0 0x98 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29951+ 0x00000fc0 zDrvPcu_ClearInt
29952 .text.zDrvPcu_SetIntLevel
29953- 0x00000f38 0xf4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29954- 0x00000f38 zDrvPcu_SetIntLevel
29955+ 0x00001058 0xf4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29956+ 0x00001058 zDrvPcu_SetIntLevel
29957 .text.zDrvInt_IrqMaskSave
29958- 0x0000102c 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29959- 0x0000102c zDrvInt_IrqMaskSave
29960+ 0x0000114c 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29961+ 0x0000114c zDrvInt_IrqMaskSave
29962 .text.zDrvInt_IrqMaskAllIrq
29963- 0x00001044 0x1c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29964- 0x00001044 zDrvInt_IrqMaskAllIrq
29965+ 0x00001164 0x1c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29966+ 0x00001164 zDrvInt_IrqMaskAllIrq
29967 .text.zDrvInt_IrqMaskRestore
29968- 0x00001060 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29969- 0x00001060 zDrvInt_IrqMaskRestore
29970+ 0x00001180 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29971+ 0x00001180 zDrvInt_IrqMaskRestore
29972 .text.zDrvInt_DisSysTickInt
29973- 0x00001074 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29974- 0x00001074 zDrvInt_DisSysTickInt
29975+ 0x00001194 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29976+ 0x00001194 zDrvInt_DisSysTickInt
29977 .text.zDrvInt_EnableSysTickInt
29978- 0x00001084 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29979- 0x00001084 zDrvInt_EnableSysTickInt
29980+ 0x000011a4 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
29981+ 0x000011a4 zDrvInt_EnableSysTickInt
29982 .text.zDrvTimer_Initiate
29983- 0x00001094 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
29984- 0x00001094 zDrvTimer_Initiate
29985+ 0x000011b4 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
29986+ 0x000011b4 zDrvTimer_Initiate
29987 .text.zDrvTimer_PreInit
29988- 0x00001098 0x94 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
29989- 0x00001098 zDrvTimer_PreInit
29990+ 0x000011b8 0x94 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
29991+ 0x000011b8 zDrvTimer_PreInit
29992 .text.dma_ResetChannel
29993- 0x0000112c 0x74 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
29994- 0x0000112c dma_ResetChannel
29995+ 0x0000124c 0x74 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
29996+ 0x0000124c dma_ResetChannel
29997 .text.zDrvDma_GetStatus
29998- 0x000011a0 0x84 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
29999- 0x000011a0 zDrvDma_GetStatus
30000+ 0x000012c0 0x84 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
30001+ 0x000012c0 zDrvDma_GetStatus
30002 .text.zDrvDma_Initiate
30003- 0x00001224 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
30004- 0x00001224 zDrvDma_Initiate
30005+ 0x00001344 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
30006+ 0x00001344 zDrvDma_Initiate
30007 .text.zDrvDma_AllocChannel
30008- 0x00001264 0x38 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
30009- 0x00001264 zDrvDma_AllocChannel
30010+ 0x00001384 0x38 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
30011+ 0x00001384 zDrvDma_AllocChannel
30012 .text.zDrvDma_ConfigChannel
30013- 0x0000129c 0x11c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
30014- 0x0000129c zDrvDma_ConfigChannel
30015+ 0x000013bc 0x11c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
30016+ 0x000013bc zDrvDma_ConfigChannel
30017 .text.zDrvDma_StartChannel
30018- 0x000013b8 0x60 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
30019- 0x000013b8 zDrvDma_StartChannel
30020+ 0x000014d8 0x60 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
30021+ 0x000014d8 zDrvDma_StartChannel
30022 .text.zDrvDma_DeAllocChannel
30023- 0x00001418 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
30024- 0x00001418 zDrvDma_DeAllocChannel
30025+ 0x00001538 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
30026+ 0x00001538 zDrvDma_DeAllocChannel
30027 .text.zDrvDma_M2mPsm
30028- 0x00001454 0x11c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
30029- 0x00001454 zDrvDma_M2mPsm
30030+ 0x00001574 0x11c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
30031+ 0x00001574 zDrvDma_M2mPsm
30032 .text.pow_SetVcoreOnOff.part.0
30033- 0x00001570 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
30034+ 0x00001690 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
30035 .text.pow_Pcu2M0IntStatu
30036- 0x00001588 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
30037+ 0x000016a8 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
30038 .text.pow_PsmCallBackRpMsg
30039- 0x000015c8 0x58 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
30040+ 0x000016e8 0x58 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
30041 .text.pow_hwen_set.part.5
30042- 0x00001620 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
30043+ 0x00001740 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
30044 .text.pow_PsmIdleThread
30045- 0x00001664 0x38 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
30046+ 0x00001784 0x38 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
30047 .text.pow_hwen_set
30048- 0x0000169c 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
30049- 0x0000169c pow_hwen_set
30050+ 0x000017bc 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
30051+ 0x000017bc pow_hwen_set
30052 .text.pow_SaveRestoreDsr
30053- 0x000016ec 0x3c8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
30054+ 0x0000180c 0x3c8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
30055 .text.pow_IcpInit
30056- 0x00001ab4 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
30057- 0x00001ab4 pow_IcpInit
30058+ 0x00001bd4 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
30059+ 0x00001bd4 pow_IcpInit
30060 .text.zDrvPow_CoreIsActive
30061- 0x00001afc 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
30062- 0x00001afc zDrvPow_CoreIsActive
30063+ 0x00001c1c 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
30064+ 0x00001c1c zDrvPow_CoreIsActive
30065 .text.zDrvPow_Init
30066- 0x00001b38 0x20c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
30067- 0x00001b38 zDrvPow_Init
30068+ 0x00001c58 0x20c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
30069+ 0x00001c58 zDrvPow_Init
30070 .text.pow_DdrGetSize
30071- 0x00001d44 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30072- 0x00001d44 pow_DdrGetSize
30073+ 0x00001e64 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30074+ 0x00001e64 pow_DdrGetSize
30075 .text.pow_DdrPhyConfig
30076- 0x00001d84 0x188 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30077- 0x00001d84 pow_DdrPhyConfig
30078+ 0x00001ea4 0x188 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30079+ 0x00001ea4 pow_DdrPhyConfig
30080 .text.pow_DdrCtrlConfig
30081- 0x00001f0c 0x234 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30082- 0x00001f0c pow_DdrCtrlConfig
30083+ 0x0000202c 0x234 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30084+ 0x0000202c pow_DdrCtrlConfig
30085 .text.pow_DdrPllDllLock
30086- 0x00002140 0x70 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30087- 0x00002140 pow_DdrPllDllLock
30088+ 0x00002260 0x70 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30089+ 0x00002260 pow_DdrPllDllLock
30090 .text.pow_DdrReinit
30091- 0x000021b0 0x194 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30092- 0x000021b0 pow_DdrReinit
30093+ 0x000022d0 0x194 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30094+ 0x000022d0 pow_DdrReinit
30095 .text.pow_DdrDfiInitCompleteEn
30096- 0x00002344 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30097- 0x00002344 pow_DdrDfiInitCompleteEn
30098+ 0x00002464 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30099+ 0x00002464 pow_DdrDfiInitCompleteEn
30100 .text.zDrvPow_DdrHwSrEnable
30101- 0x00002364 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30102- 0x00002364 zDrvPow_DdrHwSrEnable
30103+ 0x00002484 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30104+ 0x00002484 zDrvPow_DdrHwSrEnable
30105 .text.zDrvPow_DdrHwSrDisable
30106- 0x000023a4 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30107- 0x000023a4 zDrvPow_DdrHwSrDisable
30108+ 0x000024c4 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30109+ 0x000024c4 zDrvPow_DdrHwSrDisable
30110 .text.zDrvPow_DdrAutoLpEnable
30111- 0x000023e8 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30112- 0x000023e8 zDrvPow_DdrAutoLpEnable
30113+ 0x00002508 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30114+ 0x00002508 zDrvPow_DdrAutoLpEnable
30115 .text.pow_DdrInit
30116- 0x00002428 0x78 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30117- 0x00002428 pow_DdrInit
30118+ 0x00002548 0x78 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30119+ 0x00002548 pow_DdrInit
30120 .text.pow_DdrLpEnable
30121- 0x000024a0 0x1c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30122- 0x000024a0 pow_DdrLpEnable
30123+ 0x000025c0 0x1c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30124+ 0x000025c0 pow_DdrLpEnable
30125 .text.zDrvPow_DdrAutoLpDisable
30126- 0x000024bc 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30127- 0x000024bc zDrvPow_DdrAutoLpDisable
30128+ 0x000025dc 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30129+ 0x000025dc zDrvPow_DdrAutoLpDisable
30130 .text.pow_DdrLpDisable
30131- 0x00002500 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30132- 0x00002500 pow_DdrLpDisable
30133+ 0x00002620 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30134+ 0x00002620 pow_DdrLpDisable
30135 .text.zDrvPow_DdrLpEnterHandle
30136- 0x00002520 0x2f4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30137- 0x00002520 zDrvPow_DdrLpEnterHandle
30138+ 0x00002640 0x2f4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30139+ 0x00002640 zDrvPow_DdrLpEnterHandle
30140 .text.zDrvPow_DdrLpExitHandle
30141- 0x00002814 0xc4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30142- 0x00002814 zDrvPow_DdrLpExitHandle
30143+ 0x00002934 0xc4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
30144+ 0x00002934 zDrvPow_DdrLpExitHandle
30145 .text.Pow_DebugIramInit
30146- 0x000028d8 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
30147- 0x000028d8 Pow_DebugIramInit
30148+ 0x000029f8 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
30149+ 0x000029f8 Pow_DebugIramInit
30150 .text.pow_LpTypeCheck
30151- 0x00002928 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
30152- 0x00002928 pow_LpTypeCheck
30153+ 0x00002a48 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
30154+ 0x00002a48 pow_LpTypeCheck
30155 .text.pow_SetLpModeCallback
30156- 0x0000293c 0x124 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
30157- 0x0000293c pow_SetLpModeCallback
30158+ 0x00002a5c 0x124 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
30159+ 0x00002a5c pow_SetLpModeCallback
30160 .text.pow_SpifcSave
30161- 0x00002a60 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
30162- 0x00002a60 pow_SpifcSave
30163+ 0x00002b80 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
30164+ 0x00002b80 pow_SpifcSave
30165 .text.pow_SpifcRestore
30166- 0x00002aa4 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
30167- 0x00002aa4 pow_SpifcRestore
30168+ 0x00002bc4 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
30169+ 0x00002bc4 pow_SpifcRestore
30170 .text.pow_IcpSave
30171- 0x00002ae8 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
30172- 0x00002ae8 pow_IcpSave
30173+ 0x00002c08 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
30174+ 0x00002c08 pow_IcpSave
30175 .text.pow_IcpRestore
30176- 0x00002b30 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
30177- 0x00002b30 pow_IcpRestore
30178+ 0x00002c50 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
30179+ 0x00002c50 pow_IcpRestore
30180 .text.pow_SpiSave
30181- 0x00002b74 0x68 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
30182- 0x00002b74 pow_SpiSave
30183+ 0x00002c94 0x68 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
30184+ 0x00002c94 pow_SpiSave
30185 .text.pow_SpiRestore
30186- 0x00002bdc 0x84 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
30187- 0x00002bdc pow_SpiRestore
30188+ 0x00002cfc 0x84 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
30189+ 0x00002cfc pow_SpiRestore
30190 .text.pow_VouSave
30191- 0x00002c60 0x64 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
30192- 0x00002c60 pow_VouSave
30193+ 0x00002d80 0x64 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
30194+ 0x00002d80 pow_VouSave
30195 .text.pow_VouRestore
30196- 0x00002cc4 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
30197- 0x00002cc4 pow_VouRestore
30198+ 0x00002de4 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
30199+ 0x00002de4 pow_VouRestore
30200 .text.pow_Iram0Save
30201- 0x00002d04 0x2c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
30202- 0x00002d04 pow_Iram0Save
30203+ 0x00002e24 0x2c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
30204+ 0x00002e24 pow_Iram0Save
30205 .text.pow_Iram0Restore
30206- 0x00002d30 0x30 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
30207- 0x00002d30 pow_Iram0Restore
30208+ 0x00002e50 0x30 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
30209+ 0x00002e50 pow_Iram0Restore
30210 .text.zDrvPow_PdcoreRegsSave
30211- 0x00002d60 0x66c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
30212- 0x00002d60 zDrvPow_PdcoreRegsSave
30213+ 0x00002e80 0x66c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
30214+ 0x00002e80 zDrvPow_PdcoreRegsSave
30215 .text.zDrvPow_PdcoreRegsRestore
30216- 0x000033cc 0x7ec K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
30217- 0x000033cc zDrvPow_PdcoreRegsRestore
30218+ 0x000034ec 0x7ec K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
30219+ 0x000034ec zDrvPow_PdcoreRegsRestore
30220 .text.i2c_WaitTransferOver.isra.0
30221- 0x00003bb8 0x68 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
30222+ 0x00003cd8 0x68 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
30223 .text.i2c_SetMode.isra.1
30224- 0x00003c20 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
30225+ 0x00003d40 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
30226 .text.i2c_SetSlaveAddress
30227- 0x00003c70 0x24 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
30228+ 0x00003d90 0x24 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
30229 .text.zDrvI2c_DevWrite_PSM
30230- 0x00003c94 0x160 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
30231- 0x00003c94 zDrvI2c_DevWrite_PSM
30232+ 0x00003db4 0x160 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
30233+ 0x00003db4 zDrvI2c_DevWrite_PSM
30234 .text.zDrvI2c_Initiate
30235- 0x00003df4 0x98 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
30236- 0x00003df4 zDrvI2c_Initiate
30237+ 0x00003f14 0x98 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
30238+ 0x00003f14 zDrvI2c_Initiate
30239 .text.wdt_rpmsg_callback
30240- 0x00003e8c 0x38 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30241+ 0x00003fac 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30242 .text.wdt_get_switch
30243- 0x00003ec4 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30244- 0x00003ec4 wdt_get_switch
30245+ 0x00003fe8 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30246+ 0x00003fe8 wdt_get_switch
30247 .text.wdt_get_time_out
30248- 0x00003f04 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30249- 0x00003f04 wdt_get_time_out
30250+ 0x00004028 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30251+ 0x00004028 wdt_get_time_out
30252 .text.wdt_set_time_out
30253- 0x00003f44 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30254- 0x00003f44 wdt_set_time_out
30255+ 0x00004068 0x4c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30256+ 0x00004068 wdt_set_time_out
30257 .text.wdt_set_value
30258- 0x00003f94 0x54 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30259- 0x00003f94 wdt_set_value
30260+ 0x000040b4 0x58 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30261+ 0x000040b4 wdt_set_value
30262 .text.wdt_set_int_value
30263- 0x00003fe8 0x58 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30264- 0x00003fe8 wdt_set_int_value
30265+ 0x0000410c 0x54 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30266+ 0x0000410c wdt_set_int_value
30267 .text.wdt_start_config
30268- 0x00004040 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30269- 0x00004040 wdt_start_config
30270+ 0x00004160 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30271+ 0x00004160 wdt_start_config
30272 .text.wdt_refresh_config
30273- 0x00004090 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30274- 0x00004090 wdt_refresh_config
30275+ 0x000041b0 0x44 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30276+ 0x000041b0 wdt_refresh_config
30277 .text.wdt_set_clk_div
30278- 0x000040d4 0x54 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30279- 0x000040d4 wdt_set_clk_div
30280+ 0x000041f4 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30281+ 0x000041f4 wdt_set_clk_div
30282 .text.wdt_set_src_clk
30283- 0x00004128 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30284- 0x00004128 wdt_set_src_clk
30285+ 0x00004244 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30286+ 0x00004244 wdt_set_src_clk
30287 .text.wdt_reset_all_config
30288- 0x00004178 0x2c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30289- 0x00004178 wdt_reset_all_config
30290+ 0x00004294 0x2c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30291+ 0x00004294 wdt_reset_all_config
30292 .text.wdt_feed_dog
30293- 0x000041a4 0x8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30294- 0x000041a4 wdt_feed_dog
30295+ 0x000042c0 0x8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30296+ 0x000042c0 wdt_feed_dog
30297 .text.wdt_icp_wake_up
30298- 0x000041ac 0xec K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30299- 0x000041ac wdt_icp_wake_up
30300- .text.wdt_isr 0x00004298 0x12c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30301- 0x00004298 wdt_isr
30302+ 0x000042c8 0xec K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30303+ 0x000042c8 wdt_icp_wake_up
30304+ .text.wdt_isr 0x000043b4 0x14c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30305+ 0x000043b4 wdt_isr
30306 .text.wdt_IsWdtFuncOpen
30307- 0x000043c4 0x54 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30308- 0x000043c4 wdt_IsWdtFuncOpen
30309+ 0x00004500 0x54 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30310+ 0x00004500 wdt_IsWdtFuncOpen
30311 .text.zDrvWdt_RpmRebootRecord
30312- 0x00004418 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30313- 0x00004418 zDrvWdt_RpmRebootRecord
30314+ 0x00004554 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30315+ 0x00004554 zDrvWdt_RpmRebootRecord
30316 .text.zDrvWdt_Initiate
30317- 0x00004454 0xe0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30318- 0x00004454 zDrvWdt_Initiate
30319+ 0x00004590 0xe0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
30320+ 0x00004590 zDrvWdt_Initiate
30321 .text.sysclk_CommSetFreq
30322- 0x00004534 0x9c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30323- 0x00004534 sysclk_CommSetFreq
30324+ 0x00004670 0x9c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30325+ 0x00004670 sysclk_CommSetFreq
30326 .text.sysclk_CommResetCtrl
30327- 0x000045d0 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30328- 0x000045d0 sysclk_CommResetCtrl
30329+ 0x0000470c 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30330+ 0x0000470c sysclk_CommResetCtrl
30331 .text.sysclk_CommHwGateCtrl
30332- 0x00004610 0x7c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30333- 0x00004610 sysclk_CommHwGateCtrl
30334+ 0x0000474c 0x7c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30335+ 0x0000474c sysclk_CommHwGateCtrl
30336 .text.sysclk_MatrixAxiHwGate
30337- 0x0000468c 0x24 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30338- 0x0000468c sysclk_MatrixAxiHwGate
30339+ 0x000047c8 0x24 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30340+ 0x000047c8 sysclk_MatrixAxiHwGate
30341 .text.sysclk_CommSwGateCtrl
30342- 0x000046b0 0x7c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30343- 0x000046b0 sysclk_CommSwGateCtrl
30344+ 0x000047ec 0x7c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30345+ 0x000047ec sysclk_CommSwGateCtrl
30346 .text.sysclk_SwGateCtrl0
30347- 0x0000472c 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30348- 0x0000472c sysclk_SwGateCtrl0
30349+ 0x00004868 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30350+ 0x00004868 sysclk_SwGateCtrl0
30351 .text.sysclk_MatrixAxiSwGate
30352- 0x00004740 0x24 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30353- 0x00004740 sysclk_MatrixAxiSwGate
30354+ 0x0000487c 0x24 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30355+ 0x0000487c sysclk_MatrixAxiSwGate
30356 .text.sysclk_DisableUnused
30357- 0x00004764 0x64 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30358- 0x00004764 sysclk_DisableUnused
30359+ 0x000048a0 0x64 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30360+ 0x000048a0 sysclk_DisableUnused
30361 .text.sysclk_AutoGateInit
30362- 0x000047c8 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30363- 0x000047c8 sysclk_AutoGateInit
30364+ 0x00004904 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30365+ 0x00004904 sysclk_AutoGateInit
30366 .text.zDrvSysClk_SetGate
30367- 0x00004808 0xac K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30368- 0x00004808 zDrvSysClk_SetGate
30369+ 0x00004944 0xac K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30370+ 0x00004944 zDrvSysClk_SetGate
30371 .text.zDrvSysClk_SetFreq
30372- 0x000048b4 0x5c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30373- 0x000048b4 zDrvSysClk_SetFreq
30374+ 0x000049f0 0x5c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30375+ 0x000049f0 zDrvSysClk_SetFreq
30376 .text.zDrvSysClk_Reset
30377- 0x00004910 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30378- 0x00004910 zDrvSysClk_Reset
30379+ 0x00004a4c 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30380+ 0x00004a4c zDrvSysClk_Reset
30381 .text.zDrvSysClk_Release
30382- 0x00004960 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30383- 0x00004960 zDrvSysClk_Release
30384+ 0x00004a9c 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30385+ 0x00004a9c zDrvSysClk_Release
30386 .text.sysclk_Initiate
30387- 0x000049b0 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30388- 0x000049b0 sysclk_Initiate
30389+ 0x00004aec 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
30390+ 0x00004aec sysclk_Initiate
30391 .text.pow_ClkGateInit
30392- 0x000049d0 0x24 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
30393- 0x000049d0 pow_ClkGateInit
30394+ 0x00004b0c 0x24 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
30395+ 0x00004b0c pow_ClkGateInit
30396 .text.pow_AxiClk_Change
30397- 0x000049f4 0x240 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
30398- 0x000049f4 pow_AxiClk_Change
30399+ 0x00004b30 0x240 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
30400+ 0x00004b30 pow_AxiClk_Change
30401 .text.zDrvPow_AxiChangeClk
30402- 0x00004c34 0x5c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
30403- 0x00004c34 zDrvPow_AxiChangeClk
30404+ 0x00004d70 0x5c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
30405+ 0x00004d70 zDrvPow_AxiChangeClk
30406 .text.zDrvPmic_SetVcoreOnOffPSM
30407- 0x00004c90 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
30408- 0x00004c90 zDrvPmic_SetVcoreOnOffPSM
30409+ 0x00004dcc 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
30410+ 0x00004dcc zDrvPmic_SetVcoreOnOffPSM
30411 .text.zDrvPmic_I2cWrite_PSM
30412- 0x00004cb8 0x2c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
30413- 0x00004cb8 zDrvPmic_I2cWrite_PSM
30414+ 0x00004df4 0x2c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
30415+ 0x00004df4 zDrvPmic_I2cWrite_PSM
30416 .text.zDrvExcep_Handler
30417- 0x00004ce4 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
30418- 0x00004ce4 zDrvExcep_Handler
30419+ 0x00004e20 0x40 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
30420+ 0x00004e20 zDrvExcep_Handler
30421 .text.tos_assert_failed
30422- 0x00004d24 0x30 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
30423- 0x00004d24 tos_assert_failed
30424+ 0x00004e60 0x30 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
30425+ 0x00004e60 tos_assert_failed
30426 .text.tos_idle_thread
30427- 0x00004d54 0x8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
30428- 0x00004d54 tos_idle_thread
30429+ 0x00004e90 0x8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
30430+ 0x00004e90 tos_idle_thread
30431 .text.tos_default_isr
30432- 0x00004d5c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
30433- 0x00004d5c tos_default_isr
30434+ 0x00004e98 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
30435+ 0x00004e98 tos_default_isr
30436 .text.tos_create_irq
30437- 0x00004d60 0x78 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
30438- 0x00004d60 tos_create_irq
30439+ 0x00004e9c 0x78 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
30440+ 0x00004e9c tos_create_irq
30441 .text.tos_delete_irq
30442- 0x00004dd8 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
30443- 0x00004dd8 tos_delete_irq
30444+ 0x00004f14 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
30445+ 0x00004f14 tos_delete_irq
30446 .text.zLogCtrl_NotifyCapWakeUp
30447- 0x00004e14 0x4c K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
30448+ 0x00004f50 0x4c K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
30449 .text.zOss_LogWakeUpInit
30450- 0x00004e60 0x54 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
30451- 0x00004e60 zOss_LogWakeUpInit
30452- .text.memset 0x00004eb4 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
30453- 0x00004eb4 memset
30454+ 0x00004f9c 0x54 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
30455+ 0x00004f9c zOss_LogWakeUpInit
30456+ .text.memset 0x00004ff0 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
30457+ 0x00004ff0 memset
30458 .text.zOss_RamdumpInit
30459- 0x00004ecc 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
30460- 0x00004ecc zOss_RamdumpInit
30461+ 0x00005008 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
30462+ 0x00005008 zOss_RamdumpInit
30463 .text.zOss_RamdumpHandle
30464- 0x00004eec 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
30465- 0x00004eec zOss_RamdumpHandle
30466+ 0x00005028 0x48 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
30467+ 0x00005028 zOss_RamdumpHandle
30468 .text.hal_reset_vsr
30469- 0x00004f34 0x130 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
30470- 0x00004f34 hal_reset_vsr
30471+ 0x00005070 0x130 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
30472+ 0x00005070 hal_reset_vsr
30473 .text.hal_deliver_exception
30474- 0x00005064 0x24 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
30475- 0x00005064 hal_deliver_exception
30476+ 0x000051a0 0x24 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
30477+ 0x000051a0 hal_deliver_exception
30478 .text.hal_interrupt_end
30479- 0x00005088 0x1c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
30480- 0x00005088 hal_interrupt_end
30481+ 0x000051c4 0x1c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
30482+ 0x000051c4 hal_interrupt_end
30483 .text.hal_interrupt_mask
30484- 0x000050a4 0x34 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
30485- 0x000050a4 hal_interrupt_mask
30486+ 0x000051e0 0x34 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
30487+ 0x000051e0 hal_interrupt_mask
30488 .text.hal_deliver_interrupt
30489- 0x000050d8 0x60 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
30490- 0x000050d8 hal_deliver_interrupt
30491+ 0x00005214 0x60 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
30492+ 0x00005214 hal_deliver_interrupt
30493 .text.hal_interrupt_unmask
30494- 0x00005138 0x40 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
30495- 0x00005138 hal_interrupt_unmask
30496+ 0x00005274 0x40 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
30497+ 0x00005274 hal_interrupt_unmask
30498 .text.hal_interrupt_unmask_safe
30499- 0x00005178 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
30500- 0x00005178 hal_interrupt_unmask_safe
30501+ 0x000052b4 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
30502+ 0x000052b4 hal_interrupt_unmask_safe
30503 .text.hal_interrupt_set_level
30504- 0x00005180 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
30505- 0x00005180 hal_interrupt_set_level
30506+ 0x000052bc 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
30507+ 0x000052bc hal_interrupt_set_level
30508 .text.hal_interrupt_set_priority
30509- 0x00005184 0x6c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
30510- 0x00005184 hal_interrupt_set_priority
30511+ 0x000052c0 0x6c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
30512+ 0x000052c0 hal_interrupt_set_priority
30513 .text.hal_arch_default_isr
30514- 0x000051f0 0x24 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
30515- 0x000051f0 hal_arch_default_isr
30516+ 0x0000532c 0x24 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
30517+ 0x0000532c hal_arch_default_isr
30518 .text.hal_lsbindex
30519- 0x00005214 0x20 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
30520- 0x00005214 hal_lsbindex
30521+ 0x00005350 0x20 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
30522+ 0x00005350 hal_lsbindex
30523 .text.hal_clock_initialize
30524- 0x00005234 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
30525- 0x00005234 hal_clock_initialize
30526+ 0x00005370 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
30527+ 0x00005370 hal_clock_initialize
30528 .text.hal_clock_isr
30529- 0x00005248 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
30530- 0x00005248 hal_clock_isr
30531+ 0x00005384 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
30532+ 0x00005384 hal_clock_isr
30533 .text.hal_variant_init
30534- 0x00005250 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
30535- 0x00005250 hal_variant_init
30536+ 0x0000538c 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
30537+ 0x0000538c hal_variant_init
30538 .text.hal_system_init
30539- 0x00005264 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
30540- 0x00005264 hal_system_init
30541+ 0x000053a0 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
30542+ 0x000053a0 hal_system_init
30543 .text.hal_platform_init
30544- 0x00005268 0x4c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
30545- 0x00005268 hal_platform_init
30546+ 0x000053a4 0x4c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
30547+ 0x000053a4 hal_platform_init
30548 .text.hal_default_isr
30549- 0x000052b4 0x28 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
30550- 0x000052b4 hal_default_isr
30551+ 0x000053f0 0x28 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
30552+ 0x000053f0 hal_default_isr
30553 .text.cyg_start
30554- 0x000052dc 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
30555- 0x000052dc cyg_start
30556+ 0x00005418 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
30557+ 0x00005418 cyg_start
30558 .text.cyg_assert_fail
30559- 0x000052e8 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
30560- 0x000052e8 cyg_assert_fail
30561+ 0x00005424 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
30562+ 0x00005424 cyg_assert_fail
30563 .text.cyg_check_data_ptr
30564- 0x000052fc 0x28 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
30565- 0x000052fc cyg_check_data_ptr
30566+ 0x00005438 0x28 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
30567+ 0x00005438 cyg_check_data_ptr
30568 .text.unlikely._ZnwjPv.isra.2.part.3
30569- 0x00005324 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30570+ 0x00005460 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30571 .text.cyg_thread_create
30572- 0x00005338 0x70 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30573- 0x00005338 cyg_thread_create
30574+ 0x00005474 0x70 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30575+ 0x00005474 cyg_thread_create
30576 .text.cyg_thread_resume
30577- 0x000053a8 0x18 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30578- 0x000053a8 cyg_thread_resume
30579+ 0x000054e4 0x18 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30580+ 0x000054e4 cyg_thread_resume
30581 .text.cyg_interrupt_create
30582- 0x000053c0 0x70 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30583- 0x000053c0 cyg_interrupt_create
30584+ 0x000054fc 0x70 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30585+ 0x000054fc cyg_interrupt_create
30586 .text.cyg_interrupt_delete
30587- 0x00005430 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30588- 0x00005430 cyg_interrupt_delete
30589+ 0x0000556c 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30590+ 0x0000556c cyg_interrupt_delete
30591 .text.cyg_interrupt_attach
30592- 0x00005438 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30593- 0x00005438 cyg_interrupt_attach
30594+ 0x00005574 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30595+ 0x00005574 cyg_interrupt_attach
30596 .text.cyg_interrupt_detach
30597- 0x00005440 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30598- 0x00005440 cyg_interrupt_detach
30599+ 0x0000557c 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30600+ 0x0000557c cyg_interrupt_detach
30601 .text.cyg_interrupt_mask
30602- 0x00005448 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30603- 0x00005448 cyg_interrupt_mask
30604+ 0x00005584 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30605+ 0x00005584 cyg_interrupt_mask
30606 .text.cyg_interrupt_unmask
30607- 0x00005450 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30608- 0x00005450 cyg_interrupt_unmask
30609+ 0x0000558c 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30610+ 0x0000558c cyg_interrupt_unmask
30611 .text.cyg_semaphore_init
30612- 0x00005458 0x28 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30613- 0x00005458 cyg_semaphore_init
30614+ 0x00005594 0x28 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30615+ 0x00005594 cyg_semaphore_init
30616 .text.cyg_semaphore_post
30617- 0x00005480 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30618- 0x00005480 cyg_semaphore_post
30619+ 0x000055bc 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30620+ 0x000055bc cyg_semaphore_post
30621 .text.cyg_mutex_init
30622- 0x00005488 0x24 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30623- 0x00005488 cyg_mutex_init
30624+ 0x000055c4 0x24 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30625+ 0x000055c4 cyg_mutex_init
30626 .text.cyg_mutex_lock
30627- 0x000054ac 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30628- 0x000054ac cyg_mutex_lock
30629+ 0x000055e8 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30630+ 0x000055e8 cyg_mutex_lock
30631 .text.cyg_mutex_unlock
30632- 0x000054b4 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30633- 0x000054b4 cyg_mutex_unlock
30634+ 0x000055f0 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30635+ 0x000055f0 cyg_mutex_unlock
30636 .text.startup._GLOBAL__sub_I_cyg_scheduler_start
30637- 0x000054bc 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30638+ 0x000055f8 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
30639 .text._Z16idle_thread_mainj
30640- 0x000054c8 0x40 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
30641- 0x000054c8 idle_thread_main(unsigned int)
30642+ 0x00005604 0x40 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
30643+ 0x00005604 idle_thread_main(unsigned int)
30644 .text._ZN10Cyg_ThreadC2EjPFvjEjPcjj
30645- 0x00005508 0x270 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
30646- 0x00005508 Cyg_Thread::Cyg_Thread(unsigned int, void (*)(unsigned int), unsigned int, char*, unsigned int, unsigned int)
30647- 0x00005508 Cyg_Thread::Cyg_Thread(unsigned int, void (*)(unsigned int), unsigned int, char*, unsigned int, unsigned int)
30648+ 0x00005644 0x270 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
30649+ 0x00005644 Cyg_Thread::Cyg_Thread(unsigned int, void (*)(unsigned int), unsigned int, char*, unsigned int, unsigned int)
30650+ 0x00005644 Cyg_Thread::Cyg_Thread(unsigned int, void (*)(unsigned int), unsigned int, char*, unsigned int, unsigned int)
30651 .text._ZNK10Cyg_Thread10check_thisE21cyg_assert_class_zeal
30652- 0x00005778 0x40 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
30653- 0x00005778 Cyg_Thread::check_this(cyg_assert_class_zeal) const
30654+ 0x000058b4 0x40 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
30655+ 0x000058b4 Cyg_Thread::check_this(cyg_assert_class_zeal) const
30656 .text._ZN10Cyg_Thread12reinitializeEv
30657- 0x000057b8 0xc0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
30658- 0x000057b8 Cyg_Thread::reinitialize()
30659+ 0x000058f4 0xc0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
30660+ 0x000058f4 Cyg_Thread::reinitialize()
30661 .text._ZN10Cyg_Thread5sleepEv
30662- 0x00005878 0x90 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
30663- 0x00005878 Cyg_Thread::sleep()
30664+ 0x000059b4 0x90 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
30665+ 0x000059b4 Cyg_Thread::sleep()
30666 .text._ZN10Cyg_Thread4wakeEv
30667- 0x00005908 0x78 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
30668- 0x00005908 Cyg_Thread::wake()
30669+ 0x00005a44 0x78 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
30670+ 0x00005a44 Cyg_Thread::wake()
30671 .text._ZN15Cyg_ThreadTimer5alarmEP9Cyg_Alarmj
30672- 0x00005980 0x8c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
30673- 0x00005980 Cyg_ThreadTimer::alarm(Cyg_Alarm*, unsigned int)
30674+ 0x00005abc 0x8c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
30675+ 0x00005abc Cyg_ThreadTimer::alarm(Cyg_Alarm*, unsigned int)
30676 .text._ZN10Cyg_Thread6resumeEv
30677- 0x00005a0c 0x94 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
30678- 0x00005a0c Cyg_Thread::resume()
30679+ 0x00005b48 0x94 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
30680+ 0x00005b48 Cyg_Thread::resume()
30681 .text._ZN10Cyg_Thread4exitEv
30682- 0x00005aa0 0x3c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
30683- 0x00005aa0 Cyg_Thread::exit()
30684+ 0x00005bdc 0x3c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
30685+ 0x00005bdc Cyg_Thread::exit()
30686 .text._ZN18Cyg_HardwareThread12thread_entryEP10Cyg_Thread
30687- 0x00005adc 0x1c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
30688- 0x00005adc Cyg_HardwareThread::thread_entry(Cyg_Thread*)
30689+ 0x00005c18 0x1c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
30690+ 0x00005c18 Cyg_HardwareThread::thread_entry(Cyg_Thread*)
30691 .text._ZN14Cyg_IdleThreadC2Ev
30692- 0x00005af8 0x54 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
30693- 0x00005af8 Cyg_IdleThread::Cyg_IdleThread()
30694- 0x00005af8 Cyg_IdleThread::Cyg_IdleThread()
30695+ 0x00005c34 0x54 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
30696+ 0x00005c34 Cyg_IdleThread::Cyg_IdleThread()
30697+ 0x00005c34 Cyg_IdleThread::Cyg_IdleThread()
30698 .text.startup._GLOBAL__sub_I.15000__ZN18Cyg_HardwareThread12thread_entryEP10Cyg_Thread
30699- 0x00005b4c 0x10 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
30700+ 0x00005c88 0x10 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
30701 .text._ZN13Cyg_InterruptC2EjijPFjjjEPFvjjjE
30702- 0x00005b5c 0x10 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
30703- 0x00005b5c Cyg_Interrupt::Cyg_Interrupt(unsigned int, int, unsigned int, unsigned int (*)(unsigned int, unsigned int), void (*)(unsigned int, unsigned int, unsigned int))
30704- 0x00005b5c Cyg_Interrupt::Cyg_Interrupt(unsigned int, int, unsigned int, unsigned int (*)(unsigned int, unsigned int), void (*)(unsigned int, unsigned int, unsigned int))
30705+ 0x00005c98 0x10 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
30706+ 0x00005c98 Cyg_Interrupt::Cyg_Interrupt(unsigned int, int, unsigned int, unsigned int (*)(unsigned int, unsigned int), void (*)(unsigned int, unsigned int, unsigned int))
30707+ 0x00005c98 Cyg_Interrupt::Cyg_Interrupt(unsigned int, int, unsigned int, unsigned int (*)(unsigned int, unsigned int), void (*)(unsigned int, unsigned int, unsigned int))
30708 .text._ZN13Cyg_Interrupt17call_pending_DSRsEv
30709- 0x00005b6c 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
30710- 0x00005b6c Cyg_Interrupt::call_pending_DSRs()
30711+ 0x00005ca8 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
30712+ 0x00005ca8 Cyg_Interrupt::call_pending_DSRs()
30713 .text.cyg_interrupt_post_dsr
30714- 0x00005ba4 0x30 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
30715- 0x00005ba4 cyg_interrupt_post_dsr
30716+ 0x00005ce0 0x30 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
30717+ 0x00005ce0 cyg_interrupt_post_dsr
30718 .text.interrupt_end
30719- 0x00005bd4 0x74 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
30720- 0x00005bd4 interrupt_end
30721+ 0x00005d10 0x74 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
30722+ 0x00005d10 interrupt_end
30723 .text._ZN13Cyg_Interrupt6attachEv
30724- 0x00005c48 0x8c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
30725- 0x00005c48 Cyg_Interrupt::attach()
30726+ 0x00005d84 0x8c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
30727+ 0x00005d84 Cyg_Interrupt::attach()
30728 .text._ZN13Cyg_Interrupt6detachEv
30729- 0x00005cd4 0x60 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
30730- 0x00005cd4 Cyg_Interrupt::detach()
30731+ 0x00005e10 0x60 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
30732+ 0x00005e10 Cyg_Interrupt::detach()
30733 .text._ZN13Cyg_InterruptD2Ev
30734- 0x00005d34 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
30735- 0x00005d34 Cyg_Interrupt::~Cyg_Interrupt()
30736- 0x00005d34 Cyg_Interrupt::~Cyg_Interrupt()
30737+ 0x00005e70 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
30738+ 0x00005e70 Cyg_Interrupt::~Cyg_Interrupt()
30739+ 0x00005e70 Cyg_Interrupt::~Cyg_Interrupt()
30740 .text._ZN13Cyg_Interrupt14mask_interruptEj
30741- 0x00005d40 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
30742- 0x00005d40 Cyg_Interrupt::mask_interrupt(unsigned int)
30743+ 0x00005e7c 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
30744+ 0x00005e7c Cyg_Interrupt::mask_interrupt(unsigned int)
30745 .text._ZN13Cyg_Interrupt16unmask_interruptEj
30746- 0x00005d78 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
30747- 0x00005d78 Cyg_Interrupt::unmask_interrupt(unsigned int)
30748+ 0x00005eb4 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
30749+ 0x00005eb4 Cyg_Interrupt::unmask_interrupt(unsigned int)
30750 .text._ZN13Cyg_Interrupt23call_pending_DSRs_innerEv
30751- 0x00005db0 0x88 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
30752- 0x00005db0 Cyg_Interrupt::call_pending_DSRs_inner()
30753+ 0x00005eec 0x88 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
30754+ 0x00005eec Cyg_Interrupt::call_pending_DSRs_inner()
30755 .text.cyg_interrupt_call_pending_DSRs
30756- 0x00005e38 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
30757- 0x00005e38 cyg_interrupt_call_pending_DSRs
30758+ 0x00005f74 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
30759+ 0x00005f74 cyg_interrupt_call_pending_DSRs
30760 .text.startup._GLOBAL__sub_I.12000__ZN13Cyg_Interrupt15disable_counterE
30761- 0x00005e40 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
30762+ 0x00005f7c 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
30763 .text._ZN28Cyg_Scheduler_ImplementationC2Ev
30764- 0x00005e4c 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30765- 0x00005e4c Cyg_Scheduler_Implementation::Cyg_Scheduler_Implementation()
30766- 0x00005e4c Cyg_Scheduler_Implementation::Cyg_Scheduler_Implementation()
30767+ 0x00005f88 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30768+ 0x00005f88 Cyg_Scheduler_Implementation::Cyg_Scheduler_Implementation()
30769+ 0x00005f88 Cyg_Scheduler_Implementation::Cyg_Scheduler_Implementation()
30770 .text._ZN28Cyg_Scheduler_Implementation8scheduleEv
30771- 0x00005e58 0x30 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30772- 0x00005e58 Cyg_Scheduler_Implementation::schedule()
30773+ 0x00005f94 0x30 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30774+ 0x00005f94 Cyg_Scheduler_Implementation::schedule()
30775 .text._ZN28Cyg_Scheduler_Implementation10add_threadEP10Cyg_Thread
30776- 0x00005e88 0x8c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30777- 0x00005e88 Cyg_Scheduler_Implementation::add_thread(Cyg_Thread*)
30778+ 0x00005fc4 0x8c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30779+ 0x00005fc4 Cyg_Scheduler_Implementation::add_thread(Cyg_Thread*)
30780 .text._ZN28Cyg_Scheduler_Implementation10rem_threadEP10Cyg_Thread
30781- 0x00005f14 0x68 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30782- 0x00005f14 Cyg_Scheduler_Implementation::rem_thread(Cyg_Thread*)
30783+ 0x00006050 0x68 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30784+ 0x00006050 Cyg_Scheduler_Implementation::rem_thread(Cyg_Thread*)
30785 .text._ZN28Cyg_Scheduler_Implementation15set_idle_threadEP10Cyg_Threadj
30786- 0x00005f7c 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30787- 0x00005f7c Cyg_Scheduler_Implementation::set_idle_thread(Cyg_Thread*, unsigned int)
30788+ 0x000060b8 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30789+ 0x000060b8 Cyg_Scheduler_Implementation::set_idle_thread(Cyg_Thread*, unsigned int)
30790 .text._ZN28Cyg_Scheduler_Implementation15register_threadEP10Cyg_Thread
30791- 0x00005f90 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30792- 0x00005f90 Cyg_Scheduler_Implementation::register_thread(Cyg_Thread*)
30793+ 0x000060cc 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30794+ 0x000060cc Cyg_Scheduler_Implementation::register_thread(Cyg_Thread*)
30795 .text._ZN28Cyg_Scheduler_Implementation17deregister_threadEP10Cyg_Thread
30796- 0x00005fc8 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30797- 0x00005fc8 Cyg_Scheduler_Implementation::deregister_thread(Cyg_Thread*)
30798+ 0x00006104 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30799+ 0x00006104 Cyg_Scheduler_Implementation::deregister_thread(Cyg_Thread*)
30800 .text._ZN28Cyg_Scheduler_Implementation6uniqueEi
30801- 0x00006000 0x30 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30802- 0x00006000 Cyg_Scheduler_Implementation::unique(int)
30803+ 0x0000613c 0x30 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30804+ 0x0000613c Cyg_Scheduler_Implementation::unique(int)
30805 .text._ZN30Cyg_SchedThread_ImplementationC2Ej
30806- 0x00006030 0x24 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30807- 0x00006030 Cyg_SchedThread_Implementation::Cyg_SchedThread_Implementation(unsigned int)
30808- 0x00006030 Cyg_SchedThread_Implementation::Cyg_SchedThread_Implementation(unsigned int)
30809+ 0x0000616c 0x24 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30810+ 0x0000616c Cyg_SchedThread_Implementation::Cyg_SchedThread_Implementation(unsigned int)
30811+ 0x0000616c Cyg_SchedThread_Implementation::Cyg_SchedThread_Implementation(unsigned int)
30812 .text._ZN30Cyg_ThreadQueue_ImplementationC2Ev
30813- 0x00006054 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30814- 0x00006054 Cyg_ThreadQueue_Implementation::Cyg_ThreadQueue_Implementation()
30815- 0x00006054 Cyg_ThreadQueue_Implementation::Cyg_ThreadQueue_Implementation()
30816+ 0x00006190 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30817+ 0x00006190 Cyg_ThreadQueue_Implementation::Cyg_ThreadQueue_Implementation()
30818+ 0x00006190 Cyg_ThreadQueue_Implementation::Cyg_ThreadQueue_Implementation()
30819 .text._ZN30Cyg_ThreadQueue_Implementation7enqueueEP10Cyg_Thread
30820- 0x0000605c 0x10 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30821- 0x0000605c Cyg_ThreadQueue_Implementation::enqueue(Cyg_Thread*)
30822+ 0x00006198 0x10 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30823+ 0x00006198 Cyg_ThreadQueue_Implementation::enqueue(Cyg_Thread*)
30824 .text._ZN30Cyg_ThreadQueue_Implementation7dequeueEv
30825- 0x0000606c 0x2c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30826- 0x0000606c Cyg_ThreadQueue_Implementation::dequeue()
30827+ 0x000061a8 0x2c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30828+ 0x000061a8 Cyg_ThreadQueue_Implementation::dequeue()
30829 .text._ZN30Cyg_ThreadQueue_Implementation6removeEP10Cyg_Thread
30830- 0x00006098 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30831- 0x00006098 Cyg_ThreadQueue_Implementation::remove(Cyg_Thread*)
30832+ 0x000061d4 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
30833+ 0x000061d4 Cyg_ThreadQueue_Implementation::remove(Cyg_Thread*)
30834 .text._ZN13Cyg_Scheduler12unlock_innerEj
30835- 0x000060ac 0x324 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
30836- 0x000060ac Cyg_Scheduler::unlock_inner(unsigned int)
30837+ 0x000061e8 0x324 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
30838+ 0x000061e8 Cyg_Scheduler::unlock_inner(unsigned int)
30839 .text._ZN13Cyg_Scheduler12thread_entryEP10Cyg_Thread
30840- 0x000063d0 0x60 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
30841- 0x000063d0 Cyg_Scheduler::thread_entry(Cyg_Thread*)
30842+ 0x0000650c 0x60 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
30843+ 0x0000650c Cyg_Scheduler::thread_entry(Cyg_Thread*)
30844 .text._ZN13Cyg_Scheduler9start_cpuEv
30845- 0x00006430 0x58 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
30846- 0x00006430 Cyg_Scheduler::start_cpu()
30847+ 0x0000656c 0x58 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
30848+ 0x0000656c Cyg_Scheduler::start_cpu()
30849 .text._ZN13Cyg_Scheduler5startEv
30850- 0x00006488 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
30851- 0x00006488 Cyg_Scheduler::start()
30852+ 0x000065c4 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
30853+ 0x000065c4 Cyg_Scheduler::start()
30854 .text._ZN15Cyg_SchedThreadC2EP10Cyg_Threadj
30855- 0x00006490 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
30856- 0x00006490 Cyg_SchedThread::Cyg_SchedThread(Cyg_Thread*, unsigned int)
30857- 0x00006490 Cyg_SchedThread::Cyg_SchedThread(Cyg_Thread*, unsigned int)
30858+ 0x000065cc 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
30859+ 0x000065cc Cyg_SchedThread::Cyg_SchedThread(Cyg_Thread*, unsigned int)
30860+ 0x000065cc Cyg_SchedThread::Cyg_SchedThread(Cyg_Thread*, unsigned int)
30861 .text.startup._GLOBAL__sub_I.11000_cyg_scheduler_sched_lock
30862- 0x000064a4 0x10 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
30863+ 0x000065e0 0x10 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
30864 .text._ZN22Cyg_Counting_SemaphoreC2Ei
30865- 0x000064b4 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
30866- 0x000064b4 Cyg_Counting_Semaphore::Cyg_Counting_Semaphore(int)
30867- 0x000064b4 Cyg_Counting_Semaphore::Cyg_Counting_Semaphore(int)
30868+ 0x000065f0 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
30869+ 0x000065f0 Cyg_Counting_Semaphore::Cyg_Counting_Semaphore(int)
30870+ 0x000065f0 Cyg_Counting_Semaphore::Cyg_Counting_Semaphore(int)
30871 .text._ZN22Cyg_Counting_Semaphore4postEv
30872- 0x000064c8 0x68 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
30873- 0x000064c8 Cyg_Counting_Semaphore::post()
30874+ 0x00006604 0x68 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
30875+ 0x00006604 Cyg_Counting_Semaphore::post()
30876 .text._ZN9Cyg_MutexC2Ev
30877- 0x00006530 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
30878- 0x00006530 Cyg_Mutex::Cyg_Mutex()
30879- 0x00006530 Cyg_Mutex::Cyg_Mutex()
30880+ 0x0000666c 0x14 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
30881+ 0x0000666c Cyg_Mutex::Cyg_Mutex()
30882+ 0x0000666c Cyg_Mutex::Cyg_Mutex()
30883 .text._ZNK9Cyg_Mutex10check_thisE21cyg_assert_class_zeal
30884- 0x00006544 0x40 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
30885- 0x00006544 Cyg_Mutex::check_this(cyg_assert_class_zeal) const
30886+ 0x00006680 0x40 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
30887+ 0x00006680 Cyg_Mutex::check_this(cyg_assert_class_zeal) const
30888 .text._ZN9Cyg_Mutex4lockEv
30889- 0x00006584 0x16c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
30890- 0x00006584 Cyg_Mutex::lock()
30891+ 0x000066c0 0x16c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
30892+ 0x000066c0 Cyg_Mutex::lock()
30893 .text._ZN9Cyg_Mutex6unlockEv
30894- 0x000066f0 0x118 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
30895- 0x000066f0 Cyg_Mutex::unlock()
30896- .text 0x00006808 0x52 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_context.o)
30897- 0x00006808 hal_thread_switch_context
30898- 0x0000682e hal_thread_load_context
30899- 0x0000684e hal_setjmp
30900- 0x00006854 hal_longjmp
30901- *fill* 0x0000685a 0x2
30902+ 0x0000682c 0x118 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
30903+ 0x0000682c Cyg_Mutex::unlock()
30904+ .text 0x00006944 0x52 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_context.o)
30905+ 0x00006944 hal_thread_switch_context
30906+ 0x0000696a hal_thread_load_context
30907+ 0x0000698a hal_setjmp
30908+ 0x00006990 hal_longjmp
30909+ *fill* 0x00006996 0x2
30910 .text._ZN17Cyg_RealTimeClock3isrEjj
30911- 0x0000685c 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
30912- 0x0000685c Cyg_RealTimeClock::isr(unsigned int, unsigned int)
30913+ 0x00006998 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
30914+ 0x00006998 Cyg_RealTimeClock::isr(unsigned int, unsigned int)
30915 .text._ZN11Cyg_Counter9add_alarmEP9Cyg_Alarm
30916- 0x00006868 0xc4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
30917- 0x00006868 Cyg_Counter::add_alarm(Cyg_Alarm*)
30918+ 0x000069a4 0xc4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
30919+ 0x000069a4 Cyg_Counter::add_alarm(Cyg_Alarm*)
30920 .text._ZN11Cyg_Counter4tickEj
30921- 0x0000692c 0x140 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
30922- 0x0000692c Cyg_Counter::tick(unsigned int)
30923+ 0x00006a68 0x140 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
30924+ 0x00006a68 Cyg_Counter::tick(unsigned int)
30925 .text._ZN17Cyg_RealTimeClock3dsrEjjj
30926- 0x00006a6c 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
30927- 0x00006a6c Cyg_RealTimeClock::dsr(unsigned int, unsigned int, unsigned int)
30928+ 0x00006ba8 0xc K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
30929+ 0x00006ba8 Cyg_RealTimeClock::dsr(unsigned int, unsigned int, unsigned int)
30930 .text._ZN11Cyg_Counter9rem_alarmEP9Cyg_Alarm
30931- 0x00006a78 0x98 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
30932- 0x00006a78 Cyg_Counter::rem_alarm(Cyg_Alarm*)
30933+ 0x00006bb4 0x98 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
30934+ 0x00006bb4 Cyg_Counter::rem_alarm(Cyg_Alarm*)
30935 .text._ZN9Cyg_AlarmC2EP11Cyg_CounterPFvPS_jEj
30936- 0x00006b10 0x1c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
30937- 0x00006b10 Cyg_Alarm::Cyg_Alarm(Cyg_Counter*, void (*)(Cyg_Alarm*, unsigned int), unsigned int)
30938- 0x00006b10 Cyg_Alarm::Cyg_Alarm(Cyg_Counter*, void (*)(Cyg_Alarm*, unsigned int), unsigned int)
30939+ 0x00006c4c 0x1c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
30940+ 0x00006c4c Cyg_Alarm::Cyg_Alarm(Cyg_Counter*, void (*)(Cyg_Alarm*, unsigned int), unsigned int)
30941+ 0x00006c4c Cyg_Alarm::Cyg_Alarm(Cyg_Counter*, void (*)(Cyg_Alarm*, unsigned int), unsigned int)
30942 .text._ZN9Cyg_Alarm7disableEv
30943- 0x00006b2c 0x54 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
30944- 0x00006b2c Cyg_Alarm::disable()
30945+ 0x00006c68 0x54 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
30946+ 0x00006c68 Cyg_Alarm::disable()
30947 .text._ZN17Cyg_RealTimeClockC2Ev
30948- 0x00006b80 0x70 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
30949- 0x00006b80 Cyg_RealTimeClock::Cyg_RealTimeClock()
30950- 0x00006b80 Cyg_RealTimeClock::Cyg_RealTimeClock()
30951+ 0x00006cbc 0x70 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
30952+ 0x00006cbc Cyg_RealTimeClock::Cyg_RealTimeClock()
30953+ 0x00006cbc Cyg_RealTimeClock::Cyg_RealTimeClock()
30954 .text.startup._GLOBAL__sub_I.14000__ZN9Cyg_Clock15real_time_clockE
30955- 0x00006bf0 0x10 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
30956- .text 0x00006c00 0x9c /cygdrive/k/build/compiler/gcc_arm/arm-eabi/bin/../lib/gcc/arm-eabi/4.7.1/thumb/libgcc.a(_udivsi3.o)
30957- 0x00006c00 __udivsi3
30958- 0x00006c00 __aeabi_uidiv
30959- 0x00006c88 __aeabi_uidivmod
30960- .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)
30961- 0x00006c9c __aeabi_ldiv0
30962- 0x00006c9c __aeabi_idiv0
30963- .text 0x00006ca0 0x44 /cygdrive/k/build/compiler/gcc_arm/arm-eabi/bin/../lib/gcc/arm-eabi/4.7.1/thumb/libgcc.a(_muldi3.o)
30964- 0x00006ca0 __aeabi_lmul
30965- 0x00006ca0 __muldi3
30966+ 0x00006d2c 0x10 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
30967+ .text 0x00006d3c 0x9c /cygdrive/k/build/compiler/gcc_arm/arm-eabi/bin/../lib/gcc/arm-eabi/4.7.1/thumb/libgcc.a(_udivsi3.o)
30968+ 0x00006d3c __udivsi3
30969+ 0x00006d3c __aeabi_uidiv
30970+ 0x00006dc4 __aeabi_uidivmod
30971+ .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)
30972+ 0x00006dd8 __aeabi_ldiv0
30973+ 0x00006dd8 __aeabi_idiv0
30974+ .text 0x00006ddc 0x44 /cygdrive/k/build/compiler/gcc_arm/arm-eabi/bin/../lib/gcc/arm-eabi/4.7.1/thumb/libgcc.a(_muldi3.o)
30975+ 0x00006ddc __aeabi_lmul
30976+ 0x00006ddc __muldi3
30977 *(.gnu.warning)
30978 *(.gnu.linkonce.t.*)
30979 *(.init)
30980@@ -2705,321 +2711,321 @@
30981 .glue_7 0x00000000 0x0 linker stubs
30982 *(.glue_7t)
30983 .glue_7t 0x00000000 0x0 linker stubs
30984- 0x00006ce4 __CTOR_LIST__ = ABSOLUTE (.)
30985+ 0x00006e20 __CTOR_LIST__ = ABSOLUTE (.)
30986 *(SORT(.ctors*))
30987- 0x00006ce4 __CTOR_END__ = ABSOLUTE (.)
30988- 0x00006ce4 __DTOR_LIST__ = ABSOLUTE (.)
30989+ 0x00006e20 __CTOR_END__ = ABSOLUTE (.)
30990+ 0x00006e20 __DTOR_LIST__ = ABSOLUTE (.)
30991 *(SORT(.dtors*))
30992- 0x00006ce4 __DTOR_END__ = ABSOLUTE (.)
30993- 0x00006ce4 _etext = .
30994- 0x00006ce4 PROVIDE (__etext, .)
30995+ 0x00006e20 __DTOR_END__ = ABSOLUTE (.)
30996+ 0x00006e20 _etext = .
30997+ 0x00006e20 PROVIDE (__etext, .)
30998
30999-.vfp11_veneer 0x00006ce4 0x0
31000+.vfp11_veneer 0x00006e20 0x0
31001 .vfp11_veneer 0x00000000 0x0 linker stubs
31002
31003-.v4_bx 0x00006ce4 0x0
31004+.v4_bx 0x00006e20 0x0
31005 .v4_bx 0x00000000 0x0 linker stubs
31006
31007-.iplt 0x00006ce4 0x0
31008+.iplt 0x00006e20 0x0
31009 .iplt 0x00000000 0x0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/vectors.o
31010
31011-.fini 0x00006ce8 0x0
31012- 0x00006ce8 . = .
31013+.fini 0x00006e20 0x0
31014+ 0x00006e20 . = .
31015 *(.fini)
31016
31017-.rodata 0x00006ce8 0xa5c
31018- 0x00006ce8 . = .
31019+.rodata 0x00006e20 0xa5c
31020+ 0x00006e20 . = .
31021 *(.rodata*)
31022 .rodata.gHal_DevRegisterTbl
31023- 0x00006ce8 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_init.o)
31024- .rodata.__FUNCTION__.5124
31025- 0x00006d10 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
31026+ 0x00006e20 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_init.o)
31027+ .rodata.__FUNCTION__.5185
31028+ 0x00006e48 0x1c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
31029 .rodata.hwlock_regs
31030- 0x00006d20 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
31031- .rodata.__FUNCTION__.5153
31032- 0x00006d30 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
31033+ 0x00006e64 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
31034+ .rodata.__FUNCTION__.5136
31035+ 0x00006e74 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
31036 .rodata.str1.4
31037- 0x00006d50 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
31038- .rodata.__FUNCTION__.5164
31039- 0x00006d8c 0x1c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
31040+ 0x00006e84 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
31041+ .rodata.__FUNCTION__.5174
31042+ 0x00006ec0 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
31043 .rodata.__FUNCTION__.5196
31044- 0x00006da8 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31045+ 0x00006ee0 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31046 .rodata.__FUNCTION__.5220
31047- 0x00006dbc 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31048+ 0x00006ef4 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31049 .rodata.__FUNCTION__.5155
31050- 0x00006dd4 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31051+ 0x00006f0c 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31052 .rodata.str1.4
31053- 0x00006de8 0x35 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31054+ 0x00006f20 0x35 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31055 0x3c (size before relaxing)
31056- *fill* 0x00006e1d 0x3
31057+ *fill* 0x00006f55 0x3
31058 .rodata.__FUNCTION__.5203
31059- 0x00006e20 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31060+ 0x00006f58 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31061 .rodata.__FUNCTION__.5172
31062- 0x00006e30 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31063+ 0x00006f68 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31064 .rodata.__FUNCTION__.5226
31065- 0x00006e44 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31066+ 0x00006f7c 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31067 .rodata.__FUNCTION__.5095
31068- 0x00006e5c 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
31069+ 0x00006f94 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
31070 .rodata.str1.4
31071- 0x00006e70 0x33 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
31072+ 0x00006fa8 0x33 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
31073 0x38 (size before relaxing)
31074- *fill* 0x00006ea3 0x1
31075- .rodata.__FUNCTION__.5167
31076- 0x00006ea4 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
31077- .rodata.__FUNCTION__.5142
31078- 0x00006ebc 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
31079- .rodata.__FUNCTION__.5129
31080- 0x00006ed0 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
31081+ *fill* 0x00006fdb 0x1
31082+ .rodata.__FUNCTION__.5134
31083+ 0x00006fdc 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
31084+ .rodata.__FUNCTION__.5172
31085+ 0x00006ff0 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
31086+ .rodata.__FUNCTION__.5147
31087+ 0x00007008 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
31088+ .rodata.__FUNCTION__.5179
31089+ 0x0000701c 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
31090 .rodata.str1.4
31091- 0x00006ee4 0x33 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
31092+ 0x00007034 0x33 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
31093 0x38 (size before relaxing)
31094- *fill* 0x00006f17 0x1
31095- .rodata.__FUNCTION__.5174
31096- 0x00006f18 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
31097+ *fill* 0x00007067 0x1
31098 .rodata.__FUNCTION__.6260
31099- 0x00006f30 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31100+ 0x00007068 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31101 .rodata.str1.4
31102- 0x00006f44 0x5a K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31103+ 0x0000707c 0x5a K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31104 0x60 (size before relaxing)
31105- *fill* 0x00006f9e 0x2
31106+ *fill* 0x000070d6 0x2
31107 .rodata.__FUNCTION__.6335
31108- 0x00006fa0 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31109- .rodata 0x00006fb8 0x2c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31110- .rodata.__FUNCTION__.5394
31111- 0x00006fe4 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
31112+ 0x000070d8 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31113+ .rodata 0x000070f0 0x2c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31114 .rodata.str1.4
31115- 0x00006ff0 0x33 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
31116+ 0x0000711c 0x33 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
31117 0x38 (size before relaxing)
31118- *fill* 0x00007023 0x1
31119- .rodata.__FUNCTION__.5385
31120- 0x00007024 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
31121- .rodata.__FUNCTION__.5338
31122- 0x00007030 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
31123- .rodata.__FUNCTION__.5351
31124- 0x00007048 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31125- .rodata.__FUNCTION__.5298
31126- 0x0000705c 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31127- .rodata.__FUNCTION__.5342
31128- 0x00007070 0x8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31129+ *fill* 0x0000714f 0x1
31130+ .rodata.__FUNCTION__.5390
31131+ 0x00007150 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
31132+ .rodata.__FUNCTION__.5343
31133+ 0x0000715c 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
31134+ .rodata.__FUNCTION__.5399
31135+ 0x00007174 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
31136 .rodata.__FUNCTION__.5355
31137- 0x00007078 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31138- .rodata.__FUNCTION__.5302
31139- 0x0000708c 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31140- .rodata.__FUNCTION__.5312
31141- 0x000070a0 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31142- .rodata.__FUNCTION__.5290
31143- 0x000070b0 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31144- .rodata.__FUNCTION__.5331
31145- 0x000070c4 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31146+ 0x00007180 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31147+ .rodata.__FUNCTION__.5385
31148+ 0x00007190 0x8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31149+ .rodata.__FUNCTION__.5408
31150+ 0x00007198 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31151+ .rodata.__FUNCTION__.5345
31152+ 0x000071ac 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31153+ .rodata.__FUNCTION__.5374
31154+ 0x000071c0 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31155+ .rodata.__FUNCTION__.5328
31156+ 0x000071d0 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31157 .rodata.str1.4
31158- 0x000070d4 0x33 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31159+ 0x000071e4 0x33 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31160 0x38 (size before relaxing)
31161- *fill* 0x00007107 0x1
31162- .rodata.__FUNCTION__.5276
31163- 0x00007108 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31164- .rodata.__FUNCTION__.5285
31165- 0x00007118 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31166- .rodata.__FUNCTION__.5365
31167- 0x0000712c 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31168- .rodata.__FUNCTION__.5294
31169- 0x00007140 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31170- .rodata.__FUNCTION__.5188
31171- 0x00007150 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
31172- .rodata.__FUNCTION__.5194
31173- 0x00007164 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
31174- .rodata.__FUNCTION__.5200
31175- 0x00007178 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
31176- .rodata.gClkOpsMatrixAxi
31177- 0x0000718c 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
31178- 0x0000718c gClkOpsMatrixAxi
31179- .rodata.str1.4
31180- 0x0000719c 0x36 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
31181- 0x3c (size before relaxing)
31182- *fill* 0x000071d2 0x2
31183- .rodata.gClkOpsSpecial0
31184- 0x000071d4 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
31185- 0x000071d4 gClkOpsSpecial0
31186- .rodata.__FUNCTION__.5174
31187- 0x000071e4 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
31188+ *fill* 0x00007217 0x1
31189+ .rodata.__FUNCTION__.5319
31190+ 0x00007218 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31191+ .rodata.__FUNCTION__.5333
31192+ 0x00007228 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31193+ .rodata.__FUNCTION__.5394
31194+ 0x0000723c 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31195+ .rodata.__FUNCTION__.5398
31196+ 0x00007250 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31197+ .rodata.__FUNCTION__.5341
31198+ 0x00007264 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31199+ .rodata.__FUNCTION__.5337
31200+ 0x00007278 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31201 .rodata.gCommonClkOps
31202- 0x000071f8 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
31203- 0x000071f8 gCommonClkOps
31204- .rodata.pow_AxiClk_Change
31205- 0x00007208 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
31206- .rodata.__FUNCTION__.5696
31207- 0x00007228 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
31208+ 0x00007288 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
31209+ 0x00007288 gCommonClkOps
31210+ .rodata.__FUNCTION__.5193
31211+ 0x00007298 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
31212+ .rodata.gClkOpsMatrixAxi
31213+ 0x000072ac 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
31214+ 0x000072ac gClkOpsMatrixAxi
31215+ .rodata.__FUNCTION__.5205
31216+ 0x000072bc 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
31217 .rodata.str1.4
31218- 0x00007238 0x37 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
31219+ 0x000072d0 0x36 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
31220 0x3c (size before relaxing)
31221- *fill* 0x0000726f 0x1
31222+ *fill* 0x00007306 0x2
31223+ .rodata.__FUNCTION__.5199
31224+ 0x00007308 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
31225+ .rodata.gClkOpsSpecial0
31226+ 0x0000731c 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
31227+ 0x0000731c gClkOpsSpecial0
31228+ .rodata.__FUNCTION__.5179
31229+ 0x0000732c 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
31230+ .rodata.pow_AxiClk_Change
31231+ 0x00007340 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
31232+ .rodata.__FUNCTION__.5696
31233+ 0x00007360 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
31234+ .rodata.str1.4
31235+ 0x00007370 0x37 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
31236+ 0x3c (size before relaxing)
31237+ *fill* 0x000073a7 0x1
31238 .rodata.s_pmicI2cDev0
31239- 0x00007270 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
31240+ 0x000073a8 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
31241 .rodata.str1.4
31242- 0x00007284 0x33 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
31243+ 0x000073bc 0x33 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
31244 0x34 (size before relaxing)
31245- *fill* 0x000072b7 0x1
31246+ *fill* 0x000073ef 0x1
31247 .rodata.str1.4
31248- 0x000072b8 0x5d K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
31249+ 0x000073f0 0x5d K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
31250 0x60 (size before relaxing)
31251- *fill* 0x00007315 0x3
31252+ *fill* 0x0000744d 0x3
31253 .rodata.str1.4
31254- 0x00007318 0x66 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
31255+ 0x00007450 0x66 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_tos_m0_tos_m0_misc.o)
31256 0x68 (size before relaxing)
31257- *fill* 0x0000737e 0x2
31258+ *fill* 0x000074b6 0x2
31259 .rodata.str1.4
31260- 0x00007380 0x57 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
31261+ 0x000074b8 0x57 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
31262 0x58 (size before relaxing)
31263- *fill* 0x000073d7 0x1
31264+ *fill* 0x0000750f 0x1
31265 .rodata.str1.4
31266- 0x000073d8 0x9c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
31267+ 0x00007510 0x9c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
31268 .rodata.str1.4
31269- 0x00007474 0xb4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
31270+ 0x000075ac 0xb4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
31271 0xf8 (size before relaxing)
31272 .rodata.str1.4
31273- 0x00007528 0x56 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
31274+ 0x00007660 0x56 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
31275 0x9c (size before relaxing)
31276- *fill* 0x0000757e 0x2
31277+ *fill* 0x000076b6 0x2
31278 .rodata.str1.4
31279- 0x00007580 0x59 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
31280+ 0x000076b8 0x59 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
31281 0x5c (size before relaxing)
31282- *fill* 0x000075d9 0x3
31283+ *fill* 0x00007711 0x3
31284 .rodata.str1.4
31285- 0x000075dc 0x58 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
31286+ 0x00007714 0x58 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
31287 0xe4 (size before relaxing)
31288 .rodata.str1.4
31289- 0x00007634 0x59 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
31290+ 0x0000776c 0x59 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
31291 0xa0 (size before relaxing)
31292- *fill* 0x0000768d 0x3
31293+ *fill* 0x000077c5 0x3
31294 .rodata.str1.4
31295- 0x00007690 0x57 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
31296+ 0x000077c8 0x57 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
31297 0x9c (size before relaxing)
31298- *fill* 0x000076e7 0x1
31299+ *fill* 0x0000781f 0x1
31300 .rodata.str1.4
31301- 0x000076e8 0x5c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
31302+ 0x00007820 0x5c K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
31303 0xa0 (size before relaxing)
31304 *(.gnu.linkonce.r.*)
31305
31306-.rodata1 0x00007748 0x0
31307- 0x00007748 . = .
31308+.rodata1 0x00007880 0x0
31309+ 0x00007880 . = .
31310 *(.rodata1)
31311
31312-.fixup 0x00007748 0x0
31313- 0x00007748 . = .
31314+.fixup 0x00007880 0x0
31315+ 0x00007880 . = .
31316 *(.fixup)
31317
31318 .gcc_except_table
31319- 0x00007748 0x0
31320- 0x00007748 . = .
31321+ 0x00007880 0x0
31322+ 0x00007880 . = .
31323 *(.gcc_except_table)
31324 *(.gcc_except_table.*)
31325
31326-.eh_frame 0x00007748 0x8
31327- 0x00007748 . = .
31328- 0x00007748 __EH_FRAME_BEGIN__ = .
31329+.eh_frame 0x00007880 0x8
31330+ 0x00007880 . = .
31331+ 0x00007880 __EH_FRAME_BEGIN__ = .
31332 *(.eh_frame)
31333- 0x00007748 __FRAME_END__ = .
31334- 0x00007750 . = (. + 0x8)
31335- *fill* 0x00007748 0x8 00000000
31336+ 0x00007880 __FRAME_END__ = .
31337+ 0x00007888 . = (. + 0x8)
31338+ *fill* 0x00007880 0x8 00000000
31339
31340-.got 0x00007750 0x0
31341- 0x00007750 . = .
31342+.got 0x00007888 0x0
31343+ 0x00007888 . = .
31344 *(.got.plt)
31345 *(.got)
31346- 0x00007750 _GOT1_START_ = ABSOLUTE (.)
31347+ 0x00007888 _GOT1_START_ = ABSOLUTE (.)
31348 *(.got1)
31349- 0x00007750 _GOT1_END_ = ABSOLUTE (.)
31350- 0x00007750 _GOT2_START_ = ABSOLUTE (.)
31351+ 0x00007888 _GOT1_END_ = ABSOLUTE (.)
31352+ 0x00007888 _GOT2_START_ = ABSOLUTE (.)
31353 *(.got2)
31354- 0x00007750 _GOT2_END_ = ABSOLUTE (.)
31355+ 0x00007888 _GOT2_END_ = ABSOLUTE (.)
31356
31357-.data 0x00007750 0xc54
31358- 0x00007750 __ram_data_start = ABSOLUTE (.)
31359+.data 0x00007888 0xc54
31360+ 0x00007888 __ram_data_start = ABSOLUTE (.)
31361 *(.data*)
31362 .data.s_IcpRpmsgResource2M0
31363- 0x00007750 0xc0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31364+ 0x00007888 0xc0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31365 .data.s_IcpRpmsgResource
31366- 0x00007810 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31367- 0x00007810 s_IcpRpmsgResource
31368+ 0x00007948 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31369+ 0x00007948 s_IcpRpmsgResource
31370 .data.int_PCUTbl
31371- 0x00007814 0x54 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
31372- 0x00007814 int_PCUTbl
31373+ 0x0000794c 0x54 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
31374+ 0x0000794c int_PCUTbl
31375 .data.gHalTimer_ptDev
31376- 0x00007868 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
31377+ 0x000079a0 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
31378 .data.g_check_psmchannel_id
31379- 0x0000786c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
31380- 0x0000786c g_check_psmchannel_id
31381+ 0x000079a4 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
31382+ 0x000079a4 g_check_psmchannel_id
31383 .data.s_dma0ChConfig
31384- 0x00007870 0x98 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
31385+ 0x000079a8 0x98 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
31386 .data.gHalPow_ptDev
31387- 0x00007908 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31388- 0x00007908 gHalPow_ptDev
31389+ 0x00007a40 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31390+ 0x00007a40 gHalPow_ptDev
31391 .data.g_dcdc1pwrmode
31392- 0x0000790c 0x1 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31393- *fill* 0x0000790d 0x3
31394+ 0x00007a44 0x1 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31395+ *fill* 0x00007a45 0x3
31396 .data.g_wdt_dev
31397- 0x00007910 0x34 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31398+ 0x00007a48 0x34 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31399 .data.gClkNumMax
31400- 0x00007944 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
31401- 0x00007944 gClkNumMax
31402+ 0x00007a7c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
31403+ 0x00007a7c gClkNumMax
31404 .data.gClockInfoTable
31405- 0x00007948 0x8e8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
31406- 0x00007948 gClockInfoTable
31407+ 0x00007a80 0x8e8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_clkinfo.o)
31408+ 0x00007a80 gClockInfoTable
31409 .data.g_IntTable
31410- 0x00008230 0x144 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(int_cfg.o)
31411- 0x00008230 g_IntTable
31412+ 0x00008368 0x144 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(int_cfg.o)
31413+ 0x00008368 g_IntTable
31414 .data.g_zTos_Dgb_Level
31415- 0x00008374 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
31416- 0x00008374 g_zTos_Dgb_Level
31417+ 0x000084ac 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
31418+ 0x000084ac g_zTos_Dgb_Level
31419 .data.etext_addr
31420- 0x00008378 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
31421- 0x00008378 etext_addr
31422+ 0x000084b0 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
31423+ 0x000084b0 etext_addr
31424 .data.stext_addr
31425- 0x0000837c 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
31426- 0x0000837c stext_addr
31427+ 0x000084b4 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
31428+ 0x000084b4 stext_addr
31429 .data._ZL14next_unique_id
31430- 0x00008380 0x2 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
31431- *fill* 0x00008382 0x2
31432+ 0x000084b8 0x2 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
31433+ *fill* 0x000084ba 0x2
31434 .data.cyg_scheduler_sched_lock
31435- 0x00008384 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
31436- 0x00008384 cyg_scheduler_sched_lock
31437+ 0x000084bc 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
31438+ 0x000084bc cyg_scheduler_sched_lock
31439 .data.rtc_resolution
31440- 0x00008388 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
31441- 0x00008388 rtc_resolution
31442+ 0x000084c0 0x8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
31443+ 0x000084c0 rtc_resolution
31444 *(.data1)
31445 *(.gnu.linkonce.d.*)
31446- 0x00008390 . = ALIGN (0x4)
31447+ 0x000084c8 . = ALIGN (0x4)
31448 *(SORT(.ecos.table.*))
31449- 0x00008390 . = ALIGN (0x4)
31450- 0x00008390 __init_array_start__ = ABSOLUTE (.)
31451+ 0x000084c8 . = ALIGN (0x4)
31452+ 0x000084c8 __init_array_start__ = ABSOLUTE (.)
31453 *(SORT(.init_array.*))
31454 .init_array.11000
31455- 0x00008390 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
31456+ 0x000084c8 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
31457 .init_array.12000
31458- 0x00008394 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
31459+ 0x000084cc 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
31460 .init_array.14000
31461- 0x00008398 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
31462+ 0x000084d0 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
31463 .init_array.15000
31464- 0x0000839c 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
31465+ 0x000084d4 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
31466 *(SORT(.init_array))
31467- .init_array 0x000083a0 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
31468- 0x000083a4 __init_array_end__ = ABSOLUTE (.)
31469+ .init_array 0x000084d8 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
31470+ 0x000084dc __init_array_end__ = ABSOLUTE (.)
31471 *(.dynamic)
31472 *(.sdata*)
31473 *(.gnu.linkonce.s.*)
31474- 0x000083a4 . = ALIGN (0x4)
31475+ 0x000084dc . = ALIGN (0x4)
31476 *(.2ram.*)
31477- 0x00007750 __rom_data_start = LOADADDR (.data)
31478- 0x000083a4 __ram_data_end = .
31479- 0x000083a4 PROVIDE (__ram_data_end, .)
31480- 0x000083a4 _edata = .
31481- 0x000083a4 PROVIDE (edata, .)
31482- 0x000083a4 PROVIDE (__rom_data_end, (LOADADDR (.data) + SIZEOF (.data)))
31483+ 0x00007888 __rom_data_start = LOADADDR (.data)
31484+ 0x000084dc __ram_data_end = .
31485+ 0x000084dc PROVIDE (__ram_data_end, .)
31486+ 0x000084dc _edata = .
31487+ 0x000084dc PROVIDE (edata, .)
31488+ 0x000084dc PROVIDE (__rom_data_end, (LOADADDR (.data) + SIZEOF (.data)))
31489
31490-.igot.plt 0x000083a4 0x0
31491+.igot.plt 0x000084dc 0x0
31492 .igot.plt 0x00000000 0x0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/vectors.o
31493
31494-.bss 0x000083a8 0x27b4
31495- 0x000083a8 __bss_start = ABSOLUTE (.)
31496+.bss 0x000084e0 0x27b4
31497+ 0x000084e0 __bss_start = ABSOLUTE (.)
31498 *(.scommon)
31499 *(.dynsbss)
31500 *(.sbss*)
31501@@ -3027,227 +3033,227 @@
31502 *(.dynbss)
31503 *(.bss*)
31504 .bss.softlock_desc
31505- 0x000083a8 0x80 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
31506+ 0x000084e0 0x80 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
31507 .bss.s_hwSpinlockMsr
31508- 0x00008428 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
31509+ 0x00008560 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
31510 .bss.dwSendPos
31511- 0x0000842c 0x78 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31512+ 0x00008564 0x78 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31513 .bss.rpmsg_cache_buffer
31514- 0x000084a4 0x200 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31515- .bss.IcpSem 0x000086a4 0xf0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31516- 0x000086a4 IcpSem
31517+ 0x000085dc 0x200 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31518+ .bss.IcpSem 0x000087dc 0xf0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31519+ 0x000087dc IcpSem
31520 .bss.s_RpMsgCallbackList
31521- 0x00008794 0x78 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31522- 0x00008794 s_RpMsgCallbackList
31523+ 0x000088cc 0x78 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31524+ 0x000088cc s_RpMsgCallbackList
31525 .bss.RpMsg_ChMutex
31526- 0x0000880c 0x24 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31527- 0x0000880c RpMsg_ChMutex
31528- .bss.g_IntDev 0x00008830 0x108 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
31529- 0x00008830 g_IntDev
31530+ 0x00008944 0x24 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31531+ 0x00008944 RpMsg_ChMutex
31532+ .bss.g_IntDev 0x00008968 0x108 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
31533+ 0x00008968 g_IntDev
31534 .bss.interrupt
31535- 0x00008938 0x280 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
31536+ 0x00008a70 0x280 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
31537 .bss.m0_intmask_save
31538- 0x00008bb8 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
31539+ 0x00008cf0 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
31540 .bss.gHalTimerDev
31541- 0x00008bbc 0x6c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
31542+ 0x00008cf4 0x6c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
31543 .bss.g_save_restore_flow
31544- 0x00008c28 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
31545- 0x00008c28 g_save_restore_flow
31546- .bss.gDmaDev 0x00008c2c 0x64 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
31547- 0x00008c2c gDmaDev
31548+ 0x00008d60 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
31549+ 0x00008d60 g_save_restore_flow
31550+ .bss.gDmaDev 0x00008d64 0x64 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
31551+ 0x00008d64 gDmaDev
31552 .bss.g_PsmIdleThreadStack
31553- 0x00008c90 0x800 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31554+ 0x00008dc8 0x800 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31555 .bss.g_ChipSleepTime
31556- 0x00009490 0x8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31557+ 0x000095c8 0x8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31558 .bss.g_ChipSleepMode
31559- 0x00009498 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31560+ 0x000095d0 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31561 .bss.g_M0SleepFlag
31562- 0x0000949c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31563+ 0x000095d4 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31564 .bss.g_DdrSaveRestoreIram0
31565- 0x000094a0 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31566- 0x000094a0 g_DdrSaveRestoreIram0
31567+ 0x000095d8 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31568+ 0x000095d8 g_DdrSaveRestoreIram0
31569 .bss.g_ChipstandbyCnt
31570- 0x000094a4 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31571- 0x000094a4 g_ChipstandbyCnt
31572+ 0x000095dc 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31573+ 0x000095dc g_ChipstandbyCnt
31574 .bss.g_FlashMode
31575- 0x000094a8 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31576- 0x000094a8 g_FlashMode
31577- *fill* 0x000094ac 0x4
31578+ 0x000095e0 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31579+ 0x000095e0 g_FlashMode
31580+ *fill* 0x000095e4 0x4
31581 .bss.g_PsmIdleThread
31582- 0x000094b0 0x68 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31583+ 0x000095e8 0x68 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31584 .bss.g_PdcoreEn
31585- 0x00009518 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31586- 0x00009518 g_PdcoreEn
31587+ 0x00009650 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31588+ 0x00009650 g_PdcoreEn
31589 .bss.g_Iram0BaseAddr
31590- 0x0000951c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31591- 0x0000951c g_Iram0BaseAddr
31592+ 0x00009654 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31593+ 0x00009654 g_Iram0BaseAddr
31594 .bss.gHalPowDev
31595- 0x00009520 0x1c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31596+ 0x00009658 0x1c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31597 .bss.g_ChipsleepCnt
31598- 0x0000953c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31599- 0x0000953c g_ChipsleepCnt
31600+ 0x00009674 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31601+ 0x00009674 g_ChipsleepCnt
31602 .bss.g_PsmIdleThreadHandle
31603- 0x00009540 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31604+ 0x00009678 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31605 .bss.ddrRegInRam
31606- 0x00009544 0xdc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
31607+ 0x0000967c 0xdc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
31608 .bss.g_DdrSize
31609- 0x00009620 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
31610+ 0x00009758 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
31611 .bss.g_DdrAutoDis
31612- 0x00009624 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
31613- 0x00009624 g_DdrAutoDis
31614+ 0x0000975c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
31615+ 0x0000975c g_DdrAutoDis
31616 .bss.g_PdddrSdDis
31617- 0x00009628 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
31618- 0x00009628 g_PdddrSdDis
31619+ 0x00009760 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
31620+ 0x00009760 g_PdddrSdDis
31621 .bss.g_26mClkOffDis
31622- 0x0000962c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
31623- 0x0000962c g_26mClkOffDis
31624+ 0x00009764 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
31625+ 0x00009764 g_26mClkOffDis
31626 .bss.lspCrmRegInRam
31627- 0x00009630 0x64 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31628+ 0x00009768 0x64 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31629 .bss.g_Clken_Pdcore
31630- 0x00009694 0x54 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31631+ 0x000097cc 0x54 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31632 .bss.stdCrmRegInRam
31633- 0x000096e8 0x108 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31634+ 0x00009820 0x108 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31635 .bss.pinMuxRegInRam
31636- 0x000097f0 0x38 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31637+ 0x00009928 0x38 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31638 .bss.sdRegInRam
31639- 0x00009828 0x64 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31640+ 0x00009960 0x64 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31641 .bss.timerRegInRam
31642- 0x0000988c 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31643+ 0x000099c4 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31644 .bss.spifcRegInRam
31645- 0x000098c8 0x24 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31646+ 0x00009a00 0x24 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31647 .bss.wdtRegInRam
31648- 0x000098ec 0x38 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31649+ 0x00009a24 0x38 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31650 .bss.icpRegInRam
31651- 0x00009924 0xa0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31652+ 0x00009a5c 0xa0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31653 .bss.i2CRegInRam
31654- 0x000099c4 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31655+ 0x00009afc 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31656 .bss.uartRegInRam
31657- 0x000099ec 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31658+ 0x00009b24 0x3c K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31659 .bss.spiRegInRam
31660- 0x00009a28 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31661+ 0x00009b60 0x28 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31662 .bss.nandRegInRam
31663- 0x00009a50 0x68 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31664+ 0x00009b88 0x68 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31665 .bss.vouRegInRam
31666- 0x00009ab8 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31667+ 0x00009bf0 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31668 .bss.dmaRegInRam
31669- 0x00009ac8 0x2f8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31670- .bss.s_i2cBus 0x00009dc0 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
31671- .bss.s_mutex_tmp.5386
31672- 0x00009de0 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
31673- .bss.s_pmutex_tmp.5387
31674- 0x00009dec 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
31675- .bss.s_pmutex_tmp.5396
31676- 0x00009df0 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
31677- .bss.s_mutex_tmp.5395
31678- 0x00009df4 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
31679- .bss.g_flag1 0x00009e00 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31680- 0x00009e00 g_flag1
31681- .bss.g_flag2 0x00009e10 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31682- 0x00009e10 g_flag2
31683- .bss.g_flag0 0x00009e14 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31684- 0x00009e14 g_flag0
31685+ 0x00009c00 0x2f8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31686+ .bss.s_i2cBus 0x00009ef8 0x20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
31687+ .bss.s_mutex_tmp.5391
31688+ 0x00009f18 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
31689+ .bss.s_pmutex_tmp.5392
31690+ 0x00009f24 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
31691+ .bss.s_mutex_tmp.5400
31692+ 0x00009f28 0xc K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
31693+ .bss.s_pmutex_tmp.5401
31694+ 0x00009f34 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
31695+ .bss.g_flag0 0x00009f38 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31696+ 0x00009f38 g_flag0
31697+ .bss.g_flag2 0x00009f3c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31698+ 0x00009f3c g_flag2
31699+ .bss.g_flag1 0x00009f40 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31700+ 0x00009f40 g_flag1
31701 .bss.global_wdt_count
31702- 0x00009e18 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31703- 0x00009e18 global_wdt_count
31704+ 0x00009f50 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31705+ 0x00009f50 global_wdt_count
31706 .bss.g_apVolExp
31707- 0x00009e1c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
31708- 0x00009e1c g_apVolExp
31709+ 0x00009f54 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
31710+ 0x00009f54 g_apVolExp
31711 .bss.g_psVolExp
31712- 0x00009e20 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
31713- 0x00009e20 g_psVolExp
31714+ 0x00009f58 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
31715+ 0x00009f58 g_psVolExp
31716 .bss.g_phyVolExp
31717- 0x00009e24 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
31718- 0x00009e24 g_phyVolExp
31719+ 0x00009f5c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
31720+ 0x00009f5c g_phyVolExp
31721 .bss.g_apAxiExp
31722- 0x00009e28 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
31723- 0x00009e28 g_apAxiExp
31724+ 0x00009f60 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
31725+ 0x00009f60 g_apAxiExp
31726 .bss.g_psAxiExp
31727- 0x00009e2c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
31728- 0x00009e2c g_psAxiExp
31729+ 0x00009f64 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
31730+ 0x00009f64 g_psAxiExp
31731 .bss.g_phyAxiExp
31732- 0x00009e30 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
31733- 0x00009e30 g_phyAxiExp
31734+ 0x00009f68 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
31735+ 0x00009f68 g_phyAxiExp
31736 .bss.g_zDrvAssertInfo
31737- 0x00009e34 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
31738+ 0x00009f6c 0x14 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
31739 .bss.tos_except
31740- 0x00009e48 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
31741+ 0x00009f80 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
31742 .bss.s_zLogCtrl_InitFlag
31743- 0x00009e60 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
31744+ 0x00009f98 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
31745 .bss.ramdump_ret
31746- 0x00009e64 0x8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
31747+ 0x00009f9c 0x8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
31748 .bss.ramdump_init_flag
31749- 0x00009e6c 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
31750+ 0x00009fa4 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
31751 .bss.ramdump_count
31752- 0x00009e70 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
31753+ 0x00009fa8 0x4 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
31754 .bss.tos_isr_level
31755- 0x00009e74 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
31756- 0x00009e74 tos_isr_level
31757- .bss._period 0x00009e78 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
31758+ 0x00009fac 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
31759+ 0x00009fac tos_isr_level
31760+ .bss._period 0x00009fb0 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
31761 .bss._ZL30cyg_kapi_check_structure_sizes
31762- 0x00009e7c 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
31763+ 0x00009fb4 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
31764 .bss._ZL17idle_thread_stack
31765- 0x00009e80 0x800 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
31766+ 0x00009fb8 0x800 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
31767 .bss.idle_thread
31768- 0x0000a680 0x68 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
31769- 0x0000a680 idle_thread
31770+ 0x0000a7b8 0x68 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
31771+ 0x0000a7b8 idle_thread
31772 .bss._ZN10Cyg_Thread11thread_listE
31773- 0x0000a6e8 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
31774- 0x0000a6e8 Cyg_Thread::thread_list
31775+ 0x0000a820 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
31776+ 0x0000a820 Cyg_Thread::thread_list
31777 .bss.idle_thread_loops
31778- 0x0000a6ec 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
31779- 0x0000a6ec idle_thread_loops
31780+ 0x0000a824 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
31781+ 0x0000a824 idle_thread_loops
31782 .bss._ZN13Cyg_Interrupt9dsr_tableE
31783- 0x0000a6f0 0x200 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
31784- 0x0000a6f0 Cyg_Interrupt::dsr_table
31785+ 0x0000a828 0x200 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
31786+ 0x0000a828 Cyg_Interrupt::dsr_table
31787 .bss._ZN13Cyg_Interrupt26interrupt_disable_spinlockE
31788- 0x0000a8f0 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
31789- 0x0000a8f0 Cyg_Interrupt::interrupt_disable_spinlock
31790+ 0x0000aa28 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
31791+ 0x0000aa28 Cyg_Interrupt::interrupt_disable_spinlock
31792 .bss._ZN13Cyg_Interrupt14dsr_table_tailE
31793- 0x0000a8f4 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
31794- 0x0000a8f4 Cyg_Interrupt::dsr_table_tail
31795+ 0x0000aa2c 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
31796+ 0x0000aa2c Cyg_Interrupt::dsr_table_tail
31797 .bss._ZN13Cyg_Interrupt14dsr_table_headE
31798- 0x0000a8f8 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
31799- 0x0000a8f8 Cyg_Interrupt::dsr_table_head
31800+ 0x0000aa30 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
31801+ 0x0000aa30 Cyg_Interrupt::dsr_table_head
31802 .bss._ZN18Cyg_Scheduler_Base15need_rescheduleE
31803- 0x0000a8fc 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
31804- 0x0000a8fc Cyg_Scheduler_Base::need_reschedule
31805+ 0x0000aa34 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
31806+ 0x0000aa34 Cyg_Scheduler_Base::need_reschedule
31807 .bss._ZN13Cyg_Scheduler9schedulerE
31808- 0x0000a900 0x84 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
31809- 0x0000a900 Cyg_Scheduler::scheduler
31810+ 0x0000aa38 0x84 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
31811+ 0x0000aa38 Cyg_Scheduler::scheduler
31812 .bss._ZN18Cyg_Scheduler_Base15thread_switchesE
31813- 0x0000a984 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
31814- 0x0000a984 Cyg_Scheduler_Base::thread_switches
31815+ 0x0000aabc 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
31816+ 0x0000aabc Cyg_Scheduler_Base::thread_switches
31817 .bss._ZN18Cyg_Scheduler_Base14current_threadE
31818- 0x0000a988 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
31819- 0x0000a988 Cyg_Scheduler_Base::current_thread
31820+ 0x0000aac0 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
31821+ 0x0000aac0 Cyg_Scheduler_Base::current_thread
31822 .bss._ZN9Cyg_Clock15real_time_clockE
31823- 0x0000a98c 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
31824- 0x0000a98c Cyg_Clock::real_time_clock
31825+ 0x0000aac4 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
31826+ 0x0000aac4 Cyg_Clock::real_time_clock
31827 .bss._ZN17Cyg_RealTimeClock3rtcE
31828- 0x0000a990 0x30 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
31829- 0x0000a990 Cyg_RealTimeClock::rtc
31830+ 0x0000aac8 0x30 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
31831+ 0x0000aac8 Cyg_RealTimeClock::rtc
31832 *(.gnu.linkonce.b.*)
31833 *(COMMON)
31834- COMMON 0x0000a9c0 0x198 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
31835- 0x0000a9c0 hal_interrupt_handlers
31836- 0x0000aa48 hal_interrupt_data
31837- 0x0000aad0 hal_interrupt_objects
31838- COMMON 0x0000ab58 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
31839- 0x0000ab58 hal_cortexm_systick_clock
31840- 0x0000ab5c __bss_end = ABSOLUTE (.)
31841+ COMMON 0x0000aaf8 0x198 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
31842+ 0x0000aaf8 hal_interrupt_handlers
31843+ 0x0000ab80 hal_interrupt_data
31844+ 0x0000ac08 hal_interrupt_objects
31845+ COMMON 0x0000ac90 0x4 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
31846+ 0x0000ac90 hal_cortexm_systick_clock
31847+ 0x0000ac94 __bss_end = ABSOLUTE (.)
31848
31849-.sram 0x0000ab60 0x0
31850- 0x0000ab60 __sram_data_start = ABSOLUTE (.)
31851+.sram 0x0000ac98 0x0
31852+ 0x0000ac98 __sram_data_start = ABSOLUTE (.)
31853 *(.sram*)
31854- 0x0000ab60 . = ALIGN (0x4)
31855- 0x0000ab60 __srom_data_start = LOADADDR (.sram)
31856- 0x0000ab60 __sram_data_end = .
31857- 0x0000ab60 PROVIDE (__sram_data_end, .)
31858- 0x0000ab60 PROVIDE (__srom_data_end, (LOADADDR (.sram) + SIZEOF (.sram)))
31859- 0x0000ab60 __heap1 = ALIGN (0x8)
31860- 0x0000ab60 . = ALIGN (0x4)
31861- 0x0000ab60 _end = .
31862- 0x0000ab60 PROVIDE (end, .)
31863+ 0x0000ac98 . = ALIGN (0x4)
31864+ 0x0000ac98 __srom_data_start = LOADADDR (.sram)
31865+ 0x0000ac98 __sram_data_end = .
31866+ 0x0000ac98 PROVIDE (__sram_data_end, .)
31867+ 0x0000ac98 PROVIDE (__srom_data_end, (LOADADDR (.sram) + SIZEOF (.sram)))
31868+ 0x0000ac98 __heap1 = ALIGN (0x8)
31869+ 0x0000ac98 . = ALIGN (0x4)
31870+ 0x0000ac98 _end = .
31871+ 0x0000ac98 PROVIDE (end, .)
31872 OUTPUT(K:/rpm/project/zx297520v3/bin/tos/modem_7520v3/evb_cpurpm.elf elf32-littlearm)
31873
31874 .ARM.attributes
31875@@ -3392,47 +3398,47 @@
31876 .comment 0x00000000 0x18 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
31877 .comment 0x00000000 0x18 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
31878
31879-.debug_ranges 0x00000000 0x4210
31880+.debug_ranges 0x00000000 0x4280
31881 .debug_ranges 0x00000000 0x10 K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/SysEntry.o
31882 .debug_ranges 0x00000010 0x18 K:/rpm/project/zx297520v3/obj/tos/all/debug/appstart/appstart.o
31883 .debug_ranges 0x00000028 0x80 K:/rpm/project/zx297520v3/obj/tos/all/debug/os/tos/tos_irq.o
31884 .debug_ranges 0x000000a8 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_init.o)
31885- .debug_ranges 0x000000b8 0xb8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
31886- .debug_ranges 0x00000170 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
31887- .debug_ranges 0x00000188 0x1d0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31888- .debug_ranges 0x00000358 0x10 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
31889- .debug_ranges 0x00000368 0x108 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
31890- .debug_ranges 0x00000470 0x68 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
31891- .debug_ranges 0x000004d8 0xb8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
31892- .debug_ranges 0x00000590 0x138 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31893- .debug_ranges 0x000006c8 0x170 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
31894- .debug_ranges 0x00000838 0x30 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
31895- .debug_ranges 0x00000868 0xf8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31896- .debug_ranges 0x00000960 0x290 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
31897- .debug_ranges 0x00000bf0 0x98 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31898- .debug_ranges 0x00000c88 0x88 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
31899- .debug_ranges 0x00000d10 0xc8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
31900- .debug_ranges 0x00000dd8 0x98 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
31901- .debug_ranges 0x00000e70 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
31902- .debug_ranges 0x00000ec0 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
31903- .debug_ranges 0x00000ed8 0x30 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
31904- .debug_ranges 0x00000f08 0xa8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
31905- .debug_ranges 0x00000fb0 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
31906- .debug_ranges 0x00000fc8 0x1a8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
31907- .debug_ranges 0x00001170 0xd8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
31908- .debug_ranges 0x00001248 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
31909- .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)
31910- .debug_ranges 0x00001298 0x20 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
31911- .debug_ranges 0x000012b8 0x10 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
31912- .debug_ranges 0x000012c8 0x28 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
31913- .debug_ranges 0x000012f0 0xd78 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
31914- .debug_ranges 0x00002068 0xae0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
31915- .debug_ranges 0x00002b48 0x298 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
31916- .debug_ranges 0x00002de0 0x108 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
31917- .debug_ranges 0x00002ee8 0x2f0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
31918- .debug_ranges 0x000031d8 0x320 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
31919- .debug_ranges 0x000034f8 0x7b0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
31920- .debug_ranges 0x00003ca8 0x568 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
31921+ .debug_ranges 0x000000b8 0x120 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_spinlock.o)
31922+ .debug_ranges 0x000001d8 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sys.o)
31923+ .debug_ranges 0x000001f0 0x1d0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(icp_rpMsg.o)
31924+ .debug_ranges 0x000003c0 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_gpio.o)
31925+ .debug_ranges 0x000003d8 0x108 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_int.o)
31926+ .debug_ranges 0x000004e0 0x68 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_timer.o)
31927+ .debug_ranges 0x00000548 0xb8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_dma.o)
31928+ .debug_ranges 0x00000600 0x138 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow.o)
31929+ .debug_ranges 0x00000738 0x170 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_ddr_syno_inno.o)
31930+ .debug_ranges 0x000008a8 0x30 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_debug.o)
31931+ .debug_ranges 0x000008d8 0xf8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pd_context.o)
31932+ .debug_ranges 0x000009d0 0x290 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_i2c.o)
31933+ .debug_ranges 0x00000c60 0x98 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_wdt.o)
31934+ .debug_ranges 0x00000cf8 0x88 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_sysclk.o)
31935+ .debug_ranges 0x00000d80 0xc8 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a(hal_pow_clk.o)
31936+ .debug_ranges 0x00000e48 0x98 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pm.o)
31937+ .debug_ranges 0x00000ee0 0x50 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a(hal_pmic_i2c.o)
31938+ .debug_ranges 0x00000f30 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a(hal_assert.o)
31939+ .debug_ranges 0x00000f48 0x30 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_except_cortexm.o)
31940+ .debug_ranges 0x00000f78 0xa8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_osa_tos.a(tos_irq.o)
31941+ .debug_ranges 0x00001020 0x18 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_agent_logctrl.o)
31942+ .debug_ranges 0x00001038 0x1a8 K:/rpm/project/zx297520v3/lib/tos/all/debug/plat/plat_sup.a(sup_ramdump_client_lib.o)
31943+ .debug_ranges 0x000011e0 0xd8 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_arch_hal_misc.o)
31944+ .debug_ranges 0x000012b8 0x38 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_cortexm_tos_var_tos_misc.o)
31945+ .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)
31946+ .debug_ranges 0x00001308 0x20 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(hal_common_hal_misc.o)
31947+ .debug_ranges 0x00001328 0x10 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_startup.o)
31948+ .debug_ranges 0x00001338 0x28 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(infra_buffer.o)
31949+ .debug_ranges 0x00001360 0xd78 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_kapi.o)
31950+ .debug_ranges 0x000020d8 0xae0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_thread.o)
31951+ .debug_ranges 0x00002bb8 0x298 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_intr.o)
31952+ .debug_ranges 0x00002e50 0x108 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_bitmap.o)
31953+ .debug_ranges 0x00002f58 0x2f0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_sched.o)
31954+ .debug_ranges 0x00003248 0x320 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_cnt_sem.o)
31955+ .debug_ranges 0x00003568 0x7b0 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_mutex.o)
31956+ .debug_ranges 0x00003d18 0x568 K:/rpm/os/tos/lib/debug/armv6-m-gcc/thumb/libtarget.a(kernel_clock.o)
31957
31958 link component sizes
31959
31960@@ -3444,10 +3450,10 @@
31961 0 0 0 K:/rpm/project/zx297520v3/obj/tos/all/debug/os/tos/tos_pool.o
31962 48 0 0 K:/rpm/project/zx297520v3/obj/tos/all/debug/os/tos/tos_irq.o
31963 72 0 0 hal_init.o
31964- 780 0 132 hal_spinlock.o
31965+ 956 0 132 hal_spinlock.o
31966 12 0 0 hal_sys.o
31967 1953 196 1028 icp_rpMsg.o
31968- 76 0 0 hal_gpio.o
31969+ 188 0 0 hal_gpio.o
31970 1011 84 908 hal_int.o
31971 152 4 108 hal_timer.o
31972 1231 156 104 hal_dma.o
31973@@ -3456,7 +3462,7 @@
31974 392 0 12 hal_pow_debug.o
31975 4484 0 1936 hal_pd_context.o
31976 823 0 64 hal_i2c.o
31977- 1967 52 28 hal_wdt.o
31978+ 1995 52 28 hal_wdt.o
31979 1362 0 0 hal_sysclk.o
31980 0 2284 0 hal_clkinfo.o
31981 0 324 0 int_cfg.o
31982@@ -3499,7 +3505,7 @@
31983 0 0 0 _clzsi2.o
31984
31985 ---------------------------------------------------------
31986- 20224 3105 6792 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a
31987+ 20540 3105 6792 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/chip.a
31988 104 0 0 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/peripheral.a
31989 64 0 20 K:/rpm/project/zx297520v3/lib/tos/all/debug/drv/public.a
31990 0 0 0 K:/rpm/project/zx297520v3/lib/tos/all/debug/appstart/appstart.a
31991@@ -3509,6 +3515,6 @@
31992 228 0 0 /cygdrive/k/build/compiler/gcc_arm/arm-eabi/bin/../lib/gcc/arm-eabi/4.7.1/thumb/libgcc.a
31993
31994 ===============================================================
31995-Total text size : 30032
31996+Total text size : 30348
31997 Total data size : 3156
31998 Total bss size : 10172
31999diff --git a/Uboot/tools/SignTool/SignImage b/Uboot/tools/SignTool/SignImage
32000index 552a4de..0b03078 100755
32001--- a/Uboot/tools/SignTool/SignImage
32002+++ b/Uboot/tools/SignTool/SignImage
32003Binary files differ
32004diff --git a/Uboot/tools/SignTool/SignImage.exe b/Uboot/tools/SignTool/SignImage.exe
32005index 6905638..7a58d11 100755
32006--- a/Uboot/tools/SignTool/SignImage.exe
32007+++ b/Uboot/tools/SignTool/SignImage.exe
32008Binary files differ
32009diff --git a/Uboot/tools/SignTool/private.k b/Uboot/tools/SignTool/private.k
32010new file mode 100755
32011index 0000000..9b72371
32012--- /dev/null
32013+++ b/Uboot/tools/SignTool/private.k
32014Binary files differ