Search code examples
.netexceptionidertos

choosing RTOS, CPU and IDE to help with splitting .NET app in two: embedded(firmware) app and windows(.NET) app


choosing RTOS, CPU and IDE to help with splitting .NET app in two: embedded(firmware) app and windows(.NET) app


Solution

  • RTOS, TCP/IP, Filesystem, and USB need not be tightly integrated (i.e. you do not necessarily need an RTOS that includes all those already), it is entirely possible, and in fact not too difficult to obtain all those components independently and integrate them yourself. That would give you the widest choice of solution. For example, I have successfully integrated Keil's RTX kernel (free with their ARM toochain) with ELM FatFs, and STMicroelectronics' STM32 USB library. That said, Keil also provide an extended (non free) library that includes TCP/IP, USB, and filesystem that would be easier to integrate.

    However there are many possible integrated solutions, as a one-stop shop, Segger provide separate RTOS, TCP/IP, USB and file-system libraries that can be easily integrated. f cost is an issue eCos os an open source OS with all those things includes and a large ecosystem of contributed code and libraries.

    For tight coupling with .NET on the PC you might do better using .NETmicro on the embedded system, but that is not real-time capable and requires about 300Kb jut to boot as opposed to perhaps 30Kb for an RTOS with USB, TCP/IP and a filesystem.

    You mention CPU choice in the title, but not in the question. You need to consider performance requirements and I/O capability. Obviously if it supports Ethernet and USB on-chip that would be a good start. Many microcontrollers have these peripherals, but the widest choice of vendors for a single architecture can be found in ARM based devices. I suggest that you look at STM32 or Freescale Kinetis devices, being ARM Cortex M3/4 devices with a wide selection of on-chip peripheral combinations and development boards.