This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Part Number: MSP432P4111
Tool/software: TI-RTOS
Any idea how to fix these warnings I see when I build my software packages?
My xdc config file is below:
/* * Copyright (c) 2017, Texas Instruments Incorporated * All rights reserved. * * 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. */ /* ================ Clock configuration ================ */ var Clock = xdc.useModule('ti.sysbios.knl.Clock'); var Timestamp = xdc.useModule('xdc.runtime.Timestamp'); var LoggerStopMode = xdc.useModule('ti.uia.loggers.LoggerStopMode'); var LoggingSetup = xdc.useModule('ti.uia.sysbios.LoggingSetup'); var Load = xdc.useModule('ti.sysbios.utils.Load'); var Event = xdc.useModule('ti.sysbios.knl.Event'); Load.windowInMs = 100; // configure to log every 100ms instead of the default period of 500ms. LoggingSetup.benchmarkLogging = false; LoggingSetup.countingAndGraphingLogging = false; LoggingSetup.cpuId = 0; LoggingSetup.enableContextAwareFunctionProfiler = true; LoggingSetup.enableTaskProfiler = false; LoggingSetup.loadHwiLogging = true; LoggingSetup.loadLogger = null; LoggingSetup.loadLoggerSize = 1024; LoggingSetup.loadLogging = true; LoggingSetup.loadLoggingRuntimeControl = false; LoggingSetup.loadSwiLogging = true; LoggingSetup.loadTaskLogging = true; LoggingSetup.loggerType = LoggingSetup.LoggerType_STOPMODE; LoggingSetup.mainLogger = null; LoggingSetup.mainLoggerSize = 64; LoggingSetup.mainLogging = true; LoggingSetup.mainLoggingRuntimeControl = false; LoggingSetup.maxEventSize = 128; LoggingSetup.memorySectionName = null; LoggingSetup.multicoreEventCorrelation = false; LoggingSetup.numCores = 1; LoggingSetup.profileLogging = false; LoggingSetup.snapshotLogging = false; //LoggingSetup.syncLoggerSize = LogSync.defaultSyncLoggerSize; LoggingSetup.sysbiosHwiLogging = true; LoggingSetup.sysbiosHwiLoggingRuntimeControl = false; LoggingSetup.sysbiosLogger = null; LoggingSetup.sysbiosLoggerSize = 1024; LoggingSetup.sysbiosSemaphoreLogging = true; LoggingSetup.sysbiosSemaphoreLoggingRuntimeControl = false; LoggingSetup.sysbiosSwiLogging = true; LoggingSetup.sysbiosSwiLoggingRuntimeControl = false; LoggingSetup.sysbiosTaskLogging = true; LoggingSetup.sysbiosTaskLoggingRuntimeControl = true; LoggingSetup.timestampSize = LoggingSetup.TimestampSize_AUTO; /* * Default value is family dependent. For example, Linux systems often only * support a minimum period of 10000 us and multiples of 10000 us. * TI platforms have a default of 1000 us. */ Clock.tickPeriod = 1000; /* ================ Defaults (module) configuration ================ */ var Defaults = xdc.useModule('xdc.runtime.Defaults'); /* * A flag to allow module names to be loaded on the target. Module name * strings are placed in the .const section for debugging purposes. * * Pick one: * - true (default) * Setting this parameter to true will include name strings in the .const * section so that Errors and Asserts are easier to debug. * - false * Setting this parameter to false will reduce footprint in the .const * section. As a result, Error and Assert messages will contain an * "unknown module" prefix instead of the actual module name. */ Defaults.common$.namedModule = true; //Defaults.common$.namedModule = false; /* ================ Error configuration ================ */ var Error = xdc.useModule('xdc.runtime.Error'); /* * This function is called to handle all raised errors, but unlike * Error.raiseHook, this function is responsible for completely handling the * error with an appropriately initialized Error_Block. * * Pick one: * - Error.policyDefault (default) * Calls Error.raiseHook with an initialized Error_Block structure and logs * the error using the module's logger. * - Error.policySpin * Simple alternative that traps on a while(1) loop for minimized target * footprint. * Using Error.policySpin, the Error.raiseHook will NOT called. */ Error.policyFxn = Error.policyDefault; //Error.policyFxn = Error.policySpin; /* * If Error.policyFxn is set to Error.policyDefault, this function is called * whenever an error is raised by the Error module. * * Pick one: * - Error.print (default) * Errors are formatted and output via System_printf() for easier * debugging. * - null * Errors are not formatted or logged. This option reduces code footprint. * - non-null function * Errors invoke custom user function. See the Error module documentation * for more details. */ Error.raiseHook = Error.print; //Error.raiseHook = null; //Error.raiseHook = "&myErrorFxn"; /* * If Error.policyFxn is set to Error.policyDefault, this option applies to the * maximum number of times the Error.raiseHook function can be recursively * invoked. This option limits the possibility of an infinite recursion that * could lead to a stack overflow. * The default value is 16. */ Error.maxDepth = 2; /* ================ Hwi configuration ================ */ var halHwi = xdc.useModule('ti.sysbios.hal.Hwi'); var m3Hwi = xdc.useModule('ti.sysbios.family.arm.m3.Hwi'); /* * Checks for Hwi (system) stack overruns while in the Idle loop. * * Pick one: * - true (default) * Checks the top word for system stack overflows during the idle loop and * raises an Error if one is detected. * - false * Disabling the runtime check improves runtime performance and yields a * reduced flash footprint. */ halHwi.checkStackFlag = true; //halHwi.checkStackFlag = false; /* * The following options alter the system's behavior when a hardware exception * is detected. * * Pick one: * - Hwi.enableException = true * This option causes the default m3Hwi.excHandlerFunc function to fully * decode an exception and dump the registers to the system console. * This option raises errors in the Error module and displays the * exception in ROV. * - Hwi.enableException = false * This option reduces code footprint by not decoding or printing the * exception to the system console. * It however still raises errors in the Error module and displays the * exception in ROV. * - Hwi.excHandlerFunc = null * This is the most aggressive option for code footprint savings; but it * can difficult to debug exceptions. It reduces flash footprint by * plugging in a default while(1) trap when exception occur. This option * does not raise an error with the Error module. */ m3Hwi.enableException = true; //m3Hwi.enableException = false; //m3Hwi.excHandlerFunc = null; /* * Enable hardware exception generation when dividing by zero. * * Pick one: * - 0 (default) * Disables hardware exceptions when dividing by zero * - 1 * Enables hardware exceptions when dividing by zero */ m3Hwi.nvicCCR.DIV_0_TRP = 1; //m3Hwi.nvicCCR.DIV_0_TRP = 1; /* * Enable hardware exception generation for invalid data alignment. * * Pick one: * - 0 (default) * Disables hardware exceptions for data alignment * - 1 * Enables hardware exceptions for data alignment */ m3Hwi.nvicCCR.UNALIGN_TRP = 1; //m3Hwi.nvicCCR.UNALIGN_TRP = 1; /* ================ Idle configuration ================ */ var Idle = xdc.useModule('ti.sysbios.knl.Idle'); /* * The Idle module is used to specify a list of functions to be called when no * other tasks are running in the system. * * Functions added here will be run continuously within the idle task. * * Function signature: * Void func(Void); */ //Idle.addFunc("&myIdleFunc"); //Idle.addFunc('&Power_idleFunc'); /* add the Power module's idle function */ /* ================ Kernel (SYS/BIOS) configuration ================ */ var BIOS = xdc.useModule('ti.sysbios.BIOS'); /* * Enable asserts in the BIOS library. * * Pick one: * - true (default) * Enables asserts for debugging purposes. * - false * Disables asserts for a reduced code footprint and better performance. */ //BIOS.assertsEnabled = true; BIOS.assertsEnabled = false; /* * A flag to determine if xdc.runtime sources are to be included in a custom * built BIOS library. * * Pick one: * - false (default) * The pre-built xdc.runtime library is provided by the respective target * used to build the application. * - true * xdc.runtime library sources are to be included in the custom BIOS * library. This option yields the most efficient library in both code * footprint and runtime performance. */ BIOS.includeXdcRuntime = false; //BIOS.includeXdcRuntime = true; /* * The SYS/BIOS runtime is provided in the form of a library that is linked * with the application. Several forms of this library are provided with the * SYS/BIOS product. * * Pick one: * - BIOS.LibType_Custom * Custom built library that is highly optimized for code footprint and * runtime performance. * - BIOS.LibType_Debug * Custom built library that is non-optimized that can be used to * single-step through APIs with a debugger. * */ BIOS.libType = BIOS.LibType_Instrumented; //BIOS.libType = BIOS.LibType_Debug; /* * Runtime instance creation enable flag. * * Pick one: * - true (default) * Allows Mod_create() and Mod_delete() to be called at runtime which * requires a default heap for dynamic memory allocation. * - false * Reduces code footprint by disallowing Mod_create() and Mod_delete() to * be called at runtime. Object instances are constructed via * Mod_construct() and destructed via Mod_destruct(). */ BIOS.runtimeCreatesEnabled = true; //BIOS.runtimeCreatesEnabled = false; /* * Enable logs in the BIOS library. * * Pick one: * - true (default) * Enables logs for debugging purposes. * - false * Disables logging for reduced code footprint and improved runtime * performance. */ //BIOS.logsEnabled = true; BIOS.logsEnabled = false; /* ================ Memory configuration ================ */ var Memory = xdc.useModule('xdc.runtime.Memory'); /* * The Memory module itself simply provides a common interface for any * variety of system and application specific memory management policies * implemented by the IHeap modules(Ex. HeapMem, HeapBuf). */ /* * Use HeapMem primary heap instance to use linker-defined memory region */ var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem'); HeapMem.primaryHeapBaseAddr = "&__primary_heap_start__"; HeapMem.primaryHeapEndAddr = "&__primary_heap_end__"; var heapMemParams = new HeapMem.Params(); heapMemParams.usePrimaryHeap = true; Program.global.heap0 = HeapMem.create(heapMemParams); Memory.defaultHeapInstance = Program.global.heap0; /* ================ Program configuration ================ */ /* * Program.stack must be set to 0 to allow the setting * of the system stack size to be determined in the example's * linker command file. */ Program.stack = 2048; /* * Uncomment to enable Semihosting for GNU targets to print to the CCS console. * Please read the following TIRTOS Wiki page for more information on Semihosting: * processors.wiki.ti.com/.../TI-RTOS_Examples_SemiHosting */ if (Program.build.target.$name.match(/gnu/)) { //var SemiHost = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport'); } /* ================ Semaphore configuration ================ */ var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore'); /* * Enables global support for Task priority pend queuing. * * Pick one: * - true (default) * This allows pending tasks to be serviced based on their task priority. * - false * Pending tasks are services based on first in, first out basis. * * When using BIOS in ROM: * This option must be set to false. */ //Semaphore.supportsPriority = true; Semaphore.supportsPriority = false; /* * Allows for the implicit posting of events through the semaphore, * disable for additional code saving. * * Pick one: * - true * This allows the Semaphore module to post semaphores and events * simultaneously. * - false (default) * Events must be explicitly posted to unblock tasks. * */ Semaphore.supportsEvents = false; /* * A software interrupt is an object that encapsulates a function to be * executed and a priority. Software interrupts are prioritized, preempt tasks * and are preempted by hardware interrupt service routines. * * This module is included to allow Swi's in a users' application. */ /* ================ System configuration ================ */ var System = xdc.useModule('xdc.runtime.System'); /* * The Abort handler is called when the system exits abnormally. * * Pick one: * - System.abortStd (default) * Call the ANSI C Standard 'abort()' to terminate the application. * - System.abortSpin * A lightweight abort function that loops indefinitely in a while(1) trap * function. * - A custom abort handler * A user-defined function. See the System module documentation for * details. */ System.abortFxn = System.abortStd; //System.abortFxn = System.abortSpin; //System.abortFxn = "&myAbortSystem"; /* * The Exit handler is called when the system exits normally. * * Pick one: * - System.exitStd (default) * Call the ANSI C Standard 'exit()' to terminate the application. * - System.exitSpin * A lightweight exit function that loops indefinitely in a while(1) trap * function. * - A custom exit function * A user-defined function. See the System module documentation for * details. */ System.exitFxn = System.exitStd; //System.exitFxn = System.exitSpin; //System.exitFxn = "&myExitSystem"; /* * Minimize exit handler array in the System module. The System module includes * an array of functions that are registered with System_atexit() which is * called by System_exit(). The default value is 8. */ System.maxAtexitHandlers = 2; /* * The System.SupportProxy defines a low-level implementation of System * functions such as System_printf(), System_flush(), etc. * * Pick one pair: * - SysMin * This module maintains an internal configurable circular buffer that * stores the output until System_flush() is called. * The size of the circular buffer is set via SysMin.bufSize. * - SysCallback * SysCallback allows for user-defined implementations for System APIs. * The SysCallback support proxy has a smaller code footprint and can be * used to supply custom System_printf services. * The default SysCallback functions point to stub functions. See the * SysCallback module's documentation. */ var SysMin = xdc.useModule('xdc.runtime.SysMin'); SysMin.bufSize = 512; SysMin.flushAtExit = true; System.SupportProxy = SysMin; //var SysCallback = xdc.useModule('xdc.runtime.SysCallback'); //System.SupportProxy = SysCallback; //SysCallback.abortFxn = "&myUserAbort"; //SysCallback.exitFxn = "&myUserExit"; //SysCallback.flushFxn = "&myUserFlush"; //SysCallback.putchFxn = "&myUserPutch"; //SysCallback.readyFxn = "&myUserReady"; /* ================ Task configuration ================ */ var Task = xdc.useModule('ti.sysbios.knl.Task'); /* * Check task stacks for overflow conditions. * * Pick one: * - true (default) * Enables runtime checks for task stack overflow conditions during * context switching ("from" and "to") * - false * Disables runtime checks for task stack overflow conditions. */ Task.checkStackFlag = true; //Task.checkStackFlag = false; /* * Set the default task stack size when creating tasks. * * The default is dependent on the device being used. Reducing the default stack * size yields greater memory savings. */ Task.defaultStackSize = 512; /* * Enables the idle task. * * Pick one: * - true (default) * Creates a task with priority of 0 which calls idle hook functions. This * option must be set to true to gain power savings provided by the Power * module. * - false * No idle task is created. This option consumes less memory as no * additional default task stack is needed. * To gain power savings by the Power module without having the idle task, * add Idle.run as the Task.allBlockedFunc. */ Task.enableIdleTask = true; //Task.enableIdleTask = false; //Task.allBlockedFunc = Idle.run; /* * If Task.enableIdleTask is set to true, this option sets the idle task's * stack size. * * Reducing the idle stack size yields greater memory savings. */ Task.idleTaskStackSize = 1024; /* * Reduce the number of task priorities. * The default is 16. * Decreasing the number of task priorities yield memory savings. */ Task.numPriorities = 16; /* ================ Text configuration ================ */ var Text = xdc.useModule('xdc.runtime.Text'); /* * These strings are placed in the .const section. Setting this parameter to * false will save space in the .const section. Error, Assert and Log messages * will print raw ids and args instead of a formatted message. * * Pick one: * - true (default) * This option loads test string into the .const for easier debugging. * - false * This option reduces the .const footprint. */ Text.isLoaded = true; //Text.isLoaded = false; /* ================ Types configuration ================ */ var Types = xdc.useModule('xdc.runtime.Types'); /* * This module defines basic constants and types used throughout the * xdc.runtime package. */ /* ================ Application Specific Instances ================ */ var Mailbox = xdc.useModule('ti.sysbios.knl.Mailbox'); halHwi.dispatcherAutoNestingSupport = false; BIOS.cpuFreq.lo = 48000000; var halHwi0Params = new halHwi.Params(); halHwi0Params.instance.name = "hHwiEusciA2"; halHwi0Params.arg = 2; halHwi0Params.enableInt = false; halHwi0Params.priority = 18; Program.global.hHwiEusciA2 = halHwi.create(34, "&Msp432UartIsr", halHwi0Params); var halHwi1Params = new halHwi.Params(); halHwi1Params.instance.name = "hHwiEusciA0"; halHwi1Params.priority = 8; halHwi1Params.enableInt = false; //Program.global.hHwiEusciA0 = halHwi.create(32, "&Msp432UartIsr", halHwi1Params); Program.global.hHwiEusciA0 = halHwi.create(32, "&Msp432UartIsrA0", halHwi1Params); m3Hwi.disablePriority = 16; var semaphore1Params = new Semaphore.Params(); semaphore1Params.instance.name = "hSemSpiUcb1Lock"; semaphore1Params.mode = Semaphore.Mode_BINARY; Program.global.hSemSpiUcb1Lock = Semaphore.create(1, semaphore1Params); var semaphore2Params = new Semaphore.Params(); semaphore2Params.instance.name = "hSemExtFlashDone"; semaphore2Params.mode = Semaphore.Mode_BINARY; Program.global.hSemExtFlashDone = Semaphore.create(null, semaphore2Params); var loggerStopMode0Params = new LoggerStopMode.Params(); loggerStopMode0Params.instance.name = "loggerStopMode0"; loggerStopMode0Params.bufSize = 4096; Program.global.loggerStopMode0 = LoggerStopMode.create(loggerStopMode0Params); var halHwi2Params = new halHwi.Params(); halHwi2Params.instance.name = "hHwiEusciB1"; halHwi2Params.arg = 5; halHwi2Params.enableInt = false; halHwi2Params.priority = 16; Program.global.hHwiEusciB1 = halHwi.create(37, "&Msp432SpiIsr", halHwi2Params); var halHwi3Params = new halHwi.Params(); halHwi3Params.instance.name = "hHwiEusciB0"; halHwi3Params.priority = 19; Program.global.hHwiEusciB0 = halHwi.create(36, "&USCIB0TX_ISR", halHwi3Params); var task2Params = new Task.Params(); task2Params.instance.name = "hTaskLtc"; task2Params.priority = 4; task2Params.stackSize = 768; Program.global.hTaskLtc = Task.create("&TLtc", task2Params); Defaults.common$.diags_ENTRY = xdc.module("xdc.runtime.Diags").ALWAYS_ON; Defaults.common$.diags_EXIT = xdc.module("xdc.runtime.Diags").ALWAYS_ON; Defaults.common$.diags_INFO = xdc.module("xdc.runtime.Diags").ALWAYS_ON; Defaults.common$.diags_ANALYSIS = xdc.module("xdc.runtime.Diags").ALWAYS_ON; var halHwi4Params = new halHwi.Params(); halHwi4Params.instance.name = "hHwiAdc14"; halHwi4Params.priority = 17; halHwi4Params.enableInt = false; Program.global.hHwiAdc14 = halHwi.create(40, "&Adc14ISR", halHwi4Params); var semaphore3Params = new Semaphore.Params(); semaphore3Params.instance.name = "hSemTuneAdcReady"; semaphore3Params.mode = Semaphore.Mode_BINARY; Program.global.hSemTuneAdcReady = Semaphore.create(0, semaphore3Params); var task3Params = new Task.Params(); task3Params.instance.name = "hTaskT"; task3Params.priority = 10; task3Params.stackSize = 2048; Program.global.hTaskT = Task.create("&TTask", task3Params); var task4Params = new Task.Params(); task4Params.instance.name = "hTaskCCtl"; task4Params.priority = 5; task4Params.stackSize = 2048; Program.global.hTaskCCtl = Task.create("&CCtlTask", task4Params); var semaphore5Params = new Semaphore.Params(); semaphore5Params.instance.name = "hSemTuneMb"; semaphore5Params.mode = Semaphore.Mode_BINARY; Program.global.hSemTuneMb = Semaphore.create(null, semaphore5Params); Semaphore.common$.namedInstance = true; halHwi.dispatcherSwiSupport = true; var task4Params0 = new Task.Params(); task4Params0.instance.name = "hTaskHeartBeat"; task4Params0.vitalTaskFlag = false; task4Params0.stackSize = 768; task4Params0.priority = 5; Program.global.hTaskHeartBeat = Task.create("&HeartbeatTask", task4Params0); Task.moduleStateCheckFlag = true; Task.objectCheckFlag = true; Idle.idleFxns[0] = "&CaptureIdleFunctionInfo"; var semaphore4Params = new Semaphore.Params(); semaphore4Params.instance.name = "hSemCplrTx"; semaphore4Params.mode = Semaphore.Mode_BINARY; Program.global.hSemCplrTx = Semaphore.create(1, semaphore4Params); var semaphore5Params0 = new Semaphore.Params(); semaphore5Params0.instance.name = "hSemVga1Lock"; semaphore5Params0.mode = Semaphore.Mode_BINARY; Program.global.hSemVga1Lock = Semaphore.create(1, semaphore5Params0); var semaphore6Params = new Semaphore.Params(); semaphore6Params.instance.name = "hSemVga1Complete"; semaphore6Params.mode = Semaphore.Mode_BINARY; Program.global.hSemVga1Complete = Semaphore.create(null, semaphore6Params); var halHwi5Params = new halHwi.Params(); halHwi5Params.instance.name = "hHwiEusciA1"; halHwi5Params.arg = 1; halHwi5Params.enableInt = false; halHwi5Params.priority = 8; Program.global.hHwiEusciA1 = halHwi.create(33, "&Msp432SpiUsciA1", halHwi5Params); var semaphore7Params = new Semaphore.Params(); semaphore7Params.instance.name = "hSemDpotComp"; semaphore7Params.mode = Semaphore.Mode_BINARY; Program.global.hSemDpotComp = Semaphore.create(null, semaphore7Params); var event0Params = new Event.Params(); event0Params.instance.name = "hEvtCplrCtl"; Program.global.hEvtCplrCtl = Event.create(event0Params);
Hello Sai,
I Created a new project from :
New->Project->CCS Project
I used "Open Resource Explorer" to import the following:
Software->SimpleLink MSP432P4 SDK - v:2.20.00.12->Examples->Development Tools->MSP432P4111 LaunchPad->TI Drivers->empty->TI-RTOS->CCS Compiler->empty
When I attempt to chance the clock rate in the config file, it saves, but when i compile the project, I get the PLL warning. If I re-open after that compile, the CPU Frequency is back to 3 MHz.
Hello mark,
I changed the CPU clock frequency to 48MHz and the build did not give the warnings that you reported in the first post. The ones I get are the following, which I think is just reporting and you can ignore them.
PLL configuration is overwriting previously set BIOS.cpuFreq. ti.sysbios.BIOS cpuFreq: PLL configuration is overwriting previously set BIOS.cpuFreq.
The following are the versions I used:
The following is what I did:
BIOS.cpuFreq.lo = 48000000;
Thanks,
Sai
**Attention** This is a public forum