Difference between revisions of "Template:MCU resources"

From DiLab
Jump to: navigation, search
(Resources)
(Resources)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
=Resources=
=Resources=

===Tutorials===
* Setting up [[ARM development environment on Ubuntu]]


===Make===
===Make===
Line 65: Line 68:
| list
| list
| l
| l
| Shows the source code (lines). Could be followed by a function_name or file:filename
| Shows the source code (lines). Could be followed by a function_name or file:line_number
|-
|-
| info registers
| info registers
Line 90: Line 93:
* [http://download.intel.com/design/intelxscale/27347302.pdf Intel XScale(R) Core Developer’s Manual]
* [http://download.intel.com/design/intelxscale/27347302.pdf Intel XScale(R) Core Developer’s Manual]
* [http://download.intel.com/design/intelxscale/27347302.pdf Intel XScale R Core Developer’s Manual], ON: 273473-002, Intel Corporation, 2004
* [http://download.intel.com/design/intelxscale/27347302.pdf Intel XScale R Core Developer’s Manual], ON: 273473-002, Intel Corporation, 2004

== Insights ==
* [http://norvig.com/21-days.html Teach yourself programming in 10 years] by Peter Norvig
* [https://qr.ae/pGBj0b Should I learn assembly language to program a microcontroller?] - Answer on Quora by software R&D professional with 40 years of experience.

Latest revision as of 15:56, 30 September 2022

Resources

Tutorials

Make

GDB

Remote debugging example

Debugging myprog with a parameter 10.

  • First, start the qemu emulator, providing the communications port (12345), and run it in background (&).
    • Before you do this, make sure that the port is not in use by anyone or anything.
  • Then start the gdb-multiarch with the name of the program and
  • Use the gdb command "remote target" with address (localhost) and the port (12345).
  • Finally start the program execution with "continue". Perhaps, you may want to set some breakpoints before that.
$ qemu-arm -L /usr/arm-linux-gnueabi -g 12345 myprog 10 &
$ gdb-multiarch myprog
    (gdb) target remote localhost:12345
    (gdb) continue

A few essential GDB commands

GDB command Shortcut Description
run Run the program from the beginning
continue c Continue (or start) the execution of the program
step s Execute the current line from the source. If there is a function call, step into it.

This command can have a parameter n that tells how many steps to make.

next n Execute the current line from the source. If there is a function call, stop after running it.

This command can have a parameter n that tells how many steps to make.

break <x> b <x>

Set a "breakpoint" to <x>, where <x> could be:

  • line_number in the current source code file
  • filename:line_number
  • function_name
  • filename:function_name
  • *address
  • ...and many others
list l Shows the source code (lines). Could be followed by a function_name or file:line_number
info registers i r Prints all registers and their values. Can be followed by one or more register names.
set step mode on Set running mode such that "step" will enter the code that has no debug information available.

Using "off" instead of "on" resets this mode.

ARM

Xscale

Insights