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.

CC1312R: Including header causing make file error

Part Number: CC1312R

I made a basic header and source file. The source file calls the header with #include "i2cBackbone.h" and contains a sample, basic method that is also declared in the header file. However when I build, I get this error:

gmake: *** No rule to make target '../i2cBackbone.c ../i2cBackbone.h', needed by 'i2cBackbone.o'.

What I'm confused is that this program builds successfully when I clean the project and I can step through, but when I build without cleaning (clean then build then build again), I get the above error. My debugger mode is in Debug and not Debug_TI(1) or Debug_TI(2). What could be a cause?

  • Hi Michael,

    Are you starting with an example from the SDK? I would recommend you start e.g. with the drivers/empty example. 

    Cheers,

    Marie H.

  • I'm seeing the same issue. It looks like the dependency files (<source>.d) sometimes contain two entries in a single line, like this:

    main.d:

     ...
     ...
     syscfg/ti_board_config.h \
     syscfg/ti_drivers_config.h \
     ../hello_world.h\ ../dummy.h

    When I make a change to the corresponding source file, I get the compiler error mentioned by Michael:

    gmake: *** No rule to make target '../hello_world.h ../dummy.h', needed by 'main.o'.

    This happens for me with TI MCU+ SDK 07.03.02.13, CCS 10.3.1 and TI ARM Clang 1.3.0 on Windows. I'm pretty sure this used to work with earlier combinations of MCU+ SDK, CCS and TI ARM Clang, but I don't know for sure.

    To me this looks like a bug in the dependency file generation.

    Regards,

    Dominic

  • Hi Dominic,

    That's interesting. Can you post the specific steps you did to reproduce?

    Cheers,

    Marie H.

  • Hello Marie,

    I've created a small example based on the mcu_plus_sdk_am64x_08_00_00_21\examples\kernel\dpl\hello_world\am64x-evm\r5fss0-0_freertos\ti-arm-clang example application that comes with MCU+ SDK for AM64x.

    I've added two header files, "helloworld.h" and "dummy.h", both get included by main.c. I've attached a ZIP of the (modified) example project.

    The first time the project compiles just fine.

    If I then make some irrelevant change to main.c, e.g. add an empty line somewhere, or just save the file again, to make sure that make determines that make.o needs to be compiled again, gmake fails with an error very similar to the OP's problem:

    gmake: *** No rule to make target '../hello_world.h ../dummy.h', needed by 'main.o'.
    gmake: Target 'all' not remade because of errors.

    Not sure if this is related, but it looks very similar, so I posted to this thread. From googling it looks like CC1312R might also use tiarmclang. Please tell me if I should create a new thread that specifically mentions MCU+ SDK and AM64x.

    Regards,

    Dominic

    hello_world_am64x-evm_r5fss0-0_freertos_ti-arm-clang.zip

  • Hello Dominic,

    Thank you for the test case. I can reproduce the issue. It looks like an issue with the generated dependency *.d file for the source file. I am investigating further.

    Thanks

    ki

  • I filed a bug for this issue. Tracking ID: https://sir.ext.ti.com/jira/browse/EXT_EP-10448

    Thanks

    ki