Hi just been playing with my EK-TM4C123GXL evaluation board after several years gap. I am using the standard SDK, quite an old one, but updating doesn't change anything.
I'm doing a projected based on the systick interrupt example file examples/peripherals/systick/interrupt.c
Now when i come to link it, with a make file that reads makedef - it has several missing functions, I can see these defined as extern in the relevant header files. A bit of digging, and what is clear is it needs to be linked with driverlib/gcc/libdriver.a - but checking the makedef file I don't see how to add that to the linking stage. It just has:
${LD} -T $${ldname} \
--entry ${ENTRY_${notdir ${@:.axf=}}} \
${LDFLAGSgcc_${notdir ${@:.axf=}}} \
${LDFLAGS} -o ${@} $(filter %.o %.a, ${^}) \
'${LIBM}' '${LIBC}' '${LIBGCC}'
So only links against LIBM LIBC and LIBCC - and I can see how to add libdriver.a to that.
So how is one meant to link against that file using a makefile that uses makedef?
The linking is also missing a couple of other functions - so guess I missing another library, but havn't found which yet:
arm-none-eabi-ld -T sin.ld --entry ResetISR --gc-sections -o gcc/sin.axf gcc/sin.o gcc/startup_gcc.o /home/summers/TIscratch/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/lib/thumb/libm.a /home/summers/TIscratch/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/lib/thumb/libc.a /home/summers/TIscratch/lib/gcc/arm-none-eabi/11.2.0/thumb/libgcc.a ../../driverlib/gcc/libdriver.a
arm-none-eabi-ld: gcc/sin.o: in function `InitConsole':
sin.c:(.text.InitConsole+0x3a): undefined reference to `UARTStdioConfig'
arm-none-eabi-ld: gcc/sin.o: in function `main':
sin.c:(.text.startup.main+0x12): undefined reference to `UARTprintf'
arm-none-eabi-ld: sin.c:(.text.startup.main+0x1a): undefined reference to `UARTprintf'
arm-none-eabi-ld: sin.c:(.text.startup.main+0x3e): undefined reference to `UARTprintf'
Any ideas? Thanks in advance.