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.

[参考译文] TMS320F28377D:TI-RTOS

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/998177/tms320f28377d-ti-rtos

器件型号:TMS320F28377D
Thread 中讨论的其他器件:SYSBIOS

尊敬的 TI:

我想使用 C 代码创建一个计时器模块。 您能给我举个例子吗?

我已将 TI SYS/BIOS 用户指南运行时示例从 p176参考到 p177

我 只是复制并粘贴了项目中的示例代码、但发生了错误、我无法确定重要的是什么。

红色代码是我包含的代码。 每当此代码运行时、CCS 控制台上都会出现此错误消息。

xdc.runtime.Core:第87行:断言失败:A_initializedParams:未初始化的 Params 结构
xdc.runtime.Error.raise:终止执行
TI.SYSBIOS.KNL.Semaphore:第311行:断言失败:A_badContext:调用上下文错误。 必须从任务调用。
xdc.runtime.Error.raise:终止执行
TI.SYSBIOS.KNL.Semaphore:第311行:断言失败:A_badContext:调用上下文错误。 必须从任务调用。
xdc.runtime.Error.raise:终止执行
TI.SYSBIOS.KNL.Semaphore:第311行:断言失败:A_badContext:调用上下文错误。 必须从任务调用。
xdc.runtime.Error.raise:终止执行

我想在没有 XGCONF 帮助的情况下自由创建和删除任何模块

如何将 RTOS 应用程序加载到闪存等存储器中?

我注意  到我的应用程序在上电复位后似乎被擦除,这似乎是我的应用程序在上电复位之前加载到 SARAM 中。

非常感谢

/*
*==== main.c ======
*

#include

#include

#include

#include

#include
#include

#include "F28x_Project.h"


uint32 j = 0;
uint32k = 0;
uint32 ModifyFreq = 5000;

Timer_handle timerHandle;

//Timer_Handle timerHandle;
//Task_Handle 任务;
//Error_Block EB;

/*
*==== TimerISR ====
*

空 TimerISR()

J++;
if (j >= ModifyFreq){
J = 0;
GpioDataRegs.GPATOGGLE.bit.GPIO31 = 1;
GpioDataRegs.GPBTOGGLE.bit.GPIO34 = 1;

void TimerISR1();

/*
*==== taskFxn ====
*
void taskFxn (UARg a0、UARg A1)

system_printf ("enter taskFxn ()\n");

Task_sleep (10);

system_printf ("exit taskFxn ()\n"\});

system_flush();/*强制 SysMin 输出到控制台*/

空 tickFxn (UArg0)

K++;

/*
*==== main ====
*
int main()

Timer_Params timerParams;
Timer_handle timerHandle;
Task_Handle 任务;
ERROR_Block EB;

system_printf ("enter main()\n");

ERROR_INIT (&EB);
任务= Task_create (taskFxn、NULL、&EB);
if (task =NULL){
System_printf ("Task_create() failed!\n");
BIOS_exit (0);

Timer_Params_init (&timerParams);
timerParams.period = 2000;/* 2ms */
timerHandle = Timer_create (Timer_any、tickFxn、&timerParams、&EB);
if (timerHandle == NULL){
System_abort ("计时器创建失败");

//GPIO34、GPIO31
EALLOW;
GpioCtrlRegs.GPAMUX2.bit.GPIO31 = 0;
GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO31 = 1;
GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1;
EDIS;

BIOS_start();/*不返回*/
返回(0);

空 TimerISR1()

K++;
// System_printf ("当前周期=%d\n"、Timer_getPeriod (timerHandle));

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

    很难在不知道错误消息对应的行号的情况下理解这些错误消息。 它指的是什么未初始化的参数结构? 什么信号量?

    关于从闪存运行、您正在使用什么链接器命令文件? 大多数 SYS/BIOS 示例和模板项目确实已经从闪存运行。

    惠特尼