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/EK-TM4C1294XL: linker errors when trying to implement boot loader preparations functions calls in a new project

Part Number: EK-TM4C1294XL

Tool/software: Code Composer Studio


i am trying to create a new project in CCS and combine two of the examples into it - boot_serial and blinky.

so i created a project called "lsxBootloader2", copied the main function from blinky to mine, added the relevant header files and "arm compiler" -> "includes" and it compiled and worked like blinky.
so next step i copied "JumpToBootLoader" and "SetupForUART" functions from boot_demo1.c to my main.c
i added all the include headers (see 2.jpg) and the needed "arm compiler" -> "includes". at this point i can't get the project to compile - i get errors "unresolved symbols" for the calls made in the copied functions (see 1.jpg).

i verified that:

#include <stdbool.h>
#include <stdint.h>
#include "inc/hw_types.h"
#include "inc/hw_memmap.h"
#include "inc/hw_nvic.h"
#include "inc/hw_sysctl.h"
#include "inc/hw_gpio.h"
#include "driverlib/interrupt.h"
#include "driverlib/flash.h"
#include "driverlib/uart.h"
#include "driverlib/gpio.h"
#include "driverlib/rom.h"
#include "driverlib/sysctl.h"
#include "driverlib/pin_map.h"

are all opening well when using "open declaraion" standing on each of them (wanted to make sure they are accessible).
for example - "ROM_GPIOPinConfigure" is defined in "rom.h", but i still get the linker error for its use.

what am i missing?

  • Hello Liran,

    If you made a brand new CCS project from scratch, you are going to be missing dozens of links within the project properties that are required in order to get your project to compile properly. If that is the route you took, I'd advise you instead important an existing TivaWare project, rename it, remove the files from it you don't need, add in your main.c file, and try and compile that.
  • I'm not sure this would be possible. the new project i'm creating is for only one purpose of understanding what exactly is needed in order to integrate the boot loader into another project. with this knowledge, i will need to integrate it to a large, already existing project my team is working on.

    i am trying to take it step by step - and the compilation issue shouldn't be a blocker - any ideas what is missing?
  • Hello Liran,

    Honestly we are lacking in documentation on how to start a project from scratch and avoid build errors (something I wish to resolve in the future) but I can offer the typical list of places to compare your new project to against a working TivaWare application.

    You will want to check:

    • Resource -> Linked Resources and Resource Filters
    • Build -> ARM Compiler -> Include Options
      • Also if you want to re-use "SW_ROOT" you would find that under the "Variables" tab within the Build menu.
    • Build -> ARM Compiler -> Advanced Options -> Predefined Symbols
    • Build -> ARM Linker -> File Search Path

    Ensuring you have the right links to TivaWare folders/files and the right defined symbols based on those locations in Project Properties should resolve the build errors.

  • Thanks i will check it at the start of next week. have a nice weekend :)