Hello,
From time to time I need to mix the "direct register access" style of programming with Tivaware functions. Typically this is because I need some feature that is not included in Tivaware. For example, right now I want to explore the CAN controller on a TM4C123 launchpad by using loopback mode, while I wait for prototype hardware with CAN transceivers to arrive. As far as I can tell, CAN loopback cannot be enabled from Tivaware, so I need to do "direct register" access for this feature.
Contrary to what is advertised in the Tivaware documentation, combining the two models does not work very well: including the device-specific header (for example, tm4c123gh6pm.h) as needed to get the device register definitions causes numerous macro redefinition errors. Thus I either need to 1) copy-paste the register definitions into my own source files, or 2) I need to separate all of the "direct register access" code into a separate source file. Neither of these is really a "clean" solution. Option 1 is what I am doing currently, and it works, but I really shouldn't have to do it this way.
There has been some discussion of this problem in the past. In this thread, the issue is acknowledged, and it was said that TI is going to do something to fix it eventually. But that thread is more than a year old and the current version of Tivaware still has this problem. So I would like to ask, what plans does TI have to resolve this issue? Are we going to see a fix for it soon?