Chibios in Windows Eclipse
Posted at 2015-11-12.
Earlier (at Tarlab), I tried to build ChibiOS 3.0.2 out of the box on a Windows 8.1 host. Later, I even got it to work by running make in msys shell.
I returned to the project once again and decided to try and get Windows Eclipse to build a demo and perhaps setup some changes or a project for myself. My setup is essentially the freshest tools thrown in and trying to combine them.
Software used (I really should write down where I got this stuff, bloody integrationless OS):
- Eclipse Mars 1 4.5.1 "for C developers"
- Various extensions (AVR, Git, GNU C cross, OpenOCD, J-Link, qemu, STM32 templates...)
- MinGW, possibly 1.0.18
- gcc-arm-none-eabi 4.9 (from ARM?) 2015q2
Problem is, I hit the same bug as before as Eclipse runs naked
After looking around, I opened a question about
Eclipse and MSYS make
make all 0 [main] sh 5524 sync_with_child: child 2444(0x188) died before initialization with status code 0xC0000142 22 [main] sh 5524 sync_with_child: *** child state waiting for longjmp /usr/bin/sh: fork: Resource temporarily unavailable 0 [main] sh 188 sync_with_child: child 1152(0x188) died before initialization with status code 0xC0000142 26 [main] sh 188 sync_with_child: *** child state waiting for longjmp /usr/bin/sh: fork: Resource temporarily unavailable 0 [main] sh 5096 sync_with_child: child 3200(0x18C) died before initialization with status code 0xC0000142 25 [main] sh 5096 sync_with_child: *** child state waiting for longjmp /usr/bin/sh: fork: Resource temporarily unavailable 0 [main] sh 5232 sync_with_child: child 3820(0x184) died before initialization with status code 0xC0000142 25 [main] sh 5232 sync_with_child: *** child state waiting for longjmp /usr/bin/sh: fork: Resource temporarily unavailable make: Nothing to be done for 'all'.
After more poking around, I found another potentially ancient msys DLL
in the WinAVR directory.
That should not be in PATH and never get loaded, but replacing it with
the one from MinGW made the problem disappear.
make runs fine from command line and Eclipse as well as msys
22:45:01 **** Build of configuration Default for project RT-STM32F103-MAPLEMINI **** make all Compiler Options arm-none-eabi-gcc -c -mcpu=cortex-m3 -O2 -ggdb -fomit-frame-pointer -falign-functions=16 -DUSE_MAPLEMINI_BOOTLOADER=1 -ffunction-sections -fdata-sections -fno-common -flto -Wall -Wextra -Wundef -Wstrict-prototypes -Wa,-alms=build/lst/ -DCORTEX_USE_FPU=FALSE -DTHUMB_PRESENT -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -MD -MP -MF .dep/build.d -I. -I../../../os/common/ports/ARMCMx/devices/STM32F1xx -I../../../os/ext/CMSIS/include -I../../../os/ext/CMSIS/ST -I../../../os/rt/include -I../../../os/rt/ports/ARMCMx -I../../../os/rt/ports/ARMCMx/compilers/GCC -I../../../os/hal/osal/rt -I../../../os/hal/include -I../../../os/hal/ports/common/ARMCMx -I../../../os/hal/ports/STM32/STM32F1xx -I../../../os/hal/ports/STM32/LLD -I../../../os/hal/ports/STM32/LLD/DACv1 -I../../../os/hal/ports/STM32/LLD/GPIOv1 -I../../../os/hal/ports/STM32/LLD/I2Cv1 -I../../../os/hal/ports/STM32/LLD/RTCv1 -I../../../os/hal/ports/STM32/LLD/SPIv1 -I../../../os/hal/ports/STM32/LLD/TIMv1 -I../../../os/hal/ports/STM32/LLD/USARTv1 -I../../../os/hal/ports/STM32/LLD/USBv1 -I../../../os/hal/boards/MAPLEMINI_STM32_F103 -I../../../test/rt -I../../../os/hal/lib/streams -I../../../os/various main.c -o main.o Compiling crt0_v7m.s Compiling chcoreasm_v7m.s Compiling crt1.c Compiling vectors.c Compiling chsys.c Compiling chdebug.c Compiling chvt.c Compiling chschd.c Compiling chthreads.c Compiling chtm.c Compiling chdynamic.c Compiling chregistry.c Compiling chsem.c Compiling chmtx.c Compiling chcond.c Compiling chevents.c Compiling chmsg.c Compiling chmboxes.c Compiling chqueues.c Compiling chmemcore.c Compiling chheap.c Compiling chmempools.c Compiling chcore.c Compiling chcore_v7m.c Compiling osal.c Compiling hal.c Compiling st.c Compiling hal_queues.c Compiling hal_mmcsd.c Compiling pal.c Compiling serial_usb.c Compiling usb.c Compiling nvic.c Compiling stm32_dma.c Compiling hal_lld.c Compiling st_lld.c Compiling pal_lld.c Compiling usb_lld.c Compiling board.c Compiling test.c Compiling testthd.c Compiling testsem.c Compiling testmtx.c Compiling testmsg.c Compiling testmbox.c Compiling testevt.c Compiling testheap.c Compiling testpools.c Compiling testdyn.c Compiling testqueues.c Compiling testsys.c Compiling testbmk.c Compiling shell.c Compiling memstreams.c Compiling chprintf.c Compiling usbcfg.c Compiling main.c Linking build/ch.elf Creating build/ch.hex Creating build/ch.bin Creating build/ch.dmp text data bss dec hex filename 34465 1568 5499 41532 a23c build/ch.elf Creating build/ch.list Done 22:45:20 Build Finished (took 18s.211ms)
I updated references to
board like the
using Eclipse doc
PROJECT_LOC does not refer to ChibiOS root by default, though.)
This cleared a lot of the Eclipse code warnings.
Some references still don't seem to check out.
I don't think I can use GDB with the Maple, but I might try that with
I could add
dfu-util with the previous arguments as an external tool
and run it, though.
For some reason I also had to use
Zadig to switch the driver over
Blog: Chibios Windows redux
ch> info Kernel: 3.0.1 Compiler: GCC 4.9.3 20150529 (release) [ARM/embedded-4_9-branch revision 224288] Architecture: ARMv7-M Core Variant: Cortex-M3 Port Info: Advanced kernel mode Platform: STM32F10x Performance Line Medium Density Board: LeafLabs Maple Mini Build time: Nov 12 2015 - 23:34:54
Tests succeed as before.
More progress will have to wait for another day. So far, it's hard to see Eclipse providing much value here. Especially since it doesn't use the screen estate very efficiently. Despite that, the editor with its reference completions and things might come in handy. I recall CCS being relatively comfortable as IDE's go. Most of the good there was probably the integrated Debugging facilities in the tiva Launchpads.