This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS/DK-TM4C129X:Tiva c 系列 ARM MCU

Guru**** 2428300 points
Other Parts Discussed in Thread: TM4C129XNCZAD

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/746132/rtos-dk-tm4c129x-tiva-c-series-arm-mcu

器件型号:DK-TM4C129X

工具/软件:TI-RTOS

您好:)

我不熟悉 MCU  

我正在尝试从网站上查找要下载的示例。

我正在使用 Tiva-C TM4C129X 开发板

以及 IAR 嵌入式工作区

有人能指导我从哪里下载此文件吗?

谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

     有关 IAR TI-RTOS 支持、请参阅此 Wiki 链接。

     如果您使用的是 CCS、则可以从 CCS 导入 TI-RTOS 示例。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回复。  

    我看到了不使用 TI RTOS 的示例。

    例如、在 uisit 和 TI Stellaris 之间有何差异?

    我有 IAR 8.32.1、我下载了 IAR IDE 的示例、当我尝试运行 IAR IDE 时、我会得到链接错误。  

    "无法打开文件... driverlib.a"

    我没有改变任何东西,它也不起作用。  

    有什么想法如何解决此问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

     首先、如果您使用的是 Tiva C 系列处理器、则应使用 TivaWare 库。 TivaWare 可从下载  。 TivaWare 库包含硬件外设驱动程序以及示例、文档、工具和许多其他内容。 TivaWare 中包含的示例不是基于 TI-RTOS 的。 TI-RTOS 是 TI 开发的实时操作系统。 许多人可以在没有操作系统的情况下开发他们的应用程序。 这取决于您的应用需求。 如果您需要 TI_RTOS、那么我在之前的答复中向您展示的示例就是为 TI-RTOS 开发的示例。 您也可以参考它们。

     对于 IAR 的非 TIRTOS 示例、您可以在中找到 driverlib.a /driverlib/ewarm/Exe/driverlib.a. 我不熟悉 IAR IDE、但在您的 IAR 连接器配置/设置中、您需要将 driverlib.a 指定为库和  /driverlib/ewarm/Exe 作为 SearchPath。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    再次感谢您的回答。  

    我解决了我的链接问题。 显然、该示例使用项目和中的项目库

    我必须在示例中运行第一个 driverlib 和 grlib。 它们会在 子项目库的每个输出文件夹中创建 driverlib、a 和 glib.a 文件。  只有在这之后、我才需要运行 main.c 文件。

    现在、我面临一个不同的问题。  

        1.在我从 IDE 下载的示例中,一切正常, 我正在使用中断。  

    我尝试编写自己的代码。

    当我写入命令:" ROM_IntMasterEnable()"时(为了在 CPU 中启用中断)

    我收到一个错误:" 没有"ROM_IntMasterEnable"的定义,但我确实将 rom.h Heather 文件包含在定义中。  

    我缺少什么?

    2.我还尝试使用 Tiva 外设驱动程序库。 当我尝试写入命令“ IntMasterEnable()”时,出现错误:“没有 CPUcpsie 的定义”  

    通过查看 interrupt.c 文件、函数调用"cpucpsie"、 CPUcpsie 的宏定义位于 cpu.c 文件中。  

    我在项目中包含了这两个文件。  

    我将在下一条消息中添加我的代码。  

    此致、  

    Eliran。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我的代码:


    #include
    #include
    #include
    #include
    #include "driverlib/rom.h"
    #include "driverlib/rom_map.h"
    #include "driverlib/sysctl.h"
    #include "driverlib/gpio.h"
    #include "driverlib/interrupt.h"
    #include "driverlib/cpu.h"
    #include "inc/hw_ints.h"
    #include "inc/hw_memmap.h"
    #include "inc/hw_NVIC.h"
    #include "inc/hw_types.h"
    //#include "grlib/grlib.h"
    //#include "drivers/frame.h"
    //#include "drivers/kentec320x240x16_ssd2119.h"
    //#include "drivers/pinout.h"
    //#include "inc/tm4c129xncszad.h"


    /*  
    PN5=红色 LED
    PQ4 =蓝色 LED
    PQ7=绿色 LED
    PN3= SW2
    *


    //原型函数

    空延迟(unsigned int x);
    void INT_SW2 (void);
    int main()

     
     //设置时钟
     SysCtlClockFreqSet (SYSCTL_OSC_INT|SYSCTL_USE_PLL|SYSCTL_CFG_VCO_320、4000000);
     
     
     //激活系统控制中的 GPIO
     SysCtlPeripheralEnable (SYSCTL_Periph_GPION);
     SysCtlPeripheralEnable (SYSCTL_Periph_GPIOQ);
     
     while (!SysCtlPeripheralReady (SYSCTL_Periph_GPION));
     while (!SysCtlPeripheralReady (SYSCTL_Periph_GPIOQ));
     
     GPIODirModeSet (GPIO_PORTN_BASE、GPIO_PIN_5、GPIO_DIR_MODE_OUT);
     GPIODirModeSet (GPIO_PORTQ_BASE、GPIO_PIN_4、GPIO_DIR_MODE_OUT);
     GPIODirModeSet (GPIO_PORTQ_BASE、GPIO_PIN_7、GPIO_DIR_MODE_OUT);
     GPIODirModeSet (GPIO_PORTN_BASE、GPIO_PIN_3、GPIO_DIR_MODE_IN);    // SW2是中断输入
     
     GPIOPadConfigSet (GPIO_PORTN_BASE、GPIO_PIN_5、GPIO_FORMENT_2mA、GPIO_PIN_TYPE_STD);
     GPIOPadConfigSet (GPIO_PORTN_BASE、GPIO_PIN_3、GPIO_FORMENT_2mA、GPIO_PIN_TYPE_STD);
     GPIOPadConfigSet (GPIO_PORTQ_BASE、GPIO_PIN_4、GPIO_Strength _2mA、GPIO_PIN_TYPE_STD);
     GPIOPadConfigSet (GPIO_PORTQ_BASE、GPIO_PIN_7、GPIO_Strength _2mA、GPIO_PIN_TYPE_STD);


     //GPIOIntRegister (GPIO_PORTN_BASE、INT_SW2);
     
      
       GPIOIntTypeSet (GPIO_PORTN_BASE、GPIO_PIN_3、GPIO_LOW_LEVEL);
        GPIOIntEnable (GPIO_PORTN_BASE、GPIO_INT_PIN_3);
     //////////// 这里有问题... IntMasterEnable();
     
           IntMasterEnable();     //////////// 问题就在这里
       
       
       
     while (1)
     {
     GPIOPinWrite (GPIO_PORTN_BASE、GPIO_PIN_5、GPIO_PIN_5);
     延迟(30000);
     GPIOPinWrite (GPIO_PORTN_BASE、GPIO_PIN_5、0);
     延迟(30000);
     GPIOPinWrite (GPIO_PORTQ_BASE、GPIO_PIN_4、GPIO_PIN_4);
     延迟(30000);
     GPIOPinWrite (GPIO_PORTQ_BASE、GPIO_PIN_4、0);
     }
     返回0;

    空延迟(unsigned int x)

     volatile unsigned int i=0;
     for (i;i;<x;i++);
     for (i;i;<x;i++);
     for (i;i;<x;i++);

     
     
     空 INT_SW2 (空)
     {
       GPIOIntClear (GPIO_PORTN_BASE、GPIO_INT_PIN_3);
     }

    图片:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!
    我按原样使用您的代码、没有任何编译错误。 我不确定问题是什么。 您是否正在使用 IAR IDE 提供的示例? 有一些为 IAR 构建的 TivaWare 示例。 您为什么不试一下这些示例?

    您有 LaunchPad 吗? 您是否在 TM4C129 Launchpad 上运行示例?

    另一个建议是、您可以使用 CCS IDE、该 IDE 无需许可证。  这是一款 TI 工具、我们将能够为您提供更好的支持。 对于 IAR 问题、我建议您联系 IAR 以获取支持。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的。  

    我找到了问题。  

    在项目选项中、如果我选择:c/c++ compiler->Preprocessor->defined symbols

    我从工作项目复制了三个定义:

    1微瓦  

    2- PART_TM4C129XNCZAD

    3- TARGET_IS 雪花_RA0

    链接器可能无法找到项目中的某些库或定义。

    这实际上是 IAR 定义问题。

    非常感谢您的帮助。  

    此致、

    Eliran。