各位好
C:\ti\pdk_C6678_1_1_2_6\packages\ti\transport\ipc\examples\shmIpcBenchmark这个工程里,使用了platform_init函数,这是个库函数,
在C:\ti\pdk_C6678_1_1_2_6\packages\ti\platform\evmc6678l\platform_lib\lib\debug下
在右击工程属性里,是没有包含库的,也没有设置库路径。
但是,我想知道这个库以及生成的cmd中包含有很多库,它们是在哪里设置包含进的的?是在cfg文件吗?哪里有所体现呢?谢谢
下面是这个工程的cfg文件
/* –COPYRIGHT–,BSD
* Copyright (c) 2011, 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.
* –/COPYRIGHT–*/
/* Benchmark Task */
var Task = xdc.useModule('ti.sysbios.knl.Task');var tskParams = new Task.Params;
tskParams.instance.name = "tsk0";
Program.global.task0 = Task.create('&tsk0', tskParams);
var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
Semaphore.supportsEvents = false;
//var Agent = xdc.useModule('ti.sysbios.rta.Agent');
//Agent.transport = Agent.Transport_STOP_MODE_ONLY;
//var Load = xdc.useModule('ti.sysbios.utils.Load');
//Load.hwiEnabled = false;
//Load.swiEnabled = false;//Load.taskEnabled = false;
var System = xdc.useModule('xdc.runtime.System');
var Startup = xdc.useModule('xdc.runtime.Startup');
var SysStd = xdc.useModule('xdc.runtime.SysStd');
System.SupportProxy = SysStd;
System.extendedFormats = "%f";
var BIOS = xdc.useModule('ti.sysbios.BIOS');
BIOS.clockEnabled = false;
BIOS.heapSize = 0x8000;
var Timestamp = xdc.useModule("xdc.runtime.Timestamp");
Program.sectMap[".msgQ_ptrs"] = new Program.SectionSpec();
Program.sectMap[".msgQ_ptrs"] = "L2SRAM";
Program.sectMap["platform_lib"] = new Program.SectionSpec();
Program.sectMap["platform_lib"] = "L2SRAM";
var PlatformLib = xdc.loadPackage('ti.platform.evmc6678l');
/*** Register an EVM Init handler with BIOS. This will initialize the hardware. BIOS calls before it starts.**
** If debugging with CCS, then this function will execute as CCS loads it if the option in your** Target Configuration file (.ccxml) has the option set to execute all code before Main. That is the** default.
*/
Startup.firstFxns.$add('&initPlatform');
var cslSettings = xdc.useModule ('ti.csl.Settings');
var cacheEnabled = true; var cacheLineSize = 128;
var procName = null;
var procNameList = [];
var Settings = xdc.module('ti.sdo.ipc.family.Settings');
var Cache = xdc.useModule('ti.sysbios.family.c66.Cache');
var MessageQ = xdc.module('ti.sdo.ipc.MessageQ');
var Notify = xdc.module('ti.sdo.ipc.Notify');
var Ipc = xdc.useModule('ti.sdo.ipc.Ipc');
Notify.SetupProxy = xdc.module(Settings.getNotifySetupDelegate());
MessageQ.SetupTransportProxy= xdc.module(Settings.getMessageQSetupDelegate());
/* Use shared memory IPC */
Notify.SetupProxy = xdc.module('ti.sdo.ipc.family.c647x.NotifyCircSetup');
MessageQ.SetupTransportProxy = xdc.module('ti.sdo.ipc.transports.TransportShmNotifySetup');
/* Set to disable error printouts */
/* var Error = xdc.useModule('xdc.runtime.Error'); */
/* Error.raiseHook = null; */
Program.global.NOTIFYSETUP = Notify.SetupProxy.delegate$.$name;
Program.global.TRANSPORTSETUP = MessageQ.SetupTransportProxy.delegate$.$name;
switch (Program.platformName) { case "ti.sdo.ipc.examples.platforms.evm6678.core0":
case "ti.platforms.evm6678": Program.global.USING_C6678 = 1; procNameList = ["CORE0", "CORE1"];
Program.global.shmBase = 0x0C000000;
Program.global.shmSize = 0x00100000; /* Sized for greater than 8000 128 byte messageQ messages */
break;
case "ti.sdo.ipc.examples.platforms.evm6670.core0":
case "ti.platforms.evm6670": Program.global.USING_C6670 = 1; procNameList = ["CORE0", "CORE1"];
Program.global.shmBase = 0x0C000000;
Program.global.shmSize = 0x00100000; /* Sized for greater than 8000 128 byte messageQ messages */
break;
default:
throw("Unsupported platform: " + Program.platformName);
}
var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');
MultiProc.setConfig(procName, procNameList);
Program.global.DEVICENAME = Program.cpu.deviceName;
Program.global.PROCNAMES = procNameList.join(",");
Program.global.BUILDPROFILE = Program.build.profile;
var SharedRegion = xdc.useModule('ti.sdo.ipc.SharedRegion');
SharedRegion.translate = false;
SharedRegion.setEntryMeta(0,
{ base: Program.global.shmBase, len: Program.global.shmSize,
ownerProcId: 0,
isValid: true,
cacheEnable: cacheEnabled,
cacheLineSize: cacheLineSize, /* Aligns allocated messages to a cache line */
name: "internal_shared_mem",
});
/* Optimization stuff */
Diags = xdc.useModule("xdc.runtime.Diags");
var Defaults = xdc.useModule('xdc.runtime.Defaults');
//Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
Defaults.common$.logger = null;
var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
Semaphore.supportsEvents = false;
Andy Yin1:
在cfg中如下语句将platform lib包含进来。
var PlatformLib = xdc.loadPackage('ti.platform.evmc6678l');