[PATCH rtems-docs v2] User/BSPs/Beagle: Add JTAG debugger section

Christian Mauderer oss at c-mauderer.de
Tue Mar 30 07:22:40 UTC 2021


Hello Gedare and Chris,

thanks for the review. I pushed the patch.

Best regards

Christian

Am 30.03.21 um 09:19 schrieb Chris Johns:
> And me. Thanks.
> 
> Chris
> 
> On 30/3/21 7:47 am, Gedare Bloom wrote:
>> looks fine to me
>>
>> On Mon, Mar 29, 2021 at 1:12 PM Christian Mauderer <oss at c-mauderer.de> wrote:
>>>
>>> ---
>>>   user/bsps/arm/beagle.rst | 67 ++++++++++++++++++++++++++++++++++++++--
>>>   1 file changed, 65 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/user/bsps/arm/beagle.rst b/user/bsps/arm/beagle.rst
>>> index ac49b1c..5789bb8 100644
>>> --- a/user/bsps/arm/beagle.rst
>>> +++ b/user/bsps/arm/beagle.rst
>>> @@ -102,8 +102,8 @@ The function prototype is given below:
>>>          rtems_vector_number irq
>>>       );
>>>
>>> -Debugging
>>> ----------
>>> +Debugging using libdebugger
>>> +---------------------------
>>>
>>>   RTEMS's ``libdebugger`` requires the ARM debug resources be enabled for it to
>>>   work. The TI SOC used on the ``beagleboneblack`` board provides no access for
>>> @@ -162,3 +162,66 @@ If ``libdebugger`` fails to detect the registers open the ``bspdebug.c``
>>>   source and change ``has_tdo`` to ``1``, save then rebuild and install the
>>>   BSP. This will turn on an internal feeback to check the JTAG logic. Discard
>>>   the edit once the hardware is working.
>>> +
>>> +Debugging Beagle Bone Black using a JTAG debugger and gdb
>>> +---------------------------------------------------------
>>> +
>>> +Debugging a Beagle Bone Black (or variants) is also possible using a hardware
>>> +JTAG debugger. The JTAG is available via P2. The footprint is for an ARM 20 pin
>>> +cTI connector. That connector should be used, if it is necessary to have access
>>> +to commercially available adapters.
>>> +
>>> +For hand-made cables and adapters a standard 1.27mm pitch header and a 0.635mm
>>> +ribbon cable can be much cheaper. But note that even if it looks compatible,
>>> +it's not the same pin out as a ARM Cortex 20 pin connector!
>>> +
>>> +A lot of JTAG adapters that are working together with OpenOCD will work. There
>>> +are also commercially available systems (like Segger J-Link) that work well with
>>> +the Beagle. Note that the JTAG debugger has to be compatible with ARM Cortex A8.
>>> +Cortex M only debuggers (like the Segger J-Link Edu Mini) won't work.
>>> +
>>> +If the debugger offers a gdb server (like OpenOCD or Segger J-Link) the
>>> +following gdb start script can be used:
>>> +
>>> +.. code-block::
>>> +
>>> +    define reset
>>> +            echo -- Reset target and wait for U-Boot to start kernel.\n
>>> +            monitor reset
>>> +            # RTEMS U-Boot starts at this address.
>>> +            tbreak *0x80000000
>>> +            # Linux starts here.
>>> +            tbreak *0x82000000
>>> +            continue
>>> +
>>> +            echo -- Disable watchdog.\n
>>> +            set *(uint32_t*)0x44e35048=0xAAAA
>>> +            while (*(uint32_t*)0x44e35034 != 0)
>>> +            end
>>> +            set *(uint32_t*)0x44e35048=0x5555
>>> +            while (*(uint32_t*)0x44e35034 != 0)
>>> +            end
>>> +
>>> +            echo -- Overwrite kernel with application to debug.\n
>>> +            load
>>> +    end
>>> +
>>> +    target remote :2331
>>> +
>>> +Note that you might have to replace the ``monitor reset`` by some other command
>>> +that resets the target using your specific debugger. You also have to replace
>>> +the ``target remote :2331`` to match the port of your gdb server.
>>> +
>>> +The script expects that the Beagle Bone Black starts some application from an SD
>>> +card or from eMMC. It defines a ``reset`` command that does the following:
>>> +
>>> + * reset the target
>>> + * let U-Boot run, initialize the base system, load an FDT and an application
>>> + * break at the application entry point
>>> + * disable the watchdog
>>> + * overwrite the application that has been loaded by U-Boot with the application
>>> +   provided as an command line argument to gdb
>>> +
>>> +This method has the advantage that the application is executed in nearly the
>>> +same environment like it would be executed if loaded by U-Boot directly (except
>>> +for the watchdog).
>>> --
>>> 2.30.2
>>>
>>> _______________________________________________
>>> devel mailing list
>>> devel at rtems.org
>>> http://lists.rtems.org/mailman/listinfo/devel
>> _______________________________________________
>> devel mailing list
>> devel at rtems.org
>> http://lists.rtems.org/mailman/listinfo/devel
>>
> 


More information about the devel mailing list