Thread 中讨论的其他器件:SYSBIOS
工具/软件:TI-RTOS
你好
我编写了一个非常简单的程序(请参阅下面的 main.c 和 app.cfg)。System_printf()的输出会转到 SysMin 并在那里得到它。 但是 Log_info0()的输出... 我在 LoggerBuf 中找不到它。 我还尝试了 LoggerRunMode,但它也不起作用。 必须有一些非常基本的东西、我做错了。
万一它很重要:评估板 TMDSEVM6657L、CCS 7.2.0.00013、BIOS_6_46_05_55、UIA_2_00_06_52、xdctools_3_32_02_25_core
任何建议都将非常有帮助。 谢谢!
此致、
Pablo
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');
var BIOS = xdc.useModule('ti.sysbios.BIOS');
var Task = xdc.useModule('ti.sysbios.knl.Task');
var LoggingSetup = xdc.useModule('ti.uia.sysbios.LoggingSetup');
VAR LoggerStopMode = xdc.useModule('ti.uia.loggers.LoggerStopMode');
/*
取消注释此行以全局禁用断言。
*所有模块继承'库'模块的默认值。 您
*可以使用 Module.common$按模块覆盖这些默认值。
*禁用断言将节省代码空间并提高运行时性能。
Defaults.common$.diags_ASSERT = Diags.always_off;
*/
*
取消注释此行以防止模块名称加载到目标上。
*模块名称字符串放置在.const 段中。 将此
*参数设置为 false 将节省.const 段中的空间。 错误和
*断言消息将包含"未知模块"前缀、而
不是*实际模块名称。
*/
Defaults.common$.namedModule = true;
/*
最小化系统中的退出处理程序数组。 System 模块包括
*一组函数,这些函数在 System_atexit()中注册,
*由 System_exit()调用。
//
System.maxAtexitHandlers = 4;
//
*取消注释此行以禁用 Error print 函数。
*禁用时,我们会丢失错误信息,因为
*不打印错误。 如果
*由于 Error_print()函数
*调用 System_printf(),禁用 raiseHook 将节省一些代码空间。
error.raiseHook =空;
*/
/*
取消注释此行以防止*在
目标上加载错误、断言和日志字符串。 这些字符串放置在.const 段中。
*将此参数设置为 false 将节省.const 段中的空间。
*错误、断言和日志消息将打印原始 ID 和 args、而不是
*格式化的消息。
//
text.isLoaded = false;
//
*取消注释此行以在
程序退出时禁用 SysMin *的字符输出。 SysMin 向循环缓冲区写入字符。
*可以使用 ROV 中的 SysMin Output 视图查看该缓冲器。
//
SysMin.flushAtExit = false;
//
* BIOS 模块将为系统创建默认堆。
*指定此默认堆的大小。
/bios.heapSize
= 512;
/*系统堆栈大小(由 ISR 和 Swi 使用)*/
Program.stack = 0x400;
// System_printf ()的循环缓冲区大小*/
sysmin.bufSize = 128;
//
*为整个系统创建和安装记录器
*/
var logerBufParams = new LoggerBufParams (
var LoggerBufParf = 0);var loggerBufParams = 0.Params = loggerBufParams;var loggerfParams = 4.
Defaults.common$.logger = logger0;
Main.common$.diags_INFO = Diags.always_on;
System.SupportProxy = SysMin;
/*
构建自定义 BIOS 库。 自定义库将小于
*预编译的"已检测"(默认)和"未检测"库。
*
* BIOS.logsEnabled 参数指定
是否在此自定义构建的 BIOS 中启用日志记录*。 RTA 和
* UIA 分析工具使用这些日志。
*
* BIOS.sertsEnabled 参数指定 BIOS 代码是否
*包括 assert()检查。 将此参数设置为"false"将生成
*更小、更快的代码、但建议
在*早期开发中启用断言、因为断言()检查将捕获大量编程
*错误(无效参数等)
//
BIOS.libType = BIOS.LibType_Custom;
BIOS.logsEnabled = true;
BIOS.assertsEnabled = true;
//
*创建任务。 'taskFxn'函数可在 main.c 中找到
//
var task0Params = new Task.Params ();
var task0 = Task.create ("&taskFxn"、task0Params);
LoggingSetup.sysbiosTaskLogging = true;
LoggingSetup.loadLogging = true;
// Debug 填充*/BIOS.customCCOpts
= BIOS.CCOpts.replace("-o0");
/*
* ==== main.c ======
*
#include
#include
#include
#include
#include
void taskFxn (UARg a0、UARg A1)
{
system_printf ("enter taskFxn ()\n");
Task_sleep (10);
log_info0(“诸如此类”);
system_printf ("exit taskFxn ()\n"\});
}
/*
* ==== main ====
*
int main()
{
/*
*使用 ROV->SysMin 查看循环缓冲区中的字符
*
system_printf ("enter main()\n");
BIOS_start(); /*不返回*/
返回(0);
}