Build Blinky Program in Keil
Building a First Program
Now that the toolchain and the Packs are installed, we can look at setting up a project for a typical small Cortex-M4-based microcontroller. Once the project is configured, we can get familiar with the μVision IDE, build the code, and take our first steps with the debugger.
Create New uVision Project
- Start a new project by selecting Project → New μVision project...
- This will open a menu asking for a project name and directory. You can give the project any name you want but make sure you select the path. This directory contains the “C” source code files which we will use in our project.
- Enter your project name and click Save.
Once you have selected the project directory and saved the project name, a new dialog with a device database will be launched. Here, we must select the microcontroller that we are going to use for this project. Navigate the device database and select Tiva C Series, the “TM4C123x Series” and then the TM4C123GH6PM and click OK. This will configure the project for this device; this includes setting up the correct compiler options, linker script file, simulation model, debugger connection, and Flash programming algorithms.
- Next, select the microcontroller to use in the project
- When you have selected the TM4C123GH6PM, click OK.
Now, the IDE will display the “Run-Time Environment” (RTE) Manager. The RTE allows you to select software components that have been installed through the pack system and add them to our project. This allows you to build complex software platforms very quickly. For help on any of the software components, click on the blue link in the description column.
For now, we need to add the minimum support for our initial project. Select the “Core” and “Startup” components.
- In the RTE, tick the “CMSIS::Core” box and the “Device::Startup box.”
- This adds the initial Startup code and also support functions for the Cortex-M processor.
Now that we have selected all of the components required by our project, press the OK button, and the support files will be added to the project window.
- Double click on the startup_TM4C123.s file to open it in the editor.
- Click on the configuration Wizard tab at the bottom of the editor window (Configuration files can be viewed as Text or as configuration wizards). This converts the plain text source file to a view that shows the configuration options within the file.
Changing the values in the configuration wizard modifies the underlying source code. In this case we can set the size of the stack space and heap space.
Add New Item to Project
- Download blinky.c file
- Switch back to the project view and add “C” source files to project.
- Highlight the Source Group 1 folder in the project window
- Right click and select Add Existing Files Group 'Source Group 1'..
- This will open an “Add files to Group” dialog. In the dialog, locate/select blinky.c
- Click on Add button followed by Close button
The project should now contain blinky.c and the RTE components.
Set Options for Target
- Switch to Project Window and Open the Options for Target dialog. Place the cursor on the Target 1 and right click (Alt+F7)
- Select Options for Target "Target 1"...
This can be done in the project menu by right clicking the project name and selecting “Options for Target” or by selecting the same option in the project menu from the main toolbar.
- The “Options for Target” dialog holds all of the global project settings.
- Set Optimization level to 0
- Build the project by selecting Project → Build Target
This will compile each of the “.c” modules in turn and then link them together to make a final application program. The output window shows the result of the build process and reports any errors or warnings.
The program size is also reported
|Code||Size of the executable image|
|RO Data||Size of the code constants in the Flash memory|
|RW Data||Size of the initialized variable in SRAM|
|ZI||Size on uninitialized variables in the SRAM|
If errors or warnings are reported in the build window clicking on them will take you to the line of code in the editor window.