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.

CCS/TM4C1231H6PGE: ROM functions

Part Number: TM4C1231H6PGE

Tool/software: Code Composer Studio

Hello,

     I am having a hard time using the ROM_ functions. I keep getting unresolved symbol errors. I have gone as far as copying the file rom.h into my project directory and have added theline 

#include "rom.h" 

I believe the compiler cant find the file and the symbols but can not figure out why. I have a number of funcs define in driverlib that all work as planned. It just seems rom.h doesnt want to cooperate.

any sugestions would be greatly appreciated.

Thanks

Pat

  • Did you also include rom_map.h?

    #include "driverlib/rom.h"
    #include "driverlib/rom_map.h"
    

  • patrick murphy said:
     I am having a hard time using the ROM_ functions. I keep getting unresolved symbol errors.

    As explained in the Direct ROM Calls section of the TivaWare™ Peripheral Driver Library USER’S GUIDE:

    The device on which the application is run must be defined using a preprocessor symbol, which can be done either within the source code or in the project that builds the application. The latter is more flexible if code is shared between projects.

    Where one of the TARGET_IS_* macros defines the type of device.

    Without a valid TARGET_IS_* macro defined before including rom.h you end up with unresolved symbol errors.

  • thanks for the responses guys, unfortunately both rom_map.h and TARGET IS directive are in place. I will double check on the TARGET IS.
  • Hi,

    Please tell us what are the unresoved symbols (and errors) - there are some pins without definitions, AFAIK.

  • Hello,

       here are the unresolved symbols 

    ROM_SysCtlClockGet ./simple_rx_swc.obj
    ROM_SysTickEnable ./simple_rx_swc.obj
    ROM_SysTickIntEnable ./simple_rx_swc.obj
    ROM_SysTickPeriodSet ./simple_rx_swc.obj

    But, I went back to an old project that has ROM functions that work and searched for the TARGET_IS directive and found it only in a file in the project directory  called //debug/drivers/subdir_rules.mk.

    this same file in the current project does not have that directive. This file subdir_rules.mk is automatically generated. How is this file generated? From what info? I fairly certain that the new project

    (where ROM doesnt work)  was set up the same way as the old project( where ROM does  work).

    Thanks For the Help

  • Check the predefined symbols by right clicking on the project name and selecting "Show Build Settings..".

  • somewhat related:

    what is the prescribed set-up for the ccs tm4c environment? I installed CCS in the default directories and also used the workplace directory as indicated by CCS. TI resources are in their own directory c:/ti/ . But, now every project demands a huge amount of time to fix errors caused by unresolved symbols and "cannot open file" problems. I would think there would be some "universal" path options that would make the linker and compiler look in the right places all the time. Is there some "trick" im unaware of? IDE's ive used in the past were pretty simple when it came to setting up the path variables. Could it be a Windows 10 thing?
  • yep. once i entered the target in the predefined statements the rom.h started working.thanks