0

FreeRTOS 8.1.2 Port to TI Tiva™ C Series TM4C123G LaunchPad Evaluation Board (ARM Cortex-M4F GCC)

Readme.txt (1/6/2015)

I have been working on this on a windows PC but it should be more simple
on a Linux box.  I don't really have any development experience on OS-X but it
looks like Linux.

At the current time:
    The minimal test is working well
    The full test is starting with no asserts
    The full test has issues I have not chased:
        1) After a periodic test fails the fast blink will quit after a while (couple hours)
        2) Cannot last more than a few seconds running the tests:
                if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )
                if ( xAreBlockTimeTestTasksStillRunning() != pdTRUE )
                if ( xAreRecursiveMutexTasksStillRunning() != pdTRUE )
                if( xIsCreateTaskStillRunning() != pdTRUE )
                but the rest run ok for a while.. (not indefinatly)

My environment:
    Windows 7, 64 bit
    Tiva™ C Series TM4C123G LaunchPad Evaluation Board (http://www.digilentinc.com/)
    TivaWare_C_Series-2.0.1.11577 (From Ti)
    LM Flash Programmer - Build 1613 (From Ti)
    gcc-arm-none-eabi-4_9 (Windows binary package)
    openocd-0.8.0 (Windows binary package)
    FreeRTOSV8.1.2 (from FreeRTOS.org)
    
Oddities:
 -> I was easily able to rebuld the TI Tivaware driver library but could
    not get it to link from the destination directory.. I finally added it
    (libdriver.a) to my src directory in order to get it to compile.
 -> The LMFlash commands in the 'make flash' target sometimes fail to reflash
    the board properly.. From the user groups this is a known LMFlash issue..
    A second 'make flash' usually works for me.
 -> I added an assert that will flash red and blue if any of the error hooks
    are hit.  I use gdb to examine failures.. If I get motivated I'll blink out
    file and line numbers on a button press...
    
TI Tivaware:
    After you install the compiler and Tivaware you'll need to
    build libdriver.a for the TM4C123G board.  This is only used in
    this project to set the processor speed and blink an LED. All
    references to libdriver.a are in the file hardware_tm4c123g.c
    
    My Makefile uses the tivaware makedefs file.  the ROOT Makefile
    variable should point to your tivaware install directory.
    
The notes I use to get GDB up and running...
  Cmd Window 1:
    openocd-0.8.0.exe --file J:\openocd-0.8.0\openocd-0.8.0\scripts\board\ek-tm4c123gxl.cfg
  Cmd Window 2:
    arm-none-eabi-gdb.exe gcc\main.axf
    (gdb) target extended-remote :3333
    (gdb) monitor reset halt
    (gdb) load
    (gdb) monitor reset init
    (gdb) continue
    
    To make life a little easier, I use the following .gdbinint file
    
        target extended-remote :3333
        monitor reset halt
        load
        monitor reset init
        b main
        b _assert_failed
        continue

Some Handy Resources
    http://processors.wiki.ti.com/index.php/LaunchPad_Resources
    http://processors.wiki.ti.com/index.php/Stellaris_Launchpad_with_OpenOCD_and_Linux
    http://openocd.sourceforge.net/getting-openocd/
    https://launchpad.net/gcc-arm-embedded/+download
    http://www.freddiechopin.info/en/download/category/4-openocd
    http://cengiz.akinli.org/gdbprimer.htm

Have Fun!

Miller




CORTEX_M4F_TI_TM4C123G_GCC_FULL.zip

1 comment

Please sign in to leave a comment.