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.

TDA4VM: Compilation Error Using FFTLIB – Undefined Identifiers

Part Number: TDA4VM
Other Parts Discussed in Thread: FFTLIB

Tool/software:

Hello,

I am trying to use the FFTLIB on the C71x DSP from the TDA4VM. To test the library, I created a simple project with only a main function and included the FFTLIB headers. I am using Code Composer Studio (CCS) and have configured the project settings according to the documentation.

However, when I try to build the project, I get the following compilation errors:

"C:\ti\ti-processor-sdk-rtos-j721e-evm-10_00_00_05\fftlib\src\common/FFTLIB_types.h", line 393: error #20: identifier "__HWA_CONFIG_REG_v1" is undefined
"C:\ti\ti-processor-sdk-rtos-j721e-evm-10_00_00_05\fftlib\src\common/FFTLIB_types.h", line 395: error #20: identifier "__HWA_CONFIG_REG_v1" is undefined
"C:\ti\ti-processor-sdk-rtos-j721e-evm-10_00_00_05\fftlib\src\common/FFTLIB_types.h", line 396: error #20: identifier "__HWA_CONFIG_REG_v1" is undefined
"C:\ti\ti-processor-sdk-rtos-j721e-evm-10_00_00_05\fftlib\src\common/FFTLIB_types.h", line 397: error #20: identifier "__HWA_CONFIG_REG_v1" is undefined
"C:\ti\ti-processor-sdk-rtos-j721e-evm-10_00_00_05\fftlib\src\common/FFTLIB_types.h", line 398: error #20: identifier "__HWA_CONFIG_REG_v1" is undefined
"C:\ti\ti-processor-sdk-rtos-j721e-evm-10_00_00_05\fftlib\src\common/FFTLIB_types.h", line 400: error #20: identifier "__HWA_CONFIG_REG_v1" is undefined
"C:\ti\ti-processor-sdk-rtos-j721e-evm-10_00_00_05\fftlib\src\common/FFTLIB_types.h", line 401: error #20: identifier "__HWA_CONFIG_REG_v1" is undefined
"C:\ti\ti-processor-sdk-rtos-j721e-evm-10_00_00_05\fftlib\src\common/FFTLIB_types.h", line 402: error #20: identifier "__HWA_CONFIG_REG_v1" is undefined
"C:\ti\ti-processor-sdk-rtos-j721e-evm-10_00_00_05\fftlib\src\common/FFTLIB_types.h", line 403: error #20: identifier "__HWA_CONFIG_REG_v1" is undefined
"C:\ti\ti-processor-sdk-rtos-j721e-evm-10_00_00_05\fftlib\src\common/FFTLIB_types.h", line 405: error #20: identifier "__HWA_OFFSET_REG" is undefined
"C:\ti\ti-processor-sdk-rtos-j721e-evm-10_00_00_05\fftlib\src\common/FFTLIB_types.h", line 406: error #20: identifier "__HWA_OFFSET_REG" is undefined
"C:\ti\ti-processor-sdk-rtos-j721e-evm-10_00_00_05\fftlib\src\common/FFTLIB_types.h", line 407: error #20: identifier "__HWA_OFFSET_REG" is undefined
"C:\ti\ti-processor-sdk-rtos-j721e-evm-10_00_00_05\fftlib\src\common/FFTLIB_types.h", line 408: error #20: identifier "__HWA_OFFSET_REG" is undefined

It looks like these identifiers (__HWA_CONFIG_REG_v1, __HWA_OFFSET_REG, etc.) are missing. I suspect there might be a missing dependency or preprocessor definition.

Additional Information:

  • Processor: C71x (TDA4VM)
  • SDK Version: ti-processor-sdk-rtos-j721e-evm-10_00_00_05
  • IDE: Code Composer Studio
  • Project Configuration: I have added the FFTLIB include paths and linked the necessary libraries in the project properties.

Questions:

  1. Do I need to include any additional headers or define specific macros to use FFTLIB properly?
  2. Is there a dependency (e.g., HWA or another library) that must be included for FFTLIB to work?

