El desarrollo de STM32 código del microcontrolador en Linux (parte 7 de 8, construcción y explotación de un programa de STM32 sencilla)

El primer post de esta serie cubre los pasos para generar y ejecutar código para el STM32. El segundo puesto cubierto cómo construir un compilador cruzado para el STM32. El tercer puesto cubierto cómo construir un depurador para el STM32. El cuarto puesto cubrió el edificio y la configuración OpenOCD para su entorno de desarrollo. El quinto puesto cubrió el edificio de la biblioteca de dispositivos, libopencm3. El sexto puesto cubierto scripts de enlazador y las opciones de línea de comandos necesarios para la construcción y la vinculación de los programas que se ejecuten en el STM32. Este post va a cubrir la construcción y explotación de un programa en el STM32.
En los posts anteriores que nos topamos con todo el establecido necesaria la construcción de programas para la STM32. Por último, es el momento de tomar ventaja de todas las herramientas y crear y ejecutar algo. Recordemos que a partir de los mensajes anteriores, ya tenemos una configuración de archivo de configuración OpenOCD, una configuración de secuencia de comandos del vinculador, y una configuración de Makefile. Todo lo que realmente queda es para que escribamos el código, construimos, y el flash a nuestro dispositivo. El código de abajo es muy STM32F3DISCOVERY específica, es decir, mucho requiere que el GPIO para el LED estará en GPIO banco E, pin 12 en el tablero. Si usted tiene una de las otras placas DISCOVERY STM32, tendrás que mirar los esquemas y encontrar uno de los GPIOs que están conectados a un LED.
Vamos a tomar un ejemplo muy sencillo de libopencm3. Este ejemplo no hace más que parpadear uno de los LED de la placa de dentro y fuera de forma continua. Si bien esto es simple, se validará que todo lo que hemos hecho antes es realmente correcto.
Aquí está el código:

 $  cd ~ / STM32-proyecto /> 
tut.c
# include # include

static void gpio_setup (void)

{/ * Habilitar reloj GPIOE. * /
Rcc_peripheral_enable_clock (& ​​RCC_AHBENR, RCC_AHBENR_IOPEEN);

/ * Establecer GPIO12 (en puerto GPIO E) a 'salida push-pull'. * /
Gpio_mode_setup (GPIOE, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE,
GPIO12);}

int main (void) {

int i ;

gpio_setup ();

/ * Blink el LED (PC8) en el tablero. * /
While (1) {
/ * Usando la función API gpio_toggle (): * /
gpio_toggle (GPIOE, GPIO12); / * LED de encendido / apagado * /
para (i = 0; i <2.000.000; i + +) / * Espera un poco. * /
__ Asm__ ("nop");}

return 0;}

EOF

Ahora debería ser capaz de escribir "make", y lo debe construir. Al escribir "make flash" debe funcionar OpenOCD, instale el programa a la junta, y empezará a parpadear un LED. Recuerde que nuestro Makefile requiere acceso sudo para ejecutar OpenOCD realidad. Si usted no tiene acceso a sudo, puede agregar el acceso sudo (añadiendo su usuario al grupo wheel), o simplemente su en root y ejecute el comando OpenOCD a mano.

1 Comentario

  1. asterin

    hola tu sabes como habilitar un pin GPIO de forma que pueda encender un led en una protoboar…es que lo estado intentando y no lo e logrado

    Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *