Réponses:
Le démarrage à partir de la mémoire système appelle le chargeur de démarrage sur puce, qui est présent dans la puce directement en usine, avant d'avoir programmé quoi que ce soit dans le flash sur puce. Cela vous permet de charger (programmer) du code dans l'appareil à partir d'une interface externe telle que UART ou USB. Ceci est expliqué en détail dans le manuel.
La mémoire flash principale est l'endroit où va généralement votre code. En fonctionnement normal, votre code résidera en flash et lors de la réinitialisation à la mise sous tension (POR), le CPU récupérera le vecteur de réinitialisation et le pointeur de pile initial (SP) du flash. Vous pouvez charger le flash via JTAG, le chargeur de démarrage sur puce (ci-dessus), etc.
Enfin, vous pouvez charger du code dans la RAM (JTAG, runtime) puis démarrer / exécuter à partir de là. Ce n'est pas souvent utilisé, généralement vous faites quelque chose de délicat comme un chargeur de démarrage temporaire ou similaire.