Fundamentos del lenguaje de programación C Parte 2

Cuando escribe su aplicación en C, su código no es lo único que se programa en el microcontrolador PIC®. Antes de que su aplicación pueda realizar su primera acción, el código de inicio de C Runtime Environment debe configurar el dispositivo para que ejecute el código producido por un compilador de C.


Propósito del entorno C Runtime


Hay varias cosas que debe hacer el código de inicio del entorno de ejecución de C para poder ejecutar el código de la aplicación.

Asigne espacio para una pila de software e inicialice el puntero de la pila
En los dispositivos de 8 bits que tienen una pila de direcciones de retorno basadas en hardware, la pila de software se utiliza principalmente para el paso de parámetros hacia y desde las funciones. En dispositivos de 16 y 32 bits, la pila de software también almacena la dirección de retorno para cada llamada de función e interrupción.

Asigne espacio para un montón (si se usa)
Un montón es un bloque de RAM que se ha apartado como una especie de scratchpad para su aplicación. C tiene la capacidad de crear dinámicamente variables en tiempo de ejecución. Esto se hace en el montón.

Copie valores de Flash en variables declaradas con valores iniciales
Las variables declaradas con valores iniciales (por ejemplo, int x = 10;) deben tener esos valores iniciales cargados en la memoria antes de que el programa pueda usarlos. Los valores iniciales se almacenan en la memoria del programa flash (para que estén disponibles después de que el dispositivo se apaga y enciende) y se copian en cada ubicación RAM asignada a una variable inicializada para su almacenamiento.

Borrar la memoria RAM no inicializada
Cualquier RAM (registro de archivo) no asignada a un propósito específico (almacenamiento variable, pila, pila, etc.) se borra para que esté en un estado conocido.

Deshabilitar todas las interrupciones

Call main (), donde comienza el código de la aplicación

Trabajando con C Runtime Environment

El código de configuración del entorno de ejecución se vincula automáticamente a su aplicación. Por lo general, proviene de un archivo con un nombre como crt0.s (fuente de ensamblador) o crt0.o (código de objeto).
El código de inicio del tiempo de ejecución se puede modificar si es necesario. De hecho, el archivo de origen proporciona ganchos para la "inicialización del usuario", donde puede ejecutar código que debe ejecutarse antes de que comience la aplicación principal, como inicializar hardware externo inmediatamente después de aplicar la energía. Los detalles sobre la modificación del código de inicio en tiempo de ejecución se tratarán en las clases específicas del compilador.

Un programa Simple en C


(El lenguaje C no usa números de línea. Son solo para fines de referencia y no forman parte del código).

A continuación hay una breve descripción general de algunas de las partes básicas de un programa C. Todos estos serán discutidos en detalle más adelante.

Línea 1
#include es una directiva de preprocesador que incluye el contenido de un archivo de encabezado (stdio.h) en este archivo fuente.

Línea 3
#define es una directiva de preprocesador utilizada aquí para crear una etiqueta de sustitución de texto. En cualquier lugar debajo de esta línea donde se encuentra el texto "PI", será reemplazado por "3.14159".

Línea 5-13
Esta es la función principal (). Cada programa C debe tener una y solo una función principal (). Aquí reside el código de la aplicación y es lo primero que se ejecuta después de que se completa el código de instalación de C Runtime Environment.

Línea 7
Aquí, se declaran dos variables de coma flotante. En C, una variable debe declararse antes de poder usarse.

Línea 9
Esta línea es un comentario.

Línea 10
Esta línea es una declaración de asignación.

Línea 11
Esta línea también es una declaración de asignación cuyo valor es el de la expresión aritmética.

Línea 12
Esta es una llamada a la función printf (). Imprime el valor del área variable en una ventana de terminal en una PC o en la ventana UART1I / O (si está configurada) cuando usa el simulador en MPLAB® X IDE. (Haremos un uso extensivo de esta característica).

Continuar en la parte 3

Fuente: Fundamentals of the C Programming Language

Comentarios

Entradas más populares de este blog

Resistencias

Guía de introducción de XC8