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;