arm - Código de ejecución que está precargado en flash NOR
embedded flash-memory (1)
Estoy construyendo un sistema uClinux para ejecutar en un NXP LPC2478. El chip tiene 512k de flash rápido a bordo desde el cual puede ejecutar código directamente. Quiero cargar y ejecutar una aplicación de usuario fuera de la SDRAM externa normal. Pero tengo una biblioteca de gráficos especial que me gustaría precargar para ejecutar desde el flash incorporado.
¿Hay alguna manera de compilar la biblioteca de gráficos para ejecutar en una ubicación fija en la memoria (el flash) y luego compilar / vincular la aplicación que la utiliza para tener todas sus referencias a esa biblioteca fijadas en las ubicaciones apropiadas en flash?
Si tengo que escribir un cargador de aplicaciones personalizado que realice las reparaciones manualmente, lo haré.
Supongo que estás usando GCC. Además, creo que está conectando uCLinux, la biblioteca de gráficos y su aplicación en una sola fase para producir un archivo ejecutable. La vinculación de todos los componentes está controlada por un script de enlace (archivo ld). Para hacer lo que desea, necesita editar el archivo ld y también hacer la inicialización adecuada en el código de inicio.
En el script del enlazador debe colocar la sección de datos en la RAM externa. Luego crea una sección especial para la biblioteca de gráficos y colócala en flash. Al crear una sección, puede indicar qué archivos objeto incluirá. En el código de inicio, debe copiar la sección de datos de flash a RAM. El vinculador se encargará de vincular su aplicación en la RAM con la biblioteca de gráficos en flash.
Así es como generalmente se hacen las cosas. Según los requisitos de la cadena de herramientas y las bibliotecas, es posible que haya más pasos involucrados.