CodeVision tiene muchas características agradables, entre ellas la generación automática del vector de interrupción.
Sin embargo, ahora estoy trabajando en un gestor de arranque muy pequeño y no puedo permitirme ninguna interrupción. CodeVision todavía genera felizmente el vector de interrupción al comienzo de la memoria Flash, y no pude encontrar una manera de apagarlo.
Es crucial, ya que el vector de interrupción ocuparía el 25% del espacio en la memoria flash para el gestor de arranque más pequeño. (cargador de arranque de 128 palabras, y el vector de interrupción necesita 32 palabras para un atmega de 16k)
Establecí "Usar un archivo de inicialización de inicio externo" y uso mi propio startup.asm. Incluso si no incluyo nada sobre los vectores de interrupción, todavía se generan para el ejecutable.
En general, para eliminar una sección completa como esa, deberá usar un script de enlace personalizado y es posible que deba modificar o eliminar parte del código de inicio detrás de escena que los compiladores suelen incluir. Aunque para un gestor de arranque de 128 palabras, es posible que tenga mejor servido escribiéndolo en asamblea.
El CodeVision Advanced (cuesta 50 € más que la versión estándar) tiene una opción para ello en el menú Proyecto|Configurar|Compilador C|Avanzado.
daniel grillo
vsz
void main(){}
aún generan los vectores de interrupción. En la configuración del proyecto no pude encontrar nada relevante, y busqué en Google posibles#pragma
configuraciones, sin suerte hasta ahora.daniel grillo
vsz
jimmyb
vsz
jimmyb
vsz