ARM CORTEX M3 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ FLASH

Οι μικροελεγκτές STM32 έχουν ενσωματωμένο bootloader.

Για να φορτώσουμε κάποιο πρόγραμμα στην flash χρησιμοποιούμε το STM32 and STM8 Flash loader demonstrator (UM0462)

arm-cortex-m3-boot_pins_select

Boot mode:

Main flash memory

Στην κανονική λειτουργία ο κώδικας αποθηκευεται στην μνήμη flash.  Μετά από Power On Reset (POR) η CPU ξεκινά να εκτελεί κώδικα απο αυτό το τμήμα της μνήμης.  Ο προγραμματισμός της μνήμης flash γίνεται με  JTAG ή με το on-chip bootloader.

System memory

Για να προκαλέσουμε την εκτέλεση του bootloader  τo pin BOOT0 πρέπει να έχει λογική στάθμη 1 και το pin BOOT1 λογική στάθμη Ο κατα την φάση αρχηκοποίησης reset του μικροελεγκτή ( boot mode::Main Flash memory).

Embedded sram

Φόρτωση εκτελέσημου κώδικα στην RAM μέσω (JTAG,runtime) και boot/run από Ram.

----------------------------------------------------------------

ST LINK V2

ST LINK V2

Γιά τους χρήστες που επιθυμούν ταχύτερους χρόνους download upload στην flash καθώς και δυνατότητες εκσφαλμάτωσης κώδικα υπάρχει το ST LINK V2

 

 

 

 

 

 

 

------------------------------------------------------


/* ARM RVDS or Keil MDK */
__asm void jump_to_sram(void)
{
LDR R0,=0x20000000 ; starting address of program in SRAM.
LDR R1,[R0] ; Get initial MSP value
MOV SP, R1 ; Set SP value
LDR R1,[R0, #4] ; Get initial PC value
BX R1
}

Comments are closed.