I tried a simple mbed test ):
a simple mbed test:
#include "mbed.h"
Serial pc(PA_9, PA_10);
DigitalOut myled(PF_8);
DigitalOut myled2(PF_7);
int main() {
int i = 1;
pc.baud(115200);
pc.printf("Hello World !\n\r");
while(1) {
wait(1);
pc.printf("This program runs since [%d] seconds.\n\r", i++);
myled = !myled;
myled2 = !myled2;
}
}
I download the hello.bin into a stm32f407 board and reboot the board, it's work fine, two leds blink regularly and messages output the serial port.
I tried to build and run a simple mbed-rtos test, it's built successful and runs failed, the leds is turned on but didn't blink at all.
):
#include "mbed.h"
#include "rtos.h"
/*
* The stack size is defined in cmsis_os.h mainly dependent on the underlying toolchain and
* the C standard library. For GCC, ARM_STD and IAR it is defined with a size of 2048 bytes
* and for ARM_MICRO 512. Because of reduce RAM size some targets need a reduced stacksize.
*/
#if defined(TARGET_STM32L053R8) || defined(TARGET_STM32L053C8)
#define STACK_SIZE DEFAULT_STACK_SIZE/4
#else
#define STACK_SIZE DEFAULT_STACK_SIZE
#endif
void print_char(char c = '*')
{
// printf("%c", c);
// fflush(stdout);
}
DigitalOut myled(PF_8);
DigitalOut myled2(PF_7);
void led2_thread(void const *argument) {
while (true) {
myled = !myled;
Thread::wait(1000);
print_char();
}
}
int main() {
Thread thread(led2_thread, NULL, osPriorityNormal, STACK_SIZE);
while (true) {
myled2 = !myled2;
Thread::wait(500);
Any advice would be appreciated!
I tried a simple mbed test ):
a simple mbed test:
#include "mbed.h" Serial pc(PA_9, PA_10); DigitalOut myled(PF_8); DigitalOut myled2(PF_7); int main() { int i = 1; pc.baud(115200); pc.printf("Hello World !\n\r"); while(1) { wait(1); pc.printf("This program runs since [%d] seconds.\n\r", i++); myled = !myled; myled2 = !myled2; } }I download the hello.bin into a stm32f407 board and reboot the board, it's work fine, two leds blink regularly and messages output the serial port.
I tried to build and run a simple mbed-rtos test, it's built successful and runs failed, the leds is turned on but didn't blink at all.
):
#include "mbed.h" #include "rtos.h" /* * The stack size is defined in cmsis_os.h mainly dependent on the underlying toolchain and * the C standard library. For GCC, ARM_STD and IAR it is defined with a size of 2048 bytes * and for ARM_MICRO 512. Because of reduce RAM size some targets need a reduced stacksize. */ #if defined(TARGET_STM32L053R8) || defined(TARGET_STM32L053C8) #define STACK_SIZE DEFAULT_STACK_SIZE/4 #else #define STACK_SIZE DEFAULT_STACK_SIZE #endif void print_char(char c = '*') { // printf("%c", c); // fflush(stdout); } DigitalOut myled(PF_8); DigitalOut myled2(PF_7); void led2_thread(void const *argument) { while (true) { myled = !myled; Thread::wait(1000); print_char(); } } int main() { Thread thread(led2_thread, NULL, osPriorityNormal, STACK_SIZE); while (true) { myled2 = !myled2; Thread::wait(500);Any advice would be appreciated!