Rzv2l M33 i2c error undefined reference to `xSemaphoreTakeRecursive

I 'm  facing compilation error on M33-FreeRTOS code for communicating a IR sensor on RZ/V2L board.

 After integrating Sensor driver code(mlx90632 driver files)

I am getting a error in a completely different file  rm_comms_i2c_driver_rz.c.

undefined reference to `xSemaphoreTakeRecursive

Building target: rzv2l_cm33_rpmsg_demo.elf

c:/program files (x86)/gnu tools arm embedded/9 2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: ./rzv/fsp/src/rm_comms_i2c/rm_comms_i2c_driver_rz.o: in function `rm_comms_i2c_os_recursive_mutex_acquire':

C:\Users\Abhinav\OneDrive\Documents\Rzv2l\r01an6238ej0111-rzv2l-cm33-multi-os-pkg\rzv2l_cm33_rpmsg_demo\Debug/../rzv/fsp/src/rm_comms_i2c/rm_comms_i2c_driver_rz.c:355: undefined reference to `xSemaphoreTakeRecursive'

c:/program files (x86)/gnu tools arm embedded/9 2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: ./rzv/fsp/src/rm_comms_i2c/rm_comms_i2c_driver_rz.o: in function `rm_comms_i2c_os_recursive_mutex_release':

C:\Users\Abhinav\OneDrive\Documents\Rzv2l\r01an6238ej0111-rzv2l-cm33-multi-os-pkg\rzv2l_cm33_rpmsg_demo\Debug/../rzv/fsp/src/rm_comms_i2c/rm_comms_i2c_driver_rz.c:376: undefined reference to `xSemaphoreGiveRecursive'

collect2.exe: error: ld returned 1 exit status

make: *** [makefile:111: rzv2l_cm33_rpmsg_demo.elf] Error 1

"make -r -j8 all" terminated with exit code 2. Build might be incomplete.

Below is my configuration.xml

Also dtsi file has 3 i2c interfaces marked as "disabled". Do I need to remove these dtsi entries completely.

Parents Reply
  • Thanks, solved my compile issue.

    Earlier I tried modifying the FreeRTOSConfig.h  But it was getting over written. After doing changes via the Smart Configurator it has compiled successfully.

    Below are the changes that I have done.

    Now the code is compiling. 

    However I am facing error while doing a i2c_read operation.

    While executing this line : 

    uint32_t iic_clk = p0_clk / (1U << p_ctrl->p_reg->ICMR1_b.CKS);

     

    This gives error and goes into 

    upon further investigating it seems the p_ctrl->p_reg->ICMR1_b.CKS is NULL/not defined  below is the screen shot.

    Any clue in this direction will be helpful!!!.

    Thanks

    Abhinav

Children
No Data