Dear TI support service,
I am using your PRU C compiler to implement a simple xy2 100 stream generator, and I noticed that defining a const table like:
__far static const uint32_t table_yx_clock_hi_const[4] =
{
def_xy2_100_clock_hi | def_xy2_100_sync_hi | 0,
def_xy2_100_clock_hi | def_xy2_100_sync_hi | (1 << def_xy2_100_x_shift),
def_xy2_100_clock_hi | def_xy2_100_sync_hi | (1 << def_xy2_100_y_shift),
def_xy2_100_clock_hi | def_xy2_100_sync_hi | (1 << def_xy2_100_y_shift) | (1 << def_xy2_100_x_shift),
};
The table is place din IMEM (page 0), so far so good.
But when trying to access the table, the compiler generates an LBBO instruction that access the table as if it was in DMEM, while the table has been placed in IMEM.
It seems that the compiler tries to access the table at an address in DMEM that has the same numeric value as the table address in IMEM, but this is wrong because the table as stated is in IMEM.
I wonder if:
- is there a way to access data stored in IMEM
- is there any other way to access the const table?
Best regards and many thanks for your help