/* * Copyright (C) 2018 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 nor 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. * */ /** * * \brief Sysbios config file for Multi peripheral application * */ /* ================ General XDC configuration ================ */ 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 SysMin = xdc.useModule('xdc.runtime.SysMin'); var System = xdc.useModule('xdc.runtime.System'); var Text = xdc.useModule('xdc.runtime.Text'); /* ================ General sysbios configuration ================ */ var BIOS = xdc.useModule('ti.sysbios.BIOS'); var Hwi = xdc.useModule('ti.sysbios.hal.Hwi'); var LoggingSetup = xdc.useModule('ti.uia.sysbios.LoggingSetup'); /* ================ Specific sysbios configuration ================ */ /* * The BIOS module will create the default heap for the system. * Specify the size of this default heap: * This depends on the dynamic memory allocated in the system * See the SYSBIOS user guide for details about optimizing the size * for a given application */ BIOS.heapSize = 0xA0000; /* Enable SemiHost support */ var SemiHost = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport'); /* * Program.argSize sets the size of the .args section. * The examples don't use command line args so argSize is set to 0. */ /* Program.argSize = 0x0; */ /* * 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; */ /* * Following 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; */ /* * Following 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; /* * Following 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; /* Circular buffer size for System_printf() * This depends on the amount of System_printf history data needed. */ SysMin.bufSize = 0x200; System.SupportProxy = SysMin; /* * 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; /* ================ SOC and Core specific configuration ================*/ var socType = "am437x"; /* ================ Low level drivers configuration ================ */ /* Load the Osal package */ var osType = "tirtos"; var Osal = xdc.loadPackage('ti.osal'); Osal.Settings.osType = osType; /*use CSL package*/ var Csl = xdc.loadPackage('ti.csl'); Csl.Settings.deviceType = socType; /* Load the i2c package */ var I2c = xdc.loadPackage('ti.drv.i2c'); I2c.Settings.socType = socType; /* Load the uart package */ var Uart = xdc.loadPackage('ti.drv.uart'); Uart.Settings.socType = socType; /* Load the gpio package */ var Gpio = xdc.loadPackage('ti.drv.gpio'); Gpio.Settings.socType = socType; /* Load the SPI package */ var Spi = xdc.loadPackage('ti.drv.spi'); Spi.Settings.socType = socType; /* Add additional drivers if needed here */ /* ================ Cache and MMU configuration ================ */ var Cache = xdc.useModule('ti.sysbios.family.arm.a9.Cache'); /* NOTE: A9 uses the same MMU HW as A8 */ var Mmu = xdc.useModule('ti.sysbios.family.arm.a8.Mmu'); /* NOTE: The following statements enable cache and MMU and they are needed to enhance performance */ /* Enable the cache */ Cache.enableCache = true; /* Enable the MMU (Requir ed for L1 data caching) */ Mmu.enableMMU = true; /* Configure MMU attributes: * See details of parameters in ti.sysbios.family.arm.a8.MMU API manual. * ( Part of SYSBIOS release documentation). */ /* Force peripheral section to be NON cacheable strongly-ordered memory */ var peripheralAttrs = { type : Mmu.FirstLevelDesc_SECTION, /* SECTION descriptor */ tex: 0, bufferable : false, /* not bufferable */ cacheable : false, /* not cacheable */ shareable : false, /* not shareable */ noexecute : true, /* not executable */ }; /* Define the base address of the 1 Meg page */ /* the peripheral resides in. */ var peripheralBaseAddr = 0x44DF2800; /* Configure the corresponding MMU page descriptor accordingly */ Mmu.setFirstLevelDescMeta(peripheralBaseAddr, peripheralBaseAddr, peripheralAttrs); /* Load the application specific config file */ xdc.loadCapsule("app.cfg"); LoggingSetup.sysbiosSwiLogging = true; LoggingSetup.sysbiosHwiLogging = true; LoggingSetup.sysbiosSemaphoreLogging = true; LoggingSetup.enableTaskProfiler = true; LoggingSetup.enableContextAwareFunctionProfiler = true; LoggingSetup.sysbiosLoggerSize = 524288;