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.

[参考译文] RTOS/TM4C123GH6PM:执行图以灰色线显示未知

Guru**** 2595800 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/585152/rtos-tm4c123gh6pm-execution-graph-shows-unknown-with-a-gray-line

器件型号:TM4C123GH6PM

工具/软件:TI-RTOS

/*========================= 常规配置=================== */
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 Main = xdc.useModule('xdc.runtime.Main');
var Memory = xdc.useModule('xdc.runtime.Memory');
var System = xdc.useModule('xdc.runtime.System');
var Text = xdc.useModule('xdc.runtime.Text');

var BIOS = xdc.useModule('ti.sysbios.BIOS');
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
VAR HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
//var FatFS = xdc.useModule('ti.sysbios.fatfs.FatFS');

/*====== 系统配置=================== */
var SysMin = xdc.useModule('xdc.runtime.SysMin');
var Swi = xdc.useModule('ti.sysbios.knl.Swi');
System.SupportProxy = SysMin;

/*=================== 日志记录配置=========== */
var LoggingSetup = xdc.useModule('ti.uia.sysbios.LoggingSetup');

/*========================= 内核配置=================== */
/*使用自定义库*
/ var BIOS = xdc.useModule('ti.sysbios.BIOS');
BIOS.libType = BIOS.LibType_Custom;
BIOS.logsEnabled = true;
BIOS.assertsEnabled = true;
var hwi0Params = new Hwi.Params ();
hwi0Params.instance.name ="Timer_2A_INT";
Program.global.Timer_2A_INT = Hwi.create (39);"Timer_Parwiams"、"Timer_0isr"
program.stack = 1024;
BIOS.heapSize = 0;
BIOS.cpufreq.lo = 40000000;
var swi0Params = new Swi.Params ();
swi0Params.instance.name ="LEDSwi";
swi0Params.priority = 1;
Program.global.LEDSwi = Swi.create ("&led"、swi0Params);
Swi.numPriorities = 32;
LoggingSetup.sysbiosLogging = true; 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ben _cy、

    您的系统中是否还有任务、Hwi 或 Swi? 似乎只有一个 Swi 被周期性地触发。

    最棒的
    伊曼纽尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    看起来实验6工作正常。 如果您进一步移动时间线、您应该会看到空闲线程为主导线程。 未知只是指"未知"状态。 这并不意味着存在错误或问题。 您的布置、启动、停止和 SWI 看起来都正常工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在 LoggingSetup 配置框下,是否启用了 SWI 日志记录? 只是一个想法。 实验说明应该已经清楚地向您展示了如何执行此操作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不、我只有一个任务、如图所示
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、但必须有一些原因导致它 showns 未知、我尝试找到一种方法将其删除
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    "任务"可能会被误解。 根据执行图、您使用的是一个 SWI -软件中断、根据具有四个优先级的 TI-RTOS 调度程序- HWI、SWI、任务、IDLE、是除空闲外唯一有效的线程。 是的、计时器是 HWI、由于它未启用、因此未显示该计时器、这是正确的。 显示所有中断(时钟、定时器等) 会很快填充 TI-RTOS 使用的缓冲区、并且不会显示实验的设计目标-这就是为什么实验说明不会告诉您将 HWI 添加到要在执行图中显示的线程列表中的原因。

    我只是问您是否已在 LoggingSetup 的配置中检查了 SWI。 单击 cfg 文件中的 LoggingSetup、确保选中了"SWI logging"。