Relato largo. Deseo aprender a crear una buena secuencia de comandos del vinculador, así que si cambio las plataformas/arquitecturas/proveedores, no volveré a estar en la zona cero sin saber qué hacer. No me preocupa la dificultad de la tarea, sino la comprensión.Asesoramiento en la creación y verificación de scripts del enlazador
he empezado una especie de project, por así decirlo, para crear una base o esqueleto para la programación y el desarrollo de chips de 32 bits Cortex-M3 de MCI. Con la ayuda de jsiei97 comenzando con el STM32F103RB (también tengo un TI Stellaris LM3S828, pero ese es otro problema), sin la necesidad de un IDE con licencia. Como soy estudiante, y la mayoría de los estudiantes no pueden pagar tales cosas.
Entiendo que hay ODev, y Eclipse Plugins y qué no, y he leído varios blogs, wikis, páginas de documentos/manual y la mayoría de los proyectos proporcionan un script enlazador con pocas explicaciones sobre por qué y dónde han sido definidos.
He compilado una cadena de herramientas de brazo-ninguno-eabi para el STM32 pero donde me cuelgo está en el script del enlazador. CodeSourcery también requiere uno. Tengo un concepto básico de cómo crearlos y su sintaxis después de leer las páginas de manual de gnu, pero simplemente no tengo ni idea de por dónde empezar agregando varias secciones adicionales aparte de los obvios .text, .bss y .data .
Creé un rudimentary version pero obtengo errores de enlace al solicitar definiciones de sección y es allí donde me quedo atascado. Sé cómo definirlos, pero saber si lo que estoy haciendo es incluso más cercano a la derecha es el problema.
Los scripts de gnu linker son bastante dolorosos en el mejor de los casos. Y de gcc 3.xa 4.x las cosas que solían funcionar ya no funcionan, así que supongo que continuará que, por muy buenas que sean, le arrancarán la alfombra de debajo de los pies algún día. –
Esto es cierto. Solo puedo esperar eso. Sin embargo, de 4.x a 5.x podría obtener un trabajo sólido, y sería una cuestión de seguir el registro de cambios. debería cambiar algo importante. – Crewe