Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Procesadores STMicroelectronics
Procesadores STMicroelectronics
es
2.2.1 Historia
El autor original del Compilador de C de GNU (GCC) es Richard Stallman, el fundador del Proyecto GNU.
El Proyecto GNU fue iniciado en 1984 para crear un sistema operativo basado en software libre similar a UNIX y, así
promover la libertad y la cooperación entre usuarios de ordenadores y programadores. Cualquier sistema operativo
basado en UNIX necesita un compilador de C, y no había compiladores libres en ese momento, el Proyecto GNU
debía desarrollar uno desde cero. Este trabajo fue financiado por donaciones de individuos y compañías a través de
la Free Software Foundation, una organización sin ánimo de lucro destinada a dar soporte al Proyecto GNU.
La primera entrega de GCC fue hecha en 1987. Siendo el primer compilador portable para optimizar ANSI C liberado
como software libre. Desde este momento GCC ha llegado a ser uno de las más importantes herramientas en el
desarrollo de software libre. Un avance importante en el compilador llega con la serie 2.0 en1992, que añade la
capacidad de compilar C++. En 1997, se creó una rama experimental del compilador (EGCS) para mejorar la
optimización y el soporte de C++. Después de este trabajo, EGCS fue adoptado como la principal línea de desarrollo
de GCC y, estas funcionalidades llegaron a estar ampliamente disponibles en la versión3.0 de GCC en 2001.
A través del tiempo GCC ha sido extendido para dar soporte a muchos lenguajes adicionales, incluyendo Fortran,
ADA, Java y Objective-C. El acrónimo GCC es ahora usado para referir al “GNU Compiler Collection” (Colección de
Compiladores de GNU). Su desarrollo está guiado por el GCC Steering Committee, un grupo compuesto de
representantes de las comunidades de usuarios de GCC en la industria, la investigación y la academia.
Ejemplo de compilación
Código fuente
Como ejemplo, se usará un código fuente dentro de un archivo llamado "main.c", donde ".c" es la extensión que
significa que el archivo está escrito en C.
En color rosa se encuentra la directiva del preprocesador #include que le dice al compilador que incluya el archivo de
encabezado stdio.h
En azul están los comentarios sobre el código, estos son útiles para recordar lo que el código realmente hace.
Realmente no se lo necesita en un programa tan pequeño, pero es una buena práctica incluirlos.
Luego se tiene el punto de entrada, la función main (). Significa que el programa comenzará ejecutando las
declaraciones que están dentro del bloque de esta función, es decir, entre las llaves. Aquí, solo hay dos
declaraciones: una que imprimirá el mensaje "Hola, mundo", y otra que le dice al programa que "devuelva" 0 si salió
o terminó correctamente. Entonces, una vez compilado, al ejecutar e programa, se verá la frase “Hello, World”.
Para que el código main.c sea ejecutable, se necesita ingresar el comando ‘gcc main.c’, y el proceso de compilación
pasará por los cuatro pasos que contiene.
1) Preprocesado
El preprocesador (Pre-Processor) tiene varias funciones:
elimina todos los comentarios en el (los) archivo (s) fuente
incluye el código de los archivos de encabezado, (archivos con extensión .h) que contienen las declaraciones
de funciones y definiciones de macros en C.
reemplaza las macros (fragmentos de código a los que se les ha dado un nombre) por sus valores
La salida de este paso se almacenará en un archivo con extensión ‘.i, por lo que aquí estará en main.i
Para generar este archivo se usa la opción “-E” con el comando gcc seguido del archivo fuente:
2) Compilación
El Compilador (Compiler) transforma el Código C en el Lenguaje ensamblador propio del Procesador de nuestra
máquina.
El compilador tomará el archivo preprocesado y generará código IR (Representación intermedia), por lo que esto
producirá un archivo ".s". El resultado es el código ensamblador en este paso de compilación.
Para generar este archivo se usa la opción “-S” con el comando gcc seguido del archivo fuente:
4) Enlazado
El vinculador (Linker) crea el archivo ejecutable final, en binario (.bin), y puede desempeñar dos funciones:
vincular todos los archivos de origen juntos, es decir, todos los demás códigos de objeto del proyecto. Por
ejemplo, si se desea compilar main.c con otro archivo llamado secundario.c y convertirlos en un solo
programa.
vincular llamadas a funciones con sus definiciones. El enlazador sabe dónde buscar las definiciones de
funciones en las librerías.
https://www.st.com/en/microcontrollers-microprocessors.html
Como se puede observar, STMicroelectronics tiene unidades de microcontroladores de 8 bits (MCU), unidades de
microprocesadores de 32 bits (MPU), MCU de 32 bits y MCU de 32 bits diseñadas para uso automotriz.
La amplia gama de productos de microcontroladores de ST abarca desde MCU robustas y económicas de 8 bits hasta
microcontroladores Cortex®-M basados en Arm® de 32 bits con una amplia selección de periféricos. Su amplitud
garantiza que los ingenieros de diseño encuentren la combinación de rendimiento, eficiencia energética y seguridad
que requiere su aplicación.
STMicroelectronics ha trabajado para que la transición entre su línea sea lo más fluida posible. Los
microcontroladores que vienen en el mismo paquete a menudo son compatibles pin por pin. Si se está trabajando
con un STM32F0 y se descubre que se está quedando sin recursos en el controlador, se puede (en la mayoría de los
casos) utilizar una serie F1 con el mismo tipo de empaquetadura en su lugar, y simplemente funcionará.
2.4 Entorno de desarrollo TrueStudio for STM32
TrueSTUDIO es utilizado por grandes corporaciones, pequeñas y medianas empresas, desarrolladores
independientes, investigadores, estudiantes y aficionados alrededor del mundo.
Características principales:
Características principales:
1) Integra las características de STM32CubeMX
o Admite la selección de microcontroladores y microprocesadores STM32
o Configuración de pin, reloj, periférico y middleware
o Creación de proyecto y generación de código de inicialización.
2) Basado en ECLIPSE / CDT, con la ayuda de la función de complemento ECLIPSE, proporciona el compilador
GNU C / C ++ para la cadena de herramientas ARM incluyendo el soporte del depurador GDB
3) Otras funciones avanzadas de depuración:
o Núcleo de CPU, registros periféricos y ventana de memoria
o Ventana de monitoreo variable en tiempo real
o Análisis del sistema y seguimiento en tiempo real.
o Herramienta de análisis de errores de CPU
4) Soporta depurador ST-Link y J-Link
5) Apoya proyectos de Atollic TrueStudio
6) Admite múltiples sistemas operativos, incluidos Windows, Linux y MacOS, solo funciona en 64 bits