Part Number: 66AK2H12
Tool/software: Code Composer Studio
Working with TI-RTOS, CCSv8, on ARM 0.
Using TI's timer libraries, which, under the hood, call timer64 functions.
Timers are allocated starting with timer 0x20 (as seen in the TI getNextAvailableTimerId structure). Allocating and setting up timer 0x20, according to the emulator, changes the registers of the timer at 0x022f_0080. This seems to be correct; this is actually physical timer 16.
Then timer 0x21 is allocated, and the other half of timer 16 is allocated and set up.
Then timer 0x22 is allocated; this corresponds to the timer at 0x022f_0100 (timer 17) according to the data sheet. However, CCS memory browser shows no ID value at this address (it is 0x4472020c for the other timers), no fixed prescaler of 0x00060000, etc. The software goes through the motions of setting up the timer but nothing shows up in the memory browser. Furthermore, we do not receive interrupts from these timers.
We can, of course, move the timers, but we need several and are running with 3rd party software which is not so easily adjusted.
I can't tell if CCSv8 is correctly showing the values (I notice it gobbles up memory over time, and the core register window disappears, and it gradually gets slower); this however feels like a processor problem. What would make timers 17, 18, and 19 inaccessible?
Thanks,
Tim
More: this appears to be related to whether or not the GEL file is used, and whether or not it goes through Set_Tetris_Pll, and whether or not it switches on all the ARM cores. I can find no documentation regarding why this would affect visibility into some timers. Does this make sense? Is there a reference document for this?
Thanks,
Tim