3 Replies Latest reply on Aug 22, 2019 7:33 AM by ChMa_4188436

    FX3/CX3 JTAG / J-Link / Segger debugging

    ChMa_4188436

      Can anyone help with a problem I am experiencing using a SEGGER J-Link Debugger with a Denebola CX3 evaluation kit?

       

      I have managed to follow the various advice and can get the debugger to connect and download the example code successfully to the target board

       

      After loading the code, it successfully runs as far as main()

       

      At this point I can use the Eclipse "run to line" command to execute the code in the main() function

       

      However if I try to set a breakpoint and then just "run", the debugger does not stop at the breakpoint (and seems to continue to execute as diagnosed by the fact the camera seems to be sending images over the USB interface)

       

      I have found another discussion thread FX3 JTAG SEGGER that seems to describe the same problem however when I follow the advice of the last post (to set breakpoints at application define function (CyFxApplicationDefine) and at Thread_Entry function (for example - UVCAppThread_Entry in UVC An75779 firmware ) then these breakpoints are NOT triggered.

       

      Having looked around the various discussion forums, there seem to be several reports of this sort of behaviour but I have not yet managed to find a solution so can anyone shed any light to this?

        • 1. Re: FX3/CX3 JTAG / J-Link / Segger debugging
          KandlaguntaR_36

          Hello,

           

          Please check whether you are using latest the Segger drivers and JLinkGDBServerCL.exe

           

          Confirm whether you have followed all the steps mentioned in section 3.1 of EZUsbSuite_UG.pdf. This doc. is available here: C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\doc\firmware

           

          Let me know where did you place the breakpoints and which example firmware and fx3 hardware you are using for the test.

           

          Regards,

          Sridhar

          • 2. Re: FX3/CX3 JTAG / J-Link / Segger debugging
            ChMa_4188436

            Hi Sridar

             

            Many thanks for getting back to me on my query

             

            >> Please check whether you are using latest the Segger drivers and JLinkGDBServerCL.exe

            I am using latest drivers as downloaded from https://www.segger.com/downloads/jlink/

             

            After installation I have…

             

               

            •   Segger driver (“J-Link driver” in device manager reports version 2.70.8.0 dated 02/08/2018)

               

            •   JLinkGDBServerCL.exe reports V6.48b (JLinkARM.dll V6.48b DLL Compiled Aug 2 2019 10:18:25)

             

             

            >> Confirm whether you have followed all the steps mentioned in section 3.1 of EZUsbSuite_UG.pdf. This doc. is available here: C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\doc\firmware

            Yes I have followed the instructions in section 3.1 regarding the use of the Segger J-Link

             

             

            >> Let me know where did you place the breakpoints and which example firmware and fx3 hardware you are using for the test.

            I am using the Denebola RDK and their example code project (CX3RDK_OV5640)

            e-con_CX3RDK_OV5640_Firmware_Package.zip\SDK_1.3.3\See3CAM_CX3RDK_ e-CAM59CX3\CX3RDKOV5640

             

            In the following screen images, if I use the “Run To Line” option, then the debugger will correctly stop at the highlighted line. The debugger console output is attached as SeggerRunToLine.txt

            However if I restart the debugger and then try to set a breakpoint at this same line, and then use the “Run” option, the debugger does not seem to start running (console output only shows “Starting Target CPU…” but nothing more

            At this point I need to exit EZUSB Suite and reset the HW to be able to regain control

             

             

            • 3. Re: FX3/CX3 JTAG / J-Link / Segger debugging
              ChMa_4188436

              After some further testing I have discovered that if I build and run the Cypress GpifToUsb example project that the SEGGER debugger works correctly.

               

              Comparing the Cypress project, I notice that it is configured to be built using the "Cross ARM GCC" toolchain.

              In contrast, the Denebola CX3RDK_OV5640 project calls up the "ARM Windows GCC (Sourcery G++ Lite)" toolchain.

               

              I also noticed that the Denebola sample project has folders for either the 1.3.3 or 1.3.2 SDK versions - however I am running 1.3.4 version on my machine.

               

              Please can you let me know what you think. Is the difference in toolchain or SDK version significant?