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/TMDSSK3358:未定义对 GPIO_init 的引用

Guru**** 2606725 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/639232/rtos-tmdssk3358-undefined-reference-to-gpio_init

器件型号:TMDSSK3358

工具/软件:TI-RTOS

你(们)好

我是第一次使用 TI-RTOS、我正在学习使用 TMDSSK3358板(Sitara AM3558)的基础知识。

http://www.ti.com/tool/TMDSSK3358

我在 Code Composer Studio 中尝试了"Hello World"示例、该示例有效。 第二步是让 LED 闪烁。 为此、我想添加 GPIO 驱动程序。 项目配置:

据我了解、GPIO 驱动程序应位于 TI 软件 SDK 中包含的 AM335x PDK 中。 这也包含在编译器路径中:

包括 GPIO 接头也有效:

#include 

#include 

#include 

#include 

#include 

现在,我尝试调用 GPIO_init()等 GPIO 函数。 这会给出"未 定义的 GPIO_init 引用"错误:

有什么想法为什么? 是否缺少库? GPIO_init 在 GPIO.h 文件中定义、但标记为外部。 因此、可能存在一个或多个缺失的链接。

感谢您的帮助!

Sebastian

编辑:复制/粘贴图像似乎不起作用...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RTOS 团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    塞巴斯蒂安

    Processor SDK RTOS 版本已提供 GPIO LED 闪烁示例、该示例是基于 AM335x SK 的 TI-RTOS。 它位于
    C:\ti\pdk_am335x_1_0_8\packages\MyExampleProjects\GPIO_LedBlink_skAM335x_armTestProject

    有关如何构建您的示例的一些指导、请参阅此示例。
    下面是有关如何在 PDK 中生成 MyExampleProjects"文件夹的视频。
    training.ti.com/processor-sdk-device-drivers-setup-test

    希望这对您有所帮助。

    Lali

    PS:我认为映像的复制/粘贴在 e2e 上不起作用。
    您必须通过单击"Insert Code、Attach Files 等...(插入代码、附加文件等)"来插入图像。 链接。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好

    感谢您的回答。

    我已经尝试过这个示例、它可以正常工作、或者它几乎可以正常工作。LED 不闪烁、但已打开。 回调函数似乎有问题、但我没有进一步研究过。

    但重点是:在本示例中,调用 GPIO_toggle()等函数,编译器接受这些函数。 我看不到这个示例项目和我自己的项目之间的区别。 GPIO 的闪烁任务只是测试如何加载驱动程序的示例。 当我加载 UART 报头时也会出现同样的问题:

    #include 

    调用 UART_init()会出现错误"Undefined reference to UART_init"。 我必须在将驱动程序加载到项目中时犯根本错误、但我看不到哪一个。

    Sebastian

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

    你(们)好  

    您是否为您的问题找到了解决方案。

    Rafal

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

    您好、Rafal

    不、我不这么做。 路径和库似乎存在问题。

    我在 TivaC 演示板上遇到了类似的问题。 激活"产品"下的选项时自动设置的路径无效、因此必须手动设置目录和链接器库。 我猜是库存在链接器问题、但我不知道必须添加哪些库。

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

    我通过从 ti/drv/GPIO 文件夹中添加以下文件来解决问题:GPIO_SoC.c 和 GPIO_bbbAM335x_board.c、您还需要将这些文件添加到 app.cfg 文件中  

    /*加载 GPIO 包*/
    VAR GpioPackage = XDC.loadPackage ('ti.drv.GPIO');
    GpioPackage.Settings.enableProfiling = true;

    要运行 Board_init(),我必须添加一个 UART_SoC.c  

    Rafal