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.

[参考译文] 编译器/TM4C129ENCPDT:针对 TM4C129ENCPDT MCU 的裸机编程

Guru**** 2124260 points
Other Parts Discussed in Thread: TM4C129ENCPDT, EK-TM4C129EXL
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/942744/compiler-tm4c129encpdt-bare-metal-programming-for-tm4c129encpdt-mcu

器件型号:TM4C129ENCPDT
主题中讨论的其他器件: EK-TM4C129EXLTM4C1294NCPDT

工具/软件:TI C/C++编译器

大家好、

我正在尝试使用 TM4C129ENCPDT MCU 进行裸机编程。

关于如何开始这项工作的好导游-也许是一个开始工作的好向导。

我正在使用 EK-TM4C129EXL LaunchPad。

提前感谢。 )

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

    如果 您尚未下载 Code Composer Studio、或使用在线版本。 然后下载 TivaWare 库。 安装完这两个文件后、您可以打开 Code Composer 并执行 File -> Import ->

    选择"CCS Projects"以导入示例、然后单击"Next"。

    浏览至 TivaWare 中的"闪烁"示例。 默认情况下、它将位于"C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c129exl\blinky"中

    单击"Copy projects into workspace"。

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

    我的坏

    我的问题不清楚。

    实际上、我打算 在不使用 TI 提供的 API 的情况下对 TM4C129ENCPDT MCU 进行寄存器级编程。

    此致、

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

    我们强烈建议不要执行直接寄存器写入、因为这会增加编程难度并增加错误数量。 我已复制过帖子"[FAQ]***张贴前阅读!*** TM4C 论坛通用指南"中的项目#4。  

    4) 4)避免仅使用直接寄存器修改(DRM)编程、而是使用 TivaWare。

    TivaWare 的主要用途之一是无需单个用户了解 DRM 编程的来龙去脉。  因此、我们将无法为仅与 DRM 编程有关的任何问题提供支持。

    对于那些真正想了解如何使用 DRM 对器件进行编程以便更好地理解的人、TI 建议首先使用 TivaWare 对项目进行编码、然后将 TivaWare API 部分逐段替换为它们执行的 DRM 代码。 由于 TivaWare API 是开源的、因此该选项对所有用户开放。

     ***这不适用于可能需要几次 DRM 调用来补充 TivaWare 或解决勘误项***的情况

     

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

    Bob、您好!

    我想了解更多有关用于教育目的的 DRM 编程的教程或示例代码。

    是的、正如您提到的、最好的选择是使用 TivaWare、但此处并非如此。

    非常感谢您的回答。 )

    此致、

    Arunava。

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

    由于我们不建议直接修改寄存器、因此我们没有教程或示例。 我可以向您展示一个使用 DRM 使 LED 闪烁的简单程序、但这就是我可以为您提供的所有支持。 我怀疑您的教授是否直接向寄存器写入数据、以便您详细阅读数据表并更好地了解器件中的外设。

    #include 
    #include "inc/tm4c1294ncpdt.h"
    
    //*********
    //
    //! \addtogroup example_list
    //! 

    Blinky (闪烁)

    //! //! 一个非常简单的示例、使用直接寄存器 //! 访问。 //// ***************** // // //闪烁板载 LED。 //// ***************** int main (void) { volatile uint32_t ui32Loop; // //启用用于板载 LED 的 GPIO 端口。 // SYSCTL_RCGCGPIO_R = SYSCTL_RCGCGPIO_R12; // //执行虚拟读取以在启用外设后插入几个周期。 // ui32Loop = SYSCTL_RCGCGPIO_R; // //为 LED (PN0)启用 GPIO 引脚。 将方向设置为输出、然后 //启用 GPIO 引脚以实现数字功能。 // GPIO_PORTN_DIR_R = 0x01; GPIO_PORTN_DEN_R = 0x01; // //永久循环。 // while (1) { // //打开 LED。 // GPIO_PORTN_DATA_R |= 0x01; // //延迟一位。 // for (ui32Loop = 0;ui32Loop < 200000;ui32Loop +) { } // //关闭 LED。 // GPIO_PORTN_DATA_R &=~(0x01); // //延迟一位。 // for (ui32Loop = 0;ui32Loop < 200000;ui32Loop +) { } }

    所有寄存器的定义由文件"tm4c1294ncppdt.h"提供、该文件可在 TivaWare 目录"C:\ti\TivaWare_C_Series-2.2.0.295\inc"中找到

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

    尊敬的

    非常感谢您的帮助。

    BTW、我是一名专业工作人员。 我目前正在使用桌面应用程序、并愿意转向嵌入式系统。 这方面的任何指导都将非常有帮助。

    此致、

    Arunava。

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

    我建议您不要花时间尝试使用直接寄存器修改来编写代码。 相反、从使用 TivaWare 库的示例开始。 在调试代码时、当您认为 C 代码不执行所需的操作时、请使用反汇编窗口和汇编步进。 (我的代码有一种执行我所说的操作的平均习惯、而不是我想要执行的操作。) 如果外设不符合您的预期、请使用寄存器窗口查看您的代码如何对每个寄存器进行编程、并使用数据表中的详细寄存器说明检查它们是否正确。 这是您在寄存器级别获得器件知识的方法。 玩得开心! 嵌入式代码编写可能会令人沮丧且有益。

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

    尊敬的

    非常感谢您的建议。 他们真的很乐于助人。

    经过一些研究、甚至我也得出结论、使用 TI 的 API 将是最佳选择。

    是的、有时它会令人沮丧、但它始终证明是有回报的。

    此致、

    Arunava。