Checking (and finding) a better full software for firmware development for Tiva C boards
How can I evaluate my embedded projects (robotics, or any other) with my board and other software than the Keil one? (The Keil software we learnt in the past course on Embedded Systems). Note: I wanted to check other similar software than Keil because it's free version has limits in code size, also to check other tools for faster prototyping and more code examples without loosing control on the project. I think I found it, keep on reading.
Of course we have Energia software for our Tiva C LaunchPad board, relative of Arduino IDE, but it lacks Debug or Emulation facilities, so if we want to get serious with our development, we have to check another one.
Fortunately, Texas Instruments (TI) has developed from long time ago its own software called Code Composer Studio, which it's at its mature version 6, see it's wiki here. It can be used in Windows and Linux as freeware with a Tiva C attached, and fully utilize it's features! Please note: you have to create a free account in Texas Instruments website in order to download the software. Some countries are not allowed, you'll see when downloading it.
It has many useful functionalities for our boards like:
- A solid programming environment, where you can start writing code, building the project and debug in the real board seing changes in registers and even power consumption!
- A full examples code to learn and start a project: TivaWare.
- Connection to the open software Energia platform, to get new projects or libraries in a fast way.
Do you want to see all features that CCS v6 has? See them here.
Starting with Code Composer Studio v6: installation
First we have to grab the installer from Texas Instruments website, that’s here. Wait! If you want it for our dear Tiva C, use this link, yes it is for the TM4x ARM microcontrollers, like the one that is in our Tiva C LaunchPad board. Exactily it is a TM4C123GH6PM microcontroller.
Installer is small, only 7,30 MB, and that’s because when you execute it, it will ask you which functionalities and micros you want to handle, so it will download and install only what you need. Clever! But be careful, if you don’t download all you need, you could end with a not so useful IDE. So what do you need to start fine? Just this:
Please note: you have to de-activate your antivirus temporary during the installation, as the installer ask you:
Note: Just in case, in order to be secure, just avoid any websurfing or torrent or any other internet communication in the meantime. Yes, it wont let you 100% free of virus or other problems, but unless you are in a free-WiFi, it's a good compromise. So please, avoid this procedure if you are in a "free"/unsafe network.
Then you should read and accept the License Agreement:
And choose/confirm the path for software installation, I recommend the one is shown by default:
Then select the right software you need, I pointed here the ones you need at least for Tiva C (I have other marked as I just wanted to check, but you don't need them):
Remember: the more you select, the more will be downloaded and installed, filling up your hard disk with unnecesary stuff.
Then you have to select the "Devug Probes" for your device, in this case, as you'll use just the Tiva C, select the one I point: Tiva/Stellaris ICDI Debud Probe. That's the way that TI call the internal board system to debug:
Then you should select the extra (free) tools that you will need to download examples (apps) to play with:
Then click "Finish" and all you have selected will be downloaded and installed. Please have patience as It takes some time to do all the work.
In the next chapter we'll see how to download and test some simple examples (TivaWare) with Code Composer Studio v6. You can check the list here (numbers at the right are for page numbers in the PDF linked below):
2 Example Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1 Bit-Banding (bitband) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Blinky (blinky) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 FreeRTOS Example (freertos_demo) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4 GPIO JTAG Recovery (gpio_jtag) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.5 Hello World (hello) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.6 Interrupts (interrupts) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.7 MPU (mpu_fault) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.8 Project Zero (project0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.9 EK-TM4C123GXL Quickstart Application (qs-rgb) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.10 Timer (timers) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.11 UART Echo (uart_echo) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.12 uDMA (udma_demo) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.13 USB Generic Bulk Device (usb_dev_bulk) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.14 USB HID Gamepad Device (usb_dev_gamepad) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.15 USB Serial Device (usb_dev_serial) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3 Buttons Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2 API Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3 Programming Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4 RGB LED Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.2 API Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.3 Programming Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
And the full PDF of TivaWare software examples for Tiva C LaunchPad board is here.
Do you like to see any example first? Just tell me and I'll do my best in the next article.
https://www.youtube.com/watch?v=uAb5MScflEo