Debug Connection Error in ARM development studio

Hi, I am using ULINKpro D and JTAG connection to program a Cortex M7 baremetal device. 
Although ULINKpro D seems to be installed correctly (device manager - USB) and the connection between ULINKpro D and my DU seems okay, I cannot connect the debugger and this page shows up;


Also I get an error in Console:

Unable to connect to device ARMCS-DP



I tried a couple of changes and I have this error as well:

Detected number of devices = 136, maximum allowed = 128. This problem is usually a result of the scanchain not acting correctly when using JTAG scans to count the number of devices.


Does anyone know how to solve it?
The only thing that has to be mentioned is that I am using 20 to 20 pin adaptor provided in the package of ULINKpro D.

Thanks & regards 

Parents
  • Hi

    My name is Stephen and I work at Arm.

    Are you sure that your program starts and completes correctly?  To check, I suggest you place breakpoints at __main, main() and on the final "return 0", then run to each breakpoint in turn.  When compiling/debugging, use a low optimization level (e.g. -O0) as a starting point.

    On reset, Arm processors in general need to execute some startup code to setup the Stack Pointer, vector table, MPU, etc.  Do you have any startup code?

    Please take a look at the ready-made Examples that are provided in Arm DS.  There is an example for Cortex-M7 named "startup_Cortex-M7_AC6".  This starts a timer by writing to a volatile memory-mapped register, in a similar way to what you are trying now.

    You can import the examples into your workspace as follows:

    1. Select File > Import... to open the Import Selection dialog
    2. Expand the Arm Development Studio group and select Examples and Programming Libraries [Next]
    3. Expand the Examples group to view the example categories
    4. Either select one (or more) of the example categories to import, or expand the example categories to view/select individual examples in each category.  You can also search for e.g. "startup_Cortex-M7_AC6".
    5. Click Finish to import the selected examples into your workspace.

    Hope this helps

    Stephen

Reply
  • Hi

    My name is Stephen and I work at Arm.

    Are you sure that your program starts and completes correctly?  To check, I suggest you place breakpoints at __main, main() and on the final "return 0", then run to each breakpoint in turn.  When compiling/debugging, use a low optimization level (e.g. -O0) as a starting point.

    On reset, Arm processors in general need to execute some startup code to setup the Stack Pointer, vector table, MPU, etc.  Do you have any startup code?

    Please take a look at the ready-made Examples that are provided in Arm DS.  There is an example for Cortex-M7 named "startup_Cortex-M7_AC6".  This starts a timer by writing to a volatile memory-mapped register, in a similar way to what you are trying now.

    You can import the examples into your workspace as follows:

    1. Select File > Import... to open the Import Selection dialog
    2. Expand the Arm Development Studio group and select Examples and Programming Libraries [Next]
    3. Expand the Examples group to view the example categories
    4. Either select one (or more) of the example categories to import, or expand the example categories to view/select individual examples in each category.  You can also search for e.g. "startup_Cortex-M7_AC6".
    5. Click Finish to import the selected examples into your workspace.

    Hope this helps

    Stephen

Children