Services - tools - models - for embedded software development
Embecosm divider strip
Prev  Next

Chapter 4.  Porting the OpenRISC 1000 Architecture

4.1. BFD Specification
4.2. OpenRISC 1000 Architecture Specification
4.2.1. Creating struct gdbarch
4.2.2. OpenRISC 1000 Hardware Data Representation
4.2.3. Information Functions for the OpenRISC 1000 Architecture
4.2.4. OpenRISC 1000 Register Architecture
4.2.5. OpenRISC 1000 Frame Handling
4.3. OpenRISC 1000 JTAG Remote Target Specification
4.3.1. Creating struct target_ops for OpenRISC 1000
4.3.2. OpenRISC 1000 Target Functions and Variables Providing Information
4.3.3. OpenRISC 1000 Target Functions Controlling the Connection
4.3.4. OpenRISC 1000 Target Functions to Access Memory and Registers
4.3.5. OpenRISC 1000 Target Functions to Handle Breakpoints and Watchpoints
4.3.6. OpenRISC 1000 Target Functions to Control Execution
4.3.7. OpenRISC 1000 Target Functions to Execute Commands
4.3.8. The Low Level JTAG Interface
4.4. The OpenRISC 1000 Disassembler
4.5. OpenRISC 1000 Specific Commands for GDB
4.5.1. The info spr Command
4.5.2. The spr Command

This chapter describes the steps in porting the OpenRISC 1000 architecture to GDB. It uses the information and data structures described in Chapter 2.

The OpenRISC 1000 version of GDB is documented briefly in the GDB User Guide [3]. A more comprehensive tutorial [6] is provided within the gdb/doc sub-directory in the file or1k.texinfo.

Strictly speaking this was not a new port. An old port existed for GDB 5.3. However GDB has changed substantially since that time, and an almost complete reimplementation was required.

[Tip]Tip

When working with any large code base a TAGS file is invaluable. This allows immediate lookup of any procedure or variable across the entire code base. Normally for any GNU project, this is achieved with the command make tags. However this does not work for GDB—there is a problem with the tags target in the opcodes directory.

However tags building does work in the gdb directory, so a TAGS file can be built in that directory by:


cd gdb
make tags
cd ..

Embecosm divider strip