Писать приложения без операционной системы сейчас считается дурным тоном.
Решили остановиться на простой и быстрой операционной системе реального времени Chibios http://chibios.org
Занимает мало места, проста в освоении и что самое главное имеет HAL Hardware Abstraction Layer, слой аппаратных абстракций для простого управления портами, устройствами ввода-вывода, ADC и прочей периферии которой столь богат процессор STM32F103
Маленький тест, скомпилированный в 9 кБ, сразу же заработал:
#include "ch.h"
#include "hal.h"
static WORKING_AREA(waThread1, 128);
static msg_t Thread1(void *arg) {
(void)arg;
while (TRUE) {
palClearPad(IOPORT3, 8);
chThdSleepMilliseconds(500);
palSetPad(IOPORT3, 8);
chThdSleepMilliseconds(500);
}
}
static WORKING_AREA(waThread2, 128);
static msg_t Thread2(void *arg) {
(void)arg;
while (TRUE) {
palClearPad(IOPORT3, 9);
chThdSleepMilliseconds(200);
palSetPad(IOPORT3, 9);
chThdSleepMilliseconds(200);
}
}
int main(void) {
halInit();
chSysInit();
chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL);
chThdCreateStatic(waThread2, sizeof(waThread2), NORMALPRIO, Thread2, NULL);
while (TRUE) {
}
}