2

Please note: Even though I'm specifically talking about an RTOS called Embox here, and even though I'm talking about AVR/ARm, I think this question can be answered by anybody whose ever done a fair amount of C-based MCU programming.

I'm interested in building Embox locally on my machine and seeing if I can flash/deploy it to an AVR/ARM-based MCU. Unfortunately I'm on Windows 7, and so I had to install MinGW to get access to things like GCC (g++, make, etc.) I have written a simple "Hello World" C program and got it building successfully into a helloworld.exe executable.

I cloned Embox and followed their instructions for buildig their ARM-STM32_V1 template, but ran into a slew of errors that I'm still wading through. Don't worry, that's not my question here. What I am wondering, since I'm currently blocked, is much more basic and fundamental to the understanding of RTOSes and MCU programming:

  • What is the deployable unit(s) of Embox? That is, when its all said and done, what file(s) will I be flashing on to the MCU, effectively deploying the RTOS to it?
  • How do you deploy these files to an MCU? Can I assume SPI, UART, USART, JTAG, etc. are the usual suspects? How can I tell what approach is compatible with Embox and/or the MCU?
  • How do you configure the MCU to start Embox when the chip powers on? Or does that happen for you as a result of flashing the files to the MCU?

If someone could help answer these, I think I'll have a much better understanding of the "big picture" behind MCU-based programming.

smeeb
  • 4,820
  • 10
  • 30
  • 49

1 Answers1

3

What is the deployable unit(s) of Embox?

As most of RTOS for MCU Embox offers deployable unit as a single image. For Embox It has ELF format and is placed in "./build/base/bin/embox" file.

How do you deploy these files to an MCU?

It depends on MCU not RTOS. The most popular hardware interface for loading images is JTAG. Here is an example how load image on STM32Discovery

How do you configure the MCU to start Embox when the chip powers on?

Starting procedure is also CPU dependently, but in common it can be presented as follow: When the chip powers on PC (program counter) is setup to 'start adress' and CPU begin executing the command.