@@ -328,7 +328,7 @@ self-explanatory and human readable.
328328
329329## MCU boot and vector table
330330
331- When STM32F429 MCU boots, it reads a so-called "vector table" from the
331+ When an ARM MCU boots, it reads a so-called "vector table" from the
332332beginning of flash memory. A vector table is a concept common to all ARM MCUs.
333333That is a array of 32-bit addresses of interrupt handlers. First 16 entries
334334are reserved by ARM and are common to all ARM MCUs. The rest of interrupt
@@ -339,10 +339,11 @@ and more complex MCUs have many.
339339Vector table for STM32F429 is documented in Table 62. From there we can learn
340340that there are 91 peripheral handlers, in addition to the standard 16.
341341
342- At this point, we are interested in the first two entries of the vector table,
343- because they play a key role in the MCU boot process. Those two first values
344- are: initial stack pointer, and an address of the boot function to execute
345- (a firmware entry point).
342+ Every entry in the vector table is an address of a function that MCU executes
343+ when a hardware interrupt (IRQ) triggers. The exception are first two entries,
344+ which play a key role in the MCU boot process. Those two first values are: an
345+ initial stack pointer, and an address of the boot function to execute (a
346+ firmware entry point).
346347
347348So now we know, that we must make sure that our firmware should be composed in
348349a way that the 2nd 32-bit value in the flash should contain an address of
@@ -435,7 +436,7 @@ address space, and which symbols to create.
435436
436437### Linker script
437438
438- Create a minimal linker script ` link.ld ` , and copy-paste contents from
439+ Create a file ` link.ld ` , and copy-paste contents from
439440[ step-0-minimal/link.ld] ( step-0-minimal/link.ld ) . Below is the explanation:
440441
441442```
0 commit comments