SAM-BA es un gestor de arranque, por lo que si tienes samba no necesitas reinventar otro. Sólo úsalo. Jtag generalmente funciona igual de bien para poder cargar programas en RAM y ejecutarlos. Eventualmente, aunque asumo que su aplicación deberá ejecutarse desde flash una vez que lo convierta en un proyecto / gadget o lo que sea. No se requiere pero se supone. podría envolver su versión de ram con una copia pequeña al programa de ram.
Le recomiendo que use sam-ba o lo que sea para borrar la memoria flash del usuario para que Samba no intente cargar eso y asegurarse de que el chip se encuentre en un estado conocido. No estoy seguro de Samba, pero es posible que una vez que el gestor de arranque no detecte un programa en flash, pueda que los relojes o los periféricos de configuración (uart) no se puedan tener si se hubiera copiado el flash, por lo que aún podría terminar en una situación. su programa probado en ram funciona pero una vez que lo copie desde un programa basado en flash o lo ejecute desde flash, es posible que no funcione. algunos ciclos de flash pueden ser necesarios para terminar la prueba. o puedes hacer tu propio gestor de arranque que ejecuta samba y entonces estás en un estado conocido. Mi preferencia es una cosa tonta de xmodem, el gestor de arranque hace lo suficiente para configurar el uart y comenzar a esperar una descarga de xmodem, luego se descarga a una dirección conocida en el ram. a continuación, reemplace el descargador xmodem con la copia a ram y ejecute. De esa manera no hay sorpresas.