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.

[参考译文] Linux/TPS65910:使用 TI SDK 进行编译时未找到 DMTimer

Guru**** 2609955 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/582689/linux-tps65910-dmtimer-not-found-when-compiling-using-ti-sdk

器件型号:TPS65910

工具/软件:Linux

我在基于 BeagleBone Black 的定制设计中使用 TI Linux SDK 4.1.8-ti-R18。 想要使用 DM 计时器将单元恢复为低功耗待机模式、但无法编译以下测试模块。  e2e.ti.com/.../1300.testDMtimer.c

编译错误给出了:

/src/testDMtimer.c:18:39:致命错误:plat/dmtimer.h:无此类文件或目录

 #include // DM 定时器

编译已终止。

make:***[src/testDMtimer.o]错误1

我知道 dmtimer.h 文件位于内核目录中、但它没有被传递到编译器查找它的 libc 目录中。 我缺少什么?

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

    我怀疑您的内核目录未正确导出。 您能否提供更多详细信息、逐步说明如何编译模块。 您是否正在使用 make 文件?

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

    感谢你的答复。 我使用 Eclipse IDE 进行编译、并附加 makefile 和 subdir.mk 文件供您查看。

    makefile:
    -include ./makefile.init

    rm:= rm -rf

    #参与构建的所有源都在此处定义
    -include sources.mk
    -include src/subdir.mk
    -include subdir.mk
    -include 对象.mk

    ifneq ($(MAKECMDGOALS)、Clean)
    ifneq ($(strip $(C_DEPS))、)
    -include $(C_DEPS)
    字节序
    字节序

    -include ./makefile.defs

    #将这些工具调用的输入和输出添加到构建变量

    #所有目标
    所有:testDMtimer

    #工具调用
    testDMtimer:$(OBJS)$(USER_OBJS)
    @echo "构建目标:$@"
    @echo 'Invoking:Cross GCC Linker'(调用:交叉 GCC 链接器)
    /mnt/big1/opt/ti-kernel/yakbuild/dl/gcc-linaro-4.9-2016.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc -o "testDMtimer"$(OBJS)$(USER_OBJS)$(libs)
    @echo "完成的构建目标:$@"
    @回波''

    #其他目标
    清理:
    -$(RM)$(OBJS)$(C_DEPS)$(可执行文件) testDMtimer
    -@回波''

    交响乐:所有干净的家属
    次要:

    -include ./makefile.targets

    subdir.mk 文件:
    #将这些工具调用的输入和输出添加到构建变量
    c_SRCS +=\
    /src/testDMtimer.c \

    OBJS +=\
    /src/testDMtimer.o \

    c_DEPS +=\
    /src/testDMtimer.d \


    #每个子目录都必须提供用于构建其贡献的源的规则
    SRC/%.o:../src/%.c
    @echo 'building file:$<'(构建文件:$<')
    @echo '调用:Cross GCC 编译器'
    /mnt/big1/opt/ti-kernel/yakbuild/dl/gcc-linaro-4.9-2016.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc -O0 -Wall -c -fmessage-length=0 -MMD -MP -Mf"$(@:%.o=%.d)"-MT"$(@:%.o=%.d)"-o "$@""$"
    @回声"完工建筑:$<"
    @回波''


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

    我无法在您的配置中找到内核目录设置。 我建议您查看链接的讨论:
    stackoverflow.com/.../proper-makefile-setup-for-external-kernel-modules
    请注意 KERNELRELEASE 和 KERNELDIR 变量。

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

    这是否意味着我必须将程序编译为模块?
    我希望将其整合到用户空间程序中、这是不可能的?

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

    当然、也可以将程序编译为用户空间程序。

    BR
    Tsvetolin Shulev