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.

TM4C123AH6PM: Issues Porting Code Originally Written for the LM4F211H5QR in CCS 12.3

Part Number: TM4C123AH6PM
Other Parts Discussed in Thread: EK-TM4C123GXL

Hello,

I am working with our software engineer and we are running into an issue attempting to port a project from the LM4F211H5QR to its replacement the TM4C123AH6PM.  We have our original code written for the LM4F211H5QR and compiled and functioning through Code Composer Studio (CCS) versions 5.5 and 6.2 on the TM4C123AH6PM microcontroller.  Both of these versions of CCS have a selection for the LM4F211H5QR variant with the M4 core and this works for us when compiling and loading the firmware to the TM4C123AH6PM we use now.  We are now trying to run the same code in CCS 12.3, version 12.3.0.00005.  This newer version, however, does not allow us to select the old variant and core and only has an option for the TM4C123AH6PM variant with the M4 core.  When we use this variant, the code no longer functions properly and flags error regarding ROM definitions.

When attempting to compile, some of the #Defines in the rom.h file are not recognized and our software engineer has been having to port the new definitions from some TI examples to our existing code to try to get it working.  Some defines in our existing rom.h file, for example, have different names than the example rom.h file, for example this one.

Others, such as this one, don't exist in the example rom.h file at all.

Our code was originally designed for the LM4F211H5QR, but the TM4C123 is supposed to be identical. If we are using the older versions of CCS this seems to be the case when we select the LM4F211H5QR variant with the M4 core.  However, this option is no longer available in CCS 12.3.  We expected that selecting the TM4C123AH6PM  variant with the M4 core would provide equivalent results, but it is not.  Is there perhaps a rom.h file available that we can port in to correctly define everything in the manner the TM4C123AH6PM is expecting in CCS 12.3?  Or is there not an easy solution for this?

Thanks for your help with this.

Best,

Noah

  • Hi, 

      Sorry, I'm currently out of office with no access to computer.  I can only help you when I'm back on Thursday. From what I see so far, the best approach would be to start off on a TM4C123 example and then migrate you past files from LM4F over. The Tivaware SDK will have the correct rom.h file. Please download the latest 2.2.0.295 version.I don't have the history for LM4F. My understanding is LM4F was never a valid part number. Perhaps I'm wrong. When did you get the LM4F device? I'm curious to know. CCS5 is also a extremely old version.

  • Hi Noah,

     Sorry for providing some misinformation about LM4F. Doing some search, LM4F was at one point of time a Stellaris MCU but later rebranded as Tiva MCU.  They are the same silicon. I think the rebranding was done close to 10 years ago. This is why you will not be able to see LM4F in the later versions of CCS.

     

    As mentioned before, please start with TivaWare 2.2.0.295 SDK for TM4C123. It will have the correct and latest rom.h and rom_map.h. SysCtlADCSpeedSet() is not a valid API in the later versions of TivaWare.  If you refer to the Peripheral Driver Library user's guide, you will not find SysCtlADCSpeedSet. For configuring ADC, you should use ADCClockConfigSet(). 

    There are many examples for TM4C123 that you can find under:

    C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c123gxl 

    and

    C:\ti\TivaWare_C_Series-2.2.0.295\examples\peripherals