Other Parts Discussed in Thread: SYSBIOS
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP432P4111
工具/软件:TI-RTOS
有什么想法如何修复我在构建软件包时看到的这些警告?
- 警告:ti.sysbios.bios:"/opt/ti/simplelink_msp432p4_sdk_2_10_00_14/kernel/tirtos/packages/ti/sysbios/Build.xs、第162行:ti.sysbios.bios assertsEnabled:断言在 BIOS.libType 设置为 BIOS.LibType_Instrumented 时启用
- 警告:ti.sysbios.bios:"/opt/ti/simplelink_msp432p4_sdk_2_10_00_14/kernel/tirtos/packages/ti/sysbios/Build.xs、第172行:ti.sysbios.bios logsEnabled:当 BIOS.libType 设置为 BIOS.LibType_Instrumented 时启用日志
- 警告:ti.sysbios.bios:"/opt/ti/simplelink_msp432p4_sdk_2_10_00_14/kernel/tirtos/packages/ti/sysbios/BIOS.xs、第1045行:ti.sysbios.bios cpufreq:PLL 配置覆盖之前设置的 BIOS.cpufreq。
我的 XDC 配置文件如下:
/*
版权所有(c) 2017、德州仪器(TI)公司
*保留所有权利。
*
*
只要
符合以下条件*、允许以源代码和二进制形式重新分发和使用:
*
*源代码的重新分发必须保留上述版权
声明*、此条件列表和以下免责声明。
*
***二进制形式的再发行必须在
*随发行提供的文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明。
*
***未经
事先书面许可、不得使用德州仪器公司的名称或*其贡献者的名称认可或推广从本软件衍生的产品*。
*
*本软件由版权所有者和贡献者"按原样"提供
*、
不承担任何明示或暗示的保证、包括但不限于*适销性和特定用途适用性的暗示保证*。 在任何情况下、版权所有者或
*贡献者都不对任何直接、间接、偶然、特殊、
*模范、 或相应的损害(包括但不限于
*采购替代产品或服务;丧失使用、数据或利润;
*或业务中断)、但出于任何责任理论
、*无论是在合同中、严格责任还是由于
使用本软件而以任何方式产生的侵权行为(包括疏忽或*其他)
、*即使已获悉可能会发生此类损坏。
//
/*========================= 时钟配置======================== */
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;//配置为每100ms 记录一次,而不是默认的500ms 周期。
LoggingSetup.benchmarkLogging = false;
LoggingSetup.countingAndGraphingLogging = false;
LoggingSetup.cpuid = 0;
LoggingSetup.enableContextAwareFunctionProfiler = true;
LoggingSetup.enableTaskProfiler = false;
LoggingSetup.loadHwiLogging = true;
LoggingSetup.loadLogger =空;
LoggingSetup.loadLoggerSize = 1024;
LoggingSetup.loadLogging = true;
LoggingSetup.loadLoggingRuntimeControl = false;
LoggingSetup.loadSwiLogging = true;
LoggingSetup.loadTaskLogging = true;
LoggingSetup.logerType = LoggingSetup.LoggerType_STOPMODE;
LoggingSetup.mainLogger =空;
LoggingSetup.mainLoggerSize = 64;
LoggingSetup.mainLogging = true;
LoggingSetup.mainLoggingRuntimeControl = false;
LoggingSetup.maxEventSize = 128;
LoggingSetup.memorySectionName =空;
LoggingSetup.multoreEventCorr相关性= false;
LoggingSetup.numCores = 1;
LoggingSetup.profileLogging = false;
LoggingSetup.snapshotLogging = false;
//LoggingSetup.synctoggerSize = LogSync.defaultSyncLoggerSize;
LoggingSetup.sysbiosHwiLogging = true;
LoggingSetup.sysbiosHwiLoggingRuntimeControl = false;
LoggingSetup.sysbiosLogger =空;
LoggingSetup.sysbiosLoggerSize = 1024;
LoggingSetup.sysbiosSemaphoreLogging = true;LoggingSetup.sysbiosSemaphoreLoggingRuntimeControl
= false;
LoggingSetup.sysbiosSwift 日志记录= true;
LoggingSetup.sysbiosLoggingRuntimeControl = false;
LoggingSetup.sysbiosTaskLogging = true;
LoggingSetup.sysbiosLoggingRuntimeControl = true;
LoggingSetup.stampSize = LoggingSetup.Timestamp_Auto;
/*
默认值取决于系列。 例如、Linux 系统通常仅
*支持最短时间为10000us、是10000 us 的倍数。
* TI 平台的默认值为1000us。
*/
Clock.tickPeriod = 1000;
/*=================== 默认值(模块)配置=================== //
var Defaults = xdc.useModule('xdc.runtime.Defaults');
//
*允许在目标上加载模块名称的标志。 模块名称
*字符串放置在.const 段中以用于调试。
*
*选择一个:
*- true (默认值)
* 将此参数设置为 true 将在.const
*中包含名称字符串 部分、以便更容易调试错误和断言。
*- false
* 将此参数设置为 false 将减小.const
*中的占用空间 部分。 因此、错误和断言消息将包含
* "未知模块"前缀、而不是实际的模块名称。
*/
Defaults.common$.namedModule = true;
//Defaults.common$.namedModule = false;
/*====== 错误配置=================== //
var Error = xdc.useModule('xdc.runtime.Error');
//
*调用此函数以处理所有引发的错误,但与
* Error.raiseHook 不同,此函数负责使用
适当初始化的 Error_Block 完全处理*错误。
*
*选择一个:
*- Error.policyDefault (默认值)
* 使用已初始化的 Error_Block 结构和日志*调用 Error.raiseHook
使用模块的记录器时出错。
*- Error.PolicySpin
* 在 while (1)循环中捕获以最小化目标
的简单替代方法* 封装尺寸。
* 使用 Error.PolicySpin 时、将不会调用 Error.raiseHook。
//
Error.policyFxn = Error.policyDefault;
//Error.policyFxn = Error.policySpin;
//
*如果 Error.policyFxn 设置为 Error.policyDefault,则
每当错误模块引发错误时,都会调用此函数*。
*
*选择一个:
*- Error.print (默认值)
* 为了更方便
*、错误通过 System_printf()进行格式化和输出 调试。
*-空
* 错误未格式化或记录。 此选项减少了代码占用空间。
*-非空函数
* 调用自定义用户函数时出错。 请参阅错误模块文档
* 以了解更多详细信息。
//
Error.raiseHook = Error.print;
//Error.raiseHook =空;
//Error.raiseHook ="&myErrorFxn";
//
*如果 Error.policyFxn 设置为 Error.PolicyDefault,此选项适用于
* Error.raiseHook 函数可被递归
调用的最大次数*。 此选项限制了无限递归的可能性
、*可能导致栈溢出。
*默认值为16。
*/
Error.maxDepth = 2;
/*========================= Hwi 配置=================== //
var halHwi = xdc.useModule('ti.sysbios.hal.Hwi');
var m3Hwi = xdc.useModule('ti.sysbios.family.arm.m3.Hwi');
//
*在空闲循环中检查 Hwi (系统)堆栈溢出。
*
*选择一个:
*- true (默认值)
* 检查系统堆栈在空闲循环期间溢出的顶字和
* 如果检测到错误、则会引发错误。
*- false
* 禁用运行时检查可提高运行时性能并产生
* 减小了闪存尺寸。
*/
halHwi.checkStackFlag = true;
//halHwi.checkStackFlag = false;
//
*
当检测到硬件异常时,以下选项会改变系统的行为*。
*
*选择一个:
*- Hwi.enableException = true
* 此选项会使默认的 m3Hwi.excHandlerFunc 函数完全
* 解码异常并将寄存器转储到系统控制台。
* 此选项会在错误模块中引发错误并显示
* ROV 中出现异常。
*- Hwi.enableException = false
* 此选项通过不解码或打印
*来减少代码占用 系统控制台异常。
* 但是、它仍会在错误模块中引发错误、并显示
* ROV 中出现异常。
*- Hwi.exHandlerFunc =空
* 这是节省代码空间的最积极的选择;但
它* 很难调试异常。 它将闪存空间减小
了* 发生异常时插入默认 while (1)陷阱。 此选项
* 不会导致错误模块出错。
//
m3Hwi.enableException = true;
//m3Hwi.enableException = false;
//m3Hwi.excHandlerFunc =空;
//
*在除以零时启用硬件异常生成。
*
*选择一个:
*- 0 (默认值)
* 在除以0
*- 1
*时禁用硬件异常 在除以零时启用硬件异常
*/
m3Hwi.nvicCCR.DIV_0_TRP = 1;
//m3Hwi.nvicCCR.DIV_0_TRP = 1;
//
*为无效的数据对齐启用硬件异常生成。
*
*选择一个:
*- 0 (默认值)
* 禁用数据对齐的硬件异常
*- 1
* 为数据对齐启用硬件异常
*/
m3Hwi.nvicCCR.UNALIGN_TRP = 1;
//m3Hwi.nvicCCR.UNALIGN_TRP = 1;
/*=========== 空闲配置========================= //
var Idle = xdc.useModule('ti.sysbios.knl.Idle');
//
*空闲模块用于指定
在系统中没有*其他任务正在运行时要调用的函数列表。
*
*此处添加的函数将在空闲任务内连续运行。
*
*函数签名:
* void func (void);
*//idle.addFunc
("&myIdleFunc");
//idle.addFunc ('&Power_idleFunc');//添加电源模块的 IDLE 函数*/*
===== 内核(SYS/BIOS)配置=================== */
var BIOS = xdc.useModule('ti.sysbios.BIOS');
/*
启用 BIOS 库中的断言。
*
*选择一个:
*- true (默认值)
* 启用断言以进行调试。
*- false
* 禁用断言以减小代码占用空间并提高性能。
//
//BIOS.assertsEnabled = true;
BIOS.assertsEnabled = false;
//
*用于确定 xdc.runtime 源是否包含在自定义
*构建的 BIOS 库中的标志。
*
*选择一个:
*- false (默认值)
* 预构建的 xdc.runtime 库由相应的目标
*提供 用于构建应用。
*- true
* xdc.runtime 库源将包含在自定义 BIOS
中* 库。 此选项在两个代码
中生成最高效的库* 封装和运行时性能。
*/
BIOS.includeXdcRuntime = false;
//BIOS.includeXdcRuntime = true;
//
* SYS/BIOS 运行时以库的形式提供
*与应用程序链接*。
SYS/BIOS 产品随附了该库的几种形式。
*
*选择一个:
*- BIOS.LibType_Custom
* 针对代码大小和
*进行了高度优化的定制构建库 运行时性能。
*- BIOS.LibType_Debug
* 自定义构建的库、该库未进行优化
、可用于* 使用调试器单步执行 API。
*
//
BIOS.libType = BIOS.LibType_Instrumented;
//BIOS.libType = BIOS.LibType_Debug;
//
*运行时实例创建启用标志。
*
*选择一个:
*- true (默认值)
* 允许在运行时调用 Mod_create()和 Mod_delete (),*
需要一个用于动态内存分配的默认堆。
*- false
* 通过禁止 Mod_create()和 Mod_delete ()来减少代码占用空间
* 调用的函数。 对象实例通过
*构造 mod_construct()并通过 Mod_析 构函数()析构。
*/
BIOS.runtimeCreatesEnabled = true;
//BIOS.runtimeCreatesEnabled = false;
/*
启用 BIOS 库中的日志。
*
*选择一个:
*- true (默认值)
* 启用日志以进行调试。
*- false
* 禁用日志记录以减少代码占用空间并改善运行时间
* 性能。
//
//BIOS.logsEnabled = true;
BIOS.logsEnabled = false;
/*====== 内存配置=================== //
var 内存= xdc.useModule('xdc.runtime.Memory');
//
*内存模块本身只为 IHeap
模块(例如、 HeapMem、HeapBuf)。
//
*
使用 HeapMem 主堆实例使用由链接器定义的存储器区域
*/
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
HeapMem.primaryHeapBaseAddr ="&&&&_primary_heapBaseStart______";
HeapMemMemMemMemMemMemMemMemMemMemMemMemMemMemMemMemMemMemMemMemMemMemMemMemory.ParapMemParams="&__prime_heapBase_end_end_end_"="&;= global= global= global=
heapMemParams.usePrimaryHeap
Memory.defaultHeapInstance;= global= new=ParapMemphe.ParapMemphe.Parapmem =u.Parapm.Parapmem =u.Parapmy.Params.=
程序配置=================== 必须将*/
*
Program.stack 设置为0、以便在
示例
的*链接器命令文件中确定系统堆栈大小的设置*。
//
Program.stack = 2048;
//
*取消注释以启用将 GNU 目标打印到 CCS 控制台的半主机功能。
*请阅读以下 TIRTOS Wiki 页面以了解有关半主机的更多信息:
* processors.wiki.ti.com/.../TI-RTOS_Examples_SemiHosting
*/
if (Program.build.target.$name.match (/GNU/)){
//var SemiHost = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
}/*
=========== 信标配置=================== //
var semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
//
*启用对任务优先级挂起队列的全局支持。
*
*选择一个:
*- true (默认值)
* 这允许根据任务优先级为待处理的任务提供服务。
*- false
* 待处理任务是基于先入先出的服务。
*
*在 ROM 中使用 BIOS 时:
* 此选项必须设置为 false。
//
//semaphore.supportsPriority = true;
semaphore.supportsPriority = false;
//
*允许通过信号量隐式布置事件,
*禁用以保存其他代码。
*
*选择一个:
*- true
* 这允许信标模块发布信标和事件
* 同步。
*- false (默认值)
* 必须显式发布事件以解除任务阻止。
*
*/
semaphore.supportsEvents = false;
//
*软件中断是一个包含
要*执行的函数和优先级的对象。 软件中断被优先化、优先任务
*并被硬件中断服务例程抢先。
*
*包括此模块是为了允许在用户的应用程序中使用 Swi。
//
/*========================= 系统配置=================== //
var System = xdc.useModule('xdc.runtime.System');
//
*当系统异常退出时调用中止处理程序。
*
*选择一个:
*- System.AbortStd (默认)
* 调用 ANSI C 标准'abort()'来终止应用程序。
*- System.AbortSpin
* 在 while (1) trap
*中无限循环的轻量级中止函数 功能。
*-自定义中止处理程序
* 用户定义的函数。 请参阅*的系统模块说明文件
详细信息。
*/
System.ABortFxn = System.ABortStd;
//System.ABortFxn = System.ABortSpin;
//System.ABortFxn ="&myAbortSystem";
/*
当系统正常退出时,将调用退出处理程序。
*
*选择一个:
*- System.exitStd (默认)
* 调用 ANSI C 标准'exit()'来终止应用程序。
*- System.exitSpin
* 在 while (1) trap
*中无限循环的轻量级退出函数 功能。
*-自定义退出函数
* 用户定义的函数。 请参阅*的系统模块说明文件
详细信息。
//
System.exitFxn = System.exitStd;
//System.exitFxn = System.exitSpin;
//System.exitFxn =“&myExitSystem”;
//
*最小化系统模块中的退出处理程序数组。 System 模块包括
*一个在 System_atexit()中注册的函数数数组,System_exit()
调用该函数组。 默认值为8。
//
System.maxAtexitHandlers = 2;
//
* System.SupportProxy 定义了 System
*函数的低级实现,例如 System_printf ()、System_flush ()等
*
*选择一对:
*- SysMin
* 此模块维护一个内部可配置的循环缓冲
器、该缓冲器* 存储输出,直到调用 System_flush()。
* 循环缓冲区的大小通过 SysMin。bufSize 设置。
*- SysCallback
* SysCallback 允许系统 API 的用户定义实现。
* SysCallback 支持代理的代码占用空间更小
、可以是* 用于提供定制 System_printf 服务。
* 默认的 SysCallback 函数指向存根函数。 请参阅
* SysCallback 模块的文档。
//
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;
//myCallback.abortFxn =“&myUserAbort”;
//SysCallback.exn
=“SysCallback”;/myUserCallback.Exit =“SysCallback.&myUserUserCalln”;
//SysCallback.putchFxn ="&myUserPutch";
//SysCallback.readyFxn ="&myUserReady";
/*=========== 任务配置=================== //
var Task = xdc.useModule('ti.sysbios.knl.Task');
//
*检查任务堆栈是否存在溢出情况。
*
*选择一个:
*- true (默认值)
* 在
*期间启用任务堆栈溢出情况的运行时检查 上下文切换("从"和"到")
*- false
* 禁用任务堆栈溢出条件的运行时检查。
*/
Task.checkStackFlag = true;
//Task.checkStackFlag = false;
//
*设置创建任务时的默认任务堆栈大小。
*
*默认值取决于所使用的器件。 减小默认堆栈
*大小可节省更多内存。
*/
Task.defaultStackSize = 512;
/*
启用空闲任务。
*
*选择一个:
*- true (默认值)
* 创建优先级为0的任务、该任务调用空闲挂钩函数。 此
* 选项必须设置为 true 才能获得 Power
*提供的节能效果 模块。
*- false
* 未创建空闲任务。 此选项占用的内存较少、为 no
* 需要额外的默认任务堆栈。
* 若要在没有空闲任务的情况下通过电源模块实现节能
、请执行* 将 Idle.run 添加为 Task.allBllockedFunc。
//
Task.enableIdleTask = true;
//Task.enableIdleTask = false;
//Task.allBlockedFunc = Idle.run;
//
*如果 Task.enableIdleTask 设置为 true,则该选项设置空闲任务
的*堆栈大小。
*
*减小空闲堆栈大小可节省更多内存。
//
Task.idleTaskStackSize = 1024;
//
*减少任务优先级的数量。
*默认值为16。
*减少任务优先级的数量可节省内存。
*/
Task.numPriorities = 16;
/*=========== 文本配置=================== //
var text = xdc.useModule('xdc.runtime.Text');
//
*这些字符串放置在.const 段中。 将此参数设置为
* false 将节省.const 段中的空间。 错误、断言和日志消息
*将打印原始 ID 和 args、而不是格式化的消息。
*
*选择一个:
*- true (默认值)
* 此选项将测试字符串加载到.const 中、以便于调试。
*- false
* 此选项可减小.const 占用空间。
*/
text.isLoaded = true;
//text.isLoaded = false;
/*=========== 类型配置=================== */
var types = xdc.useModule('xdc.runtime.Types');
/*
此模块定义了在
* xdc.runtime 软件包中使用的基本常量和类型。
//
/*========================= 应用程序特定实例========================= //
var Mailbox = xdc.useModule('ti.sysbios.knl.Mailbox');
halHwi.patcherAutoNestingSupport = false;
BIOS.cpufreq.lo = 48000000;
var halHw0Params = new halHwi.Params ();
halHwi0Params.instance.name ="hHwiEusciA2";
halHw0Params.arg = 2;
halHw0Params.enableInt = false
;halHwi0Params.enableInt = false;
program.global.hHwiEusciA2 = halHwi.create (34、"&Msp432UartIsr"、halHwi0Params);
var halHwi1Params = new halHwi.Params ();
halHwi1Params.instance.name ="hHwiEusciA0";
halHwi1Params.priority = 8;halHwiHwi1Params.params.params.A0
= 1;enableHwiHwiHwi32、enableHwiHwiHwiHwiHwiHwiA0 = "&Msp432UartIsr"、halHwi1Params);
Program.global.hHwiEusciA0 = halHwi.create (32、"&Msp432UartIsrA0"、halHwi1Params);
m3hwi.dablePriority = 16;
var semaphore1Params = new semaphore.Params ();
semaphore1Params.instance.name ="hSemSpiUcb1Lock";
Semaphore1Params.mode = semaphore.Mode_binary;
Program.global.SemSpiUC1Lock = semaphore.create (1、semaphore1Params);
var semaphore2Params = new semaphore.Params ();
semaphore2Params.instance.name ="hSemExtFlashDone";
Semaphore2Params.mode = semaphore.Mode_binary;
Program.global.hSemExtFlashDone = semaphore.create (空、semaphore2Params);
var loggerStopMode0Params = new LoggerStopMode.Params ();
loggerStopMode0Params.instance.name ="loggerStopMode0";
loggerStopMode0Params.bufSize = 4096;
Program.global.logerStopMode0 = LoggerStopMode.create (loggerStopMode0Params);loggerStopParhal2Hwiams
halHwi2Params.instance.name =
2);parhwiHwiHwiams = 1 = 1 = 2。
program.global.hHwiEuscib1 = halHwi.create (37、"&Msp432SpiIsr"、halHwi2Params);
var halHwi3Params = new halHwi.Params ();
halHwi3Params.instance.name ="hHwiEuscib0";
halHwi3Params.priority = 19;Program.Hwi036"
、"UHwiEwi0_Url"、"hruHwiTX.halHuscibu.clu.h =".hwi036" 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 semore3Params = new semSemore.Params ();
semaphore3Params.instance.name ="hSemTuneAdcReady";
semaphore3Params.mode = Semaphore.Mode_binary;Program.global.hTuneAdcReady
= 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.hSemapheMb = semaphore.create (null、semaphore5Params);
Semaphore.common$.namedInstance = true;
halHwi.diterSwiSupport = true;
var task4Params0 = new Task.Params ();
task4Params0.instance.name ="hTaskHeartBee";
task4Params0.vitalTaskFlag = false;
task4Params0.STACKSIZE = 768;
task4Params0.priority = 5;
program.global.hTaskHeartBeat = Task.create ("&HeartbeatTask"、task4Params0);
Task.moduleStateCheckFlag = true;
Task.objectCheckFlag = true;
IdleFxns[0]="&CaptureIdleFunctionInfo";
VAR semaphore4Params = new semaphore.Params ();
semaphore4Params.instance.name ="hSemCplrTx";
Semaphore4Params.mode = semaphore.Mode_binary;
Program.global.SemCplrTx = 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 (空、semaphore6Params);
var halHwi5Params = new halHwi.Params ();
halHwi5Params.instance.name ="hHwiEusciA1";
halHwi5Params.arg = 1;
halHwi5Params.enableInt = false;
halHwi5Params.priority = 8;
program.global.hHwiEuscA1 = halHwi.create (33、"&Msp432SpiUSICA1"、halHwi5Params);
var semaphore.Params = new semaphore.Params ();
semaphore7Params.instance.name ="hmSemDpotCom";
semaphore.mode = semaphore.Mode_semaphore.Program.global.potore.h
= nulli.com;
var event0Params = new Event.Params ();
event0Params.instance.name ="hEvtCplrCtl";
Program.global.hEvtCplrCtl = Event.create (event0Params);

