+ All Categories
Home > Documents > Bootloader and Linux kernel debugging on ARM board with … · Development Tasks port bootloader...

Bootloader and Linux kernel debugging on ARM board with … · Development Tasks port bootloader...

Date post: 02-Apr-2018
Category:
Upload: builiem
View: 260 times
Download: 1 times
Share this document with a friend
36
mentor.com/automotive Android is a trademark of Google Inc. Use of this trademark is subject to Google Permissions. Linux is the registered trademark of Linus Torvalds in the U.S. and other countries. Qt is a registered trade mark of Digia Plc and/or its subsidiaries. All other trademarks mentioned in this document are trademarks of their respective owners. LVEE 2014 Vladimir Zapolskiy [email protected] Bootloader and Linux kernel debugging on ARM board with OpenOCD
Transcript

mentor.com/automotive

Android is a trademark of Google Inc. Use of this trademark is subject to Google Permissions.Linux is the registered trademark of Linus Torvalds in the U.S. and other countries.

Qt is a registered trade mark of Digia Plc and/or its subsidiaries. All other trademarks mentioned in this document are trademarks of their respective owners.

LVEE 2014Vladimir Zapolskiy

[email protected]

Bootloader and Linux kernel debugging onARM board with OpenOCD

www.mentor.com/embedded

ARM + Linux

www.mentor.com/embedded

Development Tasks

www.mentor.com/embedded

Development Tasks

● port bootloader and Linux kernel to a new ARM SoC

www.mentor.com/embedded

Development Tasks

● port bootloader and Linux kernel to a new ARM SoC● port bootloader and Linux kernel to a new ARM powered board

www.mentor.com/embedded

Development Tasks

● port bootloader and Linux kernel to a new ARM SoC● port bootloader and Linux kernel to a new ARM powered board● add new features of arbitrary nature into bootloader or kernel

www.mentor.com/embedded

Development Tasks

● port bootloader and Linux kernel to a new ARM SoC● port bootloader and Linux kernel to a new ARM powered board● add new features of arbitrary nature into bootloader or kernel● fix a bug in bootloader or kernel

www.mentor.com/embedded

Development Tasks

● port bootloader and Linux kernel to a new ARM SoC● port bootloader and Linux kernel to a new ARM powered board● add new features of arbitrary nature into bootloader or kernel● fix a bug in bootloader or kernel● get understanding how bootloader or kernel works in runtime

www.mentor.com/embedded

Debugging Tools and Methods

www.mentor.com/embedded

Debugging Tools and Methods

● add change, update firmware, test and repeat

www.mentor.com/embedded

Debugging Tools and Methods

● add change, update firmware, test and repeat ● full or partial hardware virtualization

www.mentor.com/embedded

Debugging Tools and Methods

● add change, update firmware, test and repeat ● full or partial hardware virtualization● use special software debugging frameworks

● blinking leds● KGDB over serial line● etc.

www.mentor.com/embedded

Debugging Tools and Methods

● add change, update firmware, test and repeat ● full or partial hardware virtualization● use special software debugging frameworks

● blinking leds● KGDB over serial line● etc.

● software or hardware dumps for connectivity and protocol debugging

www.mentor.com/embedded

Debugging Tools and Methods

● add change, update firmware, test and repeat ● full or partial hardware virtualization● use special software debugging frameworks

● blinking leds● KGDB over serial line● etc.

● software or hardware dumps for connectivity and protocol debugging● boundary scan testing of integrated circuits / IEEE 1149

www.mentor.com/embedded

JTAG / IEEE 1149.x

www.mentor.com/embedded

JTAG / IEEE 1149.x

Too complicated for software developer!

www.mentor.com/embedded

JTAG connector 20 pin

www.mentor.com/embedded

JTAG connector 14 pin

www.mentor.com/embedded

JTAG connector 10 pin

www.mentor.com/embedded

No JTAG connector!

www.mentor.com/embedded

No JTAG connector, alternatives?

www.mentor.com/embedded

No JTAG connector, alternatives?

www.mentor.com/embedded

JTAG circuits

www.mentor.com/embedded

Lauterbach Trace32

www.mentor.com/embedded

Abatron BDI2000/BDI3000

www.mentor.com/embedded

Parallel Port Interface

www.mentor.com/embedded

USB JTAG Dongle

www.mentor.com/embedded

My Favourite USB JTAG Dongle :)

www.mentor.com/embedded

Comparison

Price Usability Speed

ParPort

SoftICE

Lauterbach

BDI3000

USB Dongle

www.mentor.com/embedded

OpenOCD

Host side software, which provides debugging, in­system

programming and boundary­scan testing for embedded devices.

Started as a master diploma, distributed under GPLv2 licence.

Supported interfaces:● parallel port● FTDI FT2232● GPIO over sysfs● many other less popular interfaces

www.mentor.com/embedded

Supported cores by OpenOCD

● ARM7 (ARM7TDMI, ARM720t)● ARM9 (ARM9TDMI, ARM920t, ARM922t, ARM926ejs, ARM966)● ARM11 (ARM1136, ARM1156, ARM1176)● Intel Xscale (PXA25x, PXA26x, PXA27x, IXP42x, IXP45x, IXP46x)● ARM Cortex­A8● ARM Cortex­A9● ARM Cortex­M3● MIPS m4k

www.mentor.com/embedded

OpenOCD configuration

www.mentor.com/embedded

OpenOCD runtime

www.mentor.com/embedded

OpenOCD GDB session

www.mentor.com/embedded

Problems

● only ARM SoCs are supported well, what about other RISCs?● not all target ARM SoCs supported● board support requires additional extensions to a target script● ARM JTAG protocol implementation is not 100% sustainable● … no more obvious problems from user's point of view

www.mentor.com/embedded

Thank You!


Recommended