STM32F4Discovery GPIO Programming using ChibiOS RTOS

To use the gpio pins…

cd ChibiOS_2.4.1/demos/ARMCM4-STM32F407-DISCOVERY/

Similar to the earlier method edit the main.c file and insert this code

#include "ch.h"
#include "hal.h"
int main(void) {
halInit();
chSysInit();
palSetPadMode(GPIOD, 4, PAL_MODE_OUTPUT_PUSHPULL); /* PD4 */
while (TRUE) {
palSetPad(GPIOD, 4);
chThdSleepMilliseconds(500);
palClearPad(GPIOD, 4);
chThdSleepMilliseconds(500);
}
}

The palSetPadMode configures PD4 or GPIOD’s fourth pin as output..now connect an led to the PD4 and see output

Now repeat the older steps to generate binary

cd ChibiOS_2.4.1/demos/ARMCM4-STM32F407-DISCOVERY/

make

st-flash write build/ch.bin 0x08000000

Happy Hacking 🙂

Getting started with STM32F4Discovery and ChibiOS

ChibiOS is a portable,open source RTOS…ChibiOS can be downloaded from source forge

http://sourceforge.net/projects/chibios/

Extract the downloaded file..Inside the folder you can see a folder named Demos inside that our board will be listed ARMCM4-STM32F407-DISCOVERY inside that folder there will be a main.c….Edit that main.c file

#include "ch.h"
#include "hal.h"

int main(void) {

halInit();
chSysInit();

palSetPadMode(GPIOD, GPIOD_LED4, PAL_MODE_OUTPUT_PUSHPULL); /* Green. */

while (TRUE) {
palSetPad(GPIOD, GPIOD_LED4);
chThdSleepMilliseconds(500);
palClearPad(GPIOD, GPIOD_LED4);
chThdSleepMilliseconds(500);
}
}

palSetPadMode configure the I/O as input or output….palSetPad and  palClearPad is similar to High and Low…halinit is the intialization of hardware abstraction layer and chsysinit is the intialization of kernel…

Open a terminal and change directory to that folder

cd ChibiOS_2.4.1/demos/ARMCM4-STM32F407-DISCOVERY/

make

st-flash write build/ch.bin 0x08000000

Happy Hacking 🙂