summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: dfad842)
raw | patch | inline | side by side (parent: dfad842)
author | Ming Wei <mwei@ti.com> | |
Tue, 12 Jul 2016 22:33:43 +0000 (17:33 -0500) | ||
committer | Ming Wei <mwei@ti.com> | |
Tue, 12 Jul 2016 22:33:43 +0000 (17:33 -0500) |
Add custom platforms for AM572x GP EVM, DA830 DSK and K2G EVM
Update readme files
Delete unused files
Signed-off-by: Ming Wei <mwei@ti.com>
Update readme files
Delete unused files
Signed-off-by: Ming Wei <mwei@ti.com>
233 files changed:
index 7ce3e00c2e79c960512e06b44d8bc9c484f35348..d21759a72054e6dd8a53152f390c93f637072968 100644 (file)
<tool id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.1063079859" name="XDCtools" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool">\r
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR.1921523851" name="Compiler tools directory (-c)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR" value=""${CG_TOOL_ROOT}"" valueType="string"/>\r
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET.196039924" name="Target (-t)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET" value="ti.targets.elf.C66" valueType="string"/>\r
- <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM.729164573" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM" value="ti.platforms.evmAM572XCustom" valueType="string"/>\r
- <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW.1235218630" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW" value="ti.platforms.evmAM572XCustom" valueType="string"/>\r
- <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE.1267793975" name="Build-profile (-r)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE" value="release" valueType="string"/>\r
+ <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM.729164573" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM" value="evmAM572XCustom" valueType="string"/>\r
+ <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW.1235218630" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW" value="evmAM572XCustom" valueType="string"/>\r
+ <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE.1267793975" name="Build-profile (-r)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE" value="debug" valueType="string"/>\r
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH.495390664" name="Package repositories (--xdcpath)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH" valueType="stringList">\r
<listOptionValue builtIn="false" value=""${BIOS_CG_ROOT}/packages""/>\r
<listOptionValue builtIn="false" value=""${TI_MAS_VOLIB_C66_INSTALL_DIR}/packages""/>\r
<listOptionValue builtIn="false" value=""${COM_TI_UIA_INSTALL_DIR}/packages""/>\r
<listOptionValue builtIn="false" value=""${XDAIS_CG_ROOT}/packages""/>\r
<listOptionValue builtIn="false" value=""${XDAIS_CG_ROOT}/examples""/>\r
- <listOptionValue builtIn="false" value=""C:\bf\FromBogdan\am572x_demo\platforms\packages""/>\r
+ <listOptionValue builtIn="false" value=""${PROJECT_LOC}/../platforms/packages""/>\r
<listOptionValue builtIn="false" value=""${TI_MAS_AER_C64PX_INSTALL_DIR}/packages""/>\r
</option>\r
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS.1904602078" name="Additional compiler options (--compileOptions)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS" value=""-g --optimize_with_debug"" valueType="string"/>\r
index 3e5729fab9143cefe091fc5af9a2a128a523b995..620e59652bc302830a12988e97ef61e8627f32ee 100644 (file)
{
.bferam: load >> EXT_RAM
.bfiram: load >> L2SRAM
+ .uiaLoggerBuffers load >> EXT_RAM
+ filOutBuf0 >> EXT_RAM
+ filBuf0 >> EXT_RAM
+ filBuf1 >> EXT_RAM
+ filBuf2 >> EXT_RAM
+ filBuf3 >> EXT_RAM
+ filBuf4 >> EXT_RAM
+ filBuf5 >> EXT_RAM
+ filBuf6 >> EXT_RAM
+ filBuf7 >> EXT_RAM
+ .far >> EXT_RAM
}
/* nothing past this point */
index 51130658de046204154d0ab1f5747a3a6510bad6..f41efc992a4e51b9c9da5145becc9c6248fa9802 100644 (file)
1. Download AEC-AER and VOLIB(volib_C66_2_1_0_1) from http://www.ti.com/tool/telecomlib\r
2. Install AEC-AER and VOLIB(volib_C66_2_1_0_1) at C:\ti\r
-3. Rename C:\ti\aer_c64Px_obj_17_0_0_0 to C:\ti\aer_c64Px_obj_17_0_0_0_mod\r
-4. Copy noise-reduction directory to C:\ti\noise-reduction\r
-5. Download and install bios_6_45_01_29\r
-6. Download and install xdais_7_24_00_04 and xdctools_3_32_00_06_core from TI website \r
-7. Downlaod CCS 6.1.3 from TI website\r
-8. Install CCS 6.1.3 at C:\ti\r
-9. Launch CCS 6.1.3\r
-10. Import AM572x_bf from C:\ti\noise-reduction\file_demo_bios\am572x\r
-11. Build the imported project\r
-12. Import the target configuration file AM572x_bf.ccxml from C:\ti\noise-reduction\file_demo_bios\am572x\r
-13. Connect the Blackhawk USB 560M JTAG to P4 on AM572x GP EVM\r
-14. Plug power adaptor(12V) into the AM572x GP EVM (Do not press the Power Button(S1) yet)\r
-15. Launch the AM572x_bf.ccxml using "Launch Selected Configuration" from CCS 6.1.3\r
-16. Press the Power Button(S1) and "Connect to CortexA15_0" immediately (Due to the EVM will be auto power off in 10 secs)\r
-17. Then "Connect to C66xx_DSP1"\r
-18. Load the AM572x_bf.out from C:\ti\noise-reduction\file_demo_bios\am572x\Debug\r
-19. Execute GEL function Scripts-->Microphone Load Functions-->BFMicLoadAll to load all 8 microphone input files \r
+3. Copy noise-reduction directory to C:\ti\noise-reduction\r
+4. Download and install bios_6_45_01_29\r
+5. Download and install xdais_7_24_00_04 and xdctools_3_32_00_06_core from TI website \r
+6. Downlaod CCS 6.1.3 from TI website\r
+7. Install CCS 6.1.3 at C:\ti\r
+8. Launch CCS 6.1.3\r
+9. Import AM572x_bf from C:\ti\noise-reduction\file_demo_bios\am572x\r
+10. Build the imported project\r
+11. Import the target configuration file AM572x_bf.ccxml from C:\ti\noise-reduction\file_demo_bios\am572x\r
+12. Connect the Blackhawk USB 560M JTAG to P4 on AM572x GP EVM\r
+13. Plug power adaptor(12V) into the AM572x GP EVM (Do not press the Power Button(S1) yet)\r
+14. Launch the AM572x_bf.ccxml using "Launch Selected Configuration" from CCS 6.1.3\r
+15. Press the Power Button(S1) and "Connect to CortexA15_0" immediately (Due to the EVM will be auto power off in 10 secs)\r
+16. Then "Connect to C66xx_DSP1"\r
+17. Load the AM572x_bf.out from C:\ti\noise-reduction\file_demo_bios\am572x\Debug\r
+18. Execute GEL function Scripts-->Microphone Load Functions-->BFMicLoadAll to load all 8 microphone input files \r
(C:\ti\noise-reduction\file_demo_bios\am572x\t8\y16L8g3m7090_x.pcm) into external memory buffers\r
-20. Run the program (loaded in step 16) by pressing F8\r
-21. The program will print out the statistics and "Simulation End" when the program completes the prosessing\r
-22. Execute GEL function Scripts-->Microphone Save Functions-->BFSaveOutput to save the processed auido output from external memory buffer to a file \r
+19. Run the program (loaded in step 16) by pressing F8\r
+20. The program will print out the statistics and "Simulation End" when the program completes the prosessing\r
+21. Execute GEL function Scripts-->Microphone Save Functions-->BFSaveOutput to save the processed auido output from external memory buffer to a file \r
(C:\ti\noise-reduction\file_demo_bios\am572x\t8\fileOutput.bin)\r
-23. By default 12 virtual microphones (30 degree apart) will be used\r
+22. By default 12 virtual microphones (30 degree apart) will be used\r
\r
diff --git a/file_demo_bios/am572x/src/sysbios/BIOS.obj b/file_demo_bios/am572x/src/sysbios/BIOS.obj
deleted file mode 100644 (file)
index f2bcf0f..0000000
Binary files a/file_demo_bios/am572x/src/sysbios/BIOS.obj and /dev/null differ
index f2bcf0f..0000000
Binary files a/file_demo_bios/am572x/src/sysbios/BIOS.obj and /dev/null differ
diff --git a/file_demo_bios/am572x/src/sysbios/c62_TaskSupport_asm.obj b/file_demo_bios/am572x/src/sysbios/c62_TaskSupport_asm.obj
deleted file mode 100644 (file)
index b146988..0000000
Binary files a/file_demo_bios/am572x/src/sysbios/c62_TaskSupport_asm.obj and /dev/null differ
index b146988..0000000
Binary files a/file_demo_bios/am572x/src/sysbios/c62_TaskSupport_asm.obj and /dev/null differ
diff --git a/file_demo_bios/am572x/src/sysbios/c64p_Exception_asm.obj b/file_demo_bios/am572x/src/sysbios/c64p_Exception_asm.obj
deleted file mode 100644 (file)
index cfe04ff..0000000
Binary files a/file_demo_bios/am572x/src/sysbios/c64p_Exception_asm.obj and /dev/null differ
index cfe04ff..0000000
Binary files a/file_demo_bios/am572x/src/sysbios/c64p_Exception_asm.obj and /dev/null differ
diff --git a/file_demo_bios/am572x/src/sysbios/c64p_Hwi_asm.obj b/file_demo_bios/am572x/src/sysbios/c64p_Hwi_asm.obj
deleted file mode 100644 (file)
index 44e81b2..0000000
Binary files a/file_demo_bios/am572x/src/sysbios/c64p_Hwi_asm.obj and /dev/null differ
index 44e81b2..0000000
Binary files a/file_demo_bios/am572x/src/sysbios/c64p_Hwi_asm.obj and /dev/null differ
diff --git a/file_demo_bios/am572x/src/sysbios/c64p_Hwi_asm_switch.obj b/file_demo_bios/am572x/src/sysbios/c64p_Hwi_asm_switch.obj
deleted file mode 100644 (file)
index c439d52..0000000
Binary files a/file_demo_bios/am572x/src/sysbios/c64p_Hwi_asm_switch.obj and /dev/null differ
index c439d52..0000000
Binary files a/file_demo_bios/am572x/src/sysbios/c64p_Hwi_asm_switch.obj and /dev/null differ
diff --git a/file_demo_bios/am572x/src/sysbios/c64p_Hwi_disp_always.obj b/file_demo_bios/am572x/src/sysbios/c64p_Hwi_disp_always.obj
deleted file mode 100644 (file)
index 4465168..0000000
Binary files a/file_demo_bios/am572x/src/sysbios/c64p_Hwi_disp_always.obj and /dev/null differ
index 4465168..0000000
Binary files a/file_demo_bios/am572x/src/sysbios/c64p_Hwi_disp_always.obj and /dev/null differ
diff --git a/file_demo_bios/am572x/src/sysbios/dmtimer_Timer_asm.obj b/file_demo_bios/am572x/src/sysbios/dmtimer_Timer_asm.obj
deleted file mode 100644 (file)
index e5e4ee8..0000000
Binary files a/file_demo_bios/am572x/src/sysbios/dmtimer_Timer_asm.obj and /dev/null differ
index e5e4ee8..0000000
Binary files a/file_demo_bios/am572x/src/sysbios/dmtimer_Timer_asm.obj and /dev/null differ
diff --git a/file_demo_bios/am572x/src/sysbios/sysbios.ae66 b/file_demo_bios/am572x/src/sysbios/sysbios.ae66
deleted file mode 100644 (file)
index bda9dc6..0000000
Binary files a/file_demo_bios/am572x/src/sysbios/sysbios.ae66 and /dev/null differ
index bda9dc6..0000000
Binary files a/file_demo_bios/am572x/src/sysbios/sysbios.ae66 and /dev/null differ
index 48230eb5a18861a6f58319e4cdec815a1bacc4ec..b6b770b49769f4ff276ac84fa7982e73a48e228f 100644 (file)
<listOptionValue builtIn="false" value="RTSC_MBS_VERSION=2.2.0"/>\r
<listOptionValue builtIn="false" value="XDC_VERSION=3.32.0.06_core"/>\r
<listOptionValue builtIn="false" value="RTSC_PRODUCTS=ti.mas.aer.c64Px:17.0.0;com.ti.rtsc.SYSBIOS:6.45.1.29;com.ti.uia:2.0.3.43;ti.mas.volib.C64P:2.1.0.1;com.ti.rtsc.XDAIS:7.24.0.04;"/>\r
- <listOptionValue builtIn="false" value="INACTIVE_REPOS=${TARGET_CONTENT_BASE};C:\bf\FromBogdan\am572x_demo\platforms\packages\ti\platforms\DA830DSKCustom;"/>\r
+ <listOptionValue builtIn="false" value="INACTIVE_REPOS=${TARGET_CONTENT_BASE};"/>\r
<listOptionValue builtIn="false" value="EXPANDED_REPOS="/>\r
<listOptionValue builtIn="false" value="OUTPUT_TYPE=rtscApplication:executable"/>\r
</option>\r
<listOptionValue builtIn="false" value=""${XDAIS_CG_ROOT}/examples""/>\r
<listOptionValue builtIn="false" value=""${TI_MAS_AER_C64PX_INSTALL_DIR}/packages""/>\r
<listOptionValue builtIn="false" value=""${TI_MAS_VOLIB_C64P_INSTALL_DIR}/packages""/>\r
- <listOptionValue builtIn="false" value=""C:\bf\FromBogdan\am572x_demo\platforms\packages\ti\platforms""/>\r
+ <listOptionValue builtIn="false" value=""${PROJECT_LOC}/../platforms/packages""/>\r
</option>\r
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET.965151569" name="Target (-t)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET" value="ti.targets.elf.C674" valueType="string"/>\r
<option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM.858134705" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM" value="dskDA830Custom" valueType="string"/>\r
diff --git a/file_demo_bios/da830/src/sysbios/makefile b/file_demo_bios/da830/src/sysbios/makefile
--- /dev/null
@@ -0,0 +1,104 @@
+
+XOPTS = -I"C:/ti/xdctools_3_32_00_06_core/packages/" -Dxdc_target_types__=C:/ti/bios_6_45_01_29/packages/ti/targets/elf/std.h -Dxdc_target_name__=C674
+
+vpath % C:/ti/bios_6_45_01_29/packages/ti/sysbios/
+vpath %.c C:/ti/xdctools_3_32_00_06_core/packages/
+
+CCOPTS = -mv6740 --abi=eabi -q -mi10 -mo -pdr -pden -pds=238 -pds=880 -pds1110 --program_level_compile -o3 -g --optimize_with_debug -Dti_sysbios_knl_Task_minimizeLatency__D=FALSE -Dti_sysbios_family_c64p_Exception_enableExternalMPC__D=FALSE -Dti_sysbios_family_c64p_Exception_enablePrint__D=TRUE -Dti_sysbios_knl_Clock_stopCheckNext__D=FALSE
+
+XDC_ROOT = C:/ti/xdctools_3_32_00_06_core/packages/
+
+BIOS_ROOT = C:/ti/bios_6_45_01_29/packages/ti/sysbios/
+
+BIOS_DEFS = -Dti_sysbios_BIOS_swiEnabled__D=TRUE -Dti_sysbios_BIOS_taskEnabled__D=TRUE -Dti_sysbios_BIOS_clockEnabled__D=TRUE -Dti_sysbios_BIOS_runtimeCreatesEnabled__D=TRUE -Dti_sysbios_hal_Hwi_DISABLE_ALL_HOOKS -Dti_sysbios_knl_Swi_DISABLE_ALL_HOOKS -Dti_sysbios_BIOS_smpEnabled__D=FALSE -Dti_sysbios_Build_useHwiMacros -Dti_sysbios_knl_Swi_numPriorities__D=16 -Dti_sysbios_knl_Task_deleteTerminatedTasks__D=FALSE -Dti_sysbios_knl_Task_numPriorities__D=16 -Dti_sysbios_knl_Task_checkStackFlag__D=TRUE -Dti_sysbios_knl_Task_initStackFlag__D=TRUE -Dti_sysbios_knl_Task_DISABLE_ALL_HOOKS -Dti_sysbios_knl_Clock_TICK_SOURCE=ti_sysbios_knl_Clock_TickSource_TIMER -Dti_sysbios_knl_Clock_TICK_MODE=ti_sysbios_knl_Clock_TickMode_PERIODIC -Dti_sysbios_hal_Core_delegate_getId=ti_sysbios_hal_CoreNull_getId__E -Dti_sysbios_hal_Core_delegate_interruptCore=ti_sysbios_hal_CoreNull_interruptCore__E -Dti_sysbios_hal_Core_delegate_lock=ti_sysbios_hal_CoreNull_lock__E -Dti_sysbios_hal_Core_delegate_unlock=ti_sysbios_hal_CoreNull_unlock__E -Dti_sysbios_hal_Core_numCores__D=1 -Dti_sysbios_hal_CoreNull_numCores__D=1 -Dti_sysbios_utils_Load_taskEnabled__D=FALSE -Dti_sysbios_utils_Load_swiEnabled__D=FALSE -Dti_sysbios_utils_Load_hwiEnabled__D=FALSE -Dti_sysbios_family_c64p_Hwi_dispatcherSwiSupport__D=TRUE -Dti_sysbios_family_c64p_Hwi_dispatcherTaskSupport__D=TRUE -Dti_sysbios_family_c64p_Hwi_dispatcherAutoNestingSupport__D=TRUE -Dti_sysbios_family_c64p_Hwi_dispatcherIrpTrackingSupport__D=TRUE -Dti_sysbios_knl_Semaphore_supportsEvents__D=FALSE -Dti_sysbios_knl_Semaphore_supportsPriority__D=TRUE
+
+BIOS_INC = -I"C:/ti/bios_6_45_01_29/packages/"
+
+TARGET_INC = -I"C:/ti/bios_6_45_01_29/packages/"
+
+INCS = $(BIOS_INC) $(TARGET_INC)
+
+CC = C:/ti/ccsv6/tools/compiler/ti-cgt-c6000_8.1.0/bin/cl6x -c $(CCOPTS) -I C:/ti/ccsv6/tools/compiler/ti-cgt-c6000_8.1.0/include
+ASM = C:/ti/ccsv6/tools/compiler/ti-cgt-c6000_8.1.0/bin/cl6x -c $(CCOPTS) -I C:/ti/ccsv6/tools/compiler/ti-cgt-c6000_8.1.0/include
+AR = C:/ti/ccsv6/tools/compiler/ti-cgt-c6000_8.1.0/bin/ar6x rq
+
+DEL = C:/ti/xdctools_3_32_00_06_core/packages/../bin/rm -f
+CP = C:/ti/xdctools_3_32_00_06_core/packages/../bin/cp -f
+
+define RM
+ $(if $(wildcard $1),$(DEL) $1,:)
+endef
+
+define ASSEMBLE
+ @echo asme674 $< ...
+ @$(ASM) $(BIOS_DEFS) $(XOPTS) $(INCS) $<
+endef
+
+all: sysbios.ae674
+
+c64p_Exception_asm.obj: family/c64p/Exception_asm.s64P makefile
+ @-$(call RM, $@)
+ $(ASSEMBLE) --output_file=c64p_Exception_asm.obj
+
+c64p_Hwi_asm.obj: family/c64p/Hwi_asm.s62 makefile
+ @-$(call RM, $@)
+ $(ASSEMBLE) --output_file=c64p_Hwi_asm.obj
+
+c64p_Hwi_asm_switch.obj: family/c64p/Hwi_asm_switch.s62 makefile
+ @-$(call RM, $@)
+ $(ASSEMBLE) --output_file=c64p_Hwi_asm_switch.obj
+
+c64p_Hwi_disp_always.obj: family/c64p/Hwi_disp_always.s64P makefile
+ @-$(call RM, $@)
+ $(ASSEMBLE) --output_file=c64p_Hwi_disp_always.obj
+
+c62_TaskSupport_asm.obj: family/c62/TaskSupport_asm.s62 makefile
+ @-$(call RM, $@)
+ $(ASSEMBLE) --output_file=c62_TaskSupport_asm.obj
+
+timer64_Timer_asm.obj: timers/timer64/Timer_asm.s64P makefile
+ @-$(call RM, $@)
+ $(ASSEMBLE) --output_file=timer64_Timer_asm.obj
+
+
+BIOS.obj: BIOS.c family/c64p/Exception.c family/c64p/Hwi.c family/c64p/Hwi_startup.c family/c64p/TimestampProvider.c family/c64p/Cache.c knl/Clock.c knl/Idle.c knl/Intrinsics.c knl/Event.c knl/Queue.c knl/Semaphore.c knl/Swi.c knl/Swi_andn.c knl/Task.c hal/Hwi.c hal/Hwi_stack.c hal/Hwi_startup.c gates/GateHwi.c gates/GateMutex.c family/c62/TaskSupport.c family/c62/IntrinsicsSupport.c heaps/HeapMem.c utils/Load.c utils/Load_CPU.c timers/timer64/Timer.c family/c64p/primus/TimerSupport.c makefile
+ @-$(call RM, $@)
+ @echo cle674 $< ...
+ @$(CC) $(BIOS_DEFS) $(XOPTS) $(INCS) \
+ $(BIOS_ROOT)BIOS.c \
+ $(BIOS_ROOT)family/c64p/Exception.c \
+ $(BIOS_ROOT)family/c64p/Hwi.c \
+ $(BIOS_ROOT)family/c64p/Hwi_startup.c \
+ $(BIOS_ROOT)family/c64p/TimestampProvider.c \
+ $(BIOS_ROOT)family/c64p/Cache.c \
+ $(BIOS_ROOT)knl/Clock.c \
+ $(BIOS_ROOT)knl/Idle.c \
+ $(BIOS_ROOT)knl/Intrinsics.c \
+ $(BIOS_ROOT)knl/Event.c \
+ $(BIOS_ROOT)knl/Queue.c \
+ $(BIOS_ROOT)knl/Semaphore.c \
+ $(BIOS_ROOT)knl/Swi.c \
+ $(BIOS_ROOT)knl/Swi_andn.c \
+ $(BIOS_ROOT)knl/Task.c \
+ $(BIOS_ROOT)hal/Hwi.c \
+ $(BIOS_ROOT)hal/Hwi_stack.c \
+ $(BIOS_ROOT)hal/Hwi_startup.c \
+ $(BIOS_ROOT)gates/GateHwi.c \
+ $(BIOS_ROOT)gates/GateMutex.c \
+ $(BIOS_ROOT)family/c62/TaskSupport.c \
+ $(BIOS_ROOT)family/c62/IntrinsicsSupport.c \
+ $(BIOS_ROOT)heaps/HeapMem.c \
+ $(BIOS_ROOT)utils/Load.c \
+ $(BIOS_ROOT)utils/Load_CPU.c \
+ $(BIOS_ROOT)timers/timer64/Timer.c \
+ $(BIOS_ROOT)family/c64p/primus/TimerSupport.c \
+
+sysbios.ae674: BIOS.obj c64p_Exception_asm.obj c64p_Hwi_asm.obj c64p_Hwi_asm_switch.obj c64p_Hwi_disp_always.obj c62_TaskSupport_asm.obj timer64_Timer_asm.obj
+ @-$(call RM, $@)
+ @echo are674 $^ ...
+ @$(AR) $@ $^
+
+
+clean:
+ @$(DEL) ..\makefile.libs
+ @-$(call RM, *)
diff --git a/file_demo_bios/k2g/.ccsproject b/file_demo_bios/k2g/.ccsproject
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<?ccsproject version="1.0"?>
+<projectOptions>
+ <deviceVariant value="TMS320C66XX.AM5728_RevA.GPEVM_AM572X_SiRevA"/>
+ <deviceFamily value="C6000"/>
+ <deviceEndianness value="little"/>
+ <codegenToolVersion value="8.1.0"/>
+ <isElfFormat value="true"/>
+ <rts value="libc.a"/>
+ <createSlaveProjects value=""/>
+ <templateProperties value="id=com_ti_rtsc_sysbios_example_143.projectspec.typical_GPEVM_AM572X_SiRevA_C66XX,type=rtsc,products=com.ti.rtsc.SYSBIOS,buildProfile=release,isHybrid=true,configuroOptions=--compileOptions "-g --optimize_with_debug","/>
+ <origin value="C:\ti\bios_6_45_01_29\resources\tiTargetExamples\com_ti_rtsc_sysbios_example_143.projectspec"/>
+ <filesToOpen value=""/>
+ <isTargetManual value="true"/>
+</projectOptions>
diff --git a/file_demo_bios/k2g/.config/.productview.dat b/file_demo_bios/k2g/.config/.productview.dat
new file mode 100644 (file)
index 0000000..f2e3531
Binary files /dev/null and b/file_demo_bios/k2g/.config/.productview.dat differ
index 0000000..f2e3531
Binary files /dev/null and b/file_demo_bios/k2g/.config/.productview.dat differ
diff --git a/file_demo_bios/k2g/.config/xconfig_app/.buildtime b/file_demo_bios/k2g/.config/xconfig_app/.buildtime
--- /dev/null
@@ -0,0 +1 @@
+C:\ti\noise-reduction\file_demo_bios\k2g\.config\xconfig_app\.buildtime
\ No newline at end of file
diff --git a/file_demo_bios/k2g/.config/xconfig_app/.interfaces b/file_demo_bios/k2g/.config/xconfig_app/.interfaces
diff --git a/file_demo_bios/k2g/.config/xconfig_app/.xdcenv.mak b/file_demo_bios/k2g/.config/xconfig_app/.xdcenv.mak
--- /dev/null
@@ -0,0 +1,16 @@
+#
+_XDCBUILDCOUNT =
+ifneq (,$(findstring path,$(_USEXDCENV_)))
+override XDCPATH = C:/ti/bios_6_45_01_29/packages;C:/ti/volib_C66_2_1_0_1/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/uia_2_00_03_43/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/xdais_7_24_00_04/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/xdais_7_24_00_04/examples;C:/ti/aer_c64Px_obj_17_0_0_0/packages;C:/ti/noise-reduction/file_demo_bios/platforms/packages/ti/platforms/evmK2GCustom;C:/ti/pdk_k2g_1_0_2/packages;C:/ti/noise-reduction/file_demo_bios/k2g/.config
+override XDCROOT = C:/ti/xdctools_3_32_00_06_core
+override XDCBUILDCFG = ./config.bld
+endif
+ifneq (,$(findstring args,$(_USEXDCENV_)))
+override XDCARGS =
+override XDCTARGETS =
+endif
+#
+ifeq (0,1)
+PKGPATH = C:/ti/bios_6_45_01_29/packages;C:/ti/volib_C66_2_1_0_1/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/uia_2_00_03_43/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/xdais_7_24_00_04/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/xdais_7_24_00_04/examples;C:/ti/aer_c64Px_obj_17_0_0_0/packages;C:/ti/noise-reduction/file_demo_bios/platforms/packages/ti/platforms/evmK2GCustom;C:/ti/pdk_k2g_1_0_2/packages;C:/ti/noise-reduction/file_demo_bios/k2g/.config;C:/ti/xdctools_3_32_00_06_core/packages;..
+HOSTOS = Windows
+endif
diff --git a/file_demo_bios/k2g/.config/xconfig_app/compiler.opt b/file_demo_bios/k2g/.config/xconfig_app/compiler.opt
--- /dev/null
@@ -0,0 +1 @@
+-mv6600 --abi=eabi -I"C:/ti/bios_6_45_01_29/packages" -I"C:/ti/volib_C66_2_1_0_1/packages" -I"C:/procsdk/download/ti_k2hk_2.0.1.7/uia_2_00_03_43/packages" -I"C:/procsdk/download/ti_k2hk_2.0.1.7/xdais_7_24_00_04/packages" -I"C:/procsdk/download/ti_k2hk_2.0.1.7/xdais_7_24_00_04/examples" -I"C:/ti/aer_c64Px_obj_17_0_0_0/packages" -I"C:/ti/noise-reduction/file_demo_bios/platforms/packages/ti/platforms/evmK2GCustom" -I"C:/ti/pdk_k2g_1_0_2/packages" -I"C:/ti/noise-reduction/file_demo_bios/k2g/.config" -I"C:/ti/xdctools_3_32_00_06_core/packages" -I"C:/ti/noise-reduction/file_demo_bios/k2g/.config/xconfig_app/.." -IC:/ti/ccsv6/tools/compiler/ti-cgt-c6000_8.1.0/include -Dxdc_target_types__="ti/targets/elf/std.h" -Dxdc_target_name__=C66 -Dxdc_cfg__xheader__="\"C:/ti/noise-reduction/file_demo_bios/k2g/.config/xconfig_app/package/cfg/app_pe66.h\""
diff --git a/file_demo_bios/k2g/.config/xconfig_app/compiler.opt.defs b/file_demo_bios/k2g/.config/xconfig_app/compiler.opt.defs
--- /dev/null
@@ -0,0 +1 @@
+-I"C:/ti/bios_6_45_01_29/packages" -I"C:/ti/volib_C66_2_1_0_1/packages" -I"C:/procsdk/download/ti_k2hk_2.0.1.7/uia_2_00_03_43/packages" -I"C:/procsdk/download/ti_k2hk_2.0.1.7/xdais_7_24_00_04/packages" -I"C:/procsdk/download/ti_k2hk_2.0.1.7/xdais_7_24_00_04/examples" -I"C:/ti/aer_c64Px_obj_17_0_0_0/packages" -I"C:/ti/noise-reduction/file_demo_bios/platforms/packages/ti/platforms/evmK2GCustom" -I"C:/ti/pdk_k2g_1_0_2/packages" -I"C:/ti/noise-reduction/file_demo_bios/k2g/.config" -I"C:/ti/xdctools_3_32_00_06_core/packages" -I"C:/ti/noise-reduction/file_demo_bios/k2g/.config/xconfig_app/.." -IC:/ti/ccsv6/tools/compiler/ti-cgt-c6000_8.1.0/include -Dxdc_target_types__="ti/targets/elf/std.h" -Dxdc_target_name__=C66 -Dxdc_cfg__xheader__="\"C:/ti/noise-reduction/file_demo_bios/k2g/.config/xconfig_app/package/cfg/app_pe66.h\""
diff --git a/file_demo_bios/k2g/.config/xconfig_app/config.bld b/file_demo_bios/k2g/.config/xconfig_app/config.bld
--- /dev/null
@@ -0,0 +1,24 @@
+/* THIS IS A GENERATED FILE -- DO NOT EDIT */
+
+var target; /* the target used for this build */
+
+/* configuro was passed the target's name explicitly */
+try {
+ target = xdc.module('ti.targets.elf.C66');
+}
+catch (e) {
+ throw new Error("Can't find the target named '" + 'ti.targets.elf.C66'
+ + "' along the path '" + environment["xdc.path"]
+ + "': please check the spelling of the target's name and that it exists along this path.");
+}
+if (!(target instanceof xdc.module("xdc.bld.ITarget").Module)) {
+ throw new Error("The module named 'ti.targets.elf.C66' exists but it's not a target: please check the spelling of the target's name");
+}
+
+/* configuro was passed compiler options explicitly */
+target.ccOpts.prefix = unescape("-g%20--optimize_with_debug%20") + target.ccOpts.prefix;
+
+/* configuro was passed the target's rootDir explicitly */
+target.rootDir = 'C:/ti/ccsv6/tools/compiler/ti-cgt-c6000_8.1.0';
+
+Build.targets = [target];
diff --git a/file_demo_bios/k2g/.config/xconfig_app/custom.mak b/file_demo_bios/k2g/.config/xconfig_app/custom.mak
--- /dev/null
@@ -0,0 +1,11 @@
+## THIS IS A GENERATED FILE -- DO NOT EDIT
+.configuro: .libraries,e66 linker.cmd package/cfg/app_pe66.oe66
+
+# To simplify configuro usage in makefiles:
+# o create a generic linker command file name
+# o set modification times of compiler.opt* files to be greater than
+# or equal to the generated config header
+#
+linker.cmd: package/cfg/app_pe66.xdl
+ $(SED) 's"^\"\(package/cfg/app_pe66cfg.cmd\)\"$""\"C:/ti/noise-reduction/file_demo_bios/k2g/.config/xconfig_app/\1\""' package/cfg/app_pe66.xdl > $@
+ -$(SETDATE) -r:max package/cfg/app_pe66.h compiler.opt compiler.opt.defs
diff --git a/file_demo_bios/k2g/.config/xconfig_app/package.bld b/file_demo_bios/k2g/.config/xconfig_app/package.bld
--- /dev/null
@@ -0,0 +1,78 @@
+/* THIS IS A GENERATED FILE -- DO NOT EDIT */
+
+var targ = xdc.module('ti.targets.elf.C66');
+/* configuro was told the platform explicitly */
+var platform = 'evmK2GCustom';
+
+/* decide whether to make an assembly or an executable */
+var makeAssembly = false;
+
+
+var Executable = xdc.module('xdc.bld.Executable');
+
+var exeOpts = new Executable.Attrs({
+ cfgScript: 'C:/ti/noise-reduction/file_demo_bios/k2g/app.cfg',
+ profile: 'release',
+ cfgHome: 'xconfig_app',
+});
+
+exeOpts.cfgArgs = 'null';
+exeOpts.cfgArgsEncoded = true;
+
+var exe = Pkg[makeAssembly ? 'addAssembly': 'addExecutable'](
+ 'app',
+ targ,
+ platform,
+ exeOpts
+);
+
+/*
+ * Generate the compiler.opt file
+ * Do this here instead of during the initial creation of the configuro
+ * package, because the contents of any config.bld script are unknown
+ * at that time. Config.bld can't be executed until the XDC build phase.
+ */
+if (makeAssembly) {
+ var suffix = targ.dllExt || '.p' + targ.suffix;
+}
+else {
+ var suffix = '.p' + targ.suffix;
+}
+
+var thisObj = {
+ cfg: 'C:/ti/noise-reduction/file_demo_bios/k2g/app.cfg',
+ outputPath: 'C:/ti/noise-reduction/file_demo_bios/k2g/.config/xconfig_app',
+ exeName: 'app' + suffix,
+ exeIntName: 'app' + suffix.replace('.', '_'),
+ targ: targ,
+ linkerCommandFile: 'linker.cmd',
+ compilerOptFile: 'compiler.opt',
+ compilerDefsFile: 'compiler.opt' + ".defs",
+ makeAssembly: makeAssembly
+};
+var tmpl = xdc.loadTemplate('xdc/tools/configuro/template/compiler.opt.xdt');
+tmpl.genFile('compiler.opt', thisObj, [], false);
+
+/*
+ * Generate the custom makefile.
+ */
+var tmpl = xdc.loadTemplate('xdc/tools/configuro/template/' +
+ (makeAssembly? 'custom.mak.asm.xdt' : 'custom.mak.exe.xdt'));
+tmpl.genFile('custom.mak', thisObj, [], false);
+Pkg.makeEpilogue = "include custom.mak";
+
+/*
+ * Generate the package script.
+ */
+var tmpl = xdc.loadTemplate('xdc/tools/configuro/template/package.xs.xdt');
+tmpl.genFile('package.xs', thisObj, [], false);
+
+if (makeAssembly) {
+/*
+ * Generate the linker options into a staging file, so that the presence or
+ * age of the advertised linker command file can be the makefile trigger to
+ * rebuild the package from the user's config script.
+ */
+ var tmpl = xdc.loadTemplate('xdc/tools/configuro/template/linker.cmd.asm.xdt');
+ tmpl.genFile('linker.cmd.cp', thisObj, [], false);
+}
diff --git a/file_demo_bios/k2g/.config/xconfig_app/package.mak b/file_demo_bios/k2g/.config/xconfig_app/package.mak
--- /dev/null
@@ -0,0 +1,256 @@
+#
+# Do not edit this file. This file is generated from
+# package.bld. Any modifications to this file will be
+# overwritten whenever makefiles are re-generated.
+#
+
+unexport MAKEFILE_LIST
+MK_NOGENDEPS := $(filter clean,$(MAKECMDGOALS))
+override PKGDIR = xconfig_app
+XDCINCS = -I. -I$(strip $(subst ;, -I,$(subst $(space),\$(space),$(XPKGPATH))))
+XDCCFGDIR = package/cfg/
+
+#
+# The following dependencies ensure package.mak is rebuilt
+# in the event that some included BOM script changes.
+#
+ifneq (clean,$(MAKECMDGOALS))
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/utils.js:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/utils.js
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/xdc.tci:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/xdc.tci
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/template.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/template.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/om2.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/om2.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/xmlgen.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/xmlgen.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/xmlgen2.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/xmlgen2.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/Warnings.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/Warnings.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/IPackage.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/IPackage.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/package.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/package.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/global/Clock.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/global/Clock.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/global/Trace.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/global/Trace.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/bld.js:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/bld.js
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/BuildEnvironment.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/BuildEnvironment.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/PackageContents.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/PackageContents.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/_gen.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/_gen.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Library.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Library.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Executable.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Executable.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Repository.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Repository.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Configuration.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Configuration.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Script.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Script.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Manifest.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Manifest.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Utils.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Utils.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITarget.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITarget.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITarget2.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITarget2.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITarget3.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITarget3.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITargetFilter.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITargetFilter.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/package.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/package.xs
+package.mak: config.bld
+C:/ti/bios_6_45_01_29/packages/ti/targets/ITarget.xs:
+package.mak: C:/ti/bios_6_45_01_29/packages/ti/targets/ITarget.xs
+C:/ti/bios_6_45_01_29/packages/ti/targets/C28_large.xs:
+package.mak: C:/ti/bios_6_45_01_29/packages/ti/targets/C28_large.xs
+C:/ti/bios_6_45_01_29/packages/ti/targets/C28_float.xs:
+package.mak: C:/ti/bios_6_45_01_29/packages/ti/targets/C28_float.xs
+C:/ti/bios_6_45_01_29/packages/ti/targets/package.xs:
+package.mak: C:/ti/bios_6_45_01_29/packages/ti/targets/package.xs
+C:/ti/bios_6_45_01_29/packages/ti/targets/elf/ITarget.xs:
+package.mak: C:/ti/bios_6_45_01_29/packages/ti/targets/elf/ITarget.xs
+C:/ti/bios_6_45_01_29/packages/ti/targets/elf/package.xs:
+package.mak: C:/ti/bios_6_45_01_29/packages/ti/targets/elf/package.xs
+package.mak: package.bld
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/tools/configuro/template/compiler.opt.xdt:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/tools/configuro/template/compiler.opt.xdt
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/io/File.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/io/File.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/io/package.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/io/package.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/tools/configuro/template/compiler.defs.xdt:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/tools/configuro/template/compiler.defs.xdt
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/tools/configuro/template/custom.mak.exe.xdt:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/tools/configuro/template/custom.mak.exe.xdt
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/tools/configuro/template/package.xs.xdt:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/tools/configuro/template/package.xs.xdt
+endif
+
+ti.targets.elf.C66.rootDir ?= C:/ti/ccsv6/tools/compiler/ti-cgt-c6000_8.1.0
+ti.targets.elf.packageBase ?= C:/ti/bios_6_45_01_29/packages/ti/targets/elf/
+.PRECIOUS: $(XDCCFGDIR)/%.oe66
+.PHONY: all,e66 .dlls,e66 .executables,e66 test,e66
+all,e66: .executables,e66
+.executables,e66: .libraries,e66
+.executables,e66: .dlls,e66
+.dlls,e66: .libraries,e66
+.libraries,e66: .interfaces
+ @$(RM) $@
+ @$(TOUCH) "$@"
+
+.help::
+ @$(ECHO) xdc test,e66
+ @$(ECHO) xdc .executables,e66
+ @$(ECHO) xdc .libraries,e66
+ @$(ECHO) xdc .dlls,e66
+
+
+all: .executables
+.executables: .libraries .dlls
+.libraries: .interfaces
+
+PKGCFGS := $(wildcard package.xs) package/build.cfg
+.interfaces: package/package.xdc.inc package/package.defs.h package.xdc $(PKGCFGS)
+
+-include package/package.xdc.dep
+package/%.xdc.inc package/%_xconfig_app.c package/%.defs.h: %.xdc $(PKGCFGS)
+ @$(MSG) generating interfaces for package xconfig_app" (because $@ is older than $(firstword $?))" ...
+ $(XSRUN) -f xdc/services/intern/cmd/build.xs $(MK_IDLOPTS) -m package/package.xdc.dep -i package/package.xdc.inc package.xdc
+
+.dlls,e66 .dlls: app.pe66
+
+-include package/cfg/app_pe66.mak
+-include package/cfg/app_pe66.cfg.mak
+ifeq (,$(MK_NOGENDEPS))
+-include package/cfg/app_pe66.dep
+endif
+app.pe66: package/cfg/app_pe66.xdl
+ @
+
+
+ifeq (,$(wildcard .libraries,e66))
+app.pe66 package/cfg/app_pe66.c: .libraries,e66
+endif
+
+package/cfg/app_pe66.c package/cfg/app_pe66.h package/cfg/app_pe66.xdl: override _PROG_NAME := app.xe66
+package/cfg/app_pe66.c: package/cfg/app_pe66.cfg
+package/cfg/app_pe66.xdc.inc: package/cfg/app_pe66.xdl
+package/cfg/app_pe66.xdl package/cfg/app_pe66.c: .interfaces
+
+clean:: clean,e66
+ -$(RM) package/cfg/app_pe66.cfg
+ -$(RM) package/cfg/app_pe66.dep
+ -$(RM) package/cfg/app_pe66.c
+ -$(RM) package/cfg/app_pe66.xdc.inc
+
+clean,e66::
+ -$(RM) app.pe66
+.executables,e66 .executables: app.xe66
+
+app.xe66: |app.pe66
+
+-include package/cfg/app.xe66.mak
+app.xe66: package/cfg/app_pe66.oe66
+ $(RM) $@
+ @$(MSG) lnke66 $@ ...
+ $(RM) $(XDCCFGDIR)/$@.map
+ $(ti.targets.elf.C66.rootDir)/bin/cl6x -fs $(XDCCFGDIR)$(dir $@). -q -u _c_int00 --abi=eabi -z -o $@ package/cfg/app_pe66.oe66 package/cfg/app_pe66.xdl -w -c -m $(XDCCFGDIR)/$@.map -l $(ti.targets.elf.C66.rootDir)/lib/libc.a
+
+app.xe66: export C_DIR=
+app.xe66: PATH:=$(ti.targets.elf.C66.rootDir)/bin/;$(PATH)
+app.xe66: Path:=$(ti.targets.elf.C66.rootDir)/bin/;$(PATH)
+
+app.test test,e66 test: app.xe66.test
+
+app.xe66.test:: app.xe66
+ifeq (,$(_TESTLEVEL))
+ @$(MAKE) -R -r --no-print-directory -f $(XDCROOT)/packages/xdc/bld/xdc.mak _TESTLEVEL=1 app.xe66.test
+else
+ @$(MSG) running $< ...
+ $(call EXEC.app.xe66, )
+endif
+
+clean,e66::
+ -$(RM) $(wildcard .tmp,app.xe66,*)
+
+
+clean:: clean,e66
+
+clean,e66::
+ -$(RM) app.xe66
+%,copy:
+ @$(if $<,,$(MSG) don\'t know how to build $*; exit 1)
+ @$(MSG) cp $< $@
+ $(RM) $@
+ $(CP) $< $@
+app_pe66.oe66,copy : package/cfg/app_pe66.oe66
+app_pe66.se66,copy : package/cfg/app_pe66.se66
+
+$(XDCCFGDIR)%.c $(XDCCFGDIR)%.h $(XDCCFGDIR)%.xdl: $(XDCCFGDIR)%.cfg $(XDCROOT)/packages/xdc/cfg/Main.xs | .interfaces
+ @$(MSG) "configuring $(_PROG_NAME) from $< ..."
+ $(CONFIG) $(_PROG_XSOPTS) xdc.cfg $(_PROG_NAME) $(XDCCFGDIR)$*.cfg $(XDCCFGDIR)$*
+
+.PHONY: release,xconfig_app
+ifeq (,$(MK_NOGENDEPS))
+-include package/rel/xconfig_app.tar.dep
+endif
+package/rel/xconfig_app/xconfig_app/package/package.rel.xml: package/package.bld.xml
+package/rel/xconfig_app/xconfig_app/package/package.rel.xml: package/build.cfg
+package/rel/xconfig_app/xconfig_app/package/package.rel.xml: package/package.xdc.inc
+package/rel/xconfig_app/xconfig_app/package/package.rel.xml: .force
+ @$(MSG) generating external release references $@ ...
+ $(XS) $(JSENV) -f $(XDCROOT)/packages/xdc/bld/rel.js $(MK_RELOPTS) . $@
+
+xconfig_app.tar: package/rel/xconfig_app.xdc.inc package/rel/xconfig_app/xconfig_app/package/package.rel.xml
+ @$(MSG) making release file $@ "(because of $(firstword $?))" ...
+ -$(RM) $@
+ $(call MKRELTAR,package/rel/xconfig_app.xdc.inc,package/rel/xconfig_app.tar.dep)
+
+
+release release,xconfig_app: all xconfig_app.tar
+clean:: .clean
+ -$(RM) xconfig_app.tar
+ -$(RM) package/rel/xconfig_app.xdc.inc
+ -$(RM) package/rel/xconfig_app.tar.dep
+
+clean:: .clean
+ -$(RM) .libraries $(wildcard .libraries,*)
+clean::
+ -$(RM) .dlls $(wildcard .dlls,*)
+#
+# The following clean rule removes user specified
+# generated files or directories.
+#
+
+ifneq (clean,$(MAKECMDGOALS))
+ifeq (,$(wildcard package))
+ $(shell $(MKDIR) package)
+endif
+ifeq (,$(wildcard package/cfg))
+ $(shell $(MKDIR) package/cfg)
+endif
+ifeq (,$(wildcard package/lib))
+ $(shell $(MKDIR) package/lib)
+endif
+ifeq (,$(wildcard package/rel))
+ $(shell $(MKDIR) package/rel)
+endif
+ifeq (,$(wildcard package/internal))
+ $(shell $(MKDIR) package/internal)
+endif
+endif
+clean::
+ -$(RMDIR) package
+
+include custom.mak
diff --git a/file_demo_bios/k2g/.config/xconfig_app/package.xdc b/file_demo_bios/k2g/.config/xconfig_app/package.xdc
--- /dev/null
@@ -0,0 +1,7 @@
+/*!
+ * Package generated by xdc.tools.configuro
+ *
+ * @_nodoc
+ */
+package xconfig_app {
+}
diff --git a/file_demo_bios/k2g/.config/xconfig_app/package.xs b/file_demo_bios/k2g/.config/xconfig_app/package.xs
--- /dev/null
@@ -0,0 +1,20 @@
+/* THIS IS A GENERATED FILE -- DO NOT EDIT */
+
+/* return the names of the generated config objects */
+function getLibs(prog) {
+ /* for programs, push the generated config object file into the
+ * generated linker command file.
+ */
+ /* replace the last period in the name by an underscore */
+ var name = "package/cfg/" + prog.name.replace(/\.([^.]*)$/, "_$1");
+ /* base is a hack until we add cfgName to Program */
+ var base = "package/cfg/" + prog.name.replace(/\.([^.]*)$/, "");
+ var suffix = prog.build.target.suffix;
+
+ var libs = [
+// name + '.o' + suffix,
+ base + '_p' + suffix + '.o' + suffix
+ ];
+
+ return libs.join(';');
+}
diff --git a/file_demo_bios/k2g/.config/xconfig_app/package/.vers_b160 b/file_demo_bios/k2g/.config/xconfig_app/package/.vers_b160
diff --git a/file_demo_bios/k2g/.config/xconfig_app/package/.vers_g180 b/file_demo_bios/k2g/.config/xconfig_app/package/.vers_g180
diff --git a/file_demo_bios/k2g/.config/xconfig_app/package/.vers_r170 b/file_demo_bios/k2g/.config/xconfig_app/package/.vers_r170
diff --git a/file_demo_bios/k2g/.config/xconfig_app/package/.xdc-B06 b/file_demo_bios/k2g/.config/xconfig_app/package/.xdc-B06
diff --git a/file_demo_bios/k2g/.config/xconfig_app/package/build.cfg b/file_demo_bios/k2g/.config/xconfig_app/package/build.cfg
--- /dev/null
@@ -0,0 +1,9 @@
+if (pkg.$vers.length >= 3) {
+ pkg.$vers.push(Packages.xdc.services.global.Vers.getDate(xdc.csd() + '/..'));
+}
+
+pkg.build.libraries = [
+];
+
+pkg.build.libDesc = [
+];
diff --git a/file_demo_bios/k2g/.config/xconfig_app/package/cfg/app.xe66.mak b/file_demo_bios/k2g/.config/xconfig_app/package/cfg/app.xe66.mak
--- /dev/null
@@ -0,0 +1,11 @@
+#
+# Do not edit this file. This file is generated from
+# package.bld. Any modifications to this file will be
+# overwritten whenever makefiles are re-generated.
+#
+# target compatibility key = ti.targets.elf.C66{1,0,8.1,0
+#
+app.xe66: package/cfg/app.xe66.mak
+
+clean::
+ -$(RM) package/cfg/app.xe66.mak
diff --git a/file_demo_bios/k2g/.config/xconfig_app/package/cfg/app_pe66.cfg b/file_demo_bios/k2g/.config/xconfig_app/package/cfg/app_pe66.cfg
--- /dev/null
@@ -0,0 +1,275 @@
+/*
+ * ======== package/cfg/app_pe66.cfg ========
+ * This generated configuration script runs the user's configuration script
+ * the context of a specific target and platform in order to generate
+ * all the files necessary to create an executable; e.g., linker command
+ * files, static C/C++ data structures, etc.
+ */
+
+/*
+ * ======== _applyChanges ========
+ * Changes that bring the build target to the state at the end of the build
+ * model
+ */
+function _applyChanges(obj, chgObj) {
+ var wasSealed = false;
+ if (obj.$sealed) {
+ wasSealed = true;
+ obj.$unseal();
+ }
+ for (var prop in chgObj) {
+ if (typeof obj[prop] == 'object' && obj[prop] != undefined) {
+ if ("$category" in obj[prop] && obj[prop].$category == "Vector") {
+ obj[prop].length = chgObj[prop].length;
+ for (var i = 0; i < chgObj[prop].length; i++) {
+ if (obj[prop].length < i + 1) {
+ obj[prop].length++;
+ }
+ obj[prop][i] = chgObj[prop][i];
+ }
+ }
+ else {
+ _applyChanges(obj[prop], chgObj[prop]);
+ }
+ }
+ else {
+ obj[prop] = chgObj[prop];
+ }
+ }
+ if (wasSealed) {
+ obj.$seal();
+ }
+}
+
+/*
+ * ======== _runescape ========
+ * Recursive unescape to decode serialized strings
+ */
+function _runescape(obj) {
+ for (var i in obj) {
+ if (obj[i] != null) {
+ if (typeof obj[i] == 'string') {
+ obj[i] = unescape(obj[i]);
+ }
+ else if (typeof obj[i] == 'object') {
+ _runescape(obj[i]);
+ }
+ }
+ }
+}
+
+/*
+ * ======== _getPlatCfg ========
+ */
+function _getPlatCfg() {
+ var tmp = {};
+ _runescape(tmp);
+ return (tmp);
+}
+/*
+ * ======== _cfginit ========
+ */
+function _cfginit() {
+ xdc.loadPackage('xdc.services.intern.cmd');
+ var prog = xdc.om['xdc.cfg.Program'];
+
+ /* initialize prog attrs from build model */
+ var build = {
+ profile: "release",
+ cfgScript: "C%3A/ti/noise-reduction/file_demo_bios/k2g/app.cfg",
+ cfgHome: "xconfig_app",
+ cfgArgs: "null",
+ cfgArgsEncoded: true,
+ releases: {
+ 0: {
+ name: "xconfig_app",
+ attrs: {
+ prefix: "",
+ label: "default"
+ },
+ otherFiles: {},
+ excludeDirs: {}
+ }
+ },
+ prelink: false
+ };
+ _runescape(build);
+ build.cfgArgs = null;
+ build.target = xdc.module("ti.targets.elf.C66");
+ var targChange = {
+ platforms: [
+ "ti.platforms.simTCI6616"
+ ],
+ version: "ti.targets.elf.C66%7B1%2C0%2C8.1%2C0",
+ extensions: {
+ ".se66": {
+ suf: ".se66",
+ typ: "asm"
+ },
+ ".s66": {
+ suf: ".s66",
+ typ: "asm"
+ },
+ ".s674": {
+ suf: ".s674",
+ typ: "asm"
+ },
+ ".s64P": {
+ suf: ".s64P",
+ typ: "asm"
+ },
+ ".s64": {
+ suf: ".s64",
+ typ: "asm"
+ },
+ ".s62": {
+ suf: ".s62",
+ typ: "asm"
+ }
+ },
+ rootDir: "C%3A/ti/ccsv6/tools/compiler/ti-cgt-c6000_8.1.0",
+ ccOpts: {
+ prefix: "-g%20--optimize_with_debug%20-qq%20-pdsw225"
+ },
+ rawVersion: "8.1.0"
+ };
+ _runescape(targChange);
+ _applyChanges(build.target, targChange);
+
+ prog.build = build;
+
+ prog.name = "app.xe66";
+ prog.cfgBase = "package/cfg/app_pe66";
+
+ prog.endian = prog.build.target.model.endian;
+
+ /* use the platform package's Platform module */
+ var Platform = xdc.useModule("evmK2GCustom.Platform");
+ var platParams = _getPlatCfg();
+ var invalidParams = [];
+ for (var prop in platParams) {
+ if (!(prop in Platform.PARAMS)) {
+ delete platParams[prop];
+ invalidParams.push(prop);
+ }
+ }
+ prog.platformName = "evmK2GCustom";
+ prog.platform = Platform.create("", platParams);
+ for (var i = 0; i < invalidParams.length; i++) {
+ Platform.$logWarning("The parameter '" + invalidParams[i] + "' is " +
+ "passed to this platform instance through Build.platformTable, " +
+ "but the instance does not have a configuration parameter with " +
+ "that name.", prog.platform, "");
+ }
+
+ /* record the executable's package name */
+ prog.buildPackage = "xconfig_app";
+
+ /* record build-model information required during config generation */
+ prog.$$bind("$$isasm", 0);
+ prog.$$bind("$$isrom", 0);
+ prog.$$bind("$$gentab", [
+ ]);
+
+ /* bind prog to an appropriate execution context */
+ prog.cpu = prog.platform.getExeContext(prog);
+
+ /* import the target's run-time support pkg */
+ xdc.loadPackage("ti.targets.rts6000");
+}
+
+/* function to import the cfg script's package */
+function _userscript(script) {
+ var home;
+ var spath;
+ home = xdc.loadPackage("xconfig_app");
+
+ xdc.om.$$bind('$homepkg', home);
+
+ var cfgScript = "C:/ti/noise-reduction/file_demo_bios/k2g/app.cfg";
+ if (!script) {
+ utils.loadCapsule(cfgScript, false, spath);
+ }
+ else {
+ /* set up the same environment that loadCapsule would */
+ var $saveCsd = utils.csd;
+ var $cfgFile = utils.findFile(cfgScript, spath);
+ var cname = cfgScript;
+ if ($cfgFile) {
+ $cfgFile = java.io.File($cfgFile);
+ utils.csd = $cfgFile.getParentFile().getCanonicalPath();
+ cname = "" + $cfgFile.getCanonicalPath();
+ }
+
+ /* create the capsule object */
+ var cap = {
+ prototype: utils.global,
+ $path: cname,
+ $private: {path: cname},
+ $capsule: undefined, /* set to cap below */
+ };
+
+ /* 'this.$capsule' is always cap object */
+ cap.$capsule = cap;
+
+ /* save the capsule object */
+ utils.$$capmap[cname] = cap;
+
+ try {
+ var cx =
+ Packages.org.mozilla.javascript.Context.getCurrentContext();
+ var rdr = new
+ java.io.BufferedReader(new java.io.StringReader(script));
+ Packages.config.Shell.evaluateLoad(cx, cap, rdr, cname, 1);
+ }
+ finally {
+ rdr.close();
+ utils.csd = $saveCsd;
+ }
+ }
+}
+
+function _postinit() {
+ var cout = null;
+
+ var Program = xdc.om['xdc.cfg.Program'];
+ /* get the exec command for this executable */
+ if (Program.execCmd == null) {
+ Program.execCmd = Program.platform.getExecCmd(Program,
+ xdc.om["evmK2GCustom"].packageBase);
+ }
+ cout = "define EXEC." + Program.name + '\n\n';
+ cout += Program.execCmd;
+ cout += "\nendef\n\n";
+
+ /* if SourceDir generates a makefile, we need to run it */
+ _genSourceDirMak("package/cfg/app_pe66", "app.pe66");
+
+ utils.genDep("package/cfg/app_pe66", "xconfig_app", utils.loadedFiles, cout, null);
+}
+
+function _genSourceDirMak(cfgBase, cfgName)
+{
+ var SourceDir = xdc.om['xdc.cfg.SourceDir'];
+
+ if (SourceDir && SourceDir.$instances.length > 0) {
+ /* construct rule to run SourceDir generated makefile */
+ var make = "\t$(MAKE) -f "
+ + SourceDir.outputDir + "/" + SourceDir.makefileName;
+
+ /* this file is included by package.mak (if it exists) */
+ var file = new java.io.File(cfgBase + ".cfg.mak");
+ file["delete"]();
+ var out = new java.io.BufferedWriter(new java.io.FileWriter(file));
+
+ /* add rules to run SourceDir generated makefile */
+ out.write("# invoke SourceDir generated makefile for " + cfgName
+ + "\n" + cfgName + ": .libraries," + cfgName
+ + "\n.libraries," + cfgName + ": " + cfgBase + ".xdl\n"
+ + make + "\n\n"
+ + "clean::\n" + make + " clean\n\n"
+ );
+ out.close();
+ out = null;
+ }
+}
diff --git a/file_demo_bios/k2g/.config/xconfig_app/package/cfg/app_pe66.mak b/file_demo_bios/k2g/.config/xconfig_app/package/cfg/app_pe66.mak
--- /dev/null
@@ -0,0 +1,46 @@
+#
+# Do not edit this file. This file is generated from
+# package.bld. Any modifications to this file will be
+# overwritten whenever makefiles are re-generated.
+#
+# target compatibility key = ti.targets.elf.C66{1,0,8.1,0
+#
+ifeq (,$(MK_NOGENDEPS))
+-include package/cfg/app_pe66.oe66.dep
+package/cfg/app_pe66.oe66.dep: ;
+endif
+
+package/cfg/app_pe66.oe66: | .interfaces
+package/cfg/app_pe66.oe66: package/cfg/app_pe66.c package/cfg/app_pe66.mak
+ @$(RM) $@.dep
+ $(RM) $@
+ @$(MSG) cle66 $< ...
+ $(ti.targets.elf.C66.rootDir)/bin/cl6x -c -g --optimize_with_debug -qq -pdsw225 -mo -mv6600 --abi=eabi -eo.oe66 -ea.se66 -Dxdc_cfg__xheader__='"xconfig_app/package/cfg/app_pe66.h"' -Dxdc_target_name__=C66 -Dxdc_target_types__=ti/targets/elf/std.h -Dxdc_bld__profile_release -Dxdc_bld__vers_1_0_8_1_0 -O2 $(XDCINCS) -I$(ti.targets.elf.C66.rootDir)/include -fs=./package/cfg -fr=./package/cfg -fc $<
+ $(MKDEP) -a $@.dep -p package/cfg -s oe66 $< -C -g --optimize_with_debug -qq -pdsw225 -mo -mv6600 --abi=eabi -eo.oe66 -ea.se66 -Dxdc_cfg__xheader__='"xconfig_app/package/cfg/app_pe66.h"' -Dxdc_target_name__=C66 -Dxdc_target_types__=ti/targets/elf/std.h -Dxdc_bld__profile_release -Dxdc_bld__vers_1_0_8_1_0 -O2 $(XDCINCS) -I$(ti.targets.elf.C66.rootDir)/include -fs=./package/cfg -fr=./package/cfg
+ -@$(FIXDEP) $@.dep $@.dep
+
+package/cfg/app_pe66.oe66: export C_DIR=
+package/cfg/app_pe66.oe66: PATH:=$(ti.targets.elf.C66.rootDir)/bin/;$(PATH)
+package/cfg/app_pe66.oe66: Path:=$(ti.targets.elf.C66.rootDir)/bin/;$(PATH)
+
+package/cfg/app_pe66.se66: | .interfaces
+package/cfg/app_pe66.se66: package/cfg/app_pe66.c package/cfg/app_pe66.mak
+ @$(RM) $@.dep
+ $(RM) $@
+ @$(MSG) cle66 -n $< ...
+ $(ti.targets.elf.C66.rootDir)/bin/cl6x -c -n -s --symdebug:none -g --optimize_with_debug -qq -pdsw225 -mv6600 --abi=eabi -eo.oe66 -ea.se66 -Dxdc_cfg__xheader__='"xconfig_app/package/cfg/app_pe66.h"' -Dxdc_target_name__=C66 -Dxdc_target_types__=ti/targets/elf/std.h -Dxdc_bld__profile_release -Dxdc_bld__vers_1_0_8_1_0 -O2 $(XDCINCS) -I$(ti.targets.elf.C66.rootDir)/include -fs=./package/cfg -fr=./package/cfg -fc $<
+ $(MKDEP) -a $@.dep -p package/cfg -s oe66 $< -C -n -s --symdebug:none -g --optimize_with_debug -qq -pdsw225 -mv6600 --abi=eabi -eo.oe66 -ea.se66 -Dxdc_cfg__xheader__='"xconfig_app/package/cfg/app_pe66.h"' -Dxdc_target_name__=C66 -Dxdc_target_types__=ti/targets/elf/std.h -Dxdc_bld__profile_release -Dxdc_bld__vers_1_0_8_1_0 -O2 $(XDCINCS) -I$(ti.targets.elf.C66.rootDir)/include -fs=./package/cfg -fr=./package/cfg
+ -@$(FIXDEP) $@.dep $@.dep
+
+package/cfg/app_pe66.se66: export C_DIR=
+package/cfg/app_pe66.se66: PATH:=$(ti.targets.elf.C66.rootDir)/bin/;$(PATH)
+package/cfg/app_pe66.se66: Path:=$(ti.targets.elf.C66.rootDir)/bin/;$(PATH)
+
+clean,e66 ::
+ -$(RM) package/cfg/app_pe66.oe66
+ -$(RM) package/cfg/app_pe66.se66
+
+app.pe66: package/cfg/app_pe66.oe66 package/cfg/app_pe66.mak
+
+clean::
+ -$(RM) package/cfg/app_pe66.mak
diff --git a/file_demo_bios/k2g/.config/xconfig_app/package/package.bld.xml b/file_demo_bios/k2g/.config/xconfig_app/package/package.bld.xml
--- /dev/null
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="windows-1252"?>
+<!-- This file conforms to the DTD xdc/bld/build.dtd -->
+<package name="xconfig_app" version="" producerId="undefined">
+ <units>
+ </units>
+ <sources>
+ <srcFile name="package/cfg/app_pe66.c"/>
+ </sources>
+ <configscripts>
+ <srcFile name="C:/ti/noise-reduction/file_demo_bios/k2g/app.cfg"/>
+ </configscripts>
+ <makefiles>
+ <srcFile name="package.mak" src="package.bld"/>
+ <srcFile name="package/package.xdc.dep" src="package.xdc"/>
+ <srcFile name="package/cfg/app_pe66.mak" src="package.bld"/>
+ <srcFile name="package/cfg/app_pe66.oe66.dep" src="package/cfg/app_pe66.c"/>
+ <srcFile name="package/cfg/app_pe66.dep" src="package/cfg/app_pe66.cfg"/>
+ <srcFile name="package/cfg/app.xe66.mak" src="package.bld"/>
+ <srcFile name="package/rel/xconfig_app.tar.dep" src="package/rel/xconfig_app.xdc.inc"/>
+ </makefiles>
+ <targets>
+ <target name="ti.targets.elf.C66"
+ version="ti.targets.elf.C66{1,0,8.1,0"
+ rawVersion="8.1.0"
+ platform="ti.platforms.simTCI6616"
+ isa="66"
+ suffix="e66"
+ rootDir="C:/ti/ccsv6/tools/compiler/ti-cgt-c6000_8.1.0"
+ os="undefined"
+ rts="ti.targets.rts6000">
+ <model endian="little"
+ codeModel="undefined"
+ dataModel="undefined"/>
+ </target>
+ </targets>
+ <libraries>
+ </libraries>
+ <configurations>
+ <configuration name="app"
+ pname="app.pe66"
+ target="ti.targets.elf.C66"
+ platform="evmK2GCustom"
+ profile="release"
+ isPartial="false"
+ xCfgScript="package/cfg/app_pe66.cfg"
+ xCfgPrefix="package/cfg/app_pe66"
+ cfgScript="C:/ti/noise-reduction/file_demo_bios/k2g/app.cfg"
+ cfgArgs="null"
+ />
+ </configurations>
+ <executables>
+ <executable name="app"
+ pname="app.xe66"
+ target="ti.targets.elf.C66"
+ platform="evmK2GCustom"
+ profile="release"
+ xCfgScript="package/cfg/app_pe66.cfg"
+ xCfgPrefix="package/cfg/app_pe66"
+ cfgScript="C:/ti/noise-reduction/file_demo_bios/k2g/app.cfg"
+ cfgArgs="null"
+ />
+ </executables>
+ <tests>
+ <test exeName="app.xe66"
+ args=""
+ groupName="app.xe66"
+ refOutput="undefined"
+ refExitCode="0"
+ execArgs=""
+ />
+ </tests>
+ <releases relDir="package/rel/">
+ <release name="xconfig_app"
+ pname="xconfig_app.tar"
+ label="default"
+ >
+ <file name="package/package.bld.xml"/>
+ <file name="package/build.cfg"/>
+ <file name="package/package.xdc.inc"/>
+ </release>
+ </releases>
+ <repositories>
+ </repositories>
+</package>
diff --git a/file_demo_bios/k2g/.config/xconfig_app/package/package.defs.h b/file_demo_bios/k2g/.config/xconfig_app/package/package.defs.h
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+ * Do not modify this file; it is automatically
+ * generated and any modifications will be overwritten.
+ *
+ * @(#) xdc-B06
+ */
+
+#ifndef xconfig_app__
+#define xconfig_app__
+
+
+
+#endif /* xconfig_app__ */
diff --git a/file_demo_bios/k2g/.config/xconfig_app/package/package.xdc.dep b/file_demo_bios/k2g/.config/xconfig_app/package/package.xdc.dep
--- /dev/null
@@ -0,0 +1,53 @@
+clean::\r
+ $(RM) package/xconfig_app.sch\r
+ $(RM) package/.vers_g180\r
+ $(RM) package/.vers_r170\r
+ $(RM) package/.vers_b160\r
+ $(RM) package/.xdc-B06\r
+ $(RM) package/xconfig_app.java\r
+ $(RM) package/xconfig_app.class\r
+ $(RM) package/package_xconfig_app.c\r
+ $(RM) package/package.defs.h\r
+ $(RM) package/xconfig_app.ccs\r
+
+.interfaces: package/xconfig_app.sch package/.vers_g180 package/.vers_r170 package/.vers_b160 package/.xdc-B06 package/xconfig_app.java package/package_xconfig_app.c package/package.defs.h package/xconfig_app.ccs
+package/package.xdc.inc: package/.vers_g180
+package/.vers_g180:
+package/package.xdc.inc: package/.vers_r170
+package/.vers_r170:
+package/package.xdc.inc: package/.vers_b160
+package/.vers_b160:
+
+.interfaces:
+
+# schema include file dependencies
+package.xs:\r
+package/package.xdc.inc: package.xs\r
+
+# schema update dependencies
+package/package.xdc.inc: xdc/IPackage.xdc\r
+xdc/IPackage.xdc:\r
+vpath xdc/IPackage.xdc $(XPKGVPATH)\r
+
+ifneq (clean,$(MAKECMDGOALS))
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/ecj.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/ecj.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/intern/gen/java/package.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/intern/gen/java/package.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/intern/cmd/java/package.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/intern/cmd/java/package.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/js.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/js.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/global/java/package.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/global/java/package.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/antlr.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/antlr.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/intern/xsr/java/package.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/intern/xsr/java/package.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/tar.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/tar.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/spec/java/package.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/spec/java/package.jar\r
+endif
+# goals for files generated during schema generation but unspecified by schema's pattern rule
+
diff --git a/file_demo_bios/k2g/.config/xconfig_app/package/package.xdc.inc b/file_demo_bios/k2g/.config/xconfig_app/package/package.xdc.inc
--- /dev/null
@@ -0,0 +1,12 @@
+package.xdc\r
+package.xs\r
+package/xconfig_app.sch\r
+package/.vers_g180\r
+package/.vers_r170\r
+package/.vers_b160\r
+package/.xdc-B06\r
+package/xconfig_app.java\r
+package/xconfig_app.class\r
+package/package_xconfig_app.c\r
+package/package.defs.h\r
+package/xconfig_app.ccs\r
diff --git a/file_demo_bios/k2g/.config/xconfig_app/package/package_xconfig_app.c b/file_demo_bios/k2g/.config/xconfig_app/package/package_xconfig_app.c
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ * Do not modify this file; it is automatically
+ * generated and any modifications will be overwritten.
+ *
+ * @(#) xdc-B06
+ */
+
+#include <xdc/std.h>
+
+__FAR__ char xconfig_app__dummy__;
+
+#define __xdc_PKGVERS null
+#define __xdc_PKGNAME xconfig_app
+#define __xdc_PKGPREFIX xconfig_app_
+
+#ifdef __xdc_bld_pkg_c__
+#define __stringify(a) #a
+#define __local_include(a) __stringify(a)
+#include __local_include(__xdc_bld_pkg_c__)
+#endif
+
diff --git a/file_demo_bios/k2g/.config/xconfig_app/package/rel/xconfig_app.xdc.inc b/file_demo_bios/k2g/.config/xconfig_app/package/rel/xconfig_app.xdc.inc
--- /dev/null
@@ -0,0 +1,3 @@
+package/package.bld.xml
+package/build.cfg
+package/package.xdc.inc
diff --git a/file_demo_bios/k2g/.config/xconfig_app/package/rel/xconfig_app.xdc.ninc b/file_demo_bios/k2g/.config/xconfig_app/package/rel/xconfig_app.xdc.ninc
diff --git a/file_demo_bios/k2g/.config/xconfig_app/package/xconfig_app.ccs b/file_demo_bios/k2g/.config/xconfig_app/package/xconfig_app.ccs
new file mode 100644 (file)
index 0000000..40884d8
Binary files /dev/null and b/file_demo_bios/k2g/.config/xconfig_app/package/xconfig_app.ccs differ
index 0000000..40884d8
Binary files /dev/null and b/file_demo_bios/k2g/.config/xconfig_app/package/xconfig_app.ccs differ
diff --git a/file_demo_bios/k2g/.config/xconfig_app/package/xconfig_app.class b/file_demo_bios/k2g/.config/xconfig_app/package/xconfig_app.class
new file mode 100644 (file)
index 0000000..433b0b9
Binary files /dev/null and b/file_demo_bios/k2g/.config/xconfig_app/package/xconfig_app.class differ
index 0000000..433b0b9
Binary files /dev/null and b/file_demo_bios/k2g/.config/xconfig_app/package/xconfig_app.class differ
diff --git a/file_demo_bios/k2g/.config/xconfig_app/package/xconfig_app.java b/file_demo_bios/k2g/.config/xconfig_app/package/xconfig_app.java
--- /dev/null
@@ -0,0 +1,143 @@
+/*
+ * Do not modify this file; it is automatically
+ * generated and any modifications will be overwritten.
+ *
+ * @(#) xdc-B06
+ */
+import java.util.*;
+import org.mozilla.javascript.*;
+import xdc.services.intern.xsr.*;
+import xdc.services.spec.Session;
+
+public class xconfig_app
+{
+ static final String VERS = "@(#) xdc-B06\n";
+
+ static final Proto.Elm $$T_Bool = Proto.Elm.newBool();
+ static final Proto.Elm $$T_Num = Proto.Elm.newNum();
+ static final Proto.Elm $$T_Str = Proto.Elm.newStr();
+ static final Proto.Elm $$T_Obj = Proto.Elm.newObj();
+
+ static final Proto.Fxn $$T_Met = new Proto.Fxn(null, null, 0, -1, false);
+ static final Proto.Map $$T_Map = new Proto.Map($$T_Obj);
+ static final Proto.Arr $$T_Vec = new Proto.Arr($$T_Obj);
+
+ static final XScriptO $$DEFAULT = Value.DEFAULT;
+ static final Object $$UNDEF = Undefined.instance;
+
+ static final Proto.Obj $$Package = (Proto.Obj)Global.get("$$Package");
+ static final Proto.Obj $$Module = (Proto.Obj)Global.get("$$Module");
+ static final Proto.Obj $$Instance = (Proto.Obj)Global.get("$$Instance");
+ static final Proto.Obj $$Params = (Proto.Obj)Global.get("$$Params");
+
+ static final Object $$objFldGet = Global.get("$$objFldGet");
+ static final Object $$objFldSet = Global.get("$$objFldSet");
+ static final Object $$proxyGet = Global.get("$$proxyGet");
+ static final Object $$proxySet = Global.get("$$proxySet");
+ static final Object $$delegGet = Global.get("$$delegGet");
+ static final Object $$delegSet = Global.get("$$delegSet");
+
+ Scriptable xdcO;
+ Session ses;
+ Value.Obj om;
+
+ boolean isROV;
+ boolean isCFG;
+
+ Proto.Obj pkgP;
+ Value.Obj pkgV;
+
+ ArrayList<Object> imports = new ArrayList<Object>();
+ ArrayList<Object> loggables = new ArrayList<Object>();
+ ArrayList<Object> mcfgs = new ArrayList<Object>();
+ ArrayList<Object> icfgs = new ArrayList<Object>();
+ ArrayList<String> inherits = new ArrayList<String>();
+ ArrayList<Object> proxies = new ArrayList<Object>();
+ ArrayList<Object> sizes = new ArrayList<Object>();
+ ArrayList<Object> tdefs = new ArrayList<Object>();
+
+ void $$IMPORTS()
+ {
+ Global.callFxn("loadPackage", xdcO, "xdc");
+ Global.callFxn("loadPackage", xdcO, "xdc.corevers");
+ }
+
+ void $$OBJECTS()
+ {
+ pkgP = (Proto.Obj)om.bind("xconfig_app.Package", new Proto.Obj());
+ pkgV = (Value.Obj)om.bind("xconfig_app", new Value.Obj("xconfig_app", pkgP));
+ }
+
+ void $$SINGLETONS()
+ {
+ pkgP.init("xconfig_app.Package", (Proto.Obj)om.findStrict("xdc.IPackage.Module", "xconfig_app"));
+ Scriptable cap = (Scriptable)Global.callFxn("loadCapsule", xdcO, "xconfig_app/package.xs");
+ om.bind("xdc.IPackage$$capsule", cap);
+ Object fxn;
+ fxn = Global.get(cap, "init");
+ if (fxn != null) pkgP.addFxn("init", (Proto.Fxn)om.findStrict("xdc.IPackage$$init", "xconfig_app"), fxn);
+ fxn = Global.get(cap, "close");
+ if (fxn != null) pkgP.addFxn("close", (Proto.Fxn)om.findStrict("xdc.IPackage$$close", "xconfig_app"), fxn);
+ fxn = Global.get(cap, "validate");
+ if (fxn != null) pkgP.addFxn("validate", (Proto.Fxn)om.findStrict("xdc.IPackage$$validate", "xconfig_app"), fxn);
+ fxn = Global.get(cap, "exit");
+ if (fxn != null) pkgP.addFxn("exit", (Proto.Fxn)om.findStrict("xdc.IPackage$$exit", "xconfig_app"), fxn);
+ fxn = Global.get(cap, "getLibs");
+ if (fxn != null) pkgP.addFxn("getLibs", (Proto.Fxn)om.findStrict("xdc.IPackage$$getLibs", "xconfig_app"), fxn);
+ fxn = Global.get(cap, "getSects");
+ if (fxn != null) pkgP.addFxn("getSects", (Proto.Fxn)om.findStrict("xdc.IPackage$$getSects", "xconfig_app"), fxn);
+ pkgP.bind("$capsule", cap);
+ pkgV.init2(pkgP, "xconfig_app", Value.DEFAULT, false);
+ pkgV.bind("$name", "xconfig_app");
+ pkgV.bind("$category", "Package");
+ pkgV.bind("$$qn", "xconfig_app.");
+ pkgV.bind("$vers", Global.newArray());
+ Value.Map atmap = (Value.Map)pkgV.getv("$attr");
+ atmap.seal("length");
+ imports.clear();
+ pkgV.bind("$imports", imports);
+ StringBuilder sb = new StringBuilder();
+ sb.append("var pkg = xdc.om['xconfig_app'];\n");
+ sb.append("if (pkg.$vers.length >= 3) {\n");
+ sb.append("pkg.$vers.push(Packages.xdc.services.global.Vers.getDate(xdc.csd() + '/..'));\n");
+ sb.append("}\n");
+ sb.append("if ('xconfig_app$$stat$base' in xdc.om) {\n");
+ sb.append("pkg.packageBase = xdc.om['xconfig_app$$stat$base'];\n");
+ sb.append("pkg.packageRepository = xdc.om['xconfig_app$$stat$root'];\n");
+ sb.append("}\n");
+ sb.append("pkg.build.libraries = [\n");
+ sb.append("];\n");
+ sb.append("pkg.build.libDesc = [\n");
+ sb.append("];\n");
+ Global.eval(sb.toString());
+ }
+
+ void $$INITIALIZATION()
+ {
+ Value.Obj vo;
+
+ if (isCFG) {
+ }//isCFG
+ Global.callFxn("init", pkgV);
+ ((Value.Arr)om.findStrict("$packages", "xconfig_app")).add(pkgV);
+ }
+
+ public void exec( Scriptable xdcO, Session ses )
+ {
+ this.xdcO = xdcO;
+ this.ses = ses;
+ om = (Value.Obj)xdcO.get("om", null);
+
+ Object o = om.geto("$name");
+ String s = o instanceof String ? (String)o : null;
+ isCFG = s != null && s.equals("cfg");
+ isROV = s != null && s.equals("rov");
+
+ $$IMPORTS();
+ $$OBJECTS();
+ if (isROV) {
+ }//isROV
+ $$SINGLETONS();
+ $$INITIALIZATION();
+ }
+}
diff --git a/file_demo_bios/k2g/.config/xconfig_app/package/xconfig_app.sch b/file_demo_bios/k2g/.config/xconfig_app/package/xconfig_app.sch
diff --git a/file_demo_bios/k2g/.cproject b/file_demo_bios/k2g/.cproject
--- /dev/null
@@ -0,0 +1,230 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">\r
+ <storageModule configRelations="2" moduleId="org.eclipse.cdt.core.settings">\r
+ <cconfiguration id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1835316231">\r
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1835316231" moduleId="org.eclipse.cdt.core.settings" name="Debug">\r
+ <externalSettings/>\r
+ <extensions>\r
+ <extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+ <extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+ <extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+ <extension id="org.eclipse.rtsc.xdctools.parsers.ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+ <extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>\r
+ </extensions>\r
+ </storageModule>\r
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">\r
+ <configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" errorParsers="org.eclipse.rtsc.xdctools.parsers.ErrorParser;com.ti.ccstudio.errorparser.CoffErrorParser;org.eclipse.cdt.core.GmakeErrorParser;com.ti.ccstudio.errorparser.LinkErrorParser;com.ti.ccstudio.errorparser.AsmErrorParser" id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1835316231" name="Debug" parent="com.ti.ccstudio.buildDefinitions.C6000.Debug">\r
+ <folderInfo id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1835316231." name="/" resourcePath="">\r
+ <toolChain id="com.ti.ccstudio.buildDefinitions.C6000_8.1.exe.DebugToolchain.344380526" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.C6000_8.1.exe.linkerDebug.965411795">\r
+ <option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.969050517" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">\r
+ <listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=TMS320C66XX.66AK2G02"/>\r
+ <listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>\r
+ <listOptionValue builtIn="false" value="OUTPUT_FORMAT=ELF"/>\r
+ <listOptionValue builtIn="false" value="CCS_MBS_VERSION=6.1.3"/>\r
+ <listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>\r
+ <listOptionValue builtIn="false" value="RTSC_MBS_VERSION=2.2.0"/>\r
+ <listOptionValue builtIn="false" value="XDC_VERSION=3.32.0.06_core"/>\r
+ <listOptionValue builtIn="false" value="RTSC_PRODUCTS=ti.mas.aer.c64Px:17.0.0;com.ti.rtsc.SYSBIOS:6.45.1.29;com.ti.uia:2.0.3.43;ti.mas.volib.C66:2.1.0.1;com.ti.rtsc.XDAIS:7.24.0.04;"/>\r
+ <listOptionValue builtIn="false" value="INACTIVE_REPOS=${TARGET_CONTENT_BASE};"/>\r
+ <listOptionValue builtIn="false" value="EXPANDED_REPOS="/>\r
+ <listOptionValue builtIn="false" value="OUTPUT_TYPE=rtscApplication:executable"/>\r
+ </option>\r
+ <option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.963403336" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="8.1.0" valueType="string"/>\r
+ <targetPlatform id="com.ti.ccstudio.buildDefinitions.C6000_8.1.exe.targetPlatformDebug.220293677" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.exe.targetPlatformDebug"/>\r
+ <builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.C6000_8.1.exe.builderDebug.2111411442" keepEnvironmentInBuildfile="false" name="GNU Make" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.exe.builderDebug"/>\r
+ <tool id="com.ti.ccstudio.buildDefinitions.C6000_8.1.exe.compilerDebug.804526444" name="C6000 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.exe.compilerDebug">\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.DEFINE.543759738" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.DEFINE" valueType="definedSymbols">\r
+ <listOptionValue builtIn="false" value="k2g02"/>\r
+ <listOptionValue builtIn="false" value="dsp0"/>\r
+ </option>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.SILICON_VERSION.1290834213" name="Target processor version (--silicon_version, -mv)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.SILICON_VERSION" value="6600" valueType="string"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.INCLUDE_PATH.744891125" name="Add dir to #include search path (--include_path, -I)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.INCLUDE_PATH" valueType="includePath">\r
+ <listOptionValue builtIn="false" value=""${CG_TOOL_ROOT}/include""/>\r
+ </option>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.DEBUGGING_MODEL.186410672" name="Debugging model" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.DIAG_WARNING.1008435753" name="Treat diagnostic <id> as warning (--diag_warning, -pdsw)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.DIAG_WARNING" valueType="stringList">\r
+ <listOptionValue builtIn="false" value="225"/>\r
+ </option>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.DIAG_WRAP.940442525" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.DIAG_WRAP.off" valueType="enumerated"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.DISPLAY_ERROR_NUMBER.483254761" name="Emit diagnostic identifier numbers (--display_error_number, -pden)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>\r
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_8.1.compiler.inputType__C_SRCS.1317236830" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.compiler.inputType__C_SRCS"/>\r
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_8.1.compiler.inputType__CPP_SRCS.1679161302" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.compiler.inputType__CPP_SRCS"/>\r
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_8.1.compiler.inputType__ASM_SRCS.110907742" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.compiler.inputType__ASM_SRCS"/>\r
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_8.1.compiler.inputType__ASM2_SRCS.2045394746" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.compiler.inputType__ASM2_SRCS"/>\r
+ </tool>\r
+ <tool id="com.ti.ccstudio.buildDefinitions.C6000_8.1.exe.linkerDebug.965411795" name="C6000 Linker" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.exe.linkerDebug">\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.DEFINE.500949423" name="Pre-define preprocessor macro _name_ to _value_ (--define)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.DEFINE" valueType="definedSymbols">\r
+ <listOptionValue builtIn="false" value="DSP_CORE=1"/>\r
+ </option>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.STACK_SIZE.398244289" name="Set C system stack size (--stack_size, -stack)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.STACK_SIZE" value="0x800" valueType="string"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.HEAP_SIZE.923670801" name="Heap size for C/C++ dynamic memory allocation (--heap_size, -heap)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.HEAP_SIZE" value="0x800" valueType="string"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.OUTPUT_FILE.249978722" name="Specify output file name (--output_file, -o)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.OUTPUT_FILE" value=""${ProjName}.out"" valueType="string"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.MAP_FILE.746881898" name="Link information (map) listed into <file> (--map_file, -m)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.MAP_FILE" value=""${ProjName}.map"" valueType="string"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.LIBRARY.1030454472" name="Include library file or command file as input (--library, -l)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.LIBRARY" valueType="libs">\r
+ <listOptionValue builtIn="false" value=""aer_c.ae64P""/>\r
+ <listOptionValue builtIn="false" value=""vau/lib/vau_c.ae66""/>\r
+ <listOptionValue builtIn="false" value=""vpe/lib/vpe_a.ae66""/>\r
+ <listOptionValue builtIn="false" value=""vpe/lib/vpe_c.ae66""/>\r
+ <listOptionValue builtIn="false" value=""util/lib/util_c.ae66""/>\r
+ <listOptionValue builtIn="false" value=""mhm/lib/mhm_c.ae66""/>\r
+ <listOptionValue builtIn="false" value=""libc.a""/>\r
+ </option>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.SEARCH_PATH.895151274" name="Add <dir> to library search path (--search_path, -i)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.SEARCH_PATH" valueType="libPaths">\r
+ <listOptionValue builtIn="false" value=""${TI_MAS_AER_C64PX_INSTALL_DIR}/packages/ti/mas/aer/lib""/>\r
+ <listOptionValue builtIn="false" value=""${TI_MAS_VOLIB_C66_INSTALL_DIR}/packages/ti/mas/""/>\r
+ <listOptionValue builtIn="false" value=""${CG_TOOL_ROOT}/lib""/>\r
+ <listOptionValue builtIn="false" value=""${CG_TOOL_ROOT}/include""/>\r
+ </option>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.DIAG_WRAP.612749028" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.DIAG_WRAP.off" valueType="enumerated"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.DISPLAY_ERROR_NUMBER.2084630290" name="Emit diagnostic identifier numbers (--display_error_number)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.XML_LINK_INFO.1839711669" name="Detailed link information data-base into <file> (--xml_link_info, -xml_link_info)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.XML_LINK_INFO" value=""${ProjName}_linkInfo.xml"" valueType="string"/>\r
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_8.1.exeLinker.inputType__CMD_SRCS.99912686" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.exeLinker.inputType__CMD_SRCS"/>\r
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_8.1.exeLinker.inputType__CMD2_SRCS.1585953640" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.exeLinker.inputType__CMD2_SRCS"/>\r
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_8.1.exeLinker.inputType__GEN_CMDS.1597601763" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.exeLinker.inputType__GEN_CMDS"/>\r
+ </tool>\r
+ <tool id="com.ti.ccstudio.buildDefinitions.C6000_8.1.hex.1707368945" name="C6000 Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.hex"/>\r
+ <tool id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.1762840981" name="XDCtools" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool">\r
+ <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH.1191046427" name="Package repositories (--xdcpath)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH" valueType="stringList">\r
+ <listOptionValue builtIn="false" value=""${BIOS_CG_ROOT}/packages""/>\r
+ <listOptionValue builtIn="false" value=""${TI_MAS_VOLIB_C66_INSTALL_DIR}/packages""/>\r
+ <listOptionValue builtIn="false" value=""${XDAIS_CG_ROOT}/packages""/>\r
+ <listOptionValue builtIn="false" value=""${XDAIS_CG_ROOT}/examples""/>\r
+ <listOptionValue builtIn="false" value=""${TI_MAS_AER_C64PX_INSTALL_DIR}/packages""/>\r
+ <listOptionValue builtIn="false" value=""${PROJECT_LOC}/../platforms/packages""/>\r
+ <listOptionValue builtIn="false" value=""${COM_TI_UIA_INSTALL_DIR}/packages""/>\r
+ </option>\r
+ <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET.1216531247" name="Target (-t)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET" value="ti.targets.elf.C66" valueType="string"/>\r
+ <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM.1034504738" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM" value="evmTCI66AK2G02Custom" valueType="string"/>\r
+ <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW.1033675514" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW" value="evmTCI66AK2G02Custom" valueType="string"/>\r
+ <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE.322161814" name="Build-profile (-r)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE" value="debug" valueType="string"/>\r
+ <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR.344977640" name="Compiler tools directory (-c)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR" value=""${CG_TOOL_ROOT}"" valueType="string"/>\r
+ <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS.1844758151" name="Additional compiler options (--compileOptions)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS" value=""-g --optimize_with_debug"" valueType="string"/>\r
+ </tool>\r
+ </toolChain>\r
+ </folderInfo>\r
+ <sourceEntries>\r
+ <entry excluding="AM57xx_C66.cmd|src" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>\r
+ </sourceEntries>\r
+ </configuration>\r
+ </storageModule>\r
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>\r
+ </cconfiguration>\r
+ <cconfiguration id="com.ti.ccstudio.buildDefinitions.C6000.Release.538536564">\r
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.C6000.Release.538536564" moduleId="org.eclipse.cdt.core.settings" name="Release">\r
+ <externalSettings/>\r
+ <extensions>\r
+ <extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+ <extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+ <extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+ <extension id="org.eclipse.rtsc.xdctools.parsers.ErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+ <extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>\r
+ </extensions>\r
+ </storageModule>\r
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">\r
+ <configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" errorParsers="org.eclipse.rtsc.xdctools.parsers.ErrorParser;com.ti.ccstudio.errorparser.CoffErrorParser;org.eclipse.cdt.core.GmakeErrorParser;com.ti.ccstudio.errorparser.LinkErrorParser;com.ti.ccstudio.errorparser.AsmErrorParser" id="com.ti.ccstudio.buildDefinitions.C6000.Release.538536564" name="Release" parent="com.ti.ccstudio.buildDefinitions.C6000.Release">\r
+ <folderInfo id="com.ti.ccstudio.buildDefinitions.C6000.Release.538536564." name="/" resourcePath="">\r
+ <toolChain id="com.ti.ccstudio.buildDefinitions.C6000_8.1.exe.ReleaseToolchain.732070461" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.exe.ReleaseToolchain" targetTool="com.ti.ccstudio.buildDefinitions.C6000_8.1.exe.linkerRelease.1315506571">\r
+ <option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1380404355" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">\r
+ <listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=TMS320C66XX.AM5728_RevA.GPEVM_AM572X_SiRevA"/>\r
+ <listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>\r
+ <listOptionValue builtIn="false" value="OUTPUT_FORMAT=ELF"/>\r
+ <listOptionValue builtIn="false" value="CCS_MBS_VERSION=6.1.3"/>\r
+ <listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>\r
+ <listOptionValue builtIn="false" value="RTSC_MBS_VERSION=2.2.0"/>\r
+ <listOptionValue builtIn="false" value="XDC_VERSION=3.32.0.06_core"/>\r
+ <listOptionValue builtIn="false" value="RTSC_PRODUCTS=com.ti.rtsc.SYSBIOS:6.45.1.29;"/>\r
+ <listOptionValue builtIn="false" value="EXPANDED_REPOS="/>\r
+ <listOptionValue builtIn="false" value="OUTPUT_TYPE=rtscApplication:executable"/>\r
+ </option>\r
+ <option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.111350210" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="8.1.0" valueType="string"/>\r
+ <targetPlatform id="com.ti.ccstudio.buildDefinitions.C6000_8.1.exe.targetPlatformRelease.526121302" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.exe.targetPlatformRelease"/>\r
+ <builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.C6000_8.1.exe.builderRelease.1020960975" keepEnvironmentInBuildfile="false" name="GNU Make" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.exe.builderRelease"/>\r
+ <tool id="com.ti.ccstudio.buildDefinitions.C6000_8.1.exe.compilerRelease.1647715829" name="C6000 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.exe.compilerRelease">\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.DEFINE.101549308" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.DEFINE" valueType="definedSymbols">\r
+ <listOptionValue builtIn="false" value="am5728"/>\r
+ <listOptionValue builtIn="false" value="core1"/>\r
+ </option>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.SILICON_VERSION.832953276" name="Target processor version (--silicon_version, -mv)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.SILICON_VERSION" value="6600" valueType="string"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.DIAG_WARNING.1109229400" name="Treat diagnostic <id> as warning (--diag_warning, -pdsw)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.DIAG_WARNING" valueType="stringList">\r
+ <listOptionValue builtIn="false" value="225"/>\r
+ </option>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.DISPLAY_ERROR_NUMBER.2017602906" name="Emit diagnostic identifier numbers (--display_error_number, -pden)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.DIAG_WRAP.727113076" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.DIAG_WRAP.off" valueType="enumerated"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.INCLUDE_PATH.1428405401" name="Add dir to #include search path (--include_path, -I)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.compilerID.INCLUDE_PATH" valueType="includePath">\r
+ <listOptionValue builtIn="false" value=""${CG_TOOL_ROOT}/include""/>\r
+ </option>\r
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_8.1.compiler.inputType__C_SRCS.1214297227" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.compiler.inputType__C_SRCS"/>\r
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_8.1.compiler.inputType__CPP_SRCS.1020478926" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.compiler.inputType__CPP_SRCS"/>\r
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_8.1.compiler.inputType__ASM_SRCS.1026905756" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.compiler.inputType__ASM_SRCS"/>\r
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_8.1.compiler.inputType__ASM2_SRCS.1252770672" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.compiler.inputType__ASM2_SRCS"/>\r
+ </tool>\r
+ <tool id="com.ti.ccstudio.buildDefinitions.C6000_8.1.exe.linkerRelease.1315506571" name="C6000 Linker" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.exe.linkerRelease">\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.DEFINE.2020900851" name="Pre-define preprocessor macro _name_ to _value_ (--define)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.DEFINE" valueType="definedSymbols">\r
+ <listOptionValue builtIn="false" value="CORE1=1"/>\r
+ </option>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.STACK_SIZE.665124913" name="Set C system stack size (--stack_size, -stack)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.STACK_SIZE" value="0x800" valueType="string"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.HEAP_SIZE.222498625" name="Heap size for C/C++ dynamic memory allocation (--heap_size, -heap)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.HEAP_SIZE" value="0x800" valueType="string"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.OUTPUT_FILE.787997930" name="Specify output file name (--output_file, -o)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.OUTPUT_FILE" value=""${ProjName}.out"" valueType="string"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.MAP_FILE.446206670" name="Link information (map) listed into <file> (--map_file, -m)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.MAP_FILE" value=""${ProjName}.map"" valueType="string"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.XML_LINK_INFO.985578203" name="Detailed link information data-base into <file> (--xml_link_info, -xml_link_info)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.XML_LINK_INFO" value=""${ProjName}_linkInfo.xml"" valueType="string"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.DISPLAY_ERROR_NUMBER.1525016395" name="Emit diagnostic identifier numbers (--display_error_number)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.DIAG_WRAP.8141476" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.DIAG_WRAP.off" valueType="enumerated"/>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.SEARCH_PATH.478971596" name="Add <dir> to library search path (--search_path, -i)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.SEARCH_PATH" valueType="libPaths">\r
+ <listOptionValue builtIn="false" value=""${CG_TOOL_ROOT}/lib""/>\r
+ <listOptionValue builtIn="false" value=""${CG_TOOL_ROOT}/include""/>\r
+ </option>\r
+ <option id="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.LIBRARY.1924793564" name="Include library file or command file as input (--library, -l)" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.linkerID.LIBRARY" valueType="libs">\r
+ <listOptionValue builtIn="false" value=""libc.a""/>\r
+ </option>\r
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_8.1.exeLinker.inputType__CMD_SRCS.1728586432" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.exeLinker.inputType__CMD_SRCS"/>\r
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_8.1.exeLinker.inputType__CMD2_SRCS.1738019169" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.exeLinker.inputType__CMD2_SRCS"/>\r
+ <inputType id="com.ti.ccstudio.buildDefinitions.C6000_8.1.exeLinker.inputType__GEN_CMDS.2007739607" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.exeLinker.inputType__GEN_CMDS"/>\r
+ </tool>\r
+ <tool id="com.ti.ccstudio.buildDefinitions.C6000_8.1.hex.2018362994" name="C6000 Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.C6000_8.1.hex"/>\r
+ <tool id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.88080528" name="XDCtools" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool">\r
+ <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR.1531724974" name="Compiler tools directory (-c)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.CODEGEN_TOOL_DIR" value=""${CG_TOOL_ROOT}"" valueType="string"/>\r
+ <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET.878328812" name="Target (-t)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.TARGET" value="ti.targets.elf.C66" valueType="string"/>\r
+ <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM.1858021955" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM" value="ti.platforms.evmAM572X" valueType="string"/>\r
+ <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW.1914817284" name="Platform (-p)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.PLATFORM_RAW" value="ti.platforms.evmAM572X" valueType="string"/>\r
+ <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE.1265873581" name="Build-profile (-r)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.BUILD_PROFILE" value="release" valueType="string"/>\r
+ <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH.236166658" name="Package repositories (--xdcpath)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.XDC_PATH" valueType="stringList">\r
+ <listOptionValue builtIn="false" value="${BIOS_CG_ROOT}/packages"/>\r
+ <listOptionValue builtIn="false" value="${TARGET_CONTENT_BASE}"/>\r
+ </option>\r
+ <option id="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS.1881445727" name="Additional compiler options (--compileOptions)" superClass="com.ti.rtsc.buildDefinitions.XDC_3.16.tool.COMPILE_OPTIONS" value=""-g --optimize_with_debug"" valueType="string"/>\r
+ </tool>\r
+ </toolChain>\r
+ </folderInfo>\r
+ <sourceEntries>\r
+ <entry excluding="src" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>\r
+ </sourceEntries>\r
+ </configuration>\r
+ </storageModule>\r
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>\r
+ </cconfiguration>\r
+ </storageModule>\r
+ <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>\r
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">\r
+ <project id="typical_GPEVM_AM572X_SiRevA_C66XX.com.ti.ccstudio.buildDefinitions.C6000.ProjectType.1164371994" name="C6000" projectType="com.ti.ccstudio.buildDefinitions.C6000.ProjectType"/>\r
+ </storageModule>\r
+ <storageModule moduleId="scannerConfiguration"/>\r
+ <storageModule moduleId="org.eclipse.cdt.core.language.mapping">\r
+ <project-mappings>\r
+ <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.asmSource" language="com.ti.ccstudio.core.TIASMLanguage"/>\r
+ <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cHeader" language="com.ti.ccstudio.core.TIGCCLanguage"/>\r
+ <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cSource" language="com.ti.ccstudio.core.TIGCCLanguage"/>\r
+ <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxHeader" language="com.ti.ccstudio.core.TIGPPLanguage"/>\r
+ <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxSource" language="com.ti.ccstudio.core.TIGPPLanguage"/>\r
+ </project-mappings>\r
+ </storageModule>\r
+ <storageModule moduleId="refreshScope" versionNumber="2">\r
+ <configuration configurationName="Release">\r
+ <resource resourceType="PROJECT" workspacePath="/K2G_bf"/>\r
+ </configuration>\r
+ <configuration configurationName="Debug">\r
+ <resource resourceType="PROJECT" workspacePath="/K2G_bf"/>\r
+ </configuration>\r
+ </storageModule>\r
+</cproject>\r
diff --git a/file_demo_bios/k2g/.gitignore b/file_demo_bios/k2g/.gitignore
--- /dev/null
@@ -0,0 +1 @@
+/Debug/
diff --git a/file_demo_bios/k2g/.project b/file_demo_bios/k2g/.project
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<projectDescription>\r
+ <name>K2G_bf</name>\r
+ <comment></comment>\r
+ <projects>\r
+ </projects>\r
+ <buildSpec>\r
+ <buildCommand>\r
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>\r
+ <arguments>\r
+ </arguments>\r
+ </buildCommand>\r
+ <buildCommand>\r
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>\r
+ <triggers>full,incremental,</triggers>\r
+ <arguments>\r
+ </arguments>\r
+ </buildCommand>\r
+ </buildSpec>\r
+ <natures>\r
+ <nature>org.eclipse.rtsc.xdctools.buildDefinitions.XDC.xdcNature</nature>\r
+ <nature>com.ti.ccstudio.core.ccsNature</nature>\r
+ <nature>org.eclipse.cdt.core.cnature</nature>\r
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>\r
+ <nature>org.eclipse.cdt.core.ccnature</nature>\r
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>\r
+ </natures>\r
+</projectDescription>\r
diff --git a/file_demo_bios/k2g/.settings/org.eclipse.cdt.codan.core.prefs b/file_demo_bios/k2g/.settings/org.eclipse.cdt.codan.core.prefs
--- /dev/null
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1\r
+inEditor=false\r
+onBuild=false\r
diff --git a/file_demo_bios/k2g/.settings/org.eclipse.cdt.debug.core.prefs b/file_demo_bios/k2g/.settings/org.eclipse.cdt.debug.core.prefs
--- /dev/null
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1\r
+org.eclipse.cdt.debug.core.toggleBreakpointModel=com.ti.ccstudio.debug.CCSBreakpointMarker\r
diff --git a/file_demo_bios/k2g/.xdchelp b/file_demo_bios/k2g/.xdchelp
diff --git a/file_demo_bios/k2g/K2G_bf.ccxml b/file_demo_bios/k2g/K2G_bf.ccxml
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<configurations XML_version="1.2" id="configurations_0">\r
+ <configuration XML_version="1.2" id="Texas Instruments XDS2xx USB Onboard Debug Probe_0">\r
+ <instance XML_version="1.2" desc="Texas Instruments XDS2xx USB Onboard Debug Probe_0" href="connections/TIXDS2XXUSB_onboard_Connection.xml" id="Texas Instruments XDS2xx USB Onboard Debug Probe_0" xml="TIXDS2XXUSB_onboard_Connection.xml" xmlpath="connections"/>\r
+ <connection XML_version="1.2" id="Texas Instruments XDS2xx USB Onboard Debug Probe_0">\r
+ <instance XML_version="1.2" href="drivers/tixds560icepick_d.xml" id="drivers" xml="tixds560icepick_d.xml" xmlpath="drivers"/>\r
+ <instance XML_version="1.2" href="drivers/tixds560c66xx.xml" id="drivers" xml="tixds560c66xx.xml" xmlpath="drivers"/>\r
+ <instance XML_version="1.2" href="drivers/tixds560cs_dap.xml" id="drivers" xml="tixds560cs_dap.xml" xmlpath="drivers"/>\r
+ <instance XML_version="1.2" href="drivers/tixds560cortexA15.xml" id="drivers" xml="tixds560cortexA15.xml" xmlpath="drivers"/>\r
+ <instance XML_version="1.2" href="drivers/tixds560csstm.xml" id="drivers" xml="tixds560csstm.xml" xmlpath="drivers"/>\r
+ <instance XML_version="1.2" href="drivers/tixds560etbcs.xml" id="drivers" xml="tixds560etbcs.xml" xmlpath="drivers"/>\r
+ <instance XML_version="1.2" href="drivers/tixds560pru.xml" id="drivers" xml="tixds560pru.xml" xmlpath="drivers"/>\r
+ <platform XML_version="1.2" id="platform_0">\r
+ <instance XML_version="1.2" desc="K2GEVM_0" href="boards/k2gevm.xml" id="K2GEVM_0" xml="k2gevm.xml" xmlpath="boards"/>\r
+ <board XML_version="1.2" description="66AK2G02 Evaluation Module" id="K2GEVM_0">\r
+ <device HW_revision="1.0" XML_version="1.2" description="66AK2G02 - C66x DSP and Cortex A15 Embedded Processor" id="66AK2G02_0" partnum="66AK2G02">\r
+ <router HW_revision="1.0" XML_version="1.2" description="ICEPick_D Router" id="IcePick_D_0" isa="ICEPICK_D">\r
+ <subpath id="c66xx_0">\r
+ <cpu HW_revision="1.0" XML_version="1.2" description="C66xx CGEM+FP CPU" id="C66xx" isa="TMS320C66XX">\r
+ <property Type="filepathfield" Value=".\evmk2g.gel" id="GEL File"/>\r
+ </cpu>\r
+ </subpath>\r
+ </router>\r
+ </device>\r
+ </board>\r
+ </platform>\r
+ </connection>\r
+ </configuration>\r
+</configurations>\r
diff --git a/file_demo_bios/k2g/app.cfg b/file_demo_bios/k2g/app.cfg
--- /dev/null
@@ -0,0 +1,137 @@
+var Defaults = xdc.useModule('xdc.runtime.Defaults');
+var Diags = xdc.useModule('xdc.runtime.Diags');
+var Error = xdc.useModule('xdc.runtime.Error');
+var Log = xdc.useModule('xdc.runtime.Log');
+var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
+var Main = xdc.useModule('xdc.runtime.Main');
+var Memory = xdc.useModule('xdc.runtime.Memory')
+var SysMin = xdc.useModule('xdc.runtime.SysMin');
+var System = xdc.useModule('xdc.runtime.System');
+var Text = xdc.useModule('xdc.runtime.Text');
+
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
+var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+var Swi = xdc.useModule('ti.sysbios.knl.Swi');
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
+var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
+var LoggingSetup = xdc.useModule('ti.uia.sysbios.LoggingSetup');
+///var Timer = xdc.useModule('ti.sysbios.hal.Timer');
+var Load = xdc.useModule('ti.sysbios.utils.Load');
+
+/*
+ * Uncomment this line to globally disable Asserts.
+ * All modules inherit the default from the 'Defaults' module. You
+ * can override these defaults on a per-module basis using Module.common$.
+ * Disabling Asserts will save code space and improve runtime performance.
+Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
+ */
+
+/*
+ * Uncomment this line to keep module names from being loaded on the target.
+ * The module name strings are placed in the .const section. Setting this
+ * parameter to false will save space in the .const section. Error and
+ * Assert messages will contain an "unknown module" prefix instead
+ * of the actual module name.
+Defaults.common$.namedModule = false;
+ */
+
+/*
+ * Minimize exit handler array in System. The System module includes
+ * an array of functions that are registered with System_atexit() to be
+ * called by System_exit().
+ */
+System.maxAtexitHandlers = 4;
+
+/*
+ * Uncomment this line to disable the Error print function.
+ * We lose error information when this is disabled since the errors are
+ * not printed. Disabling the raiseHook will save some code space if
+ * your app is not using System_printf() since the Error_print() function
+ * calls System_printf().
+Error.raiseHook = null;
+ */
+
+/*
+ * Uncomment this line to keep Error, Assert, and Log strings from being
+ * loaded on the target. These strings are placed in the .const section.
+ * Setting this parameter to false will save space in the .const section.
+ * Error, Assert and Log message will print raw ids and args instead of
+ * a formatted message.
+Text.isLoaded = false;
+ */
+
+/*
+ * Uncomment this line to disable the output of characters by SysMin
+ * when the program exits. SysMin writes characters to a circular buffer.
+ * This buffer can be viewed using the SysMin Output view in ROV.
+SysMin.flushAtExit = false;
+ */
+
+/*
+ * The BIOS module will create the default heap for the system.
+ * Specify the size of this default heap.
+ */
+BIOS.heapSize = 0x1000;
+
+/*
+ * Build a custom SYS/BIOS library from sources.
+ */
+BIOS.libType = BIOS.LibType_Custom;
+
+/* System stack size (used by ISRs and Swis) */
+Program.stack = 0x2000;
+
+/* Circular buffer size for System_printf() */
+SysMin.bufSize = 0x200;
+
+/*
+ * Create and install logger for the whole system
+ */
+var loggerBufParams = new LoggerBuf.Params();
+loggerBufParams.numEntries = 16;
+var logger0 = LoggerBuf.create(loggerBufParams);
+Defaults.common$.logger = logger0;
+Main.common$.diags_INFO = Diags.ALWAYS_ON;
+
+System.SupportProxy = SysMin;
+
+Program.memoryExclude = false;
+var clock0Params = new Clock.Params();
+clock0Params.instance.name = "clkhandle";
+clock0Params.period = 10;
+clock0Params.startFlag = true;
+Program.global.clkhandle = Clock.create("&clkDataIn", 10, clock0Params);
+LoggingSetup.sysbiosSwiLogging = true;
+LoggingSetup.loadLoggerSize = 8192;
+LoggingSetup.sysbiosLoggerSize = 16384;
+LoggingSetup.mainLoggerSize = 16384;
+var swi0Params = new Swi.Params();
+swi0Params.instance.name = "swidatainhandle";
+swi0Params.priority = 8;
+Program.global.swidatainhandle = Swi.create("&swiDataIn", swi0Params);
+var task0Params = new Task.Params();
+task0Params.instance.name = "tasktxhandle";
+task0Params.priority = 5;
+Program.global.tasktxhandle = Task.create("&taskTx", task0Params);
+var semaphore0Params = new Semaphore.Params();
+semaphore0Params.instance.name = "semTxWakeUp";
+Program.global.semTxWakeUp = Semaphore.create(0, semaphore0Params);
+LoggingSetup.sysbiosSemaphoreLogging = false;
+LoggingSetup.loggerType = LoggingSetup.LoggerType_STOPMODE;
+LoggingSetup.loadTaskLogging = false;
+LoggingSetup.enableTaskProfiler = false;
+LoggingSetup.sysbiosHwiLogging = true;
+/* Set CPU frequency to 600 MHz */
+BIOS.cpuFreq.lo = 600000000;
+BIOS.cpuFreq.hi = 0;
+/* Set Sysclock period (usec.) */
+Clock.tickPeriod = 1000;
+///Timer.intFreq.lo = 20000000;
+///Timer.intFreqs[4].lo = 20000000;
+///Timer.intFreqs[4].hi = 0;
+LoggingSetup.countingAndGraphingLogging = true;
+LoggingSetup.memorySectionName = "L2SRAM";
+Load.hwiEnabled = true;
+Load.swiEnabled = true;
+Load.taskEnabled = true;
diff --git a/file_demo_bios/k2g/bflinker.cmd b/file_demo_bios/k2g/bflinker.cmd
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ * bflinker.cmd: Linker command file for Beamformer
+ */
+
+SECTIONS
+{
+ .bferam: load >> L2SRAM
+ .bfiram: load >> L2SRAM
+ .uiaLoggerBuffers load >> EXT_RAM
+ filOutBuf0 >> EXT_RAM
+ filBuf0 >> EXT_RAM
+ filBuf1 >> EXT_RAM
+ filBuf2 >> EXT_RAM
+ filBuf3 >> EXT_RAM
+ filBuf4 >> EXT_RAM
+ filBuf5 >> EXT_RAM
+ filBuf6 >> EXT_RAM
+ filBuf7 >> EXT_RAM
+ .far >> EXT_RAM
+}
+/* nothing past this point */
+
diff --git a/file_demo_bios/k2g/components/clk.c b/file_demo_bios/k2g/components/clk.c
--- /dev/null
@@ -0,0 +1,394 @@
+/*=================================================================\r
+ * clk.c: Clock functions, SWI's, Tx Task\r
+ *=================================================================*/\r
+\r
+#include <strings.h>\r
+\r
+/* The infamous xdc/std.h must come before any header file which uses XDC symbols */\r
+#include <xdc/std.h> /* mandatory - have to include first, for BIOS types */\r
+#include <ti/mas/types/types.h>\r
+#include <ti/mas/aer/bf.h>\r
+//#include <ti/mas/aer/mss.h>\r
+#include "mss/mss.h" /* local version used */\r
+#include <ti/mas/vpe/asnr.h>\r
+#include <ti/mas/vau/vau.h>\r
+\r
+/*----------------------------------------\r
+ * BIOS header files\r
+ *----------------------------------------*/\r
+#include <ti/sysbios/BIOS.h> /* mandatory - if you call APIs like BIOS_start() */\r
+#include <xdc/cfg/global.h> /* header file for statically defined objects/handles */\r
+#include <xdc/runtime/System.h> /* for System_printf, and similar */\r
+#include <xdc/runtime/Timestamp.h> /* for benchmarking/profiling */\r
+\r
+#include <xdc/runtime/Log.h> /* for tracing */\r
+#include <xdc/runtime/Diags.h>\r
+#include <ti/uia/events/UIAEvt.h> /* and more tracing */\r
+\r
+#include <ti/sysbios/knl/Semaphore.h> /* this looks obvious */\r
+\r
+#include "fil.h" /* FILE I/O implementation */\r
+#include "sys.h" /* System API and structures */\r
+#include "sysbfflt.h" /* System support for BF filters */\r
+\r
+#define Timestamp_get Timestamp_get32 /* use 32-bit time stamps */\r
+\r
+#define MIN(a,b) (((a)>(b))?(b):(a)) /* Min/Max macros */\r
+#define MAX(a,b) (((a)<(b))?(b):(a))\r
+#define loop while(1) /* endless loop for the task */\r
+\r
+/*=============================\r
+ * Functions\r
+ *=============================*/\r
+\r
+/*=================================================================\r
+ * void clkDataIn(void)\r
+ *\r
+ * This is a clock function that would start SWI to read input data.\r
+ * In this case from a file/memory. It is statically configured in BIOS.\r
+ *=================================================================*/\r
+\r
+void clkDataIn(void)\r
+{\r
+ Swi_post(swidatainhandle);\r
+} /* clkDataIn */\r
+\r
+/*===========================================\r
+ * SWI for getting data in from file/memory or A/D\r
+ *\r
+ * Uses filRead() API to read frame of samples from "memory file".\r
+ * Swaps the read/write pointers so that the system can read new data.\r
+ * It wakes up the txTask to do that. It is statically configured in BIOS.\r
+ *\r
+ *===========================================*/\r
+\r
+/* A few debug stats */\r
+tuint swiDataIn_errcnt = 0uL; /* count errors reading data */\r
+tuint swiDataIn_overflow = 0uL; /* count how many times r/w pointers were the same */\r
+tint swiDataIn_last_error; /* last error code */\r
+\r
+void swiDataIn(void)\r
+{\r
+ tint err;\r
+ void *fid, *in_w, *in_r;\r
+\r
+ in_w = sysContext.in_w; /* Fetch the read and write pointers for input buffer */\r
+ in_r = sysContext.in_r;\r
+ if (in_r == in_w) { /* this should never happen */\r
+ swiDataIn_overflow++;\r
+ return;\r
+ }\r
+\r
+ /* Assume the write pointer is valid and use it to read the frame in */\r
+ fid = filGetHandle();\r
+ err = filRead(fid, SYS_FRAME_LENGTH, in_w, SYS_FRAME_LENGTH);\r
+ if (err != SYS_ERR_SUCCESS) {\r
+ swiDataIn_errcnt++;\r
+ swiDataIn_last_error = err;\r
+ return;\r
+ }\r
+ else { /* Swap the r/w pointers */\r
+ sysContext.in_r = in_w; /* we can do this because this SWI is at higher priority */\r
+ sysContext.in_w = in_r; /* than the Tx Task and we know that r/w are different */\r
+ /* We assume that the Tx Task already finished using the read pointer */\r
+ /* So, next time we come we would write into the "other" buffer. */\r
+ }\r
+\r
+ /* Here we need to post a semaphore to wake up the Tx task */\r
+ Semaphore_post(semTxWakeUp);\r
+\r
+} /* swiDataIn */\r
+\r
+/*===========================================\r
+ * Tx Task\r
+ *\r
+ * It wakes up on semaphore (semTxWakeUp).\r
+ * It performs the following tasks:\r
+ * - give next frame to the BF's\r
+ * - Run ASNR at the output of each BF to reduce noise further\r
+ * - Provide all virtual mic outputs to the MSS for selection\r
+ * - Pass output of MSS through VAU for speech activity detection\r
+ * - Write the output signal to the output buffer/file or D/A\r
+ * - Profile execution of all major modules\r
+ * - Trace beam selection and VAU activity\r
+ *\r
+ *===========================================*/\r
+\r
+/* Output frame for MSS, input for VAU */\r
+#pragma DATA_ALIGN(txOutFrame,8)\r
+linSample txOutFrame[SYS_FRAME_LENGTH];\r
+\r
+typedef struct txBfDebug_stc {\r
+ tulong frmcnt; /* normal frames */\r
+ tulong silcnt; /* silence frames */\r
+ tuint invsrc; /* no mic active, invalid output */\r
+ tuint invopt; /* >1 mic active, invalid output */\r
+} txBfDebug_t;\r
+\r
+typedef struct txTaskDebug_stc {\r
+ tuint overrun; /* counts how many times we ran out of MIPS */\r
+ txBfDebug_t bf[SYS_VMICS_MAX]; /* beamformer statistics */\r
+} txTaskDebug_t;\r
+\r
+txTaskDebug_t txTaskDebug; /* Tx task debug stats */\r
+\r
+/* Profiling/benchmarking information for the Tx task */\r
+typedef struct txTaskProfileData_stc {\r
+ tulong min; /* Minimum number of cycles */\r
+ tulong max; /* Maximum number of cycles */\r
+ tulong n; /* Number of measurements */\r
+ float total; /* Total number of cycles */\r
+} txTaskProfileData_t;\r
+\r
+typedef struct txTaskProfile_stc {\r
+ txTaskProfileData_t bf; /* Beamformer profile */\r
+ txTaskProfileData_t asnr; /* ASNR profile */\r
+ txTaskProfileData_t mss; /* MSS profile */\r
+ txTaskProfileData_t vau; /* VAU profile */\r
+} txTaskProfile_t;\r
+volatile txTaskProfile_t txTaskProfile = {\r
+ {~(0uL), 0, 0, 0.0f},\r
+ {~(0uL), 0, 0, 0.0f},\r
+ {~(0uL), 0, 0, 0.0f},\r
+ {~(0uL), 0, 0, 0.0f}\r
+};\r
+\r
+/* To be used for debug trace */\r
+mssSrc_t mssDbgCurSrc = {\r
+ -1, -1 /* Current source group/index */\r
+};\r
+mssSrc_t mssDbgNewSrc = {\r
+ -1, -1 /* New source group/index */\r
+};\r
+\r
+/* Tx Task main routine */\r
+void taskTx(void)\r
+{\r
+ Int semcnt; /* count from a counting semaphore */\r
+ int k; /* loop counter */\r
+ tint nmics, nvmics, err, angle, alert, oldalert = -1;\r
+\r
+ volatile tulong t1, t2; /* for profiling */\r
+ tulong delta;\r
+\r
+ void *inst_p, *fid;\r
+ linSample *in_r; /* pointer to current microphone input buffer */\r
+ linSample *frame_p; /* pointer to signal frame */\r
+ linSample *outframe_p; /* Output frame pointer for VAU */\r
+ linSample *mics_in[SYS_MICS_MAX]; /* pointers to microphone inputs */\r
+\r
+ mssDebugStat_t mssDbg;\r
+\r
+ ISPHENC1_FrameType vauOldFrameType; /* previous speech/noise */\r
+ ISPHENC1_FrameType vauFrameType; /* use for every frame */\r
+\r
+ vauOldFrameType = (ISPHENC1_FrameType)255; /* Start with invalid, update only on changes */\r
+\r
+ memset(&txTaskDebug,0,sizeof(txTaskDebug)); /* zero debug stats */\r
+\r
+ Log_print0(Diags_USER1,"taskTxStart"); /* Timestamp the beginning of the task */\r
+\r
+ fid = filGetHandle();\r
+ loop {\r
+\r
+ /*-------------------------------------------------------------------------------------*/\r
+ Semaphore_pend(semTxWakeUp, BIOS_WAIT_FOREVER); /* wait for swiDataIn to wake you up */\r
+ /*-------------------------------------------------------------------------------------*/\r
+\r
+ /* In a real system, it could make sense to wait with time-out and post error condition\r
+ * if the time-out expires. For example, if the frame duration is 10ms, we could wait\r
+ * for 15ms or longer. */\r
+\r
+ semcnt = Semaphore_getCount(semTxWakeUp);\r
+ if (semcnt > 0) {\r
+ txTaskDebug.overrun++; /* indicate we ran out of MIPS since we were asked to be waken up\r
+ * multiple times before getting here. There were more events pending.\r
+ * We are dropping a frame of input data here. */\r
+ continue; /* Skip this pass through the loop to catch up to the last pending event */\r
+ }\r
+ nmics = sysContext.nmics; /* fetch number of mics */\r
+ in_r = (linSample *)sysContext.in_r; /* this was written by swiDataIn */\r
+ for (k = 0; k < nmics; k++) {\r
+ mics_in[k] = &in_r[k*SYS_FRAME_LENGTH]; /* find the frame start for each microphone */\r
+ }\r
+ /* consume samples pointed to by read pointer in_r as provided in misc_in[] */\r
+\r
+ /* Here comes a lot of work */\r
+ /* We start with beamformers */\r
+\r
+ nvmics = sysContext.nvmics;\r
+ t1 = Timestamp_get();\r
+ for (k = 0; k < nvmics; k++) {\r
+ inst_p = sysContext.bfInst_p[k]; /* fetch the bf instance pointer */\r
+ frame_p = sysContext.vmicfrm[k]; /* point to the output frame buffer */\r
+\r
+ err = bfProcess(inst_p, (void*)&mics_in[0], (void*)frame_p);\r
+\r
+ if (err == bf_NOERR) {\r
+ txTaskDebug.bf[k].frmcnt++; /* Record some debug info */\r
+ }\r
+ else if (err == bf_ERR_NOTOPENED) {\r
+ SYS_CHECK_ERROR(SYS_ERR_BFERROR);\r
+ }\r
+ else if (err == bf_ERR_DISABLED) {\r
+ txTaskDebug.bf[k].silcnt++;\r
+ }\r
+ else if (err == bf_ERR_INVALIDSRC) {\r
+ txTaskDebug.bf[k].invsrc = TRUE;\r
+ }\r
+ else if (err == bf_ERR_INVALIDOPT) {\r
+ txTaskDebug.bf[k].invopt = TRUE;\r
+ }\r
+ else {\r
+ SYS_CHECK_ERROR(SYS_ERR_BFERROR);\r
+ } /* if */\r
+ } /* for */\r
+ t2 = Timestamp_get();\r
+ delta = t2-t1;\r
+ txTaskProfile.bf.min = MIN(txTaskProfile.bf.min,delta);\r
+ txTaskProfile.bf.max = MAX(txTaskProfile.bf.max,delta);\r
+ txTaskProfile.bf.n++;\r
+ txTaskProfile.bf.total += (float)delta;\r
+\r
+ /* At this point we have consumed all input samples. Currently we did not implement\r
+ * any protection to prevent the swiDataIn from stepping over while we were doing this.\r
+ * We could let this task to handle the read pointer and SWI to handle write pointer which \r
+ * could be used to detect if such overrun would happen. */\r
+\r
+ /* Done with the beamformers */\r
+ /* Start ASNR's */\r
+\r
+ t1 = Timestamp_get();\r
+ for (k = 0; k < nvmics; k++) {\r
+ inst_p = sysContext.asnrInst_p[k]; /* fetch the bf instance pointer */\r
+ frame_p = sysContext.vmicfrm[k]; /* point to the output frame buffer */\r
+\r
+ err = asnrProcess(inst_p, (void*)frame_p, (void*)frame_p);\r
+\r
+ if (err != asnr_NOERR) {\r
+ SYS_CHECK_ERROR(SYS_ERR_ASNRERROR);\r
+ } /* if */\r
+ } /* for */\r
+ t2 = Timestamp_get();\r
+ delta = t2-t1;\r
+ txTaskProfile.asnr.min = MIN(txTaskProfile.asnr.min,delta);\r
+ txTaskProfile.asnr.max = MAX(txTaskProfile.asnr.max,delta);\r
+ txTaskProfile.asnr.n++;\r
+ txTaskProfile.asnr.total += (float)delta;\r
+\r
+ /* Done with the ASNR's */\r
+ /* Run MSS */\r
+\r
+ t1 = Timestamp_get();\r
+ inst_p = sysContext.mssInst_p; /* fetch the MSS instance pointer */\r
+ frame_p = txOutFrame; /* point to the output frame buffer */\r
+\r
+ err = mssProcess(inst_p, (void*)frame_p, /* instance and output frame pointers */\r
+ (void*)frame_p, /* WORKAROUND (not used, but no NULL) */\r
+ (void**)sysContext.vmicfrm, /* Virtual microphones (beams) */\r
+ NULL, /* No remote mics */\r
+ NULL, /* No clean mics */\r
+ (void**)mics_in, /* Raw microphone array inputs */\r
+ NULL); /* Beam not supported (see fixed inputs) */\r
+\r
+ if (err != mss_NOERR) {\r
+ SYS_CHECK_ERROR(SYS_ERR_MSSERROR);\r
+ } /* if */\r
+ t2 = Timestamp_get();\r
+ delta = t2-t1;\r
+ txTaskProfile.mss.min = MIN(txTaskProfile.mss.min,delta);\r
+ txTaskProfile.mss.max = MAX(txTaskProfile.mss.max,delta);\r
+ txTaskProfile.mss.n++;\r
+ txTaskProfile.mss.total += (float)delta;\r
+\r
+ /* Trace source selection */\r
+ /* Write Args:\r
+ * arg2: (value) Angle in degrees\r
+ * arg3: (aux1) 0 - current source, 1 - new source\r
+ * arg4: (aux2) source index\r
+ */\r
+ err = mssDebugStat(inst_p, &mssDbg);\r
+ if (err !=mss_NOERR) {\r
+ SYS_CHECK_ERROR(SYS_ERR_MSSDEBUG);\r
+ }\r
+ /* mssDbg.cur_src.group/.index has the current source */\r
+ /* mssDbg.new_src.group/.index has "proposed" source */\r
+ if (mssDbg.cur_src.group != mssDbgCurSrc.group ||\r
+ mssDbg.cur_src.index != mssDbgCurSrc.index)\r
+ {\r
+ mssDbgCurSrc = mssDbg.cur_src;\r
+ angle = sysBfFilterAngles[sysBfVMicAngles[mssDbgCurSrc.index]];\r
+ Log_write6(UIAEvt_intWithKey, angle, 0, mssDbgCurSrc.index, (IArg)"MSS-C: %d, G:%d", 0, mssDbgCurSrc.group);\r
+ }\r
+ if (mssDbg.new_src.group != mssDbgNewSrc.group ||\r
+ mssDbg.new_src.index != mssDbgNewSrc.index)\r
+ {\r
+ mssDbgNewSrc = mssDbg.new_src;\r
+ angle = sysBfFilterAngles[sysBfVMicAngles[mssDbgNewSrc.index]];\r
+ Log_write6(UIAEvt_intWithKey, angle, 1, mssDbgNewSrc.index, (IArg)"MSS-N: %d, G:%d", 1, mssDbgNewSrc.group);\r
+ }\r
+\r
+ /* Done with MSS */\r
+ /* Run VAU */\r
+\r
+ t1 = Timestamp_get();\r
+ inst_p = sysContext.vauInst_p; /* fetch the VAU instance pointer */\r
+ frame_p = txOutFrame; /* point to the Tx output frame buffer and use it as input */\r
+ alert = (tint)vauProcess(inst_p, frame_p, /* instance and input frame pointers */\r
+ &outframe_p, /* pointer to output buffer pointer */\r
+ &vauFrameType); /* Indicating speech/noise */\r
+ /* ISPHENC1_FTYPE_SPEECH or ISPHENC1_FTYPE_NODATA */\r
+ t2 = Timestamp_get();\r
+ delta = t2-t1;\r
+ txTaskProfile.vau.min = MIN(txTaskProfile.vau.min,delta);\r
+ txTaskProfile.vau.max = MAX(txTaskProfile.vau.max,delta);\r
+ txTaskProfile.vau.n++;\r
+ txTaskProfile.vau.total += (float)delta;\r
+\r
+ if (vauFrameType != vauOldFrameType) {\r
+ vauOldFrameType = vauFrameType; /* Record new frame type */\r
+\r
+ /* Trace source selection */\r
+ /* Write Args:\r
+ * arg2: (value) 2-(VAU Frame Type) So, silence will be 0, speech will be 2\r
+ * arg3: (aux1) 2 - indicate VAU trace\r
+ * arg4: (aux2) 0\r
+ */\r
+\r
+ Log_write4(UIAEvt_intWithKey, 15*(ISPHENC1_FTYPE_NODATA-vauFrameType), 2, 0, (IArg)"VAU-FT");\r
+ }\r
+ if (alert != oldalert) {\r
+ oldalert = alert; /* Record new alert state */\r
+\r
+ /* Trace source selection */\r
+ /* Write Args:\r
+ * arg2: (value) Alert status\r
+ * arg3: (aux1) 3 - indicate VAU alert trace\r
+ * arg4: (aux2) 0\r
+ */\r
+\r
+ Log_write4(UIAEvt_intWithKey, 20*alert, 3, 0, (IArg)"VAU-ALERT");\r
+ }\r
+\r
+ /*---------------------------------*/\r
+ /* Save samples to the output file */\r
+ /*---------------------------------*/\r
+\r
+ err = filWrite(fid, SYS_FRAME_LENGTH, outframe_p);\r
+ if (err != SYS_ERR_SUCCESS) {\r
+ if (err == SYS_ERR_EOF) {\r
+ if (!sysContext.eof) {\r
+ sysContext.eof = TRUE;\r
+ System_printf("taskTx: EOF Reached.\n");\r
+ System_flush();\r
+ }\r
+ }\r
+ else {\r
+ SYS_CHECK_ERROR(err);\r
+ }\r
+ } /* if */\r
+ } /* loop */\r
+} /* taskTx */\r
+\r
+/* nothing past this point */\r
+\r
diff --git a/file_demo_bios/k2g/components/fil.c b/file_demo_bios/k2g/components/fil.c
--- /dev/null
@@ -0,0 +1,373 @@
+/*=================================================================\r
+ * fil.c: File related functions.\r
+ *=================================================================*/\r
+\r
+#define HIGH_LEVEL 1 /* Use Low level file I/O */\r
+\r
+#if HIGH_LEVEL\r
+# include <stdio.h> /* needs high level file I/O */\r
+#else\r
+# include <file.h> /* needs low level file I/O */\r
+#endif\r
+\r
+/* The infamous xdc/std.h must come before any header file which uses XDC symbols */\r
+#include <xdc/std.h>\r
+#include <ti/mas/types/types.h>\r
+\r
+#include "sys.h"\r
+#include "fil.h"\r
+\r
+/* Globals */\r
+\r
+#pragma DATA_ALIGN(filOutBuf0,8)\r
+tuint filOutBuf0[FIL_OUTLEN_MAX]; /* Output buf/file #0 samples */\r
+\r
+#pragma DATA_ALIGN(filBuf0,8)\r
+tuint filBuf0[FIL_LENGTH_MAX]; /* File #0 samples */\r
+\r
+#pragma DATA_ALIGN(filBuf1,8)\r
+tuint filBuf1[FIL_LENGTH_MAX]; /* File #1 samples */\r
+\r
+#pragma DATA_ALIGN(filBuf2,8)\r
+tuint filBuf2[FIL_LENGTH_MAX]; /* File #2 samples */\r
+\r
+#pragma DATA_ALIGN(filBuf3,8)\r
+tuint filBuf3[FIL_LENGTH_MAX]; /* File #3 samples */\r
+\r
+#pragma DATA_ALIGN(filBuf4,8)\r
+tuint filBuf4[FIL_LENGTH_MAX]; /* File #4 samples */\r
+\r
+#pragma DATA_ALIGN(filBuf5,8)\r
+tuint filBuf5[FIL_LENGTH_MAX]; /* File #5 samples */\r
+\r
+#pragma DATA_ALIGN(filBuf6,8)\r
+tuint filBuf6[FIL_LENGTH_MAX]; /* File #6 samples */\r
+\r
+#pragma DATA_ALIGN(filBuf7,8)\r
+tuint filBuf7[FIL_LENGTH_MAX]; /* File #7 samples */\r
+\r
+filDescriptor_t filDescriptor; /* Global File Descriptor structure */\r
+\r
+/*=============================\r
+ * Functions\r
+ *=============================*/\r
+\r
+/*=================================================================\r
+ * void *filCreate( Create mic input file(s) descriptor\r
+ * void **fid, - File ID pointer\r
+ * filConfig_t cfg); - File configuration (see fil.h)\r
+ *=================================================================*/\r
+\r
+int filCreate(void **fid, filConfig_t *cfg)\r
+{\r
+ tint nfiles;\r
+\r
+ /* Check the input arguments consistency */\r
+ if (fid == (void*)NULL ||\r
+ cfg->nfiles < 1 || cfg->nfiles > FIL_MAX ||\r
+ cfg->length < 1 || cfg->length > FIL_LENGTH_MAX ||\r
+ cfg->outlen < 1 || cfg->length > FIL_OUTLEN_MAX ||\r
+ (cfg->big != TRUE && cfg->big != FALSE) ||\r
+ (cfg->wrap != TRUE && cfg->wrap != FALSE)) {\r
+ return(SYS_ERR_BADCONFIG);\r
+ }\r
+ filDescriptor.r_idx = 0L; /* reset to start of "file" */\r
+ filDescriptor.w_idx = 0L; /* reset to start of output "file" */\r
+ filDescriptor.length = cfg->length; /* record to total file length in samples */\r
+ nfiles = filDescriptor.nfiles = cfg->nfiles; /* how many files do we have */\r
+ filDescriptor.big = cfg->big; /* is it big endian byte order */\r
+ filDescriptor.wrap = cfg->wrap; /* should we wrap around at EOF? */\r
+ filDescriptor.outlen = cfg->outlen; /* output buf/file length in samples */\r
+\r
+ /* Initialize base addresses for file buffers */\r
+\r
+ filDescriptor.filbase[0] = (void*)&filBuf0[0]; /* we must use at least one file */\r
+ filDescriptor.filbase[1] = (void*)(nfiles > 1 ? &filBuf1[0]:NULL);\r
+ filDescriptor.filbase[2] = (void*)(nfiles > 2 ? &filBuf2[0]:NULL);\r
+ filDescriptor.filbase[3] = (void*)(nfiles > 3 ? &filBuf3[0]:NULL);\r
+ filDescriptor.filbase[4] = (void*)(nfiles > 4 ? &filBuf4[0]:NULL);\r
+ filDescriptor.filbase[5] = (void*)(nfiles > 5 ? &filBuf5[0]:NULL);\r
+ filDescriptor.filbase[6] = (void*)(nfiles > 6 ? &filBuf6[0]:NULL);\r
+ filDescriptor.filbase[7] = (void*)(nfiles > 7 ? &filBuf7[0]:NULL);\r
+\r
+# if FIL_MAX > 8\r
+# error need to implement support for more than 8 files\r
+# endif\r
+\r
+ filDescriptor.outbuf = &filOutBuf0[0]; /* point to output buffer */\r
+\r
+ *fid = (void*)&filDescriptor; /* Return a pointer to file descriptor */\r
+\r
+ return(SYS_ERR_SUCCESS);\r
+} /* filCreate */\r
+\r
+/*=================================================================\r
+ * void *filGetHandle(void) - get input file(s) descriptor\r
+ *=================================================================*/\r
+\r
+void *filGetHandle(void)\r
+{\r
+ return((void*)&filDescriptor);\r
+} /* filGetHandle */\r
+\r
+/*=================================================================\r
+ * int filLoad( - Load input file(s) to memory\r
+ * char *filpath, - file path\r
+ * tlong n, - number of samples to read\r
+ * int bufnum) - buffer number to receive data\r
+ * \r
+ * Return: Number of samples read.\r
+ *=================================================================*/\r
+\r
+tlong filLoad(char *filpath, tlong n, int bufnum)\r
+{\r
+ int nread;\r
+ tuint *buf;\r
+# if HIGH_LEVEL\r
+ FILE *fid;\r
+# else\r
+ int fid;\r
+# endif\r
+\r
+ if (bufnum > FIL_MAX) { /* Make sure we have appropriate buffer to store data */\r
+ return(SYS_ERR_FMAXBUF);\r
+ }\r
+ nread = 0;\r
+# if HIGH_LEVEL\r
+ fid = fopen(filpath, "rb"); /* Open file */\r
+ if (fid == NULL) {\r
+ return(SYS_ERR_FOPEN);\r
+ }\r
+# else\r
+ fid = open(filpath, O_RDONLY|O_BINARY,0);\r
+ if (fid < 0) {\r
+ return(SYS_ERR_FOPEN);\r
+ }\r
+# endif\r
+\r
+ buf = filDescriptor.filbase[bufnum]; /* Fetch the buffer address to receive data */\r
+ if (buf == NULL) {\r
+# if HIGH_LEVEL\r
+ fclose(fid);\r
+# else\r
+ close(fid);\r
+# endif\r
+ return(SYS_ERR_FLOAD);\r
+ }\r
+# if HIGH_LEVEL\r
+ nread = fread(buf, sizeof(linSample), n, fid);\r
+# else\r
+ {\r
+ tlong nsamp, nleft_w, nread_w;\r
+\r
+ nleft_w = n*sizeof(linSample);\r
+ nread_w = 0;\r
+ while (nleft_w > 0) {\r
+ nread_w = read(fid,(char*)buf,nleft_w);\r
+ if (nread_w > 0) {\r
+ nleft_w -= nread_w; /* reduce #-words left */\r
+ nsamp = nread_w/sizeof(linSample); /* this many samples fetched */\r
+ buf = &buf[nsamp]; /* move the buffer pointer */\r
+ nread += nsamp; /* count how many read */\r
+ }\r
+ else if (nread_w == 0) {\r
+ break;\r
+ }\r
+ else { /* nread_w < 0 indicating error */\r
+ nread = nread_w;\r
+ break;\r
+ }\r
+ }\r
+ }\r
+# endif\r
+\r
+# if HIGH_LEVEL\r
+ fclose(fid);\r
+# else\r
+ close(fid);\r
+# endif\r
+\r
+ if (nread < 0) {\r
+ nread = SYS_ERR_FREAD;\r
+ }\r
+\r
+ return(nread);\r
+} /* filLoad */\r
+\r
+/*=================================================================\r
+ * int filRead( - Read a frame from input files in memory\r
+ * void *fid, - a pointer to file descriptor\r
+ * int n, - number of samples to read\r
+ * linSample inbuf[], - input buffer to receive samples\r
+ * int buflen) - input buffer capacity in number of samples\r
+ *=================================================================*/\r
+\r
+int filRead(void *fid, int n, linSample inbuf[], int buflen)\r
+{\r
+ int k, ch, r_idx, r_idx_new, nfiles, length, ncopy, overflow;\r
+ tuint *in_p, *in_base_p, value;\r
+ linSample *out_p;\r
+ tbool wrap, big, write_zeros;\r
+\r
+ filDescriptor_t *fd = (filDescriptor_t*)fid;\r
+\r
+ if (fid == (void*)NULL) {\r
+ return(SYS_INV_HANDLE);\r
+ }\r
+ if (n > buflen) {\r
+ return(SYS_ERR_BUFLENGTH);\r
+ }\r
+\r
+ /* Fetch the file descriptor parameters */\r
+ r_idx = fd->r_idx; /* current read index */\r
+ nfiles = fd->nfiles; /* # of active files */\r
+ length = fd->length; /* actual file length in samples */\r
+ wrap = fd->wrap;\r
+ big = fd->big;\r
+\r
+ /* Test read index */\r
+ if (r_idx >= length) {\r
+ write_zeros = !wrap; /* If past the end write zeros */\r
+ if (wrap) {\r
+ return(SYS_INV_LOGIC); /* Cannot be past the end in this case! */\r
+ }\r
+ }\r
+ else {\r
+ write_zeros = FALSE;\r
+ }\r
+\r
+ out_p = &inbuf[0]; /* start from the beginning of a buffer */\r
+ if (!write_zeros) {\r
+ for (ch = 0; ch < nfiles; ch++) {\r
+ in_base_p = (tuint*)fd->filbase[ch];\r
+ in_p = &in_base_p[r_idx];\r
+\r
+ r_idx_new = r_idx + n;\r
+ overflow = r_idx_new - length;\r
+ if (overflow >= 0) {\r
+ ncopy = n - overflow;\r
+ }\r
+ else {\r
+ overflow = 0; /* overflow did not occur */\r
+ ncopy = n;\r
+ }\r
+\r
+ /* Copy frame of samples (before wrap) */\r
+ for (k = 0; k < ncopy; k++) {\r
+ value = *in_p++;\r
+ if (big) {\r
+ *out_p++ = (linSample)FIL_SWAP_BYTES(value);\r
+ }\r
+ else {\r
+ *out_p++ = (linSample)value;\r
+ }\r
+ }\r
+\r
+ if (!wrap) {\r
+ for (k = 0; k < overflow; k++) { /* pad zeros if no-wrap */\r
+ *out_p++ = 0;\r
+ }\r
+ }\r
+ else { /* wrap part */\r
+ if (overflow > 0) {\r
+ in_p = &in_base_p[0]; /* Wrap around the pointer */\r
+ for (k = 0; k < overflow; k++) { /* copy wrapped samples */\r
+ value = *in_p++;\r
+ if (big) {\r
+ *out_p++ = (linSample)FIL_SWAP_BYTES(value);\r
+ }\r
+ else {\r
+ *out_p++ = (linSample)value;\r
+ }\r
+ }\r
+ }\r
+ r_idx_new = overflow; /* Reset read index if wrap required */\r
+ } /* wrap */\r
+ } /* ch loop */\r
+\r
+ fd->r_idx = r_idx_new; /* Update the read index for next time */\r
+\r
+ } /* do not write zeros */\r
+ else { /* write zeros */\r
+ for (k = 0; k < n; k++) {\r
+ *out_p++ = 0;\r
+ }\r
+ }\r
+\r
+ return(SYS_ERR_SUCCESS);\r
+} /* filRead */\r
+\r
+/*===============================================================================*/\r
+/* This is the WRITE Part */\r
+/*===============================================================================*/\r
+\r
+/*=================================================================\r
+ * int filWrite( - Write a frame into output file in memory\r
+ * void *fid, - a pointer to file descriptor\r
+ * int n, - number of samples to write\r
+ * linSample outbuf[]) - output buffer that contains samples\r
+ *=================================================================*/\r
+\r
+int filWrite(void *fid, int n, linSample outbuf[])\r
+{\r
+ int k, w_idx, w_idx_new, ncopy, overflow, err;\r
+ tuint *out_p, *out_base_p, value;\r
+ tlong outlen;\r
+ linSample *in_p;\r
+ tbool big;\r
+\r
+ filDescriptor_t *fd = (filDescriptor_t*)fid;\r
+ outlen = fd->outlen; /* Total output buffer length */\r
+\r
+ if (fid == (void*)NULL) {\r
+ return(SYS_INV_HANDLE);\r
+ }\r
+ if (n > outlen) {\r
+ return(SYS_ERR_BUFLENGTH);\r
+ }\r
+\r
+ /* Fetch the file descriptor parameters */\r
+ w_idx = fd->w_idx; /* current write index */\r
+ big = fd->big;\r
+\r
+ /* Test write index */\r
+ if (w_idx >= outlen) {\r
+ return(SYS_ERR_EOF); /* Indicate end of file */\r
+ }\r
+\r
+ in_p = &outbuf[0]; /* start from the beginning of a buffer (our input) */\r
+\r
+ out_base_p = (tuint*)fd->outbuf;\r
+ out_p = &out_base_p[w_idx]; /* Find where to write samples */\r
+\r
+ w_idx_new = w_idx + n;\r
+ overflow = w_idx_new - outlen;\r
+ if (overflow >= 0) {\r
+ ncopy = n - overflow;\r
+ err = SYS_ERR_EOF;\r
+ }\r
+ else {\r
+ overflow = 0; /* overflow did not occur */\r
+ ncopy = n;\r
+ err = SYS_ERR_SUCCESS;\r
+ }\r
+\r
+ /* Copy frame of samples (before end of file) */\r
+ for (k = 0; k < ncopy; k++) {\r
+ value = *in_p++;\r
+ if (big) {\r
+ *out_p++ = (linSample)FIL_SWAP_BYTES(value);\r
+ }\r
+ else {\r
+ *out_p++ = (linSample)value;\r
+ }\r
+ }\r
+\r
+ fd->w_idx = w_idx_new; /* Update the write index for next time */\r
+\r
+ return(err);\r
+\r
+} /* filWrite */\r
+\r
+/* nothing past this point */\r
+\r
diff --git a/file_demo_bios/k2g/components/fil.h b/file_demo_bios/k2g/components/fil.h
--- /dev/null
@@ -0,0 +1,84 @@
+/* \r
+ * fil.h: Definitions for file handling functions (file stored in memory!)\r
+*/\r
+#ifndef _FIL_H\r
+#define _FIL_H\r
+\r
+#include <xdc/std.h> /* required for types.h */\r
+#include <ti/mas/types/types.h>\r
+\r
+#include "sys.h" /* for eampling rate, etc. */\r
+\r
+/*======================================================================\r
+ * File related constants\r
+ *======================================================================*/\r
+\r
+#define FIL_MAX SYS_MICS_MAX /* Maximum number of files */\r
+\r
+#define FIL_L_ENDIAN (FALSE) /* Little endian byte ordering in file */\r
+#define FIL_B_ENDIAN (TRUE)1 /* Big endian byte ordering in file */\r
+\r
+#define FIL_DURATION_MAX_MS (60*1000L) /* 1min max duration */\r
+#define FIL_LENGTH_MAX (SYS_FS_HZ*FIL_DURATION_MAX_MS/1000) /* max length in samples */\r
+#define FIL_OUTDURATION_MAX_MS (FIL_DURATION_MAX_MS+1*1000L) /* 1s longer than input */\r
+#define FIL_OUTLEN_MAX (SYS_FS_HZ*FIL_OUTDURATION_MAX_MS/1000) /* in samples */\r
+\r
+/*======================================================================\r
+ * Bit masks, byte swapping macros, error codes\r
+ *======================================================================*/\r
+\r
+/* Bit masks for byte swapping */\r
+#define FIL_LOW_BYTE 0x00FFu\r
+#define FIL_HIGH_BYTE 0xFF00u\r
+\r
+/* Macros for bit-mask manipulations */\r
+#define FIL_GET_LOW(x) ((x)&FIL_LOW_BYTE)\r
+#define FIL_GET_HIGH(x) (((x)>>8)&FIL_LOW_BYTE)\r
+#define FIL_SWAP_BYTES(x) ((FIL_GET_LOW(x)<<8)|FIL_GET_HIGH(x))\r
+\r
+/*======================================================================\r
+ * File related types\r
+ *======================================================================*/\r
+\r
+/* File Configuration Structure */\r
+struct filConfig_stc {\r
+ tlong length; /* number of samples in the input files */\r
+ tint nfiles; /* number of memory input files to create */\r
+ tbool big; /* TRUE: big endian, FALSE: little endian byte order */\r
+ tbool wrap; /* TRUE: do wrap-around, FALSE: do not wrap-around */\r
+ tlong outlen; /* number of samples in the output file */\r
+};\r
+typedef struct filConfig_stc filConfig_t;\r
+\r
+/* File Descriptor Structure (handles all files) */\r
+struct filDescriptor_stc {\r
+ tlong r_idx; /* current read index (sample based) */\r
+ tlong w_idx; /* current write index (sample based) */\r
+ tlong length; /* number of samples in an input file (does not apply to output!) */\r
+ tint nfiles; /* numbner of configured files */\r
+\r
+ void *filbase[FIL_MAX]; /* base addresses of file buffers */\r
+\r
+ /* Use 'big' for both R&W */\r
+ tbool big; /* TRUE: big endian, FALSE: little endian byte order */\r
+ tbool wrap; /* TRUE: do wrap-around, FLASE: do not wrap-around (input only) */\r
+\r
+ /* WRITE Part */\r
+ tlong outlen; /* Output buffer length in samples */\r
+ void *outbuf; /* A pointer to the output buffer */\r
+};\r
+typedef struct filDescriptor_stc filDescriptor_t;\r
+\r
+/*======================================================================\r
+ * API Prototypes\r
+ *======================================================================*/\r
+\r
+extern int filCreate(void**,filConfig_t*); /* Initialize file descriptor */\r
+extern void *filGetHandle(void); /* Return file handle */\r
+extern tlong filLoad(char*, tlong, int); /* Load file into memory */\r
+extern int filRead(void*,int,linSample*,int); /* Read samples from files */\r
+extern int filWrite(void*, int, linSample*); /* Write sample into file */\r
+\r
+#endif\r
+/* nothing past this point */\r
+\r
diff --git a/file_demo_bios/k2g/components/mhm/configspec.clearcase b/file_demo_bios/k2g/components/mhm/configspec.clearcase
--- /dev/null
@@ -0,0 +1,25 @@
+# This is my name and my current version number\r
+
+Begin_ME\r
+ ti.mas.mhm 2.5.1.0 dsps_gtmas\r
+End_ME
+\r
+# These are the packages I need for proper operation within the system
+\r
+Begin_DEP\r
+ ti.mas.types 5.5.5.0 dsps_gtmas\r
+End_DEP\r
+
+# These are the packages I need internally
+\r
+Begin_INTERNAL\r
+ ti.mas.swtools 5.0.4.0 dsps_gtmas\r
+End_INTERNAL\r
+
+# These are the additional packages I need for unit testing
+\r
+#Begin_TST\r
+# <pnameT> <MT>.<mT>.<pT>.<bT>\r
+#End_TST\r
+
+# nothing past this point\r
diff --git a/file_demo_bios/k2g/components/mhm/dcSpec.txt b/file_demo_bios/k2g/components/mhm/dcSpec.txt
--- /dev/null
@@ -0,0 +1,33 @@
+# Development config spec for MHM 2.5.1.0 and later\r
+# (the Master version - checkouts allowed for MHM only!)\r
+# Based on the tip of the main branch for MHM.\r
+#\r
+# Please note that the ti_mas_mhm_V_R_X_P_dev branch does NOT exist!\r
+\r
+# Show any checkedout files\r
+element * CHECKEDOUT\r
+\r
+# Specify how to select the folders that lead to the packages\r
+# and how to select some of the shared folders (e.g. docs)\r
+element /dsps_gtmas /main/LATEST -nocheckout\r
+\r
+element /dsps_gtmas/lost+found /main/0\r
+element /dsps_gtmas/ti /main/LATEST -nocheckout\r
+\r
+element /dsps_gtmas/ti/mas /main/LATEST -nocheckout\r
+element /dsps_gtmas/ti/mas/docs/... /main/LATEST -nocheckout\r
+\r
+# Specify dependent packages (to allow debug branching remove -nocheckout as needed)\r
+# mkbranch and end mkbranch lines would allow these packages to appear on MHM branch!\r
+#mkbranch ti_mas_mhm_V_R_X_P_dev\r
+element /dsps_gtmas/ti/mas/swtools/... DEV_TI_MAS_SWTOOLS_5_0_4_0 -nocheckout\r
+element /dsps_gtmas/ti/mas/types/... DEV_TI_MAS_TYPES_5_5_5_0 -nocheckout\r
+\r
+# Specify packages used for unit testing\r
+# NONE\r
+\r
+#end mkbranch ti_mas_mhm_V_R_X_P_dev\r
+\r
+# Normal development in /main branch\r
+element /dsps_gtmas/ti/mas/mhm/... /main/LATEST\r
+\r
diff --git a/file_demo_bios/k2g/components/mhm/dcSpeclnx.txt b/file_demo_bios/k2g/components/mhm/dcSpeclnx.txt
--- /dev/null
@@ -0,0 +1,33 @@
+# Development config spec for MHM 2.5.1.0 and later\r
+# (the Master version - checkouts allowed for MHM only!)\r
+# Based on the tip of the main branch for MHM.\r
+#\r
+# Please note that the ti_mas_mhm_V_R_X_P_dev branch does NOT exist!\r
+\r
+# Show any checkedout files\r
+element * CHECKEDOUT\r
+\r
+# Specify how to select the folders that lead to the packages\r
+# and how to select some of the shared folders (e.g. docs)\r
+element /vobs/dsps_gtmas /main/LATEST -nocheckout\r
+\r
+element /vobs/dsps_gtmas/lost+found /main/0\r
+element /vobs/dsps_gtmas/ti /main/LATEST -nocheckout\r
+\r
+element /vobs/dsps_gtmas/ti/mas /main/LATEST -nocheckout\r
+element /vobs/dsps_gtmas/ti/mas/docs/... /main/LATEST -nocheckout\r
+\r
+# Specify dependent packages (to allow debug branching remove -nocheckout as needed)\r
+# mkbranch and end mkbranch lines would allow these packages to appear on MHM branch!\r
+#mkbranch ti_mas_mhm_V_R_X_P_dev\r
+element /vobs/dsps_gtmas/ti/mas/swtools/... DEV_TI_MAS_SWTOOLS_5_0_4_0 -nocheckout\r
+element /vobs/dsps_gtmas/ti/mas/types/... DEV_TI_MAS_TYPES_5_5_5_0 -nocheckout\r
+\r
+# Specify packages used for unit testing\r
+# NONE\r
+\r
+#end mkbranch ti_mas_mhm_V_R_X_P_dev\r
+\r
+# Normal development in /main branch\r
+element /vobs/dsps_gtmas/ti/mas/mhm/... /main/LATEST\r
+\r
diff --git a/file_demo_bios/k2g/components/mhm/mCspec.txt b/file_demo_bios/k2g/components/mhm/mCspec.txt
--- /dev/null
@@ -0,0 +1,39 @@
+# Maintenance config spec for MHM 2.5.1.x\r
+# (the Master version - checkouts allowed for MHM only!)\r
+# Based on DEV_TI_MAS_MHM_2_5_1_0\r
+\r
+# Show any checkedout files\r
+element * CHECKEDOUT\r
+\r
+# Specify how to select the folders that lead to the packages\r
+# and how to select some of the shared folders (e.g. docs, swtools)\r
+element /dsps_gtmas DEV_TI_MAS_MHM_2_5_1_0 -nocheckout\r
+\r
+element /dsps_gtmas/lost+found /main/0\r
+element /dsps_gtmas/ti DEV_TI_MAS_MHM_2_5_1_0 -nocheckout\r
+\r
+# The following line assumes that MHM branch would be allowed for all mas packages!\r
+#element /dsps_gtmas/ti/mas/... .../ti_mas_mhm_2_5_1_0_maint/LATEST\r
+\r
+# The following line assumes that mas folder could end up in MHM branch if modified\r
+#element /dsps_gtmas/ti/mas DEV_TI_MAS_MHM_2_5_1_0 -mkbranch ti_mas_mhm_2_5_1_0_maint\r
+\r
+element /dsps_gtmas/ti/mas DEV_TI_MAS_MHM_2_5_1_0 -nocheckout\r
+element /dsps_gtmas/ti/mas/docs/... /main/LATEST -nocheckout\r
+\r
+# Specify dependent packages (to allow debug branching remove -nocheckout as needed)\r
+# mkbranch and end mkbranch lines would allow these packages to appear on MHM branch!\r
+#mkbranch ti_mas_mhm_2_5_1_0_maint\r
+element /dsps_gtmas/ti/mas/swtools/... DEV_TI_MAS_SWTOOLS_5_0_4_0 -nocheckout\r
+element /dsps_gtmas/ti/mas/types/... DEV_TI_MAS_TYPES_5_5_5_0 -nocheckout\r
+\r
+# Specify packages used for unit testing\r
+# NONE\r
+\r
+#end mkbranch ti_mas_mhm_2_5_1_0_maint\r
+\r
+# Specify development/maintenance branch for 2.5.1.x MHM\r
+element /dsps_gtmas/ti/mas/mhm/... .../ti_mas_mhm_2_5_1_0_maint/LATEST\r
+element /dsps_gtmas/ti/mas/mhm/... DEV_TI_MAS_MHM_2_5_1_0 -mkbranch ti_mas_mhm_2_5_1_0_maint\r
+element /dsps_gtmas/ti/mas/mhm/... /main/0 -mkbranch ti_mas_mhm_2_5_1_0_maint\r
+\r
diff --git a/file_demo_bios/k2g/components/mhm/mCspeclnx.txt b/file_demo_bios/k2g/components/mhm/mCspeclnx.txt
--- /dev/null
@@ -0,0 +1,39 @@
+# Maintenance config spec for MHM 2.5.1.x\r
+# (the Master version - checkouts allowed for MHM only!)\r
+# Based on DEV_TI_MAS_MHM_2_5_1_0\r
+\r
+# Show any checkedout files\r
+element * CHECKEDOUT\r
+\r
+# Specify how to select the folders that lead to the packages\r
+# and how to select some of the shared folders (e.g. docs, swtools)\r
+element /vobs/dsps_gtmas DEV_TI_MAS_MHM_2_5_1_0 -nocheckout\r
+\r
+element /vobs/dsps_gtmas/lost+found /main/0\r
+element /vobs/dsps_gtmas/ti DEV_TI_MAS_MHM_2_5_1_0 -nocheckout\r
+\r
+# The following line assumes that MHM branch would be allowed for all mas packages!\r
+#element /vobs/dsps_gtmas/ti/mas/... .../ti_mas_mhm_2_5_1_0_maint/LATEST\r
+\r
+# The following line assumes that mas folder could end up in MHM branch if modified\r
+#element /vobs/dsps_gtmas/ti/mas DEV_TI_MAS_MHM_2_5_1_0 -mkbranch ti_mas_mhm_2_5_1_0_maint\r
+\r
+element /vobs/dsps_gtmas/ti/mas DEV_TI_MAS_MHM_2_5_1_0 -nocheckout\r
+element /vobs/dsps_gtmas/ti/mas/docs/... /main/LATEST -nocheckout\r
+\r
+# Specify dependent packages (to allow debug branching remove -nocheckout as needed)\r
+# mkbranch and end mkbranch lines would allow these packages to appear on MHM branch!\r
+#mkbranch ti_mas_mhm_2_5_1_0_maint\r
+element /vobs/dsps_gtmas/ti/mas/swtools/... DEV_TI_MAS_SWTOOLS_5_0_4_0 -nocheckout\r
+element /vobs/dsps_gtmas/ti/mas/types/... DEV_TI_MAS_TYPES_5_5_5_0 -nocheckout\r
+\r
+# Specify packages used for unit testing\r
+# NONE\r
+\r
+#end mkbranch ti_mas_mhm_2_5_1_0_maint\r
+\r
+# Specify development/maintenance branch for 2.5.1.x MHM\r
+element /vobs/dsps_gtmas/ti/mas/mhm/... .../ti_mas_mhm_2_5_1_0_maint/LATEST\r
+element /vobs/dsps_gtmas/ti/mas/mhm/... DEV_TI_MAS_MHM_2_5_1_0 -mkbranch ti_mas_mhm_2_5_1_0_maint\r
+element /vobs/dsps_gtmas/ti/mas/mhm/... /main/0 -mkbranch ti_mas_mhm_2_5_1_0_maint\r
+\r
diff --git a/file_demo_bios/k2g/components/mhm/mhm.h b/file_demo_bios/k2g/components/mhm/mhm.h
--- /dev/null
@@ -0,0 +1,95 @@
+#ifndef _MHM_H\r
+#define _MHM_H\r
+/******************************************************************************\r
+ * FILE PURPOSE: Definitions and API's for the multiple heap manager.\r
+ ******************************************************************************\r
+ * FILE NAME: MHM.H\r
+ *\r
+ * DESCRIPTION: Contains definitions and API's for the multiple heap manager.\r
+ *\r
+ * TABS: NONE\r
+ *\r
+ * $Id: mhm.h 1.1 1997/06/25 11:40:55 BOGDANK Exp $\r
+ *\r
+ * REVISION HISTORY:\r
+ *\r
+ * $Log: mhm.h $\r
+ * Revision 1.1 1997/06/25 11:40:55 BOGDANK\r
+ * Initial revision\r
+ *\r
+ * Copyright (c) 2007 \96 2013 Texas Instruments Incorporated
+ *
+ * All rights reserved not granted herein.
+ *
+ * Limited License.
+ *
+ * Texas Instruments Incorporated grants a world-wide, royalty-free,
+ * non-exclusive license under copyrights and patents it now or hereafter owns
+ * or controls to make, have made, use, import, offer to sell and sell
+ * ("Utilize") this software subject to the terms herein. With respect to the
+ * foregoing patent license, such license is granted solely to the extent that
+ * any such patent is necessary to Utilize the software alone. The patent
+ * license shall not apply to any combinations which include this software,
+ * other than combinations with devices manufactured by or for TI (\93TI
+ * Devices\94). No hardware patent is licensed hereunder.
+ *
+ * Redistributions must preserve existing copyright notices and reproduce this
+ * license (including the above copyright notice and the disclaimer and (if
+ * applicable) source code license limitations below) in the documentation
+ * and/or other materials provided with the distribution
+ *
+ * Redistribution and use in binary form, without modification, are permitted
+ * provided that the following conditions are met:
+ *
+ * * No reverse engineering, decompilation, or disassembly of this software
+ * is permitted with respect to any software provided in binary form.
+ *
+ * * any redistribution and use are licensed by TI for use only with TI
+ * Devices.
+ *
+ * * Nothing shall obligate TI to provide you with source code for the
+ * software licensed and provided to you in object code.
+ *
+ * If software source code is provided to you, modification and redistribution
+ * of the source code are permitted provided that the following conditions are
+ * met:
+ *
+ * * any redistribution and use of the source code, including any resulting
+ * derivative works, are licensed by TI for use only with TI Devices.
+ *
+ * * any redistribution and use of any object code compiled from the source
+ * code and any resulting derivative works, are licensed by TI for use only
+ * with TI Devices.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of its
+ * suppliers may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * DISCLAIMER.
+ *
+ * THIS SOFTWARE IS PROVIDED BY TI AND TI\92S LICENSORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL TI AND TI\92S LICENSORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE. \r
+ *****************************************************************************/\r
+\r
+/* System definitions and utilities */\r
+#include <ti/mas/types/types.h> /* DSP types */\r
+\r
+/* API */\r
+void *mhmCreate (void *base, tuint size, tword initPattern);\r
+void *mhmAlloc (void *handle, tuint size);\r
+void *mhmAllocAligned (void *handle, tuint size, tint log2align);\r
+void mhmFree (void *handle, void *base);\r
+void mhmReset (void *handle);\r
+\r
+#endif /* _MHM_H */\r
+/* nothing past this point */\r
+\r
diff --git a/file_demo_bios/k2g/components/mhm/package.bld b/file_demo_bios/k2g/components/mhm/package.bld
--- /dev/null
@@ -0,0 +1,113 @@
+/******************************************************************************\r
+ * FILE PURPOSE: Build description for package ti.mas.mhm\r
+ ******************************************************************************\r
+ * FILE NAME: package.bld \r
+ *\r
+ * DESCRIPTION: This file contains build attributes for package ti.mas.mhm\r
+ *\r
+ * TABS: NONE\r
+ *\r
+ * Copyright (C) 2006, Texas Instruments, Inc.\r
+ *****************************************************************************/\r
+ \r
+ var Package=xdc.loadCapsule('ti/mas/swtools/CommonBld.xs');\r
+ Package.name="mhm";\r
+\r
+ Package.files["commonCsrc"]= {\r
+ base_directory: "src",\r
+ files: ["mhm.c"\r
+ ] \r
+ }\r
+\r
+ Package.archiveFiles["C64Header"]= {\r
+ base_directory: "src/c64",\r
+ target: ["c64le", \r
+ "c64be", \r
+ "c64Ple", \r
+ "c64Pbe", \r
+ "ce64Ple",\r
+ "ce64Pbe",\r
+ "c66le", \r
+ "c66be",\r
+ "ce66le",\r
+ "ce66be"\r
+ ],\r
+ files: ["mhmport.h"\r
+ ] \r
+ }\r
+ \r
+ Package.archiveFiles["C55Header"]= {\r
+ base_directory: "src/c55",\r
+ target: ["c55l", \r
+ "c55s"\r
+ ],\r
+ files: ["mhmport.h"\r
+ ] \r
+ }\r
+ \r
+ Package.archiveFiles["C54Header"]= {\r
+ base_directory: "src/c54",\r
+ target: ["c54n", \r
+ "c54f"\r
+ ],\r
+ files: ["mhmport.h"\r
+ ] \r
+ }\r
+ \r
+ Package.archiveFiles["CommonHeader"]= {\r
+ base_directory: "src",\r
+ files: ["mhmport.h"\r
+ ] \r
+ }\r
+ \r
+\r
+/**********************************************************************************************\r
+ The main package.bld routine starts here \r
+***********************************************************************************************/\r
+\r
+ /* Set up the target architecture */\r
+ Package.targets = [C54, \r
+ C54_far, \r
+ C55, \r
+ C55_large, \r
+ C64, \r
+ C64_big_endian, \r
+ C64P, \r
+ C64P_big_endian, \r
+ C64P_elf,\r
+ C64P_big_endian_elf,\r
+ C66, \r
+ C66_big_endian, \r
+ C66_elf,\r
+ C66_big_endian_elf,\r
+ C674, \r
+ C674_big_endian, \r
+ GCArmv7A\r
+ ];\r
+\r
+ /* Set up version numbers for this package */\r
+ Package.pkgStdVer = "2.0";\r
+ Package.version = [2,5,1,0, 3,0];\r
+\r
+ Package.createVersion();\r
+\r
+ /* Include custom makefile to generate doxygen documents */\r
+/* Package.includeMake("Makedocs.mk"); */\r
+ \r
+ /* Parse XDC Arguments */\r
+ Package.parseArgs(arguments);\r
+\r
+ /* Create Library */ \r
+ Package.createLib();\r
+\r
+ /* Create Archive */ \r
+ Package.createArchive();\r
+ \r
+ /* Clean Package */\r
+ Package.packageClean();\r
+\r
+\r
+/* nothing past this point */\r
+\r
+\r
+\r
diff --git a/file_demo_bios/k2g/components/mhm/package.xdc b/file_demo_bios/k2g/components/mhm/package.xdc
--- /dev/null
@@ -0,0 +1,87 @@
+requires ti.mas.types[5,0,8,1];\r
+requires internal ti.mas.swtools[3,0,0,0];\r
+\r
+/*! MHM package\r
+ * \r
+ * @a(NAME) `ti.mas.mhm`\r
+ *\r
+ * @a(DESCRIPTION)\r
+ *\r
+ * This package creates the mhm system. It depends on the following packages:\r
+ * @p(dlist)\r
+ * - `ti.mas.types`\r
+ * \r
+ * @a(CONTENTS)\r
+ * @p(dlist)\r
+ * - 'mhm' module\r
+ * provides APIs for multiple heap management.\r
+ * - `version` module\r
+ * provides version numbering for the package and is described in\r
+ * `version.xdc`. Note that `version.xdc` is generated from the template file \r
+ * `version.xdt`.\r
+ * @p\r
+ * @a(TARGETS) The following architecture targets are supported:\r
+ *\r
+ * @p(dlist)\r
+ * - `C54`\r
+ * - `C55`\r
+ * - `C55_large`\r
+ * - `C64`\r
+ * - `C64_big_endian`\r
+ * - `C64P`\r
+ * - `C64P_big_endian`\r
+ * @p\r
+ * @a(BUILD) The build options are implemented in the file `package.bld`.\r
+ *\r
+ * Build command: `xdc XDCARGS="option"`.\r
+ * option = [c54, c55, c55L, c64, c64_be, c64P, c64P_be, all]\r
+ * If any other option other than above is used then the package is not built correctly\r
+ * and will crash when used in conjunction with other packages. \r
+ *\r
+ *\r
+ * Generated files:\r
+ *\r
+ * @p(dlist)\r
+ * - `version.h`\r
+ * @p\r
+ *\r
+ * Command to clean: `xdc clean`\r
+ *\r
+ * @a(RELEASES)\r
+ *\r
+ * Release creation: `xdc XDCARGS="option1 option2" release`\r
+ * option1 = [c54, c55, c55L, c64, c64_be, c64P, c64P_be, all]\r
+ * option2 = [obj, src, docs]\r
+ *\r
+ * Using the option1 as given and option 2="obj" creates the released tar file containing object code only:\r
+ * `ti_mas_mhm_<arch>_src_<v>_<r>_<x>_<p>.tar`\r
+ * or `ti_mas_mhm_all_src_<v>_<r>_<x>_<p>.tar` if option 1="all"\r
+ * \r
+ * Using the option1 as given and option 2="src" creates the released tar file containing source with object code:\r
+ * `ti_mas_mhm_<arch>_src_<v>_<r>_<x>_<p>.tar`\r
+ * or `ti_mas_mhm_all_src_<v>_<r>_<x>_<p>.tar` if option 1="all"\r
+ *\r
+ * If option2 = "obj" or empty then `ti_mas_mhm_all_<v>_<r>_<x>_<p>.tar` is created containing only object code\r
+ *\r
+ * To generate document only the following should be used:\r
+ * `xdc XDCARGS="docs" release` or `xdc XDCARGS="option1,docs"`\r
+ * and `ti_mas_mhm_docs_<v>_<r>_<x>_<p>.tar` is created\r
+ * \r
+ * If any other option other than the ones listed above is used, no release is created.\r
+ * \r
+ *\r
+ * \r
+ *\r
+ * @a(Copyright)\r
+ * @p(html)\r
+ * © 2006 Texas Instruments, Inc.\r
+ * @p\r
+ */\r
+\r
+package ti.mas.mhm[2,0,0,0] {\r
+ \r
+ /* Specification of units for package mhm */\r
+ module Version;\r
+}\r
+\r
+/* nothing past this point */\r
diff --git a/file_demo_bios/k2g/components/mhm/package.xs b/file_demo_bios/k2g/components/mhm/package.xs
--- /dev/null
@@ -0,0 +1,28 @@
+/******************************************************************************\r
+ * FILE PURPOSE: Defines libarary directory name using getLibs\r
+ ******************************************************************************\r
+ * FILE NAME: package.xs\r
+ *\r
+ * DESCRIPTION: This file defines the library directory name for proper build\r
+ * in case a different directory name for storing library files \r
+ * other than "lib" is used. XDC by default assumes that the \r
+ * library directory is "lib" is not sepcifically indicated by use\r
+ * the attributes in a file called package.xs \r
+ *\r
+ * TABS: NONE\r
+ *\r
+ * Copyright (C) 2012, Texas Instruments, Inc.\r
+ *****************************************************************************/\r
+\r
+/* "mangle" program build attrs into an appropriate directory name */\r
+function getLibs (prog)\r
+{\r
+ var suff = prog.build.target.suffix;\r
+ var lib = "";\r
+ \r
+ lib += "lib/mhm_c.a" + suff;\r
+\r
+ return (lib);\r
+}\r
+\r
+/* nothing past this point */\r
diff --git a/file_demo_bios/k2g/components/mhm/readme.txt b/file_demo_bios/k2g/components/mhm/readme.txt
--- /dev/null
@@ -0,0 +1,12 @@
+Date: 12/12/2006 Jianzhong Xu \r
+Version 1.0.0.0\r
+\r
+The initial version of the package has three files: mhm.h, c55x/mhmport.h, mhm.c.\r
+1. mhm.h: This file was taken from the latest of main branch. It was chagned in branch \r
+ blr_ggxvipp_r001_04_12_01_videoDSP_framework_start. The change was ignored since that brach is for video.\r
+\r
+2. mhmport.h: This file was taken from the latest of main branch. It is the same among all branches.\r
+\r
+3. mhm.c: This file was taken from the latest of main branch. It was changed in branch \r
+ blr_ggxcore_r10_03_06_14_core_10_0_0_5_core10_2 and ggdcm_desktop_vc_port. \r
+ Changes were ignored sicne the changes were not done properly. They should be outside of mhm.c.
\ No newline at end of file
diff --git a/file_demo_bios/k2g/components/mhm/src/arm/mhmport.h b/file_demo_bios/k2g/components/mhm/src/arm/mhmport.h
--- /dev/null
@@ -0,0 +1,21 @@
+#ifndef _MHMPORT_H\r
+#define _MHMPORT_H\r
+/******************************************************************************\r
+ * FILE PURPOSE: Definitions that are used on a ARM platform.\r
+ ******************************************************************************\r
+ * FILE NAME: MHMPORT.H\r
+ *\r
+ * DESCRIPTION: Contains definitions that are used on a ARM platform.\r
+ *\r
+ * (C) Copyright 2010, Texas Instruments, Inc.\r
+ *****************************************************************************/\r
+\r
+/* System definitions and utilities */\r
+#include <ti/mas/types/types.h> /* DSP types */\r
+\r
+/* The address type is an unsigned integer type that has the same number of\r
+ * bits as the longest possible (data) address on this platform. */\r
+typedef tulong mhmAddress_t;\r
+\r
+#endif /* _MHMPORT_H */\r
+/* nothing past this point */\r
diff --git a/file_demo_bios/k2g/components/mhm/src/c54/mhmport.h b/file_demo_bios/k2g/components/mhm/src/c54/mhmport.h
--- /dev/null
@@ -0,0 +1,31 @@
+#ifndef _MHMPORT_H\r
+#define _MHMPORT_H\r
+/******************************************************************************\r
+ * FILE PURPOSE: Definitions that are used on a C54x platform.\r
+ ******************************************************************************\r
+ * FILE NAME: MHMPORT.H\r
+ *\r
+ * DESCRIPTION: Contains definitions that are used on a C54x platform.\r
+ *\r
+ * TABS: NONE\r
+ *\r
+ * $Id: mhmport.h 1.1 1997/06/25 11:41:02 BOGDANK Exp $\r
+ *\r
+ * REVISION HISTORY:\r
+ *\r
+ * $Log: mhmport.h $\r
+ * Revision 1.1 1997/06/25 11:41:02 BOGDANK\r
+ * Initial revision\r
+ *\r
+ * (C) Copyright 1997, TELOGY Networks, Inc.\r
+ *****************************************************************************/\r
+\r
+/* System definitions and utilities */\r
+#include <ti/mas/types/types.h> /* DSP types */\r
+\r
+/* The address type is an unsigned integer type that has the same number of\r
+ * bits as the longest possible (data) address on this platform. */\r
+typedef tuint mhmAddress_t;\r
+\r
+#endif /* _MHMPORT_H */\r
+/* nothing past this point */\r
diff --git a/file_demo_bios/k2g/components/mhm/src/c55/mhmport.h b/file_demo_bios/k2g/components/mhm/src/c55/mhmport.h
--- /dev/null
@@ -0,0 +1,31 @@
+#ifndef _MHMPORT_H\r
+#define _MHMPORT_H\r
+/******************************************************************************\r
+ * FILE PURPOSE: Definitions that are used on a C54x platform.\r
+ ******************************************************************************\r
+ * FILE NAME: MHMPORT.H\r
+ *\r
+ * DESCRIPTION: Contains definitions that are used on a C54x platform.\r
+ *\r
+ * TABS: NONE\r
+ *\r
+ * $Id: mhmport.h 1.1 1997/06/25 11:41:02 BOGDANK Exp $\r
+ *\r
+ * REVISION HISTORY:\r
+ *\r
+ * $Log: mhmport.h $\r
+ * Revision 1.1 1997/06/25 11:41:02 BOGDANK\r
+ * Initial revision\r
+ *\r
+ * (C) Copyright 1997, TELOGY Networks, Inc.\r
+ *****************************************************************************/\r
+\r
+/* System definitions and utilities */\r
+#include <ti/mas/types/types.h> /* DSP types */\r
+\r
+/* The address type is an unsigned integer type that has the same number of\r
+ * bits as the longest possible (data) address on this platform. */\r
+typedef tulong mhmAddress_t;\r
+\r
+#endif /* _MHMPORT_H */\r
+/* nothing past this point */\r
diff --git a/file_demo_bios/k2g/components/mhm/src/c64/mhmport.h b/file_demo_bios/k2g/components/mhm/src/c64/mhmport.h
--- /dev/null
@@ -0,0 +1,34 @@
+#ifndef _MHMPORT_H\r
+#define _MHMPORT_H\r
+/******************************************************************************\r
+ * FILE PURPOSE: Definitions that are used on a C6x platform.\r
+ ******************************************************************************\r
+ * FILE NAME: MHMPORT.H\r
+ *\r
+ * DESCRIPTION: Contains definitions that are used on a C6x platform.\r
+ *\r
+ * TABS: NONE\r
+ *\r
+ * $Id: mhmport.h 1.2 1998/08/06 16:50:04 jdowdal Exp $\r
+ *\r
+ * REVISION HISTORY:\r
+ *\r
+ * $Log: mhmport.h $\r
+ * Revision 1.2 1998/08/06 16:50:04 jdowdal\r
+ * Fixed size of mhmAddress_t.\r
+ * Revision 1.1 1998/07/22 14:12:15 jdowdal\r
+ * Initial revision\r
+ * Initial revision taken from c54x\mhmport.h\r
+ *\r
+ * (C) Copyright 1997, TELOGY Networks, Inc.\r
+ *****************************************************************************/\r
+\r
+/* System definitions and utilities */\r
+#include <ti/mas/types/types.h> /* DSP types */\r
+\r
+/* The address type is an unsigned integer type that has the same number of\r
+ * bits as the longest possible (data) address on this platform. */\r
+typedef tulong mhmAddress_t;\r
+\r
+#endif /* _MHMPORT_H */\r
+/* nothing past this point */\r
diff --git a/file_demo_bios/k2g/components/mhm/src/mhm.c b/file_demo_bios/k2g/components/mhm/src/mhm.c
--- /dev/null
@@ -0,0 +1,249 @@
+/******************************************************************************\r
+ * FILE PURPOSE: Multiple heap manager.\r
+ ******************************************************************************\r
+ * FILE NAME: mhm.c\r
+ *\r
+ * DESCRIPTION: Contains routines for multiple heap management. These functions\r
+ * may be used in allocating memory from several independent\r
+ * memory pools.\r
+ *\r
+ * NOTE: Current implementation does NOT provide deallocation!\r
+ *\r
+ * TABS: NONE\r
+ *\r
+ * $Id: mhm.c 1.1 1997/06/25 11:40:55 BOGDANK Exp $\r
+ *\r
+ * REVISION HISTORY:\r
+ *\r
+ * $Log: mhm.c $\r
+ * Revision 1.1 1997/06/25 11:40:55 BOGDANK\r
+ * Initial revision\r
+ *\r
+ * (C) Copyright 1997, TELOGY Networks, Inc.\r
+ *****************************************************************************/\r
+\r
+#include <stdlib.h>\r
+#include <string.h> /* for memset */\r
+\r
+#include <xdc/std.h>\r
+/* System definitions and utilities */\r
+#include <ti/mas/types/types.h> /* DSP types */\r
+\r
+//#include <ti/mas/mhm/mhm.h>\r
+//#include <ti/mas/mhm/src/mhmport.h>\r
+\r
+#include "../mhm.h"\r
+#include "mhmport.h"\r
+\r
+/* Heap header that is placed at the beginning of a memory pool. */\r
+typedef struct {\r
+ tuint total_size; /* total number of words in a memory pool */\r
+ tuint used_size; /* index of the first available word */\r
+} mhmHead_t;\r
+\r
+/* The minimum and maximum number of words in a memory pool. Align gap and\r
+ * maximum size value are specified in mhmport.h. */\r
+#define MHM_MIN_POOLSIZE (sizeof(mhmHead_t)+MHM_MAX_ALIGNGAP+1)\r
+#define MHM_MAX_POOLSIZE MHM_MAX_SIZEVAL\r
+\f\r
+/******************************************************************************\r
+ * FUNCTION PURPOSE: Create and initialize a heap.\r
+ ******************************************************************************\r
+ * DESCRIPTION: Creates and initializes a heap. If successful returns a heap\r
+ * handle, otherwise returns NULL.\r
+ *\r
+ * void *mhmCreate (\r
+ * void *base, - base address of a memory pool (!= NULL)\r
+ * tuint size, - number of words within the memory pool\r
+ * word initPattern) - initializing pattern for the heap\r
+ *\r
+ * RETURN VALUE: A heap handle, or NULL in case of error.\r
+ *\r
+ *****************************************************************************/\r
+\r
+void *mhmCreate (void *base, tuint size, tword initPattern)\r
+{\r
+ tuint used_size;\r
+ mhmHead_t *head;\r
+ tword *w_base = (tword *)base;\r
+ tword *block;\r
+ mhmAddress_t wa_base_new, wa_block_new;\r
+\r
+ /* initialize the raw space */\r
+ memset (w_base, initPattern, size);\r
+ \r
+ /* In the first part we align the base address of the memory pool */\r
+ used_size = 0;\r
+ wa_base_new = ((mhmAddress_t)w_base + MHM_MAX_ALIGNGAP) & (~MHM_ALIGN_MASK);\r
+ used_size += wa_base_new - (mhmAddress_t)w_base;\r
+ w_base = (tword *)wa_base_new; /* this is the new base after any gap */\r
+\r
+ if (size < used_size+MHM_MIN_POOLSIZE || size-used_size > MHM_MAX_POOLSIZE ||\r
+ base == NULL)\r
+ return(NULL);\r
+\r
+ /* Skip the pool alignment gap and start fresh. Do not forget to reset used size. */\r
+ /* w_base points to aligned address now and used_size is currently the gap size (if any) */\r
+ head = (mhmHead_t*)w_base; /* This will be the actual head of the heap */\r
+ head->total_size = size - used_size; /* record total heap size by removing the gap size */\r
+\r
+ used_size = sizeof(mhmHead_t); /* reserve space for the header and make that the used size */\r
+ block = &w_base[used_size]; /* skip the header */\r
+\r
+ /* Remember to align the remaining pool to the minimum alignment required by MHM */\r
+ wa_block_new = ((mhmAddress_t)block + MHM_MAX_ALIGNGAP) & (~MHM_ALIGN_MASK);\r
+ used_size += wa_block_new - (mhmAddress_t)block;\r
+\r
+ head->used_size = used_size; /* record an index to empty space which is with minimum alignment */\r
+ return(head); /* return heap handle */\r
+} /* mhmCreate */\r
+\f\r
+/******************************************************************************\r
+ * FUNCTION PURPOSE: Allocate a block of memory from a heap.\r
+ ******************************************************************************\r
+ * DESCRIPTION: Allocates a block of memory from a heap. Block size must be\r
+ * bigger than zero. It returns a pointer to block start or a\r
+ * NULL if unsuccessful.\r
+ *\r
+ * void *mhmAlloc (\r
+ * void *handle, - heap handle obtained in mhmCreate()\r
+ * tuint size) - number of words to allocate for the block\r
+ *\r
+ * RETURN VALUE: A pointer to block start, or NULL when unsuccessful.\r
+ *\r
+ *****************************************************************************/\r
+\r
+void *mhmAlloc (void *handle, tuint size)\r
+{\r
+ tuint left;\r
+ mhmHead_t *head = (mhmHead_t*)handle;\r
+ tword *w_base = (tword *)handle;\r
+ tword *block;\r
+\r
+ if (size == 0 || size > MHM_MAX_SIZE || head->total_size <= head->used_size)\r
+ return(NULL);\r
+\r
+ /* Make sure the actual used size will be resulting in minimum required MHM alignment */\r
+ size = (tuint)((size + MHM_MAX_ALIGNGAP) & (~MHM_ALIGN_MASK));\r
+\r
+ left = head->total_size - head->used_size;\r
+ if (left < size) /* do we have space for this block? */\r
+ return(NULL);\r
+ block = &w_base[head->used_size];\r
+ head->used_size += (tuint)size; /* increase the used space */\r
+\r
+ /* no need for additional alignment since the size was already aligned above and base is\r
+ * always kept aligned to the minimum requried MHM alignment */\r
+\r
+ return(block); /* return a pointer to start */\r
+} /* mhmAlloc */\r
+\r
+/******************************************************************************\r
+ * FUNCTION PURPOSE: Allocate a block of memory from a heap log2 aligned\r
+ ******************************************************************************\r
+ * DESCRIPTION: Allocates a block of memory from a heap. Block size must be\r
+ * bigger than zero. It returns a pointer to block start or a\r
+ * NULL if unsuccessful. The start address will be aligned to pow-2\r
+ * boundary.\r
+ *\r
+ * void *mhmAllocAligned (\r
+ * void *handle, - heap handle obtained in mhmCreate()\r
+ * tuint size, - number of words to allocate for the block\r
+ * tint log2align) - log2 alignment that is required (e.g. 3 for 0xFF..FF8 mask)\r
+ *\r
+ * RETURN VALUE: A pointer to block start, or NULL when unsuccessful.\r
+ *\r
+ *****************************************************************************/\r
+\r
+void *mhmAllocAligned (void *handle, tuint size, tint log2align)\r
+{\r
+ tuint left, used_size;\r
+ mhmHead_t *head = (mhmHead_t*)handle;\r
+ tword *w_base = (tword *)handle;\r
+ tword *block;\r
+ tulong align_mask, align_gap;\r
+ mhmAddress_t wa_block_new;\r
+\r
+ if (size == 0 || size > MHM_MAX_SIZE || head->total_size <= head->used_size)\r
+ return(NULL);\r
+\r
+ if (log2align < 1) { /* use simple alloc function if no alignment required */\r
+ block = mhmAlloc(handle, size);\r
+ return(block);\r
+ }\r
+ used_size = head->used_size; /* current used size */\r
+ block = &w_base[used_size]; /* skip the already used size */\r
+\r
+ /* Remember to align the new block address to the requested alignment */\r
+ align_mask = ((~0UL) << log2align);\r
+ align_gap = (~align_mask);\r
+\r
+ wa_block_new = (((mhmAddress_t)block + align_gap) & align_mask);\r
+ size += wa_block_new - (mhmAddress_t)block; /* update size with the gap (if any) */\r
+\r
+ /* Make sure the actual used size will be resulting in minimum required MHM alignment */\r
+ /* This in general may be different from the requested start address alignment! */\r
+ size = (tuint)((size + MHM_MAX_ALIGNGAP) & (~MHM_ALIGN_MASK));\r
+\r
+ left = head->total_size - used_size;\r
+ if (left < size) /* do we have space for this block? (and any gaps) */\r
+ return(NULL);\r
+ block = (tword*)wa_block_new; /* this is where we would start new block */\r
+ head->used_size = used_size+size; /* increase the used space */\r
+\r
+ /* no need for additional alignment since the size and base were already aligned above */\r
+\r
+ return(block); /* return a pointer to start */\r
+} /* mhmAllocAligned */\r
+\r
+/******************************************************************************\r
+ * FUNCTION PURPOSE: Deallocate a memory block from a heap.\r
+ ******************************************************************************\r
+ * DESCRIPTION: Deallocates a memory block from a heap.\r
+ *\r
+ * void mhmFree (\r
+ * void *handle, - a heap handle\r
+ * void *base) - base address of a block\r
+ *\r
+ *****************************************************************************/\r
+\r
+void mhmFree (void *handle, void *base)\r
+{\r
+ return; /* currently NOT supported */\r
+} /* mhmFree */\r
+\r
+/******************************************************************************\r
+ * FUNCTION PURPOSE: Reset heap and start allocating form the beginning.\r
+ ******************************************************************************\r
+ * DESCRIPTION: Resets heap and allows for allocation to start from the beginning.\r
+ *\r
+ * void mhmReset (\r
+ * void *handle) - a heap handle\r
+ *\r
+ *****************************************************************************/\r
+\r
+void mhmReset (void *handle)\r
+{\r
+ tuint used_size;\r
+ mhmHead_t *head = (mhmHead_t*)handle;\r
+ tword *w_base = (tword*)handle;\r
+ tword *block;\r
+ mhmAddress_t wa_block_new;\r
+\r
+ /* no need to change the total size */\r
+ /* we start from empty heap */\r
+ used_size = sizeof(mhmHead_t); /* reserve space for the header and make that the used size */\r
+ block = &w_base[used_size]; /* skip the header */\r
+\r
+ /* Remember to align the remaining pool to the minimum alignment required by MHM */\r
+ wa_block_new = ((mhmAddress_t)block + MHM_MAX_ALIGNGAP) & (~MHM_ALIGN_MASK);\r
+ used_size += wa_block_new - (mhmAddress_t)block;\r
+\r
+ head->used_size = used_size; /* record an index to empty space which is with minimum alignment */\r
+\r
+ /* the head which is the base of the heap is already aligned */\r
+ return;\r
+} /* mhmreset */\r
+\r
+/* nothing past this point */\r
+\r
diff --git a/file_demo_bios/k2g/components/mhm/src/mhmport.h b/file_demo_bios/k2g/components/mhm/src/mhmport.h
--- /dev/null
@@ -0,0 +1,142 @@
+/******************************************************************************\r
+ * FILE PURPOSE: Target specific definitions.\r
+ ******************************************************************************\r
+ * FILE NAME: MHMPORT.H\r
+ *\r
+ * DESCRIPTION: Contains definitions that are specific to different targets.\r
+ *\r
+ * (C) Copyright 1997, TELOGY Networks, Inc.\r
+ *****************************************************************************/\r
+\r
+#ifdef ti_targets_C54\r
+#define _MHMPORT_C54 1\r
+#else\r
+#define _MHMPORT_C54 0\r
+#endif\r
+\r
+#ifdef ti_targets_C54_far\r
+#define _MHMPORT_C54F 1\r
+#else\r
+#define _MHMPORT_C54F 0\r
+#endif\r
+\r
+#ifdef ti_targets_C55\r
+#define _MHMPORT_C55 1\r
+#else\r
+#define _MHMPORT_C55 0\r
+#endif\r
+\r
+#ifdef ti_targets_C55_large\r
+#define _MHMPORT_C55L 1\r
+#else\r
+#define _MHMPORT_C55L 0\r
+#endif\r
+\r
+#ifdef ti_targets_C64\r
+#define _MHMPORT_C64 1\r
+#else\r
+#define _MHMPORT_C64 0\r
+#endif\r
+\r
+#ifdef ti_targets_C64_big_endian\r
+#define _MHMPORT_C64_BIG_ENDIAN 1\r
+#else\r
+#define _MHMPORT_C64_BIG_ENDIAN 0\r
+#endif\r
+\r
+#ifdef ti_targets_C64P\r
+#define _MHMPORT_C64P 1\r
+#else\r
+#define _MHMPORT_C64P 0\r
+#endif\r
+\r
+#ifdef ti_targets_elf_C64P \r
+#define _MHMPORT_ELF_C64P 1\r
+#else\r
+#define _MHMPORT_ELF_C64P 0\r
+#endif\r
+\r
+#ifdef ti_targets_C64P_big_endian\r
+#define _MHMPORT_C64P_BIG_ENDIAN 1\r
+#else\r
+#define _MHMPORT_C64P_BIG_ENDIAN 0\r
+#endif\r
+\r
+#ifdef ti_targets_elf_C64P_big_endian\r
+#define _MHMPORT_ELF_C64P_BIG_ENDIAN 1\r
+#else\r
+#define _MHMPORT_ELF_C64P_BIG_ENDIAN 0\r
+#endif\r
+\r
+#ifdef ti_targets_C66\r
+#define _MHMPORT_C66 1\r
+#else\r
+#define _MHMPORT_C66 0\r
+#endif\r
+\r
+#ifdef ti_targets_elf_C66\r
+#define _MHMPORT_ELF_C66 1\r
+#else\r
+#define _MHMPORT_ELF_C66 0\r
+#endif\r
+\r
+#ifdef ti_targets_C66_big_endian\r
+#define _MHMPORT_C66_BIG_ENDIAN 1\r
+#else\r
+#define _MHMPORT_C66_BIG_ENDIAN 0\r
+#endif\r
+\r
+#ifdef ti_targets_elf_C66_big_endian\r
+#define _MHMPORT_ELF_C66_BIG_ENDIAN 1\r
+#else\r
+#define _MHMPORT_ELF_C66_BIG_ENDIAN 0\r
+#endif\r
+\r
+#ifdef ti_targets_C674\r
+#define _MHMPORT_C674 1\r
+#else\r
+#define _MHMPORT_C674 0\r
+#endif\r
+\r
+#ifdef ti_targets_C674_big_endian\r
+#define _MHMPORT_C674_BIG_ENDIAN 1\r
+#else\r
+#define _MHMPORT_C674_BIG_ENDIAN 0\r
+#endif\r
+\r
+#ifdef gnu_targets_arm_GCArmv7A\r
+#define _MHMPORT_ARM_GCARMV7A 1\r
+#else\r
+#define _MHMPORT_ARM_GCARMV7A 0\r
+#endif\r
+\r
+#if (_MHMPORT_C54 || _MHMPORT_C54F)\r
+#include <ti/mas/mhm/src/c54/mhmport.h>\r
+#elif (_MHMPORT_C55 || _MHMPORT_C55L)\r
+#include <ti/mas/mhm/src/c55/mhmport.h>\r
+#elif _MHMPORT_ARM_GCARMV7A\r
+#include <ti/mas/mhm/src/arm/mhmport.h>\r
+#elif (_MHMPORT_C64 || _MHMPORT_C64_BIG_ENDIAN || \\r
+ _MHMPORT_C64P || _MHMPORT_C64P_BIG_ENDIAN || \\r
+ _MHMPORT_ELF_C64P || _MHMPORT_ELF_C64P_BIG_ENDIAN || \\r
+ _MHMPORT_C66 || _MHMPORT_C66_BIG_ENDIAN || \\r
+ _MHMPORT_ELF_C66 || _MHMPORT_ELF_C66_BIG_ENDIAN || \\r
+ _MHMPORT_C674 || _MHMPORT_C674_BIG_ENDIAN)\r
+#include <ti/mas/mhm/src/c64/mhmport.h>\r
+#else\r
+#error invalid target\r
+#endif\r
+\r
+#define MHM_ALIGN_BITS TYP_STRUCT_LOG2ALIGN\r
+#define MHM_ALIGN_MASK (~((~0U)<<MHM_ALIGN_BITS)) \r
+\r
+/* Align gap is the maximum number of words that may be used to fill a gap\r
+ * to the next memory block due to alignment requirements. */\r
+#define MHM_MAX_ALIGNGAP MHM_ALIGN_MASK\r
+\r
+/* The maximum value of a buffer size and the maximum buffer size. They are\r
+ * not the same due to alignment gap. */\r
+#define MHM_MAX_SIZEVAL (~0U)\r
+#define MHM_MAX_SIZE (MHM_MAX_SIZEVAL - MHM_MAX_ALIGNGAP)\r
+\r
+/* Nothing past this point */\r
diff --git a/file_demo_bios/k2g/components/mss/mss.h b/file_demo_bios/k2g/components/mss/mss.h
--- /dev/null
@@ -0,0 +1,472 @@
+#ifndef _MSS_H\r
+#define _MSS_H\r
+\r
+/**\r
+ * @file mss.h\r
+ * @brief Contains external API for Multi-Source Selection (MSS) module.\r
+ *\r
+ * Copyright (c) 2007 – 2013 Texas Instruments Incorporated \r
+ * ALL RIGHTS RESERVED\r
+ */\r
+\r
+#include <ti/mas/types/types.h>\r
+#include <ti/mas/util/ecomem.h> /* memory descriptor structure */\r
+\r
+/* Define MSS Module as a master group in Doxygen format and add all MSS API \r
+ definitions to this group. */\r
+/** @defgroup mss_module MSS Module API\r
+ * @{\r
+ */\r
+/** @} */\r
+\r
+/** @defgroup mss_api_functions MSS Functions\r
+ * @ingroup mss_module\r
+ */\r
+\r
+/** @defgroup mss_api_structures MSS Data Structures\r
+ * @ingroup mss_module\r
+ */\r
+\r
+/** @defgroup mss_api_constants MSS Constants (enum's and define's)\r
+ * @ingroup mss_module\r
+ */\r
+\f\r
+/** @defgroup mss_err_code MSS Error Codes\r
+ * @ingroup mss_api_constants\r
+ * @{\r
+ *\r
+ * @name MSS error codes\r
+ *\r
+ * Error codes returned by MSS API functions.\r
+ */\r
+/*@{*/\r
+enum {\r
+ mss_NOERR = 0, /**< success, no error */\r
+ mss_ERR_NOMEMORY = 1, /**< supplied memory are not enough */\r
+ mss_ERR_NOTOPENED = 2, /**< MSS instance not in opened state */\r
+ mss_ERR_NOTCLOSED = 3, /**< MSS instance not in closed state */\r
+ mss_ERR_INVALIDPAR = 4, /**< configuration parameter is invalid */\r
+ mss_ERR_INVALIDSRC = 5 /**< no valid source is provided to process */\r
+};\r
+/*@}*/\r
+/** @} */\r
+\r
+/** @defgroup mss_samp_rate MSS Sampling Rates Definitions\r
+ * @ingroup mss_api_constants\r
+ * @{\r
+ *\r
+ * @name MSS sampling rates\r
+ *\r
+ * Sampling rates that are supported by MSS. \r
+*/\r
+/*@{*/\r
+enum {\r
+ mss_SAMP_RATE_8K = 1, /**< 8kHz */\r
+ mss_SAMP_RATE_16K = 2 /**< 16kHz */\r
+};\r
+typedef tint mssSampRate_t;\r
+\r
+/*@}*/\r
+/** @} */\r
+\r
+/** @defgroup mss_src_type MSS Source Type Definitions\r
+ * @ingroup mss_api_constants\r
+ * @{\r
+ *\r
+ * @name MSS source types\r
+ *\r
+ * MSS supports multiple types of sources which can be microphones, beams, etc.\r
+ * Microphones can be fixed (mounted on the device) or remote, and can have \r
+ * their own built-in acoustic echo canceller. \r
+*/\r
+/*@{*/\r
+enum {\r
+ mss_SRC_INVALID = -1, /**< Invalid source type */\r
+ mss_SRC_MIC_FIXED = 0, /**< Fixed microphones */\r
+ mss_SRC_MIC_REMOTE = 1, /**< Remote microphones */\r
+ mss_SRC_MIC_CLEAN = 2, /**< Clean microphones (with built-in AEC) */\r
+ mss_SRC_BEAM = 3, /**< Beams from microphone arrays */\r
+ mss_SRC_MAX = mss_SRC_BEAM\r
+};\r
+\r
+typedef tint mssSrcType_t;\r
+#define mss_MAX_NUM_SRC_TYPES (mss_SRC_MAX+1) /**< Max # of supported source types */\r
+/*@}*/\r
+/** @} */\r
+\r
+/** \r
+ * @ingroup mss_api_structures\r
+ *\r
+ * @brief Source structure used to manually select a source. \r
+ */\r
+typedef struct mssSrc_s {\r
+ mssSrcType_t group; /**< source group to be manually selected:\r
+ valid values: mss_SRC_MIC_FIXED, etc. */\r
+ tint index; /**< group index of the source to be manually selected:\r
+ range: 0 - number of sources minus 1 */\r
+} mssSrc_t;\r
+\r
+/** \r
+ * @ingroup mss_api_structures\r
+ *\r
+ * @brief Configuration structure for mssGetSizes()\r
+ * \brief This structure is used for getting memory requirements of MSS through \r
+ * function mssGetSizes().\r
+ */\r
+typedef struct mssSizeConfig_s {\r
+ mssSampRate_t max_sampling_rate; /**< Maximum sampling rate: \r
+ 8kHz: set to mss_SAMP_RATE_8K. \r
+ 16kHz: set to mss_SAMP_RATE_16K. */ \r
+ tint max_num_mic_fixed; /**< Maximum number of fixed microphones */\r
+ tint max_num_mic_remote; /**< Maximum number of remote microphones */\r
+ tint max_num_mic_clean; /**< Maximum number of microphones with built-in AEC */\r
+ tint max_num_beam; /**< Maximum number of beams from microphone array */\r
+} mssSizeConfig_t;\r
+\r
+/** \r
+ * @ingroup mss_api_structures\r
+ *\r
+ * @brief Configuration structure for mssNew()\r
+ * \brief This structure is used for creating a new MSS instance through \r
+ * function mssNew().\r
+ */\r
+typedef struct mssNewConfig_s {\r
+ void *handle; /**< handle */\r
+ mssSizeConfig_t sizeCfg; /**< size configration */\r
+} mssNewConfig_t;\r
+\r
+/** \r
+ * @ingroup mss_api_structures\r
+ *\r
+ * @brief Configuration structure for mssOpen()\r
+ * \brief This structure contains system parameters to configure an MSS \r
+ * instance through mssOpen(). MSS doesn't have default value for these\r
+ * parameters, and they must be set explicitly when mssOpen() is called\r
+ * the first time after mssNew(). \r
+ * \remarks This structure doesn't contain any configurable parameters that are\r
+ * controlled through mssControl_s to avoid confusion.\r
+ */\r
+typedef struct mssConfig_s {\r
+ mssSampRate_t sampling_rate; /**< Sampling rate: \r
+ 8kHz: set to mss_SAMP_RATE_8K. \r
+ 16kHz: set to mss_SAMP_RATE_16K. */ \r
+ tint num_mic_fixed; /**< Number of fixed microphones */\r
+ tint num_mic_remote; /**< Number of remote microphones */\r
+ tint num_mic_clean; /**< Number of microphones with built-in AEC */\r
+ tint num_mic_array; /**< Number of microphones in microphone-array*/\r
+ tint num_beam; /**< Number of beams from microphone array */\r
+} mssConfig_t;\r
+\r
+/** \r
+ * @ingroup mss_api_structures\r
+ *\r
+ * @brief MSS control bitfield structure \r
+ *\r
+ * Bitfield masks mss_CTL_MODES_XYZ may be used to change MSS operation modes\r
+ * through mssControl(), by constructing elements "mask" and "value" of mssModes_s.\r
+ *\r
+ * @verbatim\r
+ MSS Modes Control Bitfield: \r
+ ---------------------------------------\r
+ |15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|\r
+ ---------------------------------------\r
+ bits values meaning\r
+ (from LSB) \r
+ 0 1 MSS bypass operation - MSS always selects the \r
+ first available source passed to mssProcess(). \r
+ 0 MSS normal operation. \r
+ 1 1 Freeze the update of MSS states - MSS always selects \r
+ whatever source that was selcted before update was \r
+ frozen. \r
+ 0 Enable the update of MSS states - normal operation. \r
+ *\r
+ */\r
+typedef struct mssCtlBf_s {\r
+ tuint mask; /**< Indicates the bits to be changed. */\r
+ tuint value; /**< Gives new value of each bit indicated by mask. */\r
+/*@{*/\r
+#define mss_CTL_MODES_BYPASS 0x0001 /**< Bypass MSS */\r
+#define mss_CTL_MODES_FREEZE 0x0002 /**< Freeze MSS internal states update */\r
+#define mss_CTL_MODES_DEFAULT 0x0000 /**< Default (normal) operation modes */\r
+/*@}*/\r
+} mssCtlBf_t;\r
+\r
+/** \r
+ * @ingroup mss_api_structures\r
+ *\r
+ * @brief Control structure for mssControl()\r
+ *\r
+ * \brief This structure is used to change MSS configurable parameters. \r
+ * Element mssControl_s.valid_bitfield indicates which parameter to be\r
+ * changed, and other elements give the parameter values. \r
+ */\r
+typedef struct mssControl_s {\r
+ tuint valid_bitfield;\r
+/*@{*/\r
+#define mss_CTL_MODES 0x0001 /**< change mssControl_s.modes */\r
+#define mss_CTL_SELECT_SRC 0x0002 /**< change mssControl_s.source */\r
+#define mss_CTL_SWITCH_THRESH 0x0004 /**< change mssControl_s.switch_thresh */\r
+#define mss_CTL_SWITCH_DURATION 0x0008 /**< change mssControl_s.switch_duration */\r
+#define mss_CTL_SWITCH_HNAGOVER 0x0010 /**< change mssControl_s.switch_hangover */\r
+#define mss_CTL_ALL ( mss_CTL_MODES \\r
+ | mss_CTL_SELECT_SRC \\r
+ | mss_CTL_SWITCH_THRESH \\r
+ | mss_CTL_SWITCH_DURATION \\r
+ | mss_CTL_SWITCH_HNAGOVER ) /**< change all */\r
+/*@}*/ \r
+ mssCtlBf_t modes; /**< controls MSS operation modes */\r
+ mssSrc_t source; /**< the source selected by external user */\r
+ tint switch_thresh; /**< switch threshold in msec: a source needs\r
+ to meet the selection criteria for this\r
+ amount of time before switch to this \r
+ source starts. Default is 250msec */\r
+ tint switch_duration; /**< switch duration in msec: it takes this\r
+ amount of time to switch from one source \r
+ to another. Default is 500msec. */\r
+ tint switch_hangover; /**< switch hangover in msec: after a new \r
+ source is selected, it has to wait this \r
+ time before evaluating next possible \r
+ source switch. Default is 1000msec. */\r
+} mssControl_t;\r
+\r
+/** \r
+ * @ingroup mss_api_structures\r
+ *\r
+ * @brief MSS debug structure \r
+ *\r
+ * \brief This structure is used to provide MSS debugging information.\r
+ */\r
+#define mss_DEBUG_STATE_NUM_TUINT 16 \r
+typedef struct mssDebugStat_s {\r
+ mssSrc_t cur_src; /**< Current source */\r
+ mssSrc_t new_src; /**< Temporary new source */\r
+ tuint states[mss_DEBUG_STATE_NUM_TUINT]; /**< MSS internal states */\r
+} mssDebugStat_t;\r
+\r
+ \r
+/**\r
+ * @ingroup mss_api_functions\r
+ *\r
+ * @brief Function mssGetSizes() obtains from MSS the memory requirements of \r
+ * an instance, which depend on provided configuration parameters. \r
+ *\r
+ * @param[in] cfg Pointer to a size configuration structure.\r
+ * @param[out] nbufs Memory location to store the returned number of buffers\r
+ * required by the instance.\r
+ * @param[out] bufs Memory location to store the returned address of the \r
+ * vector of memory buffer descriptions required by MSS. \r
+ *\r
+ * @remark Type ecomemBuffer_t is defined in ecomem.h of util package.\r
+ *\r
+ * @retval MSS error code, always mss_NOERR.\r
+ */\r
+tint mssGetSizes(tint *nbufs, const ecomemBuffer_t **bufs, mssSizeConfig_t *cfg);\r
+\r
+/**\r
+ * @ingroup mss_api_functions\r
+ *\r
+ * @brief Function mssNew() creates a new instance of MSS. \r
+ * \remark Function mssNew() must be called before mssOpen()is called.\r
+ *\r
+ * @param[in] nbufs Number of memory buffers allocated by the user.\r
+ * @param[in] bufs Pointer to memory buffer descriptors defined by\r
+ * user.\r
+ * \remark Buffer alignment property of each buffer passed to mssNew() must be \r
+ * equal to or better than what is returned by mssGetSizes(), and must\r
+ * be in consistency with the base address of the buffer.\r
+ *\r
+ * @param[in] cfg Pointer to new instance configuration structure.\r
+ * @param[in,out] mssInst Memory location that will receive a pointer to \r
+ * the created MSS instance. This pointer will be \r
+ * returned by mssNew().\r
+ * @retval MSS error code. See \ref mss_err_code.\r
+ * @verbatim\r
+ error code description\r
+ mss_NOERR success\r
+ mss_ERR_INVALIDPAR *mssInst is not NULL or nbufs is not correct \r
+ mss_ERR_NOMEMORY properties of certain buffer are bad:\r
+ - size is not zero but base address is NULL,\r
+ - alignment and base address are not consistent,\r
+ - volatility does not meet requirement.\r
+ \endverbatim\r
+ *\r
+ * @pre The pointer at the location pointed to by mssInst must be set to NULL \r
+ * before this function is called.\r
+ * @post A pointer to the MSS instance buffer will be returned to the location\r
+ * pointed to by mssInst. Instance state will be set to closed.\r
+ */\r
+tint mssNew (void **mssInst, tint nbufs, ecomemBuffer_t *bufs, mssNewConfig_t *cfg);\r
+\r
+/**\r
+ * @ingroup mss_api_functions \r
+ *\r
+ * @brief Function mssOpen() initializes and configures an MSS instance.\r
+ *\r
+ * @remark This function must be called after mssNew() to initialize a new MSS\r
+ * instance. It may also be called to reconfigure an instance that \r
+ * has been closed by mssClose() but not deleted by mssDelete().\r
+ *\r
+ * @param[in] cfg Pointer to MSS configuration parameter.\r
+ * @param[in] mssInst Pointer to MSS instance.\r
+ * @retval MSS error code. See \ref mss_err_code.\r
+ * @verbatim\r
+ error code description\r
+ mss_NOERR success\r
+ mss_ERR_NOTCLOSED MSS instance state has not been set to closed, i.e,\r
+ mssNew() or mssClose() not called for the instance.\r
+ mss_ERR_INVALIDPAR bad configuration parameters:\r
+ - cfg is NULL\r
+ - total number of sources is less than or equal to 0.\r
+ \endverbatim\r
+ *\r
+ * @pre Function mssNew() must be called before mssOpen() is called the first\r
+ * time to open a new instance. For subsequent calls to open an existing\r
+ * instance, mssClose() must be called before mssOpen() to close the\r
+ * instance.\r
+ * @post All the parameters that are not part of mssConfig_t are set to \r
+ * default values by mssOpen. \r
+ * @post After MSS instance is opened, mssControl() and mssProcess() may \r
+ * be called for control or processing. \r
+ *\r
+ */\r
+tint mssOpen (void *mssInst, mssConfig_t *cfg);\r
+\r
+/**\r
+ * @ingroup mss_api_functions\r
+ *\r
+ * @brief Function mssControl() changes MSS operation modes or parameters. \r
+ *\r
+ * @param[in] mssInst Pointer to MSS instance.\r
+ * @param[in,out] ctl Pointer to MSS control structure. \r
+ *\r
+ * @retval MSS error code. See \ref mss_err_code.\r
+ * @verbatim\r
+ error code description\r
+ mss_NOERR success\r
+ mss_ERR_NOTOPENED MSS instance has not been opened\r
+ mss_ERR_INVALIDSRC mssControl_s.source is an invalid source\r
+ \endverbatim\r
+ *\r
+ */\r
+tint mssControl (void *mssInst, mssControl_t *ctl);\r
+\r
+/**\r
+ * @ingroup mss_api_functions\r
+ *\r
+ * @brief Function mssProcess() examines all input sources to MSS and selects \r
+ * the best one.\r
+ *\r
+ * @param[in] mssInst Pointer to MSS instance.\r
+ * @param[in] rx_out_sync Synchronized Rx path output signal, NOT to be\r
+ * selected, but to assist source\r
+ * selection. (Not used)\r
+ * @param[in] mic_fixed Signals from fixed mics.\r
+ * @param[in] mic_remote Signals from remote mics.\r
+ * @param[in] mic_clean Signals from mics with own AEC.\r
+ * @param[in] mic_array Signals from mics in the mic-array.\r
+ * @param[in] beam Signals from beams formed from mic-array.\r
+ *\r
+ * @param[out] out Buffer to store the selected source signal\r
+ *\r
+ * @remark All input signals and output signal are 16-bit linear samples \r
+ * of 10 msec. \r
+ *\r
+ * @retval MSS error code. See \ref mss_err_code.\r
+ * @verbatim\r
+ error code description\r
+ mss_NOERR success\r
+ mss_ERR_NOTOPENED MSS instance has not been opened\r
+ mss_ERR_INVALIDSRC mssControl_s.source is an invalid source\r
+ \endverbatim\r
+ *\r
+ */\r
+tint mssProcess(void *mssInst, void *out, void *rx_out_sync, void *mic_fixed[],\r
+ void *mic_remote[], void *mic_clean[], void *mic_array[], void *beam[]);\r
+\r
+/**\r
+ * @ingroup mss_api_functions\r
+ *\r
+ * @brief Function mssDebugStat() returns debug information.\r
+ *\r
+ * @param[in] mssInst Pointer to MSS instance.\r
+ * @param[out] mssDbg Debug information.\r
+ *\r
+ * @retval MSS error code. See \ref mss_err_code.\r
+ * @verbatim\r
+ error code description\r
+ mss_NOERR success\r
+ mss_ERR_NOTOPENED MSS instance has not been opened\r
+ \endverbatim\r
+ *\r
+ */ \r
+tint mssDebugStat(void *mssInst, mssDebugStat_t *mssDbg);\r
+\r
+/**\r
+ * @ingroup mss_api_functions\r
+ *\r
+ * @brief Function mssClose() closes an MSS instance. \r
+ * \remark Function mssClose() must be called before mssDelete() is called.\r
+ *\r
+ * @param[in] mssInst pointer to the instance to be closed\r
+ * @retval MSS error code. See \ref mss_err_code.\r
+ * @verbatim\r
+ error code description\r
+ mss_NOERR success\r
+ mss_ERR_NOTOPENED MSS instance is not in open state\r
+ \endverbatim\r
+ *\r
+ */\r
+tint mssClose(void *mssInst);\r
+\r
+/**\r
+ * @ingroup mss_api_functions\r
+ *\r
+ * @brief Function mssDelete() deletes the MSS instance identified by mssInst\r
+ * and returns the addresses of those buffers used by this instance. \r
+ *\r
+ * @param[in] nbufs Number of buffers used by this instance.\r
+ * @param[in] bufs Pointer to buffer descriptors to store returned\r
+ * addresses of the buffers used by this instance.\r
+ * @param[in,out] mssInst Memory location where the pointer to MSS instance\r
+ * is stored.\r
+ * @retval MSS error code. See \ref mss_err_code.\r
+ * @verbatim\r
+ error code description\r
+ mss_NOERR success\r
+ mss_ERR_NOTCLOSED MSS instance has not been closed.\r
+ mss_ERR_NOMEMORY Not enough buffer descriptors to store all returned \r
+ buffer addresses.\r
+ \endverbatim\r
+ *\r
+ * @pre MSS instance must be closed by mssClose() before mssDelete() is called. \r
+ * @post After mssDelete() is called, MSS instance pointer stored at mssInst \r
+ will be set to NULL, and the addresses of the buffers used by this \r
+ instance will be returned to the location pointed to by bufs.\r
+ */\r
+tint mssDelete(void **mssInst, tint nbufs, ecomemBuffer_t *bufs);\r
+\r
+\r
+/* -------------------------- MSS Call Table -------------------------------- */\r
+/**\r
+ * @ingroup mss_api_structures\r
+ *\r
+ * @brief MSS call table\r
+ *\r
+ */\r
+typedef struct {\r
+ tint (*mssClose) (void *mssInst);\r
+ tint (*mssControl) (void *mssInst, mssControl_t *ctl);\r
+ tint (*mssDelete) (void **mssInst, tint nbufs, ecomemBuffer_t *bufs);\r
+ tint (*mssGetSizes) (tint *nbufs, const ecomemBuffer_t **bufs,\r
+ mssSizeConfig_t *cfg);\r
+ tint (*mssNew) (void **mssInst, tint nbufs, ecomemBuffer_t *bufs,\r
+ mssNewConfig_t *cfg);\r
+ tint (*mssOpen) (void *mssInst, mssConfig_t *cfg);\r
+ tint (*mssProcess) (void *mssInst, void *out, void *rx_out_sync, \r
+ void *mic_fixed[], void *mic_remote[], void *mic_clean[], \r
+ void *mic_array[], void *beam[]); \r
+} mssCallTable_t;\r
+\r
+#endif\r
+/* Nothing past this point */\r
+\r
diff --git a/file_demo_bios/k2g/components/mss/src/mss.c b/file_demo_bios/k2g/components/mss/src/mss.c
--- /dev/null
@@ -0,0 +1,497 @@
+/**\r
+ * @file mss.c\r
+ * @brief Contains external API for Multi-Source Selection (MSS) module \r
+ * instantiation.\r
+ *\r
+ * (C) Copyright 2011, Texas Instruments, Inc.\r
+ */\r
+\r
+#include <xdc/std.h>\r
+#include <ti/mas/types/types.h>\r
+#include <ti/mas/fract/fract.h>\r
+#include <ti/mas/vpe/svd.h>\r
+\r
+//#include <ti/mas/aer/mss.h>\r
+//#include <ti/mas/aer/src/mssloc.h>\r
+#include "../mss.h"\r
+#include "mssloc.h"\r
+\r
+#define MSS_DEF_SWITCH_WAIT_TIME 250 /* msec */\r
+#define MSS_DEF_SWITCH_DURATION 500 /* msec */\r
+#define MSS_DEF_SWITCH_HANGOVER 1000 /* msec */\r
+#define MSS_DEF_FADE_PHA_INC_8KHZ 268435L /* Q31 phase increment of crossfade for \r
+ switch duration of 1 second at 8kHz:\r
+ 2^31/8000, where 2^31 corresponds to pi. */\r
+/* MSS memory buffer descriptors */\r
+#define MSS_NUM_BUFS 1\r
+#define MSS_INSTANCE_BUF 0\r
+ecomemBuffer_t mssBufs[MSS_NUM_BUFS] = { \r
+ /* CLASS, LOG2 ALIGNMENT, BUFFER SIZE, VOLATILITY, BASE */\r
+ ecomem_CLASS_EXTERNAL, TYP_STRUCT_LOG2ALIGN, 0, FALSE, NULL\r
+};\r
+\r
+/******************************************************************************\r
+ * FUNCTION PURPOSE: Return buffer sizes for the MSS module\r
+ ******************************************************************************\r
+ * DESCRIPTION: Calculate the worst case buffer sizes for the MSS. Also specify\r
+ * alignment and volatility requirements.\r
+ *\r
+ * tint mssGetSizes (\r
+ * tint *nbufs, - address to store number of buffers\r
+ * const ecomemBuffer_t **bufs, - address to store buffer descriptors\r
+ * mssSizeConfig_t *cfg) - information to be used in calculating the\r
+ * worst case buffer sizes\r
+ *****************************************************************************/\r
+tint mssGetSizes(tint *nbufs, const ecomemBuffer_t **bufs, mssSizeConfig_t *cfg)\r
+{\r
+ tint svd_size, mss_size, mss_inst_size, num_src;\r
+\r
+ /* Get memory requirement of SVD */\r
+ svdGetSizes (&svd_size);\r
+ \r
+ /* Calculate total memory of MSS: instance + all SVDs*/\r
+ svd_size = mss_SIZE_ALIGN(svd_size,TYP_STRUCT_LOG2ALIGN);\r
+ mss_inst_size = sizeof(mssInst_t);\r
+ mss_inst_size = mss_SIZE_ALIGN(mss_inst_size,TYP_STRUCT_LOG2ALIGN);\r
+ num_src = cfg->max_num_mic_fixed + cfg->max_num_mic_remote\r
+ + cfg->max_num_mic_clean + cfg->max_num_beam;\r
+ mss_size = svd_size*num_src + mss_inst_size;\r
+ mssBufs[MSS_INSTANCE_BUF].size = mss_size;\r
+\r
+ /* Return number of buffers required by MSS */ \r
+ *nbufs = MSS_NUM_BUFS;\r
+ \r
+ /* Return buffer specifications */\r
+ *bufs = &mssBufs[0]; \r
+ \r
+ return(mss_NOERR);\r
+ \r
+} /* mssGetSizes */\r
+\r
+/******************************************************************************\r
+ * FUNCTION PURPOSE: Create an instance of the MSS module.\r
+ ******************************************************************************\r
+ * DESCRIPTION: Creates an instance of the MSS and initializes memory buffers.\r
+ *\r
+ * tint mssNew (\r
+ * void **mssInst, - address of the memory location that will\r
+ * receive a pointer to instance structure\r
+ * tint nbufs, - number of memory buffers\r
+ * ecomemBuffer_t *bufs, - a vector of buffer descriptors\r
+ * mssNewConfig_t *cfg) - a pointer to configuration structure\r
+ *\r
+ * Return value: \r
+ * mss_NOERR - success\r
+ * mss_ERR_INVALIDPAR - *mssInst is not NULL or nbufs is not correct \r
+ * mss_ERR_NOMEMORY - MSS instance pointer is not NULL, or\r
+ * number of buffers is not correct, or\r
+ * buffer properties are not correct\r
+ *****************************************************************************/\r
+tint mssNew (void **mssInst, tint nbufs, ecomemBuffer_t *bufs, mssNewConfig_t *cfg)\r
+{\r
+ mssInst_t *inst;\r
+ ecomemBuffer_t *bufp;\r
+ tint svd_size, mss_size, mss_inst_size, num_src;\r
+ int i;\r
+ \r
+ /* Test instance pointer (must be NULL) */\r
+ if ((*mssInst != NULL) || (nbufs != MSS_NUM_BUFS)) {\r
+ return(mss_ERR_INVALIDPAR);\r
+ }\r
+\r
+ /* Check all dynamic buffers (base address != NULL) */\r
+ for (i=0, bufp=&bufs[0]; i<MSS_NUM_BUFS; i++, bufp++) {\r
+ if ((bufp->size>0) && (bufp->base==NULL)) {\r
+ return(mss_ERR_NOMEMORY);\r
+ }\r
+ }\r
+\r
+ /* Get the instance buffer descriptor returned by the user */\r
+ bufp = &bufs[MSS_INSTANCE_BUF];\r
+\r
+ /* Calculate total memory of MSS: instance + all SVDs */\r
+ svdGetSizes (&svd_size);\r
+ svd_size = mss_SIZE_ALIGN(svd_size,TYP_STRUCT_LOG2ALIGN);\r
+ mss_inst_size = sizeof(mssInst_t);\r
+ mss_inst_size = mss_SIZE_ALIGN(mss_inst_size,TYP_STRUCT_LOG2ALIGN);\r
+ num_src = cfg->sizeCfg.max_num_mic_fixed + cfg->sizeCfg.max_num_mic_remote\r
+ + cfg->sizeCfg.max_num_mic_clean + cfg->sizeCfg.max_num_beam;\r
+ mss_size = svd_size*num_src + mss_inst_size;\r
+ \r
+ /* Check if the provided memory is good: size, alignment, and volatility */\r
+ if ( (bufp->size < mss_size) \r
+ || (!typChkAlign(bufp->base, bufp->log2align)) || bufp->volat) {\r
+ return(mss_ERR_NOMEMORY);\r
+ }\r
+ \r
+ /* Assign instance memory and initialize instance */\r
+ inst = (mssInst_t *)bufp->base;\r
+ inst->max_sampling_rate = cfg->sizeCfg.max_sampling_rate;\r
+ inst->svd = (tword *)bufp->base + mss_inst_size; /* SVD address for 1st src */\r
+ inst->svd_size = svd_size;\r
+ inst->handle = cfg->handle; /* init handle in instance */\r
+ inst->state = MSS_CLOSED; /* set MSS state to CLOSED */\r
+\r
+ /* Return instance address */\r
+ *mssInst = (void *)inst;\r
+\r
+ return(mss_NOERR);\r
+ \r
+} /* mssNew() */\r
+\r
+/******************************************************************************\r
+ * FUNCTION PURPOSE: Control of MSS\r
+ ******************************************************************************\r
+ * DESCRIPTION: Controls the operation and parameters of the MSS.\r
+ *\r
+ * tint mssControl (\r
+ * void *mssInst, - a pointer to MSS instance\r
+ * tint mssControl *ctl) - a pointer to the control code structure \r
+ *\r
+ * Return value: mss_NOERR - success\r
+ * mss_ERR_NOTOPENED - MSS not opened\r
+ * mss_ERR_INVALIDSRC - the manually selected source is invalid \r
+ * mss_ERR_INVALIDPAR - parameter is invalid \r
+ *****************************************************************************/\r
+tint mssControl (void *mssInst, mssControl_t *ctl)\r
+{\r
+ mssInst_t *inst = (mssInst_t *)mssInst;\r
+ tint ret_val;\r
+\r
+ /* Make sure that MSS is open */\r
+ if (inst->state != MSS_OPEN) {\r
+ return (mss_ERR_NOTOPENED);\r
+ } \r
+ \r
+ ret_val = mss_NOERR;\r
+\r
+ /* Change the operation modes bitfield */\r
+ if(mss_chkbit(ctl->valid_bitfield, mss_CTL_MODES)) {\r
+ inst->modes_bf = (inst->modes_bf & (~ctl->modes.mask))\r
+ | (ctl->modes.value & ctl->modes.mask);\r
+ } /* mss_CTL_MODES */\r
+ \r
+ /* Manually select source */\r
+ if(mss_chkbit(ctl->valid_bitfield, mss_CTL_SELECT_SRC)) {\r
+ /* Check if selected source is valid:\r
+ - source group must be one of the groups defined in mss.h, \r
+ - source index must be less than the number of sources in the group. */\r
+ if( (ctl->source.group > mss_SRC_MAX)\r
+ || (ctl->source.group < mss_SRC_MIC_FIXED) ){\r
+ ret_val = mss_ERR_INVALIDSRC;\r
+ } \r
+ else if (ctl->source.index > inst->num_src_per_group[ctl->source.group]) {\r
+ ret_val = mss_ERR_INVALIDSRC;\r
+ }\r
+ else if ( (ctl->source.group != inst->cur_src.group) \r
+ || (ctl->source.index != inst->cur_src.index) ) { \r
+ /* Prepare to switch source if selected source is valid. If in the middle of a \r
+ source switch initiated by MSS internally, internal switch will be stopped. */\r
+ inst->switch_src_cnt = 0;\r
+ inst->crossfade_phase = MSS_FADE_PHA_INIT;\r
+ inst->switch_hang_cnt = inst->params.switch_hangover;\r
+ inst->new_src = ctl->source;\r
+ mss_setbit(inst->state_bf, MSS_STATE_BIT_SWITCH_SRC);\r
+ }\r
+ } /* mss_CTL_SELECT_SRC */\r
+\r
+ /* Change the threshold of source switch */\r
+ if(mss_chkbit(ctl->valid_bitfield, mss_CTL_SWITCH_THRESH)) {\r
+ /* Convert parameter from msec to # of samples */\r
+ inst->params.switch_threshold = MSS_NUM_SAMP_1MS_8KHZ * inst->sampling_rate\r
+ * ctl->switch_thresh;\r
+ }\r
+ \r
+ /* Change the duration of source switch */\r
+ if(mss_chkbit(ctl->valid_bitfield, mss_CTL_SWITCH_DURATION)) {\r
+ /* Convert parameter from msec to # of samples */\r
+ inst->params.switch_duration = MSS_NUM_SAMP_1MS_8KHZ * inst->sampling_rate\r
+ * ctl->switch_duration;\r
+ /* Calculate per sample Q31 phase increment for crossfade implementation: \r
+ 2^31/duration, where 2^31 corresponds to pi. */ \r
+ inst->crossfade_phase_inc = frct_LFRCT_MAX/inst->params.switch_duration; \r
+ } /* mss_CTL_SWITCH_DURATION */\r
+\r
+ /* Change hangover of source switch */\r
+ if(mss_chkbit(ctl->valid_bitfield, mss_CTL_SWITCH_HNAGOVER)) {\r
+ /* Convert parameter from msec to # of samples */\r
+ inst->params.switch_hangover = MSS_NUM_SAMP_1MS_8KHZ * inst->sampling_rate\r
+ * ctl->switch_hangover;\r
+ } /* mss_CTL_SWITCH_HNAGOVER */\r
+ \r
+ return ret_val;\r
+} /* mssControl */\r
+ \r
+/******************************************************************************\r
+ * FUNCTION PURPOSE: Open and configure an MSS instance.\r
+ ******************************************************************************\r
+ * DESCRIPTION: This function configures an instance of the MSS.\r
+ *\r
+ * tint mssOpen (\r
+ * void *mssInst, - a pointer to MSS instance\r
+ * mssConfig_t *cfg) - a pointer to MSS configuration structure\r
+ *\r
+ *****************************************************************************/\r
+tint mssOpen (void *mssInst, mssConfig_t *cfg)\r
+{\r
+ mssInst_t * inst = (mssInst_t *)mssInst;\r
+ tword * svd_ptr;\r
+ tint num_src, svd_size;\r
+ int i;\r
+ \r
+ /* Return error if state is not CLOSED */ \r
+ if(inst->state != MSS_CLOSED) {\r
+ return(mss_ERR_NOTCLOSED);\r
+ }\r
+ \r
+ /* Return error if no configuration parameters */\r
+ if(cfg == NULL){\r
+ return(mss_ERR_INVALIDPAR);\r
+ }\r
+ \r
+ /* Read configuration */\r
+ num_src = cfg->num_mic_fixed+cfg->num_mic_remote+cfg->num_mic_clean+cfg->num_beam;\r
+ if(num_src <= 0) {\r
+ return(mss_ERR_INVALIDPAR);\r
+ }\r
+ \r
+ inst->sampling_rate = cfg->sampling_rate;\r
+ inst->num_src_per_group[mss_SRC_MIC_FIXED] = cfg->num_mic_fixed;\r
+ inst->num_src_per_group[mss_SRC_MIC_REMOTE] = cfg->num_mic_remote;\r
+ inst->num_src_per_group[mss_SRC_MIC_CLEAN] = cfg->num_mic_clean;\r
+ inst->num_src_per_group[mss_SRC_BEAM] = cfg->num_beam;\r
+ inst->num_mic_array = cfg->num_mic_array; /* not considered as source to select */\r
+ \r
+ /* Init SVDs */\r
+ svd_ptr = (tword *)inst->svd;\r
+ for(i=0; i<num_src; i++) {\r
+ if (!typChkAlign(svd_ptr, TYP_STRUCT_LOG2ALIGN)) {\r
+ return(mss_ERR_NOMEMORY);\r
+ }\r
+ svdInit((void *)svd_ptr, inst->sampling_rate);\r
+ svd_ptr += svd_size;\r
+ } \r
+ \r
+ /* Set parameters to default */\r
+ inst->params.switch_threshold = MSS_DEF_SWITCH_WAIT_TIME * MSS_NUM_SAMP_1MS_8KHZ\r
+ * inst->sampling_rate; /* convert msec to # of samples */\r
+ inst->params.switch_duration = MSS_DEF_SWITCH_DURATION * MSS_NUM_SAMP_1MS_8KHZ\r
+ * inst->sampling_rate; /* convert msec to # of samples */\r
+ inst->crossfade_phase_inc = MSS_DEF_FADE_PHA_INC_8KHZ / inst->sampling_rate;\r
+ inst->params.switch_hangover = MSS_DEF_SWITCH_HANGOVER * MSS_NUM_SAMP_1MS_8KHZ \r
+ * inst->sampling_rate; /* convert msec to # of samples */\r
+ inst->modes_bf = mss_CTL_MODES_DEFAULT;\r
+ \r
+ /* Set initially selected source - the first valid source */\r
+ if(cfg->num_mic_fixed > 0) {\r
+ inst->cur_src.group = mss_SRC_MIC_FIXED;\r
+ inst->cur_src.index = 0;\r
+ }\r
+ else if(cfg->num_mic_remote > 0) {\r
+ inst->cur_src.group = mss_SRC_MIC_REMOTE;\r
+ inst->cur_src.index = 0;\r
+ }\r
+ else if(cfg->num_mic_clean > 0) {\r
+ inst->cur_src.group = mss_SRC_MIC_CLEAN;\r
+ inst->cur_src.index = 0;\r
+ }\r
+ else {\r
+ inst->cur_src.group = mss_SRC_BEAM;\r
+ inst->cur_src.index = 0;\r
+ }\r
+ \r
+ /* Initialize instance */ \r
+ inst->frame_size = inst->sampling_rate * MSS_FRAME_SIZE_8KHZ;\r
+ inst->switch_hang_cnt = inst->params.switch_hangover;\r
+ inst->crossfade_cnt = 0;\r
+ inst->state_bf = 0;\r
+ \r
+ /* Declare the instance OPEN */\r
+ inst->state = MSS_OPEN; \r
+\r
+ return(mss_NOERR);\r
+} /* mssOpen */\r
+\r
+/******************************************************************************\r
+ * FUNCTION PURPOSE: Returns debuging information for an MSS instance.\r
+ ******************************************************************************\r
+ * DESCRIPTION: This function returns debuging information.\r
+ *\r
+ * tint mssDebugStat (\r
+ * void *mssInst, - a pointer to MSS instance\r
+ * mssDebugStat_t *mssDbg) - a pointer to MSS debug structure\r
+ *\r
+ *****************************************************************************/\r
+tint mssDebugStat(void *mssInst, mssDebugStat_t *mssDbg)\r
+{\r
+ tint svd_decision;\r
+ tword *svd_ptr;\r
+ LFract sig_pow;\r
+ Fract spch_db, noise_db;\r
+ UFract svd_thresh;\r
+ mssInst_t *inst = (mssInst_t *)mssInst;\r
+\r
+ /* Make sure that MSS is open */\r
+ if (inst->state != MSS_OPEN) {\r
+ return (mss_ERR_NOTOPENED);\r
+ } \r
+ \r
+ mssDbg->cur_src = inst->cur_src;\r
+ mssDbg->new_src = inst->new_src;\r
+ mssDbg->states[0] = (tuint)(inst->crossfade_phase>>16);\r
+ mssDbg->states[1] = (tuint)inst->gain_in;\r
+ mssDbg->states[2] = (tuint)inst->gain_out;\r
+ mssDbg->states[3] = (tuint)inst->switch_src_cnt; \r
+ mssDbg->states[4] = (tuint)inst->state_bf;\r
+\r
+ /* only debug fixed mics for now */\r
+ if(inst->num_src_per_group[mss_SRC_MIC_FIXED] > 1) {\r
+ svd_ptr = inst->svd;\r
+ svd_decision = svdGetDecision(svd_ptr, &sig_pow);\r
+ mssDbg->states[5] = (tuint)svd_decision;\r
+ \r
+ svdGetLevels (svd_ptr, &spch_db, &noise_db, &svd_thresh);\r
+ mssDbg->states[6] = (tuint)spch_db;\r
+ mssDbg->states[7] = (tuint)noise_db;\r
+ \r
+ svd_ptr += inst->svd_size;\r
+ svd_decision = svdGetDecision(svd_ptr, &sig_pow);\r
+ mssDbg->states[8] = (tuint)svd_decision;\r
+ \r
+ svdGetLevels (svd_ptr, &spch_db, &noise_db, &svd_thresh);\r
+ mssDbg->states[9] = (tuint)spch_db;\r
+ mssDbg->states[10] = (tuint)noise_db;\r
+ }\r
+ \r
+ return(mss_NOERR);\r
+ \r
+} /* mssDebugStat */\r
+\r
+/******************************************************************************\r
+ * FUNCTION PURPOSE: Close an instance of MSS.\r
+ ******************************************************************************\r
+ * DESCRIPTION: This function closes an instance of MSS by simply changing\r
+ * the state to CLOSED.\r
+ *\r
+ * tint mssClose (\r
+ * void *mssInst) - a pointer to MSS instance\r
+ *\r
+ *****************************************************************************/\r
+tint mssClose (void *mssInst)\r
+{\r
+ mssInst_t *inst = (mssInst_t *)mssInst;\r
+\r
+ if(inst->state != MSS_OPEN) {\r
+ return(mss_ERR_NOTOPENED);\r
+ }\r
+ \r
+ /*Change the MSS state to CLOSED */\r
+ inst->state = MSS_CLOSED; \r
+ \r
+ return(mss_NOERR);\r
+} /* mssClose */\r
+\r
+/******************************************************************************\r
+ * FUNCTION PURPOSE: Delete an MSS instance.\r
+ ******************************************************************************\r
+ * DESCRIPTION: Deletes an instance of MSS. Clears the instance pointer.\r
+ * Actual "deallocation" of instance should be done elsewhere\r
+ * after this function is called. Hence, one has to save the\r
+ * buffer descriptors to make "deallocation" possible.\r
+ *\r
+ * tint mssDelete (\r
+ * void **mssInst, - an address of memory location that contains\r
+ * a pointer to instance structure\r
+ * tint nbufs, - number of memory buffers\r
+ * ecomemBuffer_t *bufs) - vector of buffer descriptors\r
+ *\r
+ *****************************************************************************/\r
+tint mssDelete (void **mssInst, tint nbufs, ecomemBuffer_t *bufs)\r
+{\r
+ mssInst_t *inst = (mssInst_t *)*mssInst;\r
+\r
+ /* check if instance is already closed */\r
+ if (inst->state != MSS_CLOSED) { \r
+ return (mss_ERR_NOTCLOSED);\r
+ }\r
+ \r
+ /* check if enough descriptors are provided to store all buffer addresses */\r
+ if (nbufs < MSS_NUM_BUFS) { \r
+ return (mss_ERR_NOMEMORY);\r
+ }\r
+ \r
+ /* return buffer addresses */\r
+ bufs[MSS_INSTANCE_BUF].base = inst; /* instance structure */\r
+\r
+ /* clear the instance pointer */\r
+ *mssInst = NULL; \r
+\r
+ return(mss_NOERR);\r
+} /* mssDelete */\r
+\r
+/******************************************************************************\r
+ * FUNCTION PURPOSE: Validates the input sources to MSS.\r
+ ******************************************************************************\r
+ * DESCRIPTION: This function examines the input sources to MSS to make sure\r
+ * all sources are valid.\r
+ *\r
+ *****************************************************************************/\r
+\r
+tint mss_src_validation(mssInst_t *inst, void *rx_out_sync, void *mic_fix[],\r
+ void *mic_rem[], void *mic_cln[], void *mic_arr[], void *beam[])\r
+{ \r
+ int i;\r
+ \r
+ /* Return error if synchronized Rx out doesn't have valid data (NOT USED!!!) */\r
+ /*\r
+ * if ( rx_out_sync == NULL ) { \r
+ * return (mss_ERR_INVALIDSRC); \r
+ * }\r
+ */\r
+\r
+ /* Check if all sources have valid data.\r
+ Currently MSS only supports fixed mic, remote mic, and clean mic.\r
+ */\r
+ if(inst->num_src_per_group[mss_SRC_MIC_FIXED] > 0) {\r
+ if(mic_fix == NULL) {\r
+ return (mss_ERR_INVALIDSRC);\r
+ }\r
+ else {\r
+ for (i=0; i<inst->num_src_per_group[mss_SRC_MIC_FIXED]; i++) {\r
+ if(mic_fix[i] == NULL) {\r
+ return (mss_ERR_INVALIDSRC);\r
+ }\r
+ }\r
+ }\r
+ } /* mss_SRC_MIC_FIXED */\r
+ \r
+ if(inst->num_src_per_group[mss_SRC_MIC_REMOTE] > 0) {\r
+ if(mic_rem == NULL) {\r
+ return (mss_ERR_INVALIDSRC);\r
+ }\r
+ else {\r
+ for (i=0; i<inst->num_src_per_group[mss_SRC_MIC_REMOTE]; i++) {\r
+ if(mic_rem[i] == NULL) {\r
+ return (mss_ERR_INVALIDSRC);\r
+ }\r
+ }\r
+ }\r
+ } /* mss_SRC_MIC_REMOTE */\r
+ \r
+ if(inst->num_src_per_group[mss_SRC_MIC_CLEAN] > 0) {\r
+ if(mic_cln == NULL) {\r
+ return (mss_ERR_INVALIDSRC);\r
+ }\r
+ else {\r
+ for (i=0; i<inst->num_src_per_group[mss_SRC_MIC_CLEAN]; i++) {\r
+ if(mic_cln[i] == NULL) {\r
+ return (mss_ERR_INVALIDSRC);\r
+ }\r
+ }\r
+ }\r
+ } /* mss_SRC_MIC_CLEAN */\r
+ \r
+ return (mss_NOERR); \r
+} /* mss_src_validation */\r
+\r
+/* Nothing past this point */\r
diff --git a/file_demo_bios/k2g/components/mss/src/mssloc.h b/file_demo_bios/k2g/components/mss/src/mssloc.h
--- /dev/null
@@ -0,0 +1,83 @@
+#ifndef _MSSLOC_H\r
+#define _MSSLOC_H\r
+\r
+//#include <ti/mas/aer/mss.h>\r
+\r
+#include "../mss.h"\r
+\r
+/* MSS states */\r
+enum {\r
+ MSS_CLOSED = 0,\r
+ MSS_OPEN = 1\r
+};\r
+\r
+\r
+#define MSS_STATE_BIT_SWITCH_SRC 0x0001\r
+\r
+#define MSS_FRAME_SIZE_8KHZ 80 /* samples */\r
+#define MSS_NUM_SAMP_1MS_8KHZ 8 /* samples per msec at 8kHz */\r
+#define MSS_FADE_PHA_INIT 0xC0000000 /* Q31 initial phase of crossfade:\r
+ -1/2 corresponding to -pi/2 */\r
+\r
+typedef struct mssParams_s {\r
+ tint switch_threshold;\r
+ tint switch_duration;\r
+ tint switch_hangover;\r
+} mssParams_t;\r
+\r
+typedef struct mssInst_s {\r
+ tint state; /* MSS_CLOSED or MSS_OPEN */\r
+ void * handle; /* MSS instance handle */\r
+ \r
+ mssParams_t params;\r
+ mssSrc_t cur_src;\r
+ mssSrc_t new_src;\r
+ tword *svd;\r
+ \r
+ tint num_src_per_group[mss_MAX_NUM_SRC_TYPES];\r
+ tint modes_bf;\r
+ tint state_bf;\r
+\r
+ LFract crossfade_phase;\r
+ LFract crossfade_phase_inc;\r
+ tint crossfade_cnt;\r
+ tint switch_hang_cnt;\r
+ tint svd_size;\r
+ tint max_sampling_rate;\r
+ tint sampling_rate;\r
+ tint frame_size;\r
+ tint num_mic_array;\r
+\r
+ tint switch_src_cnt;\r
+ tuint ramp_up;\r
+ Fract ramp_alpha;\r
+ \r
+ /* for debugging only */\r
+ mssSrc_t temp_src; \r
+ Fract gain_in; \r
+ Fract gain_out; \r
+} mssInst_t;\r
+\r
+/* MSS control bitfield macros */\r
+#define mss_setbit(field,b) ( (field) |= ( b))\r
+#define mss_clrbit(field,b) ( (field) &= (~(b)))\r
+#define mss_chkbit(field,b) (((field) & ( b)) == (b))\r
+\r
+/* min, max macros */\r
+#define mss_MAX(x,y) ( ((x) > (y)) ? (x) : (y) )\r
+#define mss_MIN(x,y) ( ((x) < (y)) ? (x) : (y) )\r
+\r
+/* Size align to L2 power of 2: for L2=3 floor((x+7)/8)*8 */\r
+#define mss_SIZE_ALIGN(x,L2) (((L2) < 1) ? (x) : (((x) + ( (1<<(L2)) - 1 )) & ((~0uL)<<(L2))))\r
+\r
+void mss_src_selection(mssInst_t *inst, void *mic_fix[], void *mic_rem[], \r
+ void *mic_cln[]);\r
+void mss_src_output(mssInst_t *inst, void *out, void *mic_fix[], \r
+ void *mic_rem[], void *mic_cln[]);\r
+tint mss_src_validation(mssInst_t *inst, void *rx_out_sync, void *mic_fix[],\r
+ void *mic_rem[], void *mic_cln[], void *mic_arr[], void *beam[]);\r
+void * mss_get_first_src(mssInst_t *inst, void *mic_fix[], void *mic_rem[], \r
+ void *mic_cln[]);\r
+\r
+#endif\r
+/* Nothing past this point */\r
diff --git a/file_demo_bios/k2g/components/mss/src/mssproc.c b/file_demo_bios/k2g/components/mss/src/mssproc.c
--- /dev/null
@@ -0,0 +1,365 @@
+/**\r
+ * @file mssproc.c\r
+ * @brief Contains Main Processing Routines for Multi-Source Selection \r
+ * (MSS) module.\r
+ *\r
+ * (C) Copyright 2011, Texas Instruments, Inc.\r
+ */\r
+\r
+#include <xdc/std.h>\r
+#include <ti/mas/types/types.h>\r
+#include <ti/mas/fract/fract.h>\r
+#include <ti/mas/util/utl.h>\r
+#include <ti/mas/vpe/svd.h>\r
+#include "string.h"\r
+\r
+//#include <ti/mas/aer/mss.h>\r
+//#include <ti/mas/aer/src/mssloc.h>\r
+\r
+#include "../mss.h"\r
+#include "mssloc.h"\r
+\r
+#define MSS_MIN_POW 2684 /* correpsonds to -50dBm */\r
+\r
+/******************************************************************************\r
+ * FUNCTION PURPOSE: Main Processing API of MSS \r
+ ******************************************************************************\r
+ * DESCRIPTION: This function processes the multi-source inputs and selects one\r
+ * source as the output. Crossfading is implemented during the \r
+ * switch of two sources. \r
+ *\r
+ * tint mssProcess (\r
+ * Input:\r
+ * void *mssInst, - pointer to MSS instance\r
+ * void *rx_out_sync, - synchronized Rx out, NOT to be selected, but used to\r
+ * help make right selection.\r
+ * void *mic_fix[], - data from fixed mics, may be selected.\r
+ * void *mic_rem[], - data from remote mics, may be selected.\r
+ * void *mic_cln[], - data from clean mics, may be selected.\r
+ * void *mic_arr[], - data from microphone arrays, NOT to be selected, but\r
+ * used to help make right selection.\r
+ * void *beam[], - data from beamformers, may be selected.\r
+ * Output:\r
+ * void *out, - data of the selected source, or a mix of two sources\r
+ * during the switch. \r
+ *\r
+ *****************************************************************************/\r
+tint mssProcess(void *mssInst, void *out, void *rx_out_sync, void *mic_fix[],\r
+ void *mic_rem[], void *mic_cln[], void *mic_arr[], void *beam[])\r
+{\r
+ tint src_err; \r
+ void *first_src;\r
+ mssInst_t * inst = (mssInst_t *)mssInst;\r
+ \r
+ /* Return error if state is not OPENED */ \r
+ if(inst->state != MSS_OPEN) {\r
+ return(mss_ERR_NOTOPENED);\r
+ }\r
+\r
+ /* Check if all sources are valid and return error if any one is invalid. */ \r
+ src_err = mss_src_validation(inst, rx_out_sync, mic_fix, mic_rem, mic_cln,\r
+ mic_arr, beam); \r
+ if(src_err == mss_ERR_INVALIDSRC) {\r
+ return(mss_ERR_INVALIDSRC);\r
+ }\r
+\r
+ /* The BYPASS mode just gets the first available source passed to the output */\r
+ if(mss_chkbit(inst->modes_bf, mss_CTL_MODES_BYPASS)) {\r
+ first_src = mss_get_first_src(inst, mic_fix, mic_rem, mic_cln);\r
+ memcpy(out, first_src, inst->frame_size*sizeof(linSample));\r
+ }\r
+ else { /* If not bypass, check for FREEZE */\r
+ if(!mss_chkbit(inst->modes_bf, mss_CTL_MODES_FREEZE)) {\r
+ /* Multi-source selection: \r
+ Currently only supports fixed, remote and clean mics. */\r
+ mss_src_selection(inst, mic_fix, mic_rem, mic_cln); \r
+ }\r
+\r
+ /* Output selected source, crossfading during switch between two sources. */\r
+ mss_src_output(inst, out, mic_fix, mic_rem, mic_cln);\r
+ }\r
+ \r
+ return src_err;\r
+} /* mssProcess */\r
+\r
+/******************************************************************************\r
+ * FUNCTION PURPOSE: Get the First Valid Source \r
+ ******************************************************************************\r
+ * DESCRIPTION: This function orted.\r
+ *\r
+ * tint mss_get_first_src (\r
+ * Input:\r
+ * void *inst, - pointer to MSS instance\r
+ * void *mic_fix[], - data from fixed mics, may be selected.\r
+ * void *mic_rem[], - data from remote mics, may be selected.\r
+ * void *mic_cln[], - data from clean mics, may be selected.\r
+ * Output:\r
+ * void * , - address of the first valid source\r
+ *****************************************************************************/\r
+void * mss_get_first_src(mssInst_t *inst, void *mic_fix[], void *mic_rem[], \r
+ void *mic_cln[])\r
+{\r
+ void * first_src;\r
+ \r
+ if(inst->num_src_per_group[mss_SRC_MIC_FIXED] > 0) {\r
+ first_src = mic_fix[0];\r
+ }\r
+ else if(inst->num_src_per_group[mss_SRC_MIC_REMOTE] > 0) {\r
+ first_src = mic_rem[0];\r
+ }\r
+ else {\r
+ first_src = mic_cln[0];\r
+ }\r
+ \r
+ return first_src;\r
+} /* mss_get_first_src */ \r
+\r
+/******************************************************************************\r
+ * FUNCTION PURPOSE: Source selection of MSS \r
+ ******************************************************************************\r
+ * DESCRIPTION: This function processes the multi-source inputs and selects one\r
+ * source as the output. The selectin criteria is the exponential\r
+ * average of power. The source with maximum power is selected. \r
+ * Currently, only fixed mic, remote mic, and clean mic are supported.\r
+ *\r
+ * tint mss_src_selection (\r
+ * Input:\r
+ * void *inst, - pointer to MSS instance\r
+ * void *mic_fix[], - data from fixed mics, may be selected.\r
+ * void *mic_rem[], - data from remote mics, may be selected.\r
+ * void *mic_cln[], - data from clean mics, may be selected.\r
+ * Output:\r
+ * Instance variables: MSS_STATE_BIT_SWITCH_SRC of inst->state_bf\r
+ * temp_src\r
+ * switch_hang_cnt\r
+ * new_src\r
+ * crossfade_phase\r
+ * crossface_cnt\r
+ * \r
+ *****************************************************************************/\r
+void mss_src_selection(mssInst_t *inst, void *mic_fix[], void *mic_rem[], \r
+ void *mic_cln[])\r
+{\r
+ int i, max_pow_src_index, svd_decision;\r
+ LFract max_pow, sig_pow;\r
+ tword *svd_ptr;\r
+ mssSrcType_t max_pow_src_group;\r
+ tint frm_len;\r
+\r
+ /* Initialization */\r
+ svd_ptr = inst->svd;\r
+ frm_len = inst->frame_size;\r
+ max_pow = (LFract)0;\r
+ max_pow_src_group = mss_SRC_INVALID;\r
+ \r
+ /*\r
+ * Task 1: Analyze sources to select the best one.\r
+ * Current selection criteria is the exponential average power. Whichever\r
+ * source has the largest power will be selected. \r
+ */\r
+ /* Analyze fixed microphones */ \r
+ for (i=0; i<inst->num_src_per_group[mss_SRC_MIC_FIXED]; i++) {\r
+ svdProcess(svd_ptr, mic_fix[i], frm_len);\r
+ svd_decision = svdGetDecision(svd_ptr, &sig_pow);\r
+ \r
+ /* only look at power of mics having speech (MSS_MIN_POW is -50.0109dBm) */\r
+ if( (svd_decision != svd_VOICE_INACTIVE) /* even when undefined? */\r
+ && (sig_pow > MSS_MIN_POW) && (sig_pow > max_pow)) {\r
+ max_pow = sig_pow;\r
+ max_pow_src_group = mss_SRC_MIC_FIXED;\r
+ max_pow_src_index = i;\r
+ }\r
+ \r
+ svd_ptr += inst->svd_size;\r
+ } /* num_mic_fix */\r
+\r
+ /* Analyze remote microphones */ \r
+ for (i=0; i<inst->num_src_per_group[mss_SRC_MIC_REMOTE]; i++) {\r
+ svdProcess(svd_ptr, mic_rem[i], frm_len);\r
+ svd_decision = svdGetDecision(svd_ptr, &sig_pow);\r
+ \r
+ /* only look at power of mics having speech */\r
+ if( (svd_decision != svd_VOICE_INACTIVE) \r
+ && (sig_pow > MSS_MIN_POW) && (sig_pow > max_pow)) {\r
+ max_pow = sig_pow;\r
+ max_pow_src_group = mss_SRC_MIC_REMOTE;\r
+ max_pow_src_index = i;\r
+ }\r
+ \r
+ svd_ptr += inst->svd_size;\r
+ } /* num_mic_remote */\r
+\r
+ /* Analyze clean microphones */ \r
+ for (i=0; i<inst->num_src_per_group[mss_SRC_MIC_CLEAN]; i++) {\r
+ svdProcess(svd_ptr, mic_cln[i], frm_len);\r
+ svd_decision = svdGetDecision(svd_ptr, &sig_pow);\r
+ \r
+ /* only look at power of mics having speech */\r
+ if( (svd_decision != svd_VOICE_INACTIVE) \r
+ && (sig_pow > MSS_MIN_POW) && (sig_pow > max_pow)) {\r
+ max_pow = sig_pow;\r
+ max_pow_src_group = mss_SRC_MIC_CLEAN;\r
+ max_pow_src_index = i;\r
+ }\r
+ \r
+ svd_ptr += inst->svd_size;\r
+ } /* num_mic_clean */\r
+\r
+ /* for debugging only */\r
+ inst->temp_src.group = max_pow_src_group;\r
+ inst->temp_src.index = max_pow_src_index;\r
+ \r
+ /*\r
+ * Task 2: Decide whether to switch source based on the selection obtained above.\r
+ */ \r
+ /* Don's consider switching source in the middle of a switch */\r
+ if(!mss_chkbit(inst->state_bf, MSS_STATE_BIT_SWITCH_SRC)) {\r
+ /* If not in the middle of a switch, wait until hangover expires. */ \r
+ if(inst->switch_hang_cnt > 0) {\r
+ inst->switch_hang_cnt -= frm_len; /* expiring hangover */\r
+ }\r
+ else { /* hangover expires and we can look for switch again */\r
+ /* Don't consider switching source if:\r
+ 1. speech is not present in any source (max_pow_src_group == mss_SRC_MAX), or \r
+ 2. source with max power is the current selected source.\r
+ */\r
+ if( (max_pow_src_group == mss_SRC_INVALID) \r
+ || ( (max_pow_src_group == inst->cur_src.group) \r
+ && (max_pow_src_index == inst->cur_src.index) )\r
+ ) {\r
+ if (inst->switch_src_cnt > frm_len) {\r
+ inst->switch_src_cnt -= frm_len; /* Count in opposite direction with same speed */\r
+ }\r
+ else { /* give up on "new src" */\r
+ inst->switch_src_cnt = 0;\r
+ inst->new_src = inst->cur_src;\r
+ }\r
+ }\r
+ /* Consider switching source if the source with max power is not the \r
+ current active source. */\r
+ else if( (max_pow_src_group == inst->new_src.group)\r
+ && (max_pow_src_index == inst->new_src.index) \r
+ ) {\r
+ /* Increment counter since the source with max power doesn't change \r
+ from previous frame. */\r
+ inst->switch_src_cnt += frm_len;\r
+ if(inst->switch_src_cnt >= inst->params.switch_threshold) {\r
+ /* Confirm and switch source because the same source had max power long enough */\r
+ inst->switch_src_cnt = 0;\r
+ inst->crossfade_phase = MSS_FADE_PHA_INIT;\r
+ inst->crossfade_cnt = 0;\r
+ inst->switch_hang_cnt = inst->params.switch_hangover;\r
+ mss_setbit(inst->state_bf, MSS_STATE_BIT_SWITCH_SRC);\r
+ }\r
+ }\r
+ else { /* Source with max power might be changing to something other then current/new */\r
+ if (inst->switch_src_cnt > frm_len) {\r
+ inst->switch_src_cnt -= frm_len/2; /* Lower speed, this should smooth the "new" selection */\r
+ }\r
+ else {\r
+ /* Don't switch since source with max power is changing. */\r
+ inst->new_src.group = max_pow_src_group;\r
+ inst->new_src.index = max_pow_src_index;\r
+ inst->switch_src_cnt = 0;\r
+ }\r
+ }\r
+ } /* hangover expires */\r
+ } /* !mss_chkbit(inst->state_bf, MSS_STATE_BIT_SWITCH_SRC) */ \r
+} /* mss_src_selection */ \r
+\r
+/******************************************************************************\r
+ * FUNCTION PURPOSE: Generating Single Output from Multiple Sources \r
+ ******************************************************************************\r
+ * DESCRIPTION: This function generates single output from multiple input sources.\r
+ * Generally, it passes the selected source to the output, but when\r
+ * there is a switch from one source to another, it will mix the\r
+ * the previously selected and newly selected sources. \r
+ *\r
+ * tint mss_src_output (\r
+ * Input:\r
+ * void *inst, - pointer to MSS instance\r
+ * void *mic_fix[], - data from fixed mics, may be selected.\r
+ * void *mic_rem[], - data from remote mics, may be selected.\r
+ * void *mic_cln[], - data from clean mics, may be selected.\r
+ * Output:\r
+ * void *out - single source or mixed sources\r
+ *****************************************************************************/\r
+#define MSS_SIN_PIOVER2 16388\r
+void mss_src_output(mssInst_t *inst, void *out, void *mic_fix[], \r
+ void *mic_rem[], void *mic_cln[])\r
+{\r
+ int i;\r
+ linSample * cur_sel_src;\r
+ linSample * new_sel_src;\r
+ linSample * output;\r
+ Fract fade_in_alpha, fade_out_alpha, sin_phase;\r
+ LFract phase, phase_inc;\r
+ \r
+ /* Identify the buffer of the current selected source. */\r
+ if(inst->cur_src.group == mss_SRC_MIC_FIXED) {\r
+ cur_sel_src = mic_fix[inst->cur_src.index];\r
+ }\r
+ else if (inst->cur_src.group == mss_SRC_MIC_REMOTE) {\r
+ cur_sel_src = mic_rem[inst->cur_src.index];\r
+ }\r
+ else if (inst->cur_src.group == mss_SRC_MIC_CLEAN) {\r
+ cur_sel_src = mic_cln[inst->cur_src.index];\r
+ }\r
+ else {\r
+ /* error message */\r
+ }\r
+\r
+ /* Check if in the middle of a switch. */\r
+ if(!mss_chkbit(inst->state_bf, MSS_STATE_BIT_SWITCH_SRC)) {\r
+ /* If it is not during a switch, copy the current selected source to output \r
+ without any modification. */\r
+ memcpy(out, cur_sel_src, inst->frame_size*sizeof(linSample));\r
+ } \r
+ else {\r
+ /* If it is during a switch, identify the buffer of the new selected source. */\r
+ if(inst->new_src.group == mss_SRC_MIC_FIXED) {\r
+ new_sel_src = mic_fix[inst->new_src.index];\r
+ }\r
+ else if (inst->new_src.group == mss_SRC_MIC_REMOTE) {\r
+ new_sel_src = mic_rem[inst->new_src.index];\r
+ }\r
+ else if (inst->new_src.group == mss_SRC_MIC_CLEAN) {\r
+ new_sel_src = mic_cln[inst->new_src.index];\r
+ }\r
+ else {\r
+ /* error message */\r
+ } \r
+ \r
+ /* Mix the previously selected and newly selected sources by crossfading: \r
+ fading out previously selected source and fading in new selected source. */\r
+ phase = inst->crossfade_phase; \r
+ phase_inc = inst->crossfade_phase_inc;\r
+ output = (linSample *)out;\r
+\r
+ for(i=0; i<inst->frame_size; i++) {\r
+// alpha = (1-utlSin(phase>>16)) / 2; /* to use macros */\r
+ sin_phase = utlSin(phase>>16); /* Q.31 to Q.15 */\r
+ fade_out_alpha = MSS_SIN_PIOVER2/2 - sin_phase/2; /* (1-sin(pha))/2 in Q.14 */\r
+ fade_in_alpha = MSS_SIN_PIOVER2/2 + sin_phase/2; /* (1+sin(pha))/2 in Q.14 */\r
+ fade_out_alpha = mss_MIN(16383, fade_out_alpha);\r
+ fade_in_alpha = mss_MIN(16383, fade_in_alpha);\r
+ output[i] = frctMul(cur_sel_src[i], 0, fade_out_alpha, 14, 0) \r
+ +frctMul(new_sel_src[i], 0, fade_in_alpha, 14, 0);\r
+ phase += phase_inc;\r
+ }\r
+ inst->crossfade_phase = phase;\r
+\r
+ /* for debugging only */\r
+ inst->gain_in = fade_in_alpha;\r
+ inst->gain_out = fade_out_alpha;\r
+ \r
+ inst->crossfade_cnt += inst->frame_size;\r
+ if(inst->crossfade_cnt >= inst->params.switch_duration) {\r
+ inst->crossfade_cnt = 0;\r
+ inst->cur_src = inst->new_src;\r
+ mss_clrbit(inst->state_bf, MSS_STATE_BIT_SWITCH_SRC);\r
+ } \r
+ } \r
+} /* mss_src_output */ \r
+\r
+/* Nothing past this point */\r
diff --git a/file_demo_bios/k2g/components/sys.c b/file_demo_bios/k2g/components/sys.c
--- /dev/null
@@ -0,0 +1,350 @@
+/*=================================================================\r
+ * sys.c: Basic system functions.\r
+ *=================================================================*/\r
+\r
+#include <string.h>\r
+\r
+#include <xdc/std.h>\r
+#include <ti/sysbios/BIOS.h>\r
+#include <xdc/runtime/System.h>\r
+\r
+#include <ti/mas/types/types.h>\r
+#include <ti/mas/util/ecomem.h>\r
+//#include <ti/mas/mhm/mhm.h>\r
+\r
+#include "mhm/mhm.h"\r
+\r
+#include "sys.h"\r
+#include "syseram.h"\r
+#include "sysiram.h"\r
+#include "sysbfflt.h"\r
+\r
+/* Globals */\r
+\r
+/* Buffer descriptor array for memory allocations */\r
+ecomemBuffer_t sysCompBufs[SYS_COMP_MAXBUFS];\r
+\r
+/* Input sample buffer (dual) (align=8) */\r
+#pragma DATA_ALIGN(sysInBuf,8)\r
+tword sysInBuf[SYS_IN_SIZE];\r
+\r
+/* Virtual microphone frame outputs (align=8)*/\r
+#pragma DATA_ALIGN(sysVmicFrame,8)\r
+linSample sysVmicFrame[SYS_VMICS_MAX*SYS_FRAME_LENGTH];\r
+\r
+/* Virtual microphone angles to be used (default is all 12, every 30 degrees) */\r
+tint sysBfVMicAngles[SYS_VMICS_MAX] = {\r
+ SYS_BF_ANGLE_P0,\r
+ SYS_BF_ANGLE_P30,\r
+ SYS_BF_ANGLE_P60,\r
+ SYS_BF_ANGLE_P90,\r
+ SYS_BF_ANGLE_P120,\r
+ SYS_BF_ANGLE_P150,\r
+ SYS_BF_ANGLE_P180,\r
+ SYS_BF_ANGLE_M150,\r
+ SYS_BF_ANGLE_M120,\r
+ SYS_BF_ANGLE_M90,\r
+ SYS_BF_ANGLE_M60,\r
+ SYS_BF_ANGLE_M30\r
+};\r
+\r
+sysContext_t sysContext; /* Global System Context structure */\r
+\r
+#define max(a,b) (((a)>(b))?(a):(b))\r
+\r
+/*=============================\r
+ * Functions\r
+ *=============================*/\r
+\r
+/*=================================================================\r
+ * int sysAngleConfig( Configure default virtual microphones\r
+ * tint nvmics) - Number of virtual mics to configure\r
+ * \r
+ * This function accespts only 4,6,8,12 virtual microphones.\r
+ * If different number is used, manual configuration must be done\r
+ * with potentially providing different microphone filters for the array.\r
+ *=================================================================*/\r
+\r
+int sysAngleConfig(tint nvmics)\r
+{\r
+ int err;\r
+\r
+ err = SYS_ERR_SUCCESS;\r
+ nvmics = sysContext.nvmics;\r
+ switch (nvmics) {\r
+ case 4:\r
+ sysBfVMicAngles[0] = SYS_BF_ANGLE_P0;\r
+ sysBfVMicAngles[1] = SYS_BF_ANGLE_P90;\r
+ sysBfVMicAngles[2] = SYS_BF_ANGLE_P180;\r
+ sysBfVMicAngles[3] = SYS_BF_ANGLE_M90;\r
+ break;\r
+ case 6:\r
+ sysBfVMicAngles[0] = SYS_BF_ANGLE_P0;\r
+ sysBfVMicAngles[1] = SYS_BF_ANGLE_P60;\r
+ sysBfVMicAngles[2] = SYS_BF_ANGLE_P120;\r
+ sysBfVMicAngles[3] = SYS_BF_ANGLE_P180;\r
+ sysBfVMicAngles[4] = SYS_BF_ANGLE_M120;\r
+ sysBfVMicAngles[5] = SYS_BF_ANGLE_M60;\r
+ break;\r
+ case 8:\r
+ sysBfVMicAngles[0] = SYS_BF_ANGLE_P0;\r
+ sysBfVMicAngles[1] = SYS_BF_ANGLE_P45;\r
+ sysBfVMicAngles[2] = SYS_BF_ANGLE_P90;\r
+ sysBfVMicAngles[3] = SYS_BF_ANGLE_P135;\r
+ sysBfVMicAngles[4] = SYS_BF_ANGLE_P180;\r
+ sysBfVMicAngles[5] = SYS_BF_ANGLE_M135;\r
+ sysBfVMicAngles[6] = SYS_BF_ANGLE_M90;\r
+ sysBfVMicAngles[7] = SYS_BF_ANGLE_M45;\r
+ break;\r
+ case 12:\r
+ sysBfVMicAngles[0] = SYS_BF_ANGLE_P0;\r
+ sysBfVMicAngles[1] = SYS_BF_ANGLE_P30;\r
+ sysBfVMicAngles[2] = SYS_BF_ANGLE_P60;\r
+ sysBfVMicAngles[3] = SYS_BF_ANGLE_P90;\r
+ sysBfVMicAngles[4] = SYS_BF_ANGLE_P120;\r
+ sysBfVMicAngles[5] = SYS_BF_ANGLE_P150;\r
+ sysBfVMicAngles[6] = SYS_BF_ANGLE_P180;\r
+ sysBfVMicAngles[7] = SYS_BF_ANGLE_M150;\r
+ sysBfVMicAngles[8] = SYS_BF_ANGLE_M120;\r
+ sysBfVMicAngles[9] = SYS_BF_ANGLE_M90;\r
+ sysBfVMicAngles[10] = SYS_BF_ANGLE_M60;\r
+ sysBfVMicAngles[11] = SYS_BF_ANGLE_M30;\r
+ break;\r
+ default:\r
+ err = SYS_ERR_ANGLECONFIG;\r
+ break;\r
+ }\r
+ return(err);\r
+} /* sysAngleConfig */\r
+\r
+/*=================================================================\r
+ * int sysCreate(\r
+ * sysConfig_t cfg); - System configuration (see sys.h)\r
+ *=================================================================*/\r
+\r
+int sysCreate(sysConfig_t *cfg)\r
+{\r
+ int k, err, nvmics;\r
+ void *heap_p;\r
+ linSample *x_p;\r
+\r
+ if (cfg->nmics < 1 || cfg->nmics > SYS_MICS_MAX ||\r
+ cfg->nvmics < 1 || cfg->nvmics > SYS_VMICS_MAX) {\r
+ return(SYS_ERR_BADCONFIG);\r
+ }\r
+ sysContext.nmics = cfg->nmics; /* Store # of mics used */\r
+ nvmics = sysContext.nvmics = cfg->nvmics; /* Store # of virtual mics used */\r
+ sysContext.use_fileio = cfg->use_fileio; /* probably FALSE since slow */\r
+ sysContext.eof = FALSE; /* no EOF reached yet */\r
+ sysContext.use_default = cfg->use_default; /* TRUE for default vmic angles */\r
+\r
+ /* Initialize input buffer pointers and read portion */\r
+ sysContext.in_lo = &sysInBuf[0]; /* Input buffer start (Low part) */\r
+ sysContext.in_hi = &sysInBuf[SYS_IN_SIZE/2]; /* High part of input buffer */\r
+ sysContext.in_w = sysContext.in_lo; /* Write pointer */\r
+ sysContext.in_r = sysContext.in_hi; /* Read pointer */\r
+ memset(sysContext.in_r, 0xBA, SYS_IN_SIZE/2); /* Initial the read portion */\r
+\r
+ /* Clear instance pointers */\r
+ for (k = 0; k < SYS_VMICS_MAX; k++) {\r
+ sysContext.bfInst_p[k] = sysContext.asnrInst_p[k] = NULL;\r
+ }\r
+ sysContext.mssInst_p = sysContext.vauInst_p = NULL;\r
+\r
+ /* Initialize virtual microphone frame pointers */\r
+\r
+ /* First check to see if default configurations are used */\r
+ if (sysContext.use_default) {\r
+ err = sysAngleConfig(nvmics);\r
+ if (err != SYS_ERR_SUCCESS) {\r
+ return(err);\r
+ }\r
+ }\r
+ x_p = &sysVmicFrame[0];\r
+ for (k = 0; k < nvmics; k++) {\r
+ sysContext.vmicfrm[k] = &x_p[k*SYS_FRAME_LENGTH];\r
+ sysContext.vmicangles[k] = sysBfVMicAngles[k];\r
+ }\r
+ for ( ; k < SYS_VMICS_MAX; k++) {\r
+ sysContext.vmicfrm[k] = (linSample*)NULL;\r
+ sysContext.vmicangles[k] = 0;\r
+ }\r
+\r
+ /* Create heaps */\r
+ heap_p = mhmCreate(sysEramPermanent,SYS_ERAM_PERMANENT_SIZE,0);\r
+ if (heap_p == NULL) {\r
+ return(SYS_ERR_HEAPINIT);\r
+ }\r
+ sysContext.heapEP = heap_p;\r
+\r
+ heap_p = mhmCreate(sysEramScratch,SYS_ERAM_SCRATCH_SIZE,0);\r
+ if (heap_p == NULL) {\r
+ return(SYS_ERR_HEAPINIT);\r
+ }\r
+ sysContext.heapES = heap_p;\r
+\r
+ heap_p = mhmCreate(sysIramPermanent,SYS_IRAM_PERMANENT_SIZE,0);\r
+ if (heap_p == NULL) {\r
+ return(SYS_ERR_HEAPINIT);\r
+ }\r
+ sysContext.heapIP = heap_p;\r
+\r
+ heap_p = mhmCreate(sysIramScratch,SYS_IRAM_SCRATCH_SIZE,0);\r
+ if (heap_p == NULL) {\r
+ return(SYS_ERR_HEAPINIT);\r
+ }\r
+ sysContext.heapIS = heap_p;\r
+\r
+ return(SYS_ERR_SUCCESS);\r
+} /* sysCreate */\r
+\r
+/*=================================================================\r
+ * void sysError( Print error and exit\r
+ * int err); - System errror code (see sys.h)\r
+ *=================================================================*/\r
+\r
+void sysError(int err)\r
+{\r
+ System_printf("*** ERROR: %d\n", err);\r
+ BIOS_exit(0);\r
+} /* sysError */\r
+\r
+/*=================================================================\r
+ * int sysHeapAlloc( Allocate buffer from appropriate heap\r
+ * void *bd, - buffer descriptor\r
+ * tint reset) - 1: reset heap, 0: don't\r
+ *=================================================================*/\r
+\r
+int sysHeapAlloc(void *bd_in, tint reset)\r
+{\r
+ tuint size;\r
+ void *handle;\r
+ tword *base_w;\r
+ tulong *used_p;\r
+\r
+ ecomemBuffer_t *bd_p = (ecomemBuffer_t*) bd_in;\r
+\r
+ if (bd_p->mclass == ecomem_CLASS_EXTERNAL) {\r
+ if (bd_p->volat) {\r
+ handle = sysContext.heapES;\r
+ used_p = &sysContext.heapES_used;\r
+ }\r
+ else { /* permanent */\r
+ handle = sysContext.heapEP;\r
+ used_p = &sysContext.heapEP_used;\r
+ }\r
+ }\r
+ else if (bd_p->mclass == ecomem_CLASS_INTERNAL) {\r
+ if (bd_p->volat) {\r
+ handle = sysContext.heapIS;\r
+ used_p = &sysContext.heapIS_used;\r
+ }\r
+ else { /* permanent */\r
+ handle = sysContext.heapIP;\r
+ used_p = &sysContext.heapIP_used;\r
+ }\r
+ }\r
+ else {\r
+ return(SYS_ERR_INVHEAPCLASS);\r
+ }\r
+\r
+ if (reset != 0) {\r
+ mhmReset(handle); /* optionally reset the heap */\r
+ *used_p = 0; /* reset used size to zero */\r
+ }\r
+ size = bd_p->size;\r
+ base_w = (tword*)mhmAllocAligned(handle, size, bd_p->log2align);\r
+ *used_p += size; /* update the used size */\r
+\r
+ bd_p->base = base_w; /* store the bsae address for a buffer */\r
+\r
+ return(SYS_ERR_SUCCESS);\r
+} /* sysHeapAlloc */\r
+\r
+/*=================================================================\r
+ * int sysHeapAllocAll( Allocate ALL buffers from appropriate heaps\r
+ * tint nbufs, - number of buffers\r
+ * void *bdout, - output buffer descriptors\r
+ * void *bdin) - input buffer descriptors\r
+ *=================================================================*/\r
+\r
+int sysHeapAllocAll(tint nbufs, void *bdout_p, const void *bdin_p)\r
+{\r
+ int err;\r
+ tint k, volatile_found;\r
+ tulong es_used, is_used; /* place to save scratch used sizes */\r
+ ecomemBuffer_t *bdout = bdout_p;\r
+ const ecomemBuffer_t *bdin = bdin_p;\r
+\r
+ es_used = sysContext.heapES_used; /* save in case scratch was reset */\r
+ is_used = sysContext.heapIS_used;\r
+\r
+ /* Allocate memory for all buffers */\r
+ volatile_found = FALSE;\r
+ for (k = 0; k < nbufs; k++) {\r
+ bdout[k] = bdin[k];\r
+ if (bdout[k].volat && !volatile_found) { /* first volatile? */\r
+ err=sysHeapAlloc(&bdout[k], TRUE); /* reset heap for the first volatile buffer */\r
+ if (err < 0) {\r
+ return(err);\r
+ }\r
+ volatile_found = TRUE;\r
+ }\r
+ else { /* no need to reset heap */\r
+ err=sysHeapAlloc(&bdout[k], FALSE);\r
+ if (err < 0) {\r
+ return(err);\r
+ }\r
+ }\r
+ }\r
+\r
+ /* fix the scratch heap used sizes if necessary */\r
+ sysContext.heapES_used = max(es_used,sysContext.heapES_used);\r
+ sysContext.heapIS_used = max(is_used,sysContext.heapIS_used);\r
+\r
+ return(SYS_ERR_SUCCESS);\r
+} /* sysHeapAllocAll */\r
+\r
+/*==================================================*/\r
+/* The following was based on MHM implementation!!! */\r
+/*==================================================*/\r
+\r
+/* Heap header that is placed at the beginning of a memory pool. */\r
+typedef struct {\r
+ tuint total_size; /* total number of words in a memory pool */\r
+ tuint used_size; /* index of the first available word */\r
+} sysMhmHead_t;\r
+typedef tulong sysMhmAddress_t;\r
+\r
+/*=================================================================\r
+ * int sysPrintConfig(\r
+ * tuint scope); - SYSM_SCOPE_STATIC: Static configuration like default constants\r
+ * SYSM_SCOPE_DYNAMIC: Dynamic configuraiton like actual run-time values \r
+ *=================================================================*/\r
+\r
+int sysPrintConfig(tuint scope)\r
+{\r
+ if (SYS_MASK_TEST(scope,SYSM_SCOPE_STATIC)) {\r
+ System_printf("\nStatic information:\n");\r
+ System_printf("tword: %d\n", sizeof(tword));\r
+ System_printf("tint: %d\n", sizeof(tint));\r
+ System_printf("tlong: %d\n", sizeof(tlong));\r
+ System_printf("Max #mics: %d\n", SYS_MICS_MAX);\r
+ System_printf("Max #vmics: %d\n", SYS_VMICS_MAX);\r
+ System_printf("Fs: %d [Hz]\n", SYS_FS_HZ);\r
+ System_printf("Frame duration: %d [ms]\n", SYS_FRAME_DURATION_MS);\r
+ System_printf("Frame length: %ld samples\n", SYS_FRAME_LENGTH);\r
+ System_printf("Frame size: %ld bytes\n", SYS_FRAME_SIZE);\r
+ System_printf("Input buffer length: %ld samples\n", SYS_IN_LENGTH);\r
+ System_printf("Frame buffer size: %ld bytes\n", SYS_IN_SIZE);\r
+ }\r
+ if (SYS_MASK_TEST(scope,SYSM_SCOPE_DYNAMIC)) {\r
+ System_printf("\nDynamic information:\n");\r
+ System_printf("#mics: %d\n", sysContext.nmics);\r
+ System_printf("#vmics: %d\n", sysContext.nvmics);\r
+ }\r
+ return(SYS_ERR_SUCCESS);\r
+} /* sysPrintConfig */\r
+\r
+/* nothing past this point */\r
+\r
diff --git a/file_demo_bios/k2g/components/sys.h b/file_demo_bios/k2g/components/sys.h
--- /dev/null
@@ -0,0 +1,156 @@
+/* \r
+ sys.h: System constants, data types, prototypes.\r
+*/\r
+#ifndef _SYS_H\r
+#define _SYS_H\r
+\r
+#include <xdc/std.h> /* required for types.h */\r
+#include <ti/mas/types/types.h>\r
+#include <ti/mas/util/ecomem.h>\r
+\r
+/*======================================================================\r
+ * Static system configuration parameters\r
+ *======================================================================*/\r
+\r
+#define SYS_MICS_MAX 8 /* Maximum number of microphones in the system */\r
+#define SYS_VMICS_MAX 12 /* Maximum number of virtual microphones in the system */\r
+#define SYS_FS_HZ 16000 /* Sampling rate in Hz */\r
+#define SYS_FRAME_DURATION_MS 10 /* Frame duration in ms */\r
+#define SYS_FRAME_LENGTH (1L*SYS_FS_HZ*SYS_FRAME_DURATION_MS/1000) /* Frame length in samples */\r
+#define SYS_FRAME_SIZE (TYP_LINSAMPLE_SIZE*SYS_FRAME_LENGTH/TYP_TWORD_SIZE) /* Frame size in bytes */\r
+#define SYS_IN_LENGTH (2L*SYS_FRAME_LENGTH*SYS_MICS_MAX) /* Input buffer length (dual) */\r
+#define SYS_IN_SIZE (TYP_LINSAMPLE_SIZE*SYS_IN_LENGTH/TYP_TWORD_SIZE) /* # of words in input buffer */\r
+\r
+/*======================================================================\r
+ * Bit masks, bit-mask handling macros, error codes\r
+ *======================================================================*/\r
+\r
+/* Bit masks for sysPrintConfig */\r
+#define SYSM_SCOPE_STATIC 0x1 /* Static system information */\r
+#define SYSM_SCOPE_DYNAMIC 0x2 /* Dynamic system onfirmation */\r
+\r
+/* Macros for bit-mask manipulations */\r
+#define SYS_MASK_GET(value,mask) ((value)&(mask))\r
+#define SYS_MASK_SET(value,mask) ((value)|(mask))\r
+#define SYS_MASK_TEST(value,mask) (SYS_MASK_GET(value,mask)!=0)\r
+\r
+/* System error codes */\r
+#define SYS_ERR_SUCCESS 0\r
+#define SYS_ERR_BADCONFIG (-1)\r
+#define SYS_INV_HANDLE (-2)\r
+#define SYS_INV_LOGIC (-3)\r
+#define SYS_ERR_BUFLENGTH (-4)\r
+#define SYS_ERR_FOPEN (-5)\r
+#define SYS_ERR_FLOAD (-6)\r
+#define SYS_ERR_FMAXBUF (-7)\r
+#define SYS_ERR_FREAD (-8)\r
+#define SYS_ERR_HEAPINIT (-9)\r
+#define SYS_ERR_INVHEAPCLASS (-10)\r
+#define SYS_ERR_BFERROR (-11)\r
+#define SYS_ERR_EOF (-12)\r
+#define SYS_ERR_ASNRERROR (-13)\r
+#define SYS_ERR_MSSERROR (-14)\r
+#define SYS_ERR_MSSDEBUG (-15)\r
+#define SYS_ERR_ANGLECONFIG (-16)\r
+#define SYS_ERR_VAUERROR (-17)\r
+\r
+/*======================================================================\r
+ * System Data Types\r
+ *======================================================================*/\r
+\r
+/* System Configuration Structure */\r
+struct sysConfig_stc {\r
+ tint nmics; /* The actual number of microphones in ths system */\r
+ tint nvmics; /* The acutal number of virtual microphones in the system */\r
+ tbool use_fileio; /* Use file I/O to load microphone files */\r
+ tbool use_default; /* Use default angles for virtual microphones */\r
+};\r
+typedef struct sysConfig_stc sysConfig_t;\r
+\r
+/* System Context Structure */\r
+struct sysContext_stc {\r
+ tint nmics; /* The actual number of microphones in ths system */\r
+ tint nvmics; /* The acutal number of virtual microphones in the system */\r
+\r
+ /* heap handles (point to head header) */\r
+ void *heapEP;\r
+ void *heapES;\r
+ void *heapIP;\r
+ void *heapIS;\r
+\r
+ /* used heap */\r
+ tulong heapEP_used; /* how many used in words */\r
+ tulong heapES_used;\r
+ tulong heapIP_used;\r
+ tulong heapIS_used;\r
+\r
+ /* Mic input buffer */\r
+ /* This is a dual buffer. Each part has SYS_FRAME_LENGTH*SYS_MICS_MAX samples\r
+ * to accomodate all microphone inputs. The samples are written contiguously\r
+ * without any gaps. Channel after channel.\r
+ */\r
+ void *in_w; /* Mic input buffer being written to */\r
+ void *in_r; /* Mic input buffer being read from */\r
+ void *in_lo; /* Low part of mic input buffer */\r
+ void *in_hi; /* High part of mic input buffer */\r
+\r
+ linSample *vmicfrm[SYS_VMICS_MAX]; /* Virtual mic frames */\r
+\r
+ /* Instance pointers */\r
+ void *bfInst_p[SYS_VMICS_MAX]; /* beamformer instance pointers */\r
+ void *asnrInst_p[SYS_VMICS_MAX]; /* ASNR instance pointers */\r
+ void *mssInst_p; /* MSS instance pointer */\r
+ void *vauInst_p; /* VAU instance pointer */\r
+\r
+ tint vmicangles[SYS_VMICS_MAX]; /* use SYS_BF_ANGLE_xxx from sysbfflt.h */\r
+\r
+ tbool use_fileio; /* Use file I/O to load microphone files */\r
+ tbool eof; /* End of file reached */\r
+ tbool use_default; /* Use default vmic angles (4,6,8,12 vmics supported only) */\r
+};\r
+typedef struct sysContext_stc sysContext_t;\r
+\r
+/*======================================================================\r
+ * Global variable declarations\r
+ *======================================================================*/\r
+\r
+extern sysContext_t sysContext; /* Defined in sys.c */\r
+extern tint sysBfVMicAngles[]; /* Defined in sys.c */\r
+\r
+/* Buffer descriptor array for memory allocations */\r
+#define SYS_COMP_MAXBUFS 10\r
+extern ecomemBuffer_t sysCompBufs[];\r
+\r
+/*======================================================================\r
+ * Additional Macros\r
+ *======================================================================*/\r
+\r
+/* Misc macros */\r
+#define SYS_CHECK_ERROR(err) if((err)<0){sysError(err);}\r
+\r
+/*======================================================================\r
+ * API Prototypes\r
+ *======================================================================*/\r
+\r
+/* sys.c */\r
+extern int sysCreate(sysConfig_t*); /* Initialize system context */\r
+extern void sysError(int); /* Printf error code and exit */\r
+extern int sysHeapAlloc(void*, tint); /* Allocate from appropriate heap */\r
+extern int sysHeapAllocAll(tint, void*, const void*); /* Allocate ALL buffers */\r
+extern int sysPrintConfig(tuint); /* Print system configuration */\r
+\r
+/* sysbf.c */\r
+extern void sysBfCreate(void); /* Create all active beamformers */\r
+\r
+/* sysasnr.c */\r
+extern void sysAsnrCreate(void); /* Create all active ASNR's */\r
+\r
+/* sysmss.c */\r
+extern void sysMssCreate(void); /* Create the MSS module */\r
+\r
+/* sysvau.c */\r
+extern void sysVauCreate(void); /* Create the VAU module */\r
+\r
+#endif\r
+/* nothing past this point */\r
+\r
diff --git a/file_demo_bios/k2g/components/sysasnr.c b/file_demo_bios/k2g/components/sysasnr.c
--- /dev/null
@@ -0,0 +1,95 @@
+/*=================================================================\r
+ * sysasnr.c: ASNR creation routines.\r
+ *=================================================================*/\r
+\r
+#include <xdc/std.h>\r
+#include <ti/sysbios/BIOS.h>\r
+#include <xdc/runtime/System.h>\r
+\r
+#include <ti/mas/types/types.h>\r
+#include <ti/mas/util/ecomem.h>\r
+#include <ti/mas/vpe/asnr.h>\r
+\r
+#include "sys.h"\r
+\r
+asnrSizeConfig_t asnrSizeConfig = {\r
+ asnr_SRATE_16K /* 16kHz sampling rate */\r
+};\r
+\r
+asnrOpenConfig_t asnrOpenConfig = {\r
+ asnr_SRATE_16K /* use 16kHz sampling rate */\r
+};\r
+\r
+/*=================================================================\r
+ * void sysAsnrCreate(void) Create ASNR's within virtual mics\r
+ *=================================================================*/\r
+void sysAsnrCreate(void)\r
+{\r
+ int k, err;\r
+ tint nbufs;\r
+ const ecomemBuffer_t *bufs;\r
+ asnrNewConfig_t asnrNewConfig;\r
+ asnrControl_t asnrCtl;\r
+\r
+ System_printf("...Initializing ASNR's\n");\r
+ System_flush();\r
+\r
+ /* Configure ASNR's (use same configuration for all) */\r
+ err = asnrGetSizes(&nbufs, &bufs, &asnrSizeConfig);\r
+ if (err != asnr_NOERR) {\r
+ System_printf("*** ASNR's getsizes error: %d\n", err);\r
+ BIOS_exit(0);\r
+ }\r
+ /* Allocate memory for ASNR's */\r
+ if (nbufs > SYS_COMP_MAXBUFS) {\r
+ System_printf("*** not enough buffer descriptors");\r
+ BIOS_exit(0);\r
+ }\r
+\r
+ asnrNewConfig.sizeCfg = asnrSizeConfig; /* Use same configuration for all */\r
+ for (k = 0; k < sysContext.nvmics; k++) {\r
+ err = sysHeapAllocAll(nbufs, sysCompBufs, (const void*)bufs);\r
+ SYS_CHECK_ERROR(err);\r
+ \r
+ /* Give memory to ASNR #k */\r
+ asnrNewConfig.handle = (void*)k; /* Indicate ASNR instance #k */\r
+ sysContext.asnrInst_p[k] = NULL;\r
+ err = asnrNew(&sysContext.asnrInst_p[k], nbufs, sysCompBufs, &asnrNewConfig);\r
+ if (err != asnr_NOERR) {\r
+ System_printf("*** ASNR #%d new error: %d\n", k, err);\r
+ BIOS_exit(0);\r
+ }\r
+ }\r
+\r
+ /* Open ASNR for business */\r
+ for (k = 0; k < sysContext.nvmics; k++) {\r
+ err = asnrOpen(sysContext.asnrInst_p[k],&asnrOpenConfig);\r
+ if (err != asnr_NOERR) {\r
+ System_printf("*** ASNR #%d open error: %d\n", k, err);\r
+ BIOS_exit(0);\r
+ }\r
+ }\r
+ /* At this point ASNR's are open, but may need additional configuration */\r
+\r
+ /* Here we reconfigure the ASNR */\r
+ asnrCtl.valid_bitfield = (asnr_CTL_VALID_BAND1_MAX_ATTEN |\r
+ asnr_CTL_VALID_BAND2_MAX_ATTEN |\r
+ asnr_CTL_VALID_BAND3_MAX_ATTEN);\r
+ asnrCtl.band1_max_atten = 12;\r
+ asnrCtl.band2_max_atten = 9;\r
+ asnrCtl.band3_max_atten = 6;\r
+ for (k = 0; k < sysContext.nvmics; k++) {\r
+ err = asnrControl (sysContext.asnrInst_p[k], &asnrCtl);\r
+ if (err != asnr_NOERR) {\r
+ System_printf("*** ASNR #%d control error: %d\n", k, err);\r
+ BIOS_exit(0);\r
+ }\r
+ }\r
+\r
+ System_printf("Done with ASNR's\n");\r
+ System_flush();\r
+\r
+} /* sysAsnrCreate */\r
+\r
+/* nothing past this point */\r
+\r
diff --git a/file_demo_bios/k2g/components/sysbf.c b/file_demo_bios/k2g/components/sysbf.c
--- /dev/null
@@ -0,0 +1,111 @@
+/*=================================================================\r
+ * sysbf.c: BF creation routines.\r
+ *=================================================================*/\r
+\r
+#include <xdc/std.h>\r
+#include <ti/sysbios/BIOS.h>\r
+#include <xdc/runtime/System.h>\r
+\r
+#include <ti/mas/types/types.h>\r
+#include <ti/mas/util/ecomem.h>\r
+#include <ti/mas/aer/bf.h>\r
+\r
+#include "sysbfflt.h"\r
+#include "sys.h"\r
+\r
+bfSizeConfig_t bfSizeConfig = {\r
+ bf_SAMP_RATE_16K, /* 16kHz sampling rate */\r
+ SYS_MICS_MAX, /* Maximum number of mics in the system */\r
+ 32, /* Maximum beamformer filter length */\r
+ bf_TYPE_FIXED /* Fixed beamformer type */\r
+};\r
+\r
+bfConfig_t bfConfig = {\r
+ bf_SAMP_RATE_16K, /* use 16kHz sampling rate */\r
+ SYS_MICS_MAX, /* use all mics */\r
+};\r
+\r
+/*=================================================================\r
+ * void sysBfCreate(void) Create beamformers\r
+ *=================================================================*/\r
+void sysBfCreate(void)\r
+{\r
+ int k, n, err;\r
+ tint nbufs;\r
+ Fract *coeff_p;\r
+ const ecomemBuffer_t *bufs;\r
+ bfNewConfig_t bfNewConfig;\r
+ bfControl_t bfCtl;\r
+\r
+ System_printf("...Initializing beamformers\n");\r
+ System_flush();\r
+\r
+ /* Configure Beamformers (use same configuration for all) */\r
+ err = bfGetSizes(&nbufs, &bufs, &bfSizeConfig);\r
+ if (err != bf_NOERR) {\r
+ System_printf("*** beamformer getsizes error: %d\n", err);\r
+ BIOS_exit(0);\r
+ }\r
+ /* Allocate memory for beamformer */\r
+ if (nbufs > SYS_COMP_MAXBUFS) {\r
+ System_printf("*** not enough buffer descriptors");\r
+ BIOS_exit(0);\r
+ }\r
+\r
+ bfNewConfig.sizeCfg = bfSizeConfig; /* Use same configuration for all */\r
+ for (k = 0; k < sysContext.nvmics; k++) {\r
+ err = sysHeapAllocAll(nbufs, sysCompBufs, (const void*)bufs);\r
+ SYS_CHECK_ERROR(err);\r
+ \r
+ /* Give memory to beamformer #k */\r
+ bfNewConfig.handle = (void*)k; /* Indicate BF instance #k */\r
+ sysContext.bfInst_p[k] = NULL;\r
+ err = bfNew(&sysContext.bfInst_p[k], nbufs, sysCompBufs, &bfNewConfig);\r
+ if (err != bf_NOERR) {\r
+ System_printf("*** beamformer #%d new error: %d\n", k, err);\r
+ BIOS_exit(0);\r
+ }\r
+ }\r
+\r
+ /* Open BF for business */\r
+ for (k = 0; k < sysContext.nvmics; k++) {\r
+ err = bfOpen(sysContext.bfInst_p[k],&bfConfig);\r
+ if (err != bf_NOERR) {\r
+ System_printf("*** beamformer #%d open error: %d\n", k, err);\r
+ BIOS_exit(0);\r
+ }\r
+ }\r
+ /* At this point BF's are open, but DISABLED! */\r
+ /* We need to initialize filters prior to enabling them. */\r
+\r
+ for (k = 0; k < sysContext.nvmics; k++) {\r
+ coeff_p = sysBfFilters[sysContext.vmicangles[k]];\r
+ for (n = 0; n < sysContext.nmics; n++) {\r
+ err = bfPutFilter (sysContext.bfInst_p[k], coeff_p, bf_FG_BF, n, SYS_BF_FILTER_LENGTH);\r
+ if (err != bf_NOERR) {\r
+ System_printf("*** beamformer #%d put-filter error: %d\n", k, err);\r
+ BIOS_exit(0);\r
+ }\r
+ coeff_p += SYS_BF_FILTER_LENGTH; /* point to the filter for next mic */\r
+ }\r
+ }\r
+\r
+ /* Now we can enable beamformers */\r
+ bfCtl.valid_bitfield = bf_CTL_CONFIG;\r
+ bfCtl.config.mask = bf_CTL_CFG_ENABLE;\r
+ bfCtl.config.value = bf_ENABLE;\r
+ for (k = 0; k < sysContext.nvmics; k++) {\r
+ err = bfControl (sysContext.bfInst_p[k], &bfCtl);\r
+ if (err != bf_NOERR) {\r
+ System_printf("*** beamformer #%d control error: %d\n", k, err);\r
+ BIOS_exit(0);\r
+ }\r
+ }\r
+\r
+ System_printf("Done with beamformers\n");\r
+ System_flush();\r
+\r
+} /* sysBfCreate */\r
+\r
+/* nothing past this point */\r
+\r
diff --git a/file_demo_bios/k2g/components/sysbfflt.c b/file_demo_bios/k2g/components/sysbfflt.c
--- /dev/null
@@ -0,0 +1,243 @@
+/*=================================================================\r
+ * sysbfflt.c: BF filters for all angles of interest\r
+ *=================================================================*/\r
+\r
+#include <xdc/std.h>\r
+#include <ti/mas/types/types.h>\r
+\r
+#include "sysbfflt.h"\r
+\r
+/* SYS_BF_ANGLE_P0 */\r
+Fract sysBfFltP0[][SYS_BF_FILTER_LENGTH] = {\r
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
+ { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
+ { -30, 103, -230, 426, -710, 1120, -1731, 2732, -4766, 12228, 27878, -6328, 3324, -2054, 1326, -851, 524, -297, 145, -53, 8, 0, 0, 0},\r
+ { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
+ { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
+ { 0, 0, 8, -53, 145, -297, 524, -851, 1326, -2054, 3324, -6328, 27878, 12228, -4766, 2732, -1731, 1120, -710, 426, -230, 103, -30, 0},\r
+ { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0}\r
+};\r
+\r
+/* SYS_BF_ANGLE_P30 */\r
+Fract sysBfFltP30[][SYS_BF_FILTER_LENGTH] = {\r
+ { 8, -54, 152, -312, 554, -902, 1407, -2178, 3513, -6613, 26596, 14027, -5285, 3007, -1902, 1231, -782, 470, -255, 116, -35, 0, 0, 0},\r
+ { -25, 88, -199, 371, -621, 981, -1517, 2388, -4136, 10250, 29149, -5866, 3041, -1872, 1208, -776, 479, -273, 134, -50, 8, 0, 0, 0},\r
+ { -11, 42, -100, 189, -319, 507, -784, 1228, -2086, 4748, 31832, -3605, 1788, -1087, 700, -451, 280, -162, 82, -32, 6, 0, 0, 0},\r
+ { 0, -34, 113, -250, 461, -767, 1209, -1868, 2952, -5179, 13643, 26879, -6563, 3478, -2155, 1392, -893, 548, -310, 150, -54, 8, 0, 0},\r
+ { 0, 0, -35, 116, -255, 470, -782, 1231, -1902, 3007, -5285, 14027, 26596, -6613, 3513, -2178, 1407, -902, 554, -312, 152, -54, 8, 0},\r
+ { 0, 0, 8, -50, 134, -273, 479, -776, 1208, -1872, 3041, -5866, 29149, 10250, -4136, 2388, -1517, 981, -621, 371, -199, 88, -25, 0},\r
+ { 0, 0, 6, -32, 82, -162, 280, -451, 700, -1087, 1788, -3605, 31832, 4748, -2086, 1228, -784, 507, -319, 189, -100, 42, -11, 0},\r
+ { 0, 8, -54, 150, -310, 548, -893, 1392, -2155, 3478, -6563, 26879, 13643, -5179, 2952, -1868, 1209, -767, 461, -250, 113, -34, 0, 0}\r
+};\r
+\r
+/* SYS_BF_ANGLE_P45 */\r
+Fract sysBfFltP45[][SYS_BF_FILTER_LENGTH] = {\r
+ { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
+ { -30, 103, -230, 426, -710, 1120, -1731, 2732, -4766, 12228, 27878, -6328, 3324, -2054, 1326, -851, 524, -297, 145, -53, 8, 0, 0, 0},\r
+ { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
+ { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
+ { 0, 0, 8, -53, 145, -297, 524, -851, 1326, -2054, 3324, -6328, 27878, 12228, -4766, 2732, -1731, 1120, -710, 426, -230, 103, -30, 0},\r
+ { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}\r
+};\r
+\r
+/* SYS_BF_ANGLE_P60 */\r
+Fract sysBfFltP60[][SYS_BF_FILTER_LENGTH] = {\r
+ { -11, 42, -100, 189, -319, 507, -784, 1228, -2086, 4748, 31832, -3605, 1788, -1087, 700, -451, 280, -162, 82, -32, 6, 0, 0, 0},\r
+ { -25, 88, -199, 371, -621, 981, -1517, 2388, -4136, 10250, 29149, -5866, 3041, -1872, 1208, -776, 479, -273, 134, -50, 8, 0, 0, 0},\r
+ { 8, -54, 152, -312, 554, -902, 1407, -2178, 3513, -6613, 26596, 14027, -5285, 3007, -1902, 1231, -782, 470, -255, 116, -35, 0, 0, 0},\r
+ { 0, 8, -54, 150, -310, 548, -893, 1392, -2155, 3478, -6563, 26879, 13643, -5179, 2952, -1868, 1209, -767, 461, -250, 113, -34, 0, 0},\r
+ { 0, 0, 6, -32, 82, -162, 280, -451, 700, -1087, 1788, -3605, 31832, 4748, -2086, 1228, -784, 507, -319, 189, -100, 42, -11, 0},\r
+ { 0, 0, 8, -50, 134, -273, 479, -776, 1208, -1872, 3041, -5866, 29149, 10250, -4136, 2388, -1517, 981, -621, 371, -199, 88, -25, 0},\r
+ { 0, 0, -35, 116, -255, 470, -782, 1231, -1902, 3007, -5285, 14027, 26596, -6613, 3513, -2178, 1407, -902, 554, -312, 152, -54, 8, 0},\r
+ { 0, -34, 113, -250, 461, -767, 1209, -1868, 2952, -5179, 13643, 26879, -6563, 3478, -2155, 1392, -893, 548, -310, 150, -54, 8, 0, 0}\r
+};\r
+\r
+/* SYS_BF_ANGLE_P90 */\r
+Fract sysBfFltP90[][SYS_BF_FILTER_LENGTH] = {\r
+ { -30, 103, -230, 426, -710, 1120, -1731, 2732, -4766, 12228, 27878, -6328, 3324, -2054, 1326, -851, 524, -297, 145, -53, 8, 0, 0, 0},\r
+ { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
+ { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
+ { 0, 0, 8, -53, 145, -297, 524, -851, 1326, -2054, 3324, -6328, 27878, 12228, -4766, 2732, -1731, 1120, -710, 426, -230, 103, -30, 0},\r
+ { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
+ { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0}\r
+};\r
+\r
+/* SYS_BF_ANGLE_P120 */\r
+Fract sysBfFltP120[][SYS_BF_FILTER_LENGTH] = {\r
+ { -11, 42, -100, 189, -319, 507, -784, 1228, -2086, 4748, 31832, -3605, 1788, -1087, 700, -451, 280, -162, 82, -32, 6, 0, 0, 0},\r
+ { 0, -34, 113, -250, 461, -767, 1209, -1868, 2952, -5179, 13643, 26879, -6563, 3478, -2155, 1392, -893, 548, -310, 150, -54, 8, 0, 0},\r
+ { 0, 0, -35, 116, -255, 470, -782, 1231, -1902, 3007, -5285, 14027, 26596, -6613, 3513, -2178, 1407, -902, 554, -312, 152, -54, 8, 0},\r
+ { 0, 0, 8, -50, 134, -273, 479, -776, 1208, -1872, 3041, -5866, 29149, 10250, -4136, 2388, -1517, 981, -621, 371, -199, 88, -25, 0},\r
+ { 0, 0, 6, -32, 82, -162, 280, -451, 700, -1087, 1788, -3605, 31832, 4748, -2086, 1228, -784, 507, -319, 189, -100, 42, -11, 0},\r
+ { 0, 8, -54, 150, -310, 548, -893, 1392, -2155, 3478, -6563, 26879, 13643, -5179, 2952, -1868, 1209, -767, 461, -250, 113, -34, 0, 0},\r
+ { 8, -54, 152, -312, 554, -902, 1407, -2178, 3513, -6613, 26596, 14027, -5285, 3007, -1902, 1231, -782, 470, -255, 116, -35, 0, 0, 0},\r
+ { -25, 88, -199, 371, -621, 981, -1517, 2388, -4136, 10250, 29149, -5866, 3041, -1872, 1208, -776, 479, -273, 134, -50, 8, 0, 0, 0}\r
+};\r
+\r
+/* SYS_BF_ANGLE_P135 */\r
+Fract sysBfFltP135[][SYS_BF_FILTER_LENGTH] = {\r
+ { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
+ { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
+ { 0, 0, 8, -53, 145, -297, 524, -851, 1326, -2054, 3324, -6328, 27878, 12228, -4766, 2732, -1731, 1120, -710, 426, -230, 103, -30, 0},\r
+ { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
+ { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
+ { -30, 103, -230, 426, -710, 1120, -1731, 2732, -4766, 12228, 27878, -6328, 3324, -2054, 1326, -851, 524, -297, 145, -53, 8, 0, 0, 0}\r
+};\r
+\r
+/* SYS_BF_ANGLE_P150 */\r
+Fract sysBfFltP150[][SYS_BF_FILTER_LENGTH] = {\r
+ { 8, -54, 152, -312, 554, -902, 1407, -2178, 3513, -6613, 26596, 14027, -5285, 3007, -1902, 1231, -782, 470, -255, 116, -35, 0, 0, 0},\r
+ { 0, 8, -54, 150, -310, 548, -893, 1392, -2155, 3478, -6563, 26879, 13643, -5179, 2952, -1868, 1209, -767, 461, -250, 113, -34, 0, 0},\r
+ { 0, 0, 6, -32, 82, -162, 280, -451, 700, -1087, 1788, -3605, 31832, 4748, -2086, 1228, -784, 507, -319, 189, -100, 42, -11, 0},\r
+ { 0, 0, 8, -50, 134, -273, 479, -776, 1208, -1872, 3041, -5866, 29149, 10250, -4136, 2388, -1517, 981, -621, 371, -199, 88, -25, 0},\r
+ { 0, 0, -35, 116, -255, 470, -782, 1231, -1902, 3007, -5285, 14027, 26596, -6613, 3513, -2178, 1407, -902, 554, -312, 152, -54, 8, 0},\r
+ { 0, -34, 113, -250, 461, -767, 1209, -1868, 2952, -5179, 13643, 26879, -6563, 3478, -2155, 1392, -893, 548, -310, 150, -54, 8, 0, 0},\r
+ { -11, 42, -100, 189, -319, 507, -784, 1228, -2086, 4748, 31832, -3605, 1788, -1087, 700, -451, 280, -162, 82, -32, 6, 0, 0, 0},\r
+ { -25, 88, -199, 371, -621, 981, -1517, 2388, -4136, 10250, 29149, -5866, 3041, -1872, 1208, -776, 479, -273, 134, -50, 8, 0, 0, 0}\r
+};\r
+\r
+/* SYS_BF_ANGLE_P180 */\r
+Fract sysBfFltP180[][SYS_BF_FILTER_LENGTH] = {\r
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
+ { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
+ { 0, 0, 8, -53, 145, -297, 524, -851, 1326, -2054, 3324, -6328, 27878, 12228, -4766, 2732, -1731, 1120, -710, 426, -230, 103, -30, 0},\r
+ { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
+ { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
+ { -30, 103, -230, 426, -710, 1120, -1731, 2732, -4766, 12228, 27878, -6328, 3324, -2054, 1326, -851, 524, -297, 145, -53, 8, 0, 0, 0},\r
+ { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0}\r
+};\r
+\r
+/* SYS_BF_ANGLE_M150 */\r
+Fract sysBfFltM150[][SYS_BF_FILTER_LENGTH] = {\r
+ { 0, 0, -35, 116, -255, 470, -782, 1231, -1902, 3007, -5285, 14027, 26596, -6613, 3513, -2178, 1407, -902, 554, -312, 152, -54, 8, 0},\r
+ { 0, 0, 8, -50, 134, -273, 479, -776, 1208, -1872, 3041, -5866, 29149, 10250, -4136, 2388, -1517, 981, -621, 371, -199, 88, -25, 0},\r
+ { 0, 0, 6, -32, 82, -162, 280, -451, 700, -1087, 1788, -3605, 31832, 4748, -2086, 1228, -784, 507, -319, 189, -100, 42, -11, 0},\r
+ { 0, 8, -54, 150, -310, 548, -893, 1392, -2155, 3478, -6563, 26879, 13643, -5179, 2952, -1868, 1209, -767, 461, -250, 113, -34, 0, 0},\r
+ { 8, -54, 152, -312, 554, -902, 1407, -2178, 3513, -6613, 26596, 14027, -5285, 3007, -1902, 1231, -782, 470, -255, 116, -35, 0, 0, 0},\r
+ { -25, 88, -199, 371, -621, 981, -1517, 2388, -4136, 10250, 29149, -5866, 3041, -1872, 1208, -776, 479, -273, 134, -50, 8, 0, 0, 0},\r
+ { -11, 42, -100, 189, -319, 507, -784, 1228, -2086, 4748, 31832, -3605, 1788, -1087, 700, -451, 280, -162, 82, -32, 6, 0, 0, 0},\r
+ { 0, -34, 113, -250, 461, -767, 1209, -1868, 2952, -5179, 13643, 26879, -6563, 3478, -2155, 1392, -893, 548, -310, 150, -54, 8, 0, 0}\r
+};\r
+\r
+/* SYS_BF_ANGLE_M135 */\r
+Fract sysBfFltM135[][SYS_BF_FILTER_LENGTH] = {\r
+ { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
+ { 0, 0, 8, -53, 145, -297, 524, -851, 1326, -2054, 3324, -6328, 27878, 12228, -4766, 2732, -1731, 1120, -710, 426, -230, 103, -30, 0},\r
+ { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
+ { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
+ { -30, 103, -230, 426, -710, 1120, -1731, 2732, -4766, 12228, 27878, -6328, 3324, -2054, 1326, -851, 524, -297, 145, -53, 8, 0, 0, 0},\r
+ { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}\r
+};\r
+\r
+/* SYS_BF_ANGLE_M120 */\r
+Fract sysBfFltM120[][SYS_BF_FILTER_LENGTH] = {\r
+ { 0, 0, 6, -32, 82, -162, 280, -451, 700, -1087, 1788, -3605, 31832, 4748, -2086, 1228, -784, 507, -319, 189, -100, 42, -11, 0},\r
+ { 0, 0, 8, -50, 134, -273, 479, -776, 1208, -1872, 3041, -5866, 29149, 10250, -4136, 2388, -1517, 981, -621, 371, -199, 88, -25, 0},\r
+ { 0, 0, -35, 116, -255, 470, -782, 1231, -1902, 3007, -5285, 14027, 26596, -6613, 3513, -2178, 1407, -902, 554, -312, 152, -54, 8, 0},\r
+ { 0, -34, 113, -250, 461, -767, 1209, -1868, 2952, -5179, 13643, 26879, -6563, 3478, -2155, 1392, -893, 548, -310, 150, -54, 8, 0, 0},\r
+ { -11, 42, -100, 189, -319, 507, -784, 1228, -2086, 4748, 31832, -3605, 1788, -1087, 700, -451, 280, -162, 82, -32, 6, 0, 0, 0},\r
+ { -25, 88, -199, 371, -621, 981, -1517, 2388, -4136, 10250, 29149, -5866, 3041, -1872, 1208, -776, 479, -273, 134, -50, 8, 0, 0, 0},\r
+ { 8, -54, 152, -312, 554, -902, 1407, -2178, 3513, -6613, 26596, 14027, -5285, 3007, -1902, 1231, -782, 470, -255, 116, -35, 0, 0, 0},\r
+ { 0, 8, -54, 150, -310, 548, -893, 1392, -2155, 3478, -6563, 26879, 13643, -5179, 2952, -1868, 1209, -767, 461, -250, 113, -34, 0, 0}\r
+};\r
+\r
+/* SYS_BF_ANGLE_M90 */\r
+Fract sysBfFltM90[][SYS_BF_FILTER_LENGTH] = {\r
+ { 0, 0, 8, -53, 145, -297, 524, -851, 1326, -2054, 3324, -6328, 27878, 12228, -4766, 2732, -1731, 1120, -710, 426, -230, 103, -30, 0},\r
+ { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
+ { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
+ { -30, 103, -230, 426, -710, 1120, -1731, 2732, -4766, 12228, 27878, -6328, 3324, -2054, 1326, -851, 524, -297, 145, -53, 8, 0, 0, 0},\r
+ { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
+ { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0}\r
+};\r
+\r
+/* SYS_BF_ANGLE_M60 */\r
+Fract sysBfFltM60[][SYS_BF_FILTER_LENGTH] = {\r
+ { 0, 0, 6, -32, 82, -162, 280, -451, 700, -1087, 1788, -3605, 31832, 4748, -2086, 1228, -784, 507, -319, 189, -100, 42, -11, 0},\r
+ { 0, 8, -54, 150, -310, 548, -893, 1392, -2155, 3478, -6563, 26879, 13643, -5179, 2952, -1868, 1209, -767, 461, -250, 113, -34, 0, 0},\r
+ { 8, -54, 152, -312, 554, -902, 1407, -2178, 3513, -6613, 26596, 14027, -5285, 3007, -1902, 1231, -782, 470, -255, 116, -35, 0, 0, 0},\r
+ { -25, 88, -199, 371, -621, 981, -1517, 2388, -4136, 10250, 29149, -5866, 3041, -1872, 1208, -776, 479, -273, 134, -50, 8, 0, 0, 0},\r
+ { -11, 42, -100, 189, -319, 507, -784, 1228, -2086, 4748, 31832, -3605, 1788, -1087, 700, -451, 280, -162, 82, -32, 6, 0, 0, 0},\r
+ { 0, -34, 113, -250, 461, -767, 1209, -1868, 2952, -5179, 13643, 26879, -6563, 3478, -2155, 1392, -893, 548, -310, 150, -54, 8, 0, 0},\r
+ { 0, 0, -35, 116, -255, 470, -782, 1231, -1902, 3007, -5285, 14027, 26596, -6613, 3513, -2178, 1407, -902, 554, -312, 152, -54, 8, 0},\r
+ { 0, 0, 8, -50, 134, -273, 479, -776, 1208, -1872, 3041, -5866, 29149, 10250, -4136, 2388, -1517, 981, -621, 371, -199, 88, -25, 0}\r
+};\r
+\r
+/* SYS_BF_ANGLE_M45 */\r
+Fract sysBfFltM45[][SYS_BF_FILTER_LENGTH] = {\r
+ { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
+ { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
+ { -30, 103, -230, 426, -710, 1120, -1731, 2732, -4766, 12228, 27878, -6328, 3324, -2054, 1326, -851, 524, -297, 145, -53, 8, 0, 0, 0},\r
+ { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
+ { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
+ { 0, 0, 8, -53, 145, -297, 524, -851, 1326, -2054, 3324, -6328, 27878, 12228, -4766, 2732, -1731, 1120, -710, 426, -230, 103, -30, 0}\r
+};\r
+\r
+/* SYS_BF_ANGLE_M30 */\r
+Fract sysBfFltM30[][SYS_BF_FILTER_LENGTH] = {\r
+ { 0, 0, -35, 116, -255, 470, -782, 1231, -1902, 3007, -5285, 14027, 26596, -6613, 3513, -2178, 1407, -902, 554, -312, 152, -54, 8, 0},\r
+ { 0, -34, 113, -250, 461, -767, 1209, -1868, 2952, -5179, 13643, 26879, -6563, 3478, -2155, 1392, -893, 548, -310, 150, -54, 8, 0, 0},\r
+ { -11, 42, -100, 189, -319, 507, -784, 1228, -2086, 4748, 31832, -3605, 1788, -1087, 700, -451, 280, -162, 82, -32, 6, 0, 0, 0},\r
+ { -25, 88, -199, 371, -621, 981, -1517, 2388, -4136, 10250, 29149, -5866, 3041, -1872, 1208, -776, 479, -273, 134, -50, 8, 0, 0, 0},\r
+ { 8, -54, 152, -312, 554, -902, 1407, -2178, 3513, -6613, 26596, 14027, -5285, 3007, -1902, 1231, -782, 470, -255, 116, -35, 0, 0, 0},\r
+ { 0, 8, -54, 150, -310, 548, -893, 1392, -2155, 3478, -6563, 26879, 13643, -5179, 2952, -1868, 1209, -767, 461, -250, 113, -34, 0, 0},\r
+ { 0, 0, 6, -32, 82, -162, 280, -451, 700, -1087, 1788, -3605, 31832, 4748, -2086, 1228, -784, 507, -319, 189, -100, 42, -11, 0},\r
+ { 0, 0, 8, -50, 134, -273, 479, -776, 1208, -1872, 3041, -5866, 29149, 10250, -4136, 2388, -1517, 981, -621, 371, -199, 88, -25, 0}\r
+};\r
+\r
+/* Table of all available filters */\r
+Fract *sysBfFilters[SYS_BF_ANGLES_MAX] = {\r
+ &sysBfFltP0[0][0], /* SYS_BF_ANGLE_P0 */\r
+ &sysBfFltP30[0][0], /* SYS_BF_ANGLE_P30 */\r
+ &sysBfFltP45[0][0], /* SYS_BF_ANGLE_P45 */\r
+ &sysBfFltP60[0][0], /* SYS_BF_ANGLE_P60 */\r
+ &sysBfFltP90[0][0], /* SYS_BF_ANGLE_P90 */\r
+ &sysBfFltP120[0][0], /* SYS_BF_ANGLE_P120 */\r
+ &sysBfFltP135[0][0], /* SYS_BF_ANGLE_P130 */\r
+ &sysBfFltP150[0][0], /* SYS_BF_ANGLE_P150 */\r
+ &sysBfFltP180[0][0], /* SYS_BF_ANGLE_P180 */\r
+ &sysBfFltM150[0][0], /* SYS_BF_ANGLE_M150 */\r
+ &sysBfFltM135[0][0], /* SYS_BF_ANGLE_M135 */\r
+ &sysBfFltM120[0][0], /* SYS_BF_ANGLE_M120 */\r
+ &sysBfFltM90[0][0], /* SYS_BF_ANGLE_M90 */\r
+ &sysBfFltM60[0][0], /* SYS_BF_ANGLE_M60 */\r
+ &sysBfFltM45[0][0], /* SYS_BF_ANGLE_M45 */\r
+ &sysBfFltM30[0][0] /* SYS_BF_ANGLE_M30 */\r
+};\r
+\r
+/* Table of all available filter angles */\r
+tint sysBfFilterAngles[SYS_BF_ANGLES_MAX] = {\r
+ 0, /* SYS_BF_ANGLE_P0 */\r
+ 30, /* SYS_BF_ANGLE_P30 */\r
+ 45, /* SYS_BF_ANGLE_P45 */\r
+ 60, /* SYS_BF_ANGLE_P60 */\r
+ 90, /* SYS_BF_ANGLE_P90 */\r
+ 120, /* SYS_BF_ANGLE_P120 */\r
+ 130, /* SYS_BF_ANGLE_P130 */\r
+ 150, /* SYS_BF_ANGLE_P150 */\r
+ 180, /* SYS_BF_ANGLE_P180 */\r
+ -150, /* SYS_BF_ANGLE_M150 */\r
+ -135, /* SYS_BF_ANGLE_M135 */\r
+ -120, /* SYS_BF_ANGLE_M120 */\r
+ -90, /* SYS_BF_ANGLE_M90 */\r
+ -60, /* SYS_BF_ANGLE_M60 */\r
+ -45, /* SYS_BF_ANGLE_M45 */\r
+ -30 /* SYS_BF_ANGLE_M30 */\r
+};\r
+\r
+/* nothing past this point */\r
+\r
diff --git a/file_demo_bios/k2g/components/sysbfflt.h b/file_demo_bios/k2g/components/sysbfflt.h
--- /dev/null
@@ -0,0 +1,39 @@
+/* \r
+ sysbfflt.h: BF filter definitions for all angles of intereset\r
+*/\r
+#ifndef _SYSBFFLT_H\r
+#define _SYSBFFLT_H\r
+\r
+#include <xdc/std.h> /* required for types.h */\r
+#include <ti/mas/types/types.h>\r
+\r
+/*======================================================================\r
+ * Filter angles that are supported\r
+ *======================================================================*/\r
+\r
+#define SYS_BF_ANGLE_P0 (0)\r
+#define SYS_BF_ANGLE_P30 (1)\r
+#define SYS_BF_ANGLE_P45 (2)\r
+#define SYS_BF_ANGLE_P60 (3)\r
+#define SYS_BF_ANGLE_P90 (4)\r
+#define SYS_BF_ANGLE_P120 (5)\r
+#define SYS_BF_ANGLE_P135 (6)\r
+#define SYS_BF_ANGLE_P150 (7)\r
+#define SYS_BF_ANGLE_P180 (8)\r
+#define SYS_BF_ANGLE_M150 (9)\r
+#define SYS_BF_ANGLE_M135 (10)\r
+#define SYS_BF_ANGLE_M120 (11)\r
+#define SYS_BF_ANGLE_M90 (12)\r
+#define SYS_BF_ANGLE_M60 (13)\r
+#define SYS_BF_ANGLE_M45 (14)\r
+#define SYS_BF_ANGLE_M30 (15)\r
+#define SYS_BF_ANGLE_LAST SYS_BF_ANGLE_M30\r
+#define SYS_BF_ANGLES_MAX (SYS_BF_ANGLE_LAST+1)\r
+\r
+#define SYS_BF_FILTER_LENGTH 24 /* must be even for optimized code */\r
+\r
+extern Fract *sysBfFilters[]; /* table of all available filters */\r
+extern tint sysBfFilterAngles[]; /* table of filter angles in degrees */\r
+#endif\r
+/* nothing past this point */\r
+\r
diff --git a/file_demo_bios/k2g/components/syseram.c b/file_demo_bios/k2g/components/syseram.c
--- /dev/null
@@ -0,0 +1,19 @@
+/*=================================================================\r
+ * syseram.c: External memory heaps.\r
+ *=================================================================*/\r
+\r
+#include <xdc/std.h> /* required for types.h */\r
+#include <ti/mas/types/types.h>\r
+\r
+#include "syseram.h"\r
+\r
+#pragma DATA_ALIGN(sysEramPermanent,SYS_ERAM_ALIGN);\r
+#pragma DATA_SECTION(sysEramPermanent,".bferam");\r
+tword sysEramPermanent[SYS_ERAM_PERMANENT_SIZE];\r
+\r
+#pragma DATA_ALIGN(sysEramScratch,SYS_ERAM_ALIGN);\r
+#pragma DATA_SECTION(sysEramScratch,".bferam");\r
+tword sysEramScratch[SYS_ERAM_SCRATCH_SIZE];\r
+\r
+/* nothing past this point */\r
+\r
diff --git a/file_demo_bios/k2g/components/syseram.h b/file_demo_bios/k2g/components/syseram.h
--- /dev/null
@@ -0,0 +1,28 @@
+/* \r
+ * syseram.h: External memory heaps\r
+*/\r
+#ifndef _SYSERAM_H\r
+#define _SYSERAM_H\r
+\r
+#include <xdc/std.h> /* required for types.h */\r
+#include <ti/mas/types/types.h>\r
+\r
+#define SYS_ERAM_ALIGN_LOG2 3\r
+#define SYS_ERAM_ALIGN (8*8/TYP_TWORD_SIZE) /* alignment on 8 bytes */\r
+\r
+#if SYS_ERAM_ALIGN != 8\r
+#error unsuported word size\r
+#endif\r
+\r
+#define SYS_ERAM_PERMANENT 2000L /* The number of 8-byte elements */\r
+#define SYS_ERAM_SCRATCH 500L\r
+\r
+#define SYS_ERAM_PERMANENT_SIZE (SYS_ERAM_ALIGN*SYS_ERAM_PERMANENT)\r
+#define SYS_ERAM_SCRATCH_SIZE (SYS_ERAM_ALIGN*SYS_ERAM_SCRATCH)\r
+\r
+extern __far tword sysEramPermanent[];\r
+extern __far tword sysEramScratch[];\r
+\r
+#endif\r
+/* nothing past this point */\r
+\r
diff --git a/file_demo_bios/k2g/components/sysiram.c b/file_demo_bios/k2g/components/sysiram.c
--- /dev/null
@@ -0,0 +1,19 @@
+/*=================================================================\r
+ * sysiram.c: Internal memory heaps.\r
+ *=================================================================*/\r
+\r
+#include <xdc/std.h> /* required for types.h */\r
+#include <ti/mas/types/types.h>\r
+\r
+#include "sysiram.h"\r
+\r
+#pragma DATA_ALIGN(sysIramPermanent,SYS_IRAM_ALIGN);\r
+#pragma DATA_SECTION(sysIramPermanent,".bfiram");\r
+tword sysIramPermanent[SYS_IRAM_PERMANENT_SIZE];\r
+\r
+#pragma DATA_ALIGN(sysIramScratch,SYS_IRAM_ALIGN);\r
+#pragma DATA_SECTION(sysIramScratch,".bfiram");\r
+tword sysIramScratch[SYS_IRAM_SCRATCH_SIZE];\r
+\r
+/* nothing past this point */\r
+\r
diff --git a/file_demo_bios/k2g/components/sysiram.h b/file_demo_bios/k2g/components/sysiram.h
--- /dev/null
@@ -0,0 +1,28 @@
+/* \r
+ * sysiram.h: Internal memory heaps\r
+*/\r
+#ifndef _SYSIRAM_H\r
+#define _SYSIRAM_H\r
+\r
+#include <xdc/std.h> /* required for types.h */\r
+#include <ti/mas/types/types.h>\r
+\r
+#define SYS_IRAM_ALIGN_LOG2 3\r
+#define SYS_IRAM_ALIGN (8*8/TYP_TWORD_SIZE) /* alignment on 8 bytes */\r
+\r
+#if SYS_IRAM_ALIGN != 8\r
+#error unsuported word size\r
+#endif\r
+\r
+#define SYS_IRAM_PERMANENT 4000L /* The number of 8-byte elements */\r
+#define SYS_IRAM_SCRATCH 1000L\r
+\r
+#define SYS_IRAM_PERMANENT_SIZE (SYS_IRAM_ALIGN*SYS_IRAM_PERMANENT)\r
+#define SYS_IRAM_SCRATCH_SIZE (SYS_IRAM_ALIGN*SYS_IRAM_SCRATCH)\r
+\r
+extern __far tword sysIramPermanent[];\r
+extern __far tword sysIramScratch[];\r
+\r
+#endif\r
+/* nothing past this point */\r
+\r
diff --git a/file_demo_bios/k2g/components/sysmss.c b/file_demo_bios/k2g/components/sysmss.c
--- /dev/null
@@ -0,0 +1,104 @@
+/*=================================================================\r
+ * sysmss.c: MSS creation routines.\r
+ *=================================================================*/\r
+\r
+#include <xdc/std.h>\r
+#include <ti/sysbios/BIOS.h>\r
+#include <xdc/runtime/System.h>\r
+\r
+#include <ti/mas/types/types.h>\r
+#include <ti/mas/util/ecomem.h>\r
+//#include <ti/mas/aer/mss.h>\r
+\r
+#include "mss/mss.h"\r
+#include "sys.h"\r
+\r
+/* Configuration for getSizes */\r
+mssSizeConfig_t mssSizeConfig = {\r
+ mss_SAMP_RATE_16K, /* 16kHz sampling rate */\r
+ SYS_VMICS_MAX, /* Maximum # of fixed mics (will be providing virtual here! */\r
+ 0, /* No remote mics */\r
+ 0, /* No "clean" mics */\r
+ 0 /* Beams not supported so we have to used fixed! */\r
+};\r
+\r
+/* Configuration for Open */\r
+mssConfig_t mssConfig = {\r
+ mss_SAMP_RATE_16K, /* use 16kHz sampling rate */\r
+ SYS_VMICS_MAX, /* use one virtual mic only by default */\r
+ 0, /* No remote mics */\r
+ 0, /* No "clean" mics */\r
+ SYS_MICS_MAX, /* Microphone array has 8 mics */\r
+ 0 /* Beams not supported so we used the fixed! */\r
+};\r
+\r
+mssControl_t mssCtl = {\r
+ (mss_CTL_SWITCH_THRESH | mss_CTL_SWITCH_DURATION | mss_CTL_SWITCH_HNAGOVER),\r
+ {0, 0}, /* do not use modes */\r
+ {0, 0}, /* do not use source */\r
+ 250, /* sw-thresh in ms */\r
+ 500, /* sw-duration in ms */\r
+ 500 /* sw-hangover in ms */\r
+};\r
+\r
+/*=================================================================\r
+ * void sysMssCreate(void) Create beamformers\r
+ *=================================================================*/\r
+void sysMssCreate(void)\r
+{\r
+ int err;\r
+ tint nbufs;\r
+ const ecomemBuffer_t *bufs;\r
+ mssNewConfig_t mssNewConfig;\r
+// bfControl_t bfCtl;\r
+\r
+ System_printf("...Initializing MSS\n");\r
+ System_flush();\r
+\r
+ /* Configure MSS */\r
+ err = mssGetSizes(&nbufs, &bufs, &mssSizeConfig);\r
+ if (err != mss_NOERR) {\r
+ System_printf("*** MSS getSizes error: %d\n", err);\r
+ BIOS_exit(0);\r
+ }\r
+ if (nbufs > SYS_COMP_MAXBUFS) {\r
+ System_printf("*** not enough buffer descriptors");\r
+ BIOS_exit(0);\r
+ }\r
+\r
+ /* Allocate memory for MSS */\r
+ mssNewConfig.sizeCfg = mssSizeConfig; /* Use same configuration */\r
+ err = sysHeapAllocAll(nbufs, sysCompBufs, (const void*)bufs);\r
+ SYS_CHECK_ERROR(err);\r
+ \r
+ /* Give memory to MSS */\r
+ mssNewConfig.handle = (void*)0; /* Indicate instance 0 */\r
+ sysContext.mssInst_p = NULL;\r
+ err = mssNew(&sysContext.mssInst_p, nbufs, sysCompBufs, &mssNewConfig);\r
+ if (err != mss_NOERR) {\r
+ System_printf("*** MSS New error: %d\n", err);\r
+ BIOS_exit(0);\r
+ }\r
+\r
+ /* Open MSS for business */\r
+ err = mssOpen(sysContext.mssInst_p,&mssConfig);\r
+ if (err != mss_NOERR) {\r
+ System_printf("*** MSS open error: %d\n", err);\r
+ BIOS_exit(0);\r
+ }\r
+ /* At this point MSS is open */\r
+\r
+ /* Reconfigure hangovers, etc. */\r
+ err = mssControl(sysContext.mssInst_p, &mssCtl);\r
+ if (err != mss_NOERR) {\r
+ System_printf("*** MSS control error: %d\n", err);\r
+ BIOS_exit(0);\r
+ }\r
+\r
+ System_printf("Done with MSS\n");\r
+ System_flush();\r
+\r
+} /* sysMssCreate */\r
+\r
+/* nothing past this point */\r
+\r
diff --git a/file_demo_bios/k2g/components/sysvau.c b/file_demo_bios/k2g/components/sysvau.c
--- /dev/null
@@ -0,0 +1,85 @@
+/*=================================================================\r
+ * sysvau.c: VAU creation routines.\r
+ *=================================================================*/\r
+\r
+#include <xdc/std.h>\r
+#include <ti/sysbios/BIOS.h>\r
+#include <xdc/runtime/System.h>\r
+\r
+#include <ti/mas/types/types.h>\r
+#include <ti/mas/util/ecomem.h>\r
+#include <ti/mas/vau/vau.h>\r
+\r
+#include "sys.h"\r
+\r
+vauSizeConfig_t vauSizeConfig = {\r
+ SYS_FRAME_LENGTH, /* 10ms frames (160 samples) */\r
+ vau_SAMP_RATE_16KHZ /* 16kHz sampling rate */\r
+};\r
+\r
+vauOpenConfig_t vauOpenConfig = {\r
+ SYS_FRAME_LENGTH, /* use 160 sample frames */\r
+ vau_SAMP_RATE_16KHZ, /* use 16kHz sampling rate */\r
+ { 0, 0, 0, 0, 0} /* Do not reconfigure defaults */\r
+};\r
+\r
+/*=================================================================\r
+ * void sysVauCreate(void) Create VAU instance\r
+ *=================================================================*/\r
+void sysVauCreate(void)\r
+{\r
+ int err;\r
+ tint nbufs;\r
+ const ecomemBuffer_t *bufs;\r
+ ifvauControl_t vauCtl;\r
+\r
+ System_printf("...Initializing VAU\n");\r
+ System_flush();\r
+\r
+ /* Configure VAU */\r
+ err = vauGetSizes(&nbufs, &bufs, &vauSizeConfig);\r
+ if (err != vau_NOERR) {\r
+ System_printf("*** VAU getsizes error: %d\n", err);\r
+ BIOS_exit(0);\r
+ }\r
+ /* Allocate memory for VAU */\r
+ if (nbufs > SYS_COMP_MAXBUFS) {\r
+ System_printf("*** not enough buffer descriptors");\r
+ BIOS_exit(0);\r
+ }\r
+\r
+ err = sysHeapAllocAll(nbufs, sysCompBufs, (const void*)bufs);\r
+ SYS_CHECK_ERROR(err);\r
+ \r
+ /* Give memory to VAU */\r
+ sysContext.vauInst_p = NULL;\r
+ err = vauNew(&sysContext.vauInst_p, nbufs, sysCompBufs);\r
+ if (err != vau_NOERR) {\r
+ System_printf("*** VAU #%d new error: %d\n", err);\r
+ BIOS_exit(0);\r
+ }\r
+\r
+ /* Open VAU for business */\r
+ err = vauOpen(sysContext.vauInst_p,&vauOpenConfig);\r
+ if (err != vau_NOERR) {\r
+ System_printf("*** VAU open error: %d\n", err);\r
+ BIOS_exit(0);\r
+ }\r
+ /* At this point VAU is open, but may need additional configuration */\r
+\r
+ /* Here we enable VAU */\r
+ vauCtl.valid_params = ifvau_VALID_CONTROL;\r
+ vauCtl.control = ifvau_ENABLE;\r
+ err = vauControl (sysContext.vauInst_p, NULL, &vauCtl);\r
+ if (err != vau_NOERR) {\r
+ System_printf("*** VAU control error: %d\n", err);\r
+ BIOS_exit(0);\r
+ }\r
+\r
+ System_printf("Done with VAU\n");\r
+ System_flush();\r
+\r
+} /* sysVauCreate */\r
+\r
+/* nothing past this point */\r
+\r
diff --git a/file_demo_bios/k2g/evmk2g.gel b/file_demo_bios/k2g/evmk2g.gel
--- /dev/null
@@ -0,0 +1,2633 @@
+/******************************************************************************
+ * Copyright (c) 2012-16 Texas Instruments Incorporated - http://www.ti.com
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *****************************************************************************
+ *
+ * Filename: evmk2g.gel
+ * Description: Galileo system initialization GEL for use with the Galileo
+ * EVM. This GEL has functions that handle the Main PLL
+ * initialization.
+ *
+ * More functions may be added as needed at a later date.
+ *
+ * Author: Nitin Sakhuja
+ * Revision History:
+ *
+ * Rev 0.1 - 02/06/2012
+ * - Initial file creation - based on latest Appleton PLL init sequnce
+ * + Updated MAINPLLCTL0 and MAINPLLCTL1 MMR addresses for Keystone-2
+ * Rev 1.0 - 02/10/2012
+ * - Updates for Kepler
+ * + Changed CLKIN_val and PLLM_val values according to 1GHz and 1.3GHz clock options.
+ * + Removed non-relevat PLL init combinations.
+ * + Clean-up and formattting improvements.
+ * - Kepler QT specific Workarounds.
+ * + Added dummy reads between all Write->Read sequences to make them Write->Read->Read
+ * as a workaround for a potential Kepler QT PLL model bug, where the first Read following
+ * a Write to a PLL controller MMR seems to return the pre-write value of the MMR.
+ * Rev 4.0 - 01/21/2014
+ * - Updates for Galileo (Mark McKeown)
+ * + Changed CLKIN_val and PLLM_val values for 400, 600, 800, & 1000MHz clocks
+ * + Moved RESET assert from step 9 to step 3 where it belongs according to 6.4.4.3 PLL
+ * Initialization Sequences in clock_arch_galileo_v0.93.pdf
+ * Rev 5.0 - 08/07/2014
+ * - Set_Pll1: fixed hotmenu function names, GEL_TextOut for 50MHz ref clk instead of 100MHz
+ * - Set_Tetris_Pll: Changed Multiplier values for 50MHz ref clk instead of 100Mhz, updated hotmenu function names
+ * DONE 1) try moving reset (step 3) between steps 2 and 4
+ * 2) remove extra steps 2b, 2c, 2d after "step 3"
+ * 3) add step 8c
+ * 4) check values for PLLDIV2 & PLLDIV3 - only SYSCLK2 and SYSCLK3 are programmable.
+ * Rev 6.0 - 08/29/2014 (Sunil K)
+ * - Added NSS PLL definitions & setup function (SET_NSS_PLL)
+ * - Added Hot menu (SET NSS PLL for 50MHz -> 1000MHz) to setup NSS PLL for 50MHZ sysclkp/n input for QT
+ * Rev 7.0 - 04/30/2015 (Uday G)
+ * - Modified PLLM, PLLD, OD values to correspond to 24MHZ reference clock
+ * - Added DSS, DDR, UART PLL definitions & setup function
+ * - Added ability to output all PLLs on OBSCLK
+ * - Verified GEL on Galileo Silicon
+ * Rev 8.0 - 11/25/2015 (Pratap)
+ * - Added Configurations for enabling PSC
+ * - Added clock configurations for DSS 9MHz and 25MHz
+ * Rev 9.0 -
+ * - Added DSP out-of-reset routine 01/20/2016 (Lalindra J)
+ * - Changed the DDR PLL settings as per DPO analysis 01/22/2016 (SenthilKumar S)
+ ---------------------------------------------------------------------------*/
+
+//******************************************************
+// BOOT and CONFIG dsp system modules Definitions
+#define CHIP_LEVEL_REG 0x02620000
+#define DEVSTAT *(unsigned int*)(CHIP_LEVEL_REG + 0x0020)
+
+// Boot cfg registers
+#define KICK0 *(unsigned int*)(CHIP_LEVEL_REG + 0x0038)
+#define KICK1 *(unsigned int*)(CHIP_LEVEL_REG + 0x003C)
+#define KICK0_UNLOCK (0x83E70B13)
+#define KICK1_UNLOCK (0x95A4F1E0)
+#define KICK_LOCK 0
+#define TINPSEL *(unsigned int*)(CHIP_LEVEL_REG + 0x0300)
+#define TOUTPSEL *(unsigned int*)(CHIP_LEVEL_REG + 0x0304)
+#define MAINPLLCTL0 *(unsigned int*)(CHIP_LEVEL_REG + 0x0350) //0x0328)
+#define MAINPLLCTL1 *(unsigned int*)(CHIP_LEVEL_REG + 0x0354) //0x032C)
+#define MAIN_PLLD_OFFSET 0
+#define MAIN_PLLD_MASK 0xFFFFFFC0
+#define MAIN_PLLM_OFFSET 12
+#define MAIN_PLLM_MASK 0xFFF80FFF
+#define MAIN_BWADJ0_OFFSET 24
+#define MAIN_BWADJ0_MASK 0x00FFFFFF
+#define MAIN_ENSAT_OFFSET 6
+#define MAIN_ENSAT_MASK 0xFFFFFFBF
+#define MAIN_BWADJ1_OFFSET 0
+#define MAIN_BWADJ1_MASK 0xFFFFFFF0
+
+#define CHIP_MISC1 *(unsigned int*)(CHIP_LEVEL_REG + 0x0C7C)
+#define ARMPLL_ENABLE_OFFSET 13
+
+#define DDR3PLLCTL0 *(unsigned int*)(CHIP_LEVEL_REG + 0x0360)
+#define DDR3PLLCTL1 *(unsigned int*)(CHIP_LEVEL_REG + 0x0364)
+#define DDR3MUX *(unsigned int*)(CHIP_LEVEL_REG + 0x0690)
+#define OBSCLKCTL *(unsigned int*)(CHIP_LEVEL_REG + 0x0C80)
+
+#define TETRIS_BASE 0x01E80000
+
+#define TETRIS_CPU0_PDSTAT *(unsigned int*)(TETRIS_BASE + 0x0404)
+// Tetris-UL subsystem and A15 core are in a single common power domain and fully controlled by the SoC level PSC.
+// As per design team (BTS_SPEC.538 WEBS) we should not access the Tetris DPSC registers for Galileo
+// By default the Tetris power domain is ON and no need to write to any registers
+// Based on above commenting out the following and any relevant code that attempts to set the same
+//#define TETRIS_CPU0_PDCTL *(unsigned int*)(TETRIS_BASE + 0x0408)
+//#define TETRIS_CPU0_PTCMD *(unsigned int*)(TETRIS_BASE + 0x0400)
+
+// Commented following lines since Galileo has only one A15 core
+//#define TETRIS_CPU1_PTCMD *(unsigned int*)(TETRIS_BASE + 0x040C)
+//#define TETRIS_CPU1_PDSTAT *(unsigned int*)(TETRIS_BASE + 0x0410)
+//#define TETRIS_CPU1_PDCTL *(unsigned int*)(TETRIS_BASE + 0x0414)
+
+//#define TETRIS_CPU2_PTCMD *(unsigned int*)(TETRIS_BASE + 0x0418)
+//#define TETRIS_CPU2_PDSTAT *(unsigned int*)(TETRIS_BASE + 0x041C)
+//#define TETRIS_CPU2_PDCTL *(unsigned int*)(TETRIS_BASE + 0x0420)
+
+//#define TETRIS_CPU3_PTCMD *(unsigned int*)(TETRIS_BASE + 0x0424)
+//#define TETRIS_CPU3_PDSTAT *(unsigned int*)(TETRIS_BASE + 0x0428)
+//#define TETRIS_CPU3_PDCTL *(unsigned int*)(TETRIS_BASE + 0x042C)
+
+#define SECPLLCTL0 *(unsigned int*)(CHIP_LEVEL_REG + 0x0370)
+#define SECPLLCTL1 *(unsigned int*)(CHIP_LEVEL_REG + 0x0374)
+
+#define ICSSPLLCTL0 *(unsigned int*)(CHIP_LEVEL_REG + 0x0388)
+#define ICSSPLLCTL1 *(unsigned int*)(CHIP_LEVEL_REG + 0x038C)
+
+#define NSSPLLCTL0 *(unsigned int*)(CHIP_LEVEL_REG + 0x0358)
+#define NSSPLLCTL1 *(unsigned int*)(CHIP_LEVEL_REG + 0x035C)
+
+#define UARTPLLCTL0 *(unsigned int*)(CHIP_LEVEL_REG + 0x0390)
+#define UARTPLLCTL1 *(unsigned int*)(CHIP_LEVEL_REG + 0x0394)
+
+//******************************************************
+//Boot CFG DDR Registers
+
+// DDR3 tuning registers
+#define DATA0_GTLVL_INIT_RATIO (*(unsigned int*)(CHIP_LEVEL_REG + 0x043C))
+#define DATA1_GTLVL_INIT_RATIO (*(unsigned int*)(CHIP_LEVEL_REG + 0x0440))
+#define DATA2_GTLVL_INIT_RATIO (*(unsigned int*)(CHIP_LEVEL_REG + 0x0444))
+#define DATA3_GTLVL_INIT_RATIO (*(unsigned int*)(CHIP_LEVEL_REG + 0x0448))
+#define DATA4_GTLVL_INIT_RATIO (*(unsigned int*)(CHIP_LEVEL_REG + 0x044C))
+#define DATA5_GTLVL_INIT_RATIO (*(unsigned int*)(CHIP_LEVEL_REG + 0x0450))
+#define DATA6_GTLVL_INIT_RATIO (*(unsigned int*)(CHIP_LEVEL_REG + 0x0454))
+#define DATA7_GTLVL_INIT_RATIO (*(unsigned int*)(CHIP_LEVEL_REG + 0x0458))
+#define DATA8_GTLVL_INIT_RATIO (*(unsigned int*)(CHIP_LEVEL_REG + 0x045C))
+
+#define DATA0_WRLVL_INIT_RATIO (*(unsigned int*)(CHIP_LEVEL_REG + 0x040C))
+#define DATA1_WRLVL_INIT_RATIO (*(unsigned int*)(CHIP_LEVEL_REG + 0x0410))
+#define DATA2_WRLVL_INIT_RATIO (*(unsigned int*)(CHIP_LEVEL_REG + 0x0414))
+#define DATA3_WRLVL_INIT_RATIO (*(unsigned int*)(CHIP_LEVEL_REG + 0x0418))
+#define DATA4_WRLVL_INIT_RATIO (*(unsigned int*)(CHIP_LEVEL_REG + 0x041C))
+#define DATA5_WRLVL_INIT_RATIO (*(unsigned int*)(CHIP_LEVEL_REG + 0x0420))
+#define DATA6_WRLVL_INIT_RATIO (*(unsigned int*)(CHIP_LEVEL_REG + 0x0424))
+#define DATA7_WRLVL_INIT_RATIO (*(unsigned int*)(CHIP_LEVEL_REG + 0x0428))
+#define DATA8_WRLVL_INIT_RATIO (*(unsigned int*)(CHIP_LEVEL_REG + 0x042C))
+
+#define DDR3_CONFIG_REG_0 (*(unsigned int*)(CHIP_LEVEL_REG + 0x0404))
+#define DDR3_CONFIG_REG_12 (*(unsigned int*)(CHIP_LEVEL_REG + 0x0434))
+#define DDR3_CONFIG_REG_13 (*(unsigned int*)(CHIP_LEVEL_REG + 0x0438))
+
+#define DDR3_CONFIG_REG_52 (*(unsigned int*)(CHIP_LEVEL_REG + 0x04D4))
+#define DDR3_CONFIG_REG_53 (*(unsigned int*)(CHIP_LEVEL_REG + 0x04D8))
+#define DDR3_CONFIG_REG_54 (*(unsigned int*)(CHIP_LEVEL_REG + 0x04DC))
+#define DDR3_CONFIG_REG_55 (*(unsigned int*)(CHIP_LEVEL_REG + 0x04E0))
+#define DDR3_CONFIG_REG_56 (*(unsigned int*)(CHIP_LEVEL_REG + 0x04E4))
+#define DDR3_CONFIG_REG_57 (*(unsigned int*)(CHIP_LEVEL_REG + 0x04E8))
+#define DDR3_CONFIG_REG_58 (*(unsigned int*)(CHIP_LEVEL_REG + 0x04EC))
+#define DDR3_CONFIG_REG_59 (*(unsigned int*)(CHIP_LEVEL_REG + 0x04F0))
+#define DDR3_CONFIG_REG_60 (*(unsigned int*)(CHIP_LEVEL_REG + 0x04F4))
+
+
+//******************************************************
+// PLL 1 definitions (DSP and ARM clock and subsystems)
+#define PLL1_BASE 0x02310000
+#define PLL1_PLLCTL (*(unsigned int*)(PLL1_BASE + 0x100)) // PLL1 Control
+#define PLL1_OCSEL (*(unsigned int*)(PLL1_BASE + 0x104)) // PLL1 OCSEL for Observation clock
+#define PLL1_SECCTL (*(unsigned int*)(PLL1_BASE + 0x108)) // PLL1 Secondary Control
+#define PLL1_PLLM (*(unsigned int*)(PLL1_BASE + 0x110)) // PLL1 Multiplier
+#define PLL1_DIV1 (*(unsigned int*)(PLL1_BASE + 0x118)) // DIV1 divider
+#define PLL1_DIV2 (*(unsigned int*)(PLL1_BASE + 0x11C)) // DIV2 divider
+#define PLL1_DIV3 (*(unsigned int*)(PLL1_BASE + 0x120)) // DIV3 divider
+#define PLL1_CMD (*(unsigned int*)(PLL1_BASE + 0x138)) // CMD control
+#define PLL1_STAT (*(unsigned int*)(PLL1_BASE + 0x13C)) // STAT control
+#define PLL1_ALNCTL (*(unsigned int*)(PLL1_BASE + 0x140)) // ALNCTL control
+#define PLL1_DCHANGE (*(unsigned int*)(PLL1_BASE + 0x144)) // DCHANGE status
+#define PLL1_CKEN (*(unsigned int*)(PLL1_BASE + 0x148)) // CKEN control
+#define PLL1_CKSTAT (*(unsigned int*)(PLL1_BASE + 0x14C)) // CKSTAT status
+#define PLL1_SYSTAT (*(unsigned int*)(PLL1_BASE + 0x150)) // SYSTAT status
+#define PLL1_DIV4 (*(unsigned int*)(PLL1_BASE + 0x160)) // DIV4 divider
+#define PLL1_DIV5 (*(unsigned int*)(PLL1_BASE + 0x164)) // DIV5 divider
+#define PLL1_DIV6 (*(unsigned int*)(PLL1_BASE + 0x168)) // DIV6 divider
+#define PLL1_DIV7 (*(unsigned int*)(PLL1_BASE + 0x16C)) // DIV7 divider
+#define PLL1_DIV8 (*(unsigned int*)(PLL1_BASE + 0x170)) // DIV8 divider
+#define PLL1_DIV9 (*(unsigned int*)(PLL1_BASE + 0x174)) // DIV9 divider
+#define PLL1_DIV10 (*(unsigned int*)(PLL1_BASE + 0x178)) // DIV10 divider
+#define PLL1_DIV11 (*(unsigned int*)(PLL1_BASE + 0x17C)) // DIV11 divider
+#define PLL1_DIV12 (*(unsigned int*)(PLL1_BASE + 0x180)) // DIV12 divider
+#define PLL1_DIV13 (*(unsigned int*)(PLL1_BASE + 0x184)) // DIV13 divider
+#define PLL1_DIV14 (*(unsigned int*)(PLL1_BASE + 0x188)) // DIV14 divider
+#define PLL1_DIV15 (*(unsigned int*)(PLL1_BASE + 0x18C)) // DIV15 divider
+#define PLL1_DIV16 (*(unsigned int*)(PLL1_BASE + 0x190)) // DIV16 divider
+#define PLLPWRDN_OFFSET 1
+#define PLLPWRDN_MASK 0xFFFFFFFD
+#define PLLRST_OFFSET 3
+#define PLLRST_MASK 0xFFFFFFF7
+#define PLLENSRC_OFFSET 5
+#define PLLENSRC_MASK 0xFFFFFFDF
+#define PLLEN_OFFSET 0
+#define PLLEN_MASK 0xFFFFFFFE
+#define OUTPUT_DIVIDE_OFFSET 19
+#define OUTPUT_DIVIDE_MASK 0xFF87FFFF
+#define BYPASS_OFFSET 23
+#define BYPASS_MASK 0xFF7FFFFF
+#define PLLM_OFFSET 0
+#define PLLM_MASK 0xFFFFFFC0
+#define GOSET_OFFSET 0
+#define GOSET_MASK 0xFFFFFFFE
+#define GOSTAT_OFFSET 0
+#define GOSTAT_MASK 0xFFFFFFFE
+
+// ARMPLL definitions
+#define SEC_PLLCTL0_PLLD_OFFSET 0
+#define SEC_PLLCTL0_PLLD_MASK 0xFFFFFFC0
+#define SEC_PLLCTL0_PLLM_OFFSET 6
+#define SEC_PLLCTL0_PLLM_MASK 0xFFFF003F
+#define SEC_PLLCTL0_BWADJ_OFFSET 24
+#define SEC_PLLCTL0_BWADJ_MASK 0x00FFFFFF
+#define SEC_PLLCTL0_OD_OFFSET 19
+#define SEC_PLLCTL0_OD_MASK 0xFF87FFFF
+#define SEC_PLLCTL0_BYPASS_OFFSET 23
+#define SEC_PLLCTL0_BYPASS_MASK 0xFF7FFFFF
+#define SEC_PLLCTL1_RESET_OFFSET 14
+#define SEC_PLLCTL1_RESET_MASK 0xFFFFBFFF
+#define SEC_PLLCTL1_PWRDWN_OFFSET 15
+#define SEC_PLLCTL1_PWRDWN_MASK 0xFFFF7FFF
+#define SEC_PLLCTL1_ENSTAT_OFFSET 6
+#define SEC_PLLCTL1_ENSTAT_MASK 0xFFFFFFBF
+
+//******************************************************
+// DDR3 definitions
+#define DDR_BASE_ADDR 0x21000000
+
+#define DDR_MIDR (*(unsigned int*)(DDR_BASE_ADDR + 0x00000000))
+#define DDR_SDCFG (*(unsigned int*)(DDR_BASE_ADDR + 0x00000008))
+#define DDR_SDRFC (*(unsigned int*)(DDR_BASE_ADDR + 0x00000010))
+#define DDR_SDTIM1 (*(unsigned int*)(DDR_BASE_ADDR + 0x00000018))
+#define DDR_SDTIM2 (*(unsigned int*)(DDR_BASE_ADDR + 0x00000020))
+#define DDR_SDTIM3 (*(unsigned int*)(DDR_BASE_ADDR + 0x00000028))
+#define DDR_PMCTL (*(unsigned int*)(DDR_BASE_ADDR + 0x00000038))
+#define DDR_ZQCFG (*(unsigned int*)(DDR_BASE_ADDR + 0x000000C8))
+#define DDR_TMPALRT (*(unsigned int*)(DDR_BASE_ADDR + 0x000000CC))
+#define DDR_RDWR_LVL_RMP_CTRL (*(unsigned int*)(DDR_BASE_ADDR + 0x000000D8))
+#define DDR_RDWR_LVL_CTRL (*(unsigned int*)(DDR_BASE_ADDR + 0x000000DC))
+#define DDR_DDRPHYC (*(unsigned int*)(DDR_BASE_ADDR + 0x000000E4))
+
+//******************************************************
+// XMC Register Definitions
+#define XMC_BASE_ADDR (0x08000000)
+#define XMPAX2_L (*(int*)(XMC_BASE_ADDR + 0x00000010))
+#define XMPAX2_H (*(int*)(XMC_BASE_ADDR + 0x00000014))
+
+//******************************************************
+// MSMC Register Definitions
+#define MSMC_CFG_BASE (0x0BC00000)
+#define SMS_MPAXH_0_0 (MSMC_CFG_BASE + 0x00000204)
+#define SES_MPAXH_0_0 (MSMC_CFG_BASE + 0x00000604)
+
+//******************************************************
+// PSC Register Definitions
+
+#define PSC_CFG_BASE (0x02350000)
+
+#define PSC_MDCTL00 (0xA00)
+#define PSC_MDSTAT00 (0x800)
+#define PSC_PDCTL00 (0x300)
+#define PSC_PDSTAT00 (0x200)
+
+#define PSC_MDCTL_BASE PSC_CFG_BASE + PSC_MDCTL00
+#define PSC_MDSTAT_BASE PSC_CFG_BASE + PSC_MDSTAT00
+#define PSC_PDCTL_BASE PSC_CFG_BASE + PSC_PDCTL00
+#define PSC_PDSTAT_BASE PSC_CFG_BASE + PSC_PDSTAT00
+
+#define PMMC_PDCTL (*(unsigned int*)(PSC_PDCTL_BASE + 0x000))
+#define PMMC_MDCTL (*(unsigned int*)(PSC_MDCTL_BASE + 0x004))
+
+#define PSC_PTCMD (*(unsigned int*)(PSC_CFG_BASE + 0x120))
+#define PSC_PTCMD_H (*(unsigned int*)(PSC_CFG_BASE + 0x124))
+#define PSC_PTSTAT (*(unsigned int*)(PSC_CFG_BASE + 0x128))
+#define PSC_PTSTAT_H (*(unsigned int*)(PSC_CFG_BASE + 0x12C))
+
+/* BB register field read macro */
+#define BB_REG_FIELD_READ(reg_addr) (unsigned int)((*((unsigned int*)reg_addr)))
+
+#define MAIN_PLL_CTL0_ADDR 0x02620350
+#define MAIN_PLL_CTL1_ADDR 0x02620354
+#define PLLCTL_ADDR 0x02310100
+#define SECCTL_ADDR 0x02310108
+#define PLLM_ADDR 0x02310110
+#define PLLDIV1_ADDR 0x02310118
+#define PLLDIV2_ADDR 0x0231011C
+#define PLLDIV3_ADDR 0x02310120
+#define PLLCMD_ADDR 0x02310138
+#define PLLSTAT_ADDR 0x0231013C
+#define PLLDIV4_ADDR 0x02310160
+#define PLLDIV5_ADDR 0x02310164
+#define PLLDIV6_ADDR 0x02310168
+#define PLLDIV7_ADDR 0x0231016C
+#define PLLDIV8_ADDR 0x02310170
+
+/* DSS-UL PLL definitions */
+#define DSS_PLL_CTL0 *(unsigned int*)(CHIP_LEVEL_REG + 0x380)
+#define DSS_PLL_CTL1 *(unsigned int*)(CHIP_LEVEL_REG + 0x384)
+#define DSS_PLL_CTL0_BYPASS_EN (1)
+#define DSS_PLL_CTL0_BYPASS_SHIFT (23)
+#define DSS_PLL_CTL0_BYPASS_MASK (0x00000000)
+#define DSS_PLL_CTL0_CLKOD_SHIFT (19)
+#define DSS_PLL_CTL0_CLKOD_MASK (0x00780000)
+#define DSS_PLL_CTL0_PLLM_SHIFT (6)
+#define DSS_PLL_CTL0_PLLM_MASK (0x0007FFC0)
+#define DSS_PLL_CTL0_PLLD_SHIFT (0)
+#define DSS_PLL_CTL0_PLLD_MASK (0x0000003F)
+#define DSS_PLL_MULTIPLIER_MAX (512) //The max is really 4096 but recommended to stay below 512 for low jitter
+#define DSS_PLL_REF_DIVIDER_MAX (64)
+#define DSS_PLL_OUTPUT_DIVIDER_MAX (16)
+
+
+#define PD0 (0) // Power Domain-0
+#define PD1 (1) // Power Domain-1
+#define PD2 (2) // Power Domain-2
+#define PD3 (3) // Power Domain-3
+#define PD4 (4) // Power Domain-4
+#define PD5 (5) // Power Domain-5
+#define PD6 (6) // Power Domain-6
+#define PD7 (7) // Power Domain-7
+#define PD8 (8) // Power Domain-8
+#define PD9 (9) // Power Domain-9
+#define PD10 (10) // Power Domain-10
+#define PD11 (11) // Power Domain-11
+#define PD12 (12) // Power Domain-12
+#define PD13 (13) // Power Domain-13
+#define PD14 (14) // Power Domain-14
+#define PD15 (15) // Power Domain-15
+
+// Modules on power domain 0
+#define LPSC_ALWAYSON (0)
+
+// Modules on power domain 1
+#define LPSC_PMMC (1)
+#define LPSC_DEBUG (2)
+
+// Modules on power domain 2
+#define LPSC_NSS (3)
+
+// Modules on power domain 3
+#define LPSC_SA (4)
+
+// Modules on power domain 4
+#define LPSC_TERANET (5)
+
+// Modules on power domain 5
+#define LPSC_SYS_COMP (6)
+#define LPSC_QSPI (7)
+#define LPSC_MMC (8)
+#define LPSC_GPMC (9)
+#define LPSC_MLB (11)
+#define LPSC_EHRPWM (12)
+#define LPSC_EQEP (13)
+#define LPSC_ECAP (14)
+#define LPSC_MCASP (15)
+
+// Modules on power domain 7
+#define LPSC_MSMC (17)
+
+// Modules on power domain 8
+#define LPSC_C66X_COREPAC_0 (18)
+
+// Modules on power domain 9
+#define LPSC_ARM (19)
+
+// Modules on power domain 11
+#define LPSC_ICSS (21)
+
+// Modules on power domain 12
+#define LPSC_DSS (23)
+
+// Modules on power domain 13
+#define LPSC_PCIE (24)
+
+// Modules on power domain 14
+#define LPSC_USB_0 (25)
+#define LPSC_USB_1 (26)
+
+// Modules on power domain 15
+#define LPSC_DDR3 (27)
+
+#define PSC_DISABLE (0x2)
+#define PSC_ENABLE (0x3)
+// Global timeout value
+#define GTIMEOUT 2000
+
+#define TIMEOUT_ID 10
+
+// Timeout definitions
+int _GEL_Global_Timeout1 = 0;
+
+/*----------Out-of-reset definitions-----------*/
+#define WR_MEM_32(addr, data) *(unsigned int*)(addr) =(unsigned int)(data)
+#define RD_MEM_32(addr) *(unsigned int*)(addr)
+#define uint32_t unsigned int
+
+/*******************************************************************************
+ KS2 Registers Map Defines
+*******************************************************************************/
+/***** Power Domain Definitions *****/
+#define KS2_PDCTL5 0x02350314
+#define KS2_PDCTL8 0x02350320
+#define KS2_PDCTL9 0x02350324
+#define KS2_PDCTL10 0x02350328
+#define KS2_PDCTL11 0x0235032C
+#define KS2_PDCTL12 0x02350330
+#define KS2_PDCTL13 0x02350334
+#define KS2_PDCTL14 0x02350338
+#define KS2_PDCTL15 0x0235033C
+
+/***** Module Control Register Definitions *****/
+#define KS2_MDCTL5 0x02350A14
+#define KS2_MDCTL15 0x02350A3C
+#define KS2_MDCTL16 0x02350A40
+#define KS2_MDCTL17 0x02350A44
+#define KS2_MDCTL18 0x02350A48
+#define KS2_MDCTL19 0x02350A4C
+#define KS2_MDCTL20 0x02350A50
+#define KS2_MDCTL21 0x02350A54
+#define KS2_MDCTL22 0x02350A58
+
+/****************************************************************************
+ *
+ * NAME
+ * Global_Default_Setup_Silent
+ *
+ * PURPOSE:
+ * Setup almost everything ready for a new debug session:
+ * DSP modules and EVM board modules.
+ *
+ * USAGE
+ * This routine can be called as:
+ *
+ * Global_Default_Setup_Silent()
+ *
+ * RETURN VALUE
+ * NONE
+ *
+ * REFERENCE
+ *
+ ****************************************************************************/
+Global_Default_Setup_Silent()
+{
+ // Only core 0 can set these
+ if (DNUM == 0)
+ {
+ CORE_PLL_INIT_24MHz_to_600MHz();
+ TETRIS_PLL_INIT_24MHZ_to_600MHz();
+ Set_Psc_All_On();
+ UART_PLL_INIT_24MHz_TO_384MHz();
+ NSS_PLL_INIT_24MHz_TO_1000MHz();
+ ICSS_POWERUP_AND_PLL_INIT_24MHz_to_200MHz();
+ DSS_PLL_INIT_24MHZ_to_25MHz();
+ DDR_PLL_INIT_24MHZ_to_200MHz();
+ InitXMC();
+ InitEmif_DDR3A_NO_ECC();
+ }
+}
+
+OnTargetConnect()
+{
+ Global_Default_Setup_Silent();
+}
+
+Read_PLL_Reg()
+{
+ unsigned int reg_value = 0xFFFFFFFF;
+
+ reg_value = BB_REG_FIELD_READ(MAIN_PLL_CTL0_ADDR);
+ GEL_TextOut(" The value of MAIN_PLL_CTL0_ADDR is %x \n",,,,,reg_value);
+
+ reg_value = BB_REG_FIELD_READ(MAIN_PLL_CTL1_ADDR);
+ GEL_TextOut(" The value of MAIN_PLL_CTL1_ADDR is %x \n",,,,,reg_value);
+
+ reg_value = BB_REG_FIELD_READ(PLLCTL_ADDR);
+ GEL_TextOut(" The value of PLLCTL_ADDR is %x \n",,,,,reg_value);
+
+ reg_value = BB_REG_FIELD_READ(SECCTL_ADDR);
+ GEL_TextOut(" The value of SECCTL_ADDR is %x \n",,,,,reg_value);
+
+ reg_value = BB_REG_FIELD_READ(PLLM_ADDR);
+ GEL_TextOut(" The value of PLLM_ADDR is %x \n",,,,,reg_value);
+
+ reg_value = BB_REG_FIELD_READ(PLLDIV1_ADDR);
+ GEL_TextOut(" The value of PLLDIV1_ADDR is %x \n",,,,,reg_value);
+
+ reg_value = BB_REG_FIELD_READ(PLLDIV2_ADDR);
+ GEL_TextOut(" The value of PLLDIV2_ADDR is %x \n",,,,,reg_value);
+
+ reg_value = BB_REG_FIELD_READ(PLLDIV3_ADDR);
+ GEL_TextOut(" The value of PLLDIV3_ADDR is %x \n",,,,,reg_value);
+
+ reg_value = BB_REG_FIELD_READ(PLLCMD_ADDR);
+ GEL_TextOut(" The value of PLLCMD_ADDR is %x \n",,,,,reg_value);
+
+ reg_value = BB_REG_FIELD_READ(PLLSTAT_ADDR);
+ GEL_TextOut(" The value of PLLSTAT_ADDR is %x \n",,,,,reg_value);
+
+ reg_value = BB_REG_FIELD_READ(PLLDIV4_ADDR);
+ GEL_TextOut(" The value of PLLDIV4_ADDR is %x \n",,,,,reg_value);
+
+ reg_value = BB_REG_FIELD_READ(PLLDIV5_ADDR);
+ GEL_TextOut(" The value of PLLDIV5_ADDR is %x \n",,,,,reg_value);
+
+ reg_value = BB_REG_FIELD_READ(PLLDIV6_ADDR);
+ GEL_TextOut(" The value of PLLDIV6_ADDR is %x \n",,,,,reg_value);
+
+ reg_value = BB_REG_FIELD_READ(PLLDIV7_ADDR);
+ GEL_TextOut(" The value of PLLDIV7_ADDR is %x \n",,,,,reg_value);
+
+ reg_value = BB_REG_FIELD_READ(PLLDIV8_ADDR);
+ GEL_TextOut(" The value of PLLDIV8_ADDR is %x \n",,,,,reg_value);
+}
+
+
+//********************************************************************************************************************************
+//********************************************************************************************************************************
+//********************************************************************************************************************************
+//********************************************************************************************************************************
+/*
+ Set_Pll1() - This function executes the main PLL initialization
+ sequence needed to get the main PLL up after coming out of an initial power up
+ before it is locked or after it is already locked.
+
+ Index value determines multiplier, divier used and clock reference assumed for
+ output display.
+ */
+Set_Pll1(int index)
+{
+ int i, TEMP;
+ unsigned int BYPASS_val;
+ unsigned int BWADJ_val;
+ unsigned int OD_val;
+
+ float CLKIN_val;
+ unsigned int PLLM_val;
+ unsigned int PLLD_val;
+ unsigned int PLLDIV3_val; //example value for SYSCLK2 (from 6614 spec) Default /2 - Fast Peripherals, (L2, MSMC, DDR3 EMIF, EDMA0...)
+ unsigned int PLLDIV4_val; //example value for SYSCLK3 (from 6614 spec) Default /3 - Switch Fabric
+ unsigned int PLLDIV7_val; //example value for SYSCLK6 (from 6614 spec) Defualt /6 - Slow Peripherals (UART, SPI, I2C, GPIO...)
+
+ unsigned int debug_info_on;
+ unsigned int delay;
+
+ if(index == 400){ // 24MHz -> 400 MHz
+ CLKIN_val = 24; // setup CLKIN to 24.00 MHz
+ PLLM_val = 100; // setup PLLM (PLL multiplier)
+ PLLD_val = 1; // setup PLLD (reference divider)
+ OD_val = 6; // setup OD
+ }
+ else if(index == 600){ // 24MHz -> 600 MHz
+ CLKIN_val = 24; // setup CLKIN to 24.00 MHz
+ PLLM_val = 100; // setup PLLM (PLL multiplier)
+ PLLD_val = 1; // setup PLLD (reference divider)
+ OD_val = 4; // setup OD
+ }
+ else if(index == 100){ // 24MHz -> 100 MHz
+ CLKIN_val = 24; // setup CLKIN to 24.00 MHz
+ PLLM_val = 100; // setup PLLM (PLL multiplier)
+ PLLD_val = 2; // setup PLLD (reference divider)
+ OD_val = 12; // setup OD
+ }
+ else if(index == 200){ // 24MHz -> 200 MHz
+ CLKIN_val = 24; // setup CLKIN to 24.00 MHz
+ PLLM_val = 100; // setup PLLM (PLL multiplier)
+ PLLD_val = 1; // setup PLLD (reference divider)
+ OD_val = 12; // setup OD
+ }
+
+ PLLDIV3_val = 2; // setup PLL output divider 3 to /2
+ PLLDIV4_val = 5; // setup PLL output divider 4 to /3
+ PLLDIV7_val = 6; // setup PLL output divider 7 to /6
+
+ BYPASS_val = PLL1_SECCTL & ~BYPASS_MASK; // get value of the BYPASS field
+ BWADJ_val = (PLLM_val-1) >> 1; // setup BWADJ to be 1/2 the value of PLLM
+
+ debug_info_on = 0;
+ delay = 1000; // fix this!
+
+ /* Step 1: Unlock Boot Config Registers */
+ KICK0 = KICK0_UNLOCK;
+ KICK1 = KICK1_UNLOCK;
+
+ /* Step 2: Check if SECCTL bypass is low or high indicating what state the Main PLL is currently in. if
+ the Main PLL is in bypass still (not yet setup) execute the following steps. */
+
+//Step 1 - pretend to wait 100uS for "PLL to become stable"
+
+//Step 2 - Check the status of BYPASS
+ if(BYPASS_val != 0x00000000){ // PLL bypass enabled - Execute PLL setup for PLL fresh out of power on reset
+ if(debug_info_on){
+ GEL_TextOut("Detected PLL bypass enabled: SECCTL[BYPASS] = %x\n",,,,, BYPASS_val);
+ }
+
+ /* Step 2a: Set MAINPLLCTL1[ENSAT] = 1 - This enables proper biasing of PLL analog circuitry */
+ // MAIN_ENSAT_OFFSET = 6
+//Step 2a - In MAINPLLCTL1, write ENSAT
+ MAINPLLCTL1 |= (1 << MAIN_ENSAT_OFFSET);
+ if(debug_info_on){
+ GEL_TextOut("(2a) MAINPLLCTL1 = %x\n",,,,, MAINPLLCTL1);
+ }
+
+ /* Step 2b: Set PLLCTL[PLLEN] = 0 This enables bypass in PLL controller MUX *///PLLEN_OFFSET = 0
+//Step 2c - In PLLCTL, write PLLEN = 0
+ PLL1_PLLCTL &= ~(1 << PLLEN_OFFSET);
+ if(debug_info_on){
+ GEL_TextOut("(2b) PLLCTL = %x\n",,,,, PLL1_PLLCTL);
+ }
+
+ /* Step 2c: Set PLLCTL[PLLENSRC] = 0 - This enables PLLEN to control PLL controller MUX */
+ //PLLENSRC_OFFSET = 5
+//Step 2b - In PLLCTL, write PLLENSRC = 0
+ PLL1_PLLCTL &= ~(1 << PLLENSRC_OFFSET);
+ if(debug_info_on){
+ GEL_TextOut("(2c) PLLCTL = %x\n",,,,, PLL1_PLLCTL);
+ }
+
+ /* Step 2d: Wait 4 reference clock cycles (slowest of ALTCORE or SYSCLK) to make sure
+ that the PLL controller MUX switches properly to bypass. */
+ if(debug_info_on){
+ GEL_TextOut("(2d) Delay...\n",,,,,);
+ }
+//Step 2d - Wait 4 cycles of the reference clock (to make sure the PLL controller mux switches properly to the bypass)
+ for(i = 0; i < delay; i++); // this delay is much more than required
+
+ /* Step 2e: Set SECCTL[BYPASS] = 1 - enables bypass in PLL MUX */
+ //BYPASS_OFFSET = 23
+//Step 2e - In SECCTL, write BYPASS = 1
+ PLL1_SECCTL |= (1 << BYPASS_OFFSET);
+ if(debug_info_on){
+ GEL_TextOut("(2e) SECCTL = %x\n",,,,, PLL1_SECCTL);
+ }
+
+ /* Step 2f: Set PLLCTL[PLLPWRDN] = 1 - power down the PLL */
+ //PLLPWRDN_OFFSET = 1
+//Step 2f - In PLLCTL, write PLLPWRDN = 1
+ PLL1_PLLCTL |= (1 << PLLPWRDN_OFFSET);
+ if(debug_info_on){
+ GEL_TextOut("(2f) PLLCTL = %x\n",,,,, PLL1_PLLCTL);
+ }
+
+ /* Step 2g: Wait for at least 5us for the PLL to power down */
+ if(debug_info_on){
+ GEL_TextOut("(2g) Delay...\n",,,,,);
+ }
+//Step 2g - Wait for at least 5 us
+ for(i = 0; i < delay; i++); // this delay is much more than required
+
+ /* Step 2h: Set PLLCTL[PLLPWRDN] = 0 - Power the PLL back up */
+ //PLLPWRDN_OFFSET = 1
+//Step 2h - In PLLCTL, write PLLPWRDN = 0
+ PLL1_PLLCTL &= ~(1 << PLLPWRDN_OFFSET);
+ if(debug_info_on){
+ GEL_TextOut("(2h) PLLCTL = %x\n",,,,, PLL1_PLLCTL);
+ }
+
+ }
+ else{ // PLL bypass disabled - Execute PLL setup for PLL that has previously been locked (skip to Step 3)
+
+ if(debug_info_on){
+ GEL_TextOut("Detected PLL bypass disabled: SECCTL[BYPASS] = %x\n",,,,, BYPASS_val);
+ }
+
+ /* Step 3a: Set PLLCTL[PLLEN] = 0 This enables bypass in PLL controller MUX *///PLLEN_OFFSET = 0
+
+//!!!Extra Step 2c - In PLLCTL, write PLLEN = 0
+ PLL1_PLLCTL &= ~(1 << PLLEN_OFFSET);
+ if(debug_info_on){
+ GEL_TextOut("(3a) PLLCTL = %x\n",,,,, PLL1_PLLCTL);
+ }
+
+ /* Step 3b: Set PLLCTL[PLLENSRC] = 0 - This enables PLLEN to control PLL controller MUX */
+ //PLLENSRC_OFFSET = 5
+//!!!Extra Step 2b - In PLLCTL, write PLLENSRC = 0
+ PLL1_PLLCTL &= ~(1 << PLLENSRC_OFFSET);
+ if(debug_info_on){
+ GEL_TextOut("(3b) PLLCTL = %x\n",,,,, PLL1_PLLCTL);
+ }
+
+ /* Step 3c: Wait 4 reference clock cycles (slowest of ALTCORE or SYSCLK) to make sure that the PLL controller MUX switches properly to bypass. */
+//!!!Extra Step 2d - Wait 4 cycles of the reference clock (to make sure the PLL controller mux switches properly to the bypass)
+
+ if(debug_info_on){
+ GEL_TextOut("(3c) Delay...\n",,,,,);
+ }
+ for(i = 0; i < delay; i++); // this delay is much more than required
+
+ }
+
+//!!!Why was Step 3 MOVED to "STEP 9"? - In PLLCTL, write PLLRST = 1 (PLL is reset)
+//MM Step 3 PLLCTL, write PLLRST = 1 (PLL is reset) - moved to its correct place from between Step 8e and Step 9 below
+//Step 3 - PLLCTL, write PLLRST = 1 (PLL is reset)
+ PLL1_PLLCTL |= (1 << PLLRST_OFFSET);
+
+ /* Step 4: Programming PLLM[5:0] in the PLLM register of the PLL controller and
+ programming PLLM[12:6] in the MAINPLLCTL0 register */
+ //PLLM_val = 52; (1000)
+ PLL1_PLLM &= PLLM_MASK; // clear the PLLM[5:0] bit field
+ //MM 0xFFFFFFC0
+ // 0x0000003F
+ // 0x0000003F 38
+ // 0x3F 26
+ // & 0x33
+ // 0x33
+ //PLL1_PLLM |= 0x26 = 0x00000033
+ //0x33 = 0011 0011 ... 0x33 = 51 decimal (= 52 - 1)
+//Step 4a - PLLM in PLLM
+ PLL1_PLLM |= ~PLLM_MASK & (PLLM_val - 1); // set the PLLM[5:0] bit field to the 6 LSB of PLLM_val
+
+ if(debug_info_on){
+ GEL_TextOut("(4)PLLM[PLLM] = %x\n",,,,, PLL1_PLLM);
+ }
+ //MM 0x33 gets wiped away by >>6 - MAINPLLCTL0 cleared PLLM[12:6]
+ //MAIN_PLLM_MASK = 0xFFF80FFF
+ //MAIN_PLLM_OFFSET = 12
+
+
+
+ MAINPLLCTL0 &= MAIN_PLLM_MASK; // clear the PLLM[12:6] bit field
+//Step 4b - PLLM in MAINPLLCTL0
+ MAINPLLCTL0 |= ~MAIN_PLLM_MASK & (( (PLLM_val - 1) >> 6) << MAIN_PLLM_OFFSET); // set the PLLM[12:6] bit field to the 7 MSB of PLL_val
+
+ if(debug_info_on){
+ GEL_TextOut("MAINPLLCTL0 = %x\n",,,,, MAINPLLCTL0);
+ }
+
+ /* Step 5: Programming BWADJ[7:0] in the MAINPLLCTL0 register and BWADJ[11:8] in MAINPLLCTL1 register */
+ MAINPLLCTL0 &= MAIN_BWADJ0_MASK; // clear the MAIN_BWADJ0 bit field
+ //BWADJ_val = (PLLM_val) >> 1;
+ // if PLLM_val = 52: BWADJ_val = 26 >>1 = 0x1A (52/2 = 26)
+ //MAIN_BWADJ0_MASK = 0x00FFFFFF
+ //~MAIN_BWADJ0_MASK = 0xFF000000 0x19 24
+//Step 5a - BWADJ in MAINPLLCTL0
+ MAINPLLCTL0 |= ~MAIN_BWADJ0_MASK & ((BWADJ_val - 1) << MAIN_BWADJ0_OFFSET); // set the MAIN_BWADJ[7:0] bit field to the 8 LSB of BWADJ_val
+ //~MAIN_BWADJ0_MASK = 0xFF000000
+ if(debug_info_on){
+ GEL_TextOut("(5) MAINPLLCTL0 = %x\n",,,,, MAINPLLCTL0);
+ }
+
+ MAINPLLCTL1 &= MAIN_BWADJ1_MASK; // clear the MAIN_BWADJ1 bit field
+ //MAIN_BWADJ1_MASK = 0xFFFFFFF0
+ //0x19 wiped away by >> 8 - MAINPLLCTL1 cleared MAIN_BWADJ[11:8] to 4 MSB of BWADJ_val
+//Step 5b - BWADJ in MAINPLLCTL1
+ MAINPLLCTL1 |= ~MAIN_BWADJ1_MASK & (( (BWADJ_val - 1) >> 8) << MAIN_BWADJ1_OFFSET); // set the MAIN_BWADJ[11:8] bit field to the 4 MSB of BWADJ_val
+
+ if(debug_info_on){
+ GEL_TextOut("(5) MAINPLLCTL1 = %x\n",,,,, MAINPLLCTL1);
+ }
+
+ /* Step 6: Programming PLLD[5:0] in the MAINPLLCTL0 register */
+ MAINPLLCTL0 &= MAIN_PLLD_MASK; // clear the PLLD bit field
+ //MAIN_PLLD_MASK = 0xFFFFFFC0
+ //PLLD_val = 1; globally - MAINPLLCTL0 cleared PLLD[5:0]
+
+//Step 6 - Program PLLD in MAINPLLCTL0
+ MAINPLLCTL0 |= ~MAIN_PLLD_MASK & (PLLD_val - 1); // set the PLLD[5:0] bit field of PLLD to PLLD_val
+
+ if(debug_info_on){
+ GEL_TextOut("(6) MAINPLLCTL0 = %x\n",,,,, MAINPLLCTL0);
+ }
+
+ /* Step 7: Programming OD[3:0] in the SECCTL register */
+ PLL1_SECCTL &= OUTPUT_DIVIDE_MASK; // clear the OD bit field
+ //OD_val = 2; globally
+ //OUTPUT_DIVIDE_OFFSET = 19
+ // OUTPUT_DIVIDE_MASK = 0xFF87FFFF
+ //~OUTPUT_DIVIDE_MASK = 0x00780000
+ //0x00810000 & 0xFF87FFFF = 0x00810000
+//Step 7 - In SECCTL, write OD = 1 (divide by 2)
+ PLL1_SECCTL |= ~OUTPUT_DIVIDE_MASK & (OD_val - 1) << OUTPUT_DIVIDE_OFFSET; // set the OD[3:0] bit field of PLLD to OD_val
+
+ if(debug_info_on){
+ GEL_TextOut("(7) SECCTL = %x\n",,,,, PLL1_SECCTL);
+ }
+
+ /* Step 8: Following steps are needed to change the default output dividers */
+
+ /* Step 8a: Check that the GOSTAT bit in PLLSTAT is cleared to show that no GO
+ operation is currently in progress*/
+ if(debug_info_on){
+ GEL_TextOut("(8a) Delay...\n",,,,,);
+ }
+//Step 8a - Check that the GOSTAT bit in PLLSTAT
+ while((PLL1_STAT) & 0x00000001);
+
+ /* Step 8b: Program the RATIO field in PLLDIVn to the desired new divide-down rate.
+ If RATIO field is changed, the PLL controller will flag the change in the
+ corresponding bit of DCHANGE*/
+ //PLLDIV3_val = 2; // setup PLL output divider 3 to /2
+//Step 8b - Program the RATIO field in PLLDIVn
+ //PLL1_DIV3 = (PLLDIV3_val-1) | 0x8000; //Set PLLDIV3 //UDAY-TODO: Confirm
+//In Galileo, only SYSCLK2 and SYSCLK3 are programmable
+ //PLLDIV4_val = 5; // setup PLL output divider 4 to /3
+ //PLL1_DIV4 = (PLLDIV4_val-1) | 0x8000; //Set PLLDIV4
+ //PLLDIV7_val = 6; // setup PLL output divider 7 to /6
+ //PLL1_DIV7 = (PLLDIV7_val-1) | 0x8000; //Set PLLDIV7
+ //MM how come PLL1_DIV7 = 0x00000000 instead of PLLDIV7_val = 0x00008005 ... ??
+ //!!!
+
+ if(debug_info_on){
+ GEL_TextOut("PLL1_DIV3 = %x\n",,,,, PLL1_DIV3);
+ //GEL_TextOut("PLL1_DIV4 = %x\n",,,,, PLL1_DIV4);
+ GEL_TextOut("PLL1_DIV4 skipped - not programmable in Galileo\n");
+ //GEL_TextOut("PLL1_DIV7 = %x\n",,,,, PLL1_DIV7); //!!!
+ GEL_TextOut("PLL1_DIV7 skipped - not programmable in Galileo\n");
+ }
+
+
+//Step 8c MISSING - Set the respective ALNn bits in ALNCTL to align any SYSCLKs after the GO operation.
+
+ /* Step 8c: Set GOSET bit in PLLCMD to initiate the GO operation to change the divide
+ values and align the SYSCLKs as programmed */
+
+//Step 8d - Set the GOSET bit in PLLCMD
+ PLL1_CMD |= 0x00000001;
+
+ /*Step 8d/e: Read the GOSTAT bit in PLLSTAT to make sure the bit returns to 0 to
+ indicate that the GO operation has completed */
+ if(debug_info_on){
+ GEL_TextOut("(8d/e) Delay...\n",,,,,);
+ }
+//Step 8e - Read the GOSTAT bit in PLLSTAT to make sure the bit returns to 0 to indicate that the GO operation has completed.
+ while((PLL1_STAT) & 0x00000001);
+
+ /* Step 9: Set PLLCTL[PLLRST] = 1 - Assert PLL reset (Previously Step 3)*/
+ //MM woah what? Previously step 3?!
+ //PLLRST_OFFSET = 3
+
+//!!!Step 3 - In PLLCTL, write PLLRST = 1 (PLL is reset)
+//!!!
+//MM - moved RESET from here to Step 3 above
+ //PLL1_PLLCTL |= (1 << PLLRST_OFFSET);
+
+ /* Step 10: Wait for the at least 7us for the PLL reset properly (128 CLKIN1 cycles) */
+ if(debug_info_on){
+ GEL_TextOut("(10) Delay...\n",,,,,);
+ }
+
+ //Step 9 - Wait for at least 7 us
+ for(i=0;i<delay;i++);
+
+ /* Step 11: Set PLLCTL[PLLRST] = 0 - De-Assert PLL reset */
+
+//Step 10 - In PLLCTL, write PLLRST = 0 (PLL reset is released)
+ PLL1_PLLCTL &= ~(1 << PLLRST_OFFSET);
+
+ /* Step 12: Wait for PLL to lock (2000 CLKIN1 cycles) */
+ if(debug_info_on){
+ GEL_TextOut("(12) Delay...\n",,,,,);
+ }
+
+//Step 11 - Wait for at least 500 * CLKIN cycles * (PLLD + 1) (PLL lock time)
+ for(i=0;i<delay;i++);
+
+ /* Step 13: In SECCTL, write BYPASS = 0 (enable PLL mux to switch to PLL mode) */
+ //BYPASS_OFFSET = 23
+
+
+
+//Step 12 - In SECCTL, write BYPASS = 0 (enable PLL mux to switch to PLL mode)
+ PLL1_SECCTL &= ~(1 << BYPASS_OFFSET);
+ if(debug_info_on){
+ GEL_TextOut("(13) SECCTL = %x\n",,,,, PLL1_SECCTL);
+ }
+
+ /* Step 14: In PLLCTL, write PLLEN = 1 to enable PLL mode */
+//Step 13 - In PLLCTL, write PLLEN = 1 (enable PLL controller mux to switch to PLL mode)
+ PLL1_PLLCTL |= (1 << PLLEN_OFFSET);
+ if(debug_info_on){
+ GEL_TextOut("(14) PLLCTL = %x\n",,,,, PLL1_PLLCTL);
+ }
+
+ /* Step 15: Lock Boot Config Registers */
+ KICK0 = 0x00000000;
+ KICK1 = 0x00000000;
+
+ //GEL_TextOut("PLL has been configured (CLKIN * PLLM / PLLD / PLLOD = PLLOUT):\n",,,,,);
+ GEL_TextOut("PLL has been configured (%f MHz * %d / %d / %d = %f MHz)\n",,,,, CLKIN_val, PLLM_val, PLLD_val, OD_val,(CLKIN_val * PLLM_val / PLLD_val / OD_val) );
+
+ if(index == 400){ // 24MHz -> 400 MHz
+ //GEL_TextOut("PLL has been configured to 400MHz (with ref clock 24MHz, -sysclkp_period 41.6666)\n");
+ }
+ else if(index == 600){ // 24MHz -> 600 MHz
+ //GEL_TextOut("PLL has been configured to 600MHz (with ref clock 24MHz, -sysclkp_period 41.6666)\n");
+ }
+
+ //By default, Tetris domain is ON
+ //GEL_TextOut("Switching on ARM Core 0\n",,,,,);
+ //TETRIS_CPU0_PDCTL = 0x00000000;
+ //TETRIS_CPU0_PTCMD = 0x00000001;
+
+ // GEL_TextOut("Switching on ARM Core 1\n",,,,,);
+ // TETRIS_CPU1_PDCTL = 0x00000000;
+ // TETRIS_CPU1_PTCMD = 0x00000001;
+
+ // GEL_TextOut("Switching on ARM Core 2\n",,,,,);
+ // TETRIS_CPU2_PDCTL = 0x00000000;
+ // TETRIS_CPU2_PTCMD = 0x00000001;
+
+ // GEL_TextOut("Switching on ARM Core 3\n",,,,,);
+ // TETRIS_CPU3_PDCTL = 0x00000000;
+ // TETRIS_CPU3_PTCMD = 0x00000001;
+}
+
+Set_Tetris_Pll(int index)
+{
+ unsigned int BWADJ_val;
+ unsigned int OD_val;
+ unsigned int PLLM_val;
+ unsigned int PLLD_val;
+ float CLKIN_val;
+ int i;
+
+ //By default, Tetris domain is ON
+ //GEL_TextOut("Switching on ARM Core 0\n",,,,,);
+ //TETRIS_CPU0_PDCTL = 0x00000000;
+ //TETRIS_CPU0_PTCMD = 0x00000001;
+
+ // GEL_TextOut("Switching on ARM Core 1\n",,,,,);
+ // TETRIS_CPU1_PDCTL = 0x00000000;
+ // TETRIS_CPU1_PTCMD = 0x00000001;
+
+ // GEL_TextOut("Switching on ARM Core 2\n",,,,,);
+ // TETRIS_CPU2_PDCTL = 0x00000000;
+ // TETRIS_CPU2_PTCMD = 0x00000001;
+
+ // GEL_TextOut("Switching on ARM Core 3\n",,,,,);
+ // TETRIS_CPU3_PDCTL = 0x00000000;
+ // TETRIS_CPU3_PTCMD = 0x00000001;
+
+ if(index == 200){ // 24 MHz -> 200 MHz
+ CLKIN_val = 24; // setup CLKIN to 24 MHz
+ PLLM_val = 100; // setup PLLM (PLL multiplier)
+ OD_val = 12; // setup OD
+ PLLD_val = 1;
+ }
+ else if(index == 400){ // 24 MHz -> 400 MHz
+ CLKIN_val = 24; // setup CLKIN to 24 MHz
+ PLLM_val = 100; // setup PLLM (PLL multiplier)
+ OD_val = 6; // setup OD
+ PLLD_val = 1;
+ }
+ else if(index == 600){ // 24 MHz -> 600 MHz
+ CLKIN_val = 24; // setup CLKIN to 24 MHz
+ PLLM_val = 100; // setup PLLM (PLL multiplier)
+ OD_val = 4; // setup OD
+ PLLD_val = 1;
+ }
+
+ BWADJ_val = (PLLM_val-1) >> 1; // setup BWADJ to be 1/2 the value of PLLM
+
+ /* Step 1: Unlock Boot Config Registers */
+ KICK0 = KICK0_UNLOCK;
+ KICK1 = KICK1_UNLOCK;
+
+ //Step 1 : Assert SEC PLL Reset
+ SECPLLCTL1 = ((1 << SEC_PLLCTL1_RESET_OFFSET) | (1 << SEC_PLLCTL1_ENSTAT_OFFSET));
+
+ //Step 2 : Change CLKF/OD/BWADJ etc. for SEC PLL
+ SECPLLCTL0 = ((BWADJ_val << SEC_PLLCTL0_BWADJ_OFFSET) |
+ ((OD_val-1) << SEC_PLLCTL0_OD_OFFSET)|
+ ((PLLM_val-1) << SEC_PLLCTL0_PLLM_OFFSET) |
+ ((PLLD_val-1) << SEC_PLLCTL0_PLLD_OFFSET)
+ );
+
+ //Step 3 : Make sure the resets are held for 5us
+ for(i = 0; i < 200000; i++);
+
+ //Step 4 : Remove SEC PLL reset
+ SECPLLCTL1 = (1 << SEC_PLLCTL1_ENSTAT_OFFSET);
+
+ //Step 5 : Wait for PLL to lock (4000 CLKIN1 cycles)
+ for(i = 0; i < 4000; i++);
+
+ //Step 6 : Get the PLL out of Bypass
+ SECPLLCTL0 &= ~(1 << SEC_PLLCTL0_BYPASS_OFFSET);
+ //CHIP_MISC1 |= (1 << ARMPLL_ENABLE_OFFSET);
+
+
+ //Step 6 : Lock Boot Config Registers
+ KICK0 = 0x00000000;
+ KICK1 = 0x00000000;
+
+ GEL_TextOut("ARM PLL has been configured with ref clock 24MHz, -sysclkp_period 41.6666 (%f MHz * %d / %d / %d = %f MHz)\n",,,,, CLKIN_val, PLLM_val, PLLD_val, OD_val, (CLKIN_val * PLLM_val)/OD_val);
+
+}
+
+Set_ICSS_Pll(int index)
+{
+
+ unsigned int BWADJ_val;
+ unsigned int OD_val;
+ unsigned int PLLM_val;
+ unsigned int PLLD_val;
+ float CLKIN_val;
+ int i;
+
+ if(index == 200){ // 24 MHz -> 200 MHz
+ CLKIN_val = 24; // setup CLKIN to 200 MHz
+ PLLM_val = 250; // setup PLLM (PLL multiplier)
+ PLLD_val = 3; // setup PLLD (PLL divider)
+ OD_val = 10; // setup OD
+ }
+
+ BWADJ_val = (PLLM_val-1) >> 1; // setup BWADJ to be 1/2 the value of PLLM
+ //OD_val = 2; // setup OD to a fixed /2
+
+ /* Step 1: Unlock Boot Config Registers */
+ KICK0 = KICK0_UNLOCK;
+ KICK1 = KICK1_UNLOCK;
+
+ //Step 1 : Assert SEC PLL Reset
+ ICSSPLLCTL1 = ((1 << SEC_PLLCTL1_RESET_OFFSET) | (1 << SEC_PLLCTL1_ENSTAT_OFFSET));
+
+ //Step 2 : Change CLKF/OD/BWADJ etc. for SEC PLL
+ ICSSPLLCTL0 = ((BWADJ_val << SEC_PLLCTL0_BWADJ_OFFSET) |
+ ((OD_val-1) << SEC_PLLCTL0_OD_OFFSET)|
+ ((PLLM_val-1) << SEC_PLLCTL0_PLLM_OFFSET)|
+ (PLLD_val-1));
+
+ //Step 3 : Make sure the resets are held for 5us
+ for(i = 0; i < 200000; i++);
+
+ //Step 4 : Remove SEC PLL reset
+ ICSSPLLCTL1 &= ~(1 << SEC_PLLCTL1_RESET_OFFSET);
+
+ //Step 5 : Wait for PLL to lock (4000 CLKIN1 cycles)
+ for(i = 0; i < 4000; i++);
+
+ //Step 6 : Get the PLL out of Bypass
+ ICSSPLLCTL0 &= ~(1 << SEC_PLLCTL0_BYPASS_OFFSET);
+
+
+ //Step 6 : Lock Boot Config Registers
+ //KICK0 = 0x00000000;
+ // KICK1 = 0x00000000;
+
+ GEL_TextOut("ICSS PLL has been configured (%f MHz * %d / %d / %d = %f MHz)\n",,,,, CLKIN_val, PLLM_val, PLLD_val, OD_val, (CLKIN_val * PLLM_val)/(PLLD_val*OD_val));
+
+}
+
+Set_DDR_Pll(int index)
+{
+ unsigned int BWADJ_val;
+ unsigned int OD_val;
+ unsigned int PLLM_val;
+ unsigned int PLLD_val;
+ float CLKIN_val;
+ int i;
+
+ if(index == 200){ // 24 MHz -> 200 MHz
+ CLKIN_val = 24; // setup CLKIN to 200 MHz
+ PLLM_val = 133; // setup PLLM (PLL multiplier)
+ PLLD_val = 1; // setup PLLD (PLL divider)
+ OD_val = 16; // setup OD
+ }
+
+ BWADJ_val = (PLLM_val-1) >> 1; // setup BWADJ to be 1/2 the value of PLLM
+
+ /* Step 1: Unlock Boot Config Registers */
+ KICK0 = KICK0_UNLOCK;
+ KICK1 = KICK1_UNLOCK;
+
+ //Step 1 : Assert SEC PLL Reset
+ DDR3PLLCTL1 = ((1 << SEC_PLLCTL1_RESET_OFFSET) | (1 << SEC_PLLCTL1_ENSTAT_OFFSET));
+
+ //Step 2 : Change CLKF/OD/BWADJ etc. for SEC PLL
+ DDR3PLLCTL0 = ((BWADJ_val << SEC_PLLCTL0_BWADJ_OFFSET) |
+ ((OD_val-1) << SEC_PLLCTL0_OD_OFFSET)|
+ ((PLLM_val-1) << SEC_PLLCTL0_PLLM_OFFSET)|
+ (PLLD_val-1));
+
+ //Step 3 : Make sure the resets are held for 5us
+ for(i = 0; i < 200000; i++);
+
+ //Step 4 : Remove SEC PLL reset
+ DDR3PLLCTL1 &= ~(1 << SEC_PLLCTL1_RESET_OFFSET);
+
+ //Step 5 : Wait for PLL to lock (4000 CLKIN1 cycles)
+ for(i = 0; i < 4000; i++);
+
+ //Step 6 : Get the PLL out of Bypass
+ DDR3PLLCTL0 &= ~(1 << SEC_PLLCTL0_BYPASS_OFFSET);
+
+ DDR3MUX = 0x0;
+
+ //Step 6 : Lock Boot Config Registers
+ KICK0 = 0x00000000;
+ KICK1 = 0x00000000;
+
+ GEL_TextOut("DDR PLL has been configured (%f MHz * %d / %d / %d = %f MHz)\n",,,,, CLKIN_val, PLLM_val, PLLD_val, OD_val, (CLKIN_val * PLLM_val)/(PLLD_val*OD_val));
+
+}
+
+Set_UART_Pll(int index)
+{
+
+ unsigned int BWADJ_val;
+ unsigned int OD_val;
+ unsigned int PLLM_val;
+ unsigned int PLLD_val;
+ float CLKIN_val;
+ int i;
+
+ if(index == 384){ // 24 MHz -> 200 MHz
+ CLKIN_val = 24; // setup CLKIN to 200 MHz
+ PLLM_val = 128; // setup PLLM (PLL multiplier)
+ PLLD_val = 1; // setup PLLD (PLL divider)
+ OD_val = 8; // setup OD
+ }
+
+ BWADJ_val = (PLLM_val-1) >> 1; // setup BWADJ to be 1/2 the value of PLLM
+
+ /* Step 1: Unlock Boot Config Registers */
+ KICK0 = KICK0_UNLOCK;
+ KICK1 = KICK1_UNLOCK;
+
+ //Step 1 : Assert SEC PLL Reset
+ UARTPLLCTL1 = ((1 << SEC_PLLCTL1_RESET_OFFSET) | (1 << SEC_PLLCTL1_ENSTAT_OFFSET));
+
+ //Step 2 : Change CLKF/OD/BWADJ etc. for SEC PLL
+ UARTPLLCTL0 = ((BWADJ_val << SEC_PLLCTL0_BWADJ_OFFSET) |
+ ((OD_val-1) << SEC_PLLCTL0_OD_OFFSET)|
+ ((PLLM_val-1) << SEC_PLLCTL0_PLLM_OFFSET)|
+ (PLLD_val-1));
+
+ //Step 3 : Make sure the resets are held for 5us
+ for(i = 0; i < 200000; i++);
+
+ //Step 4 : Remove SEC PLL reset
+ UARTPLLCTL1 &= ~(1 << SEC_PLLCTL1_RESET_OFFSET);
+
+ //Step 5 : Wait for PLL to lock (4000 CLKIN1 cycles)
+ for(i = 0; i < 4000; i++);
+
+ //Step 6 : Get the PLL out of Bypass
+ UARTPLLCTL0 &= ~(1 << SEC_PLLCTL0_BYPASS_OFFSET);
+
+ //Step 6 : Lock Boot Config Registers
+ //KICK0 = 0x00000000;
+ // KICK1 = 0x00000000;
+
+ GEL_TextOut("UART PLL has been configured (%f MHz * %d / %d / %d = %f MHz)\n",,,,, CLKIN_val, PLLM_val, PLLD_val, OD_val, (CLKIN_val * PLLM_val)/(PLLD_val*OD_val));
+
+}
+
+Set_Msmc_Non_Shared()
+{
+ unsigned int privid;
+
+ for (privid = 0; privid < 16; privid++)
+ {
+ *(unsigned int*)(SMS_MPAXH_0_0 + (0x40 * privid)) |= 0x00000080;
+ *(unsigned int*)(SES_MPAXH_0_0 + (0x40 * privid)) |= 0x00000080;
+ }
+}
+Set_NSS_Pll(int index)
+{
+
+ unsigned int BWADJ_val;
+ unsigned int OD_val;
+ unsigned int PLLM_val;
+ unsigned int PLLD_val;
+ float CLKIN_val;
+ int i;
+
+ if (index == 1000) {
+ CLKIN_val = 24; // sysclk input is 24 MHz
+ PLLM_val = 250; // setup PLLM (PLL multiplier)
+ PLLD_val = 3; // setup PLLD (PLL divider)
+ OD_val = 2; // setup OD
+ }
+
+ /* Step 1: Unlock Boot Config Registers */
+ KICK0 = KICK0_UNLOCK;
+ KICK1 = KICK1_UNLOCK;
+
+ //Step 1 : Assert SEC PLL Reset
+ NSSPLLCTL1 = ((1 << SEC_PLLCTL1_RESET_OFFSET) | (1 << SEC_PLLCTL1_ENSTAT_OFFSET));
+
+ BWADJ_val = (PLLM_val-1) >> 1; // setup BWADJ to be 1/2 the value of PLLM
+
+ //Step 2 : Change CLKF/OD/BWADJ etc. for SEC PLL
+ NSSPLLCTL0 = ((BWADJ_val << SEC_PLLCTL0_BWADJ_OFFSET) |
+ ((OD_val-1) << SEC_PLLCTL0_OD_OFFSET)|
+ ((PLLM_val-1) << SEC_PLLCTL0_PLLM_OFFSET)|
+ (PLLD_val-1));
+
+ //Step 3 : Make sure the resets are held for 5us
+ for(i = 0; i < 200000; i++);
+
+ //Step 4 : Remove SEC PLL reset
+ NSSPLLCTL1 &= ~(1 << SEC_PLLCTL1_RESET_OFFSET);
+
+ //Step 5 : Wait for PLL to lock (4000 CLKIN1 cycles)
+ for(i = 0; i < 4000; i++);
+
+ //Step 6 : Get the PLL out of Bypass
+ NSSPLLCTL0 &= ~(1 << SEC_PLLCTL0_BYPASS_OFFSET);
+
+
+ //Step 6 : Lock Boot Config Registers
+ KICK0 = 0x00000000;
+ KICK1 = 0x00000000;
+
+ GEL_TextOut("NSS PLL has been configured (%f MHz * %d / %d / %d = %f MHz)\n",,,,, CLKIN_val, PLLM_val, PLLD_val, OD_val, (CLKIN_val * PLLM_val)/PLLD_val/OD_val);
+
+}
+
+/*
+* Configures the DSS PLL
+*
+* REFCLK = 24MHz
+*/
+Set_DSS_Pll(int freq)
+{
+ unsigned int PLLM_val = 0; //Reference Multiplier
+ unsigned int PLLD_val = 0; //Reference Divider
+ unsigned int OD_val = 0; //Output Divider
+ unsigned int BWADJ_val, i;
+ float CLKIN_val;
+ //unsigned int temp = 0;
+
+ if (freq == 148)
+ {
+ //148.5 MHz PLL
+ CLKIN_val = 24; // sysclk input is 24 MHz
+ PLLM_val = 198;
+ PLLD_val = 4;
+ OD_val = 8;
+ }
+ if (freq == 74)
+ {
+ //74.25 MHz PLL
+ CLKIN_val = 24; // sysclk input is 24 MHz
+ PLLM_val = 198;
+ PLLD_val = 4;
+ OD_val = 16;
+ }
+ if (freq == 9)
+ { //9 MHz PLL
+ CLKIN_val = 24; // sysclk input is 24 MHz
+ PLLM_val = 12;
+ PLLD_val = 4;
+ OD_val = 8;
+ }
+ if (freq == 25)
+ { //24.75 MHz PLL (HDMI)
+ CLKIN_val = 24; // sysclk input is 24 MHz
+ PLLM_val = 198;
+ PLLD_val = 12;
+ OD_val = 16;
+ }
+
+ /* Step 1: Unlock Boot Config Registers */
+ KICK0 = KICK0_UNLOCK;
+ KICK1 = KICK1_UNLOCK;
+
+ /* Get current CTL0 register contents */
+ //temp = DSS_PLL_CTL0;
+ /* Clear settings for the PLL */
+ //temp &= ~(DSS_PLL_CTL0_BYPASS_MASK | DSS_PLL_CTL0_CLKOD_MASK | DSS_PLL_CTL0_PLLM_MASK | DSS_PLL_CTL0_PLLD_MASK);
+ /* Set PLL settings */
+ //temp |= (pllMult << DSS_PLL_CTL0_PLLM_SHIFT) | (pllDiv << DSS_PLL_CTL0_PLLD_SHIFT) | (clkOutDiv << DSS_PLL_CTL0_CLKOD_SHIFT) | (DSS_PLL_CTL0_BYPASS_EN << DSS_PLL_CTL0_BYPASS_SHIFT);
+ /* Write settings to register */
+ //DSS_PLL_CTL0 = temp;
+
+ //Step 1 : Assert SEC PLL Reset
+ DSS_PLL_CTL1 = ((1 << SEC_PLLCTL1_RESET_OFFSET) | (1 << SEC_PLLCTL1_ENSTAT_OFFSET));
+
+ BWADJ_val = (PLLM_val-1) >> 1; // setup BWADJ to be 1/2 the value of PLLM
+
+ //Step 2 : Change CLKF/OD/BWADJ etc. for SEC PLL
+ DSS_PLL_CTL0 = ((BWADJ_val << SEC_PLLCTL0_BWADJ_OFFSET) |
+ ((OD_val-1) << SEC_PLLCTL0_OD_OFFSET)|
+ ((PLLM_val-1) << SEC_PLLCTL0_PLLM_OFFSET)|
+ (PLLD_val-1));
+
+ //Step 3 : Make sure the resets are held for 5us
+ for(i = 0; i < 200000; i++);
+
+ //Step 4 : Remove SEC PLL reset
+ DSS_PLL_CTL1 &= ~(1 << SEC_PLLCTL1_RESET_OFFSET);
+
+ //Step 5 : Wait for PLL to lock (4000 CLKIN1 cycles)
+ for(i = 0; i < 4000; i++);
+
+ //Step 6 : Get the PLL out of Bypass
+ DSS_PLL_CTL0 &= ~(1 << SEC_PLLCTL0_BYPASS_OFFSET);
+
+ //Step 6 : Lock Boot Config Registers
+ KICK0 = 0x00000000;
+ KICK1 = 0x00000000;
+
+ GEL_TextOut("DSS PLL has been configured (%f MHz * %d / %d / %d = %f MHz)\n",,,,, CLKIN_val, PLLM_val, PLLD_val, OD_val, (CLKIN_val * PLLM_val)/PLLD_val/OD_val);
+
+ KICK0 = 0x00000000;
+ KICK1 = 0x00000000;
+}
+
+
+
+//*************************************************************************************************
+//*************************************************************************************************
+//*************************************************************************************************
+//*************************************************************************************************
+//*************************************************************************************************
+//*************************************************************************************************
+
+
+///*--------------------------------------------------------------*///
+///* Galileo VDB Function Menu *///
+///*--------------------------------------------------------------*///
+
+///* Galileo PLL Function *///
+menuitem "Galileo PLL Functions";
+
+hotmenu CORE_PLL_INIT_24MHz_to_400MHz()
+{
+ Set_Pll1(400); // call Set_Pll1 with index = 1 -> 24 MHz to 400 MHz operation
+}
+
+hotmenu CORE_PLL_INIT_24MHz_to_600MHz()
+{
+ Set_Pll1(600); // call Set_Pll1 with index = 2 -> 24 MHz to 600 MHz operation
+
+}
+
+hotmenu TETRIS_PLL_INIT_24MHZ_to_200MHz()
+{
+ Set_Tetris_Pll(200); // 24 MHz to 200 MHz operation
+}
+
+hotmenu TETRIS_PLL_INIT_24MHZ_to_400MHz()
+{
+ Set_Tetris_Pll(400); // 24 MHz to 400 MHz operation
+}
+
+hotmenu TETRIS_PLL_INIT_24MHZ_to_600MHz()
+{
+ Set_Tetris_Pll(600); // 24 MHz to 600 MHz operation
+}
+
+hotmenu DDR_PLL_INIT_24MHZ_to_200MHz()
+{
+ Set_DDR_Pll(200);
+}
+
+hotmenu ICSS_POWERUP_AND_PLL_INIT_24MHz_to_200MHz()
+{
+ Set_ICSS_Pll(200);
+}
+
+hotmenu DSS_PLL_INIT_24MHZ_to_148_5MHz()
+{
+ Set_DSS_Pll(148);
+}
+
+hotmenu DSS_PLL_INIT_24MHZ_to_74_25MHz()
+{
+ Set_DSS_Pll(74);
+}
+
+hotmenu DSS_PLL_INIT_24MHZ_to_9MHz()
+{
+ Set_DSS_Pll(9);
+}
+
+hotmenu DSS_PLL_INIT_24MHZ_to_25MHz()
+{
+ Set_DSS_Pll(25);
+}
+
+/* Function to program NSS PLL to 1000MHZ from 24MHz input sysclkp */
+hotmenu NSS_PLL_INIT_24MHz_TO_1000MHz()
+{
+ Set_NSS_Pll(1000);
+}
+
+/* Function to program UART PLL to 384MHZ from 24MHz input sysclkp */
+hotmenu UART_PLL_INIT_24MHz_TO_384MHz()
+{
+ Set_UART_Pll(384);
+}
+
+hotmenu SET_MSMC_NONSHARED()
+{
+ Set_Msmc_Non_Shared();
+}
+
+hotmenu CORE_PLL_READ_REGISTER_VALUES()
+{
+ Read_PLL_Reg();
+}
+
+///* Function to enable CORE PLL observation clock for PLL output *///
+hotmenu ENABLE_CORE_PLL_OBSCLK()
+{
+ /* Unlock Chip Level Registers */
+ KICK0 = KICK0_UNLOCK;
+ KICK1 = KICK1_UNLOCK;
+
+ /* set bit 1 to enable power to the CORE PLL observation clock, clear bit 0 to view the CORE PLL observation (output) clock */
+ //OBSCLKCTL |= (1 << 1); /* set bit 1 to enable power to the observation clock */
+ //OBSCLKCTL &= ~(1 << 0); /* clear bit 0 to view the CORE PLL clock */
+ OBSCLKCTL = 0x201;
+ PLL1_OCSEL = 0x11;
+
+ /* Lock Chip Level Registers */
+ KICK0 = 0x00000000;
+ KICK1 = 0x00000000;
+
+ GEL_TextOut("CORE PLL observation clock enabled and configured to show CORE PLL output\n");
+}
+
+hotmenu ENABLE_TETRIS_PLL_OBSCLK()
+{
+ /* Unlock Chip Level Registers */
+ KICK0 = KICK0_UNLOCK;
+ KICK1 = KICK1_UNLOCK;
+ OBSCLKCTL = 0x803;
+ /* Lock Chip Level Registers */
+ KICK0 = 0x00000000;
+ KICK1 = 0x00000000;
+ GEL_TextOut("Observation clock enabled and configured to show ARM PLL output\n");
+}
+
+hotmenu ENABLE_ICSS_PLL_OBSCLK()
+{
+ /* Unlock Chip Level Registers */
+ KICK0 = KICK0_UNLOCK;
+ KICK1 = KICK1_UNLOCK;
+ OBSCLKCTL = 0x2005;
+ /* Lock Chip Level Registers */
+ KICK0 = 0x00000000;
+ KICK1 = 0x00000000;
+ GEL_TextOut("Observation clock enabled and configured to show ARM PLL output\n");
+}
+
+hotmenu ENABLE_NSS_PLL_OBSCLK()
+{
+ /* Unlock Chip Level Registers */
+ KICK0 = KICK0_UNLOCK;
+ KICK1 = KICK1_UNLOCK;
+ OBSCLKCTL = 0x10008;
+ /* Lock Chip Level Registers */
+ KICK0 = 0x00000000;
+ KICK1 = 0x00000000;
+ GEL_TextOut("Observation clock enabled and configured to show ARM PLL output\n");
+}
+
+hotmenu ENABLE_UART_PLL_OBSCLK()
+{
+ /* Unlock Chip Level Registers */
+ KICK0 = KICK0_UNLOCK;
+ KICK1 = KICK1_UNLOCK;
+ OBSCLKCTL = 0x1004;
+ /* Lock Chip Level Registers */
+ KICK0 = 0x00000000;
+ KICK1 = 0x00000000;
+ GEL_TextOut("Observation clock enabled and configured to show ARM PLL output\n");
+}
+
+
+/* Function to enable DDR PLL observation clock for PLL output */
+hotmenu ENABLE_DSS_PLL_OBSCLK ()
+{
+ /* Unlock Chip Level Registers */
+ KICK0 = KICK0_UNLOCK;
+ KICK1 = KICK1_UNLOCK;
+
+ /* set bit 1 to enable power to the CORE PLL observation clock, clear bit 0 to view the CORE PLL observation (output) clock */
+ OBSCLKCTL = 0x402;
+
+ /* Lock Chip Level Registers */
+ KICK0 = 0x00000000;
+ KICK1 = 0x00000000;
+
+ GEL_TextOut("Observation clock enabled and configured to show DSS-UL PLL output\n");
+}
+
+
+/* Function to enable DDR PLL observation clock for PLL output */
+hotmenu ENABLE_DDR_PLL_OBSCLK ()
+{
+ /* Unlock Chip Level Registers */
+ KICK0 = KICK0_UNLOCK;
+ KICK1 = KICK1_UNLOCK;
+
+ /* set bit 1 to enable power to the CORE PLL observation clock, clear bit 0 to view the CORE PLL observation (output) clock */
+ //OBSCLKCTL |= (1 << 3); /* set bit 3 to enable power to the observation clock */
+ //OBSCLKCTL |= (1 << 2); /* set bit 2 to view the DDR PLL clock */
+ OBSCLKCTL = 0x4006;
+
+ /* Lock Chip Level Registers */
+ KICK0 = 0x00000000;
+ KICK1 = 0x00000000;
+
+ GEL_TextOut("DDR PLL observation clock enabled and configured to show DDR PLL output\n");
+}
+
+/* Function to release Cortex M3 from reset */
+hotmenu RELEASE_CORTEX_M3_RESET ()
+{
+ PMMC_PDCTL |= 0x1;
+ PMMC_MDCTL = (1 << 8) | 0x3;
+ PSC_PTCMD = 0x1;
+ GEL_TextOut("Cortex M3 is released from reset\n");
+}
+hotmenu UNLOCK_BOOT_CFG_REG ()
+{
+ /* Unlock Chip Level Registers */
+ KICK0 = KICK0_UNLOCK;
+ KICK1 = KICK1_UNLOCK;
+ GEL_TextOut("Unlocked Boot CFG Registers \n");
+}
+
+hotmenu LOCK_BOOT_CFG_REG ()
+{
+ KICK0 = 0x00000000;
+ KICK1 = 0x00000000;
+ GEL_TextOut("Locked Boot CFG Registers \n");
+}
+
+#define XMC_BASE_ADDR (0x08000000)
+#define XMPAX2_L (*(int*)(XMC_BASE_ADDR + 0x00000010))
+#define XMPAX2_H (*(int*)(XMC_BASE_ADDR + 0x00000014))
+
+xmc_setup()
+{
+ /* mapping for ddr emif registers XMPAX*2 */
+
+ XMPAX2_L = 0x121010FF; /* replacement addr + perm */
+ XMPAX2_H = 0x2101000B; /* base addr + seg size (64KB)*/ //"1B"-->"B" by xj
+ GEL_TextOut("XMC setup complete.\n");
+ }
+
+/* DDR3A_BASE_ADDR corresponds to DDR3A_SLV.CONFIG:MSMC_SES.CONFIG
+/*--------------------------------------------------------------*/
+/* ddr3_setup() */
+/* DDR3 initialization */
+/*--------------------------------------------------------------*/
+
+#define CHIP_LEVEL_REG 0x02620000
+
+/******************* PLL registers **********************************/
+/*Boot cfg registers*/
+#define KICK0 *(unsigned int*)(CHIP_LEVEL_REG + 0x0038)
+#define KICK1 *(unsigned int*)(CHIP_LEVEL_REG + 0x003C)
+#define KICK0_UNLOCK (0x83E70B13)
+#define KICK1_UNLOCK (0x95A4F1E0)
+#define KICK_LOCK 0
+#define TINPSEL *(unsigned int*)(CHIP_LEVEL_REG + 0x0300)
+#define TOUTPSEL *(unsigned int*)(CHIP_LEVEL_REG + 0x0304)
+#define MAINPLLCTL0 *(unsigned int*)(CHIP_LEVEL_REG + 0x0350) //0x0328)
+#define MAINPLLCTL1 *(unsigned int*)(CHIP_LEVEL_REG + 0x0354) //0x032C)
+#define MAIN_PLLD_OFFSET 0
+#define MAIN_PLLD_MASK 0xFFFFFFC0
+#define MAIN_PLLM_OFFSET 12
+#define MAIN_PLLM_MASK 0xFFF80FFF
+#define MAIN_BWADJ0_OFFSET 24
+#define MAIN_BWADJ0_MASK 0x00FFFFFF
+#define MAIN_ENSAT_OFFSET 6
+#define MAIN_ENSAT_MASK 0xFFFFFFBF
+#define MAIN_BWADJ1_OFFSET 0
+#define MAIN_BWADJ1_MASK 0xFFFFFFF0
+
+#define OBSCLKCTL *(unsigned int*)(CHIP_LEVEL_REG + 0x0C80)
+
+/* PA PLL Registers */
+#define BYPASS_BIT_SHIFT 23
+#define CLKF_BIT_SHIFT 6
+#define CLKR_BIT_SHIFT 0
+#define DEVSTAT (*((unsigned int *) 0x02620020))
+#define PAPLLCTL0 *(unsigned int*)(CHIP_LEVEL_REG + 0x0358)
+#define PAPLLCTL1 *(unsigned int*)(CHIP_LEVEL_REG + 0x035C)
+#define PASSCLKSEL_MASK (1 << 17) /* Tells the configuration of the PASSCLKSEL pin */
+#define PA_PLL_BYPASS_MASK (1 << BYPASS_BIT_SHIFT) /* Tells whether the PA PLL is in BYPASS mode or not */
+#define PA_PLL_CLKOD_MASK (0x00780000) /* Tells the output divider value for the PA PLL */
+#define PA_PLL_CLKF_MASK (0x0007FFC0) /* Tells the multiplier value for the PA PLL */
+#define PA_PLL_CLKR_MASK (0x0000003F) /* Tells the divider value for the PA PLL */
+#define PA_PLL_RESET_MASK (0x00004000)
+
+
+#define CHIP_MISC1 *(unsigned int*)(CHIP_LEVEL_REG + 0x0C7C)
+#define ARMPLL_ENABLE_OFFSET 13
+
+
+#define DDR3APLLCTL0 *(unsigned int*)(CHIP_LEVEL_REG + 0x0360)
+#define DDR3APLLCTL1 *(unsigned int*)(CHIP_LEVEL_REG + 0x0364)
+#define DDR3BPLLCTL0 *(unsigned int*)(CHIP_LEVEL_REG + 0x0368)
+#define DDR3BPLLCTL1 *(unsigned int*)(CHIP_LEVEL_REG + 0x036C)
+
+//******************************************************
+// PLL 1 definitions (DSP and ARM clock and subsystems)
+#define PLL1_BASE 0x02310000
+#define PLL1_PLLCTL (*(unsigned int*)(PLL1_BASE + 0x100)) // PLL1 Control
+#define PLL1_SECCTL (*(unsigned int*)(PLL1_BASE + 0x108)) // PLL1 Secondary Control
+#define PLL1_PLLM (*(unsigned int*)(PLL1_BASE + 0x110)) // PLL1 Multiplier
+#define PLL1_DIV1 (*(unsigned int*)(PLL1_BASE + 0x118)) // DIV1 divider
+#define PLL1_DIV2 (*(unsigned int*)(PLL1_BASE + 0x11C)) // DIV2 divider
+#define PLL1_DIV3 (*(unsigned int*)(PLL1_BASE + 0x120)) // DIV3 divider
+#define PLL1_CMD (*(unsigned int*)(PLL1_BASE + 0x138)) // CMD control
+#define PLL1_STAT (*(unsigned int*)(PLL1_BASE + 0x13C)) // STAT control
+#define PLL1_ALNCTL (*(unsigned int*)(PLL1_BASE + 0x140)) // ALNCTL control
+#define PLL1_DCHANGE (*(unsigned int*)(PLL1_BASE + 0x144)) // DCHANGE status
+#define PLL1_CKEN (*(unsigned int*)(PLL1_BASE + 0x148)) // CKEN control
+#define PLL1_CKSTAT (*(unsigned int*)(PLL1_BASE + 0x14C)) // CKSTAT status
+#define PLL1_SYSTAT (*(unsigned int*)(PLL1_BASE + 0x150)) // SYSTAT status
+#define PLL1_DIV4 (*(unsigned int*)(PLL1_BASE + 0x160)) // DIV4 divider
+#define PLL1_DIV5 (*(unsigned int*)(PLL1_BASE + 0x164)) // DIV5 divider
+#define PLL1_DIV6 (*(unsigned int*)(PLL1_BASE + 0x168)) // DIV6 divider
+#define PLL1_DIV7 (*(unsigned int*)(PLL1_BASE + 0x16C)) // DIV7 divider
+#define PLL1_DIV8 (*(unsigned int*)(PLL1_BASE + 0x170)) // DIV8 divider
+#define PLL1_DIV9 (*(unsigned int*)(PLL1_BASE + 0x174)) // DIV9 divider
+#define PLL1_DIV10 (*(unsigned int*)(PLL1_BASE + 0x178)) // DIV10 divider
+#define PLL1_DIV11 (*(unsigned int*)(PLL1_BASE + 0x17C)) // DIV11 divider
+#define PLL1_DIV12 (*(unsigned int*)(PLL1_BASE + 0x180)) // DIV12 divider
+#define PLL1_DIV13 (*(unsigned int*)(PLL1_BASE + 0x184)) // DIV13 divider
+#define PLL1_DIV14 (*(unsigned int*)(PLL1_BASE + 0x188)) // DIV14 divider
+#define PLL1_DIV15 (*(unsigned int*)(PLL1_BASE + 0x18C)) // DIV15 divider
+#define PLL1_DIV16 (*(unsigned int*)(PLL1_BASE + 0x190)) // DIV16 divider
+#define PLLPWRDN_OFFSET 1
+#define PLLPWRDN_MASK 0xFFFFFFFD
+#define PLLRST_OFFSET 3
+#define PLLRST_MASK 0xFFFFFFF7
+#define PLLENSRC_OFFSET 5
+#define PLLENSRC_MASK 0xFFFFFFDF
+#define PLLEN_OFFSET 0
+#define PLLEN_MASK 0xFFFFFFFE
+#define OUTPUT_DIVIDE_OFFSET 19
+#define OUTPUT_DIVIDE_MASK 0xFF87FFFF
+#define BYPASS_OFFSET 23
+#define BYPASS_MASK 0xFF7FFFFF
+#define PLLM_OFFSET 0
+#define PLLM_MASK 0xFFFFFFC0
+#define GOSET_OFFSET 0
+#define GOSET_MASK 0xFFFFFFFE
+#define GOSTAT_OFFSET 0
+#define GOSTAT_MASK 0xFFFFFFFE
+
+#define OUTPUT_DIVIDE_OFFSET 19
+#define OUTPUT_DIVIDE_MASK 0xFF87FFFF
+
+// ARMPLL definitions
+#define SEC_PLLCTL0_PLLM_OFFSET 6
+#define SEC_PLLCTL0_PLLM_MASK 0xFFFF003F
+#define SEC_PLLCTL0_BWADJ_OFFSET 24
+#define SEC_PLLCTL0_BWADJ_MASK 0x00FFFFFF
+#define SEC_PLLCTL0_OD_OFFSET 19
+#define SEC_PLLCTL0_OD_MASK 0xFF87FFFF
+#define SEC_PLLCTL0_BYPASS_OFFSET 23
+#define SEC_PLLCTL0_BYPASS_MASK 0xFF7FFFFF
+#define SEC_PLLCTL1_RESET_OFFSET 14
+#define SEC_PLLCTL1_RESET_MASK 0xFFFFBFFF
+#define SEC_PLLCTL1_PWRDWN_OFFSET 15
+#define SEC_PLLCTL1_PWRDWN_MASK 0xFFFF7FFF
+#define SEC_PLLCTL1_ENSTAT_OFFSET 6
+#define SEC_PLLCTL1_ENSTAT_MASK 0xFFFFFFBF
+
+/*----------------DDR3A Register definition---------------------*/
+
+#define DDR3A_BASE_ADDR (0x21010000)
+#define DDR3A_STATUS (*(int*)(DDR3A_BASE_ADDR + 0x00000004))
+#define DDR3A_SDCFG (*(int*)(DDR3A_BASE_ADDR + 0x00000008))
+#define DDR3A_SDRFC (*(int*)(DDR3A_BASE_ADDR + 0x00000010))
+#define DDR3A_SDTIM1 (*(int*)(DDR3A_BASE_ADDR + 0x00000018))
+#define DDR3A_SDTIM2 (*(int*)(DDR3A_BASE_ADDR + 0x0000001C))
+#define DDR3A_SDTIM3 (*(int*)(DDR3A_BASE_ADDR + 0x00000020))
+#define DDR3A_SDTIM4 (*(int*)(DDR3A_BASE_ADDR + 0x00000028))
+#define DDR3A_ZQCFG (*(int*)(DDR3A_BASE_ADDR + 0x000000C8))
+#define DDR3A_TMPALRT (*(int*)(DDR3A_BASE_ADDR + 0x000000CC))
+#define DDR3A_DDRPHYC (*(int*)(DDR3A_BASE_ADDR + 0x000000E4))
+#define DDR3A_ECC_CTRL (*(int*)(DDR3A_BASE_ADDR + 0x00000110))
+
+#define DDR3A_PHY_CFG_BASE (0x02329000)
+#define DDR3A_PIR (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000004))
+#define DDR3A_PGCR0 (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000008))
+#define DDR3A_PGCR1 (*(int*)(DDR3A_PHY_CFG_BASE + 0x0000000C))
+#define DDR3A_PGCR2 (*(int*)(DDR3A_PHY_CFG_BASE + 0x0000008C))
+#define DDR3A_PGSR0 (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000010))
+#define DDR3A_PGSR1 (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000014))
+#define DDR3A_PLLCR (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000018))
+#define DDR3A_PTR0 (*(int*)(DDR3A_PHY_CFG_BASE + 0x0000001C))
+#define DDR3A_PTR1 (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000020))
+#define DDR3A_PTR2 (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000024))
+#define DDR3A_PTR3 (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000028))
+#define DDR3A_PTR4 (*(int*)(DDR3A_PHY_CFG_BASE + 0x0000002C))
+#define DDR3A_DSGCR (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000040))
+#define DDR3A_DCR (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000044))
+#define DDR3A_MR0 (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000054))
+#define DDR3A_MR1 (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000058))
+#define DDR3A_MR2 (*(int*)(DDR3A_PHY_CFG_BASE + 0x0000005C))
+#define DDR3A_DTCR (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000068))
+#define DDR3A_DTPR0 (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000048))
+#define DDR3A_DTPR1 (*(int*)(DDR3A_PHY_CFG_BASE + 0x0000004C))
+#define DDR3A_DTPR2 (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000050))
+
+#define DDR3A_ZQ0CR1 (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000184))
+#define DDR3A_ZQ1CR1 (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000194))
+#define DDR3A_ZQ2CR1 (*(int*)(DDR3A_PHY_CFG_BASE + 0x000001A4))
+#define DDR3A_ZQ3CR1 (*(int*)(DDR3A_PHY_CFG_BASE + 0x000001B4))
+
+#define DDR3A_DATX8_4 (*(int*)(DDR3A_PHY_CFG_BASE + 0x000002C0))
+#define DDR3A_DATX8_5 (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000300))
+#define DDR3A_DATX8_6 (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000340))
+#define DDR3A_DATX8_7 (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000380))
+#define DDR3A_DATX8_8 (*(int*)(DDR3A_PHY_CFG_BASE + 0x000003C0))
+
+#define DDR3_TEST_START_ADDRESS (*(int*)(0x80000000))
+
+#define IODDRM_MASK 0x00000180
+#define ZCKSEL_MASK 0x01800000
+#define CL_MASK 0x00000072
+#define WR_MASK 0x00000E00
+#define BL_MASK 0x00000003
+#define RRMODE_MASK 0x00040000
+#define UDIMM_MASK 0x20000000
+#define BYTEMASK_MASK 0x0000FC00
+#define MPRDQ_MASK 0x00000080
+#define PDQ_MASK 0x00000070
+#define NOSRA_MASK 0x08000000
+#define ECC_MASK 0x00000001
+#define RRMODE_MASK 0x00040000
+
+#define DDR3A_DX0GSR0 (*(int*)(DDR3A_PHY_CFG_BASE + 0x000001C4)) //0x71
+#define DDR3A_DX1GSR0 (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000204)) //0x81
+#define DDR3A_DX2GSR0 (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000244)) //0x91
+#define DDR3A_DX3GSR0 (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000284)) //0xA1
+#define DDR3A_DX4GSR0 (*(int*)(DDR3A_PHY_CFG_BASE + 0x000002C4)) //0xB1
+#define DDR3A_DX5GSR0 (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000304)) //0xC1
+#define DDR3A_DX6GSR0 (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000344)) //0xD1
+#define DDR3A_DX7GSR0 (*(int*)(DDR3A_PHY_CFG_BASE + 0x00000384)) //0xE1
+#define DDR3A_DX8GSR0 (*(int*)(DDR3A_PHY_CFG_BASE + 0x000003C4)) //0xF1
+
+#define TETRIS_BASE 0x01E80000
+
+#define TETRIS_CPU0_PTCMD *(unsigned int*)(TETRIS_BASE + 0x0400)
+#define TETRIS_CPU0_PDSTAT *(unsigned int*)(TETRIS_BASE + 0x0404)
+#define TETRIS_CPU0_PDCTL *(unsigned int*)(TETRIS_BASE + 0x0408)
+
+#define TETRIS_CPU1_PTCMD *(unsigned int*)(TETRIS_BASE + 0x040C)
+#define TETRIS_CPU1_PDSTAT *(unsigned int*)(TETRIS_BASE + 0x0410)
+#define TETRIS_CPU1_PDCTL *(unsigned int*)(TETRIS_BASE + 0x0414)
+
+#define TETRIS_CPU2_PTCMD *(unsigned int*)(TETRIS_BASE + 0x0418)
+#define TETRIS_CPU2_PDSTAT *(unsigned int*)(TETRIS_BASE + 0x041C)
+#define TETRIS_CPU2_PDCTL *(unsigned int*)(TETRIS_BASE + 0x0420)
+
+#define TETRIS_CPU3_PTCMD *(unsigned int*)(TETRIS_BASE + 0x0424)
+#define TETRIS_CPU3_PDSTAT *(unsigned int*)(TETRIS_BASE + 0x0428)
+#define TETRIS_CPU3_PDCTL *(unsigned int*)(TETRIS_BASE + 0x042C)
+
+#define SECPLLCTL0 *(unsigned int*)(CHIP_LEVEL_REG + 0x0370)
+#define SECPLLCTL1 *(unsigned int*)(CHIP_LEVEL_REG + 0x0374)
+unsigned int read_val;
+
+
+
+
+//*************************************************************************************************
+//*************************************************************************************************
+//*************************************************************************************************
+//*************************************************************************************************
+//*************************************************************************************************
+//*************************************************************************************************
+
+
+
+ddr3_memory_test ()
+{
+ unsigned int temp;
+ int i,j;
+
+ int *ptr;
+ unsigned int PATTERN1 = 0xA5A5A5A5;
+ int TEST_NUM_WORDS = 1000;
+
+ int flag = 0;
+
+ ptr = (int *)0x80000000;
+
+ for (j = 0; j < TEST_NUM_WORDS; j++)
+ {
+ ptr[j] = PATTERN1;
+ }
+
+ GEL_TextOut( "DDR3 memory test... starting at 0x80000000\n" );
+
+ for (i = 0; i < TEST_NUM_WORDS; i++)
+ {
+ temp=ptr[i];
+ GEL_TextOut("Addr offset: %x Expected: 0xA5A5A5A5 Read: %x \n",,,,, i*4, temp);
+ if (temp != PATTERN1) {
+ GEL_TextOut("ERROR!ERROR!ERROR!\n");
+ flag = 1;
+ }
+ }
+
+ if (flag)
+ {
+ GEL_TextOut("Errors found during memory test.\n");
+ }
+ else
+ {
+ GEL_TextOut("No errors found during memory test.\n");
+ }
+}
+
+
+
+/*----------------------------------------------------- DDR3A only --------------------------------------------------------------------------*/
+ddr3A_setup(int ECC_Enable, int DUAL_RANK)
+{
+ unsigned int multiplier = 133;
+ unsigned int divider = 0;
+ unsigned int OD_val = 16;
+
+ int temp,i;
+ int delay = 2000;
+ KICK0 = 0x83E70B13;
+ KICK1 = 0x95A4F1E0;
+
+ // Poll for IDONE=1 in the PHY General Status Register 0 (address offset 0x010).
+ do {
+ read_val = DDR3A_PGSR0;
+ } while ((read_val&0x00000001) != 0x00000001);
+
+ // Clocks are enabled and frequency is stable---------------------------------------
+
+ //DDR3A PLL setup
+ GEL_TextOut ( "DDR3 PLL Setup ... \n");
+ //DDR3APLLCTL0 = DDR3APLLCTL0 & 0xFF7FFFFF;
+ // Set ENSAT = 1
+ DDR3APLLCTL1 |= 0x00000040;
+ // Put the PLL in PLL Mode
+ DDR3APLLCTL0 |= 0x00800000;
+
+ // Program the necessary multipliers/dividers and BW adjustments
+ // Set the divider values
+ DDR3APLLCTL0 &= ~(0x0000003F);
+ DDR3APLLCTL0 |= (divider & 0x0000003F);
+
+ // Program OD[3:0] in the SECCTL register
+ DDR3APLLCTL0 &= OUTPUT_DIVIDE_MASK; // clear the OD bit field
+ DDR3APLLCTL0 |= ~OUTPUT_DIVIDE_MASK & (OD_val - 1) << OUTPUT_DIVIDE_OFFSET; // set the OD[3:0] bit field of PLLD to OD_val
+
+ // Set the Multipler values
+ DDR3APLLCTL0 &= ~(0x0007FFC0);
+ DDR3APLLCTL0 |= ((multiplier << 6) & 0x0007FFC0 );
+ temp = ((multiplier + 1) >> 1) - 1;
+ DDR3APLLCTL0 &= ~(0xFF000000);
+ DDR3APLLCTL0 |= ((temp << 24) & 0xFF000000);
+ DDR3APLLCTL1 &= ~(0x0000000F);
+ DDR3APLLCTL1 |= ((temp >> 8) & 0x0000000F);
+
+ // In PLL Controller, reset the PLL (bit 13 in DDR3APLLCTL1 register)
+ DDR3APLLCTL1 |= 0x00004000;
+ for(i=0;i<delay;i++);
+ // In DDR3PLLCTL1, write PLLRST = 0 to bring PLL out of reset
+ DDR3APLLCTL1 &= ~(0x00004000);
+ for(i=0;i<delay;i++);
+
+ // Put the PLL in PLL Mode
+ DDR3APLLCTL0 &= ~(0x00800000); // ReSet the Bit 23
+ GEL_TextOut( "DDR3 PLL Setup complete, DDR3A clock now running at 400MHz.\n" );
+ //DDR3A PLL setup complete ---------------------------------------
+
+
+ /*------------------------------- ECO FIX -----------------------------------------*/
+ // DDR3 write leveling ECO - Assert & release DDR PHY RESET after DDR PLL setup...
+ DDR3APLLCTL1 = DDR3APLLCTL1 | 0x80000000; //Assert DDR PHY reset after PLL enabled
+ for(i=0;i<delay;i++);
+ DDR3APLLCTL1 = DDR3APLLCTL1 & 0x7FFFFFFF; //Release DDR PHY reset
+
+ do { // Poll IDONE after resetting PHY
+ read_val = DDR3A_PGSR0;
+ } while ((read_val&0x00000001) != 0x00000001);
+ /*------------------------- Start PHY Configuration -------------------------------*/
+
+ //DDR3A_PGCR1 = 0x0280C487;
+ //MM from xls - 0x0080C507
+ //MM - from xls - 0x0080C507
+
+
+ // Program FRQSEL in the PLL Control Register (address offset 0x018).
+ DDR3A_PLLCR = 0xDC000; //Set FRQSEL=11, for ctl_clk between 166-275MHz
+
+ // Program WLSTEP=1, IODDRM=2(DDR3L), and ZCKSEL in the PHY General Configuration Register 1 (address offset 0x00C).
+ DDR3A_PGCR1 |= (1 << 2); //WLSTEP = 1
+ DDR3A_PGCR1 &= ~(IODDRM_MASK);
+ DDR3A_PGCR1 |= (( 2 << 7) & IODDRM_MASK); //MM - changed for DDR3L (changed to 2)
+ DDR3A_PGCR1 &= ~(ZCKSEL_MASK);
+ DDR3A_PGCR1 |= (( 1 << 23) & ZCKSEL_MASK);
+
+
+ // Program PHY Timing Parameters Register 0-4 (address offset 0x01C - 0x02C).
+
+ DDR3A_PTR0 = 0x42C21590;
+ DDR3A_PTR1 = 0xD05612C0;
+
+ // Maintain default values of Phy Timing Parameters Register 2 in PUB
+
+ DDR3A_PTR3 = 0x06C30D40; //0x18061A80;
+ DDR3A_PTR4 = 0x6413880; //0x0AAE7100;
+
+ // Program PDQ, MPRDQ, and BYTEMASK in the DRAM Configuration Register (address offset 0x044).
+ // All other fields must be left at their default values.
+
+ DDR3A_DCR &= ~(PDQ_MASK); //PDQ = 0
+ DDR3A_DCR &= ~(MPRDQ_MASK); //MPRDQ = 0
+ DDR3A_DCR &= ~(BYTEMASK_MASK);
+ DDR3A_DCR |= (( 1 << 10) & BYTEMASK_MASK);
+
+ if(DUAL_RANK==1){
+ //Assumes Address Mirrored DIMM
+ DDR3A_DCR &= ~(NOSRA_MASK);
+ DDR3A_DCR |= (( 1 << 27) & NOSRA_MASK);
+ DDR3A_DCR &= ~(UDIMM_MASK);
+ DDR3A_DCR |= (( 1 << 29) & UDIMM_MASK);
+ }
+
+ // Program DRAM Timing Parameters Register 0-2 (address offset 0x048 - 0x050).
+ DDR3A_DTPR0 = 0x550F6644; //MM - calculated: 0x550F6644, orig: 0x50CE6644
+ DDR3A_DTPR1 = 0x328341E0; //MM - calculated: 0x328341E0, orig: 0x32834180 //Increase tWLO to 12
+ DDR3A_DTPR2 = 0x50022A00;
+
+
+ // Program BL=0, CL, WR, and PD=1 in the Mode Register 0 (address offset 0x054).
+ // All other fields must be left at their default values.
+ DDR3A_MR0 = 0x00001430; //MM - calculated: 0x00001430, orig: 0x00001420 //-CL - 6, CWL - 5
+
+
+ // Program DIC, RTT, and TDQS in the Mode Register 1 (address offset 0x058).
+ // All other fields must be left at their default values.
+
+ DDR3A_MR1 = 0x00000006;
+
+ // Program Mode Register 2 (address offset 0x05C).
+ // Maintaining default values of Program Mode Register 2
+ //DDR3A_MR2 = 0x00000018;
+
+ // Program DTMPR=1, DTEXD, DTEXG, RANKEN=1 or 3, and RFSHDT=7 in the Data Training Configuration Register (address offset 0x068).
+ // All other fields must be left at their default values.
+ if(DUAL_RANK==1){
+ DDR3A_DTCR = 0x730035C7; //Dual-rank
+ }
+ else{
+ DDR3A_DTCR = 0x710035C7; //Single-rank
+ }
+ // Program tREFPRD=(5*tREFI/ddr_clk_period) in the PHY General Configuration Register 2 (address offset 0x08C).
+ //All other fields must be left at their default values.
+
+ DDR3A_PGCR2 = 0x00F03D09; //NOBUB = 0, FXDLAT = 0
+ //DDR3A_PGCR2 = 0x00F83D09; //NOBUB = 0, FXDLAT = 1
+
+ //Set Impedence Register and DFIPU0=1
+ DDR3A_ZQ0CR1 = 0x0001005D;
+ DDR3A_ZQ1CR1 = 0x0001005B;
+ DDR3A_ZQ2CR1 = 0x0001005B;
+
+
+ // Re-trigger PHY initialization in DDR PHY through the VBUSP interface.
+ // Program 0x00000033 to the PHY Initialization Register (address offset 0x004) to re-trigger PLL, ZCAL, and DCAL initialization.
+
+ DDR3A_PIR = 0x00000033;
+
+ // Poll for IDONE=1 in the PHY General Status Register 0 (address offset 0x010).
+ do {
+ read_val = DDR3A_PGSR0;
+ } while ((read_val&0x00000001) != 0x00000001);
+
+ //---------------------------------------------------------------------------------------------------------
+
+ if(ECC_Enable == 0)
+ {
+ read_val = DDR3A_DATX8_4;
+ DDR3A_DATX8_4 = read_val & 0xFFFFFFFE; //Disable ECC byte lane
+ }
+
+ read_val = DDR3A_DATX8_5;
+ DDR3A_DATX8_5 = read_val & 0xFFFFFFFE; //Disable BL5 byte lane - not present in K2G
+
+ read_val = DDR3A_DATX8_6;
+ DDR3A_DATX8_6 = read_val & 0xFFFFFFFE; //Disable BL6 byte lane - not present in K2G
+
+ read_val = DDR3A_DATX8_7;
+ DDR3A_DATX8_7 = read_val & 0xFFFFFFFE; //Disable BL7 byte lane - not present in K2G
+
+ read_val = DDR3A_DATX8_8;
+ DDR3A_DATX8_8 = read_val & 0xFFFFFFFE; //Disable BL8 byte lane - not present in K2G
+
+ // Trigger DDR3 initialization and leveling/training in DDR PHY through the VBUSP interface.
+ // If using a 16-bit wide DDR interface, program DXEN=0 in the DATX8 2-7 General Configuration Registers (address offsets 0x240, 0x280, 0x2C0, 0x300, 0x340, and 0x380) to disable the leveling/training for the upper byte lanes.
+ // If using a 32-bit wide DDR interface, program DXEN=0 in the DATX8 4-7 General Configuration Registers (address offsets 0x2C0, 0x300, 0x340, and 0x380) to disable the leveling/training for the upper byte lanes.
+ // If ECC is not required, program DXEN=0 in the DATX8 8 General Configuration Register (address offset 0x3C0) to disable the leveling/training for the ECC byte lane.
+ // NOTE: Setup supports 64-bit by default, ECC enable by default.
+
+ // Program 0x0000XF81 to the PHY Initialization Register (address offset 0x004) to trigger DDR3 initialization and leveling/training sequences
+ //DDR3A_PIR = 0x0000FF81; //WLADJ - ON
+ DDR3A_PIR = 0x00000F81; //WLADJ - ON
+ //DDR3A_PIR = 0x00000781; //WLADJ - OFF
+
+
+ //---------------------------------------------------------------------------------------------------------
+
+ // Poll for IDONE=1 in the PHY General Status Register 0 (address offset 0x010).
+ do {
+ read_val = DDR3A_PGSR0;
+ } while ((read_val&0x00000001) != 0x00000001);
+
+
+ /* End PHY Configuration */
+
+ if(ECC_Enable==1)
+ {
+ //Enable ECC
+ //0xB0000000: ECC_EN=1, ECC_VERIFY_EN=1, RMW_EN=1
+ //0x50000000: ECC_EN=1, ECC_VERIFY_EN=0, RMW_EN=1
+ DDR3A_ECC_CTRL = 0xB0000000;
+ read_val = DDR3A_ECC_CTRL;
+ if(read_val!=0xB0000000){
+ GEL_TextOut("\nIncorrect data written to DDR3A_ECC_CTRL..");
+ }
+ }
+
+ //---------------------------------------------------------------------------------------------------------
+ /* START EMIF INITIALIZATION
+ ++++++++++++++++++SDCFG Register Calculation+++++++++++++++++++
+ | 31 - 29 | 28 |27 - 25 | 24 | 23 - 22| 21 - 17 |
+ |SDRAM_TYPE|Rsvd|DDR_TERM| DDQS | DYN_ODT| Rsvd |
+ | 0x011 | 0 | 0x011 | 0x1 | 0x00 | 0x0 |
+
+ | 16-14 |13 - 12 | 11 - 8 | 7 |6 - 5 | 4 | 3 | 2 | 1 - 0 |
+ | CWL | NM | CL | Rsvd |IBANK | Rsvd|EBANK| Rsvd|PAGE_SIZE|
+ | 0x11 | 0x01 | 0x1110 | 0x0 | 0x11 | 0x0 | 0 | 0 | 0x10 |
+ SDCFG = 0x0110 0011 0010 0010 0011 0011 1011 0010
+ SDCFG = 0x6700486A;//0x63223332
+
+ SDRAM_TYPE = 3
+ DDR_TERM = 3 (RZQ/4 = 1; RZQ/6=3)
+ DDQS = 1
+ DYN_ODT = 0
+
+ CWL = 3 (CWL5=0; CWL6=1; CWL7=2; CWL8=3)
+ NM = 1 (64-bit=0, 32-bit=1, 16-bit=2)
+ CL = 14 (CL5=2; CL6=4; CL7=6; CL8=8; CL9=10; CL10=12; CL11=14)
+ IBANK = 3 (8bank)
+ EBANK = 0 (0 - pad_cs_o_n[0] , 1 - pad_cs_o_n[1:0])
+ PAGE_SIZE = 2 (1024page-size=2; 2048page-size=3)
+ */
+ /* Start DDR3A EMIF Configuration */
+ // Configure the EMIF through the VBUSM interface.
+ // Program all EMIF MMRs.
+
+ if(DUAL_RANK==1){
+ DDR3A_SDCFG = 0x6200046A; //Dual-rank
+ }
+ else{
+ DDR3A_SDCFG = 0x62005662; //Single-rank, 32-bit //MM - calculated: 0x62005662, orig: 0x62000462 (orig,NM=01:62001462)
+ }
+
+ DDR3A_SDTIM1 = 0x0A385033; //MM - calculated: 0x0A385033, orig: 0x0A384C23
+ DDR3A_SDTIM2 = 0x00001CA5;
+ DDR3A_SDTIM3 = 0x21ADFF32;
+ DDR3A_SDTIM4 = 0x533F067F;
+
+ if(DUAL_RANK==1){
+ DDR3A_ZQCFG = 0xF0073200; //Dual-rank
+ }
+ else{
+ DDR3A_ZQCFG = 0x70073200; //Single-rank
+ }
+
+ //8.b. Program reg_initref_dis=0 in the SDRAM Refresh Control Register (address offset 0x10).
+ DDR3A_SDRFC = 0x00000C34;
+
+ GEL_TextOut("DDR3A initialization complete \n");
+ /* End DDR3A EMIF Configuration */
+
+ }
+
+
+
+
+/*--------------------------------------------------------------*/
+/* TCI66x MENU */
+/*--------------------------------------------------------------*/
+
+menuitem "Generic Functions";
+
+/****************************************************************************
+ *
+ * NAME
+ * Global_Default_Setup
+ *
+ * PURPOSE:
+ * Setup almost everything ready for a new debug session:
+ * DSP modules and EVM board modules.
+ *
+ * USAGE
+ * This routine can be called as:
+ *
+ * Global_Default_Setup()
+ *
+ * RETURN VALUE
+ * NONE
+ *
+ * REFERENCE
+ *
+ ****************************************************************************/
+hotmenu Global_Default_Setup()
+{
+ GEL_TextOut( "Global Default Setup...\n" );
+ Global_Default_Setup_Silent();
+ GEL_TextOut( "Global Default Setup... Done.\n" );
+}
+
+// hotmenu Reset()
+// {
+ // GEL_Reset();
+// }
+
+hotmenu InitXMC()
+{
+ xmc_setup();
+}
+
+hotmenu K2G_TakeDSPOutofReset()
+{
+ K2G_out_of_reset();
+}
+
+menuitem "DDR3 Functions";
+
+
+// hotmenu InitEmif_DDR3A_ECC_DUAL_RANK(){
+ // ddr3A_setup(1,1);
+// }
+
+// hotmenu InitEmif_DDR3A_NO_ECC_DUAL_RANK(){
+ // ddr3A_setup(0,1);
+// }
+
+hotmenu InitEmif_DDR3A_ECC()
+{
+ ddr3A_setup(1,0);
+}
+
+hotmenu InitEmif_DDR3A_NO_ECC()
+{
+ ddr3A_setup(0,0);
+}
+
+menuitem "Tests";
+
+hotmenu ddr3_write_read_test()
+{
+ ddr3_memory_test ();
+}
+
+/****************************************************************************
+ *
+ * NAME
+ * Set_PSC_State
+ *
+ * PURPOSE:
+ * Set a new power state for the specified domain id in a power controler
+ * domain. Wait for the power transition to complete.
+ *
+ * USAGE
+ * This routine can be called as:
+ *
+ * Set_PSC_State(unsigned int pd,unsigned int id,unsigned int state)
+ *
+ * pd - (i) power domain.
+ *
+ * id - (i) module id to use for module in the specified power domain
+ *
+ * state - (i) new state value to set
+ * 0 = RESET
+ * 1 = SYNC RESET
+ * 2 = DISABLE
+ * 3 = ENABLE
+ *
+ * RETURN VALUE
+ * 0 if ok, !=0 for error
+ *
+ * REFERENCE
+ *
+ ****************************************************************************/
+Set_PSC_State(unsigned int pd,unsigned int id,unsigned int state)
+{
+ unsigned int* mdctl;
+ unsigned int* mdstat;
+ unsigned int* pdctl;
+ int ret=0;
+
+ // Only core0 can set PSC
+ if (DNUM == 0)
+ {
+ mdctl = ( unsigned int* )(PSC_MDCTL_BASE + ( 4 * id ));
+ mdstat = ( unsigned int* )( PSC_MDSTAT_BASE + ( 4 * id ));
+ pdctl = ( unsigned int* )(PSC_PDCTL_BASE + ( 4 * pd ));
+
+ // If state is already set, do nothing
+ if ( ( *mdstat & 0x1f ) == state )
+ {
+ return(0);
+ }
+
+ // Wait for GOSTAT to clear
+ Set_Timeout(GTIMEOUT);
+ while( Get_Timeout() && (PSC_PTSTAT & (0x1 << pd)) != 0 );
+
+ // Check if we got timeout error while waiting
+ if (!Get_Timeout())
+ {
+ GEL_TextOut( "Set_PSC_State... Timeout Error #01 pd=%d, md=%d!\n",,2,,,pd,id);
+ ret=1;
+ }
+ else
+ {
+ // Set power domain control
+ *pdctl = (*pdctl) | 0x00000001;
+
+ // Set MDCTL NEXT to new state
+ *mdctl = ((*mdctl) & ~(0x1f)) | state;
+
+ // Start power transition by setting PTCMD GO to 1
+ PSC_PTCMD = (PSC_PTCMD) | (0x1<<pd);
+
+ // Wait for PTSTAT GOSTAT to clear
+ Set_Timeout(GTIMEOUT);
+ while( Get_Timeout() && (PSC_PTSTAT & (0x1 << pd)) != 0 );
+
+ // Check if we got timeout error while waiting
+ if (!Get_Timeout())
+ {
+ GEL_TextOut( "Set_PSC_State... Timeout Error #02 pd=%d, md=%d!\n",,2,,,pd,id);
+ ret=2;
+ }
+ else
+ {
+ // Verify state changed
+ Set_Timeout(GTIMEOUT);
+ while(Get_Timeout() && ( *mdstat & 0x1f ) != state );
+
+ // Check if we got timeout error while waiting
+ if (!Get_Timeout())
+ {
+ GEL_TextOut( "Set_PSC_State... Timeout Error #03 pd=%d, md=%d!\n",,2,,,pd,id);
+ ret=3;
+ }
+ }
+ }
+
+ // Kill the currently running timeout
+ Kill_Timeout();
+ }
+ else
+ {
+ GEL_TextOut("DSP core #%d cannot set PSC.\n",,2,,,DNUM);
+ }
+
+ return(ret);
+}
+
+/****************************************************************************
+
+ *
+ * NAME
+ * K2G_out_of_reset
+ *
+ * PURPOSE:
+ * This routine brings the C66x core out of reset after booting Linux, or at the u-boot prompt.
+ * These steps are necessary in to order to load an application on the C66x core,
+ * without interfering with the operation of Linux running on the A15.
+ *
+ * USAGE
+ * This routine can be called as:
+ *
+ * K2G_out_of_reset();
+ *
+ *
+ * RETURN VALUE
+ * NONE
+ *
+ * REFERENCE
+ *
+
+ ****************************************************************************/
+K2G_out_of_reset()
+{
+ GEL_TextOut("\nTaking K2G DSP 0 out of reset\n");
+ WR_MEM_32(KS2_PDCTL8, 0x1);
+ WR_MEM_32(KS2_MDCTL18, 0x103);
+ GEL_TextOut("\nDone taking K2G DSP 0 out of reset!\n");
+}
+
+/****************************************************************************
+ *
+ * NAME
+ * Get_Timeout
+ *
+ * PURPOSE:
+ * Query the running state of a timeout period started by Set_Timeout.
+ * (see Set_Timeout for more info).
+ *
+ * USAGE
+ * This routine can be called as:
+ *
+ * Get_Timeout()
+ *
+ * RETURN VALUE
+ * 0:expired, 1:running
+ *
+ * REFERENCE
+ *
+ ****************************************************************************/
+Get_Timeout()
+{
+ if (!_GEL_Global_Timeout1)
+ {
+ // Cancel the current timer
+ GEL_CancelTimer(TIMEOUT_ID);
+ }
+
+ // Return the global timeout status 1=running, 0=expired
+ return _GEL_Global_Timeout1;
+}
+
+/****************************************************************************
+ *
+ * NAME
+ * Kill_Timeout
+ *
+ * PURPOSE:
+ * Cancel a running timeout period before it expires
+ * (see Set_Timeout for more info).
+ *
+ * USAGE
+ * This routine can be called as:
+ *
+ * Kill_Timeout()
+ *
+ * RETURN VALUE
+ * NONE
+ *
+ * REFERENCE
+ *
+ ****************************************************************************/
+Kill_Timeout()
+{
+ // Cancel the current timer
+ GEL_CancelTimer(TIMEOUT_ID);
+
+ // The timeout period is expired
+ _GEL_Global_Timeout1=0;
+}
+
+/****************************************************************************
+ *
+ * NAME
+ * _Timeout_Callback
+ *
+ * PURPOSE:
+ * Internal Callback function used by Set_timeout
+ * (see Set_Timeout for more info).
+ *
+ * USAGE
+ * This routine must not be called by itself.
+ *
+ * RETURN VALUE
+ * NONE
+ *
+ * REFERENCE
+ *
+ ****************************************************************************/
+_Timeout_Callback()
+{
+ // The timeout period is expired
+ _GEL_Global_Timeout1=0;
+}
+/****************************************************************************
+ *
+ * NAME
+ * Set_Timeout
+ *
+ * PURPOSE:
+ * Starts a timeout period of msec. The running timeout period can be
+ * query with Get_Timeout. To kill a running timeout before the end,
+ * call Kill_Timeout. Only one timeout period can be used at any time.
+ * A timeout period can be used to measure a period of time while doing
+ * anything else. Not accurate, sets timer at least as big as desired.
+ *
+ * USAGE
+ * This routine can be called as:
+ *
+ * Set_Timeout(msec)
+ *
+ * msec - (i) timeout period in msec (not very precise < sec range)
+ *
+ * RETURN VALUE
+ * NONE
+ *
+ * REFERENCE
+ *
+ ****************************************************************************/
+Set_Timeout(msec)
+{
+ // Cancel the current timer if not already expired
+ GEL_CancelTimer(TIMEOUT_ID);
+
+ // Starts the timeout period
+ _GEL_Global_Timeout1=1;
+
+ // Setup a callback routine with specified timeout
+ GEL_SetTimer(msec, TIMEOUT_ID, "_Timeout_Callback()");
+}
+
+/****************************************************************************
+ *
+ * NAME
+ * Set_Psc_All_On
+ *
+ * PURPOSE:
+ * Enable all PSC modules and DSP power domains on ALWAYSON, and wait
+ * for these power transitions to complete.
+ *
+ * USAGE
+ * This routine can be called as:
+ *
+ * Set_Psc_All_On()
+ *
+ * RETURN VALUE
+ * NONE
+ *
+ * REFERENCE
+ *
+ ****************************************************************************/
+hotmenu Set_Psc_All_On( )
+{
+ unsigned int i=0;
+
+ // Only core0 can set PSC
+ if (DNUM == 0)
+ {
+ GEL_TextOut( "Power on all PSC modules and DSP domains... \n");
+ Set_PSC_State(PD1, LPSC_PMMC, PSC_ENABLE);
+ Set_PSC_State(PD1, LPSC_DEBUG, PSC_ENABLE);
+ Set_PSC_State(PD2, LPSC_NSS, PSC_ENABLE);
+ Set_PSC_State(PD3, LPSC_SA, PSC_ENABLE);
+ Set_PSC_State(PD5, LPSC_SYS_COMP, PSC_ENABLE);
+ Set_PSC_State(PD5, LPSC_QSPI, PSC_ENABLE);
+ Set_PSC_State(PD5, LPSC_MMC, PSC_ENABLE);
+ Set_PSC_State(PD5, LPSC_GPMC, PSC_ENABLE);
+ Set_PSC_State(PD5, LPSC_MLB, PSC_ENABLE);
+ Set_PSC_State(PD5, LPSC_EHRPWM, PSC_ENABLE);
+ Set_PSC_State(PD5, LPSC_EQEP, PSC_ENABLE);
+ Set_PSC_State(PD5, LPSC_ECAP, PSC_ENABLE);
+ Set_PSC_State(PD5, LPSC_MCASP, PSC_ENABLE);
+ Set_PSC_State(PD7, LPSC_MSMC, PSC_ENABLE);
+ Set_PSC_State(PD11, LPSC_ICSS, PSC_ENABLE);
+ Set_PSC_State(PD12, LPSC_DSS, PSC_ENABLE);
+ Set_PSC_State(PD13, LPSC_PCIE, PSC_ENABLE);
+ Set_PSC_State(PD14, LPSC_USB_0, PSC_ENABLE);
+ Set_PSC_State(PD14, LPSC_USB_1, PSC_ENABLE);
+ Set_PSC_State(PD15, LPSC_DDR3, PSC_ENABLE);
+
+ GEL_TextOut( "Power on PCIE PSC modules and DSP domains... Done.\n" );
+ }
+ else
+ {
+ GEL_TextOut("DSP core #%d cannot set PSC.\n",,2,,,DNUM);
+ }
+}
+
+
+#define MDIO_CTL *(unsigned int*)(0x4200F00 + 0x04)
+#define MDIO_PHY_REG *(unsigned int*)(0x4200F00 + 0x80)
+
+
+hotmenu MDIO_Init()
+{
+ MDIO_CTL = 0x411400ff;
+ GEL_TextOut( "MDIO is enabled\n");
+}
+
+hotmenu MDIO_Set_GB_Loopback()
+{
+ MDIO_PHY_REG = 0xc0004140;
+ GEL_TextOut( "PHY reg0 is set to 0x4140.\n");
+ MDIO_PHY_REG = 0xc1201300;;
+ GEL_TextOut( "PHY reg9 is set to 0x1300.\n");
+}
+
+
+
+
+/* GEL file to load microphone files */
+
+#define MIC1PATH "$(GEL_file_dir)/t8/y16L8g3m7090_1.pcm"
+#define MIC2PATH "$(GEL_file_dir)/t8/y16L8g3m7090_2.pcm"
+#define MIC3PATH "$(GEL_file_dir)/t8/y16L8g3m7090_3.pcm"
+#define MIC4PATH "$(GEL_file_dir)/t8/y16L8g3m7090_4.pcm"
+#define MIC5PATH "$(GEL_file_dir)/t8/y16L8g3m7090_5.pcm"
+#define MIC6PATH "$(GEL_file_dir)/t8/y16L8g3m7090_6.pcm"
+#define MIC7PATH "$(GEL_file_dir)/t8/y16L8g3m7090_7.pcm"
+#define MIC8PATH "$(GEL_file_dir)/t8/y16L8g3m7090_8.pcm"
+
+#define OUTPUTPATH "$(GEL_file_dir)/t8/fileOutput.bin"
+
+BFLoadMic(buffer,micpath)
+{
+ GEL_MemoryLoad(buffer,0,160,micpath,32);
+}
+
+BFSaveMic(buffer,num, micpath)
+{
+ GEL_MemorySave(buffer,0,num,micpath,8,0,32);
+}
+
+menuitem "Microphone Load Functions";
+
+dialog BFLoadOneMic(buffer "Buffer Address",micpath "Microphone File Path")
+{
+ GEL_TextOut("Loading %s\n","",,,,micpath);
+ BFLoadMic(buffer,micpath);
+}
+
+hotmenu BFLoadMic1()
+{
+ GEL_TextOut("Loading %s\n","",,,,MIC1PATH);
+ BFLoadMic(filBuf0,MIC1PATH);
+}
+
+hotmenu BFLoadMic2()
+{
+ GEL_TextOut("Loading %s\n","",,,,MIC2PATH);
+ BFLoadMic(filBuf1,MIC2PATH);
+}
+
+hotmenu BFLoadMic3()
+{
+ GEL_TextOut("Loading %s\n","",,,,MIC3PATH);
+ BFLoadMic(filBuf2,MIC3PATH);
+}
+
+hotmenu BFLoadMic4()
+{
+ GEL_TextOut("Loading %s\n","",,,,MIC4PATH);
+ BFLoadMic(filBuf3,MIC4PATH);
+}
+
+hotmenu BFLoadMic5()
+{
+ GEL_TextOut("Loading %s\n","",,,,MIC5PATH);
+ BFLoadMic(filBuf4,MIC5PATH);
+}
+
+hotmenu BFLoadMic6()
+{
+ GEL_TextOut("Loading %s\n","",,,,MIC6PATH);
+ BFLoadMic(filBuf5,MIC6PATH);
+}
+
+hotmenu BFLoadMic7()
+{
+ GEL_TextOut("Loading %s\n","",,,,MIC7PATH);
+ BFLoadMic(filBuf6,MIC7PATH);
+}
+
+hotmenu BFLoadMic8()
+{
+ GEL_TextOut("Loading %s\n","",,,,MIC8PATH);
+ BFLoadMic(filBuf7,MIC8PATH);
+}
+
+hotmenu BFLoadMicAll()
+{
+ BFLoadMic1();
+ BFLoadMic2();
+ BFLoadMic3();
+ BFLoadMic4();
+ BFLoadMic5();
+ BFLoadMic6();
+ BFLoadMic7();
+ BFLoadMic8();
+ GEL_TextOut("Done Loading Microphones\n");
+}
+
+menuitem "Microphone Save Functions";
+
+hotmenu BFSaveOutput()
+{
+ GEL_TextOut("Saving %s\n","",,,,OUTPUTPATH);
+ BFSaveMic(filOutBuf0,filConfig.outlen/2,OUTPUTPATH);
+}
diff --git a/file_demo_bios/k2g/filters/fir16L8g3m120.log b/file_demo_bios/k2g/filters/fir16L8g3m120.log
--- /dev/null
@@ -0,0 +1,8 @@
+ 0 0 6 -32 82 -162 280 -451 700 -1087 1788 -3605 31832 4748 -2086 1228 -784 507 -319 189 -100 42 -11\r
+ 0 0 8 -50 134 -273 479 -776 1208 -1872 3041 -5866 29149 10250 -4136 2388 -1517 981 -621 371 -199 88 -25\r
+ 0 0 -35 116 -255 470 -782 1231 -1902 3007 -5285 14027 26596 -6613 3513 -2178 1407 -902 554 -312 152 -54 8\r
+ 0 -34 113 -250 461 -767 1209 -1868 2952 -5179 13643 26879 -6563 3478 -2155 1392 -893 548 -310 150 -54 8 0\r
+ -11 42 -100 189 -319 507 -784 1228 -2086 4748 31832 -3605 1788 -1087 700 -451 280 -162 82 -32 6 0 0\r
+ -25 88 -199 371 -621 981 -1517 2388 -4136 10250 29149 -5866 3041 -1872 1208 -776 479 -273 134 -50 8 0 0\r
+ 8 -54 152 -312 554 -902 1407 -2178 3513 -6613 26596 14027 -5285 3007 -1902 1231 -782 470 -255 116 -35 0 0\r
+ 0 8 -54 150 -310 548 -893 1392 -2155 3478 -6563 26879 13643 -5179 2952 -1868 1209 -767 461 -250 113 -34 0\r
diff --git a/file_demo_bios/k2g/filters/fir16L8g3m135.log b/file_demo_bios/k2g/filters/fir16L8g3m135.log
--- /dev/null
@@ -0,0 +1,8 @@
+ 0 0 -6 24 -56 108 -183 292 -452 706 -1190 2628 32453 -2242 1088 -658 423 -273 170 -99 50 -20 4\r
+ 0 0 8 -53 145 -297 524 -851 1326 -2054 3324 -6328 27878 12228 -4766 2732 -1731 1120 -710 426 -230 103 -30\r
+ 0 0 -6 24 -56 108 -183 292 -452 706 -1190 2628 32453 -2242 1088 -658 423 -273 170 -99 50 -20 4\r
+ 0 0 0 0 0 0 0 0 0 0 0 32767 0 0 0 0 0 0 0 0 0 0 0\r
+ 4 -20 50 -99 170 -273 423 -658 1088 -2242 32453 2628 -1190 706 -452 292 -183 108 -56 24 -6 0 0\r
+ -30 103 -230 426 -710 1120 -1731 2732 -4766 12228 27878 -6328 3324 -2054 1326 -851 524 -297 145 -53 8 0 0\r
+ 4 -20 50 -99 170 -273 423 -658 1088 -2242 32453 2628 -1190 706 -452 292 -183 108 -56 24 -6 0 0\r
+ 0 0 0 0 0 0 0 0 0 0 0 32767 0 0 0 0 0 0 0 0 0 0 0\r
diff --git a/file_demo_bios/k2g/filters/fir16L8g3m150.log b/file_demo_bios/k2g/filters/fir16L8g3m150.log
--- /dev/null
@@ -0,0 +1,8 @@
+ 0 0 -35 116 -255 470 -782 1231 -1902 3007 -5285 14027 26596 -6613 3513 -2178 1407 -902 554 -312 152 -54 8\r
+ 0 0 8 -50 134 -273 479 -776 1208 -1872 3041 -5866 29149 10250 -4136 2388 -1517 981 -621 371 -199 88 -25\r
+ 0 0 6 -32 82 -162 280 -451 700 -1087 1788 -3605 31832 4748 -2086 1228 -784 507 -319 189 -100 42 -11\r
+ 0 8 -54 150 -310 548 -893 1392 -2155 3478 -6563 26879 13643 -5179 2952 -1868 1209 -767 461 -250 113 -34 0\r
+ 8 -54 152 -312 554 -902 1407 -2178 3513 -6613 26596 14027 -5285 3007 -1902 1231 -782 470 -255 116 -35 0 0\r
+ -25 88 -199 371 -621 981 -1517 2388 -4136 10250 29149 -5866 3041 -1872 1208 -776 479 -273 134 -50 8 0 0\r
+ -11 42 -100 189 -319 507 -784 1228 -2086 4748 31832 -3605 1788 -1087 700 -451 280 -162 82 -32 6 0 0\r
+ 0 -34 113 -250 461 -767 1209 -1868 2952 -5179 13643 26879 -6563 3478 -2155 1392 -893 548 -310 150 -54 8 0\r
diff --git a/file_demo_bios/k2g/filters/fir16L8g3m30.log b/file_demo_bios/k2g/filters/fir16L8g3m30.log
--- /dev/null
@@ -0,0 +1,8 @@
+ 0 0 -35 116 -255 470 -782 1231 -1902 3007 -5285 14027 26596 -6613 3513 -2178 1407 -902 554 -312 152 -54 8\r
+ 0 -34 113 -250 461 -767 1209 -1868 2952 -5179 13643 26879 -6563 3478 -2155 1392 -893 548 -310 150 -54 8 0\r
+ -11 42 -100 189 -319 507 -784 1228 -2086 4748 31832 -3605 1788 -1087 700 -451 280 -162 82 -32 6 0 0\r
+ -25 88 -199 371 -621 981 -1517 2388 -4136 10250 29149 -5866 3041 -1872 1208 -776 479 -273 134 -50 8 0 0\r
+ 8 -54 152 -312 554 -902 1407 -2178 3513 -6613 26596 14027 -5285 3007 -1902 1231 -782 470 -255 116 -35 0 0\r
+ 0 8 -54 150 -310 548 -893 1392 -2155 3478 -6563 26879 13643 -5179 2952 -1868 1209 -767 461 -250 113 -34 0\r
+ 0 0 6 -32 82 -162 280 -451 700 -1087 1788 -3605 31832 4748 -2086 1228 -784 507 -319 189 -100 42 -11\r
+ 0 0 8 -50 134 -273 479 -776 1208 -1872 3041 -5866 29149 10250 -4136 2388 -1517 981 -621 371 -199 88 -25\r
diff --git a/file_demo_bios/k2g/filters/fir16L8g3m45.log b/file_demo_bios/k2g/filters/fir16L8g3m45.log
--- /dev/null
@@ -0,0 +1,8 @@
+ 0 0 -6 24 -56 108 -183 292 -452 706 -1190 2628 32453 -2242 1088 -658 423 -273 170 -99 50 -20 4\r
+ 0 0 0 0 0 0 0 0 0 0 0 32767 0 0 0 0 0 0 0 0 0 0 0\r
+ 4 -20 50 -99 170 -273 423 -658 1088 -2242 32453 2628 -1190 706 -452 292 -183 108 -56 24 -6 0 0\r
+ -30 103 -230 426 -710 1120 -1731 2732 -4766 12228 27878 -6328 3324 -2054 1326 -851 524 -297 145 -53 8 0 0\r
+ 4 -20 50 -99 170 -273 423 -658 1088 -2242 32453 2628 -1190 706 -452 292 -183 108 -56 24 -6 0 0\r
+ 0 0 0 0 0 0 0 0 0 0 0 32767 0 0 0 0 0 0 0 0 0 0 0\r
+ 0 0 -6 24 -56 108 -183 292 -452 706 -1190 2628 32453 -2242 1088 -658 423 -273 170 -99 50 -20 4\r
+ 0 0 8 -53 145 -297 524 -851 1326 -2054 3324 -6328 27878 12228 -4766 2732 -1731 1120 -710 426 -230 103 -30\r
diff --git a/file_demo_bios/k2g/filters/fir16L8g3m60.log b/file_demo_bios/k2g/filters/fir16L8g3m60.log
--- /dev/null
@@ -0,0 +1,8 @@
+ 0 0 6 -32 82 -162 280 -451 700 -1087 1788 -3605 31832 4748 -2086 1228 -784 507 -319 189 -100 42 -11\r
+ 0 8 -54 150 -310 548 -893 1392 -2155 3478 -6563 26879 13643 -5179 2952 -1868 1209 -767 461 -250 113 -34 0\r
+ 8 -54 152 -312 554 -902 1407 -2178 3513 -6613 26596 14027 -5285 3007 -1902 1231 -782 470 -255 116 -35 0 0\r
+ -25 88 -199 371 -621 981 -1517 2388 -4136 10250 29149 -5866 3041 -1872 1208 -776 479 -273 134 -50 8 0 0\r
+ -11 42 -100 189 -319 507 -784 1228 -2086 4748 31832 -3605 1788 -1087 700 -451 280 -162 82 -32 6 0 0\r
+ 0 -34 113 -250 461 -767 1209 -1868 2952 -5179 13643 26879 -6563 3478 -2155 1392 -893 548 -310 150 -54 8 0\r
+ 0 0 -35 116 -255 470 -782 1231 -1902 3007 -5285 14027 26596 -6613 3513 -2178 1407 -902 554 -312 152 -54 8\r
+ 0 0 8 -50 134 -273 479 -776 1208 -1872 3041 -5866 29149 10250 -4136 2388 -1517 981 -621 371 -199 88 -25\r
diff --git a/file_demo_bios/k2g/filters/fir16L8g3m90.log b/file_demo_bios/k2g/filters/fir16L8g3m90.log
--- /dev/null
@@ -0,0 +1,8 @@
+ 0 0 8 -53 145 -297 524 -851 1326 -2054 3324 -6328 27878 12228 -4766 2732 -1731 1120 -710 426 -230 103 -30\r
+ 0 0 -6 24 -56 108 -183 292 -452 706 -1190 2628 32453 -2242 1088 -658 423 -273 170 -99 50 -20 4\r
+ 0 0 0 0 0 0 0 0 0 0 0 32767 0 0 0 0 0 0 0 0 0 0 0\r
+ 4 -20 50 -99 170 -273 423 -658 1088 -2242 32453 2628 -1190 706 -452 292 -183 108 -56 24 -6 0 0\r
+ -30 103 -230 426 -710 1120 -1731 2732 -4766 12228 27878 -6328 3324 -2054 1326 -851 524 -297 145 -53 8 0 0\r
+ 4 -20 50 -99 170 -273 423 -658 1088 -2242 32453 2628 -1190 706 -452 292 -183 108 -56 24 -6 0 0\r
+ 0 0 0 0 0 0 0 0 0 0 0 32767 0 0 0 0 0 0 0 0 0 0 0\r
+ 0 0 -6 24 -56 108 -183 292 -452 706 -1190 2628 32453 -2242 1088 -658 423 -273 170 -99 50 -20 4\r
diff --git a/file_demo_bios/k2g/filters/fir16L8g3p0.log b/file_demo_bios/k2g/filters/fir16L8g3p0.log
--- /dev/null
@@ -0,0 +1,8 @@
+ 0 0 0 0 0 0 0 0 0 0 0 32767 0 0 0 0 0 0 0 0 0 0 0\r
+ 4 -20 50 -99 170 -273 423 -658 1088 -2242 32453 2628 -1190 706 -452 292 -183 108 -56 24 -6 0 0\r
+ -30 103 -230 426 -710 1120 -1731 2732 -4766 12228 27878 -6328 3324 -2054 1326 -851 524 -297 145 -53 8 0 0\r
+ 4 -20 50 -99 170 -273 423 -658 1088 -2242 32453 2628 -1190 706 -452 292 -183 108 -56 24 -6 0 0\r
+ 0 0 0 0 0 0 0 0 0 0 0 32767 0 0 0 0 0 0 0 0 0 0 0\r
+ 0 0 -6 24 -56 108 -183 292 -452 706 -1190 2628 32453 -2242 1088 -658 423 -273 170 -99 50 -20 4\r
+ 0 0 8 -53 145 -297 524 -851 1326 -2054 3324 -6328 27878 12228 -4766 2732 -1731 1120 -710 426 -230 103 -30\r
+ 0 0 -6 24 -56 108 -183 292 -452 706 -1190 2628 32453 -2242 1088 -658 423 -273 170 -99 50 -20 4\r
diff --git a/file_demo_bios/k2g/filters/fir16L8g3p120.log b/file_demo_bios/k2g/filters/fir16L8g3p120.log
--- /dev/null
@@ -0,0 +1,8 @@
+ -11 42 -100 189 -319 507 -784 1228 -2086 4748 31832 -3605 1788 -1087 700 -451 280 -162 82 -32 6 0 0\r
+ 0 -34 113 -250 461 -767 1209 -1868 2952 -5179 13643 26879 -6563 3478 -2155 1392 -893 548 -310 150 -54 8 0\r
+ 0 0 -35 116 -255 470 -782 1231 -1902 3007 -5285 14027 26596 -6613 3513 -2178 1407 -902 554 -312 152 -54 8\r
+ 0 0 8 -50 134 -273 479 -776 1208 -1872 3041 -5866 29149 10250 -4136 2388 -1517 981 -621 371 -199 88 -25\r
+ 0 0 6 -32 82 -162 280 -451 700 -1087 1788 -3605 31832 4748 -2086 1228 -784 507 -319 189 -100 42 -11\r
+ 0 8 -54 150 -310 548 -893 1392 -2155 3478 -6563 26879 13643 -5179 2952 -1868 1209 -767 461 -250 113 -34 0\r
+ 8 -54 152 -312 554 -902 1407 -2178 3513 -6613 26596 14027 -5285 3007 -1902 1231 -782 470 -255 116 -35 0 0\r
+ -25 88 -199 371 -621 981 -1517 2388 -4136 10250 29149 -5866 3041 -1872 1208 -776 479 -273 134 -50 8 0 0\r
diff --git a/file_demo_bios/k2g/filters/fir16L8g3p135.log b/file_demo_bios/k2g/filters/fir16L8g3p135.log
--- /dev/null
@@ -0,0 +1,8 @@
+ 4 -20 50 -99 170 -273 423 -658 1088 -2242 32453 2628 -1190 706 -452 292 -183 108 -56 24 -6 0 0\r
+ 0 0 0 0 0 0 0 0 0 0 0 32767 0 0 0 0 0 0 0 0 0 0 0\r
+ 0 0 -6 24 -56 108 -183 292 -452 706 -1190 2628 32453 -2242 1088 -658 423 -273 170 -99 50 -20 4\r
+ 0 0 8 -53 145 -297 524 -851 1326 -2054 3324 -6328 27878 12228 -4766 2732 -1731 1120 -710 426 -230 103 -30\r
+ 0 0 -6 24 -56 108 -183 292 -452 706 -1190 2628 32453 -2242 1088 -658 423 -273 170 -99 50 -20 4\r
+ 0 0 0 0 0 0 0 0 0 0 0 32767 0 0 0 0 0 0 0 0 0 0 0\r
+ 4 -20 50 -99 170 -273 423 -658 1088 -2242 32453 2628 -1190 706 -452 292 -183 108 -56 24 -6 0 0\r
+ -30 103 -230 426 -710 1120 -1731 2732 -4766 12228 27878 -6328 3324 -2054 1326 -851 524 -297 145 -53 8 0 0\r
diff --git a/file_demo_bios/k2g/filters/fir16L8g3p150.log b/file_demo_bios/k2g/filters/fir16L8g3p150.log
--- /dev/null
@@ -0,0 +1,8 @@
+ 8 -54 152 -312 554 -902 1407 -2178 3513 -6613 26596 14027 -5285 3007 -1902 1231 -782 470 -255 116 -35 0 0\r
+ 0 8 -54 150 -310 548 -893 1392 -2155 3478 -6563 26879 13643 -5179 2952 -1868 1209 -767 461 -250 113 -34 0\r
+ 0 0 6 -32 82 -162 280 -451 700 -1087 1788 -3605 31832 4748 -2086 1228 -784 507 -319 189 -100 42 -11\r
+ 0 0 8 -50 134 -273 479 -776 1208 -1872 3041 -5866 29149 10250 -4136 2388 -1517 981 -621 371 -199 88 -25\r
+ 0 0 -35 116 -255 470 -782 1231 -1902 3007 -5285 14027 26596 -6613 3513 -2178 1407 -902 554 -312 152 -54 8\r
+ 0 -34 113 -250 461 -767 1209 -1868 2952 -5179 13643 26879 -6563 3478 -2155 1392 -893 548 -310 150 -54 8 0\r
+ -11 42 -100 189 -319 507 -784 1228 -2086 4748 31832 -3605 1788 -1087 700 -451 280 -162 82 -32 6 0 0\r
+ -25 88 -199 371 -621 981 -1517 2388 -4136 10250 29149 -5866 3041 -1872 1208 -776 479 -273 134 -50 8 0 0\r
diff --git a/file_demo_bios/k2g/filters/fir16L8g3p180.log b/file_demo_bios/k2g/filters/fir16L8g3p180.log
--- /dev/null
@@ -0,0 +1,8 @@
+ 0 0 0 0 0 0 0 0 0 0 0 32767 0 0 0 0 0 0 0 0 0 0 0\r
+ 0 0 -6 24 -56 108 -183 292 -452 706 -1190 2628 32453 -2242 1088 -658 423 -273 170 -99 50 -20 4\r
+ 0 0 8 -53 145 -297 524 -851 1326 -2054 3324 -6328 27878 12228 -4766 2732 -1731 1120 -710 426 -230 103 -30\r
+ 0 0 -6 24 -56 108 -183 292 -452 706 -1190 2628 32453 -2242 1088 -658 423 -273 170 -99 50 -20 4\r
+ 0 0 0 0 0 0 0 0 0 0 0 32767 0 0 0 0 0 0 0 0 0 0 0\r
+ 4 -20 50 -99 170 -273 423 -658 1088 -2242 32453 2628 -1190 706 -452 292 -183 108 -56 24 -6 0 0\r
+ -30 103 -230 426 -710 1120 -1731 2732 -4766 12228 27878 -6328 3324 -2054 1326 -851 524 -297 145 -53 8 0 0\r
+ 4 -20 50 -99 170 -273 423 -658 1088 -2242 32453 2628 -1190 706 -452 292 -183 108 -56 24 -6 0 0\r
diff --git a/file_demo_bios/k2g/filters/fir16L8g3p30.log b/file_demo_bios/k2g/filters/fir16L8g3p30.log
--- /dev/null
@@ -0,0 +1,8 @@
+ 8 -54 152 -312 554 -902 1407 -2178 3513 -6613 26596 14027 -5285 3007 -1902 1231 -782 470 -255 116 -35 0 0\r
+ -25 88 -199 371 -621 981 -1517 2388 -4136 10250 29149 -5866 3041 -1872 1208 -776 479 -273 134 -50 8 0 0\r
+ -11 42 -100 189 -319 507 -784 1228 -2086 4748 31832 -3605 1788 -1087 700 -451 280 -162 82 -32 6 0 0\r
+ 0 -34 113 -250 461 -767 1209 -1868 2952 -5179 13643 26879 -6563 3478 -2155 1392 -893 548 -310 150 -54 8 0\r
+ 0 0 -35 116 -255 470 -782 1231 -1902 3007 -5285 14027 26596 -6613 3513 -2178 1407 -902 554 -312 152 -54 8\r
+ 0 0 8 -50 134 -273 479 -776 1208 -1872 3041 -5866 29149 10250 -4136 2388 -1517 981 -621 371 -199 88 -25\r
+ 0 0 6 -32 82 -162 280 -451 700 -1087 1788 -3605 31832 4748 -2086 1228 -784 507 -319 189 -100 42 -11\r
+ 0 8 -54 150 -310 548 -893 1392 -2155 3478 -6563 26879 13643 -5179 2952 -1868 1209 -767 461 -250 113 -34 0\r
diff --git a/file_demo_bios/k2g/filters/fir16L8g3p45.log b/file_demo_bios/k2g/filters/fir16L8g3p45.log
--- /dev/null
@@ -0,0 +1,8 @@
+ 4 -20 50 -99 170 -273 423 -658 1088 -2242 32453 2628 -1190 706 -452 292 -183 108 -56 24 -6 0 0\r
+ -30 103 -230 426 -710 1120 -1731 2732 -4766 12228 27878 -6328 3324 -2054 1326 -851 524 -297 145 -53 8 0 0\r
+ 4 -20 50 -99 170 -273 423 -658 1088 -2242 32453 2628 -1190 706 -452 292 -183 108 -56 24 -6 0 0\r
+ 0 0 0 0 0 0 0 0 0 0 0 32767 0 0 0 0 0 0 0 0 0 0 0\r
+ 0 0 -6 24 -56 108 -183 292 -452 706 -1190 2628 32453 -2242 1088 -658 423 -273 170 -99 50 -20 4\r
+ 0 0 8 -53 145 -297 524 -851 1326 -2054 3324 -6328 27878 12228 -4766 2732 -1731 1120 -710 426 -230 103 -30\r
+ 0 0 -6 24 -56 108 -183 292 -452 706 -1190 2628 32453 -2242 1088 -658 423 -273 170 -99 50 -20 4\r
+ 0 0 0 0 0 0 0 0 0 0 0 32767 0 0 0 0 0 0 0 0 0 0 0\r
diff --git a/file_demo_bios/k2g/filters/fir16L8g3p60.log b/file_demo_bios/k2g/filters/fir16L8g3p60.log
--- /dev/null
@@ -0,0 +1,8 @@
+ -11 42 -100 189 -319 507 -784 1228 -2086 4748 31832 -3605 1788 -1087 700 -451 280 -162 82 -32 6 0 0\r
+ -25 88 -199 371 -621 981 -1517 2388 -4136 10250 29149 -5866 3041 -1872 1208 -776 479 -273 134 -50 8 0 0\r
+ 8 -54 152 -312 554 -902 1407 -2178 3513 -6613 26596 14027 -5285 3007 -1902 1231 -782 470 -255 116 -35 0 0\r
+ 0 8 -54 150 -310 548 -893 1392 -2155 3478 -6563 26879 13643 -5179 2952 -1868 1209 -767 461 -250 113 -34 0\r
+ 0 0 6 -32 82 -162 280 -451 700 -1087 1788 -3605 31832 4748 -2086 1228 -784 507 -319 189 -100 42 -11\r
+ 0 0 8 -50 134 -273 479 -776 1208 -1872 3041 -5866 29149 10250 -4136 2388 -1517 981 -621 371 -199 88 -25\r
+ 0 0 -35 116 -255 470 -782 1231 -1902 3007 -5285 14027 26596 -6613 3513 -2178 1407 -902 554 -312 152 -54 8\r
+ 0 -34 113 -250 461 -767 1209 -1868 2952 -5179 13643 26879 -6563 3478 -2155 1392 -893 548 -310 150 -54 8 0\r
diff --git a/file_demo_bios/k2g/filters/fir16L8g3p90.log b/file_demo_bios/k2g/filters/fir16L8g3p90.log
--- /dev/null
@@ -0,0 +1,8 @@
+ -30 103 -230 426 -710 1120 -1731 2732 -4766 12228 27878 -6328 3324 -2054 1326 -851 524 -297 145 -53 8 0 0\r
+ 4 -20 50 -99 170 -273 423 -658 1088 -2242 32453 2628 -1190 706 -452 292 -183 108 -56 24 -6 0 0\r
+ 0 0 0 0 0 0 0 0 0 0 0 32767 0 0 0 0 0 0 0 0 0 0 0\r
+ 0 0 -6 24 -56 108 -183 292 -452 706 -1190 2628 32453 -2242 1088 -658 423 -273 170 -99 50 -20 4\r
+ 0 0 8 -53 145 -297 524 -851 1326 -2054 3324 -6328 27878 12228 -4766 2732 -1731 1120 -710 426 -230 103 -30\r
+ 0 0 -6 24 -56 108 -183 292 -452 706 -1190 2628 32453 -2242 1088 -658 423 -273 170 -99 50 -20 4\r
+ 0 0 0 0 0 0 0 0 0 0 0 32767 0 0 0 0 0 0 0 0 0 0 0\r
+ 4 -20 50 -99 170 -273 423 -658 1088 -2242 32453 2628 -1190 706 -452 292 -183 108 -56 24 -6 0 0\r
diff --git a/file_demo_bios/k2g/main.c b/file_demo_bios/k2g/main.c
--- /dev/null
@@ -0,0 +1,134 @@
+/*
+ * ======== main.c ========
+ */
+
+
+/* System header files */
+#include <xdc/std.h>
+
+#include <xdc/runtime/Error.h>
+#include <xdc/runtime/System.h>
+
+/*----------------------------------------
+ * BIOS header files
+ *----------------------------------------*/
+
+#include <ti/sysbios/BIOS.h> /* mandatory - if you call APIs like BIOS_start() */
+
+/* Portable data types */
+#include <ti/mas/types/types.h>
+#include <ti/mas/util/ecomem.h>
+
+#include "components/fil.h"
+#include "components/sys.h"
+
+/* Global System Configuration Structure */
+sysConfig_t sysConfig = {
+ SYS_MICS_MAX, /* #microphones */
+ SYS_VMICS_MAX, /* #virtual microphones */
+ FALSE, /* Do not use file I/O to load files (must use GEL to load into memory) */
+ TRUE /* Use default angles for microphone configurations */
+};
+
+/* Global FILE I/O Configuration Structure (must be configured even when file I/O not used */
+filConfig_t filConfig = {
+ FIL_LENGTH_MAX, /* number of samples to load from a file */
+ SYS_MICS_MAX, /* number of files to use */
+ TRUE, /* big endian */
+ FALSE, /* do not wrap around */
+ 40*SYS_FS_HZ /* Process 40s of the signal (current mic input file length */
+};
+
+/* Miocrophone input files names (in case we want to use FILE I/O to load into memory */
+char *filNames[FIL_MAX] = {
+ "../t8/y16L8g3m7090_1.pcm",
+ "../t8/y16L8g3m7090_2.pcm",
+ "../t8/y16L8g3m7090_3.pcm",
+ "../t8/y16L8g3m7090_4.pcm",
+ "../t8/y16L8g3m7090_5.pcm",
+ "../t8/y16L8g3m7090_6.pcm",
+ "../t8/y16L8g3m7090_7.pcm",
+ "../t8/y16L8g3m7090_8.pcm"
+};
+
+/* Acoustic environment */
+/* Room Size (X,Y,Z) in meters */
+/* 5.2000 4.3000 2.7000 */
+
+/* Table size (X,Y,Z) in meters */
+/* 3.0000 2.4000 0.7600 */
+
+/* "Echo" generating speaker position (X,Y,Z) in meters */
+/* 0 2.1500 1.2172 180 -90 VM-9 */
+
+/* People positions (X,Y,Z) in meters and angles relative to the table and array */
+/* 1.8200 0.6452 1.2172 position#1 (person#1) -123.6056 -146.3944 VM-7
+ 2.8200 0.6452 1.2172 -not used- -90.0000 180.0000 VM-6
+ 3.8200 0.6452 1.2172 (person#2) -56.3944 146.3944 VM-5
+ 1.8200 3.6548 1.2172 (person#3) 123.6056 -33.6056 VM-11
+ 2.8200 3.6548 1.2172 -not used- 90.0000 0.0000 VM-0
+ 3.8200 3.6548 1.2172 position#6 (person#4) 56.3944 33.6056 VM-1
+*/
+
+/* Microphone array mic positions (X,Y,Z) in meters */
+/* 2.7922 2.1500 0.7600 mic#1 ("left" most) 180
+ 2.8004 2.1304 0.7600 -135
+ 2.8200 2.1222 0.7600 ("lower" most) -90
+ 2.8396 2.1304 0.7600 -45
+ 2.8478 2.1500 0.7600 ("right" most) 0
+ 2.8396 2.1696 0.7600 45
+ 2.8200 2.1778 0.7600 ("upper" most) 90
+ 2.8004 2.1696 0.7600 mic#8 135
+*/
+/* Array Center = (2.82, 2.15, 0.76) (same as table center) */
+
+/* Noise source position (X,Y,Z) in meters */
+/* 2.6000 2.1500 2.3000 */
+
+/* Initialize FILE I/O, system context */
+static void system_init(void)
+{
+ int k, err;
+ tlong n;
+ void *fid;
+
+ fid = (void*)0xBABA; /* Just to test if we're providing fid correctly */
+ err = filCreate(&fid, &filConfig); /* Create FILE I/O context */
+ SYS_CHECK_ERROR(err);
+
+ err = sysCreate(&sysConfig); /* Create system context */
+ SYS_CHECK_ERROR(err);
+
+ err = sysPrintConfig(SYSM_SCOPE_STATIC|SYSM_SCOPE_DYNAMIC);
+ SYS_CHECK_ERROR(err);
+
+ if (sysContext.use_fileio) { /* In case we want to read directly from file (slow) */
+ for (k = 0; k < filConfig.nfiles; k++) {
+ n = filLoad(filNames[k], filConfig.length, k);
+ System_printf("Read %ld samples from %s\n", n, filNames[k]);
+ }
+ }
+ System_flush();
+ /* If we are not using FILE I/O to load mic files, we need to use GEL to load into memory. */
+
+} /* system_init */
+
+/*
+ * =============== main ==============
+ */
+int main(void)
+{
+ system_init(); /* initialize system context, etc. */
+
+ sysBfCreate(); /* Create beamformers */
+ sysAsnrCreate(); /* Create ASNR's */
+ sysMssCreate(); /* Create MSS */
+ sysVauCreate(); /* Create VAU */
+
+ BIOS_start();
+
+ return(0); /* Never to return here */
+} /* main */
+
+/* nothing past this point */
+
diff --git a/file_demo_bios/k2g/makefile.defs b/file_demo_bios/k2g/makefile.defs
--- /dev/null
@@ -0,0 +1,23 @@
+CFG_SRCDIR = ../src
+
+ifneq (,$(findstring :,$(WINDIR)$(windir)$(COMSPEC)$(comspec)))
+ # if Windows, use copy to touch file dates
+ TOUCH = copy /b $(subst /,\,$@)+,, $(subst /,\,$@)
+else
+ TOUCH = touch $@
+endif
+
+# include Config generated top-level makefile
+-include $(CFG_SRCDIR)/makefile.libs
+
+ifneq (clean,$(MAKECMDGOALS))
+# ensure this file is reloaded when .cfg files change but after config runs
+$(CFG_SRCDIR)/makefile.libs: $(GEN_OPTS) $(CFG_SRCS)
+ -@$(if $(wildcard $@),$(TOUCH),:)
+endif
+
+#add generated makefile to list of files to delete during a clean
+#GEN_MISC_FILES__QTD += "$(CFG_SRCDIR)/makefile.libs"
+
+#add generated source dir to list of directories to delete during a clean
+#GEN_MISC_DIRS__QTD += "$(CFG_SRCDIR)"
diff --git a/file_demo_bios/k2g/readme.txt b/file_demo_bios/k2g/readme.txt
--- /dev/null
@@ -0,0 +1,24 @@
+1. Download AEC-AER and VOLIB(volib_C66_2_1_0_1) from http://www.ti.com/tool/telecomlib\r
+2. Install AEC-AER and VOLIB(volib_C66_2_1_0_1) at C:\ti\r
+3. Copy noise-reduction directory to C:\ti\noise-reduction\r
+4. Download and install bios_6_45_01_29\r
+5. Download and install xdais_7_24_00_04 and xdctools_3_32_00_06_core from TI website \r
+6. Downlaod CCS 6.1.3 from TI website\r
+7. Install CCS 6.1.3 at C:\ti\r
+8. Launch CCS 6.1.3\r
+9. Import K2G_bf from C:\ti\noise-reduction\file_demo_bios\k2g\r
+10. Build the imported project\r
+11. Import the target configuration file K2G_bf.ccxml from C:\ti\noise-reduction\file_demo_bios\k2g\r
+12. Connect to the on board emulator (J1 on K2G EVM) to your PC USB\r
+13. Plug power adaptor(12V) into the K2G EVM and power on the EVM\r
+14. Launch the K2G_bf.ccxml using "Launch Selected Configuration" from CCS 6.1.3\r
+15. Then "Connect to C66xx_DSP"\r
+16. Load the K2G_bf.out from C:\ti\noise-reduction\file_demo_bios\k2g\Debug\r
+17. Execute GEL function Scripts-->Microphone Load Functions-->BFMicLoadAll to load all 8 microphone input files \r
+ (C:\ti\noise-reduction\file_demo_bios\k2g\t8\y16L8g3m7090_x.pcm) into external memory buffers\r
+18. Run the program (loaded in step 16) by pressing F8\r
+19. The program will print out the statistics and "Simulation End" when the program completes the prosessing\r
+20. Execute GEL function Scripts-->Microphone Save Functions-->BFSaveOutput to save the processed auido output from external memory buffer to a file \r
+ (C:\ti\noise-reduction\file_demo_bios\k2g\t8\fileOutput.bin)\r
+21. By default 12 virtual microphones (30 degree apart) will be used\r
+\r
diff --git a/file_demo_bios/k2g/signals/Exec1.JPG b/file_demo_bios/k2g/signals/Exec1.JPG
new file mode 100644 (file)
index 0000000..6971c70
Binary files /dev/null and b/file_demo_bios/k2g/signals/Exec1.JPG differ
index 0000000..6971c70
Binary files /dev/null and b/file_demo_bios/k2g/signals/Exec1.JPG differ
diff --git a/file_demo_bios/k2g/signals/Exec2.JPG b/file_demo_bios/k2g/signals/Exec2.JPG
new file mode 100644 (file)
index 0000000..9bd7549
Binary files /dev/null and b/file_demo_bios/k2g/signals/Exec2.JPG differ
index 0000000..9bd7549
Binary files /dev/null and b/file_demo_bios/k2g/signals/Exec2.JPG differ
diff --git a/file_demo_bios/k2g/signals/Exec3.JPG b/file_demo_bios/k2g/signals/Exec3.JPG
new file mode 100644 (file)
index 0000000..7306780
Binary files /dev/null and b/file_demo_bios/k2g/signals/Exec3.JPG differ
index 0000000..7306780
Binary files /dev/null and b/file_demo_bios/k2g/signals/Exec3.JPG differ
diff --git a/file_demo_bios/k2g/signals/msstrace.m b/file_demo_bios/k2g/signals/msstrace.m
--- /dev/null
@@ -0,0 +1,27 @@
+% MSSTRACE: Matrix A(N,5) has:\r
+%\r
+% A(:,1): time in seconds\r
+% A(:,3): selection value (0 - current mic, 1 - new mic)\r
+% A(:,5): mix idx\r
+\r
+tgood = [0 8 8 16 16 24 24 32 32 40];\r
+xgood = [-146 -146 -90 -90 146 146 -34 -34 34 34];\r
+t = A(:,1);\r
+sel = A(:,3);\r
+idx0 = find(sel == 0);\r
+idx1 = find(sel == 1);\r
+\r
+x = A(idx0,2);\r
+y = A(idx1,2);\r
+t0 = t(idx0);\r
+t1 = t(idx1);\r
+\r
+hx=stairs(t0, x, 'linew',2);\r
+hold on;\r
+hy=stairs(t1, y, 'color',[0 0.5 0]);\r
+hg=stairs(tgood,xgood,'r','linew',2);\r
+hold off;\r
+\r
+grid;\r
+\r
+% nothing past this point\r
diff --git a/file_demo_bios/k2g/signals/msstraceA12H500.csv b/file_demo_bios/k2g/signals/msstraceA12H500.csv
--- /dev/null
@@ -0,0 +1,92 @@
+Time:ulong,Error:uinteger,Source:string,DataValue:integer,AuxData1:uinteger,AuxData2:uinteger,Logger:string
+"112283269641","0","C66xx_DSP1:MSS-C: 0, G:0","0","0","0","Main Logger"
+"112283270460","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"113553245274","0","C66xx_DSP1:MSS-N: 1, G:0","180","1","6","Main Logger"
+"113563242541","0","C66xx_DSP1:MSS-N: 1, G:0","-150","1","7","Main Logger"
+"113573244013","0","C66xx_DSP1:MSS-N: 1, G:0","-120","1","8","Main Logger"
+"113583244104","0","C66xx_DSP1:MSS-N: 1, G:0","-90","1","9","Main Logger"
+"113593244230","0","C66xx_DSP1:MSS-N: 1, G:0","60","1","2","Main Logger"
+"113613242173","0","C66xx_DSP1:MSS-N: 1, G:0","90","1","3","Main Logger"
+"113633246006","0","C66xx_DSP1:MSS-N: 1, G:0","180","1","6","Main Logger"
+"113653242682","0","C66xx_DSP1:MSS-N: 1, G:0","-150","1","7","Main Logger"
+"114393304782","0","C66xx_DSP1:MSS-C: 0, G:0","-150","0","7","Main Logger"
+"114983246474","0","C66xx_DSP1:MSS-N: 1, G:0","180","1","6","Main Logger"
+"115153244842","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"115563243462","0","C66xx_DSP1:MSS-N: 1, G:0","-120","1","8","Main Logger"
+"115703248050","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"115783246925","0","C66xx_DSP1:MSS-N: 1, G:0","-150","1","7","Main Logger"
+"117383247586","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"117743250646","0","C66xx_DSP1:MSS-N: 1, G:0","-150","1","7","Main Logger"
+"117853240182","0","C66xx_DSP1:MSS-N: 1, G:0","-120","1","8","Main Logger"
+"118153245042","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"119073302670","0","C66xx_DSP1:MSS-C: 0, G:0","0","0","0","Main Logger"
+"120763244870","0","C66xx_DSP1:MSS-N: 1, G:0","-90","1","9","Main Logger"
+"121543305558","0","C66xx_DSP1:MSS-C: 0, G:0","-90","0","9","Main Logger"
+"122683245562","0","C66xx_DSP1:MSS-N: 1, G:0","-120","1","8","Main Logger"
+"122693246984","0","C66xx_DSP1:MSS-N: 1, G:0","-90","1","9","Main Logger"
+"125183246742","0","C66xx_DSP1:MSS-N: 1, G:0","-120","1","8","Main Logger"
+"125243246732","0","C66xx_DSP1:MSS-N: 1, G:0","-90","1","9","Main Logger"
+"125603243598","0","C66xx_DSP1:MSS-N: 1, G:0","-120","1","8","Main Logger"
+"125613239972","0","C66xx_DSP1:MSS-N: 1, G:0","-60","1","10","Main Logger"
+"125773244142","0","C66xx_DSP1:MSS-N: 1, G:0","-90","1","9","Main Logger"
+"126363246270","0","C66xx_DSP1:MSS-N: 1, G:0","-120","1","8","Main Logger"
+"126463245162","0","C66xx_DSP1:MSS-N: 1, G:0","-90","1","9","Main Logger"
+"126993245858","0","C66xx_DSP1:MSS-N: 1, G:0","-120","1","8","Main Logger"
+"127003244208","0","C66xx_DSP1:MSS-N: 1, G:0","-90","1","9","Main Logger"
+"127103249334","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"127143245930","0","C66xx_DSP1:MSS-N: 1, G:0","-90","1","9","Main Logger"
+"127183245922","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"127203244764","0","C66xx_DSP1:MSS-N: 1, G:0","-90","1","9","Main Logger"
+"128593246502","0","C66xx_DSP1:MSS-N: 1, G:0","150","1","5","Main Logger"
+"128643243146","0","C66xx_DSP1:MSS-N: 1, G:0","120","1","4","Main Logger"
+"129413305354","0","C66xx_DSP1:MSS-C: 0, G:0","120","0","4","Main Logger"
+"129923244102","0","C66xx_DSP1:MSS-N: 1, G:0","150","1","5","Main Logger"
+"131153305962","0","C66xx_DSP1:MSS-C: 0, G:0","150","0","5","Main Logger"
+"132953244478","0","C66xx_DSP1:MSS-N: 1, G:0","120","1","4","Main Logger"
+"132993242294","0","C66xx_DSP1:MSS-N: 1, G:0","150","1","5","Main Logger"
+"133043244058","0","C66xx_DSP1:MSS-N: 1, G:0","120","1","4","Main Logger"
+"133783305692","0","C66xx_DSP1:MSS-C: 0, G:0","120","0","4","Main Logger"
+"134293240582","0","C66xx_DSP1:MSS-N: 1, G:0","150","1","5","Main Logger"
+"135393244394","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"135403244794","0","C66xx_DSP1:MSS-N: 1, G:0","120","1","4","Main Logger"
+"136843244994","0","C66xx_DSP1:MSS-N: 1, G:0","-30","1","11","Main Logger"
+"137613304314","0","C66xx_DSP1:MSS-C: 0, G:0","-30","0","11","Main Logger"
+"138453240570","0","C66xx_DSP1:MSS-N: 1, G:0","-60","1","10","Main Logger"
+"138693240518","0","C66xx_DSP1:MSS-N: 1, G:0","-30","1","11","Main Logger"
+"138833246158","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"138873242050","0","C66xx_DSP1:MSS-N: 1, G:0","-30","1","11","Main Logger"
+"138943245714","0","C66xx_DSP1:MSS-N: 1, G:0","-60","1","10","Main Logger"
+"139043246574","0","C66xx_DSP1:MSS-N: 1, G:0","-30","1","11","Main Logger"
+"139093241834","0","C66xx_DSP1:MSS-N: 1, G:0","-60","1","10","Main Logger"
+"139293246222","0","C66xx_DSP1:MSS-N: 1, G:0","-30","1","11","Main Logger"
+"140973241114","0","C66xx_DSP1:MSS-N: 1, G:0","-60","1","10","Main Logger"
+"141173244450","0","C66xx_DSP1:MSS-N: 1, G:0","-30","1","11","Main Logger"
+"141813243226","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"141893245514","0","C66xx_DSP1:MSS-N: 1, G:0","-30","1","11","Main Logger"
+"142153246130","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"142163245542","0","C66xx_DSP1:MSS-N: 1, G:0","-30","1","11","Main Logger"
+"142213242814","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"142753244002","0","C66xx_DSP1:MSS-N: 1, G:0","-30","1","11","Main Logger"
+"142793244977","0","C66xx_DSP1:MSS-N: 1, G:0","-60","1","10","Main Logger"
+"142843241749","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"142933243350","0","C66xx_DSP1:MSS-N: 1, G:0","-30","1","11","Main Logger"
+"143143247334","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"143163243136","0","C66xx_DSP1:MSS-N: 1, G:0","-30","1","11","Main Logger"
+"143573245454","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"143633244944","0","C66xx_DSP1:MSS-N: 1, G:0","-30","1","11","Main Logger"
+"144753243902","0","C66xx_DSP1:MSS-N: 1, G:0","30","1","1","Main Logger"
+"145163244482","0","C66xx_DSP1:MSS-N: 1, G:0","60","1","2","Main Logger"
+"145513242606","0","C66xx_DSP1:MSS-N: 1, G:0","30","1","1","Main Logger"
+"146303308192","0","C66xx_DSP1:MSS-C: 0, G:0","30","0","1","Main Logger"
+"148693246174","0","C66xx_DSP1:MSS-N: 1, G:0","60","1","2","Main Logger"
+"148733242530","0","C66xx_DSP1:MSS-N: 1, G:0","30","1","1","Main Logger"
+"148903246930","0","C66xx_DSP1:MSS-N: 1, G:0","60","1","2","Main Logger"
+"148923242566","0","C66xx_DSP1:MSS-N: 1, G:0","30","1","1","Main Logger"
+"149153244214","0","C66xx_DSP1:MSS-N: 1, G:0","60","1","2","Main Logger"
+"149163242333","0","C66xx_DSP1:MSS-N: 1, G:0","30","1","1","Main Logger"
+"149373241122","0","C66xx_DSP1:MSS-N: 1, G:0","60","1","2","Main Logger"
+"149383243505","0","C66xx_DSP1:MSS-N: 1, G:0","30","1","1","Main Logger"
+"149403243090","0","C66xx_DSP1:MSS-N: 1, G:0","60","1","2","Main Logger"
+"150233306138","0","C66xx_DSP1:MSS-C: 0, G:0","60","0","2","Main Logger"
+"150743248122","0","C66xx_DSP1:MSS-N: 1, G:0","30","1","1","Main Logger"
+"150793243685","0","C66xx_DSP1:MSS-N: 1, G:0","60","1","2","Main Logger"
diff --git a/file_demo_bios/k2g/signals/msstraceA12H500.xlsx b/file_demo_bios/k2g/signals/msstraceA12H500.xlsx
new file mode 100644 (file)
index 0000000..bdbd283
Binary files /dev/null and b/file_demo_bios/k2g/signals/msstraceA12H500.xlsx differ
index 0000000..bdbd283
Binary files /dev/null and b/file_demo_bios/k2g/signals/msstraceA12H500.xlsx differ
diff --git a/file_demo_bios/k2g/signals/msstraceA8H500.csv b/file_demo_bios/k2g/signals/msstraceA8H500.csv
--- /dev/null
@@ -0,0 +1,96 @@
+Time:ulong,Error:uinteger,Source:string,DataValue:integer,AuxData1:uinteger,AuxData2:uinteger,Logger:string
+"40873607173","0","C66xx_DSP1:MSS-C: 0, G:0","0","0","0","Main Logger"
+"40873607781","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"42143582844","0","C66xx_DSP1:MSS-N: 1, G:0","180","1","4","Main Logger"
+"42153579564","0","C66xx_DSP1:MSS-N: 1, G:0","-135","1","5","Main Logger"
+"42173582072","0","C66xx_DSP1:MSS-N: 1, G:0","-90","1","6","Main Logger"
+"42183581444","0","C66xx_DSP1:MSS-N: 1, G:0","45","1","1","Main Logger"
+"42203577672","0","C66xx_DSP1:MSS-N: 1, G:0","90","1","2","Main Logger"
+"42223581124","0","C66xx_DSP1:MSS-N: 1, G:0","180","1","4","Main Logger"
+"42273579724","0","C66xx_DSP1:MSS-N: 1, G:0","-135","1","5","Main Logger"
+"43013643532","0","C66xx_DSP1:MSS-C: 0, G:0","-135","0","5","Main Logger"
+"43563579328","0","C66xx_DSP1:MSS-N: 1, G:0","180","1","4","Main Logger"
+"43763581580","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"44023580172","0","C66xx_DSP1:MSS-N: 1, G:0","-135","1","5","Main Logger"
+"44213581820","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"44453579424","0","C66xx_DSP1:MSS-N: 1, G:0","-135","1","5","Main Logger"
+"45973580588","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"46333584792","0","C66xx_DSP1:MSS-N: 1, G:0","-135","1","5","Main Logger"
+"46703580060","0","C66xx_DSP1:MSS-N: 1, G:0","180","1","4","Main Logger"
+"46713582364","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"47653639316","0","C66xx_DSP1:MSS-C: 0, G:0","0","0","0","Main Logger"
+"49353581324","0","C66xx_DSP1:MSS-N: 1, G:0","-90","1","6","Main Logger"
+"50133642372","0","C66xx_DSP1:MSS-C: 0, G:0","-90","0","6","Main Logger"
+"51273581884","0","C66xx_DSP1:MSS-N: 1, G:0","-135","1","5","Main Logger"
+"51283580036","0","C66xx_DSP1:MSS-N: 1, G:0","-90","1","6","Main Logger"
+"54193581032","0","C66xx_DSP1:MSS-N: 1, G:0","-45","1","7","Main Logger"
+"54333583348","0","C66xx_DSP1:MSS-N: 1, G:0","-90","1","6","Main Logger"
+"54993580432","0","C66xx_DSP1:MSS-N: 1, G:0","-135","1","5","Main Logger"
+"55013582428","0","C66xx_DSP1:MSS-N: 1, G:0","-90","1","6","Main Logger"
+"55693586268","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"55733582880","0","C66xx_DSP1:MSS-N: 1, G:0","-90","1","6","Main Logger"
+"55773583232","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"55793580137","0","C66xx_DSP1:MSS-N: 1, G:0","-90","1","6","Main Logger"
+"57183581668","0","C66xx_DSP1:MSS-N: 1, G:0","130","1","3","Main Logger"
+"57923639736","0","C66xx_DSP1:MSS-C: 0, G:0","130","0","3","Main Logger"
+"58613583772","0","C66xx_DSP1:MSS-N: 1, G:0","180","1","4","Main Logger"
+"58623580540","0","C66xx_DSP1:MSS-N: 1, G:0","130","1","3","Main Logger"
+"58933583294","0","C66xx_DSP1:MSS-N: 1, G:0","180","1","4","Main Logger"
+"58953580414","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"59173584396","0","C66xx_DSP1:MSS-N: 1, G:0","130","1","3","Main Logger"
+"59353581484","0","C66xx_DSP1:MSS-N: 1, G:0","180","1","4","Main Logger"
+"59363579689","0","C66xx_DSP1:MSS-N: 1, G:0","90","1","2","Main Logger"
+"59373582882","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"59553581296","0","C66xx_DSP1:MSS-N: 1, G:0","130","1","3","Main Logger"
+"59683581212","0","C66xx_DSP1:MSS-N: 1, G:0","180","1","4","Main Logger"
+"59693582458","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"59853584804","0","C66xx_DSP1:MSS-N: 1, G:0","130","1","3","Main Logger"
+"62093585652","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"62113581312","0","C66xx_DSP1:MSS-N: 1, G:0","180","1","4","Main Logger"
+"62123580196","0","C66xx_DSP1:MSS-N: 1, G:0","130","1","3","Main Logger"
+"62283580720","0","C66xx_DSP1:MSS-N: 1, G:0","180","1","4","Main Logger"
+"62303580214","0","C66xx_DSP1:MSS-N: 1, G:0","-135","1","5","Main Logger"
+"62313581920","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"62903580560","0","C66xx_DSP1:MSS-N: 1, G:0","130","1","3","Main Logger"
+"62993581844","0","C66xx_DSP1:MSS-N: 1, G:0","-135","1","5","Main Logger"
+"63013580446","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"63273579644","0","C66xx_DSP1:MSS-N: 1, G:0","130","1","3","Main Logger"
+"63323579728","0","C66xx_DSP1:MSS-N: 1, G:0","-135","1","5","Main Logger"
+"63373582529","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"63393580060","0","C66xx_DSP1:MSS-N: 1, G:0","45","1","1","Main Logger"
+"63403581248","0","C66xx_DSP1:MSS-N: 1, G:0","130","1","3","Main Logger"
+"63523579276","0","C66xx_DSP1:MSS-N: 1, G:0","45","1","1","Main Logger"
+"63543581996","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"64333641420","0","C66xx_DSP1:MSS-C: 0, G:0","0","0","0","Main Logger"
+"65433581456","0","C66xx_DSP1:MSS-N: 1, G:0","-45","1","7","Main Logger"
+"66173639236","0","C66xx_DSP1:MSS-C: 0, G:0","-45","0","7","Main Logger"
+"67423581636","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"67463579160","0","C66xx_DSP1:MSS-N: 1, G:0","-45","1","7","Main Logger"
+"67823581960","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"67883578934","0","C66xx_DSP1:MSS-N: 1, G:0","-45","1","7","Main Logger"
+"70363579568","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"70583579636","0","C66xx_DSP1:MSS-N: 1, G:0","-45","1","7","Main Logger"
+"70743580592","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"70763580408","0","C66xx_DSP1:MSS-N: 1, G:0","-45","1","7","Main Logger"
+"70803580504","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"71243578872","0","C66xx_DSP1:MSS-N: 1, G:0","-45","1","7","Main Logger"
+"71303580784","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"71323580414","0","C66xx_DSP1:MSS-N: 1, G:0","-45","1","7","Main Logger"
+"71413583901","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"71533584672","0","C66xx_DSP1:MSS-N: 1, G:0","-45","1","7","Main Logger"
+"71593580802","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"71613582608","0","C66xx_DSP1:MSS-N: 1, G:0","-45","1","7","Main Logger"
+"71743581412","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"71753579774","0","C66xx_DSP1:MSS-N: 1, G:0","-45","1","7","Main Logger"
+"72163581636","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"72223581530","0","C66xx_DSP1:MSS-N: 1, G:0","-45","1","7","Main Logger"
+"73343580884","0","C66xx_DSP1:MSS-N: 1, G:0","45","1","1","Main Logger"
+"74083638800","0","C66xx_DSP1:MSS-C: 0, G:0","45","0","1","Main Logger"
+"75223582292","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"75283580416","0","C66xx_DSP1:MSS-N: 1, G:0","45","1","1","Main Logger"
+"78083579492","0","C66xx_DSP1:MSS-N: 1, G:0","90","1","2","Main Logger"
+"78103580728","0","C66xx_DSP1:MSS-N: 1, G:0","45","1","1","Main Logger"
+"78663580892","0","C66xx_DSP1:MSS-N: 1, G:0","90","1","2","Main Logger"
+"78673581221","0","C66xx_DSP1:MSS-N: 1, G:0","45","1","1","Main Logger"
+"79363580240","0","C66xx_DSP1:MSS-N: 1, G:0","0","1","0","Main Logger"
+"79383580197","0","C66xx_DSP1:MSS-N: 1, G:0","45","1","1","Main Logger"
diff --git a/file_demo_bios/k2g/signals/msstraceA8H500.xlsx b/file_demo_bios/k2g/signals/msstraceA8H500.xlsx
new file mode 100644 (file)
index 0000000..7d20c1b
Binary files /dev/null and b/file_demo_bios/k2g/signals/msstraceA8H500.xlsx differ
index 0000000..7d20c1b
Binary files /dev/null and b/file_demo_bios/k2g/signals/msstraceA8H500.xlsx differ
diff --git a/file_demo_bios/da830/signals/outmssA12H500.pcm b/file_demo_bios/k2g/signals/outmssA12H500.pcm
similarity index 100%
rename from file_demo_bios/da830/signals/outmssA12H500.pcm
rename to file_demo_bios/k2g/signals/outmssA12H500.pcm
rename from file_demo_bios/da830/signals/outmssA12H500.pcm
rename to file_demo_bios/k2g/signals/outmssA12H500.pcm
diff --git a/file_demo_bios/da830/signals/outmssA8H500.pcm b/file_demo_bios/k2g/signals/outmssA8H500.pcm
similarity index 100%
rename from file_demo_bios/da830/signals/outmssA8H500.pcm
rename to file_demo_bios/k2g/signals/outmssA8H500.pcm
rename from file_demo_bios/da830/signals/outmssA8H500.pcm
rename to file_demo_bios/k2g/signals/outmssA8H500.pcm
diff --git a/file_demo_bios/da830/signals/outvauA12H500.pcm b/file_demo_bios/k2g/signals/outvauA12H500.pcm
similarity index 100%
rename from file_demo_bios/da830/signals/outvauA12H500.pcm
rename to file_demo_bios/k2g/signals/outvauA12H500.pcm
rename from file_demo_bios/da830/signals/outvauA12H500.pcm
rename to file_demo_bios/k2g/signals/outvauA12H500.pcm
diff --git a/file_demo_bios/k2g/signals/profile.xlsx b/file_demo_bios/k2g/signals/profile.xlsx
new file mode 100644 (file)
index 0000000..4453004
Binary files /dev/null and b/file_demo_bios/k2g/signals/profile.xlsx differ
index 0000000..4453004
Binary files /dev/null and b/file_demo_bios/k2g/signals/profile.xlsx differ
diff --git a/file_demo_bios/k2g/signals/trace.JPG b/file_demo_bios/k2g/signals/trace.JPG
new file mode 100644 (file)
index 0000000..9a5a2ad
Binary files /dev/null and b/file_demo_bios/k2g/signals/trace.JPG differ
index 0000000..9a5a2ad
Binary files /dev/null and b/file_demo_bios/k2g/signals/trace.JPG differ
diff --git a/file_demo_bios/k2g/src/.exclude b/file_demo_bios/k2g/src/.exclude
--- /dev/null
@@ -0,0 +1 @@
+This file exists to prevent Eclipse/CDT from adding the C sources contained in this directory (or below) to any enclosing project.
diff --git a/file_demo_bios/k2g/src/makefile.libs b/file_demo_bios/k2g/src/makefile.libs
--- /dev/null
@@ -0,0 +1,62 @@
+#
+# This file was generated based on the configuration script:
+# C:\ti\noise-reduction\file_demo_bios\k2g\app.cfg
+#
+# This makefile may be included in other makefiles that need to build
+# the libraries containing the compiled source files generated as
+# part of the configuration step.
+
+#
+# ======== GEN_SRC_DIR =========
+# The path to the sources generated during configuration
+#
+# This path must be either absolute or relative to the build directory.
+#
+# The absolute path to the generated source directory (at the time the
+# sources were generated) is:
+# C:\ti\noise-reduction\file_demo_bios\k2g\src
+#
+GEN_SRC_DIR ?= ../src
+
+ifeq (,$(wildcard $(GEN_SRC_DIR)))
+$(error "ERROR: GEN_SRC_DIR must be set to the directory containing the generated sources")
+endif
+
+#
+# ======== .force ========
+# The .force goal is used to force the build of any goal that names it as
+# a prerequisite
+#
+.PHONY: .force
+
+#
+# ======== library macros ========
+#
+sysbios_SRC = $(GEN_SRC_DIR)/sysbios
+sysbios_LIB = $(GEN_SRC_DIR)/sysbios/sysbios.ae66
+
+#
+# ======== dependencies ========
+#
+all: $(sysbios_LIB)
+clean: .sysbios_clean
+
+
+# ======== convenient build goals ========
+.PHONY: sysbios
+sysbios: $(GEN_SRC_DIR)/sysbios/sysbios.ae66
+
+# CDT managed make executables depend on $(OBJS)
+OBJS += $(sysbios_LIB)
+
+#
+# ======== rules ========
+#
+$(sysbios_LIB): .force
+ @echo making $@ ...
+ @$(MAKE) -C $(sysbios_SRC)
+
+.sysbios_clean:
+ @echo cleaning $(sysbios_SRC) ...
+ -@$(MAKE) --no-print-directory -C $(sysbios_SRC) clean
+
diff --git a/file_demo_bios/k2g/src/sysbios/makefile b/file_demo_bios/k2g/src/sysbios/makefile
--- /dev/null
@@ -0,0 +1,104 @@
+
+XOPTS = -I"C:/ti/xdctools_3_32_00_06_core/packages/" -Dxdc_target_types__=C:/ti/bios_6_45_01_29/packages/ti/targets/elf/std.h -Dxdc_target_name__=C66
+
+vpath % C:/ti/bios_6_45_01_29/packages/ti/sysbios/
+vpath %.c C:/ti/xdctools_3_32_00_06_core/packages/
+
+CCOPTS = -mv6600 --abi=eabi -q -mi10 -mo -pdr -pden -pds=238 -pds=880 -pds1110 --program_level_compile -o3 -g --optimize_with_debug -Dti_sysbios_knl_Task_minimizeLatency__D=FALSE -Dti_sysbios_family_c64p_Exception_enableExternalMPC__D=FALSE -Dti_sysbios_family_c64p_Exception_enablePrint__D=TRUE -Dti_sysbios_knl_Clock_stopCheckNext__D=FALSE
+
+XDC_ROOT = C:/ti/xdctools_3_32_00_06_core/packages/
+
+BIOS_ROOT = C:/ti/bios_6_45_01_29/packages/ti/sysbios/
+
+BIOS_DEFS = -Dti_sysbios_BIOS_swiEnabled__D=TRUE -Dti_sysbios_BIOS_taskEnabled__D=TRUE -Dti_sysbios_BIOS_clockEnabled__D=TRUE -Dti_sysbios_BIOS_runtimeCreatesEnabled__D=TRUE -Dti_sysbios_hal_Hwi_DISABLE_ALL_HOOKS -Dti_sysbios_knl_Swi_DISABLE_ALL_HOOKS -Dti_sysbios_BIOS_smpEnabled__D=FALSE -Dti_sysbios_Build_useHwiMacros -Dti_sysbios_knl_Swi_numPriorities__D=16 -Dti_sysbios_knl_Task_deleteTerminatedTasks__D=FALSE -Dti_sysbios_knl_Task_numPriorities__D=16 -Dti_sysbios_knl_Task_checkStackFlag__D=TRUE -Dti_sysbios_knl_Task_initStackFlag__D=TRUE -Dti_sysbios_knl_Task_DISABLE_ALL_HOOKS -Dti_sysbios_knl_Clock_TICK_SOURCE=ti_sysbios_knl_Clock_TickSource_TIMER -Dti_sysbios_knl_Clock_TICK_MODE=ti_sysbios_knl_Clock_TickMode_PERIODIC -Dti_sysbios_hal_Core_delegate_getId=ti_sysbios_hal_CoreNull_getId__E -Dti_sysbios_hal_Core_delegate_interruptCore=ti_sysbios_hal_CoreNull_interruptCore__E -Dti_sysbios_hal_Core_delegate_lock=ti_sysbios_hal_CoreNull_lock__E -Dti_sysbios_hal_Core_delegate_unlock=ti_sysbios_hal_CoreNull_unlock__E -Dti_sysbios_hal_Core_numCores__D=1 -Dti_sysbios_hal_CoreNull_numCores__D=1 -Dti_sysbios_utils_Load_taskEnabled__D=FALSE -Dti_sysbios_utils_Load_swiEnabled__D=FALSE -Dti_sysbios_utils_Load_hwiEnabled__D=FALSE -Dti_sysbios_family_c64p_Hwi_dispatcherSwiSupport__D=TRUE -Dti_sysbios_family_c64p_Hwi_dispatcherTaskSupport__D=TRUE -Dti_sysbios_family_c64p_Hwi_dispatcherAutoNestingSupport__D=TRUE -Dti_sysbios_family_c64p_Hwi_dispatcherIrpTrackingSupport__D=TRUE -Dti_sysbios_knl_Semaphore_supportsEvents__D=FALSE -Dti_sysbios_knl_Semaphore_supportsPriority__D=TRUE
+
+BIOS_INC = -I"C:/ti/bios_6_45_01_29/packages/"
+
+TARGET_INC = -I"C:/ti/bios_6_45_01_29/packages/"
+
+INCS = $(BIOS_INC) $(TARGET_INC)
+
+CC = C:/ti/ccsv6/tools/compiler/ti-cgt-c6000_8.1.0/bin/cl6x -c $(CCOPTS) -I C:/ti/ccsv6/tools/compiler/ti-cgt-c6000_8.1.0/include
+ASM = C:/ti/ccsv6/tools/compiler/ti-cgt-c6000_8.1.0/bin/cl6x -c $(CCOPTS) -I C:/ti/ccsv6/tools/compiler/ti-cgt-c6000_8.1.0/include
+AR = C:/ti/ccsv6/tools/compiler/ti-cgt-c6000_8.1.0/bin/ar6x rq
+
+DEL = C:/ti/xdctools_3_32_00_06_core/packages/../bin/rm -f
+CP = C:/ti/xdctools_3_32_00_06_core/packages/../bin/cp -f
+
+define RM
+ $(if $(wildcard $1),$(DEL) $1,:)
+endef
+
+define ASSEMBLE
+ @echo asme66 $< ...
+ @$(ASM) $(BIOS_DEFS) $(XOPTS) $(INCS) $<
+endef
+
+all: sysbios.ae66
+
+c64p_Exception_asm.obj: family/c64p/Exception_asm.s64P makefile
+ @-$(call RM, $@)
+ $(ASSEMBLE) --output_file=c64p_Exception_asm.obj
+
+c64p_Hwi_asm.obj: family/c64p/Hwi_asm.s62 makefile
+ @-$(call RM, $@)
+ $(ASSEMBLE) --output_file=c64p_Hwi_asm.obj
+
+c64p_Hwi_asm_switch.obj: family/c64p/Hwi_asm_switch.s62 makefile
+ @-$(call RM, $@)
+ $(ASSEMBLE) --output_file=c64p_Hwi_asm_switch.obj
+
+c64p_Hwi_disp_always.obj: family/c64p/Hwi_disp_always.s64P makefile
+ @-$(call RM, $@)
+ $(ASSEMBLE) --output_file=c64p_Hwi_disp_always.obj
+
+c62_TaskSupport_asm.obj: family/c62/TaskSupport_asm.s62 makefile
+ @-$(call RM, $@)
+ $(ASSEMBLE) --output_file=c62_TaskSupport_asm.obj
+
+timer64_Timer_asm.obj: timers/timer64/Timer_asm.s64P makefile
+ @-$(call RM, $@)
+ $(ASSEMBLE) --output_file=timer64_Timer_asm.obj
+
+
+BIOS.obj: BIOS.c family/c64p/Exception.c family/c64p/Hwi.c family/c64p/Hwi_startup.c family/c64p/TimestampProvider.c knl/Clock.c knl/Idle.c knl/Intrinsics.c knl/Event.c knl/Queue.c knl/Semaphore.c knl/Swi.c knl/Swi_andn.c knl/Task.c hal/Hwi.c hal/Hwi_stack.c hal/Hwi_startup.c utils/Load.c utils/Load_CPU.c gates/GateHwi.c gates/GateMutex.c family/c66/Cache.c family/c62/TaskSupport.c family/c62/IntrinsicsSupport.c heaps/HeapMem.c timers/timer64/Timer.c family/c64p/tci6488/TimerSupport.c makefile
+ @-$(call RM, $@)
+ @echo cle66 $< ...
+ @$(CC) $(BIOS_DEFS) $(XOPTS) $(INCS) \
+ $(BIOS_ROOT)BIOS.c \
+ $(BIOS_ROOT)family/c64p/Exception.c \
+ $(BIOS_ROOT)family/c64p/Hwi.c \
+ $(BIOS_ROOT)family/c64p/Hwi_startup.c \
+ $(BIOS_ROOT)family/c64p/TimestampProvider.c \
+ $(BIOS_ROOT)knl/Clock.c \
+ $(BIOS_ROOT)knl/Idle.c \
+ $(BIOS_ROOT)knl/Intrinsics.c \
+ $(BIOS_ROOT)knl/Event.c \
+ $(BIOS_ROOT)knl/Queue.c \
+ $(BIOS_ROOT)knl/Semaphore.c \
+ $(BIOS_ROOT)knl/Swi.c \
+ $(BIOS_ROOT)knl/Swi_andn.c \
+ $(BIOS_ROOT)knl/Task.c \
+ $(BIOS_ROOT)hal/Hwi.c \
+ $(BIOS_ROOT)hal/Hwi_stack.c \
+ $(BIOS_ROOT)hal/Hwi_startup.c \
+ $(BIOS_ROOT)utils/Load.c \
+ $(BIOS_ROOT)utils/Load_CPU.c \
+ $(BIOS_ROOT)gates/GateHwi.c \
+ $(BIOS_ROOT)gates/GateMutex.c \
+ $(BIOS_ROOT)family/c66/Cache.c \
+ $(BIOS_ROOT)family/c62/TaskSupport.c \
+ $(BIOS_ROOT)family/c62/IntrinsicsSupport.c \
+ $(BIOS_ROOT)heaps/HeapMem.c \
+ $(BIOS_ROOT)timers/timer64/Timer.c \
+ $(BIOS_ROOT)family/c64p/tci6488/TimerSupport.c \
+
+sysbios.ae66: BIOS.obj c64p_Exception_asm.obj c64p_Hwi_asm.obj c64p_Hwi_asm_switch.obj c64p_Hwi_disp_always.obj c62_TaskSupport_asm.obj timer64_Timer_asm.obj
+ @-$(call RM, $@)
+ @echo are66 $^ ...
+ @$(AR) $@ $^
+
+
+clean:
+ @$(DEL) ..\makefile.libs
+ @-$(call RM, *)
diff --git a/file_demo_bios/k2g/t8/fileOutput.bin b/file_demo_bios/k2g/t8/fileOutput.bin
new file mode 100644 (file)
index 0000000..4be06b3
Binary files /dev/null and b/file_demo_bios/k2g/t8/fileOutput.bin differ
index 0000000..4be06b3
Binary files /dev/null and b/file_demo_bios/k2g/t8/fileOutput.bin differ
diff --git a/file_demo_bios/k2g/t8/y16L8g3m7090_1.pcm b/file_demo_bios/k2g/t8/y16L8g3m7090_1.pcm
new file mode 100644 (file)
index 0000000..146ad8a
Binary files /dev/null and b/file_demo_bios/k2g/t8/y16L8g3m7090_1.pcm differ
index 0000000..146ad8a
Binary files /dev/null and b/file_demo_bios/k2g/t8/y16L8g3m7090_1.pcm differ
diff --git a/file_demo_bios/k2g/t8/y16L8g3m7090_2.pcm b/file_demo_bios/k2g/t8/y16L8g3m7090_2.pcm
new file mode 100644 (file)
index 0000000..1429b3e
Binary files /dev/null and b/file_demo_bios/k2g/t8/y16L8g3m7090_2.pcm differ
index 0000000..1429b3e
Binary files /dev/null and b/file_demo_bios/k2g/t8/y16L8g3m7090_2.pcm differ
diff --git a/file_demo_bios/k2g/t8/y16L8g3m7090_3.pcm b/file_demo_bios/k2g/t8/y16L8g3m7090_3.pcm
new file mode 100644 (file)
index 0000000..d9de2c4
Binary files /dev/null and b/file_demo_bios/k2g/t8/y16L8g3m7090_3.pcm differ
index 0000000..d9de2c4
Binary files /dev/null and b/file_demo_bios/k2g/t8/y16L8g3m7090_3.pcm differ
diff --git a/file_demo_bios/k2g/t8/y16L8g3m7090_4.pcm b/file_demo_bios/k2g/t8/y16L8g3m7090_4.pcm
new file mode 100644 (file)
index 0000000..d515aff
Binary files /dev/null and b/file_demo_bios/k2g/t8/y16L8g3m7090_4.pcm differ
index 0000000..d515aff
Binary files /dev/null and b/file_demo_bios/k2g/t8/y16L8g3m7090_4.pcm differ
diff --git a/file_demo_bios/k2g/t8/y16L8g3m7090_5.pcm b/file_demo_bios/k2g/t8/y16L8g3m7090_5.pcm
new file mode 100644 (file)
index 0000000..8d5776d
Binary files /dev/null and b/file_demo_bios/k2g/t8/y16L8g3m7090_5.pcm differ
index 0000000..8d5776d
Binary files /dev/null and b/file_demo_bios/k2g/t8/y16L8g3m7090_5.pcm differ
diff --git a/file_demo_bios/k2g/t8/y16L8g3m7090_6.pcm b/file_demo_bios/k2g/t8/y16L8g3m7090_6.pcm
new file mode 100644 (file)
index 0000000..cc92c93
Binary files /dev/null and b/file_demo_bios/k2g/t8/y16L8g3m7090_6.pcm differ
index 0000000..cc92c93
Binary files /dev/null and b/file_demo_bios/k2g/t8/y16L8g3m7090_6.pcm differ
diff --git a/file_demo_bios/k2g/t8/y16L8g3m7090_7.pcm b/file_demo_bios/k2g/t8/y16L8g3m7090_7.pcm
new file mode 100644 (file)
index 0000000..95014cd
Binary files /dev/null and b/file_demo_bios/k2g/t8/y16L8g3m7090_7.pcm differ
index 0000000..95014cd
Binary files /dev/null and b/file_demo_bios/k2g/t8/y16L8g3m7090_7.pcm differ
diff --git a/file_demo_bios/k2g/t8/y16L8g3m7090_8.pcm b/file_demo_bios/k2g/t8/y16L8g3m7090_8.pcm
new file mode 100644 (file)
index 0000000..a4e382a
Binary files /dev/null and b/file_demo_bios/k2g/t8/y16L8g3m7090_8.pcm differ
index 0000000..a4e382a
Binary files /dev/null and b/file_demo_bios/k2g/t8/y16L8g3m7090_8.pcm differ
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/.dlls b/file_demo_bios/platforms/packages/dskDA830Custom/.dlls
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/.executables b/file_demo_bios/platforms/packages/dskDA830Custom/.executables
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/.interfaces b/file_demo_bios/platforms/packages/dskDA830Custom/.interfaces
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/.libraries b/file_demo_bios/platforms/packages/dskDA830Custom/.libraries
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/.xdcenv.mak b/file_demo_bios/platforms/packages/dskDA830Custom/.xdcenv.mak
--- /dev/null
@@ -0,0 +1,16 @@
+#
+_XDCBUILDCOUNT = 1
+ifneq (,$(findstring path,$(_USEXDCENV_)))
+override XDCPATH = C:/ti/volib_C66_2_1_0_1/packages;C:/ti/pdk_k2g_1_0_2/packages;C:/ti/ipc_3_43_01_03/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/uia_2_00_03_43/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/ndk_2_24_03_35/packages;C:/ti/framework_components_3_40_02_07/packages;C:/ti/framework_components_3_40_02_07/examples;C:/ti/xdctools_3_32_00_06_core/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/pdk_k2hk_4_0_0/packages;C:/ti/dsplib_c66x_3_4_0_0/packages;C:/ti/aer_c64Px_obj_17_0_0_0/packages;C:/ti/openmp_dsp_k2g_2_03_01_00/packages;C:/ti/ctoolslib_2_2_0_0/packages;C:/ti/imglib_c66x_3_1_1_0/packages;C:/ti/mathlib_c66x_3_1_1_0/packages;C:/ti/bios_6_45_01_29/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/xdais_7_24_00_04/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/xdais_7_24_00_04/examples;C:/c55_lp/ti_c55_csl/bios_5_42_02_10/packages;C:/ti/volib_C64P_2_1_0_1/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/edma3_lld_02_12_01_22/packages
+override XDCROOT = C:/ti/xdctools_3_32_00_06_core
+override XDCBUILDCFG = ./config.bld
+endif
+ifneq (,$(findstring args,$(_USEXDCENV_)))
+override XDCARGS =
+override XDCTARGETS =
+endif
+#
+ifeq (0,1)
+PKGPATH = C:/ti/volib_C66_2_1_0_1/packages;C:/ti/pdk_k2g_1_0_2/packages;C:/ti/ipc_3_43_01_03/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/uia_2_00_03_43/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/ndk_2_24_03_35/packages;C:/ti/framework_components_3_40_02_07/packages;C:/ti/framework_components_3_40_02_07/examples;C:/ti/xdctools_3_32_00_06_core/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/pdk_k2hk_4_0_0/packages;C:/ti/dsplib_c66x_3_4_0_0/packages;C:/ti/aer_c64Px_obj_17_0_0_0/packages;C:/ti/openmp_dsp_k2g_2_03_01_00/packages;C:/ti/ctoolslib_2_2_0_0/packages;C:/ti/imglib_c66x_3_1_1_0/packages;C:/ti/mathlib_c66x_3_1_1_0/packages;C:/ti/bios_6_45_01_29/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/xdais_7_24_00_04/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/xdais_7_24_00_04/examples;C:/c55_lp/ti_c55_csl/bios_5_42_02_10/packages;C:/ti/volib_C64P_2_1_0_1/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/edma3_lld_02_12_01_22/packages;C:/ti/xdctools_3_32_00_06_core/packages;..
+HOSTOS = Windows
+endif
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/Platform.xdc b/file_demo_bios/platforms/packages/dskDA830Custom/Platform.xdc
--- /dev/null
@@ -0,0 +1,67 @@
+/*!
+ * File generated by platform wizard. DO NOT MODIFY
+ *
+ */
+
+metaonly module Platform inherits xdc.platform.IPlatform {
+
+ config ti.platforms.generic.Platform.Instance CPU =
+ ti.platforms.generic.Platform.create("CPU", {
+ clockRate: 456,
+ catalogName: "ti.catalog.c6000",
+ deviceName: "TMS320DA830",
+ customMemoryMap:
+ [
+ ["IRAM",
+ {
+ name: "IRAM",
+ base: 0x11800000,
+ len: 0x00040000,
+ space: "code/data",
+ access: "RWX",
+ }
+ ],
+ ["IROM",
+ {
+ name: "IROM",
+ base: 0x11700000,
+ len: 0x00100000,
+ space: "code/data",
+ access: "RX",
+ }
+ ],
+ ["L3_CBA_RAM",
+ {
+ name: "L3_CBA_RAM",
+ base: 0x80000000,
+ len: 0x00020000,
+ space: "code/data",
+ access: "RWX",
+ }
+ ],
+ ["EXT_RAM",
+ {
+ name: "EXT_RAM",
+ base: 0xC0000000,
+ len: 0x20000000,
+ space: "code/data",
+ access: "RWX",
+ }
+ ],
+ ],
+ l2Mode: "0k",
+ l1PMode: "32k",
+ l1DMode: "32k",
+
+ });
+
+instance :
+
+ override config string codeMemory = "IRAM";
+ override config string dataMemory = "IRAM";
+ override config string stackMemory = "IRAM";
+
+ config String l2Mode = "0k";
+ config String l1PMode = "32k";
+ config String l1DMode = "32k";
+}
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/Platform.xs b/file_demo_bios/platforms/packages/dskDA830Custom/Platform.xs
--- /dev/null
@@ -0,0 +1,33 @@
+/*!
+ * File generated by platform wizard. DO NOT MODIFY.
+ *
+ */
+
+function getCpuDataSheet(cpuId)
+{
+ return this.$module.CPU.getCpuDataSheet(cpuId);
+}
+
+function getCreateArgs()
+{
+ return this.$module.CPU;
+}
+
+function getExeContext(prog)
+{
+ return this.$module.CPU.getExeContext(prog);
+}
+
+
+function getExecCmd(prog)
+{
+ return this.$module.CPU.getExecCmd(prog);
+}
+
+
+function getLinkTemplate(prog)
+{
+ return this.$module.CPU.getLinkTemplate(prog);
+}
+
+
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/config.bld b/file_demo_bios/platforms/packages/dskDA830Custom/config.bld
--- /dev/null
@@ -0,0 +1,6 @@
+/*!
+ * File generated by platform wizard. DO NOT MODIFY
+ *
+ */
+
+Build.useTargets = null;
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/dskDA830Custom.zip b/file_demo_bios/platforms/packages/dskDA830Custom/dskDA830Custom.zip
new file mode 100644 (file)
index 0000000..7871bcf
Binary files /dev/null and b/file_demo_bios/platforms/packages/dskDA830Custom/dskDA830Custom.zip differ
index 0000000..7871bcf
Binary files /dev/null and b/file_demo_bios/platforms/packages/dskDA830Custom/dskDA830Custom.zip differ
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/package.bld b/file_demo_bios/platforms/packages/dskDA830Custom/package.bld
--- /dev/null
@@ -0,0 +1,9 @@
+/*!
+ * File generated by platform wizard. DO NOT MODIFY.
+ *
+ */
+
+Pkg.attrs.archiver = "zip";
+Pkg.attrs.exportAll = true;
+
+
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/package.mak b/file_demo_bios/platforms/packages/dskDA830Custom/package.mak
--- /dev/null
@@ -0,0 +1,161 @@
+#
+# Do not edit this file. This file is generated from
+# package.bld. Any modifications to this file will be
+# overwritten whenever makefiles are re-generated.
+#
+
+unexport MAKEFILE_LIST
+MK_NOGENDEPS := $(filter clean,$(MAKECMDGOALS))
+override PKGDIR = dskDA830Custom
+XDCINCS = -I. -I$(strip $(subst ;, -I,$(subst $(space),\$(space),$(XPKGPATH))))
+XDCCFGDIR = package/cfg/
+
+#
+# The following dependencies ensure package.mak is rebuilt
+# in the event that some included BOM script changes.
+#
+ifneq (clean,$(MAKECMDGOALS))
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/utils.js:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/utils.js
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/xdc.tci:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/xdc.tci
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/template.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/template.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/om2.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/om2.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/xmlgen.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/xmlgen.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/xmlgen2.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/xmlgen2.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/Warnings.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/Warnings.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/IPackage.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/IPackage.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/package.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/package.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/global/Clock.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/global/Clock.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/global/Trace.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/global/Trace.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/bld.js:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/bld.js
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/BuildEnvironment.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/BuildEnvironment.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/PackageContents.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/PackageContents.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/_gen.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/_gen.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Library.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Library.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Executable.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Executable.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Repository.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Repository.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Configuration.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Configuration.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Script.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Script.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Manifest.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Manifest.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Utils.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Utils.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITarget.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITarget.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITarget2.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITarget2.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITarget3.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITarget3.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITargetFilter.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITargetFilter.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/package.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/package.xs
+package.mak: config.bld
+package.mak: package.bld
+endif
+
+
+all: .executables
+.executables: .libraries .dlls
+.libraries: .interfaces
+
+PKGCFGS := $(wildcard package.xs) package/build.cfg
+.interfaces: package/package.xdc.inc package/package.defs.h package.xdc $(PKGCFGS)
+
+-include package/package.xdc.dep
+package/%.xdc.inc package/%_dskDA830Custom.c package/%.defs.h: %.xdc $(PKGCFGS)
+ @$(MSG) generating interfaces for package dskDA830Custom" (because $@ is older than $(firstword $?))" ...
+ $(XSRUN) -f xdc/services/intern/cmd/build.xs $(MK_IDLOPTS) -m package/package.xdc.dep -i package/package.xdc.inc package.xdc
+
+ifeq (,$(MK_NOGENDEPS))
+-include package/package.cfg.dep
+endif
+
+package/package.cfg.xdc.inc: .interfaces $(XDCROOT)/packages/xdc/cfg/cfginc.js package.xdc
+ @$(MSG) generating schema include file list ...
+ $(CONFIG) -f $(XDCROOT)/packages/xdc/cfg/cfginc.js dskDA830Custom $@
+
+test:;
+%,copy:
+ @$(if $<,,$(MSG) don\'t know how to build $*; exit 1)
+ @$(MSG) cp $< $@
+ $(RM) $@
+ $(CP) $< $@
+
+$(XDCCFGDIR)%.c $(XDCCFGDIR)%.h $(XDCCFGDIR)%.xdl: $(XDCCFGDIR)%.cfg $(XDCROOT)/packages/xdc/cfg/Main.xs | .interfaces
+ @$(MSG) "configuring $(_PROG_NAME) from $< ..."
+ $(CONFIG) $(_PROG_XSOPTS) xdc.cfg $(_PROG_NAME) $(XDCCFGDIR)$*.cfg $(XDCCFGDIR)$*
+
+.PHONY: release,dskDA830Custom
+ifeq (,$(MK_NOGENDEPS))
+-include package/rel/dskDA830Custom.zip.dep
+endif
+package/rel/dskDA830Custom/dskDA830Custom/package/package.rel.xml: package/package.bld.xml
+package/rel/dskDA830Custom/dskDA830Custom/package/package.rel.xml: package/build.cfg
+package/rel/dskDA830Custom/dskDA830Custom/package/package.rel.xml: package/package.xdc.inc
+package/rel/dskDA830Custom/dskDA830Custom/package/package.rel.xml: package/package.cfg.xdc.inc
+package/rel/dskDA830Custom/dskDA830Custom/package/package.rel.xml: .force
+ @$(MSG) generating external release references $@ ...
+ $(XS) $(JSENV) -f $(XDCROOT)/packages/xdc/bld/rel.js $(MK_RELOPTS) . $@
+
+dskDA830Custom.zip: package/rel/dskDA830Custom.xdc.inc package/rel/dskDA830Custom/dskDA830Custom/package/package.rel.xml
+ @$(MSG) making release file $@ "(because of $(firstword $?))" ...
+ -$(RM) $@
+ $(call MKRELZIP,package/rel/dskDA830Custom.xdc.inc,package/rel/dskDA830Custom.zip.dep)
+
+
+release release,dskDA830Custom: all dskDA830Custom.zip
+clean:: .clean
+ -$(RM) dskDA830Custom.zip
+ -$(RM) package/rel/dskDA830Custom.xdc.inc
+ -$(RM) package/rel/dskDA830Custom.zip.dep
+
+clean:: .clean
+ -$(RM) .libraries $(wildcard .libraries,*)
+clean::
+ -$(RM) .dlls $(wildcard .dlls,*)
+#
+# The following clean rule removes user specified
+# generated files or directories.
+#
+
+ifneq (clean,$(MAKECMDGOALS))
+ifeq (,$(wildcard package))
+ $(shell $(MKDIR) package)
+endif
+ifeq (,$(wildcard package/cfg))
+ $(shell $(MKDIR) package/cfg)
+endif
+ifeq (,$(wildcard package/lib))
+ $(shell $(MKDIR) package/lib)
+endif
+ifeq (,$(wildcard package/rel))
+ $(shell $(MKDIR) package/rel)
+endif
+ifeq (,$(wildcard package/internal))
+ $(shell $(MKDIR) package/internal)
+endif
+endif
+clean::
+ -$(RMDIR) package
+
+
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/package.xdc b/file_demo_bios/platforms/packages/dskDA830Custom/package.xdc
--- /dev/null
@@ -0,0 +1,9 @@
+/*!
+ * File generated by platform wizard. DO NOT MODIFY.
+ *
+ */
+
+package dskDA830Custom {
+ module Platform;
+}
+
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/package/.vers_b160 b/file_demo_bios/platforms/packages/dskDA830Custom/package/.vers_b160
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/package/.vers_g180 b/file_demo_bios/platforms/packages/dskDA830Custom/package/.vers_g180
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/package/.vers_r170 b/file_demo_bios/platforms/packages/dskDA830Custom/package/.vers_r170
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/package/.xdc-B06 b/file_demo_bios/platforms/packages/dskDA830Custom/package/.xdc-B06
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/package/build.cfg b/file_demo_bios/platforms/packages/dskDA830Custom/package/build.cfg
--- /dev/null
@@ -0,0 +1,9 @@
+if (pkg.$vers.length >= 3) {
+ pkg.$vers.push(Packages.xdc.services.global.Vers.getDate(xdc.csd() + '/..'));
+}
+
+pkg.build.libraries = [
+];
+
+pkg.build.libDesc = [
+];
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/package/dskDA830Custom.ccs b/file_demo_bios/platforms/packages/dskDA830Custom/package/dskDA830Custom.ccs
new file mode 100644 (file)
index 0000000..d95e073
Binary files /dev/null and b/file_demo_bios/platforms/packages/dskDA830Custom/package/dskDA830Custom.ccs differ
index 0000000..d95e073
Binary files /dev/null and b/file_demo_bios/platforms/packages/dskDA830Custom/package/dskDA830Custom.ccs differ
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/package/dskDA830Custom.class b/file_demo_bios/platforms/packages/dskDA830Custom/package/dskDA830Custom.class
new file mode 100644 (file)
index 0000000..aba9106
Binary files /dev/null and b/file_demo_bios/platforms/packages/dskDA830Custom/package/dskDA830Custom.class differ
index 0000000..aba9106
Binary files /dev/null and b/file_demo_bios/platforms/packages/dskDA830Custom/package/dskDA830Custom.class differ
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/package/dskDA830Custom.java b/file_demo_bios/platforms/packages/dskDA830Custom/package/dskDA830Custom.java
--- /dev/null
@@ -0,0 +1,365 @@
+/*
+ * Do not modify this file; it is automatically
+ * generated and any modifications will be overwritten.
+ *
+ * @(#) xdc-B06
+ */
+import java.util.*;
+import org.mozilla.javascript.*;
+import xdc.services.intern.xsr.*;
+import xdc.services.spec.Session;
+
+public class dskDA830Custom
+{
+ static final String VERS = "@(#) xdc-B06\n";
+
+ static final Proto.Elm $$T_Bool = Proto.Elm.newBool();
+ static final Proto.Elm $$T_Num = Proto.Elm.newNum();
+ static final Proto.Elm $$T_Str = Proto.Elm.newStr();
+ static final Proto.Elm $$T_Obj = Proto.Elm.newObj();
+
+ static final Proto.Fxn $$T_Met = new Proto.Fxn(null, null, 0, -1, false);
+ static final Proto.Map $$T_Map = new Proto.Map($$T_Obj);
+ static final Proto.Arr $$T_Vec = new Proto.Arr($$T_Obj);
+
+ static final XScriptO $$DEFAULT = Value.DEFAULT;
+ static final Object $$UNDEF = Undefined.instance;
+
+ static final Proto.Obj $$Package = (Proto.Obj)Global.get("$$Package");
+ static final Proto.Obj $$Module = (Proto.Obj)Global.get("$$Module");
+ static final Proto.Obj $$Instance = (Proto.Obj)Global.get("$$Instance");
+ static final Proto.Obj $$Params = (Proto.Obj)Global.get("$$Params");
+
+ static final Object $$objFldGet = Global.get("$$objFldGet");
+ static final Object $$objFldSet = Global.get("$$objFldSet");
+ static final Object $$proxyGet = Global.get("$$proxyGet");
+ static final Object $$proxySet = Global.get("$$proxySet");
+ static final Object $$delegGet = Global.get("$$delegGet");
+ static final Object $$delegSet = Global.get("$$delegSet");
+
+ Scriptable xdcO;
+ Session ses;
+ Value.Obj om;
+
+ boolean isROV;
+ boolean isCFG;
+
+ Proto.Obj pkgP;
+ Value.Obj pkgV;
+
+ ArrayList<Object> imports = new ArrayList<Object>();
+ ArrayList<Object> loggables = new ArrayList<Object>();
+ ArrayList<Object> mcfgs = new ArrayList<Object>();
+ ArrayList<Object> icfgs = new ArrayList<Object>();
+ ArrayList<String> inherits = new ArrayList<String>();
+ ArrayList<Object> proxies = new ArrayList<Object>();
+ ArrayList<Object> sizes = new ArrayList<Object>();
+ ArrayList<Object> tdefs = new ArrayList<Object>();
+
+ void $$IMPORTS()
+ {
+ Global.callFxn("loadPackage", xdcO, "xdc");
+ Global.callFxn("loadPackage", xdcO, "xdc.corevers");
+ Global.callFxn("loadPackage", xdcO, "xdc.platform");
+ Global.callFxn("loadPackage", xdcO, "ti.platforms.generic");
+ }
+
+ void $$OBJECTS()
+ {
+ pkgP = (Proto.Obj)om.bind("dskDA830Custom.Package", new Proto.Obj());
+ pkgV = (Value.Obj)om.bind("dskDA830Custom", new Value.Obj("dskDA830Custom", pkgP));
+ }
+
+ void Platform$$OBJECTS()
+ {
+ Proto.Obj po, spo;
+ Value.Obj vo;
+
+ po = (Proto.Obj)om.bind("dskDA830Custom.Platform.Module", new Proto.Obj());
+ vo = (Value.Obj)om.bind("dskDA830Custom.Platform", new Value.Obj("dskDA830Custom.Platform", po));
+ pkgV.bind("Platform", vo);
+ // decls
+ om.bind("dskDA830Custom.Platform.Board", om.findStrict("xdc.platform.IPlatform.Board", "dskDA830Custom"));
+ om.bind("dskDA830Custom.Platform.Memory", om.findStrict("xdc.platform.IPlatform.Memory", "dskDA830Custom"));
+ // insts
+ Object insP = om.bind("dskDA830Custom.Platform.Instance", new Proto.Obj());
+ po = (Proto.Obj)om.bind("dskDA830Custom.Platform$$Object", new Proto.Obj());
+ om.bind("dskDA830Custom.Platform.Object", new Proto.Str(po, true));
+ po = (Proto.Obj)om.bind("dskDA830Custom.Platform$$Params", new Proto.Obj());
+ om.bind("dskDA830Custom.Platform.Params", new Proto.Str(po, true));
+ }
+
+ void Platform$$CONSTS()
+ {
+ // module Platform
+ }
+
+ void Platform$$CREATES()
+ {
+ Proto.Fxn fxn;
+ StringBuilder sb;
+
+ fxn = (Proto.Fxn)om.bind("dskDA830Custom.Platform$$create", new Proto.Fxn(om.findStrict("dskDA830Custom.Platform.Module", "dskDA830Custom"), om.findStrict("dskDA830Custom.Platform.Instance", "dskDA830Custom"), 2, 1, false));
+ fxn.addArg(0, "name", $$T_Str, $$UNDEF);
+ fxn.addArg(1, "__params", (Proto)om.findStrict("dskDA830Custom.Platform.Params", "dskDA830Custom"), Global.newObject());
+ sb = new StringBuilder();
+ sb.append("dskDA830Custom$Platform$$create = function( name, __params ) {\n");
+ sb.append("var __mod = xdc.om['dskDA830Custom.Platform'];\n");
+ sb.append("var __inst = xdc.om['dskDA830Custom.Platform.Instance'].$$make();\n");
+ sb.append("__inst.$$bind('$package', xdc.om['dskDA830Custom']);\n");
+ sb.append("__inst.$$bind('$index', __mod.$instances.length);\n");
+ sb.append("__inst.$$bind('$category', 'Instance');\n");
+ sb.append("__inst.$$bind('$args', {name:name});\n");
+ sb.append("__inst.$$bind('$module', __mod);\n");
+ sb.append("__mod.$instances.$add(__inst);\n");
+ sb.append("__inst.externalMemoryMap = __mod.PARAMS.externalMemoryMap;\n");
+ sb.append("__inst.customMemoryMap = __mod.PARAMS.customMemoryMap;\n");
+ sb.append("__inst.renameMap = __mod.PARAMS.renameMap;\n");
+ sb.append("__inst.dataMemory = __mod.PARAMS.dataMemory;\n");
+ sb.append("__inst.codeMemory = __mod.PARAMS.codeMemory;\n");
+ sb.append("__inst.stackMemory = __mod.PARAMS.stackMemory;\n");
+ sb.append("__inst.sectMap = __mod.PARAMS.sectMap;\n");
+ sb.append("__inst.peripherals = __mod.PARAMS.peripherals;\n");
+ sb.append("for (var __p in __params) __inst[__p] = __params[__p];\n");
+ sb.append("var save = xdc.om.$curpkg;\n");
+ sb.append("xdc.om.$$bind('$curpkg', __mod.$package.$name);\n");
+ sb.append("__mod.instance$meta$init.$fxn.apply(__inst, [name]);\n");
+ sb.append("xdc.om.$$bind('$curpkg', save);\n");
+ sb.append("__inst.$$bless();\n");
+ sb.append("return __inst;\n");
+ sb.append("}\n");
+ Global.eval(sb.toString());
+ fxn = (Proto.Fxn)om.bind("dskDA830Custom.Platform$$construct", new Proto.Fxn(om.findStrict("dskDA830Custom.Platform.Module", "dskDA830Custom"), null, 3, 1, false));
+ fxn.addArg(0, "__obj", (Proto)om.findStrict("dskDA830Custom.Platform$$Object", "dskDA830Custom"), null);
+ fxn.addArg(1, "name", $$T_Str, $$UNDEF);
+ fxn.addArg(2, "__params", (Proto)om.findStrict("dskDA830Custom.Platform.Params", "dskDA830Custom"), Global.newObject());
+ sb = new StringBuilder();
+ sb.append("dskDA830Custom$Platform$$construct = function( __obj, name, __params ) {\n");
+ sb.append("var __mod = xdc.om['dskDA830Custom.Platform'];\n");
+ sb.append("var __inst = __obj;\n");
+ sb.append("__inst.$$bind('$args', {name:name});\n");
+ sb.append("__inst.$$bind('$module', __mod);\n");
+ sb.append("__mod.$objects.$add(__inst);\n");
+ sb.append("__inst.externalMemoryMap = __mod.PARAMS.externalMemoryMap;\n");
+ sb.append("__inst.customMemoryMap = __mod.PARAMS.customMemoryMap;\n");
+ sb.append("__inst.renameMap = __mod.PARAMS.renameMap;\n");
+ sb.append("__inst.dataMemory = __mod.PARAMS.dataMemory;\n");
+ sb.append("__inst.codeMemory = __mod.PARAMS.codeMemory;\n");
+ sb.append("__inst.stackMemory = __mod.PARAMS.stackMemory;\n");
+ sb.append("__inst.sectMap = __mod.PARAMS.sectMap;\n");
+ sb.append("__inst.peripherals = __mod.PARAMS.peripherals;\n");
+ sb.append("for (var __p in __params) __inst[__p] = __params[__p];\n");
+ sb.append("__inst.$$bless();\n");
+ sb.append("return null;\n");
+ sb.append("}\n");
+ Global.eval(sb.toString());
+ }
+
+ void Platform$$FUNCTIONS()
+ {
+ Proto.Fxn fxn;
+
+ }
+
+ void Platform$$SIZES()
+ {
+ }
+
+ void Platform$$TYPES()
+ {
+ Scriptable cap;
+ Proto.Obj po;
+ Proto.Str ps;
+ Proto.Typedef pt;
+ Object fxn;
+
+ cap = (Scriptable)Global.callFxn("loadCapsule", xdcO, "dskDA830Custom/Platform.xs");
+ om.bind("dskDA830Custom.Platform$$capsule", cap);
+ po = (Proto.Obj)om.findStrict("dskDA830Custom.Platform.Module", "dskDA830Custom");
+ po.init("dskDA830Custom.Platform.Module", om.findStrict("xdc.platform.IPlatform.Module", "dskDA830Custom"));
+ po.addFld("$hostonly", $$T_Num, 1, "r");
+ po.addFld("CPU", (Proto)om.findStrict("ti.platforms.generic.Platform.Instance", "dskDA830Custom"), $$UNDEF, "wh");
+ po.addFxn("create", (Proto.Fxn)om.findStrict("dskDA830Custom.Platform$$create", "dskDA830Custom"), Global.get("dskDA830Custom$Platform$$create"));
+ po.addFxn("construct", (Proto.Fxn)om.findStrict("dskDA830Custom.Platform$$construct", "dskDA830Custom"), Global.get("dskDA830Custom$Platform$$construct"));
+ fxn = Global.get(cap, "module$use");
+ if (fxn != null) om.bind("dskDA830Custom.Platform$$module$use", true);
+ if (fxn != null) po.addFxn("module$use", $$T_Met, fxn);
+ fxn = Global.get(cap, "module$meta$init");
+ if (fxn != null) om.bind("dskDA830Custom.Platform$$module$meta$init", true);
+ if (fxn != null) po.addFxn("module$meta$init", $$T_Met, fxn);
+ fxn = Global.get(cap, "instance$meta$init");
+ if (fxn != null) om.bind("dskDA830Custom.Platform$$instance$meta$init", true);
+ if (fxn != null) po.addFxn("instance$meta$init", $$T_Met, fxn);
+ fxn = Global.get(cap, "module$validate");
+ if (fxn != null) om.bind("dskDA830Custom.Platform$$module$validate", true);
+ if (fxn != null) po.addFxn("module$validate", $$T_Met, fxn);
+ po = (Proto.Obj)om.findStrict("dskDA830Custom.Platform.Instance", "dskDA830Custom");
+ po.init("dskDA830Custom.Platform.Instance", om.findStrict("xdc.platform.IPlatform.Instance", "dskDA830Custom"));
+ po.addFld("$hostonly", $$T_Num, 1, "r");
+ po.addFld("codeMemory", $$T_Str, "IRAM", "wh");
+ po.addFld("dataMemory", $$T_Str, "IRAM", "wh");
+ po.addFld("stackMemory", $$T_Str, "IRAM", "wh");
+ po.addFld("l2Mode", $$T_Str, "0k", "wh");
+ po.addFld("l1PMode", $$T_Str, "32k", "wh");
+ po.addFld("l1DMode", $$T_Str, "32k", "wh");
+ fxn = Global.get(cap, "getCpuDataSheet");
+ if (fxn != null) po.addFxn("getCpuDataSheet", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getCpuDataSheet", "dskDA830Custom"), fxn);
+ fxn = Global.get(cap, "getCreateArgs");
+ if (fxn != null) po.addFxn("getCreateArgs", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getCreateArgs", "dskDA830Custom"), fxn);
+ fxn = Global.get(cap, "getExeContext");
+ if (fxn != null) po.addFxn("getExeContext", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getExeContext", "dskDA830Custom"), fxn);
+ fxn = Global.get(cap, "getExecCmd");
+ if (fxn != null) po.addFxn("getExecCmd", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getExecCmd", "dskDA830Custom"), fxn);
+ fxn = Global.get(cap, "getLinkTemplate");
+ if (fxn != null) po.addFxn("getLinkTemplate", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getLinkTemplate", "dskDA830Custom"), fxn);
+ po = (Proto.Obj)om.findStrict("dskDA830Custom.Platform$$Params", "dskDA830Custom");
+ po.init("dskDA830Custom.Platform.Params", om.findStrict("xdc.platform.IPlatform$$Params", "dskDA830Custom"));
+ po.addFld("$hostonly", $$T_Num, 1, "r");
+ po.addFld("codeMemory", $$T_Str, "IRAM", "wh");
+ po.addFld("dataMemory", $$T_Str, "IRAM", "wh");
+ po.addFld("stackMemory", $$T_Str, "IRAM", "wh");
+ po.addFld("l2Mode", $$T_Str, "0k", "wh");
+ po.addFld("l1PMode", $$T_Str, "32k", "wh");
+ po.addFld("l1DMode", $$T_Str, "32k", "wh");
+ po = (Proto.Obj)om.findStrict("dskDA830Custom.Platform$$Object", "dskDA830Custom");
+ po.init("dskDA830Custom.Platform.Object", om.findStrict("dskDA830Custom.Platform.Instance", "dskDA830Custom"));
+ fxn = Global.get(cap, "getCpuDataSheet");
+ if (fxn != null) po.addFxn("getCpuDataSheet", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getCpuDataSheet", "dskDA830Custom"), fxn);
+ fxn = Global.get(cap, "getCreateArgs");
+ if (fxn != null) po.addFxn("getCreateArgs", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getCreateArgs", "dskDA830Custom"), fxn);
+ fxn = Global.get(cap, "getExeContext");
+ if (fxn != null) po.addFxn("getExeContext", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getExeContext", "dskDA830Custom"), fxn);
+ fxn = Global.get(cap, "getExecCmd");
+ if (fxn != null) po.addFxn("getExecCmd", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getExecCmd", "dskDA830Custom"), fxn);
+ fxn = Global.get(cap, "getLinkTemplate");
+ if (fxn != null) po.addFxn("getLinkTemplate", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getLinkTemplate", "dskDA830Custom"), fxn);
+ }
+
+ void Platform$$ROV()
+ {
+ }
+
+ void $$SINGLETONS()
+ {
+ pkgP.init("dskDA830Custom.Package", (Proto.Obj)om.findStrict("xdc.IPackage.Module", "dskDA830Custom"));
+ pkgP.bind("$capsule", $$UNDEF);
+ pkgV.init2(pkgP, "dskDA830Custom", Value.DEFAULT, false);
+ pkgV.bind("$name", "dskDA830Custom");
+ pkgV.bind("$category", "Package");
+ pkgV.bind("$$qn", "dskDA830Custom.");
+ pkgV.bind("$vers", Global.newArray());
+ Value.Map atmap = (Value.Map)pkgV.getv("$attr");
+ atmap.seal("length");
+ imports.clear();
+ pkgV.bind("$imports", imports);
+ StringBuilder sb = new StringBuilder();
+ sb.append("var pkg = xdc.om['dskDA830Custom'];\n");
+ sb.append("if (pkg.$vers.length >= 3) {\n");
+ sb.append("pkg.$vers.push(Packages.xdc.services.global.Vers.getDate(xdc.csd() + '/..'));\n");
+ sb.append("}\n");
+ sb.append("if ('dskDA830Custom$$stat$base' in xdc.om) {\n");
+ sb.append("pkg.packageBase = xdc.om['dskDA830Custom$$stat$base'];\n");
+ sb.append("pkg.packageRepository = xdc.om['dskDA830Custom$$stat$root'];\n");
+ sb.append("}\n");
+ sb.append("pkg.build.libraries = [\n");
+ sb.append("];\n");
+ sb.append("pkg.build.libDesc = [\n");
+ sb.append("];\n");
+ Global.eval(sb.toString());
+ }
+
+ void Platform$$SINGLETONS()
+ {
+ Proto.Obj po;
+ Value.Obj vo;
+
+ vo = (Value.Obj)om.findStrict("dskDA830Custom.Platform", "dskDA830Custom");
+ po = (Proto.Obj)om.findStrict("dskDA830Custom.Platform.Module", "dskDA830Custom");
+ vo.init2(po, "dskDA830Custom.Platform", $$DEFAULT, false);
+ vo.bind("Module", po);
+ vo.bind("$category", "Module");
+ vo.bind("$capsule", om.findStrict("dskDA830Custom.Platform$$capsule", "dskDA830Custom"));
+ vo.bind("Instance", om.findStrict("dskDA830Custom.Platform.Instance", "dskDA830Custom"));
+ vo.bind("Params", om.findStrict("dskDA830Custom.Platform.Params", "dskDA830Custom"));
+ vo.bind("PARAMS", ((Proto.Str)om.findStrict("dskDA830Custom.Platform.Params", "dskDA830Custom")).newInstance());
+ vo.bind("$package", om.findStrict("dskDA830Custom", "dskDA830Custom"));
+ tdefs.clear();
+ proxies.clear();
+ mcfgs.clear();
+ icfgs.clear();
+ inherits.clear();
+ vo.bind("Board", om.findStrict("xdc.platform.IPlatform.Board", "dskDA830Custom"));
+ tdefs.add(om.findStrict("xdc.platform.IPlatform.Board", "dskDA830Custom"));
+ vo.bind("Memory", om.findStrict("xdc.platform.IPlatform.Memory", "dskDA830Custom"));
+ tdefs.add(om.findStrict("xdc.platform.IPlatform.Memory", "dskDA830Custom"));
+ vo.bind("MemoryMap", om.findStrict("xdc.platform.IPlatform.MemoryMap", "dskDA830Custom"));
+ vo.bind("$$tdefs", Global.newArray(tdefs.toArray()));
+ vo.bind("$$proxies", Global.newArray(proxies.toArray()));
+ vo.bind("$$mcfgs", Global.newArray(mcfgs.toArray()));
+ vo.bind("$$icfgs", Global.newArray(icfgs.toArray()));
+ inherits.add("xdc.platform");
+ vo.bind("$$inherits", Global.newArray(inherits.toArray()));
+ ((Value.Arr)pkgV.getv("$modules")).add(vo);
+ ((Value.Arr)om.findStrict("$modules", "dskDA830Custom")).add(vo);
+ vo.bind("$$instflag", 1);
+ vo.bind("$$iobjflag", 1);
+ vo.bind("$$sizeflag", 1);
+ vo.bind("$$dlgflag", 0);
+ vo.bind("$$iflag", 1);
+ vo.bind("$$romcfgs", "|");
+ vo.bind("$$nortsflag", 0);
+ Proto.Str ps = (Proto.Str)vo.find("Module_State");
+ if (ps != null) vo.bind("$object", ps.newInstance());
+ vo.bind("$$meta_iobj", om.has("dskDA830Custom.Platform$$instance$static$init", null) ? 1 : 0);
+ vo.bind("$$fxntab", Global.newArray());
+ vo.bind("$$logEvtCfgs", Global.newArray());
+ vo.bind("$$errorDescCfgs", Global.newArray());
+ vo.bind("$$assertDescCfgs", Global.newArray());
+ Value.Map atmap = (Value.Map)vo.getv("$attr");
+ atmap.seal("length");
+ vo.bind("Object", om.findStrict("dskDA830Custom.Platform.Object", "dskDA830Custom"));
+ pkgV.bind("Platform", vo);
+ ((Value.Arr)pkgV.getv("$unitNames")).add("Platform");
+ }
+
+ void $$INITIALIZATION()
+ {
+ Value.Obj vo;
+
+ if (isCFG) {
+ }//isCFG
+ Global.callFxn("module$meta$init", (Scriptable)om.findStrict("dskDA830Custom.Platform", "dskDA830Custom"));
+ vo = (Value.Obj)om.findStrict("dskDA830Custom.Platform", "dskDA830Custom");
+ Global.put(vo, "CPU", Global.callFxn("create", (Scriptable)om.find("ti.platforms.generic.Platform"), "CPU", Global.newObject("clockRate", 456L, "catalogName", "ti.catalog.c6000", "deviceName", "TMS320DA830", "customMemoryMap", Global.newArray(new Object[]{Global.newArray(new Object[]{"IRAM", Global.newObject("name", "IRAM", "base", 0x11800000L, "len", 0x00040000L, "space", "code/data", "access", "RWX")}), Global.newArray(new Object[]{"IROM", Global.newObject("name", "IROM", "base", 0x11700000L, "len", 0x00100000L, "space", "code/data", "access", "RX")}), Global.newArray(new Object[]{"L3_CBA_RAM", Global.newObject("name", "L3_CBA_RAM", "base", 0x80000000L, "len", 0x00020000L, "space", "code/data", "access", "RWX")}), Global.newArray(new Object[]{"EXT_RAM", Global.newObject("name", "EXT_RAM", "base", 0xC0000000L, "len", 0x20000000L, "space", "code/data", "access", "RWX")})}), "l2Mode", "0k", "l1PMode", "32k", "l1DMode", "32k")));
+ Global.callFxn("init", pkgV);
+ ((Value.Obj)om.getv("dskDA830Custom.Platform")).bless();
+ ((Value.Arr)om.findStrict("$packages", "dskDA830Custom")).add(pkgV);
+ }
+
+ public void exec( Scriptable xdcO, Session ses )
+ {
+ this.xdcO = xdcO;
+ this.ses = ses;
+ om = (Value.Obj)xdcO.get("om", null);
+
+ Object o = om.geto("$name");
+ String s = o instanceof String ? (String)o : null;
+ isCFG = s != null && s.equals("cfg");
+ isROV = s != null && s.equals("rov");
+
+ $$IMPORTS();
+ $$OBJECTS();
+ Platform$$OBJECTS();
+ Platform$$CONSTS();
+ Platform$$CREATES();
+ Platform$$FUNCTIONS();
+ Platform$$SIZES();
+ Platform$$TYPES();
+ if (isROV) {
+ Platform$$ROV();
+ }//isROV
+ $$SINGLETONS();
+ Platform$$SINGLETONS();
+ $$INITIALIZATION();
+ }
+}
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/package/dskDA830Custom.sch b/file_demo_bios/platforms/packages/dskDA830Custom/package/dskDA830Custom.sch
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/package/package.bld.xml b/file_demo_bios/platforms/packages/dskDA830Custom/package/package.bld.xml
--- /dev/null
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="windows-1252"?>
+<!-- This file conforms to the DTD xdc/bld/build.dtd -->
+<package name="dskDA830Custom" version="" producerId="undefined">
+ <units>
+ <module name="Platform"/>
+ </units>
+ <sources>
+ </sources>
+ <configscripts>
+ </configscripts>
+ <makefiles>
+ <srcFile name="package.mak" src="package.bld"/>
+ <srcFile name="package/package.xdc.dep" src="package.xdc"/>
+ <srcFile name="package/package.cfg.dep" src="package.xdc"/>
+ <srcFile name="package/rel/dskDA830Custom.zip.dep" src="package/rel/dskDA830Custom.xdc.inc"/>
+ </makefiles>
+ <targets>
+ </targets>
+ <libraries>
+ </libraries>
+ <configurations>
+ </configurations>
+ <executables>
+ </executables>
+ <tests>
+ </tests>
+ <releases relDir="package/rel/">
+ <release name="dskDA830Custom"
+ pname="dskDA830Custom.zip"
+ label="default"
+ >
+ <file name="package/package.bld.xml"/>
+ <file name="package/build.cfg"/>
+ <file name="package/package.xdc.inc"/>
+ <file name="package/package.cfg.xdc.inc"/>
+ </release>
+ </releases>
+ <repositories>
+ </repositories>
+</package>
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/package/package.cfg.dep b/file_demo_bios/platforms/packages/dskDA830Custom/package/package.cfg.dep
--- /dev/null
@@ -0,0 +1,61 @@
+#
+# The following is generated by utils.genDep for package/package.cfg
+#
+package/package.cfg.c package/package.cfg.h package/package.cfg.xdl:Platform.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/Arctic.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/DRA7XX.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IAntara.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IDaVinci.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IHimalaya.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IOMAP2x3x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IOMAP3xxx.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITI811X.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITI8148.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITI8168.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C642x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C64_128K.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C64_1M.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C64_256K.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C64_512K.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C6655.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C6x0x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C6x1x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CDM6467.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CDRA44x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CDRA45x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CDRx40x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CTCI6484.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CTCI6486.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CTCI648x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CTCI6497.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320DA8xx.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320TCI6608.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320TCI6616.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320TCI663x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/Kepler.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/OMAP4430.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/OMAP5430.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TCI66AK2G02.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TDA3XX.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6421.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6428.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6452.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6454.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6654.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C66AK2E02.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C66AK2E05.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CDM6431.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CDM647.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CDM648.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CF761990.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CTNETV2685.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320TCI6630K2L.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TNETV107X.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/Vayu.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/c6x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/package.xs C:/ti/bios_6_45_01_29/packages/ti/platforms/generic/Platform.xs C:/ti/bios_6_45_01_29/packages/ti/platforms/generic/package.xs
+
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/Arctic.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/DRA7XX.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IAntara.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IDaVinci.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IHimalaya.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IOMAP2x3x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IOMAP3xxx.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITI811X.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITI8148.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITI8168.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C642x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C64_128K.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C64_1M.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C64_256K.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C64_512K.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C6655.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C6x0x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C6x1x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CDM6467.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CDRA44x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CDRA45x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CDRx40x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CTCI6484.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CTCI6486.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CTCI648x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CTCI6497.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320DA8xx.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320TCI6608.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320TCI6616.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320TCI663x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/Kepler.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/OMAP4430.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/OMAP5430.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TCI66AK2G02.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TDA3XX.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6421.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6428.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6452.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6454.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6654.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C66AK2E02.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C66AK2E05.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CDM6431.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CDM647.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CDM648.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CF761990.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CTNETV2685.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320TCI6630K2L.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TNETV107X.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/Vayu.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/c6x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/package.xs:
+C:/ti/bios_6_45_01_29/packages/ti/platforms/generic/Platform.xs:
+C:/ti/bios_6_45_01_29/packages/ti/platforms/generic/package.xs:
+
+
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/package/package.cfg.xdc.inc b/file_demo_bios/platforms/packages/dskDA830Custom/package/package.cfg.xdc.inc
--- /dev/null
@@ -0,0 +1 @@
+Platform.xs
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/package/package.defs.h b/file_demo_bios/platforms/packages/dskDA830Custom/package/package.defs.h
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+ * Do not modify this file; it is automatically
+ * generated and any modifications will be overwritten.
+ *
+ * @(#) xdc-B06
+ */
+
+#ifndef dskDA830Custom__
+#define dskDA830Custom__
+
+
+
+#endif /* dskDA830Custom__ */
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/package/package.xdc.dep b/file_demo_bios/platforms/packages/dskDA830Custom/package/package.xdc.dep
--- /dev/null
@@ -0,0 +1,69 @@
+clean::\r
+ $(RM) package/dskDA830Custom.sch\r
+ $(RM) package/.vers_g180\r
+ $(RM) package/.vers_r170\r
+ $(RM) package/.vers_b160\r
+ $(RM) package/.xdc-B06\r
+ $(RM) package/dskDA830Custom.java\r
+ $(RM) package/dskDA830Custom.class\r
+ $(RM) package/package_dskDA830Custom.c\r
+ $(RM) package/package.defs.h\r
+ $(RM) package/dskDA830Custom.ccs\r
+
+.interfaces: package/dskDA830Custom.sch package/.vers_g180 package/.vers_r170 package/.vers_b160 package/.xdc-B06 package/dskDA830Custom.java package/package_dskDA830Custom.c package/package.defs.h package/dskDA830Custom.ccs
+package/package.xdc.inc: package/.vers_g180
+package/.vers_g180:
+package/package.xdc.inc: package/.vers_r170
+package/.vers_r170:
+package/package.xdc.inc: package/.vers_b160
+package/.vers_b160:
+
+.interfaces: Platform.xdc
+
+# schema include file dependencies
+Platform.xs:\r
+package/package.xdc.inc: Platform.xs\r
+
+# schema update dependencies
+package/package.xdc.inc: Platform.xdc\r
+package/package.xdc.inc: xdc/IPackage.xdc\r
+xdc/IPackage.xdc:\r
+vpath xdc/IPackage.xdc $(XPKGVPATH)\r
+package/package.xdc.inc: xdc/platform/IPlatform.xdc\r
+xdc/platform/IPlatform.xdc:\r
+vpath xdc/platform/IPlatform.xdc $(XPKGVPATH)\r
+package/package.xdc.inc: xdc/platform/IPeripheral.xdc\r
+xdc/platform/IPeripheral.xdc:\r
+vpath xdc/platform/IPeripheral.xdc $(XPKGVPATH)\r
+package/package.xdc.inc: xdc/platform/ICpuDataSheet.xdc\r
+xdc/platform/ICpuDataSheet.xdc:\r
+vpath xdc/platform/ICpuDataSheet.xdc $(XPKGVPATH)\r
+package/package.xdc.inc: ti/platforms/generic/Platform.xdc\r
+ti/platforms/generic/Platform.xdc:\r
+vpath ti/platforms/generic/Platform.xdc $(XPKGVPATH)\r
+package/package.xdc.inc: xdc/platform/IExeContext.xdc\r
+xdc/platform/IExeContext.xdc:\r
+vpath xdc/platform/IExeContext.xdc $(XPKGVPATH)\r
+
+ifneq (clean,$(MAKECMDGOALS))
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/ecj.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/ecj.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/intern/gen/java/package.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/intern/gen/java/package.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/intern/cmd/java/package.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/intern/cmd/java/package.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/js.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/js.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/global/java/package.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/global/java/package.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/antlr.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/antlr.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/intern/xsr/java/package.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/intern/xsr/java/package.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/tar.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/tar.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/spec/java/package.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/spec/java/package.jar\r
+endif
+# goals for files generated during schema generation but unspecified by schema's pattern rule
+
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/package/package.xdc.inc b/file_demo_bios/platforms/packages/dskDA830Custom/package/package.xdc.inc
--- /dev/null
@@ -0,0 +1,13 @@
+package.xdc\r
+Platform.xdc\r
+Platform.xs\r
+package/dskDA830Custom.sch\r
+package/.vers_g180\r
+package/.vers_r170\r
+package/.vers_b160\r
+package/.xdc-B06\r
+package/dskDA830Custom.java\r
+package/dskDA830Custom.class\r
+package/package_dskDA830Custom.c\r
+package/package.defs.h\r
+package/dskDA830Custom.ccs\r
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/package/package_dskDA830Custom.c b/file_demo_bios/platforms/packages/dskDA830Custom/package/package_dskDA830Custom.c
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ * Do not modify this file; it is automatically
+ * generated and any modifications will be overwritten.
+ *
+ * @(#) xdc-B06
+ */
+
+#include <xdc/std.h>
+
+__FAR__ char dskDA830Custom__dummy__;
+
+#define __xdc_PKGVERS null
+#define __xdc_PKGNAME dskDA830Custom
+#define __xdc_PKGPREFIX dskDA830Custom_
+
+#ifdef __xdc_bld_pkg_c__
+#define __stringify(a) #a
+#define __local_include(a) __stringify(a)
+#include __local_include(__xdc_bld_pkg_c__)
+#endif
+
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/package/rel/dskDA830Custom.xdc.inc b/file_demo_bios/platforms/packages/dskDA830Custom/package/rel/dskDA830Custom.xdc.inc
--- /dev/null
@@ -0,0 +1,9 @@
+config.bld
+package.bld
+package.xdc
+Platform.xdc
+Platform.xs
+package/package.bld.xml
+package/build.cfg
+package/package.xdc.inc
+package/package.cfg.xdc.inc
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/package/rel/dskDA830Custom.xdc.inc.manifest b/file_demo_bios/platforms/packages/dskDA830Custom/package/rel/dskDA830Custom.xdc.inc.manifest
--- /dev/null
@@ -0,0 +1,17 @@
+dskDA830Custom/Platform.xdc
+dskDA830Custom/Platform.xs
+dskDA830Custom/config.bld
+dskDA830Custom/package/.vers_b160
+dskDA830Custom/package/.vers_g180
+dskDA830Custom/package/.vers_r170
+dskDA830Custom/package/.xdc-B06
+dskDA830Custom/package/build.cfg
+dskDA830Custom/package/dskDA830Custom.ccs
+dskDA830Custom/package/dskDA830Custom.class
+dskDA830Custom/package/dskDA830Custom.java
+dskDA830Custom/package/dskDA830Custom.sch
+dskDA830Custom/package/package.bld.xml
+dskDA830Custom/package/package.defs.h
+dskDA830Custom/package/package_dskDA830Custom.c
+dskDA830Custom/package.bld
+dskDA830Custom/package.xdc
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/package/rel/dskDA830Custom.xdc.ninc b/file_demo_bios/platforms/packages/dskDA830Custom/package/rel/dskDA830Custom.xdc.ninc
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/package/rel/dskDA830Custom.zip.dep b/file_demo_bios/platforms/packages/dskDA830Custom/package/rel/dskDA830Custom.zip.dep
--- /dev/null
@@ -0,0 +1,34 @@
+dskDA830Custom.zip: Platform.xdc
+Platform.xdc:
+dskDA830Custom.zip: Platform.xs
+Platform.xs:
+dskDA830Custom.zip: config.bld
+config.bld:
+dskDA830Custom.zip: package/.vers_b160
+package/.vers_b160:
+dskDA830Custom.zip: package/.vers_g180
+package/.vers_g180:
+dskDA830Custom.zip: package/.vers_r170
+package/.vers_r170:
+dskDA830Custom.zip: package/.xdc-B06
+package/.xdc-B06:
+dskDA830Custom.zip: package/build.cfg
+package/build.cfg:
+dskDA830Custom.zip: package/dskDA830Custom.ccs
+package/dskDA830Custom.ccs:
+dskDA830Custom.zip: package/dskDA830Custom.class
+package/dskDA830Custom.class:
+dskDA830Custom.zip: package/dskDA830Custom.java
+package/dskDA830Custom.java:
+dskDA830Custom.zip: package/dskDA830Custom.sch
+package/dskDA830Custom.sch:
+dskDA830Custom.zip: package/package.bld.xml
+package/package.bld.xml:
+dskDA830Custom.zip: package/package.defs.h
+package/package.defs.h:
+dskDA830Custom.zip: package/package_dskDA830Custom.c
+package/package_dskDA830Custom.c:
+dskDA830Custom.zip: package.bld
+package.bld:
+dskDA830Custom.zip: package.xdc
+package.xdc:
diff --git a/file_demo_bios/platforms/packages/dskDA830Custom/package/rel/dskDA830Custom/dskDA830Custom/package/package.rel.xml b/file_demo_bios/platforms/packages/dskDA830Custom/package/rel/dskDA830Custom/dskDA830Custom/package/package.rel.xml
--- /dev/null
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="windows-1252"?>
+<!-- This file conforms to the DTD xdc/bld/release.dtd -->
+<release name="dskDA830Custom" label="default" date="1468358644557" buildCount="1" producerId="undefined">
+<package name="dskDA830Custom"
+ version=""/>
+<imports>
+</imports>
+<references>
+ <package name="xdc"
+ version="1, 1, 1, 1449624895255"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="IPackage.xdc"/>
+ <file name="IPackage.xs"/>
+ <file name="Warnings.xs"/>
+ <file name="om2.xs"/>
+ <file name="package.xs"/>
+ <file name="template.xs"/>
+ <file name="utils.js"/>
+ <file name="xdc.tci"/>
+ <file name="xmlgen.xs"/>
+ <file name="xmlgen2.xs"/>
+ </package>
+ <package name="xdc.services.global"
+ version="1, 0, 0, 1449625038320"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="Clock.xs"/>
+ <file name="Trace.xs"/>
+ <file name="java\package.jar"/>
+ </package>
+ <package name="xdc.bld"
+ version="1, 0, 2, 1449624907828"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="BuildEnvironment.xs"/>
+ <file name="Configuration.xs"/>
+ <file name="Executable.xs"/>
+ <file name="ITarget.xs"/>
+ <file name="ITarget2.xs"/>
+ <file name="ITarget3.xs"/>
+ <file name="ITargetFilter.xs"/>
+ <file name="Library.xs"/>
+ <file name="Manifest.xs"/>
+ <file name="PackageContents.xs"/>
+ <file name="Repository.xs"/>
+ <file name="Script.xs"/>
+ <file name="Utils.xs"/>
+ <file name="_gen.xs"/>
+ <file name="bld.js"/>
+ <file name="package.xs"/>
+ </package>
+ <package name="xdc.platform"
+ version="1, 0, 1, 1449624947821"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="ICpuDataSheet.xdc"/>
+ <file name="IExeContext.xdc"/>
+ <file name="IPeripheral.xdc"/>
+ <file name="IPlatform.xdc"/>
+ </package>
+ <package name="ti.platforms.generic"
+ version="1, 0, 0, 1, 1454090561812"
+ providerId="C:/ti/bios_6_45_01_29/packages">
+ <file name="Platform.xdc"/>
+ </package>
+ <package name="xdc.shelf"
+ version="1, 0, 0, 1449625162069"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="java\antlr.jar"/>
+ <file name="java\ecj.jar"/>
+ <file name="java\js.jar"/>
+ <file name="java\tar.jar"/>
+ </package>
+ <package name="xdc.services.intern.gen"
+ version="1, 0, 0, 1449625079795"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="java\package.jar"/>
+ </package>
+ <package name="xdc.services.intern.cmd"
+ version="1, 0, 0, 1449625073074"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="java\package.jar"/>
+ </package>
+ <package name="xdc.services.intern.xsr"
+ version="1, 0, 0, 1449625086761"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="java\package.jar"/>
+ </package>
+ <package name="xdc.services.spec"
+ version="1, 0, 0, 1449625113628"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="java\package.jar"/>
+ </package>
+ <xdcRoot base="C:/ti/xdctools_3_32_00_06_core/">
+ <file name="/packages/xdc/package.xdc"/>
+ <xdcCorePkg version="16, 0, 2, 1449624941057" producerId="/db/ztree/library/trees/xdc/xdc-B06/src/packages" buildCount="1" releaseName="xdc_corevers" label="default" date="1449624941057"/>
+ </xdcRoot>
+</references>
+<orphans>
+</orphans>
+</release>
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/.dlls b/file_demo_bios/platforms/packages/evmAM572XCustom/.dlls
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/.executables b/file_demo_bios/platforms/packages/evmAM572XCustom/.executables
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/.interfaces b/file_demo_bios/platforms/packages/evmAM572XCustom/.interfaces
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/.libraries b/file_demo_bios/platforms/packages/evmAM572XCustom/.libraries
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/.xdcenv.mak b/file_demo_bios/platforms/packages/evmAM572XCustom/.xdcenv.mak
--- /dev/null
@@ -0,0 +1,16 @@
+#
+_XDCBUILDCOUNT = 2
+ifneq (,$(findstring path,$(_USEXDCENV_)))
+override XDCPATH = C:/ti/volib_C66_2_1_0_1/packages;C:/ti/pdk_k2g_1_0_2/packages;C:/ti/ipc_3_43_01_03/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/uia_2_00_03_43/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/ndk_2_24_03_35/packages;C:/ti/framework_components_3_40_02_07/packages;C:/ti/framework_components_3_40_02_07/examples;C:/ti/xdctools_3_32_00_06_core/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/pdk_k2hk_4_0_0/packages;C:/ti/dsplib_c66x_3_4_0_0/packages;C:/ti/aer_c64Px_obj_17_0_0_0/packages;C:/ti/openmp_dsp_k2g_2_03_01_00/packages;C:/ti/ctoolslib_2_2_0_0/packages;C:/ti/imglib_c66x_3_1_1_0/packages;C:/ti/mathlib_c66x_3_1_1_0/packages;C:/ti/bios_6_45_01_29/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/xdais_7_24_00_04/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/xdais_7_24_00_04/examples;C:/c55_lp/ti_c55_csl/bios_5_42_02_10/packages;C:/ti/volib_C64P_2_1_0_1/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/edma3_lld_02_12_01_22/packages
+override XDCROOT = C:/ti/xdctools_3_32_00_06_core
+override XDCBUILDCFG = ./config.bld
+endif
+ifneq (,$(findstring args,$(_USEXDCENV_)))
+override XDCARGS =
+override XDCTARGETS =
+endif
+#
+ifeq (0,1)
+PKGPATH = C:/ti/volib_C66_2_1_0_1/packages;C:/ti/pdk_k2g_1_0_2/packages;C:/ti/ipc_3_43_01_03/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/uia_2_00_03_43/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/ndk_2_24_03_35/packages;C:/ti/framework_components_3_40_02_07/packages;C:/ti/framework_components_3_40_02_07/examples;C:/ti/xdctools_3_32_00_06_core/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/pdk_k2hk_4_0_0/packages;C:/ti/dsplib_c66x_3_4_0_0/packages;C:/ti/aer_c64Px_obj_17_0_0_0/packages;C:/ti/openmp_dsp_k2g_2_03_01_00/packages;C:/ti/ctoolslib_2_2_0_0/packages;C:/ti/imglib_c66x_3_1_1_0/packages;C:/ti/mathlib_c66x_3_1_1_0/packages;C:/ti/bios_6_45_01_29/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/xdais_7_24_00_04/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/xdais_7_24_00_04/examples;C:/c55_lp/ti_c55_csl/bios_5_42_02_10/packages;C:/ti/volib_C64P_2_1_0_1/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/edma3_lld_02_12_01_22/packages;C:/ti/xdctools_3_32_00_06_core/packages;..
+HOSTOS = Windows
+endif
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/Platform.xdc b/file_demo_bios/platforms/packages/evmAM572XCustom/Platform.xdc
--- /dev/null
@@ -0,0 +1,76 @@
+/*!
+ * File generated by platform wizard. DO NOT MODIFY
+ *
+ */
+
+metaonly module Platform inherits xdc.platform.IPlatform {
+
+ config ti.platforms.generic.Platform.Instance CPU =
+ ti.platforms.generic.Platform.create("CPU", {
+ clockRate: 750,
+ catalogName: "ti.catalog.c6000",
+ deviceName: "DRA7XX",
+ customMemoryMap:
+ [
+ ["OCMC_RAM2",
+ {
+ name: "OCMC_RAM2",
+ base: 0x40400000,
+ len: 0x00100000,
+ space: "code/data",
+ access: "RWX",
+ }
+ ],
+ ["OCMC_RAM1",
+ {
+ name: "OCMC_RAM1",
+ base: 0x40300000,
+ len: 0x00080000,
+ space: "code/data",
+ access: "RWX",
+ }
+ ],
+ ["OCMC_RAM3",
+ {
+ name: "OCMC_RAM3",
+ base: 0x40500000,
+ len: 0x00100000,
+ space: "code/data",
+ access: "RWX",
+ }
+ ],
+ ["L2SRAM",
+ {
+ name: "L2SRAM",
+ base: 0x00800000,
+ len: 0x00040000,
+ space: "code/data",
+ access: "RWX",
+ }
+ ],
+ ["EXT_RAM",
+ {
+ name: "EXT_RAM",
+ base: 0x80000000,
+ len: 0x80000000,
+ space: "code/data",
+ access: "RWX",
+ }
+ ],
+ ],
+ l2Mode: "0k",
+ l1PMode: "32k",
+ l1DMode: "32k",
+
+ });
+
+instance :
+
+ override config string codeMemory = "L2SRAM";
+ override config string dataMemory = "L2SRAM";
+ override config string stackMemory = "L2SRAM";
+
+ config String l2Mode = "0k";
+ config String l1PMode = "32k";
+ config String l1DMode = "32k";
+}
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/Platform.xs b/file_demo_bios/platforms/packages/evmAM572XCustom/Platform.xs
--- /dev/null
@@ -0,0 +1,33 @@
+/*!
+ * File generated by platform wizard. DO NOT MODIFY.
+ *
+ */
+
+function getCpuDataSheet(cpuId)
+{
+ return this.$module.CPU.getCpuDataSheet(cpuId);
+}
+
+function getCreateArgs()
+{
+ return this.$module.CPU;
+}
+
+function getExeContext(prog)
+{
+ return this.$module.CPU.getExeContext(prog);
+}
+
+
+function getExecCmd(prog)
+{
+ return this.$module.CPU.getExecCmd(prog);
+}
+
+
+function getLinkTemplate(prog)
+{
+ return this.$module.CPU.getLinkTemplate(prog);
+}
+
+
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/config.bld b/file_demo_bios/platforms/packages/evmAM572XCustom/config.bld
--- /dev/null
@@ -0,0 +1,6 @@
+/*!
+ * File generated by platform wizard. DO NOT MODIFY
+ *
+ */
+
+Build.useTargets = null;
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/evmAM572XCustom.zip b/file_demo_bios/platforms/packages/evmAM572XCustom/evmAM572XCustom.zip
new file mode 100644 (file)
index 0000000..fab5ca0
Binary files /dev/null and b/file_demo_bios/platforms/packages/evmAM572XCustom/evmAM572XCustom.zip differ
index 0000000..fab5ca0
Binary files /dev/null and b/file_demo_bios/platforms/packages/evmAM572XCustom/evmAM572XCustom.zip differ
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/package.bld b/file_demo_bios/platforms/packages/evmAM572XCustom/package.bld
--- /dev/null
@@ -0,0 +1,9 @@
+/*!
+ * File generated by platform wizard. DO NOT MODIFY.
+ *
+ */
+
+Pkg.attrs.archiver = "zip";
+Pkg.attrs.exportAll = true;
+
+
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/package.mak b/file_demo_bios/platforms/packages/evmAM572XCustom/package.mak
--- /dev/null
@@ -0,0 +1,161 @@
+#
+# Do not edit this file. This file is generated from
+# package.bld. Any modifications to this file will be
+# overwritten whenever makefiles are re-generated.
+#
+
+unexport MAKEFILE_LIST
+MK_NOGENDEPS := $(filter clean,$(MAKECMDGOALS))
+override PKGDIR = evmAM572XCustom
+XDCINCS = -I. -I$(strip $(subst ;, -I,$(subst $(space),\$(space),$(XPKGPATH))))
+XDCCFGDIR = package/cfg/
+
+#
+# The following dependencies ensure package.mak is rebuilt
+# in the event that some included BOM script changes.
+#
+ifneq (clean,$(MAKECMDGOALS))
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/utils.js:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/utils.js
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/xdc.tci:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/xdc.tci
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/template.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/template.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/om2.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/om2.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/xmlgen.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/xmlgen.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/xmlgen2.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/xmlgen2.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/Warnings.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/Warnings.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/IPackage.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/IPackage.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/package.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/package.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/global/Clock.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/global/Clock.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/global/Trace.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/global/Trace.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/bld.js:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/bld.js
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/BuildEnvironment.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/BuildEnvironment.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/PackageContents.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/PackageContents.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/_gen.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/_gen.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Library.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Library.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Executable.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Executable.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Repository.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Repository.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Configuration.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Configuration.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Script.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Script.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Manifest.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Manifest.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Utils.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Utils.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITarget.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITarget.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITarget2.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITarget2.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITarget3.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITarget3.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITargetFilter.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITargetFilter.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/package.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/package.xs
+package.mak: config.bld
+package.mak: package.bld
+endif
+
+
+all: .executables
+.executables: .libraries .dlls
+.libraries: .interfaces
+
+PKGCFGS := $(wildcard package.xs) package/build.cfg
+.interfaces: package/package.xdc.inc package/package.defs.h package.xdc $(PKGCFGS)
+
+-include package/package.xdc.dep
+package/%.xdc.inc package/%_evmAM572XCustom.c package/%.defs.h: %.xdc $(PKGCFGS)
+ @$(MSG) generating interfaces for package evmAM572XCustom" (because $@ is older than $(firstword $?))" ...
+ $(XSRUN) -f xdc/services/intern/cmd/build.xs $(MK_IDLOPTS) -m package/package.xdc.dep -i package/package.xdc.inc package.xdc
+
+ifeq (,$(MK_NOGENDEPS))
+-include package/package.cfg.dep
+endif
+
+package/package.cfg.xdc.inc: .interfaces $(XDCROOT)/packages/xdc/cfg/cfginc.js package.xdc
+ @$(MSG) generating schema include file list ...
+ $(CONFIG) -f $(XDCROOT)/packages/xdc/cfg/cfginc.js evmAM572XCustom $@
+
+test:;
+%,copy:
+ @$(if $<,,$(MSG) don\'t know how to build $*; exit 1)
+ @$(MSG) cp $< $@
+ $(RM) $@
+ $(CP) $< $@
+
+$(XDCCFGDIR)%.c $(XDCCFGDIR)%.h $(XDCCFGDIR)%.xdl: $(XDCCFGDIR)%.cfg $(XDCROOT)/packages/xdc/cfg/Main.xs | .interfaces
+ @$(MSG) "configuring $(_PROG_NAME) from $< ..."
+ $(CONFIG) $(_PROG_XSOPTS) xdc.cfg $(_PROG_NAME) $(XDCCFGDIR)$*.cfg $(XDCCFGDIR)$*
+
+.PHONY: release,evmAM572XCustom
+ifeq (,$(MK_NOGENDEPS))
+-include package/rel/evmAM572XCustom.zip.dep
+endif
+package/rel/evmAM572XCustom/evmAM572XCustom/package/package.rel.xml: package/package.bld.xml
+package/rel/evmAM572XCustom/evmAM572XCustom/package/package.rel.xml: package/build.cfg
+package/rel/evmAM572XCustom/evmAM572XCustom/package/package.rel.xml: package/package.xdc.inc
+package/rel/evmAM572XCustom/evmAM572XCustom/package/package.rel.xml: package/package.cfg.xdc.inc
+package/rel/evmAM572XCustom/evmAM572XCustom/package/package.rel.xml: .force
+ @$(MSG) generating external release references $@ ...
+ $(XS) $(JSENV) -f $(XDCROOT)/packages/xdc/bld/rel.js $(MK_RELOPTS) . $@
+
+evmAM572XCustom.zip: package/rel/evmAM572XCustom.xdc.inc package/rel/evmAM572XCustom/evmAM572XCustom/package/package.rel.xml
+ @$(MSG) making release file $@ "(because of $(firstword $?))" ...
+ -$(RM) $@
+ $(call MKRELZIP,package/rel/evmAM572XCustom.xdc.inc,package/rel/evmAM572XCustom.zip.dep)
+
+
+release release,evmAM572XCustom: all evmAM572XCustom.zip
+clean:: .clean
+ -$(RM) evmAM572XCustom.zip
+ -$(RM) package/rel/evmAM572XCustom.xdc.inc
+ -$(RM) package/rel/evmAM572XCustom.zip.dep
+
+clean:: .clean
+ -$(RM) .libraries $(wildcard .libraries,*)
+clean::
+ -$(RM) .dlls $(wildcard .dlls,*)
+#
+# The following clean rule removes user specified
+# generated files or directories.
+#
+
+ifneq (clean,$(MAKECMDGOALS))
+ifeq (,$(wildcard package))
+ $(shell $(MKDIR) package)
+endif
+ifeq (,$(wildcard package/cfg))
+ $(shell $(MKDIR) package/cfg)
+endif
+ifeq (,$(wildcard package/lib))
+ $(shell $(MKDIR) package/lib)
+endif
+ifeq (,$(wildcard package/rel))
+ $(shell $(MKDIR) package/rel)
+endif
+ifeq (,$(wildcard package/internal))
+ $(shell $(MKDIR) package/internal)
+endif
+endif
+clean::
+ -$(RMDIR) package
+
+
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/package.xdc b/file_demo_bios/platforms/packages/evmAM572XCustom/package.xdc
--- /dev/null
@@ -0,0 +1,9 @@
+/*!
+ * File generated by platform wizard. DO NOT MODIFY.
+ *
+ */
+
+package evmAM572XCustom {
+ module Platform;
+}
+
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/package/.vers_b160 b/file_demo_bios/platforms/packages/evmAM572XCustom/package/.vers_b160
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/package/.vers_g180 b/file_demo_bios/platforms/packages/evmAM572XCustom/package/.vers_g180
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/package/.vers_r170 b/file_demo_bios/platforms/packages/evmAM572XCustom/package/.vers_r170
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/package/.xdc-B06 b/file_demo_bios/platforms/packages/evmAM572XCustom/package/.xdc-B06
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/package/build.cfg b/file_demo_bios/platforms/packages/evmAM572XCustom/package/build.cfg
--- /dev/null
@@ -0,0 +1,9 @@
+if (pkg.$vers.length >= 3) {
+ pkg.$vers.push(Packages.xdc.services.global.Vers.getDate(xdc.csd() + '/..'));
+}
+
+pkg.build.libraries = [
+];
+
+pkg.build.libDesc = [
+];
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/package/evmAM572XCustom.ccs b/file_demo_bios/platforms/packages/evmAM572XCustom/package/evmAM572XCustom.ccs
new file mode 100644 (file)
index 0000000..f9ebf9f
Binary files /dev/null and b/file_demo_bios/platforms/packages/evmAM572XCustom/package/evmAM572XCustom.ccs differ
index 0000000..f9ebf9f
Binary files /dev/null and b/file_demo_bios/platforms/packages/evmAM572XCustom/package/evmAM572XCustom.ccs differ
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/package/evmAM572XCustom.class b/file_demo_bios/platforms/packages/evmAM572XCustom/package/evmAM572XCustom.class
new file mode 100644 (file)
index 0000000..a10dbbd
Binary files /dev/null and b/file_demo_bios/platforms/packages/evmAM572XCustom/package/evmAM572XCustom.class differ
index 0000000..a10dbbd
Binary files /dev/null and b/file_demo_bios/platforms/packages/evmAM572XCustom/package/evmAM572XCustom.class differ
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/package/evmAM572XCustom.java b/file_demo_bios/platforms/packages/evmAM572XCustom/package/evmAM572XCustom.java
--- /dev/null
@@ -0,0 +1,365 @@
+/*
+ * Do not modify this file; it is automatically
+ * generated and any modifications will be overwritten.
+ *
+ * @(#) xdc-B06
+ */
+import java.util.*;
+import org.mozilla.javascript.*;
+import xdc.services.intern.xsr.*;
+import xdc.services.spec.Session;
+
+public class evmAM572XCustom
+{
+ static final String VERS = "@(#) xdc-B06\n";
+
+ static final Proto.Elm $$T_Bool = Proto.Elm.newBool();
+ static final Proto.Elm $$T_Num = Proto.Elm.newNum();
+ static final Proto.Elm $$T_Str = Proto.Elm.newStr();
+ static final Proto.Elm $$T_Obj = Proto.Elm.newObj();
+
+ static final Proto.Fxn $$T_Met = new Proto.Fxn(null, null, 0, -1, false);
+ static final Proto.Map $$T_Map = new Proto.Map($$T_Obj);
+ static final Proto.Arr $$T_Vec = new Proto.Arr($$T_Obj);
+
+ static final XScriptO $$DEFAULT = Value.DEFAULT;
+ static final Object $$UNDEF = Undefined.instance;
+
+ static final Proto.Obj $$Package = (Proto.Obj)Global.get("$$Package");
+ static final Proto.Obj $$Module = (Proto.Obj)Global.get("$$Module");
+ static final Proto.Obj $$Instance = (Proto.Obj)Global.get("$$Instance");
+ static final Proto.Obj $$Params = (Proto.Obj)Global.get("$$Params");
+
+ static final Object $$objFldGet = Global.get("$$objFldGet");
+ static final Object $$objFldSet = Global.get("$$objFldSet");
+ static final Object $$proxyGet = Global.get("$$proxyGet");
+ static final Object $$proxySet = Global.get("$$proxySet");
+ static final Object $$delegGet = Global.get("$$delegGet");
+ static final Object $$delegSet = Global.get("$$delegSet");
+
+ Scriptable xdcO;
+ Session ses;
+ Value.Obj om;
+
+ boolean isROV;
+ boolean isCFG;
+
+ Proto.Obj pkgP;
+ Value.Obj pkgV;
+
+ ArrayList<Object> imports = new ArrayList<Object>();
+ ArrayList<Object> loggables = new ArrayList<Object>();
+ ArrayList<Object> mcfgs = new ArrayList<Object>();
+ ArrayList<Object> icfgs = new ArrayList<Object>();
+ ArrayList<String> inherits = new ArrayList<String>();
+ ArrayList<Object> proxies = new ArrayList<Object>();
+ ArrayList<Object> sizes = new ArrayList<Object>();
+ ArrayList<Object> tdefs = new ArrayList<Object>();
+
+ void $$IMPORTS()
+ {
+ Global.callFxn("loadPackage", xdcO, "xdc");
+ Global.callFxn("loadPackage", xdcO, "xdc.corevers");
+ Global.callFxn("loadPackage", xdcO, "xdc.platform");
+ Global.callFxn("loadPackage", xdcO, "ti.platforms.generic");
+ }
+
+ void $$OBJECTS()
+ {
+ pkgP = (Proto.Obj)om.bind("evmAM572XCustom.Package", new Proto.Obj());
+ pkgV = (Value.Obj)om.bind("evmAM572XCustom", new Value.Obj("evmAM572XCustom", pkgP));
+ }
+
+ void Platform$$OBJECTS()
+ {
+ Proto.Obj po, spo;
+ Value.Obj vo;
+
+ po = (Proto.Obj)om.bind("evmAM572XCustom.Platform.Module", new Proto.Obj());
+ vo = (Value.Obj)om.bind("evmAM572XCustom.Platform", new Value.Obj("evmAM572XCustom.Platform", po));
+ pkgV.bind("Platform", vo);
+ // decls
+ om.bind("evmAM572XCustom.Platform.Board", om.findStrict("xdc.platform.IPlatform.Board", "evmAM572XCustom"));
+ om.bind("evmAM572XCustom.Platform.Memory", om.findStrict("xdc.platform.IPlatform.Memory", "evmAM572XCustom"));
+ // insts
+ Object insP = om.bind("evmAM572XCustom.Platform.Instance", new Proto.Obj());
+ po = (Proto.Obj)om.bind("evmAM572XCustom.Platform$$Object", new Proto.Obj());
+ om.bind("evmAM572XCustom.Platform.Object", new Proto.Str(po, true));
+ po = (Proto.Obj)om.bind("evmAM572XCustom.Platform$$Params", new Proto.Obj());
+ om.bind("evmAM572XCustom.Platform.Params", new Proto.Str(po, true));
+ }
+
+ void Platform$$CONSTS()
+ {
+ // module Platform
+ }
+
+ void Platform$$CREATES()
+ {
+ Proto.Fxn fxn;
+ StringBuilder sb;
+
+ fxn = (Proto.Fxn)om.bind("evmAM572XCustom.Platform$$create", new Proto.Fxn(om.findStrict("evmAM572XCustom.Platform.Module", "evmAM572XCustom"), om.findStrict("evmAM572XCustom.Platform.Instance", "evmAM572XCustom"), 2, 1, false));
+ fxn.addArg(0, "name", $$T_Str, $$UNDEF);
+ fxn.addArg(1, "__params", (Proto)om.findStrict("evmAM572XCustom.Platform.Params", "evmAM572XCustom"), Global.newObject());
+ sb = new StringBuilder();
+ sb.append("evmAM572XCustom$Platform$$create = function( name, __params ) {\n");
+ sb.append("var __mod = xdc.om['evmAM572XCustom.Platform'];\n");
+ sb.append("var __inst = xdc.om['evmAM572XCustom.Platform.Instance'].$$make();\n");
+ sb.append("__inst.$$bind('$package', xdc.om['evmAM572XCustom']);\n");
+ sb.append("__inst.$$bind('$index', __mod.$instances.length);\n");
+ sb.append("__inst.$$bind('$category', 'Instance');\n");
+ sb.append("__inst.$$bind('$args', {name:name});\n");
+ sb.append("__inst.$$bind('$module', __mod);\n");
+ sb.append("__mod.$instances.$add(__inst);\n");
+ sb.append("__inst.externalMemoryMap = __mod.PARAMS.externalMemoryMap;\n");
+ sb.append("__inst.customMemoryMap = __mod.PARAMS.customMemoryMap;\n");
+ sb.append("__inst.renameMap = __mod.PARAMS.renameMap;\n");
+ sb.append("__inst.dataMemory = __mod.PARAMS.dataMemory;\n");
+ sb.append("__inst.codeMemory = __mod.PARAMS.codeMemory;\n");
+ sb.append("__inst.stackMemory = __mod.PARAMS.stackMemory;\n");
+ sb.append("__inst.sectMap = __mod.PARAMS.sectMap;\n");
+ sb.append("__inst.peripherals = __mod.PARAMS.peripherals;\n");
+ sb.append("for (var __p in __params) __inst[__p] = __params[__p];\n");
+ sb.append("var save = xdc.om.$curpkg;\n");
+ sb.append("xdc.om.$$bind('$curpkg', __mod.$package.$name);\n");
+ sb.append("__mod.instance$meta$init.$fxn.apply(__inst, [name]);\n");
+ sb.append("xdc.om.$$bind('$curpkg', save);\n");
+ sb.append("__inst.$$bless();\n");
+ sb.append("return __inst;\n");
+ sb.append("}\n");
+ Global.eval(sb.toString());
+ fxn = (Proto.Fxn)om.bind("evmAM572XCustom.Platform$$construct", new Proto.Fxn(om.findStrict("evmAM572XCustom.Platform.Module", "evmAM572XCustom"), null, 3, 1, false));
+ fxn.addArg(0, "__obj", (Proto)om.findStrict("evmAM572XCustom.Platform$$Object", "evmAM572XCustom"), null);
+ fxn.addArg(1, "name", $$T_Str, $$UNDEF);
+ fxn.addArg(2, "__params", (Proto)om.findStrict("evmAM572XCustom.Platform.Params", "evmAM572XCustom"), Global.newObject());
+ sb = new StringBuilder();
+ sb.append("evmAM572XCustom$Platform$$construct = function( __obj, name, __params ) {\n");
+ sb.append("var __mod = xdc.om['evmAM572XCustom.Platform'];\n");
+ sb.append("var __inst = __obj;\n");
+ sb.append("__inst.$$bind('$args', {name:name});\n");
+ sb.append("__inst.$$bind('$module', __mod);\n");
+ sb.append("__mod.$objects.$add(__inst);\n");
+ sb.append("__inst.externalMemoryMap = __mod.PARAMS.externalMemoryMap;\n");
+ sb.append("__inst.customMemoryMap = __mod.PARAMS.customMemoryMap;\n");
+ sb.append("__inst.renameMap = __mod.PARAMS.renameMap;\n");
+ sb.append("__inst.dataMemory = __mod.PARAMS.dataMemory;\n");
+ sb.append("__inst.codeMemory = __mod.PARAMS.codeMemory;\n");
+ sb.append("__inst.stackMemory = __mod.PARAMS.stackMemory;\n");
+ sb.append("__inst.sectMap = __mod.PARAMS.sectMap;\n");
+ sb.append("__inst.peripherals = __mod.PARAMS.peripherals;\n");
+ sb.append("for (var __p in __params) __inst[__p] = __params[__p];\n");
+ sb.append("__inst.$$bless();\n");
+ sb.append("return null;\n");
+ sb.append("}\n");
+ Global.eval(sb.toString());
+ }
+
+ void Platform$$FUNCTIONS()
+ {
+ Proto.Fxn fxn;
+
+ }
+
+ void Platform$$SIZES()
+ {
+ }
+
+ void Platform$$TYPES()
+ {
+ Scriptable cap;
+ Proto.Obj po;
+ Proto.Str ps;
+ Proto.Typedef pt;
+ Object fxn;
+
+ cap = (Scriptable)Global.callFxn("loadCapsule", xdcO, "evmAM572XCustom/Platform.xs");
+ om.bind("evmAM572XCustom.Platform$$capsule", cap);
+ po = (Proto.Obj)om.findStrict("evmAM572XCustom.Platform.Module", "evmAM572XCustom");
+ po.init("evmAM572XCustom.Platform.Module", om.findStrict("xdc.platform.IPlatform.Module", "evmAM572XCustom"));
+ po.addFld("$hostonly", $$T_Num, 1, "r");
+ po.addFld("CPU", (Proto)om.findStrict("ti.platforms.generic.Platform.Instance", "evmAM572XCustom"), $$UNDEF, "wh");
+ po.addFxn("create", (Proto.Fxn)om.findStrict("evmAM572XCustom.Platform$$create", "evmAM572XCustom"), Global.get("evmAM572XCustom$Platform$$create"));
+ po.addFxn("construct", (Proto.Fxn)om.findStrict("evmAM572XCustom.Platform$$construct", "evmAM572XCustom"), Global.get("evmAM572XCustom$Platform$$construct"));
+ fxn = Global.get(cap, "module$use");
+ if (fxn != null) om.bind("evmAM572XCustom.Platform$$module$use", true);
+ if (fxn != null) po.addFxn("module$use", $$T_Met, fxn);
+ fxn = Global.get(cap, "module$meta$init");
+ if (fxn != null) om.bind("evmAM572XCustom.Platform$$module$meta$init", true);
+ if (fxn != null) po.addFxn("module$meta$init", $$T_Met, fxn);
+ fxn = Global.get(cap, "instance$meta$init");
+ if (fxn != null) om.bind("evmAM572XCustom.Platform$$instance$meta$init", true);
+ if (fxn != null) po.addFxn("instance$meta$init", $$T_Met, fxn);
+ fxn = Global.get(cap, "module$validate");
+ if (fxn != null) om.bind("evmAM572XCustom.Platform$$module$validate", true);
+ if (fxn != null) po.addFxn("module$validate", $$T_Met, fxn);
+ po = (Proto.Obj)om.findStrict("evmAM572XCustom.Platform.Instance", "evmAM572XCustom");
+ po.init("evmAM572XCustom.Platform.Instance", om.findStrict("xdc.platform.IPlatform.Instance", "evmAM572XCustom"));
+ po.addFld("$hostonly", $$T_Num, 1, "r");
+ po.addFld("codeMemory", $$T_Str, "L2SRAM", "wh");
+ po.addFld("dataMemory", $$T_Str, "L2SRAM", "wh");
+ po.addFld("stackMemory", $$T_Str, "L2SRAM", "wh");
+ po.addFld("l2Mode", $$T_Str, "0k", "wh");
+ po.addFld("l1PMode", $$T_Str, "32k", "wh");
+ po.addFld("l1DMode", $$T_Str, "32k", "wh");
+ fxn = Global.get(cap, "getCpuDataSheet");
+ if (fxn != null) po.addFxn("getCpuDataSheet", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getCpuDataSheet", "evmAM572XCustom"), fxn);
+ fxn = Global.get(cap, "getCreateArgs");
+ if (fxn != null) po.addFxn("getCreateArgs", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getCreateArgs", "evmAM572XCustom"), fxn);
+ fxn = Global.get(cap, "getExeContext");
+ if (fxn != null) po.addFxn("getExeContext", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getExeContext", "evmAM572XCustom"), fxn);
+ fxn = Global.get(cap, "getExecCmd");
+ if (fxn != null) po.addFxn("getExecCmd", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getExecCmd", "evmAM572XCustom"), fxn);
+ fxn = Global.get(cap, "getLinkTemplate");
+ if (fxn != null) po.addFxn("getLinkTemplate", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getLinkTemplate", "evmAM572XCustom"), fxn);
+ po = (Proto.Obj)om.findStrict("evmAM572XCustom.Platform$$Params", "evmAM572XCustom");
+ po.init("evmAM572XCustom.Platform.Params", om.findStrict("xdc.platform.IPlatform$$Params", "evmAM572XCustom"));
+ po.addFld("$hostonly", $$T_Num, 1, "r");
+ po.addFld("codeMemory", $$T_Str, "L2SRAM", "wh");
+ po.addFld("dataMemory", $$T_Str, "L2SRAM", "wh");
+ po.addFld("stackMemory", $$T_Str, "L2SRAM", "wh");
+ po.addFld("l2Mode", $$T_Str, "0k", "wh");
+ po.addFld("l1PMode", $$T_Str, "32k", "wh");
+ po.addFld("l1DMode", $$T_Str, "32k", "wh");
+ po = (Proto.Obj)om.findStrict("evmAM572XCustom.Platform$$Object", "evmAM572XCustom");
+ po.init("evmAM572XCustom.Platform.Object", om.findStrict("evmAM572XCustom.Platform.Instance", "evmAM572XCustom"));
+ fxn = Global.get(cap, "getCpuDataSheet");
+ if (fxn != null) po.addFxn("getCpuDataSheet", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getCpuDataSheet", "evmAM572XCustom"), fxn);
+ fxn = Global.get(cap, "getCreateArgs");
+ if (fxn != null) po.addFxn("getCreateArgs", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getCreateArgs", "evmAM572XCustom"), fxn);
+ fxn = Global.get(cap, "getExeContext");
+ if (fxn != null) po.addFxn("getExeContext", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getExeContext", "evmAM572XCustom"), fxn);
+ fxn = Global.get(cap, "getExecCmd");
+ if (fxn != null) po.addFxn("getExecCmd", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getExecCmd", "evmAM572XCustom"), fxn);
+ fxn = Global.get(cap, "getLinkTemplate");
+ if (fxn != null) po.addFxn("getLinkTemplate", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getLinkTemplate", "evmAM572XCustom"), fxn);
+ }
+
+ void Platform$$ROV()
+ {
+ }
+
+ void $$SINGLETONS()
+ {
+ pkgP.init("evmAM572XCustom.Package", (Proto.Obj)om.findStrict("xdc.IPackage.Module", "evmAM572XCustom"));
+ pkgP.bind("$capsule", $$UNDEF);
+ pkgV.init2(pkgP, "evmAM572XCustom", Value.DEFAULT, false);
+ pkgV.bind("$name", "evmAM572XCustom");
+ pkgV.bind("$category", "Package");
+ pkgV.bind("$$qn", "evmAM572XCustom.");
+ pkgV.bind("$vers", Global.newArray());
+ Value.Map atmap = (Value.Map)pkgV.getv("$attr");
+ atmap.seal("length");
+ imports.clear();
+ pkgV.bind("$imports", imports);
+ StringBuilder sb = new StringBuilder();
+ sb.append("var pkg = xdc.om['evmAM572XCustom'];\n");
+ sb.append("if (pkg.$vers.length >= 3) {\n");
+ sb.append("pkg.$vers.push(Packages.xdc.services.global.Vers.getDate(xdc.csd() + '/..'));\n");
+ sb.append("}\n");
+ sb.append("if ('evmAM572XCustom$$stat$base' in xdc.om) {\n");
+ sb.append("pkg.packageBase = xdc.om['evmAM572XCustom$$stat$base'];\n");
+ sb.append("pkg.packageRepository = xdc.om['evmAM572XCustom$$stat$root'];\n");
+ sb.append("}\n");
+ sb.append("pkg.build.libraries = [\n");
+ sb.append("];\n");
+ sb.append("pkg.build.libDesc = [\n");
+ sb.append("];\n");
+ Global.eval(sb.toString());
+ }
+
+ void Platform$$SINGLETONS()
+ {
+ Proto.Obj po;
+ Value.Obj vo;
+
+ vo = (Value.Obj)om.findStrict("evmAM572XCustom.Platform", "evmAM572XCustom");
+ po = (Proto.Obj)om.findStrict("evmAM572XCustom.Platform.Module", "evmAM572XCustom");
+ vo.init2(po, "evmAM572XCustom.Platform", $$DEFAULT, false);
+ vo.bind("Module", po);
+ vo.bind("$category", "Module");
+ vo.bind("$capsule", om.findStrict("evmAM572XCustom.Platform$$capsule", "evmAM572XCustom"));
+ vo.bind("Instance", om.findStrict("evmAM572XCustom.Platform.Instance", "evmAM572XCustom"));
+ vo.bind("Params", om.findStrict("evmAM572XCustom.Platform.Params", "evmAM572XCustom"));
+ vo.bind("PARAMS", ((Proto.Str)om.findStrict("evmAM572XCustom.Platform.Params", "evmAM572XCustom")).newInstance());
+ vo.bind("$package", om.findStrict("evmAM572XCustom", "evmAM572XCustom"));
+ tdefs.clear();
+ proxies.clear();
+ mcfgs.clear();
+ icfgs.clear();
+ inherits.clear();
+ vo.bind("Board", om.findStrict("xdc.platform.IPlatform.Board", "evmAM572XCustom"));
+ tdefs.add(om.findStrict("xdc.platform.IPlatform.Board", "evmAM572XCustom"));
+ vo.bind("Memory", om.findStrict("xdc.platform.IPlatform.Memory", "evmAM572XCustom"));
+ tdefs.add(om.findStrict("xdc.platform.IPlatform.Memory", "evmAM572XCustom"));
+ vo.bind("MemoryMap", om.findStrict("xdc.platform.IPlatform.MemoryMap", "evmAM572XCustom"));
+ vo.bind("$$tdefs", Global.newArray(tdefs.toArray()));
+ vo.bind("$$proxies", Global.newArray(proxies.toArray()));
+ vo.bind("$$mcfgs", Global.newArray(mcfgs.toArray()));
+ vo.bind("$$icfgs", Global.newArray(icfgs.toArray()));
+ inherits.add("xdc.platform");
+ vo.bind("$$inherits", Global.newArray(inherits.toArray()));
+ ((Value.Arr)pkgV.getv("$modules")).add(vo);
+ ((Value.Arr)om.findStrict("$modules", "evmAM572XCustom")).add(vo);
+ vo.bind("$$instflag", 1);
+ vo.bind("$$iobjflag", 1);
+ vo.bind("$$sizeflag", 1);
+ vo.bind("$$dlgflag", 0);
+ vo.bind("$$iflag", 1);
+ vo.bind("$$romcfgs", "|");
+ vo.bind("$$nortsflag", 0);
+ Proto.Str ps = (Proto.Str)vo.find("Module_State");
+ if (ps != null) vo.bind("$object", ps.newInstance());
+ vo.bind("$$meta_iobj", om.has("evmAM572XCustom.Platform$$instance$static$init", null) ? 1 : 0);
+ vo.bind("$$fxntab", Global.newArray());
+ vo.bind("$$logEvtCfgs", Global.newArray());
+ vo.bind("$$errorDescCfgs", Global.newArray());
+ vo.bind("$$assertDescCfgs", Global.newArray());
+ Value.Map atmap = (Value.Map)vo.getv("$attr");
+ atmap.seal("length");
+ vo.bind("Object", om.findStrict("evmAM572XCustom.Platform.Object", "evmAM572XCustom"));
+ pkgV.bind("Platform", vo);
+ ((Value.Arr)pkgV.getv("$unitNames")).add("Platform");
+ }
+
+ void $$INITIALIZATION()
+ {
+ Value.Obj vo;
+
+ if (isCFG) {
+ }//isCFG
+ Global.callFxn("module$meta$init", (Scriptable)om.findStrict("evmAM572XCustom.Platform", "evmAM572XCustom"));
+ vo = (Value.Obj)om.findStrict("evmAM572XCustom.Platform", "evmAM572XCustom");
+ Global.put(vo, "CPU", Global.callFxn("create", (Scriptable)om.find("ti.platforms.generic.Platform"), "CPU", Global.newObject("clockRate", 750L, "catalogName", "ti.catalog.c6000", "deviceName", "DRA7XX", "customMemoryMap", Global.newArray(new Object[]{Global.newArray(new Object[]{"OCMC_RAM2", Global.newObject("name", "OCMC_RAM2", "base", 0x40400000L, "len", 0x00100000L, "space", "code/data", "access", "RWX")}), Global.newArray(new Object[]{"OCMC_RAM1", Global.newObject("name", "OCMC_RAM1", "base", 0x40300000L, "len", 0x00080000L, "space", "code/data", "access", "RWX")}), Global.newArray(new Object[]{"OCMC_RAM3", Global.newObject("name", "OCMC_RAM3", "base", 0x40500000L, "len", 0x00100000L, "space", "code/data", "access", "RWX")}), Global.newArray(new Object[]{"L2SRAM", Global.newObject("name", "L2SRAM", "base", 0x00800000L, "len", 0x00040000L, "space", "code/data", "access", "RWX")}), Global.newArray(new Object[]{"EXT_RAM", Global.newObject("name", "EXT_RAM", "base", 0x80000000L, "len", 0x80000000L, "space", "code/data", "access", "RWX")})}), "l2Mode", "0k", "l1PMode", "32k", "l1DMode", "32k")));
+ Global.callFxn("init", pkgV);
+ ((Value.Obj)om.getv("evmAM572XCustom.Platform")).bless();
+ ((Value.Arr)om.findStrict("$packages", "evmAM572XCustom")).add(pkgV);
+ }
+
+ public void exec( Scriptable xdcO, Session ses )
+ {
+ this.xdcO = xdcO;
+ this.ses = ses;
+ om = (Value.Obj)xdcO.get("om", null);
+
+ Object o = om.geto("$name");
+ String s = o instanceof String ? (String)o : null;
+ isCFG = s != null && s.equals("cfg");
+ isROV = s != null && s.equals("rov");
+
+ $$IMPORTS();
+ $$OBJECTS();
+ Platform$$OBJECTS();
+ Platform$$CONSTS();
+ Platform$$CREATES();
+ Platform$$FUNCTIONS();
+ Platform$$SIZES();
+ Platform$$TYPES();
+ if (isROV) {
+ Platform$$ROV();
+ }//isROV
+ $$SINGLETONS();
+ Platform$$SINGLETONS();
+ $$INITIALIZATION();
+ }
+}
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/package/evmAM572XCustom.sch b/file_demo_bios/platforms/packages/evmAM572XCustom/package/evmAM572XCustom.sch
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/package/package.bld.xml b/file_demo_bios/platforms/packages/evmAM572XCustom/package/package.bld.xml
--- /dev/null
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="windows-1252"?>
+<!-- This file conforms to the DTD xdc/bld/build.dtd -->
+<package name="evmAM572XCustom" version="" producerId="undefined">
+ <units>
+ <module name="Platform"/>
+ </units>
+ <sources>
+ </sources>
+ <configscripts>
+ </configscripts>
+ <makefiles>
+ <srcFile name="package.mak" src="package.bld"/>
+ <srcFile name="package/package.xdc.dep" src="package.xdc"/>
+ <srcFile name="package/package.cfg.dep" src="package.xdc"/>
+ <srcFile name="package/rel/evmAM572XCustom.zip.dep" src="package/rel/evmAM572XCustom.xdc.inc"/>
+ </makefiles>
+ <targets>
+ </targets>
+ <libraries>
+ </libraries>
+ <configurations>
+ </configurations>
+ <executables>
+ </executables>
+ <tests>
+ </tests>
+ <releases relDir="package/rel/">
+ <release name="evmAM572XCustom"
+ pname="evmAM572XCustom.zip"
+ label="default"
+ >
+ <file name="package/package.bld.xml"/>
+ <file name="package/build.cfg"/>
+ <file name="package/package.xdc.inc"/>
+ <file name="package/package.cfg.xdc.inc"/>
+ </release>
+ </releases>
+ <repositories>
+ </repositories>
+</package>
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/package/package.cfg.dep b/file_demo_bios/platforms/packages/evmAM572XCustom/package/package.cfg.dep
--- /dev/null
@@ -0,0 +1,61 @@
+#
+# The following is generated by utils.genDep for package/package.cfg
+#
+package/package.cfg.c package/package.cfg.h package/package.cfg.xdl:Platform.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/Arctic.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/DRA7XX.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IAntara.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IDaVinci.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IHimalaya.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IOMAP2x3x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IOMAP3xxx.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITI811X.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITI8148.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITI8168.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C642x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C64_128K.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C64_1M.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C64_256K.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C64_512K.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C6655.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C6x0x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C6x1x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CDM6467.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CDRA44x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CDRA45x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CDRx40x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CTCI6484.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CTCI6486.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CTCI648x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CTCI6497.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320DA8xx.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320TCI6608.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320TCI6616.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320TCI663x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/Kepler.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/OMAP4430.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/OMAP5430.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TCI66AK2G02.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TDA3XX.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6421.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6428.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6452.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6454.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6654.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C66AK2E02.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C66AK2E05.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CDM6431.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CDM647.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CDM648.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CF761990.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CTNETV2685.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320TCI6630K2L.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TNETV107X.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/Vayu.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/c6x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/package.xs C:/ti/bios_6_45_01_29/packages/ti/platforms/generic/Platform.xs C:/ti/bios_6_45_01_29/packages/ti/platforms/generic/package.xs
+
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/Arctic.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/DRA7XX.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IAntara.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IDaVinci.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IHimalaya.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IOMAP2x3x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IOMAP3xxx.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITI811X.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITI8148.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITI8168.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C642x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C64_128K.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C64_1M.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C64_256K.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C64_512K.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C6655.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C6x0x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C6x1x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CDM6467.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CDRA44x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CDRA45x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CDRx40x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CTCI6484.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CTCI6486.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CTCI648x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CTCI6497.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320DA8xx.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320TCI6608.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320TCI6616.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320TCI663x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/Kepler.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/OMAP4430.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/OMAP5430.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TCI66AK2G02.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TDA3XX.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6421.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6428.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6452.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6454.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6654.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C66AK2E02.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C66AK2E05.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CDM6431.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CDM647.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CDM648.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CF761990.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CTNETV2685.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320TCI6630K2L.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TNETV107X.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/Vayu.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/c6x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/package.xs:
+C:/ti/bios_6_45_01_29/packages/ti/platforms/generic/Platform.xs:
+C:/ti/bios_6_45_01_29/packages/ti/platforms/generic/package.xs:
+
+
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/package/package.cfg.xdc.inc b/file_demo_bios/platforms/packages/evmAM572XCustom/package/package.cfg.xdc.inc
--- /dev/null
@@ -0,0 +1 @@
+Platform.xs
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/package/package.defs.h b/file_demo_bios/platforms/packages/evmAM572XCustom/package/package.defs.h
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+ * Do not modify this file; it is automatically
+ * generated and any modifications will be overwritten.
+ *
+ * @(#) xdc-B06
+ */
+
+#ifndef evmAM572XCustom__
+#define evmAM572XCustom__
+
+
+
+#endif /* evmAM572XCustom__ */
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/package/package.xdc.dep b/file_demo_bios/platforms/packages/evmAM572XCustom/package/package.xdc.dep
--- /dev/null
@@ -0,0 +1,69 @@
+clean::\r
+ $(RM) package/evmAM572XCustom.sch\r
+ $(RM) package/.vers_g180\r
+ $(RM) package/.vers_r170\r
+ $(RM) package/.vers_b160\r
+ $(RM) package/.xdc-B06\r
+ $(RM) package/evmAM572XCustom.java\r
+ $(RM) package/evmAM572XCustom.class\r
+ $(RM) package/package_evmAM572XCustom.c\r
+ $(RM) package/package.defs.h\r
+ $(RM) package/evmAM572XCustom.ccs\r
+
+.interfaces: package/evmAM572XCustom.sch package/.vers_g180 package/.vers_r170 package/.vers_b160 package/.xdc-B06 package/evmAM572XCustom.java package/package_evmAM572XCustom.c package/package.defs.h package/evmAM572XCustom.ccs
+package/package.xdc.inc: package/.vers_g180
+package/.vers_g180:
+package/package.xdc.inc: package/.vers_r170
+package/.vers_r170:
+package/package.xdc.inc: package/.vers_b160
+package/.vers_b160:
+
+.interfaces: Platform.xdc
+
+# schema include file dependencies
+Platform.xs:\r
+package/package.xdc.inc: Platform.xs\r
+
+# schema update dependencies
+package/package.xdc.inc: Platform.xdc\r
+package/package.xdc.inc: xdc/IPackage.xdc\r
+xdc/IPackage.xdc:\r
+vpath xdc/IPackage.xdc $(XPKGVPATH)\r
+package/package.xdc.inc: xdc/platform/IPlatform.xdc\r
+xdc/platform/IPlatform.xdc:\r
+vpath xdc/platform/IPlatform.xdc $(XPKGVPATH)\r
+package/package.xdc.inc: xdc/platform/IPeripheral.xdc\r
+xdc/platform/IPeripheral.xdc:\r
+vpath xdc/platform/IPeripheral.xdc $(XPKGVPATH)\r
+package/package.xdc.inc: xdc/platform/ICpuDataSheet.xdc\r
+xdc/platform/ICpuDataSheet.xdc:\r
+vpath xdc/platform/ICpuDataSheet.xdc $(XPKGVPATH)\r
+package/package.xdc.inc: ti/platforms/generic/Platform.xdc\r
+ti/platforms/generic/Platform.xdc:\r
+vpath ti/platforms/generic/Platform.xdc $(XPKGVPATH)\r
+package/package.xdc.inc: xdc/platform/IExeContext.xdc\r
+xdc/platform/IExeContext.xdc:\r
+vpath xdc/platform/IExeContext.xdc $(XPKGVPATH)\r
+
+ifneq (clean,$(MAKECMDGOALS))
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/ecj.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/ecj.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/intern/gen/java/package.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/intern/gen/java/package.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/intern/cmd/java/package.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/intern/cmd/java/package.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/js.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/js.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/global/java/package.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/global/java/package.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/antlr.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/antlr.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/intern/xsr/java/package.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/intern/xsr/java/package.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/tar.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/tar.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/spec/java/package.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/spec/java/package.jar\r
+endif
+# goals for files generated during schema generation but unspecified by schema's pattern rule
+
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/package/package.xdc.inc b/file_demo_bios/platforms/packages/evmAM572XCustom/package/package.xdc.inc
--- /dev/null
@@ -0,0 +1,13 @@
+package.xdc\r
+Platform.xdc\r
+Platform.xs\r
+package/evmAM572XCustom.sch\r
+package/.vers_g180\r
+package/.vers_r170\r
+package/.vers_b160\r
+package/.xdc-B06\r
+package/evmAM572XCustom.java\r
+package/evmAM572XCustom.class\r
+package/package_evmAM572XCustom.c\r
+package/package.defs.h\r
+package/evmAM572XCustom.ccs\r
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/package/package_evmAM572XCustom.c b/file_demo_bios/platforms/packages/evmAM572XCustom/package/package_evmAM572XCustom.c
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ * Do not modify this file; it is automatically
+ * generated and any modifications will be overwritten.
+ *
+ * @(#) xdc-B06
+ */
+
+#include <xdc/std.h>
+
+__FAR__ char evmAM572XCustom__dummy__;
+
+#define __xdc_PKGVERS null
+#define __xdc_PKGNAME evmAM572XCustom
+#define __xdc_PKGPREFIX evmAM572XCustom_
+
+#ifdef __xdc_bld_pkg_c__
+#define __stringify(a) #a
+#define __local_include(a) __stringify(a)
+#include __local_include(__xdc_bld_pkg_c__)
+#endif
+
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/package/rel/evmAM572XCustom.xdc.inc b/file_demo_bios/platforms/packages/evmAM572XCustom/package/rel/evmAM572XCustom.xdc.inc
--- /dev/null
@@ -0,0 +1,9 @@
+config.bld
+package.bld
+package.xdc
+Platform.xdc
+Platform.xs
+package/package.bld.xml
+package/build.cfg
+package/package.xdc.inc
+package/package.cfg.xdc.inc
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/package/rel/evmAM572XCustom.xdc.inc.manifest b/file_demo_bios/platforms/packages/evmAM572XCustom/package/rel/evmAM572XCustom.xdc.inc.manifest
--- /dev/null
+++ b/file_demo_bios/platforms/packages/evmAM572XCustom/package/rel/evmAM572XCustom.xdc.inc.manifest
@@ -0,0 +1,17 @@
+evmAM572XCustom/Platform.xdc
+evmAM572XCustom/Platform.xs
+evmAM572XCustom/config.bld
+evmAM572XCustom/package/.vers_b160
+evmAM572XCustom/package/.vers_g180
+evmAM572XCustom/package/.vers_r170
+evmAM572XCustom/package/.xdc-B06
+evmAM572XCustom/package/build.cfg
+evmAM572XCustom/package/evmAM572XCustom.ccs
+evmAM572XCustom/package/evmAM572XCustom.class
+evmAM572XCustom/package/evmAM572XCustom.java
+evmAM572XCustom/package/evmAM572XCustom.sch
+evmAM572XCustom/package/package.bld.xml
+evmAM572XCustom/package/package.defs.h
+evmAM572XCustom/package/package_evmAM572XCustom.c
+evmAM572XCustom/package.bld
+evmAM572XCustom/package.xdc
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/package/rel/evmAM572XCustom.xdc.ninc b/file_demo_bios/platforms/packages/evmAM572XCustom/package/rel/evmAM572XCustom.xdc.ninc
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/package/rel/evmAM572XCustom.zip.dep b/file_demo_bios/platforms/packages/evmAM572XCustom/package/rel/evmAM572XCustom.zip.dep
--- /dev/null
@@ -0,0 +1,34 @@
+evmAM572XCustom.zip: Platform.xdc
+Platform.xdc:
+evmAM572XCustom.zip: Platform.xs
+Platform.xs:
+evmAM572XCustom.zip: config.bld
+config.bld:
+evmAM572XCustom.zip: package/.vers_b160
+package/.vers_b160:
+evmAM572XCustom.zip: package/.vers_g180
+package/.vers_g180:
+evmAM572XCustom.zip: package/.vers_r170
+package/.vers_r170:
+evmAM572XCustom.zip: package/.xdc-B06
+package/.xdc-B06:
+evmAM572XCustom.zip: package/build.cfg
+package/build.cfg:
+evmAM572XCustom.zip: package/evmAM572XCustom.ccs
+package/evmAM572XCustom.ccs:
+evmAM572XCustom.zip: package/evmAM572XCustom.class
+package/evmAM572XCustom.class:
+evmAM572XCustom.zip: package/evmAM572XCustom.java
+package/evmAM572XCustom.java:
+evmAM572XCustom.zip: package/evmAM572XCustom.sch
+package/evmAM572XCustom.sch:
+evmAM572XCustom.zip: package/package.bld.xml
+package/package.bld.xml:
+evmAM572XCustom.zip: package/package.defs.h
+package/package.defs.h:
+evmAM572XCustom.zip: package/package_evmAM572XCustom.c
+package/package_evmAM572XCustom.c:
+evmAM572XCustom.zip: package.bld
+package.bld:
+evmAM572XCustom.zip: package.xdc
+package.xdc:
diff --git a/file_demo_bios/platforms/packages/evmAM572XCustom/package/rel/evmAM572XCustom/evmAM572XCustom/package/package.rel.xml b/file_demo_bios/platforms/packages/evmAM572XCustom/package/rel/evmAM572XCustom/evmAM572XCustom/package/package.rel.xml
--- /dev/null
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="windows-1252"?>
+<!-- This file conforms to the DTD xdc/bld/release.dtd -->
+<release name="evmAM572XCustom" label="default" date="1468359619573" buildCount="1" producerId="undefined">
+<package name="evmAM572XCustom"
+ version=""/>
+<imports>
+</imports>
+<references>
+ <package name="xdc"
+ version="1, 1, 1, 1449624895255"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="IPackage.xdc"/>
+ <file name="IPackage.xs"/>
+ <file name="Warnings.xs"/>
+ <file name="om2.xs"/>
+ <file name="package.xs"/>
+ <file name="template.xs"/>
+ <file name="utils.js"/>
+ <file name="xdc.tci"/>
+ <file name="xmlgen.xs"/>
+ <file name="xmlgen2.xs"/>
+ </package>
+ <package name="xdc.services.global"
+ version="1, 0, 0, 1449625038320"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="Clock.xs"/>
+ <file name="Trace.xs"/>
+ <file name="java\package.jar"/>
+ </package>
+ <package name="xdc.bld"
+ version="1, 0, 2, 1449624907828"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="BuildEnvironment.xs"/>
+ <file name="Configuration.xs"/>
+ <file name="Executable.xs"/>
+ <file name="ITarget.xs"/>
+ <file name="ITarget2.xs"/>
+ <file name="ITarget3.xs"/>
+ <file name="ITargetFilter.xs"/>
+ <file name="Library.xs"/>
+ <file name="Manifest.xs"/>
+ <file name="PackageContents.xs"/>
+ <file name="Repository.xs"/>
+ <file name="Script.xs"/>
+ <file name="Utils.xs"/>
+ <file name="_gen.xs"/>
+ <file name="bld.js"/>
+ <file name="package.xs"/>
+ </package>
+ <package name="xdc.platform"
+ version="1, 0, 1, 1449624947821"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="ICpuDataSheet.xdc"/>
+ <file name="IExeContext.xdc"/>
+ <file name="IPeripheral.xdc"/>
+ <file name="IPlatform.xdc"/>
+ </package>
+ <package name="ti.platforms.generic"
+ version="1, 0, 0, 1, 1454090561812"
+ providerId="C:/ti/bios_6_45_01_29/packages">
+ <file name="Platform.xdc"/>
+ </package>
+ <package name="xdc.shelf"
+ version="1, 0, 0, 1449625162069"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="java\antlr.jar"/>
+ <file name="java\ecj.jar"/>
+ <file name="java\js.jar"/>
+ <file name="java\tar.jar"/>
+ </package>
+ <package name="xdc.services.intern.gen"
+ version="1, 0, 0, 1449625079795"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="java\package.jar"/>
+ </package>
+ <package name="xdc.services.intern.cmd"
+ version="1, 0, 0, 1449625073074"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="java\package.jar"/>
+ </package>
+ <package name="xdc.services.intern.xsr"
+ version="1, 0, 0, 1449625086761"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="java\package.jar"/>
+ </package>
+ <package name="xdc.services.spec"
+ version="1, 0, 0, 1449625113628"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="java\package.jar"/>
+ </package>
+ <xdcRoot base="C:/ti/xdctools_3_32_00_06_core/">
+ <file name="/packages/xdc/package.xdc"/>
+ <xdcCorePkg version="16, 0, 2, 1449624941057" producerId="/db/ztree/library/trees/xdc/xdc-B06/src/packages" buildCount="1" releaseName="xdc_corevers" label="default" date="1449624941057"/>
+ </xdcRoot>
+</references>
+<orphans>
+</orphans>
+</release>
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/.dlls b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/.dlls
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/.executables b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/.executables
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/.interfaces b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/.interfaces
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/.libraries b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/.libraries
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/.xdcenv.mak b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/.xdcenv.mak
--- /dev/null
@@ -0,0 +1,16 @@
+#
+_XDCBUILDCOUNT = 1
+ifneq (,$(findstring path,$(_USEXDCENV_)))
+override XDCPATH = C:/ti/volib_C66_2_1_0_1/packages;C:/ti/pdk_k2g_1_0_2/packages;C:/ti/ipc_3_43_01_03/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/uia_2_00_03_43/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/ndk_2_24_03_35/packages;C:/ti/framework_components_3_40_02_07/packages;C:/ti/framework_components_3_40_02_07/examples;C:/ti/xdctools_3_32_00_06_core/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/pdk_k2hk_4_0_0/packages;C:/ti/dsplib_c66x_3_4_0_0/packages;C:/ti/aer_c64Px_obj_17_0_0_0/packages;C:/ti/openmp_dsp_k2g_2_03_01_00/packages;C:/ti/ctoolslib_2_2_0_0/packages;C:/ti/imglib_c66x_3_1_1_0/packages;C:/ti/mathlib_c66x_3_1_1_0/packages;C:/ti/bios_6_45_01_29/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/xdais_7_24_00_04/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/xdais_7_24_00_04/examples;C:/c55_lp/ti_c55_csl/bios_5_42_02_10/packages;C:/ti/volib_C64P_2_1_0_1/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/edma3_lld_02_12_01_22/packages
+override XDCROOT = C:/ti/xdctools_3_32_00_06_core
+override XDCBUILDCFG = ./config.bld
+endif
+ifneq (,$(findstring args,$(_USEXDCENV_)))
+override XDCARGS =
+override XDCTARGETS =
+endif
+#
+ifeq (0,1)
+PKGPATH = C:/ti/volib_C66_2_1_0_1/packages;C:/ti/pdk_k2g_1_0_2/packages;C:/ti/ipc_3_43_01_03/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/uia_2_00_03_43/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/ndk_2_24_03_35/packages;C:/ti/framework_components_3_40_02_07/packages;C:/ti/framework_components_3_40_02_07/examples;C:/ti/xdctools_3_32_00_06_core/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/pdk_k2hk_4_0_0/packages;C:/ti/dsplib_c66x_3_4_0_0/packages;C:/ti/aer_c64Px_obj_17_0_0_0/packages;C:/ti/openmp_dsp_k2g_2_03_01_00/packages;C:/ti/ctoolslib_2_2_0_0/packages;C:/ti/imglib_c66x_3_1_1_0/packages;C:/ti/mathlib_c66x_3_1_1_0/packages;C:/ti/bios_6_45_01_29/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/xdais_7_24_00_04/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/xdais_7_24_00_04/examples;C:/c55_lp/ti_c55_csl/bios_5_42_02_10/packages;C:/ti/volib_C64P_2_1_0_1/packages;C:/procsdk/download/ti_k2hk_2.0.1.7/edma3_lld_02_12_01_22/packages;C:/ti/xdctools_3_32_00_06_core/packages;..
+HOSTOS = Windows
+endif
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/Platform.xdc b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/Platform.xdc
--- /dev/null
@@ -0,0 +1,58 @@
+/*!
+ * File generated by platform wizard. DO NOT MODIFY
+ *
+ */
+
+metaonly module Platform inherits xdc.platform.IPlatform {
+
+ config ti.platforms.generic.Platform.Instance CPU =
+ ti.platforms.generic.Platform.create("CPU", {
+ clockRate: 600,
+ catalogName: "ti.catalog.c6000",
+ deviceName: "TCI66AK2G02",
+ customMemoryMap:
+ [
+ ["MSMCSRAM",
+ {
+ name: "MSMCSRAM",
+ base: 0x0c000000,
+ len: 0x00100000,
+ space: "code/data",
+ access: "RWX",
+ }
+ ],
+ ["L2SRAM",
+ {
+ name: "L2SRAM",
+ base: 0x00800000,
+ len: 0x00100000,
+ space: "code/data",
+ access: "RWX",
+ }
+ ],
+ ["EXT_RAM",
+ {
+ name: "EXT_RAM",
+ base: 0x80000000,
+ len: 0x20000000,
+ space: "code/data",
+ access: "RWX",
+ }
+ ],
+ ],
+ l2Mode: "0k",
+ l1PMode: "32k",
+ l1DMode: "32k",
+
+ });
+
+instance :
+
+ override config string codeMemory = "L2SRAM";
+ override config string dataMemory = "L2SRAM";
+ override config string stackMemory = "L2SRAM";
+
+ config String l2Mode = "0k";
+ config String l1PMode = "32k";
+ config String l1DMode = "32k";
+}
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/Platform.xs b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/Platform.xs
--- /dev/null
@@ -0,0 +1,33 @@
+/*!
+ * File generated by platform wizard. DO NOT MODIFY.
+ *
+ */
+
+function getCpuDataSheet(cpuId)
+{
+ return this.$module.CPU.getCpuDataSheet(cpuId);
+}
+
+function getCreateArgs()
+{
+ return this.$module.CPU;
+}
+
+function getExeContext(prog)
+{
+ return this.$module.CPU.getExeContext(prog);
+}
+
+
+function getExecCmd(prog)
+{
+ return this.$module.CPU.getExecCmd(prog);
+}
+
+
+function getLinkTemplate(prog)
+{
+ return this.$module.CPU.getLinkTemplate(prog);
+}
+
+
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/config.bld b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/config.bld
--- /dev/null
@@ -0,0 +1,6 @@
+/*!
+ * File generated by platform wizard. DO NOT MODIFY
+ *
+ */
+
+Build.useTargets = null;
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/evmTCI66AK2G02Custom.zip b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/evmTCI66AK2G02Custom.zip
new file mode 100644 (file)
index 0000000..6240cf0
Binary files /dev/null and b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/evmTCI66AK2G02Custom.zip differ
index 0000000..6240cf0
Binary files /dev/null and b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/evmTCI66AK2G02Custom.zip differ
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package.bld b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package.bld
--- /dev/null
@@ -0,0 +1,9 @@
+/*!
+ * File generated by platform wizard. DO NOT MODIFY.
+ *
+ */
+
+Pkg.attrs.archiver = "zip";
+Pkg.attrs.exportAll = true;
+
+
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package.mak b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package.mak
--- /dev/null
@@ -0,0 +1,161 @@
+#
+# Do not edit this file. This file is generated from
+# package.bld. Any modifications to this file will be
+# overwritten whenever makefiles are re-generated.
+#
+
+unexport MAKEFILE_LIST
+MK_NOGENDEPS := $(filter clean,$(MAKECMDGOALS))
+override PKGDIR = evmTCI66AK2G02Custom
+XDCINCS = -I. -I$(strip $(subst ;, -I,$(subst $(space),\$(space),$(XPKGPATH))))
+XDCCFGDIR = package/cfg/
+
+#
+# The following dependencies ensure package.mak is rebuilt
+# in the event that some included BOM script changes.
+#
+ifneq (clean,$(MAKECMDGOALS))
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/utils.js:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/utils.js
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/xdc.tci:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/xdc.tci
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/template.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/template.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/om2.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/om2.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/xmlgen.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/xmlgen.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/xmlgen2.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/xmlgen2.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/Warnings.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/Warnings.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/IPackage.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/IPackage.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/package.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/package.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/global/Clock.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/global/Clock.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/global/Trace.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/global/Trace.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/bld.js:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/bld.js
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/BuildEnvironment.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/BuildEnvironment.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/PackageContents.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/PackageContents.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/_gen.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/_gen.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Library.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Library.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Executable.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Executable.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Repository.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Repository.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Configuration.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Configuration.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Script.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Script.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Manifest.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Manifest.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Utils.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/Utils.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITarget.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITarget.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITarget2.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITarget2.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITarget3.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITarget3.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITargetFilter.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/ITargetFilter.xs
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/package.xs:
+package.mak: C:/ti/xdctools_3_32_00_06_core/packages/xdc/bld/package.xs
+package.mak: config.bld
+package.mak: package.bld
+endif
+
+
+all: .executables
+.executables: .libraries .dlls
+.libraries: .interfaces
+
+PKGCFGS := $(wildcard package.xs) package/build.cfg
+.interfaces: package/package.xdc.inc package/package.defs.h package.xdc $(PKGCFGS)
+
+-include package/package.xdc.dep
+package/%.xdc.inc package/%_evmTCI66AK2G02Custom.c package/%.defs.h: %.xdc $(PKGCFGS)
+ @$(MSG) generating interfaces for package evmTCI66AK2G02Custom" (because $@ is older than $(firstword $?))" ...
+ $(XSRUN) -f xdc/services/intern/cmd/build.xs $(MK_IDLOPTS) -m package/package.xdc.dep -i package/package.xdc.inc package.xdc
+
+ifeq (,$(MK_NOGENDEPS))
+-include package/package.cfg.dep
+endif
+
+package/package.cfg.xdc.inc: .interfaces $(XDCROOT)/packages/xdc/cfg/cfginc.js package.xdc
+ @$(MSG) generating schema include file list ...
+ $(CONFIG) -f $(XDCROOT)/packages/xdc/cfg/cfginc.js evmTCI66AK2G02Custom $@
+
+test:;
+%,copy:
+ @$(if $<,,$(MSG) don\'t know how to build $*; exit 1)
+ @$(MSG) cp $< $@
+ $(RM) $@
+ $(CP) $< $@
+
+$(XDCCFGDIR)%.c $(XDCCFGDIR)%.h $(XDCCFGDIR)%.xdl: $(XDCCFGDIR)%.cfg $(XDCROOT)/packages/xdc/cfg/Main.xs | .interfaces
+ @$(MSG) "configuring $(_PROG_NAME) from $< ..."
+ $(CONFIG) $(_PROG_XSOPTS) xdc.cfg $(_PROG_NAME) $(XDCCFGDIR)$*.cfg $(XDCCFGDIR)$*
+
+.PHONY: release,evmTCI66AK2G02Custom
+ifeq (,$(MK_NOGENDEPS))
+-include package/rel/evmTCI66AK2G02Custom.zip.dep
+endif
+package/rel/evmTCI66AK2G02Custom/evmTCI66AK2G02Custom/package/package.rel.xml: package/package.bld.xml
+package/rel/evmTCI66AK2G02Custom/evmTCI66AK2G02Custom/package/package.rel.xml: package/build.cfg
+package/rel/evmTCI66AK2G02Custom/evmTCI66AK2G02Custom/package/package.rel.xml: package/package.xdc.inc
+package/rel/evmTCI66AK2G02Custom/evmTCI66AK2G02Custom/package/package.rel.xml: package/package.cfg.xdc.inc
+package/rel/evmTCI66AK2G02Custom/evmTCI66AK2G02Custom/package/package.rel.xml: .force
+ @$(MSG) generating external release references $@ ...
+ $(XS) $(JSENV) -f $(XDCROOT)/packages/xdc/bld/rel.js $(MK_RELOPTS) . $@
+
+evmTCI66AK2G02Custom.zip: package/rel/evmTCI66AK2G02Custom.xdc.inc package/rel/evmTCI66AK2G02Custom/evmTCI66AK2G02Custom/package/package.rel.xml
+ @$(MSG) making release file $@ "(because of $(firstword $?))" ...
+ -$(RM) $@
+ $(call MKRELZIP,package/rel/evmTCI66AK2G02Custom.xdc.inc,package/rel/evmTCI66AK2G02Custom.zip.dep)
+
+
+release release,evmTCI66AK2G02Custom: all evmTCI66AK2G02Custom.zip
+clean:: .clean
+ -$(RM) evmTCI66AK2G02Custom.zip
+ -$(RM) package/rel/evmTCI66AK2G02Custom.xdc.inc
+ -$(RM) package/rel/evmTCI66AK2G02Custom.zip.dep
+
+clean:: .clean
+ -$(RM) .libraries $(wildcard .libraries,*)
+clean::
+ -$(RM) .dlls $(wildcard .dlls,*)
+#
+# The following clean rule removes user specified
+# generated files or directories.
+#
+
+ifneq (clean,$(MAKECMDGOALS))
+ifeq (,$(wildcard package))
+ $(shell $(MKDIR) package)
+endif
+ifeq (,$(wildcard package/cfg))
+ $(shell $(MKDIR) package/cfg)
+endif
+ifeq (,$(wildcard package/lib))
+ $(shell $(MKDIR) package/lib)
+endif
+ifeq (,$(wildcard package/rel))
+ $(shell $(MKDIR) package/rel)
+endif
+ifeq (,$(wildcard package/internal))
+ $(shell $(MKDIR) package/internal)
+endif
+endif
+clean::
+ -$(RMDIR) package
+
+
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package.xdc b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package.xdc
--- /dev/null
@@ -0,0 +1,9 @@
+/*!
+ * File generated by platform wizard. DO NOT MODIFY.
+ *
+ */
+
+package evmTCI66AK2G02Custom {
+ module Platform;
+}
+
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/.vers_b160 b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/.vers_b160
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/.vers_g180 b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/.vers_g180
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/.vers_r170 b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/.vers_r170
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/.xdc-B06 b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/.xdc-B06
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/build.cfg b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/build.cfg
--- /dev/null
@@ -0,0 +1,9 @@
+if (pkg.$vers.length >= 3) {
+ pkg.$vers.push(Packages.xdc.services.global.Vers.getDate(xdc.csd() + '/..'));
+}
+
+pkg.build.libraries = [
+];
+
+pkg.build.libDesc = [
+];
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/evmTCI66AK2G02Custom.ccs b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/evmTCI66AK2G02Custom.ccs
new file mode 100644 (file)
index 0000000..1e56d34
Binary files /dev/null and b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/evmTCI66AK2G02Custom.ccs differ
index 0000000..1e56d34
Binary files /dev/null and b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/evmTCI66AK2G02Custom.ccs differ
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/evmTCI66AK2G02Custom.class b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/evmTCI66AK2G02Custom.class
new file mode 100644 (file)
index 0000000..b8c2fd1
Binary files /dev/null and b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/evmTCI66AK2G02Custom.class differ
index 0000000..b8c2fd1
Binary files /dev/null and b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/evmTCI66AK2G02Custom.class differ
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/evmTCI66AK2G02Custom.java b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/evmTCI66AK2G02Custom.java
--- /dev/null
@@ -0,0 +1,365 @@
+/*
+ * Do not modify this file; it is automatically
+ * generated and any modifications will be overwritten.
+ *
+ * @(#) xdc-B06
+ */
+import java.util.*;
+import org.mozilla.javascript.*;
+import xdc.services.intern.xsr.*;
+import xdc.services.spec.Session;
+
+public class evmTCI66AK2G02Custom
+{
+ static final String VERS = "@(#) xdc-B06\n";
+
+ static final Proto.Elm $$T_Bool = Proto.Elm.newBool();
+ static final Proto.Elm $$T_Num = Proto.Elm.newNum();
+ static final Proto.Elm $$T_Str = Proto.Elm.newStr();
+ static final Proto.Elm $$T_Obj = Proto.Elm.newObj();
+
+ static final Proto.Fxn $$T_Met = new Proto.Fxn(null, null, 0, -1, false);
+ static final Proto.Map $$T_Map = new Proto.Map($$T_Obj);
+ static final Proto.Arr $$T_Vec = new Proto.Arr($$T_Obj);
+
+ static final XScriptO $$DEFAULT = Value.DEFAULT;
+ static final Object $$UNDEF = Undefined.instance;
+
+ static final Proto.Obj $$Package = (Proto.Obj)Global.get("$$Package");
+ static final Proto.Obj $$Module = (Proto.Obj)Global.get("$$Module");
+ static final Proto.Obj $$Instance = (Proto.Obj)Global.get("$$Instance");
+ static final Proto.Obj $$Params = (Proto.Obj)Global.get("$$Params");
+
+ static final Object $$objFldGet = Global.get("$$objFldGet");
+ static final Object $$objFldSet = Global.get("$$objFldSet");
+ static final Object $$proxyGet = Global.get("$$proxyGet");
+ static final Object $$proxySet = Global.get("$$proxySet");
+ static final Object $$delegGet = Global.get("$$delegGet");
+ static final Object $$delegSet = Global.get("$$delegSet");
+
+ Scriptable xdcO;
+ Session ses;
+ Value.Obj om;
+
+ boolean isROV;
+ boolean isCFG;
+
+ Proto.Obj pkgP;
+ Value.Obj pkgV;
+
+ ArrayList<Object> imports = new ArrayList<Object>();
+ ArrayList<Object> loggables = new ArrayList<Object>();
+ ArrayList<Object> mcfgs = new ArrayList<Object>();
+ ArrayList<Object> icfgs = new ArrayList<Object>();
+ ArrayList<String> inherits = new ArrayList<String>();
+ ArrayList<Object> proxies = new ArrayList<Object>();
+ ArrayList<Object> sizes = new ArrayList<Object>();
+ ArrayList<Object> tdefs = new ArrayList<Object>();
+
+ void $$IMPORTS()
+ {
+ Global.callFxn("loadPackage", xdcO, "xdc");
+ Global.callFxn("loadPackage", xdcO, "xdc.corevers");
+ Global.callFxn("loadPackage", xdcO, "xdc.platform");
+ Global.callFxn("loadPackage", xdcO, "ti.platforms.generic");
+ }
+
+ void $$OBJECTS()
+ {
+ pkgP = (Proto.Obj)om.bind("evmTCI66AK2G02Custom.Package", new Proto.Obj());
+ pkgV = (Value.Obj)om.bind("evmTCI66AK2G02Custom", new Value.Obj("evmTCI66AK2G02Custom", pkgP));
+ }
+
+ void Platform$$OBJECTS()
+ {
+ Proto.Obj po, spo;
+ Value.Obj vo;
+
+ po = (Proto.Obj)om.bind("evmTCI66AK2G02Custom.Platform.Module", new Proto.Obj());
+ vo = (Value.Obj)om.bind("evmTCI66AK2G02Custom.Platform", new Value.Obj("evmTCI66AK2G02Custom.Platform", po));
+ pkgV.bind("Platform", vo);
+ // decls
+ om.bind("evmTCI66AK2G02Custom.Platform.Board", om.findStrict("xdc.platform.IPlatform.Board", "evmTCI66AK2G02Custom"));
+ om.bind("evmTCI66AK2G02Custom.Platform.Memory", om.findStrict("xdc.platform.IPlatform.Memory", "evmTCI66AK2G02Custom"));
+ // insts
+ Object insP = om.bind("evmTCI66AK2G02Custom.Platform.Instance", new Proto.Obj());
+ po = (Proto.Obj)om.bind("evmTCI66AK2G02Custom.Platform$$Object", new Proto.Obj());
+ om.bind("evmTCI66AK2G02Custom.Platform.Object", new Proto.Str(po, true));
+ po = (Proto.Obj)om.bind("evmTCI66AK2G02Custom.Platform$$Params", new Proto.Obj());
+ om.bind("evmTCI66AK2G02Custom.Platform.Params", new Proto.Str(po, true));
+ }
+
+ void Platform$$CONSTS()
+ {
+ // module Platform
+ }
+
+ void Platform$$CREATES()
+ {
+ Proto.Fxn fxn;
+ StringBuilder sb;
+
+ fxn = (Proto.Fxn)om.bind("evmTCI66AK2G02Custom.Platform$$create", new Proto.Fxn(om.findStrict("evmTCI66AK2G02Custom.Platform.Module", "evmTCI66AK2G02Custom"), om.findStrict("evmTCI66AK2G02Custom.Platform.Instance", "evmTCI66AK2G02Custom"), 2, 1, false));
+ fxn.addArg(0, "name", $$T_Str, $$UNDEF);
+ fxn.addArg(1, "__params", (Proto)om.findStrict("evmTCI66AK2G02Custom.Platform.Params", "evmTCI66AK2G02Custom"), Global.newObject());
+ sb = new StringBuilder();
+ sb.append("evmTCI66AK2G02Custom$Platform$$create = function( name, __params ) {\n");
+ sb.append("var __mod = xdc.om['evmTCI66AK2G02Custom.Platform'];\n");
+ sb.append("var __inst = xdc.om['evmTCI66AK2G02Custom.Platform.Instance'].$$make();\n");
+ sb.append("__inst.$$bind('$package', xdc.om['evmTCI66AK2G02Custom']);\n");
+ sb.append("__inst.$$bind('$index', __mod.$instances.length);\n");
+ sb.append("__inst.$$bind('$category', 'Instance');\n");
+ sb.append("__inst.$$bind('$args', {name:name});\n");
+ sb.append("__inst.$$bind('$module', __mod);\n");
+ sb.append("__mod.$instances.$add(__inst);\n");
+ sb.append("__inst.externalMemoryMap = __mod.PARAMS.externalMemoryMap;\n");
+ sb.append("__inst.customMemoryMap = __mod.PARAMS.customMemoryMap;\n");
+ sb.append("__inst.renameMap = __mod.PARAMS.renameMap;\n");
+ sb.append("__inst.dataMemory = __mod.PARAMS.dataMemory;\n");
+ sb.append("__inst.codeMemory = __mod.PARAMS.codeMemory;\n");
+ sb.append("__inst.stackMemory = __mod.PARAMS.stackMemory;\n");
+ sb.append("__inst.sectMap = __mod.PARAMS.sectMap;\n");
+ sb.append("__inst.peripherals = __mod.PARAMS.peripherals;\n");
+ sb.append("for (var __p in __params) __inst[__p] = __params[__p];\n");
+ sb.append("var save = xdc.om.$curpkg;\n");
+ sb.append("xdc.om.$$bind('$curpkg', __mod.$package.$name);\n");
+ sb.append("__mod.instance$meta$init.$fxn.apply(__inst, [name]);\n");
+ sb.append("xdc.om.$$bind('$curpkg', save);\n");
+ sb.append("__inst.$$bless();\n");
+ sb.append("return __inst;\n");
+ sb.append("}\n");
+ Global.eval(sb.toString());
+ fxn = (Proto.Fxn)om.bind("evmTCI66AK2G02Custom.Platform$$construct", new Proto.Fxn(om.findStrict("evmTCI66AK2G02Custom.Platform.Module", "evmTCI66AK2G02Custom"), null, 3, 1, false));
+ fxn.addArg(0, "__obj", (Proto)om.findStrict("evmTCI66AK2G02Custom.Platform$$Object", "evmTCI66AK2G02Custom"), null);
+ fxn.addArg(1, "name", $$T_Str, $$UNDEF);
+ fxn.addArg(2, "__params", (Proto)om.findStrict("evmTCI66AK2G02Custom.Platform.Params", "evmTCI66AK2G02Custom"), Global.newObject());
+ sb = new StringBuilder();
+ sb.append("evmTCI66AK2G02Custom$Platform$$construct = function( __obj, name, __params ) {\n");
+ sb.append("var __mod = xdc.om['evmTCI66AK2G02Custom.Platform'];\n");
+ sb.append("var __inst = __obj;\n");
+ sb.append("__inst.$$bind('$args', {name:name});\n");
+ sb.append("__inst.$$bind('$module', __mod);\n");
+ sb.append("__mod.$objects.$add(__inst);\n");
+ sb.append("__inst.externalMemoryMap = __mod.PARAMS.externalMemoryMap;\n");
+ sb.append("__inst.customMemoryMap = __mod.PARAMS.customMemoryMap;\n");
+ sb.append("__inst.renameMap = __mod.PARAMS.renameMap;\n");
+ sb.append("__inst.dataMemory = __mod.PARAMS.dataMemory;\n");
+ sb.append("__inst.codeMemory = __mod.PARAMS.codeMemory;\n");
+ sb.append("__inst.stackMemory = __mod.PARAMS.stackMemory;\n");
+ sb.append("__inst.sectMap = __mod.PARAMS.sectMap;\n");
+ sb.append("__inst.peripherals = __mod.PARAMS.peripherals;\n");
+ sb.append("for (var __p in __params) __inst[__p] = __params[__p];\n");
+ sb.append("__inst.$$bless();\n");
+ sb.append("return null;\n");
+ sb.append("}\n");
+ Global.eval(sb.toString());
+ }
+
+ void Platform$$FUNCTIONS()
+ {
+ Proto.Fxn fxn;
+
+ }
+
+ void Platform$$SIZES()
+ {
+ }
+
+ void Platform$$TYPES()
+ {
+ Scriptable cap;
+ Proto.Obj po;
+ Proto.Str ps;
+ Proto.Typedef pt;
+ Object fxn;
+
+ cap = (Scriptable)Global.callFxn("loadCapsule", xdcO, "evmTCI66AK2G02Custom/Platform.xs");
+ om.bind("evmTCI66AK2G02Custom.Platform$$capsule", cap);
+ po = (Proto.Obj)om.findStrict("evmTCI66AK2G02Custom.Platform.Module", "evmTCI66AK2G02Custom");
+ po.init("evmTCI66AK2G02Custom.Platform.Module", om.findStrict("xdc.platform.IPlatform.Module", "evmTCI66AK2G02Custom"));
+ po.addFld("$hostonly", $$T_Num, 1, "r");
+ po.addFld("CPU", (Proto)om.findStrict("ti.platforms.generic.Platform.Instance", "evmTCI66AK2G02Custom"), $$UNDEF, "wh");
+ po.addFxn("create", (Proto.Fxn)om.findStrict("evmTCI66AK2G02Custom.Platform$$create", "evmTCI66AK2G02Custom"), Global.get("evmTCI66AK2G02Custom$Platform$$create"));
+ po.addFxn("construct", (Proto.Fxn)om.findStrict("evmTCI66AK2G02Custom.Platform$$construct", "evmTCI66AK2G02Custom"), Global.get("evmTCI66AK2G02Custom$Platform$$construct"));
+ fxn = Global.get(cap, "module$use");
+ if (fxn != null) om.bind("evmTCI66AK2G02Custom.Platform$$module$use", true);
+ if (fxn != null) po.addFxn("module$use", $$T_Met, fxn);
+ fxn = Global.get(cap, "module$meta$init");
+ if (fxn != null) om.bind("evmTCI66AK2G02Custom.Platform$$module$meta$init", true);
+ if (fxn != null) po.addFxn("module$meta$init", $$T_Met, fxn);
+ fxn = Global.get(cap, "instance$meta$init");
+ if (fxn != null) om.bind("evmTCI66AK2G02Custom.Platform$$instance$meta$init", true);
+ if (fxn != null) po.addFxn("instance$meta$init", $$T_Met, fxn);
+ fxn = Global.get(cap, "module$validate");
+ if (fxn != null) om.bind("evmTCI66AK2G02Custom.Platform$$module$validate", true);
+ if (fxn != null) po.addFxn("module$validate", $$T_Met, fxn);
+ po = (Proto.Obj)om.findStrict("evmTCI66AK2G02Custom.Platform.Instance", "evmTCI66AK2G02Custom");
+ po.init("evmTCI66AK2G02Custom.Platform.Instance", om.findStrict("xdc.platform.IPlatform.Instance", "evmTCI66AK2G02Custom"));
+ po.addFld("$hostonly", $$T_Num, 1, "r");
+ po.addFld("codeMemory", $$T_Str, "L2SRAM", "wh");
+ po.addFld("dataMemory", $$T_Str, "L2SRAM", "wh");
+ po.addFld("stackMemory", $$T_Str, "L2SRAM", "wh");
+ po.addFld("l2Mode", $$T_Str, "0k", "wh");
+ po.addFld("l1PMode", $$T_Str, "32k", "wh");
+ po.addFld("l1DMode", $$T_Str, "32k", "wh");
+ fxn = Global.get(cap, "getCpuDataSheet");
+ if (fxn != null) po.addFxn("getCpuDataSheet", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getCpuDataSheet", "evmTCI66AK2G02Custom"), fxn);
+ fxn = Global.get(cap, "getCreateArgs");
+ if (fxn != null) po.addFxn("getCreateArgs", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getCreateArgs", "evmTCI66AK2G02Custom"), fxn);
+ fxn = Global.get(cap, "getExeContext");
+ if (fxn != null) po.addFxn("getExeContext", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getExeContext", "evmTCI66AK2G02Custom"), fxn);
+ fxn = Global.get(cap, "getExecCmd");
+ if (fxn != null) po.addFxn("getExecCmd", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getExecCmd", "evmTCI66AK2G02Custom"), fxn);
+ fxn = Global.get(cap, "getLinkTemplate");
+ if (fxn != null) po.addFxn("getLinkTemplate", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getLinkTemplate", "evmTCI66AK2G02Custom"), fxn);
+ po = (Proto.Obj)om.findStrict("evmTCI66AK2G02Custom.Platform$$Params", "evmTCI66AK2G02Custom");
+ po.init("evmTCI66AK2G02Custom.Platform.Params", om.findStrict("xdc.platform.IPlatform$$Params", "evmTCI66AK2G02Custom"));
+ po.addFld("$hostonly", $$T_Num, 1, "r");
+ po.addFld("codeMemory", $$T_Str, "L2SRAM", "wh");
+ po.addFld("dataMemory", $$T_Str, "L2SRAM", "wh");
+ po.addFld("stackMemory", $$T_Str, "L2SRAM", "wh");
+ po.addFld("l2Mode", $$T_Str, "0k", "wh");
+ po.addFld("l1PMode", $$T_Str, "32k", "wh");
+ po.addFld("l1DMode", $$T_Str, "32k", "wh");
+ po = (Proto.Obj)om.findStrict("evmTCI66AK2G02Custom.Platform$$Object", "evmTCI66AK2G02Custom");
+ po.init("evmTCI66AK2G02Custom.Platform.Object", om.findStrict("evmTCI66AK2G02Custom.Platform.Instance", "evmTCI66AK2G02Custom"));
+ fxn = Global.get(cap, "getCpuDataSheet");
+ if (fxn != null) po.addFxn("getCpuDataSheet", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getCpuDataSheet", "evmTCI66AK2G02Custom"), fxn);
+ fxn = Global.get(cap, "getCreateArgs");
+ if (fxn != null) po.addFxn("getCreateArgs", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getCreateArgs", "evmTCI66AK2G02Custom"), fxn);
+ fxn = Global.get(cap, "getExeContext");
+ if (fxn != null) po.addFxn("getExeContext", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getExeContext", "evmTCI66AK2G02Custom"), fxn);
+ fxn = Global.get(cap, "getExecCmd");
+ if (fxn != null) po.addFxn("getExecCmd", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getExecCmd", "evmTCI66AK2G02Custom"), fxn);
+ fxn = Global.get(cap, "getLinkTemplate");
+ if (fxn != null) po.addFxn("getLinkTemplate", (Proto.Fxn)om.findStrict("xdc.platform.IPlatform$$getLinkTemplate", "evmTCI66AK2G02Custom"), fxn);
+ }
+
+ void Platform$$ROV()
+ {
+ }
+
+ void $$SINGLETONS()
+ {
+ pkgP.init("evmTCI66AK2G02Custom.Package", (Proto.Obj)om.findStrict("xdc.IPackage.Module", "evmTCI66AK2G02Custom"));
+ pkgP.bind("$capsule", $$UNDEF);
+ pkgV.init2(pkgP, "evmTCI66AK2G02Custom", Value.DEFAULT, false);
+ pkgV.bind("$name", "evmTCI66AK2G02Custom");
+ pkgV.bind("$category", "Package");
+ pkgV.bind("$$qn", "evmTCI66AK2G02Custom.");
+ pkgV.bind("$vers", Global.newArray());
+ Value.Map atmap = (Value.Map)pkgV.getv("$attr");
+ atmap.seal("length");
+ imports.clear();
+ pkgV.bind("$imports", imports);
+ StringBuilder sb = new StringBuilder();
+ sb.append("var pkg = xdc.om['evmTCI66AK2G02Custom'];\n");
+ sb.append("if (pkg.$vers.length >= 3) {\n");
+ sb.append("pkg.$vers.push(Packages.xdc.services.global.Vers.getDate(xdc.csd() + '/..'));\n");
+ sb.append("}\n");
+ sb.append("if ('evmTCI66AK2G02Custom$$stat$base' in xdc.om) {\n");
+ sb.append("pkg.packageBase = xdc.om['evmTCI66AK2G02Custom$$stat$base'];\n");
+ sb.append("pkg.packageRepository = xdc.om['evmTCI66AK2G02Custom$$stat$root'];\n");
+ sb.append("}\n");
+ sb.append("pkg.build.libraries = [\n");
+ sb.append("];\n");
+ sb.append("pkg.build.libDesc = [\n");
+ sb.append("];\n");
+ Global.eval(sb.toString());
+ }
+
+ void Platform$$SINGLETONS()
+ {
+ Proto.Obj po;
+ Value.Obj vo;
+
+ vo = (Value.Obj)om.findStrict("evmTCI66AK2G02Custom.Platform", "evmTCI66AK2G02Custom");
+ po = (Proto.Obj)om.findStrict("evmTCI66AK2G02Custom.Platform.Module", "evmTCI66AK2G02Custom");
+ vo.init2(po, "evmTCI66AK2G02Custom.Platform", $$DEFAULT, false);
+ vo.bind("Module", po);
+ vo.bind("$category", "Module");
+ vo.bind("$capsule", om.findStrict("evmTCI66AK2G02Custom.Platform$$capsule", "evmTCI66AK2G02Custom"));
+ vo.bind("Instance", om.findStrict("evmTCI66AK2G02Custom.Platform.Instance", "evmTCI66AK2G02Custom"));
+ vo.bind("Params", om.findStrict("evmTCI66AK2G02Custom.Platform.Params", "evmTCI66AK2G02Custom"));
+ vo.bind("PARAMS", ((Proto.Str)om.findStrict("evmTCI66AK2G02Custom.Platform.Params", "evmTCI66AK2G02Custom")).newInstance());
+ vo.bind("$package", om.findStrict("evmTCI66AK2G02Custom", "evmTCI66AK2G02Custom"));
+ tdefs.clear();
+ proxies.clear();
+ mcfgs.clear();
+ icfgs.clear();
+ inherits.clear();
+ vo.bind("Board", om.findStrict("xdc.platform.IPlatform.Board", "evmTCI66AK2G02Custom"));
+ tdefs.add(om.findStrict("xdc.platform.IPlatform.Board", "evmTCI66AK2G02Custom"));
+ vo.bind("Memory", om.findStrict("xdc.platform.IPlatform.Memory", "evmTCI66AK2G02Custom"));
+ tdefs.add(om.findStrict("xdc.platform.IPlatform.Memory", "evmTCI66AK2G02Custom"));
+ vo.bind("MemoryMap", om.findStrict("xdc.platform.IPlatform.MemoryMap", "evmTCI66AK2G02Custom"));
+ vo.bind("$$tdefs", Global.newArray(tdefs.toArray()));
+ vo.bind("$$proxies", Global.newArray(proxies.toArray()));
+ vo.bind("$$mcfgs", Global.newArray(mcfgs.toArray()));
+ vo.bind("$$icfgs", Global.newArray(icfgs.toArray()));
+ inherits.add("xdc.platform");
+ vo.bind("$$inherits", Global.newArray(inherits.toArray()));
+ ((Value.Arr)pkgV.getv("$modules")).add(vo);
+ ((Value.Arr)om.findStrict("$modules", "evmTCI66AK2G02Custom")).add(vo);
+ vo.bind("$$instflag", 1);
+ vo.bind("$$iobjflag", 1);
+ vo.bind("$$sizeflag", 1);
+ vo.bind("$$dlgflag", 0);
+ vo.bind("$$iflag", 1);
+ vo.bind("$$romcfgs", "|");
+ vo.bind("$$nortsflag", 0);
+ Proto.Str ps = (Proto.Str)vo.find("Module_State");
+ if (ps != null) vo.bind("$object", ps.newInstance());
+ vo.bind("$$meta_iobj", om.has("evmTCI66AK2G02Custom.Platform$$instance$static$init", null) ? 1 : 0);
+ vo.bind("$$fxntab", Global.newArray());
+ vo.bind("$$logEvtCfgs", Global.newArray());
+ vo.bind("$$errorDescCfgs", Global.newArray());
+ vo.bind("$$assertDescCfgs", Global.newArray());
+ Value.Map atmap = (Value.Map)vo.getv("$attr");
+ atmap.seal("length");
+ vo.bind("Object", om.findStrict("evmTCI66AK2G02Custom.Platform.Object", "evmTCI66AK2G02Custom"));
+ pkgV.bind("Platform", vo);
+ ((Value.Arr)pkgV.getv("$unitNames")).add("Platform");
+ }
+
+ void $$INITIALIZATION()
+ {
+ Value.Obj vo;
+
+ if (isCFG) {
+ }//isCFG
+ Global.callFxn("module$meta$init", (Scriptable)om.findStrict("evmTCI66AK2G02Custom.Platform", "evmTCI66AK2G02Custom"));
+ vo = (Value.Obj)om.findStrict("evmTCI66AK2G02Custom.Platform", "evmTCI66AK2G02Custom");
+ Global.put(vo, "CPU", Global.callFxn("create", (Scriptable)om.find("ti.platforms.generic.Platform"), "CPU", Global.newObject("clockRate", 600L, "catalogName", "ti.catalog.c6000", "deviceName", "TCI66AK2G02", "customMemoryMap", Global.newArray(new Object[]{Global.newArray(new Object[]{"MSMCSRAM", Global.newObject("name", "MSMCSRAM", "base", 0x0c000000L, "len", 0x00100000L, "space", "code/data", "access", "RWX")}), Global.newArray(new Object[]{"L2SRAM", Global.newObject("name", "L2SRAM", "base", 0x00800000L, "len", 0x00100000L, "space", "code/data", "access", "RWX")}), Global.newArray(new Object[]{"EXT_RAM", Global.newObject("name", "EXT_RAM", "base", 0x80000000L, "len", 0x20000000L, "space", "code/data", "access", "RWX")})}), "l2Mode", "0k", "l1PMode", "32k", "l1DMode", "32k")));
+ Global.callFxn("init", pkgV);
+ ((Value.Obj)om.getv("evmTCI66AK2G02Custom.Platform")).bless();
+ ((Value.Arr)om.findStrict("$packages", "evmTCI66AK2G02Custom")).add(pkgV);
+ }
+
+ public void exec( Scriptable xdcO, Session ses )
+ {
+ this.xdcO = xdcO;
+ this.ses = ses;
+ om = (Value.Obj)xdcO.get("om", null);
+
+ Object o = om.geto("$name");
+ String s = o instanceof String ? (String)o : null;
+ isCFG = s != null && s.equals("cfg");
+ isROV = s != null && s.equals("rov");
+
+ $$IMPORTS();
+ $$OBJECTS();
+ Platform$$OBJECTS();
+ Platform$$CONSTS();
+ Platform$$CREATES();
+ Platform$$FUNCTIONS();
+ Platform$$SIZES();
+ Platform$$TYPES();
+ if (isROV) {
+ Platform$$ROV();
+ }//isROV
+ $$SINGLETONS();
+ Platform$$SINGLETONS();
+ $$INITIALIZATION();
+ }
+}
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/evmTCI66AK2G02Custom.sch b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/evmTCI66AK2G02Custom.sch
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/package.bld.xml b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/package.bld.xml
--- /dev/null
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="windows-1252"?>
+<!-- This file conforms to the DTD xdc/bld/build.dtd -->
+<package name="evmTCI66AK2G02Custom" version="" producerId="undefined">
+ <units>
+ <module name="Platform"/>
+ </units>
+ <sources>
+ </sources>
+ <configscripts>
+ </configscripts>
+ <makefiles>
+ <srcFile name="package.mak" src="package.bld"/>
+ <srcFile name="package/package.xdc.dep" src="package.xdc"/>
+ <srcFile name="package/package.cfg.dep" src="package.xdc"/>
+ <srcFile name="package/rel/evmTCI66AK2G02Custom.zip.dep" src="package/rel/evmTCI66AK2G02Custom.xdc.inc"/>
+ </makefiles>
+ <targets>
+ </targets>
+ <libraries>
+ </libraries>
+ <configurations>
+ </configurations>
+ <executables>
+ </executables>
+ <tests>
+ </tests>
+ <releases relDir="package/rel/">
+ <release name="evmTCI66AK2G02Custom"
+ pname="evmTCI66AK2G02Custom.zip"
+ label="default"
+ >
+ <file name="package/package.bld.xml"/>
+ <file name="package/build.cfg"/>
+ <file name="package/package.xdc.inc"/>
+ <file name="package/package.cfg.xdc.inc"/>
+ </release>
+ </releases>
+ <repositories>
+ </repositories>
+</package>
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/package.cfg.dep b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/package.cfg.dep
--- /dev/null
@@ -0,0 +1,61 @@
+#
+# The following is generated by utils.genDep for package/package.cfg
+#
+package/package.cfg.c package/package.cfg.h package/package.cfg.xdl:Platform.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/Arctic.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/DRA7XX.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IAntara.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IDaVinci.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IHimalaya.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IOMAP2x3x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IOMAP3xxx.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITI811X.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITI8148.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITI8168.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C642x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C64_128K.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C64_1M.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C64_256K.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C64_512K.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C6655.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C6x0x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C6x1x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CDM6467.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CDRA44x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CDRA45x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CDRx40x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CTCI6484.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CTCI6486.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CTCI648x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CTCI6497.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320DA8xx.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320TCI6608.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320TCI6616.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320TCI663x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/Kepler.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/OMAP4430.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/OMAP5430.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TCI66AK2G02.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TDA3XX.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6421.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6428.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6452.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6454.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6654.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C66AK2E02.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C66AK2E05.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CDM6431.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CDM647.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CDM648.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CF761990.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CTNETV2685.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320TCI6630K2L.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TNETV107X.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/Vayu.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/c6x.xs C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/package.xs C:/ti/bios_6_45_01_29/packages/ti/platforms/generic/Platform.xs C:/ti/bios_6_45_01_29/packages/ti/platforms/generic/package.xs
+
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/Arctic.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/DRA7XX.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IAntara.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IDaVinci.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IHimalaya.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IOMAP2x3x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/IOMAP3xxx.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITI811X.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITI8148.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITI8168.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C642x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C64_128K.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C64_1M.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C64_256K.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C64_512K.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C6655.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C6x0x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320C6x1x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CDM6467.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CDRA44x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CDRA45x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CDRx40x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CTCI6484.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CTCI6486.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CTCI648x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320CTCI6497.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320DA8xx.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320TCI6608.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320TCI6616.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/ITMS320TCI663x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/Kepler.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/OMAP4430.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/OMAP5430.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TCI66AK2G02.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TDA3XX.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6421.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6428.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6452.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6454.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C6654.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C66AK2E02.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320C66AK2E05.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CDM6431.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CDM647.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CDM648.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CF761990.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320CTNETV2685.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TMS320TCI6630K2L.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/TNETV107X.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/Vayu.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/c6x.xs:
+C:/ti/bios_6_45_01_29/packages/ti/catalog/c6000/package.xs:
+C:/ti/bios_6_45_01_29/packages/ti/platforms/generic/Platform.xs:
+C:/ti/bios_6_45_01_29/packages/ti/platforms/generic/package.xs:
+
+
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/package.cfg.xdc.inc b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/package.cfg.xdc.inc
--- /dev/null
@@ -0,0 +1 @@
+Platform.xs
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/package.defs.h b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/package.defs.h
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+ * Do not modify this file; it is automatically
+ * generated and any modifications will be overwritten.
+ *
+ * @(#) xdc-B06
+ */
+
+#ifndef evmTCI66AK2G02Custom__
+#define evmTCI66AK2G02Custom__
+
+
+
+#endif /* evmTCI66AK2G02Custom__ */
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/package.xdc.dep b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/package.xdc.dep
--- /dev/null
@@ -0,0 +1,69 @@
+clean::\r
+ $(RM) package/evmTCI66AK2G02Custom.sch\r
+ $(RM) package/.vers_g180\r
+ $(RM) package/.vers_r170\r
+ $(RM) package/.vers_b160\r
+ $(RM) package/.xdc-B06\r
+ $(RM) package/evmTCI66AK2G02Custom.java\r
+ $(RM) package/evmTCI66AK2G02Custom.class\r
+ $(RM) package/package_evmTCI66AK2G02Custom.c\r
+ $(RM) package/package.defs.h\r
+ $(RM) package/evmTCI66AK2G02Custom.ccs\r
+
+.interfaces: package/evmTCI66AK2G02Custom.sch package/.vers_g180 package/.vers_r170 package/.vers_b160 package/.xdc-B06 package/evmTCI66AK2G02Custom.java package/package_evmTCI66AK2G02Custom.c package/package.defs.h package/evmTCI66AK2G02Custom.ccs
+package/package.xdc.inc: package/.vers_g180
+package/.vers_g180:
+package/package.xdc.inc: package/.vers_r170
+package/.vers_r170:
+package/package.xdc.inc: package/.vers_b160
+package/.vers_b160:
+
+.interfaces: Platform.xdc
+
+# schema include file dependencies
+Platform.xs:\r
+package/package.xdc.inc: Platform.xs\r
+
+# schema update dependencies
+package/package.xdc.inc: Platform.xdc\r
+package/package.xdc.inc: xdc/IPackage.xdc\r
+xdc/IPackage.xdc:\r
+vpath xdc/IPackage.xdc $(XPKGVPATH)\r
+package/package.xdc.inc: xdc/platform/IPlatform.xdc\r
+xdc/platform/IPlatform.xdc:\r
+vpath xdc/platform/IPlatform.xdc $(XPKGVPATH)\r
+package/package.xdc.inc: xdc/platform/IPeripheral.xdc\r
+xdc/platform/IPeripheral.xdc:\r
+vpath xdc/platform/IPeripheral.xdc $(XPKGVPATH)\r
+package/package.xdc.inc: xdc/platform/ICpuDataSheet.xdc\r
+xdc/platform/ICpuDataSheet.xdc:\r
+vpath xdc/platform/ICpuDataSheet.xdc $(XPKGVPATH)\r
+package/package.xdc.inc: ti/platforms/generic/Platform.xdc\r
+ti/platforms/generic/Platform.xdc:\r
+vpath ti/platforms/generic/Platform.xdc $(XPKGVPATH)\r
+package/package.xdc.inc: xdc/platform/IExeContext.xdc\r
+xdc/platform/IExeContext.xdc:\r
+vpath xdc/platform/IExeContext.xdc $(XPKGVPATH)\r
+
+ifneq (clean,$(MAKECMDGOALS))
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/ecj.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/ecj.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/intern/gen/java/package.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/intern/gen/java/package.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/intern/cmd/java/package.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/intern/cmd/java/package.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/js.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/js.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/global/java/package.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/global/java/package.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/antlr.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/antlr.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/intern/xsr/java/package.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/intern/xsr/java/package.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/tar.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/shelf/java/tar.jar\r
+C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/spec/java/package.jar:\r
+package/package.xdc.inc: C:/ti/xdctools_3_32_00_06_core/packages/xdc/services/spec/java/package.jar\r
+endif
+# goals for files generated during schema generation but unspecified by schema's pattern rule
+
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/package.xdc.inc b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/package.xdc.inc
--- /dev/null
@@ -0,0 +1,13 @@
+package.xdc\r
+Platform.xdc\r
+Platform.xs\r
+package/evmTCI66AK2G02Custom.sch\r
+package/.vers_g180\r
+package/.vers_r170\r
+package/.vers_b160\r
+package/.xdc-B06\r
+package/evmTCI66AK2G02Custom.java\r
+package/evmTCI66AK2G02Custom.class\r
+package/package_evmTCI66AK2G02Custom.c\r
+package/package.defs.h\r
+package/evmTCI66AK2G02Custom.ccs\r
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/package_evmTCI66AK2G02Custom.c b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/package_evmTCI66AK2G02Custom.c
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ * Do not modify this file; it is automatically
+ * generated and any modifications will be overwritten.
+ *
+ * @(#) xdc-B06
+ */
+
+#include <xdc/std.h>
+
+__FAR__ char evmTCI66AK2G02Custom__dummy__;
+
+#define __xdc_PKGVERS null
+#define __xdc_PKGNAME evmTCI66AK2G02Custom
+#define __xdc_PKGPREFIX evmTCI66AK2G02Custom_
+
+#ifdef __xdc_bld_pkg_c__
+#define __stringify(a) #a
+#define __local_include(a) __stringify(a)
+#include __local_include(__xdc_bld_pkg_c__)
+#endif
+
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/rel/evmTCI66AK2G02Custom.xdc.inc b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/rel/evmTCI66AK2G02Custom.xdc.inc
--- /dev/null
+++ b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/rel/evmTCI66AK2G02Custom.xdc.inc
@@ -0,0 +1,9 @@
+config.bld
+package.bld
+package.xdc
+Platform.xdc
+Platform.xs
+package/package.bld.xml
+package/build.cfg
+package/package.xdc.inc
+package/package.cfg.xdc.inc
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/rel/evmTCI66AK2G02Custom.xdc.inc.manifest b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/rel/evmTCI66AK2G02Custom.xdc.inc.manifest
--- /dev/null
@@ -0,0 +1,17 @@
+evmTCI66AK2G02Custom/Platform.xdc
+evmTCI66AK2G02Custom/Platform.xs
+evmTCI66AK2G02Custom/config.bld
+evmTCI66AK2G02Custom/package/.vers_b160
+evmTCI66AK2G02Custom/package/.vers_g180
+evmTCI66AK2G02Custom/package/.vers_r170
+evmTCI66AK2G02Custom/package/.xdc-B06
+evmTCI66AK2G02Custom/package/build.cfg
+evmTCI66AK2G02Custom/package/evmTCI66AK2G02Custom.ccs
+evmTCI66AK2G02Custom/package/evmTCI66AK2G02Custom.class
+evmTCI66AK2G02Custom/package/evmTCI66AK2G02Custom.java
+evmTCI66AK2G02Custom/package/evmTCI66AK2G02Custom.sch
+evmTCI66AK2G02Custom/package/package.bld.xml
+evmTCI66AK2G02Custom/package/package.defs.h
+evmTCI66AK2G02Custom/package/package_evmTCI66AK2G02Custom.c
+evmTCI66AK2G02Custom/package.bld
+evmTCI66AK2G02Custom/package.xdc
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/rel/evmTCI66AK2G02Custom.xdc.ninc b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/rel/evmTCI66AK2G02Custom.xdc.ninc
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/rel/evmTCI66AK2G02Custom.zip.dep b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/rel/evmTCI66AK2G02Custom.zip.dep
--- /dev/null
+++ b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/rel/evmTCI66AK2G02Custom.zip.dep
@@ -0,0 +1,34 @@
+evmTCI66AK2G02Custom.zip: Platform.xdc
+Platform.xdc:
+evmTCI66AK2G02Custom.zip: Platform.xs
+Platform.xs:
+evmTCI66AK2G02Custom.zip: config.bld
+config.bld:
+evmTCI66AK2G02Custom.zip: package/.vers_b160
+package/.vers_b160:
+evmTCI66AK2G02Custom.zip: package/.vers_g180
+package/.vers_g180:
+evmTCI66AK2G02Custom.zip: package/.vers_r170
+package/.vers_r170:
+evmTCI66AK2G02Custom.zip: package/.xdc-B06
+package/.xdc-B06:
+evmTCI66AK2G02Custom.zip: package/build.cfg
+package/build.cfg:
+evmTCI66AK2G02Custom.zip: package/evmTCI66AK2G02Custom.ccs
+package/evmTCI66AK2G02Custom.ccs:
+evmTCI66AK2G02Custom.zip: package/evmTCI66AK2G02Custom.class
+package/evmTCI66AK2G02Custom.class:
+evmTCI66AK2G02Custom.zip: package/evmTCI66AK2G02Custom.java
+package/evmTCI66AK2G02Custom.java:
+evmTCI66AK2G02Custom.zip: package/evmTCI66AK2G02Custom.sch
+package/evmTCI66AK2G02Custom.sch:
+evmTCI66AK2G02Custom.zip: package/package.bld.xml
+package/package.bld.xml:
+evmTCI66AK2G02Custom.zip: package/package.defs.h
+package/package.defs.h:
+evmTCI66AK2G02Custom.zip: package/package_evmTCI66AK2G02Custom.c
+package/package_evmTCI66AK2G02Custom.c:
+evmTCI66AK2G02Custom.zip: package.bld
+package.bld:
+evmTCI66AK2G02Custom.zip: package.xdc
+package.xdc:
diff --git a/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/rel/evmTCI66AK2G02Custom/evmTCI66AK2G02Custom/package/package.rel.xml b/file_demo_bios/platforms/packages/evmTCI66AK2G02Custom/package/rel/evmTCI66AK2G02Custom/evmTCI66AK2G02Custom/package/package.rel.xml
--- /dev/null
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="windows-1252"?>
+<!-- This file conforms to the DTD xdc/bld/release.dtd -->
+<release name="evmTCI66AK2G02Custom" label="default" date="1468357001827" buildCount="1" producerId="undefined">
+<package name="evmTCI66AK2G02Custom"
+ version=""/>
+<imports>
+</imports>
+<references>
+ <package name="xdc"
+ version="1, 1, 1, 1449624895255"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="IPackage.xdc"/>
+ <file name="IPackage.xs"/>
+ <file name="Warnings.xs"/>
+ <file name="om2.xs"/>
+ <file name="package.xs"/>
+ <file name="template.xs"/>
+ <file name="utils.js"/>
+ <file name="xdc.tci"/>
+ <file name="xmlgen.xs"/>
+ <file name="xmlgen2.xs"/>
+ </package>
+ <package name="xdc.services.global"
+ version="1, 0, 0, 1449625038320"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="Clock.xs"/>
+ <file name="Trace.xs"/>
+ <file name="java\package.jar"/>
+ </package>
+ <package name="xdc.bld"
+ version="1, 0, 2, 1449624907828"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="BuildEnvironment.xs"/>
+ <file name="Configuration.xs"/>
+ <file name="Executable.xs"/>
+ <file name="ITarget.xs"/>
+ <file name="ITarget2.xs"/>
+ <file name="ITarget3.xs"/>
+ <file name="ITargetFilter.xs"/>
+ <file name="Library.xs"/>
+ <file name="Manifest.xs"/>
+ <file name="PackageContents.xs"/>
+ <file name="Repository.xs"/>
+ <file name="Script.xs"/>
+ <file name="Utils.xs"/>
+ <file name="_gen.xs"/>
+ <file name="bld.js"/>
+ <file name="package.xs"/>
+ </package>
+ <package name="xdc.platform"
+ version="1, 0, 1, 1449624947821"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="ICpuDataSheet.xdc"/>
+ <file name="IExeContext.xdc"/>
+ <file name="IPeripheral.xdc"/>
+ <file name="IPlatform.xdc"/>
+ </package>
+ <package name="ti.platforms.generic"
+ version="1, 0, 0, 1, 1454090561812"
+ providerId="C:/ti/bios_6_45_01_29/packages">
+ <file name="Platform.xdc"/>
+ </package>
+ <package name="xdc.shelf"
+ version="1, 0, 0, 1449625162069"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="java\antlr.jar"/>
+ <file name="java\ecj.jar"/>
+ <file name="java\js.jar"/>
+ <file name="java\tar.jar"/>
+ </package>
+ <package name="xdc.services.intern.gen"
+ version="1, 0, 0, 1449625079795"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="java\package.jar"/>
+ </package>
+ <package name="xdc.services.intern.cmd"
+ version="1, 0, 0, 1449625073074"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="java\package.jar"/>
+ </package>
+ <package name="xdc.services.intern.xsr"
+ version="1, 0, 0, 1449625086761"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="java\package.jar"/>
+ </package>
+ <package name="xdc.services.spec"
+ version="1, 0, 0, 1449625113628"
+ providerId="C:/ti/xdctools_3_32_00_06_core/packages">
+ <file name="java\package.jar"/>
+ </package>
+ <xdcRoot base="C:/ti/xdctools_3_32_00_06_core/">
+ <file name="/packages/xdc/package.xdc"/>
+ <xdcCorePkg version="16, 0, 2, 1449624941057" producerId="/db/ztree/library/trees/xdc/xdc-B06/src/packages" buildCount="1" releaseName="xdc_corevers" label="default" date="1449624941057"/>
+ </xdcRoot>
+</references>
+<orphans>
+</orphans>
+</release>