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.

[参考译文] TM4C123GH6PM:对 ASM 编程基础知识以及如何将程序上传到电路板感到困惑。

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/585441/tm4c123gh6pm-confused-on-basics-of-asm-programming-how-to-upload-program-to-board

器件型号:TM4C123GH6PM

大家好、我已经对 PIC 8位微控制器进行了编程、我决定要了解 ARM。 我购买了 Tiva C Launchpad 板。

我已经阅读了大量材料、并观看了许多视频、但其中没有一个视频  是通过编写简单的 ASM 程序并将其上传到器件的基本步骤完成的、甚至是通过器件启动例程(例如、 器件在存储器中进入其程序或需要进行何种启动设置的位置)。

此外、无指示#defines 列表针对器件的位置(如果有这样的列表)。

TI 提供的所有材料都使用 C 语言的 Code Composer 以及 Tivaware 库。  实际上、没有人 会回顾器件的功能或将 ASM 程序实际安装到电路板上的基本步骤。

我非常感谢在这方面提供的任何帮助或指导。

老实说,试图弄清这一点是我在方案编制方面遇到的最糟糕的经历之一。

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

    您好!

    Tiva 微控制器与 PIC8完全不同、您可以直接使用 C 语言并单步执行.asm 阶段、稍后再学习。 这是由于大量特殊配置寄存器、不同应用中需要设置/复位的大量位、因此、为了处理这种复杂性、将其隐藏在某些 API 函数中非常有用。

    但是、如果您需要 ASM 中的一些介绍性示例、请在此处查找:

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

    [引用用户="Michael Lowell"]......尝试弄清这一点是我在编程方面遇到的最糟糕的体验之一。

    感受您的痛苦-然而(可能)有一个理由来解释这种情况的存在原因。

    让我同意海报 Petrei 的说法、即该供应商提供了强大而广泛的"API"、可以"加快、简化和增强"所有这些供应商的代码开发工作。  (甚至那些寻求"DRM"(直接注册)或 ASM 的人。)

    虽然您报告"最糟糕的经历"-也许这种感觉会随着(实际上)针对 ASM 发展的"最低支持/兴趣"的合理性而降低。

    我"接受"了这一情况(ASM 抑制)的结果:

    • 在收购开发这些 ARM MCU 早期版本的公司期间、该供应商购买了该电源公司 API 的早期版本。  该 API 受到了广泛的欢迎-销售相当好-(许多)新手用户注意到了巨大的成功。   如今、经过多年的开发和改进、API (全部采用"C"语言)为开发人员提供了极高的"试用、真实、测试!"
    • 供应商支持-此论坛和其他地方-将因"邀请使用 ASM "而变得极其复杂。  响应时间会增加-解释深度会倍增-这是否好?
    • 当今的 C 语言编译器和 IDE 显著降低了 ASM (可能)提供的优势。  (这些不是您父亲的 C 语言编译器!)
    • 在受欢迎程度方面-电子新闻报道:"使用 C 远远超过 ASM。"   供应商(必须)支持其最大的用户群-显然是"c"。
    • 为了让您通过 ASM 取得成功-您是否不应该被要求创建"完整的职能目录?"  所有基础知识:I/O、多个、复杂外设、宽寄存器操作等  这是一项非常繁重的任务-在您的 ASM 开发开始"提供(部分)您的时间/精力投资回报"之前、"需要"这样做!   而且-一个高功能 API 代表(被拒绝)在您的家门口!


    鉴于这些事实-您的"最糟糕的体验"是否确实源于您"保持在您的(ASM)舒适区内"的愿望-并允许(很少)当今的 MCU 开发现实?

    我是一名小型的技术企业所有者-我们定期聘请大学生、新员工-(几乎从来没有)我是否允许他们使用 ASM!  (同样、对于那些支持 Uber-capable w/asm 的用户来说、它们根本不能与通过 API 实现的代码的生成和稳健性相匹配。)   尤其是在如此广泛的情况下、经过测试的真正的 API 会"准备就绪!"   与之形成鲜明对比的是-使用 ASM 或 DRM -始终会导致代码较少、"已尝试、正确、已测试!"  我们也可以注意到、虽然您(很明显)认为 ASM 很有吸引力、但您并未提供有利于 ASM 的解释。   鉴于 API 的"过度"强度、范围和优势、您可以"尝试一下"、慢慢地摆脱"最糟糕的体验"。   我相信您不会失望的-同样、您可以(自由)将 ASM 与批量"C"代码混合-前提是您不介意额外的时间/精力和"不确定性"-这些时间/精力和"不确定性"来自"未经测试" (即"一个男人、简短和有限的代码测试")。

    向那些上市早期的公司提供的最大利润流-这是否(曾经)源自" ASM 和唯一 ASM 开发?"

    由于这些原因以及其他原因、ASM 开发描述不清楚。  "C"下的开发是相反的极点-大多数 IDE 将"显示"由 C 函数生成的 asm 代码。   我是否可以建议您(暂时)接受由供应商提供的"正常"开发步骤、让您对 IDE 和使用方法有一定程度的熟悉程度、然后(仅限于)开始搜索"扩展到 ASM"?   (您还可以调查"Pro" IDE (Keil、IAR)、(我认为)提供有关 ASM 代码开发的"注意/处理"的更多详细信息...)

    转向帮助-您是否阅读/查看了 MCU 手册以及(尤其是)有用/详细的"外设驱动程序用户手册"?  (虽然该用户手册(完全)基于"C"-它提供了 MCU 特性/功能的"宝藏"-供 ASM/ME DRM 用户使用(甚至可能)。)   此外、还有大量针对每个/每个 MCU 外设的代码示例(全部用"C"表示)-确保加快/简化您的工作。  (运行示例时、您可以自由、完整地查看 ASM 列表、这些列表会随生成示例的"C"代码一起显示。)  您的"对 ASM 的需求-仅 ASM "似乎让您对正常的"新用户启动指南"有所了解。  公司/我发现、"让一切正常运转"、我们必须首先"获得一些工作!

    实际上、ASM "最好"的时间/地点也有。   然而、这些需求正在缩小、而"市场竞争"需要快速高效的代码(和产品)开发。  这是目前为止最好的服务(C)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Michael、
    正如 CB1很快就正确地说的、忘记 ASM、下载 TivaWare、编译示例并使一些 LED 闪烁!
    布鲁诺
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我明白了这一点、但我认为在介绍一些基本示例时有价值、我正在慢慢地将其弄清楚-我当然会使用 C 语言进行程序、但我仍然想了解一些低级函数。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    相信这表现出良好的态度和适应意愿。
    Joseph Yiu (两者)提供的 Petrei 和 ARM Cortex 海报链接提供了(一些)展示 ASM 的示例。

    再说一次- imho -最快速、最简单的吸收方法是在"C"语言中启动简单的 GPIO 程序、从而提供清晰的辅助 ASM 列表。

    稍后-随着您的信心和熟悉程度的提高-认真参与 MCU 手册的 ADC 部分。 这些寄存器的数量和复杂性以及(所需的顺序)应该(肯定)"说明情况"、以便在您的开发工作中包含(部分)"C"。