Week 1: Toolchain & gdb (ch. 2,3) Flashcards

1
Q

What is needed on the development platform for you to interact with gdb to communicate with the device programmer?

A
  • a gdb program that is compatible with the target processor
  • a gdb-server programmer that can translate gdb requests to commands understandable by the device programmer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are the 4 phases of microprocessor program development?

A
  • Assembly/compile time
    • user-created assembly code gets processed to make machine code and data
  • Linking
    • assembled programs combined into a memory image file
  • Loading
    • memory image file loaded into processor memory
  • Execution/run-time
    • processor executes loaded program in memory
    • program counter becomes relevant now
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is openocd?

A
  • functions as a gdb-server, so that gdb commands can be interpreted and requests sent to the hardware programmer to retrieve and return requested info to a gdb session
  • provides facilities for in-circuit programming and on-chip debugging
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What components make up a typical cross-platform development environment?

A
  1. Development Platform (Linux or Windows, where dev tools run)
  2. Device Programmer (intermediary hardware programming device, vendor-supplied, providing in-circuit programming support)
  3. Target Processor (memory image file loaded for here execution)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is the toolchain? What components does this one have?

A
  • all programs needed to develop software
    • assembler (as)
    • compiler (gcc)
    • linker (ld)
    • debugger (gdb)
    • utility commands (objcopy, objdump)
  • used on the development platform to develop code for target processor
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is in-circuit programming?

A

Moving code to the target platform

(device programmer provides in-circuit programming support)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

How does gdb communicate with a gdb-server (openocd)?

A

via tcp/ip (telnet) or named pipes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Explain what the gdb-server programmer module is responsible for.

A
  • It is the intermediary in the development platform that can translate gdb requests to commands understandable by the vendor device programmer
  • Communicates with device programmer (has device driver support)
  • openocd software does all of this
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is cross-platform development?

A

Developing code on a different processor than the one it is intended to run on

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What does it mean when code is cross-compiled?

A
  • developed and compiled on one platform to run on another
  • using arm-none-eabi-gcc command
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Once all hardware components are in place in the dev environment, what is the purpose of a host program on the development platform?

A

To interact with the target processor: programming or debugging

How well did you know this?
1
Not at all
2
3
4
5
Perfectly