您好、论坛、
由于无法在 AM5728的 DSP1上正常运行操作系统时钟模块、我感到非常沮丧。
我正在尝试使用在 Linux 设备树中配置为属于 DSP1的 GPTimer14 (ID:13)。
因此、我创建了一个简单的工程、该工程复制了包含.cfg、makefile 和一个.c 文件的问题。
基本上、我启动一个应该睡眠1000ms 的任务、并在每次睡眠到期时打印一些内容。
此外,我将时钟定义为用户类型,并且我从自定义函数调用 Clock_tick(),但这不会被调用,因为时钟节拍一直为零。
静态 int n = 0;
void myTimerTick (UArg-变量)
{
Clock_tick ();
n++;
if (n%1000 = 0)
{
log_Print1 (Diags_info、"Clock_tick ()%d\n"、n);
}
}
//*
=== main ====
//
int main (int argc、Char* argv[])
{
ERROR_Block EB;
Task_Params 任务参数;
log_print0 (Diags_entry、"->main:");
/*必须在使用错误块之前对其进行初始化*/
ERROR_INIT (&EB);
/*创建主线程(BIOS 上的 main 中未启用中断)*/
Task_Params_init (&taskParams);
taskParams.instance->name ="任务";
taskParams.arg0 =(UArg)argc;
taskParams.arg1 =(UArg)argv;
taskParams.STACKSIZE = 0x1000;
Task_create (main_task、&taskParams、&EB);
if (Error_check (&EB)){
system_abort ("main: Failed to create application startup thread");
}
/*启动调度程序,这永远不会返回*/
BIOS_start();
/*永远不应该来这里*/
log_print0 (Diags_exit、"<- main:");
返回(0);
}/*
==== main_task ======
//
void main_task (UArg0、UArg0 arg1)
{
log_print0 (Diags_entry、"->main_task:");
while (1)
{
Task_sleep (1000);
log_print0 (Diags_info、"System_sleep()返回%d\n");
}
log_print0 (Diags_exit、"<- main_task:");
}
我应该添加以下内容、以确认我的 GPTimer14工作正常(基址:0x4882A000、TCLR=0x3、调试器步进时 TCRR 递增)。
请就此提供一些 RTOS 或 DRA7xx 专家建议、因为我自己找不到任何解决方案。
此致

