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.

CC2564CSTBTBLESW: Compile Errors when using the lib built from Flexible Build Library in Bluetopia

Part Number: CC2564CSTBTBLESW
Other Parts Discussed in Thread: CC2564C

Hi,

I am trying to reduce the flash and RAM usage of the Bluetopia stack and have followed the steps described in the Using the Flexible Build Library.pdf, which comes together in the CC2564CSTBTBLESW (v4.2.1.0). It generates the two .a library files but I have compile errors when using them. I would describe the details in below and hope someone would share some ideas on it.

1. Hardware and stack: I am using the chip CC2564C and the CC2564CSTBTBLESW (v4.2.1.0) stack for STM32. The application is based on classic HID demo from the stack and only HID device is in needed.

2. I have followed the steps described in the Using the Flexible Build Library, and as only the HID device mode is needed, the command line in used for the Perl script is:

fbl_iar.pl 32_M4 --hiddevice

It generates two files which are \generated_libs\lib\ewarm\FreeRTOS\Bluetopia_32_M4.a and \generated_libs\profiles\hid\lib\ewarm\SS1BTHID_32_M4.a. I have hence configured the IAR project to use these two libraries but received the following compile errors:

Error[Li005]: no definition for "TWUART_Initialize" [referenced from HCIComm_32_M4.o(Bluetopia_32_M4.a)]
Error[Li005]: no definition for "TWUART_Shutdown" [referenced from HCIComm_32_M4.o(Bluetopia_32_M4.a)]
Error[Li005]: no definition for "TWUART_Reconfigure" [referenced from HCIComm_32_M4.o(Bluetopia_32_M4.a)]
Error[Li005]: no definition for "TWUART_Resynchronize" [referenced from HCIComm_32_M4.o(Bluetopia_32_M4.a)]
Error[Li005]: no definition for "TWUART_TransmitBytes" [referenced from HCIComm_32_M4.o(Bluetopia_32_M4.a)]
Error[Li005]: no definition for "TWUART_ReceiveBytes" [referenced from HCIComm_32_M4.o(Bluetopia_32_M4.a)]
Error[Li005]: no definition for "InitializeCertificateModule" [referenced from BSC_32_M4.o(Bluetopia_32_M4.a)]
Error[Li005]: no definition for "GetCertLength" [referenced from BSC_32_M4.o(Bluetopia_32_M4.a)]
Error[Li005]: no definition for "GetCertPtr" [referenced from BSC_32_M4.o(Bluetopia_32_M4.a)]
Error[Li005]: no definition for "GetCertCurrentDate" [referenced from BSC_32_M4.o(Bluetopia_32_M4.a)]
Error[Li005]: no definition for "GetAccess" [referenced from BSC_32_M4.o(Bluetopia_32_M4.a)]
Error[Li005]: no definition for "CleanupCertificateModule" [referenced from BSC_32_M4.o(Bluetopia_32_M4.a)]
Error[Li005]: no definition for "ECDH_calc_init" [referenced from GAPLE_Empty_32_M4.o(Bluetopia_32_M4.a)]
Error[Li005]: no definition for "ECDH_Get_Local_Keys" [referenced from GAPLE_Empty_32_M4.o(Bluetopia_32_M4.a)]
Error[Li005]: no definition for "ECDH_calc_pair" [referenced from GAPLE_Empty_32_M4.o(Bluetopia_32_M4.a)]


It looks the built libraries doesn't really contain everything it needs. Some of these errors can be fixed by adding extra .o files from \lib_fbl\Objects but with the last three errors left:

Error[Li005]: no definition for "ECDH_calc_init" [referenced from GAPLE_Empty_32_M4.o(Bluetopia_32_M4.a)] 
Error[Li005]: no definition for "ECDH_Get_Local_Keys" [referenced from GAPLE_Empty_32_M4.o(Bluetopia_32_M4.a)] 
Error[Li005]: no definition for "ECDH_calc_pair" [referenced from GAPLE_Empty_32_M4.o(Bluetopia_32_M4.a)]

I would appreciate anyone share some idea on how to fix the error or on how to generate the libraries with only HID device. 

Any input is highly appreciated. 

  • The BT stack expert will get back to you shortly..

    Thanks
  • Thanks Hari. Do you have any update?

  • Hi Hair, do you have any updates? Can you suggest someone who I can ask for help?
  • Jinkang,

    It appears there were some libraries missing from the build that was released, I have updated the build scripts to make sure the missing libraries are now included. I will have an update for you once I test and confirm that the updated script has the necessary libraries.

  • I confirm the same, using the FBL for the SPPLE does bring exactly the same kind of errors with links missing to some routines that are nowhere appearing:

    Error[Li005]: no definition for "InitializeCertificateModule" [referenced from BSC_16_M4.fp_HW_FP.o(Bluetopia_16_M4.fp_HW_FP.a)]
    Error[Li005]: no definition for "GetCertLength" [referenced from BSC_16_M4.fp_HW_FP.o(Bluetopia_16_M4.fp_HW_FP.a)]
    Error[Li005]: no definition for "GetCertPtr" [referenced from BSC_16_M4.fp_HW_FP.o(Bluetopia_16_M4.fp_HW_FP.a)]
    Error[Li005]: no definition for "GetCertCurrentDate" [referenced from BSC_16_M4.fp_HW_FP.o(Bluetopia_16_M4.fp_HW_FP.a)]
    Error[Li005]: no definition for "GetAccess" [referenced from BSC_16_M4.fp_HW_FP.o(Bluetopia_16_M4.fp_HW_FP.a)]
    Error[Li005]: no definition for "CleanupCertificateModule" [referenced from BSC_16_M4.fp_HW_FP.o(Bluetopia_16_M4.fp_HW_FP.a)]

    Please advice when the fix is done, the SPPLE stack as it is in the demo is way too big with the server + client, we need the server only.

    Thanks

  • Jinkang and Florent,

    Waiting on final changes to be made on the library build scripts, but if you would like, send me a private message through E2E and I can send you the necessary object files that you can include manually in your project, so that you don't need to wait for the new build scripts.

  • Hi DFZ, I sent you a 'friend request' if it is the way to get your contact and send you an E2E message. Also please let me know if the objects are the same for noRTOS and freeRTOS? Or you will provide both config? Thanks again