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.

TM4C129ENCPDT: Recompiling / rebuilding TivaWare driverlib

Part Number: TM4C129ENCPDT
Other Parts Discussed in Thread: TM4C1230C3PM

We are recompiling driverlib.

We imported the driverlib project and told CCS to copy the project to our workspace. As expected, the resulting project references all source files as links to their original install location. Running a clean build appears to work, as it runs to completion and creates driverlib.lib with only one (expected) warning that the project was created using an older version of the compiler (5.2.6 [ARM], whereas we have 16.9.4 LTS). So it builds, but needs testing to make sure that our build environment, toolchain version, etc., did not introduce problems.

To that end, I have some specific questions:

I noticed that the driverlib CCS project sets the device to Tiva TM4C1230C3PM (see screenshot). Is there any particular reason why driverlib specifies TM4C1230C3PM? Does the choice of part have any effect on the resulting driverlib.lib binary? What prevents the library binary from having the wrong constants "burned in" if our application is destined for a different TM4C12x part?

Has anyone else recompiled driverlib, and are there any other gotchas we should look out for?

Thanks

  • Hello twelve12pm,

    twelve12pm said:
    Does the choice of part have any effect on the resulting driverlib.lib binary?

    No, it doesn't have any effect on the resulting .lib file you will get.

    twelve12pm said:
    What prevents the library binary from having the wrong constants "burned in" if our application is destined for a different TM4C12x part?

    No constants are burned in for specific devices. Anything DriverLib needs that is differentiated for device families/revisions is handled with if-then-else statements inside of the DriverLib API's, allowing the library to be used with all TM4C12x devices. The unique project configurations for each individual project sets which definitions are used by DriverLib API's, such as CLASS_IS_TM4C123 or CLASS_IS_TM4C129. Based on that, DriverLib will execute code for the device/revision that is selected for each unique project. This way we could avoid the need to re-build DriverLib for every device family/revision.

  • Thanks for your answer.