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/AM5728: Timer control from DSP

Part Number: AM5728
Other Parts Discussed in Thread: SYSBIOS

Tool/software: TI-RTOS

Hi,

I'm TaekSeung Lee.

I'm evaluating a test code on EvmAm57xx.(linux on A15, RTOS on DSP1, other cores(DSP2, IPU1,2 ...) are not used)

On my application, DSP1 needs 2 hw timers. The first for RTOS's 1 mSec Clock_tick(), and second for FPGA 138uSec interrupt.

My understanding is that GPTimers 5 and 6 are assigned to the DSPs in the AM57x family.

on Linux side, edit "am57xx-beagle-x15-common.dtsi" for disable DSP2, and assigned timer6 to DSP1.


&dsp1 {
status = "okay";
memory-region = <&dsp1_cma_pool>;
mboxes = <&mailbox5 &mbox_dsp1_ipc3x>;
/*timers = <&timer5>;*/
timers = <&timer5>, <&timer6>;
watchdog-timers = <&timer10>;
};

// remark out

/*&dsp2 {
status = "okay";
status = "disabled";
memory-region = <&dsp2_cma_pool>;
mboxes = <&mailbox6 &mbox_dsp2_ipc3x>;
timers = <&timer6>;
watchdog-timers = <&timer13>;
};*/

on RTOS, create two timers. 

Timer_Params_init(&timerParams);
timerParams.period = 138;
timerParams.periodType = Timer_PeriodType_MICROSECS;
timerParams.startMode = Timer_StartMode_USER;
timerParams.arg = 1;
myTimer = Timer_create(Timer_ANY, myIsr, &timerParams, &eb);
if (myTimer == NULL)
{
System_abort("Timer create failed");
}

create successfully. Timer 5(id 4)

but second timer was failed.

Timer_Params_init(&timerParams);
timerParams.period = 1000;
timerParams.periodType = Timer_PeriodType_MICROSECS;
timerParams.arg = 2;
SystemTimer = Timer_create(Timer_ANY, myTimerTick, &timerParams, &eb);
if (SystemTimer == NULL)
{
System_abort("Timer create failed");
}

trace log:

cat /sys/kernel/debug/remoteproc/remoteproc0/trace0
[ 0.000] Watchdog enabled: TimerBase = 0x48086000 Freq = 0
[ 0.000] 19 Resource entries at 0x95000000
......

[ 0.000] [t=0x0020b256] ti.sysbios.family.c64p.Hwi: ERROR: line 194: E_alreadyDefined: Hwi already defined: intr# 15
[ 0.000] ti.sysbios.family.c64p.Hwi: line 194: E_alreadyDefined: Hwi already defined: intr# 15

Who used intr# 15(timer 6)? Where can I configure interrupts?

I read the following thread, but not helped.

Thank you.