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.

How do I build (linear) assembly files that I add to DVRRDK OSD example?

Hi all,

    I have a  file with suffix .sa, and I want to include the file into the OSD example.

    How can I add the .sa file to the example?

Many thanks,

Jin-Yi Wu

  • Compiler is smart enough to dstinguish between C and sa files.

    Just include the sa file in the file of SRC_FILES.mk in the folder.

    Regards,

    Venu

  • Hi Venu,

    I added a linear assembly file, dotpd.sa, to SRC_FILES.mk, but it shows

    error: option -fc is missing its parameter 'filename'
    make[2]: *** No rule to make target `dotpd.sa', needed by `/usr/src/DVRRDK_01.06.00.11/
    dvr_rdk/../dvr_rdk/build/mcfw/src_bios6/lib/ti816x-evm/c6xdsp/release/dvr_rdk_bios6.ae674'.  
    Stop.

    when I make the project.

    Do I do anything wrong?

    Many thanks,

    Curtis

  • Hi Curtis,

    This kind of warning comes when the src file specified is not in the folder specified in the .mk file.

    Remember all the paths specified are relative.

  • Hi Venugopala,

    I put the .sa file and other .c files in the same folder. The .c files are complied successfully, while the .sa file is not.

    Since the .c files can be complied, then I think the .sa file is in the right folder.

    However, I found that there is another message while compiling the .sa file as follows:

    /usr/src/DVRRDK_01.06.00.11/dvr_rdk/../dvr_rdk/makerules/rules_c674.mk:160: target `dotpd.sa' doesn't match the target pattern
    # Compiling ti816x-evm:c6xdsp:release:dvr_rdk_bios6:
    error: option -fc is missing its parameter 'filename'
    make[2]: *** No rule to make target `dotpd.sa', needed by `/usr/src/DVRRDK_01.06.00.11/dvr_rdk/../dvr_rdk/build/mcfw/src_bios6/lib/ti816x-evm/c6xdsp/release/dvr_rdk_bios6.ae674'. Stop.

    And I found that it uses -fc as the compile option in rules_c674.mk. According to SPRU187T (TMS320C6000 Optimizing Compiler v 7.3 User's Guide), -fc means "Identifies filename as a C source file regardless of its extension."

    Does the option cause the error? If so, how do I modify it?

    Many Thanks,

    Jin-Yi Wu

  • Leave the build flow in the RDK for a while.

    Can you try compiling the linear assembly standlone some thing like:

    >CGTOOLS_PATH/c6000/bin/cl6x.exe dotpd.sa

  • Yes,

    I use "/bin/cl6x.exe -mv6740 dotpd.sa" to compile the .sa file and successfully create the dotpd.obj file.

    Regards,

    Jin-Yi Wu

  • Then u need to see how to change the rules_c674.mk to take the linear assembly files in the build flow of RDK.

  • Hi Venugopala,

        I tried and failed. I think the problem is 

    $(OBJ_PATHS): $(OBJDIR)/%.$(OBJEXT): %.c
    $(ECHO) \# Compiling $(PLATFORM):$(CORE):$(PROFILE_$(CORE)):$(APP_NAME)$(MODULE_NAME): $<
    $(CC) -ppd=$(DEPFILE).P $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $<
    $(CC) $(_CFLAGS) $(INCLUDES) $(CFLAGS_DIROPTS) -fc $<

    in rules_c764.mk. But I can not figure out how to solve the problem.

        Do you have any idea?

    Many thanks,

    Jin-Yi Wu

  • HI Venugopala:

        One of my customer had met the same problem, could you pls help on this.

       Another question is :

          Since customer met problem same as above, they tried to compile the alg into lib file, and then include it in dvrrdk. They tested with vlib.l64p, adding in below way:

    LIB_PATHS += $(RTSLIB_PATH)  \
                 $(fc_INCLUDE)/ti/sdo/fc/ecpy/lib/debug/ecpy.ae674 \
                 $(dvr_rdk_PATH)/mcfw/src_bios6/alg/scd/lib/scd.ae674  \
                 $(dvr_rdk_PATH)/mcfw/src_bios6/alg/scd/lib/vlib.l64p

         The compilation had no problem, but when calling functions in vlib.l64p, it prompt error.

         but if using any other lib has the suffix .ae674, then calling functions would be successfully.

         so could you explain:

    1. how to include lib file?

    2. what is the difference between ae674, oe674, l64p, x64P, .lib, and some other lib file format?

    Great thanks!

    Sheng

    Catalog DSPs FAE