Any guidance would be greatly appreciated. Thanks in advance!

  • Hi,

    It looks like this is the continuation of your previous thread, TDA4VM: Issues Using FFTLIB on DSP C71x of TDA4VM with TI Processor SDK RTOS.

    Can you share the cmake configuration for your simple project?

    Thanks.

  • Hi,

    Thanks for your response!

    This is indeed related to my previous thread. I was able to resolve the build issues when using CMake, but I am still facing issues when trying to use FFTLIB directly in Code Composer Studio (CCS).

    Regarding your question, my project does not use a manually created CMake configuration. Instead, I am using the build system automatically generated by CCS. The project is configured to link against the FFTLIB library, and the makefile generated by CCS contains the following settings:

    ################################################################################
    # Automatically-generated file. Do not edit!
    ################################################################################
    
    SHELL = cmd.exe
    
    CG_TOOL_ROOT := C:/ti/ti-processor-sdk-rtos-j721e-evm-10_00_00_05/ti-cgt-c7000_4.1.0.LTS
    
    GEN_OPTS__FLAG := 
    GEN_CMDS__FLAG := 
    
    ORDERED_OBJS += \
    "./main.obj" \
    "../lnk.cmd" \
    $(GEN_CMDS__FLAG) \
    -llibc.a \
    -l"C:/ti/ti-processor-sdk-rtos-j721e-evm-10_00_00_05/fftlib/lib/Debug/FFTLIB_C7100.lib" \
    
    -include ../makefile.init
    
    RM := DEL /F
    RMDIR := RMDIR /S/Q
    
    # All of the sources participating in the build are defined here
    -include sources.mk
    -include subdir_vars.mk
    -include subdir_rules.mk
    -include objects.mk
    
    ifneq ($(MAKECMDGOALS),clean)
    ifneq ($(strip $(C55_DEPS)),)
    -include $(C55_DEPS)
    endif
    ifneq ($(strip $(C_UPPER_DEPS)),)
    -include $(C_UPPER_DEPS)
    endif
    ifneq ($(strip $(S67_DEPS)),)
    -include $(S67_DEPS)
    endif
    ifneq ($(strip $(S62_DEPS)),)
    -include $(S62_DEPS)
    endif
    ifneq ($(strip $(S_DEPS)),)
    -include $(S_DEPS)
    endif
    ifneq ($(strip $(OPT_DEPS)),)
    -include $(OPT_DEPS)
    endif
    ifneq ($(strip $(C??_DEPS)),)
    -include $(C??_DEPS)
    endif
    ifneq ($(strip $(ASM_UPPER_DEPS)),)
    -include $(ASM_UPPER_DEPS)
    endif
    ifneq ($(strip $(S??_DEPS)),)
    -include $(S??_DEPS)
    endif
    ifneq ($(strip $(C64_DEPS)),)
    -include $(C64_DEPS)
    endif
    ifneq ($(strip $(CXX_DEPS)),)
    -include $(CXX_DEPS)
    endif
    ifneq ($(strip $(S64_DEPS)),)
    -include $(S64_DEPS)
    endif
    ifneq ($(strip $(INO_DEPS)),)
    -include $(INO_DEPS)
    endif
    ifneq ($(strip $(CLA_DEPS)),)
    -include $(CLA_DEPS)
    endif
    ifneq ($(strip $(S55_DEPS)),)
    -include $(S55_DEPS)
    endif
    ifneq ($(strip $(SV7A_DEPS)),)
    -include $(SV7A_DEPS)
    endif
    ifneq ($(strip $(C62_DEPS)),)
    -include $(C62_DEPS)
    endif
    ifneq ($(strip $(C67_DEPS)),)
    -include $(C67_DEPS)
    endif
    ifneq ($(strip $(PDE_DEPS)),)
    -include $(PDE_DEPS)
    endif
    ifneq ($(strip $(K_DEPS)),)
    -include $(K_DEPS)
    endif
    ifneq ($(strip $(C_DEPS)),)
    -include $(C_DEPS)
    endif
    ifneq ($(strip $(CC_DEPS)),)
    -include $(CC_DEPS)
    endif
    ifneq ($(strip $(C++_DEPS)),)
    -include $(C++_DEPS)
    endif
    ifneq ($(strip $(C43_DEPS)),)
    -include $(C43_DEPS)
    endif
    ifneq ($(strip $(S43_DEPS)),)
    -include $(S43_DEPS)
    endif
    ifneq ($(strip $(ASM_DEPS)),)
    -include $(ASM_DEPS)
    endif
    ifneq ($(strip $(S_UPPER_DEPS)),)
    -include $(S_UPPER_DEPS)
    endif
    ifneq ($(strip $(CPP_DEPS)),)
    -include $(CPP_DEPS)
    endif
    ifneq ($(strip $(SA_DEPS)),)
    -include $(SA_DEPS)
    endif
    endif
    
    -include ../makefile.defs
    
    # Add inputs and outputs from these tool invocations to the build variables 
    EXE_OUTPUTS += \
    Teste_c71x_fft.out 
    
    EXE_OUTPUTS__QUOTED += \
    "Teste_c71x_fft.out" 
    
    
    # All Target
    all: $(OBJS) $(CMD_SRCS) $(GEN_CMDS)
    	@$(MAKE) --no-print-directory -Onone "Teste_c71x_fft.out"
    
    # Tool invocations
    Teste_c71x_fft.out: $(OBJS) $(CMD_SRCS) $(GEN_CMDS)
    	@echo 'Building target: "$@"'
    	@echo 'Invoking: C7000 Linker'
    	"C:/ti/ti-processor-sdk-rtos-j721e-evm-10_00_00_05/ti-cgt-c7000_4.1.0.LTS/bin/cl7x" --advice:performance=all -g --diag_warning=225 --diag_wrap=off --display_error_number -z -m"Teste_c71x_fft.map" -i"C:/ti/ti-processor-sdk-rtos-j721e-evm-10_00_00_05/ti-cgt-c7000_4.1.0.LTS/lib" -i"C:/ti/ti-processor-sdk-rtos-j721e-evm-10_00_00_05/ti-cgt-c7000_4.1.0.LTS/include" -i"C:/ti/ti-processor-sdk-rtos-j721e-evm-10_00_00_05/fftlib/lib/Debug" --reread_libs --diag_wrap=off --display_error_number --warn_sections --xml_link_info="Teste_c71x_fft_linkInfo.xml" --rom_model -o "Teste_c71x_fft.out" $(ORDERED_OBJS)
    	@echo 'Finished building target: "$@"'
    	@echo ' '
    
    # Other Targets
    clean:
    	-$(RM) $(EXE_OUTPUTS__QUOTED)
    	-$(RM) "main.obj" 
    	-$(RM) "main.d" 
    	-@echo 'Finished clean'
    	-@echo ' '
    
    .PHONY: all clean dependents
    .SECONDARY:
    
    -include ../makefile.targets
    
    

    Let me know if you need any additional details.

    Thanks!

  • Hi ,

    Thanks for the update. I will check into it and reply soon.

    Regards,
    Sivadeep P R

  • Hi ,

    Have you selected the MMA version. If not please select option 1.



    After that check the summary of flags set and verify whether MMA path is set or not.

    Regards,
    Sivadeep

  • Hi,

    Oh, I don't know how I hadn't seen that before! I've selected it, and it worked!

    Thanks again for your help, really appreciate it!

    Regards,
    Heverton