How to build U-BOOT for JTAG debugging?
Use “make menuconfig” to change:
General Setup -> Optimization Level -> (X) Optimize for debugging
Device Tree Control -> Provider of DTB for DT control -> (X) Embedded DTB for DT control
What is JTAG?
This is a standardized high-speed serial interface, IEEE 1149, widely used for programming and debugging programmable logic and processors. It is non-intrusive, runs regardless of the state of the processor, and gives access to processor registers, memory, and other resources.
What is TAP Controller?
The TAP controller provides access to many of the test support functions built into the JTAG-compliant device. The TAP is a state machine. The state machine controls all operations for one JTAG-compliant device. Each JTAG-compliant device has its own TAP controller. You can sequence through the state machine functions via the TCK and TMS inputs.
What is EmbeddedICE?
EmbeddedICE is an extension to the core architecture and provides the ability to do in-circuit-emulation with deeply embedded cores. The EmbeddedICE macrocell, adds a JTAG TAP controller and breakpoint/watchpoint logic to the ARM microcontroller which can be accessed externally through a JTAG port. Hence, software debug is facilitated by interfacing these JTAG pins of the micro to the host development system containing the ARM software development tools through a JTAG interface device such as PEEDI.
What is PEEDI?
The PEEDI (Powerful Embedded Ethernet Debug Interface) is a debugging and development tool that provides the user the ability to see what is taking place in the target system, and control its behavior. The PEEDI probe provides the debug services that the debugger uses to perform debug operations. It receives command packets over the communication link, and translates them into the JTAG operations that are needed to provide the specific service. First, it can control the operation of the target processor and target system. What does it mean to “control” the target? In most cases it means to start and stop the processor’s execution of instructions at arbitrary points in a program, examine and store values in the processor’s registers, and examine and store program code or data in the target system’s memory.
What is debugging?
Debugging is the process of removing bugs from computer programs. On one end of the spectrum, debugging means staring at your source code until you see the bug. An infinitely more effective method is to use a special program called a “debugger”.
What is a debugger?
A debugger is a program that runs other programs. A debugger lets the user (programmer) stop running the program at any time and poke around internally. You can examine and change memory contents, call functions, and look at system registers. Besides all these fun things, a debugger can be used to fix your programs.
How to set gdb to work with PEEDI?
First compiled your application with the ‘-g -O0’ option to enable debugging. Next start gdb pointing your application:
$ arm-elf-insight myapp
To connect to the target (assuming that you PEEDI is set to use IP 192.168.1.10) type in the console window:
(gdb) target remote 192.168.1.10:2000
This will tell GDB to connect to PEEDI using remote protocol. Now you can load your application into targets memory like this:
And your application is ready for debugging:
(gdb) continue – start the application
(gdb) si – make single step
What is Eclipse?
The Eclipse IDE is a complete integrated development platform similar to Microsoft’s Visual Studio. Originally developed by IBM, it has been donated to the Open-Source community and is now a massive world-wide Open-Source development project.
What is Cygwin?
Cygwin is a free Linux-like environment for Windows. It works on all Windows 32-bit OS versions since Windows 95 except Windows CE. Cygwin is not a way to run native Linux apps on Windows. Applications must be rebuilt from source code to get it running on Windows.
What is Cygwin/X?
Cygwin/X is a port of the X Window System to the Microsoft Windows family of operating systems. Cygwin/X runs on all recent consumer and business versions of Windows; as of 2003-12-27 those versions are specifically Windows 95, Windows 98, Windows Me, Windows NT 4.0, Windows 2000, Windows XP, and Windows Server 2003. For more information see http://x.cygwin.com
What are GNU cross-development tools?
A toolchain is a collection of software tools used for the development and building of software for a particular target architecture. The GNU toolkit consists of the following software utilities:
GCC – an ANSI C compiler
G++ – an ANSI tracking C++ compiler
GDB – source and assembly language command line debugger
GAS – GNU assembler
LD – GNU linker
Insight – a graphical user interface for GDB For more information see http://www.gnu.org
How to enter RedBoot command line?
First restart PEEDI holding front panel buttons pressed, this way RedBoot will not execute its boot script and the main PEEDI application will not be loaded. Then you can access the command line via the RS232 port using suitable terminal application capable of opening the serial PC RS232 port or via telnet connecting to the port specified by the fconfig command
How to update PEEDI firmware?
See “Firmware update procedure”
How to set target configuration file path?
Enter RedBoot command line and use either fconfig or config commands. Example:
How to set the network configuration of PEEDI?
Enter RedBoot command line and use fconfig command.