Necesito poder elegir entre dos aplicaciones Arduino que se ejecutan en un atmega 1280 (megaavr) en el momento del arranque. Por lo tanto, necesito mover una de esas aplicaciones a una ubicación diferente en la memoria del programa, y también debo mover las interrupciones a esa ubicación.
Ya tengo un método para ejecutar las interrupciones correctas (con la ayuda del cargador de arranque) en cualquier ubicación de la memoria.
Sin embargo, no entiendo el proceso de compilación lo suficiente como para ver dónde el enlazador decide dónde colocar las cosas y cómo mover las secciones de programa e interrupción a nuevas ubicaciones de memoria.
- ¿Dónde se define la ubicación del vector de interrupción?
- ¿Dónde se define la ubicación del programa?
Las compilaciones actuales se realizan utilizando Arduino 22. Aunque prefiero modificar los scripts o archivos de compilación en ese entorno, si fuera necesario, consideraría moverlo a un proceso de compilación de makefile y salir del entorno de Arduino.