Robotics at Maryland's repository for building FreeRTOS along with Tivaware libraries on the TM4C123GXL
FreeRTOS version: v8.2.3
Tivaware version: 2.1.3.156
This video series takes you through embedded programming on the TM4C123GH6PM microcontroller, which is what we use. It is strongly recommended you watch these videos. They use the IAR Toolchain and later on a modified version of Eclispse, which isn't what we use here, so it might be difficult to follow along. Nonetheless, the series is an excellent resource to get an understanding of embedded programming.
To build the project you need the GNU ARM Embedded Toolchain
To flash to the MCU you can use LM4Tools
To install both of these automatically run ../scripts/embedded_install_deps.bash
It may be necessary to install ia32-libs if you're on a 64 bit system.
sudo apt install ia32-libs
Or on 16.04:
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libc6:i386 libncurses5:i386 libstdc++6:i386
Tivaware drivers(EK-TM4C123GXL)
are included in the drivers/
directory. You have to make
in the drivers/
and the drivers/utils
directory to get the
Tivaware objects in the correct place.
The drivers/
directory is where the Tivaware libraries are stored. The makefile in drivers/
builds
all the source files there into object files and then runs the symlink_objs
script to link the object
files into the obj/
so the linker can easily access it.
first do make in drivers, then do another make in drivers/usblib/
TODO have our root make file make drives too
Building should just be as simple as running make
in the embedded/
directory. The Makefile will
automatically build all *.c
files in src/
and src/tasks/
. It will then try to output an
image.bin
file that can be flashed to the MCU.
Make sure you source setenv.sh
so that you can find the toolchain. Also make sure the locations
setenv.sh
points to are correct.
If you get an error that looks like "can't build object obj/task/something.d no such file or directory" then try: mkdir qubo/embedded/obj/tasks/ mkdir qubo/embedded/obj/lib/ mkdir qubo/embedded/obj/interrupts/
Run make flash
to flash the image.bin
file onto the chip while you're in the embedded/
directory.
TODO standardize this process, everyone seems to have different ideas as to how to get this tool to work
The TM4C123GXL's UART0 is connected to the In-Circuit Debug Interface(ICDI) which you can use the USB cable to view.
Use a serial terminal program with 115200 bps, 8 data bits, no parity, and 1 stop bit.