Keil下新建TM4工程

基于Keil5.26进行演示

  CCS太难用,所以还是用回Keil,这里记录一下环境搭建的过程。

各种资源的准备

  • 首先,开发TM4肯定是需要TivaC的软件包的,没有安装的童鞋请去官网下载“tivaware_c_series_2_1_4_178”这个包然后找个地方安装好。
  • 然后嘛,Keil下开发需要安装对应的Pack,可以自己去官网下载好以后离线安装,也可以直接在Keil的“Pack Installer”里面搜索TM4以后安装对应的Pack。

P1.jpg

  • 然后,部分版本的Keil默认不带板载的ICDI调试器的支持,需要自己去官网找相应的包安装,不过笔者实测5.26是带的。

建立工程模板

  之前笔者在Keil下开发STM32时(使用标准库)习惯使用工程模板,所以这一次给TM4也来建立一个,步骤如下:

规划好工程结构并添加文件

  首先,工程模板的话,笔者希望它包含工程中使用到的全部库文件,虽然空间占用高一点,但这样会比较方便,所以肯定要放一个“Lib”。然后,一个工程应该包含一些文档便于以后查阅,所以放个“Doc”,工程文件等等可以放进“Project”,而用户添加的内容则放进“User”

  • OK,基于以上的想法,新建名为“TM4_Template”的文件夹,并在下面建立“Doc”“Lib”"Project""User"。
  • 然后,把“tivaware_c_series_2_1_4_178”下inc、driverlib、utils三个文件夹复制到Lib下,这些内容平常开发足够用了,如果偶尔需要使用到其他的库的话可以后续再添加。

建立工程并进行各项配置

  • 接下来我们打开Keil,新建一个名为“TM4_Template”的工程并放在先前建立的“Project”文件夹下。
  • 选择芯片型号为“TM4C123GH6PM”。
  • 运行时环境管理界面下如下配置并确认。

P2.jpg

接下来的一些配置就是STM32开发者比较熟悉的部分了,网上相关说明很多,就不做特别详细的介绍了。

  • 左边工程结构树里“Manage Project Items”,“Source Group 1”改成“User”,然后添加“Lib”,把Lib/driverlib下的所有c文件添加到此条目,同时,将“Lib/driverlib/ccs/Debug/driverlib.lib”添加到Lib分组。
  • 新建一个main.c并添加到User分组,main.c可填充如下内容用于测试:

    #include <stdint.h>
    #include <stdbool.h>
    #include "inc/hw_memmap.h"
    #include "driverlib/debug.h"
    #include "driverlib/gpio.h"
    #include "driverlib/sysctl.h"
    
    
    #ifdef DEBUG
    void
    __error__(char *pcFilename, uint32_t ui32Line)
    {
        while(1);
    }
    #endif
    
    //*****************************************************************************
    //
    // Blink the on-board LED.
    //
    //*****************************************************************************
    int
    main(void)
    {
        volatile uint32_t ui32Loop;
    
        //
        // Enable the GPIO port that is used for the on-board LED.
        //
        SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
    
        //
        // Check if the peripheral access is enabled.
        //
        while(!SysCtlPeripheralReady(SYSCTL_PERIPH_GPIOF))
        {
        }
    
        //
        // Enable the GPIO pin for the LED (PF3).  Set the direction as output, and
        // enable the GPIO pin for digital function.
        //
        GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1);
    
        //
        // Loop forever.
        //
        while(1)
        {
            //
            // Turn on the LED.
            //
            GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, GPIO_PIN_1);
    
            //
            // Delay for a bit.
            //
            for(ui32Loop = 0; ui32Loop < 2000000; ui32Loop++)
            {
            }
    
            //
            // Turn off the LED.
            //
            GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 0x0);
    
            //
            // Delay for a bit.
            //
            for(ui32Loop = 0; ui32Loop < 2000000; ui32Loop++)
            {
            }
        }
    }
    
  • 然后是添加路径和宏。
  • 首先,打开“Options for Target XXX”,然后进“C/C++”选项卡,“Include Paths”添加路径(工程的Lib文件夹的路径)
  • 然后,还是“C/C++”选项卡下,“Define”里添加字段rvmdk PART_TM4C123GH6PM
  • 最后,“Debug”选项卡下选择调试器为“Stellaries ICDI”,然后点一旁的“Setting”设置“Reset and Run”

  最后,一切准备妥当,F7编译,F8下载,板上的红色LED会开始闪烁,点灯成功!


ngHackerX86
22 声望24 粉丝

000000