3 Replies Latest reply on Nov 28, 2018 9:43 PM by GyanC_36

    Fixed stack bootloader stuck while bonding

      Hello,

       

      I'm adding the fixed stack bootloader to my application which worked fine so I could build and flash the new project. I'm using the CYBELE-212006-01.

      I can connect to it but when I select the Bootloader Service the CySmart application gets stuck while trying to bond. The device apears 3 time with different adress inthe serch but two of them don't even have teh Bootloader Service.

      Where could I have gone wrong?

       

      -Matthias

        • 1. Re: Fixed stack bootloader stuck while bonding
          GyanC_36

          Could you please elaborate the steps ,you are doing exactly and share the project?

           

           

          Your statement "I can connect to it but when I select the Bootloader Service the CySmart application gets stuck while trying to bond. The device apears 3 time with different adress inthe serch but two of them don't even have teh Bootloader Service."  is really confusing.

           

          -> If you have flashed the Bootloader project and want to upgrade the application firmware, just select the device name ( Bootloader Project) in CySmart and Click on ' Upgrade Firmware ' -> Give the .CYACD file of Application project and upgrade the application firmware. You really do not need to connect the Bootloader device with CySmart and discovery of the services for Bootloader Project.

           

           

          -Gyan

          • 2. Re: Fixed stack bootloader stuck while bonding

            I added the Fixed Stack Bootloader example to my projekt took the ble component fom the projekt and placed it in the Bootloader instead of the already exsisting ble component. Changed the role to Client and Server and Peripheral and Central, the name to Fixed Stack OTA and added the bootloader service wit the data size of 137. Configurated the Script for my 256 row size. Then I created the LinkerScripts folder, midofied the mk.bat file in row 28 and 30 to the right targets and executed it. After that I opened in a different window the Ble OTA Fixed Stack Bootalbe example, created an LinkerScript folder in in PSoC Creater for my projekt and copied the scripts from the bootable example to my projekt. I modified those aswell for my 256 row size. After that I copied the bootalbe component to my projekt and the headers of common, main, ota_mandatory, ota_optional, CyBLE and options awell as the c files of ota_madatory. In the main.c I added

             

            #if !defined(__ARMCC_VERSION)

            InitializeBootloaderSRAM();

            #endif

             

            and #define CYREG_SRSS_TST_DDFT_CTRL 0x40030008

             

            aswell as

             

            case: CYBLE_EVT_STACK_ON:

            CY_SET_XTND_REG32((void CYFAR *)(CYREG_BLE_BLESS_RF_CONFIG), 0x0331);

            CY_SET_XTND_REG32((void CYFAR *)(CYREG_SRSS_TST_DDFT_CTRL), 0x80000302);

             

            and added in Build Settings -> Central-> ARM GCC ... -> Linker -> Gerneral in Additional Library Directories .\LinkerScripts awell in Custom Linker Script .\LinkerScripts\cm0gcc.ld. To add CyBle.h I went under Project -> Build Settings -> ARM GCC... -> Compiler -> General ->  Additional Inlcude Directories CyBle(.\CyBle).

             

            When I connect to the device through CySmart there is no option to just upgread the application. But after I select the Blootloader Service I can see that there is an option of Application Uprade in the background but I can't reach it because its stuck in Bonding process.

            • 3. Re: Fixed stack bootloader stuck while bonding
              GyanC_36

              Can you share your project so that I can test it ?

               

              If the device is already paired with your SmartPhone, first unpair and then connect and update the firmware.  

               

              -Gyan