Thread 中讨论的其他器件:SYSBIOS
工具/软件:TI-RTOS
您好!
我是 TaekSeung Lee。
我正在评估 EvmAm57xx 上的测试代码。(A15上的 Linux、DSP1上的 RTOS、其他内核(DSP2、IPU1、2……) 未使用)
在我的应用中、DSP1需要2个硬件计时器。 第一个用于 RTOS 的1毫秒 Clock_tick ()、第二个用于 FPGA 138uSec 中断。
我的理解是 GPTimer 5和6被分配给 AM57x 系列中的 DSP。
在 Linux 端、编辑"am57xx-beagle-x15-common.dtsi"以禁用 DSP2、并将 timer6分配给 DSP1。
dsp1{.dsp1}(&D)
状态="正常";
Memory-region =<&dsp1_CMA_pool>;
mbox =<&mailbox5 &mbox_dsp1_ipc3x>;
/*timers =<&timer5>;*/
定时器=<&timer5>、<&timer6>;
安全装置定时器=<&timer10>;
};
//注释掉
/*dsp2{
状态="正常";
STATUS ="禁用";
Memory-region =<&dsp2_CMA_pool>;
mbox =<&mailbox6 &mbox_dsp2_ipc3x>;
计时器=<&timer6>;
安全装置定时器=<&timer13>;
};*/
在 RTOS 上、创建两个计时器。
Timer_Params_init (&timerParams);
timerParams.period = 138;
timerParams.periodType = Timer_PeriodType_micros;
timerParams.startMode = Timer_StartMode_user;
timerParams.arg = 1;
myTimer = Timer_create (Timer_any、myIsr、&timerParams、&EB);
if (myTimer==空)
{
System_abort ("计时器创建失败");
}
创建成功。 定时器5 (ID 4)
但第二个计时器失败了。
Timer_Params_init (&timerParams);
timerParams.period = 1000;
timerParams.periodType = Timer_PeriodType_micros;
timerParams.arg = 2;
系统定时器= Timer_create (Timer_any、myTimerTick、&timerParams、&EB);
if (系统定时器==空)
{
System_abort ("计时器创建失败");
}
跟踪日志:
CAT /sys/kernel/debug/remoteproc/remoteproc0/trace0
[0.000]看门狗已启用:TimerBase = 0x48086000频率= 0
[0.000]在0x95000000处提供19个资源条目
…
[0.000][t=0x0020b256] ti.sysbios.family.c64p.Hwi:错误:第194行:e_alreadyDefined:Hwi 已定义:INTR# 15
[0.000] ti.sysbios.family.c64p.Hwi:第194行:e_alreadyDefined:Hwi 已定义:INTR# 15
谁使用了 intr 15 (timer 6)? 我可以在哪里配置中断?
我阅读了以下主题、但没有帮助。
谢谢你。
