Other Parts Discussed in Thread: CONTROLSUITE, C2000WARE
Tool/software: TI C/C++ Compiler
I'm porting CAN routines from our previous F28335 processor to the F28377S. (Not sure why you had to change the CAN hardware in releasing a newer generation Delfino, but that question has already been addressed in the forum). I'll be using CCS v7.3.0 and ControlSuite 3.4.6.
The Technical Manual has a note that says: It is recommended to only make 32-bit accesses to the CAN registers. However, at the higher optimization levels, the compiler may split a 32-bit access into two 16-bit accesses, which will corrupt the register value. A compiler fix is in development. In the meantime, 16-bit accesses can be used as a workaround.
Does the compiler I'm using have this issue fixed? Do I have to use the __byte_peripheral_32 intrinsic? Do you have an example of how to do this? Which set of you ControlSuite examples is the most appropriate: F2837xS_can.c in the common directory or can.c in the common/driverlib directory?