Author Topic: which ARM rtos?  (Read 16926 times)

0 Members and 1 Guest are viewing this topic.

Offline ralphd

  • Frequent Contributor
  • **
  • Posts: 442
  • Country: ca
    • Nerd Ralph
which ARM rtos?
« on: October 02, 2015, 01:36:20 pm »
I've decided to get into ARM development, but not vendor specific.  Looking at freertos, it seems to support a number of ARM MCUs.  I also read about mbed OS, which at least sounds like it will work on lower-end devices than freertos.
I'm thinking of starting with a 32K or even 16K stm32f030, which I think is too small for freertos.  Anyone know about mbed OS?
Unthinking respect for authority is the greatest enemy of truth. Einstein
 

Offline andyturk

  • Frequent Contributor
  • **
  • Posts: 892
  • Country: us
 

Offline jnz

  • Frequent Contributor
  • **
  • Posts: 467
Re: which ARM rtos?
« Reply #2 on: October 02, 2015, 05:26:30 pm »
I don't like much about mbed. It's like too much like Arduino for me to consider for a serious project.

I've been using Keil's RTX. Which like FreeRTOS (can be?) it's a CMSIS RTOS. So the idea is you could plug in any RTOS under the CMSIS layer. I've been very happy with it so far while staying under 32K rom.
 

Offline ralphd

  • Frequent Contributor
  • **
  • Posts: 442
  • Country: ca
    • Nerd Ralph
Re: which ARM rtos?
« Reply #3 on: October 02, 2015, 05:47:08 pm »
I don't like much about mbed. It's like too much like Arduino for me to consider for a serious project.

I've been using Keil's RTX. Which like FreeRTOS (can be?) it's a CMSIS RTOS. So the idea is you could plug in any RTOS under the CMSIS layer. I've been very happy with it so far while staying under 32K rom.

Looking at the mbed library API, it does look arduino-ish.  Looking at the source I see the mbed OS uses the same DigitalIO API.
https://github.com/ARMmbed/mbed-os

I forgot to mention that I'm only interested in open-source, so Keil is out.

Unthinking respect for authority is the greatest enemy of truth. Einstein
 

Offline ralphd

  • Frequent Contributor
  • **
  • Posts: 442
  • Country: ca
    • Nerd Ralph
Re: which ARM rtos?
« Reply #4 on: October 02, 2015, 06:11:33 pm »
https://github.com/ChibiOS/ChibiOS/blob/master/os/nil/src/nil.c

ChibiOS/RT looks more interesting than nil, since the comparison page says it is CMSIS-RTOS compatible.  The docs say 2-6KB for RT vs ~1KB for nil.
I wish they had a clear list of supported MCUs.  The release notes have lots of references to STM32F parts, but I don't see any LPC parts listed.
Unthinking respect for authority is the greatest enemy of truth. Einstein
 

Offline jnz

  • Frequent Contributor
  • **
  • Posts: 467
Re: which ARM rtos?
« Reply #5 on: October 02, 2015, 06:21:27 pm »
Keil's RTX is free now, although I can't remember if it's open source or not. It didn't used to be free. :-//

All I know is that I've been using RTX since June, and while I know I'm not pushing it hard, I've been very pleased with the performance and it's been bug free. I've even done things I was sure were going to mess it up (100% thread loads and some weird messaging/signaling) and it just chugged right through.

So either way, whichever you pick, I'd definitely select a CMSIS RTOS as it's not a lot of overhead but would make switching to other options infinitely easier.
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 18949
  • Country: nl
    • NCT Developments
Re: which ARM rtos?
« Reply #6 on: October 02, 2015, 06:28:10 pm »
In general CMSIS is a very thin layer (basically the systick timer and interrupt controller) so any RTOS written for an ARM Cortex Mx series is likely to be CMSIS based even if it doesn't specifically says so.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline AndyC_772

  • Super Contributor
  • ***
  • Posts: 3549
  • Country: gb
  • Professional design engineer
    • Cawte Engineering | Reliable Electronics
Re: which ARM rtos?
« Reply #7 on: October 02, 2015, 07:06:28 pm »
Unless you have a good commercial reason to do so, I'd skip the ARM chips with the smallest memory. Go for a device with at least 256k; the incremental cost is tiny, and you'll find your code size does tend to be larger than it would be on an 8-bit device.

Offline ralphd

  • Frequent Contributor
  • **
  • Posts: 442
  • Country: ca
    • Nerd Ralph
Re: which ARM rtos?
« Reply #8 on: October 02, 2015, 07:30:42 pm »
Unless you have a good commercial reason to do so, I'd skip the ARM chips with the smallest memory. Go for a device with at least 256k; the incremental cost is tiny, and you'll find your code size does tend to be larger than it would be on an 8-bit device.
I can get 10pcs of f030k6 (32K flash) for $6.
The few 256K parts I've seen have been around $2 or more.  Can you point to any in the $1 range?

I already have lots of Unix/C experience, so more complex projects I'd just go with an embedded linux solution such as openwrt and run it on a $7 wifi router stick.
Unthinking respect for authority is the greatest enemy of truth. Einstein
 

Offline jnz

  • Frequent Contributor
  • **
  • Posts: 467
Re: which ARM rtos?
« Reply #9 on: October 02, 2015, 08:14:38 pm »
Unless you have a good commercial reason to do so, I'd skip the ARM chips with the smallest memory. Go for a device with at least 256k; the incremental cost is tiny, and you'll find your code size does tend to be larger than it would be on an 8-bit device.
I can get 10pcs of f030k6 (32K flash) for $6.
The few 256K parts I've seen have been around $2 or more.  Can you point to any in the $1 range?

I already have lots of Unix/C experience, so more complex projects I'd just go with an embedded linux solution such as openwrt and run it on a $7 wifi router stick.

I agree with Andy, stepping up in core is usually noticeably more expensive but stepping up in memory is (for me in the USA) only tiny increases. I'm also basing any prices on 1k units, so there is that.

The issue was for me, I wanted to use the smallest physical packages (32/36/48pin) and memory is just more limited in those. I've tossed up my hands on my latest project however, I'm just going to use a 512k 100pin STM32F4 because I don't want to have to think about external nor/nand for temporarily storing bootloader/application flashes.
 

Offline Rasz

  • Super Contributor
  • ***
  • Posts: 2338
  • Country: 00
    • My random blog.
Re: which ARM rtos?
« Reply #10 on: October 02, 2015, 08:36:12 pm »
Who logs in to gdm? Not I, said the duck.
My fireplace is on fire, but in all the wrong places.
 

Offline ralphd

  • Frequent Contributor
  • **
  • Posts: 442
  • Country: ca
    • Nerd Ralph
Re: which ARM rtos?
« Reply #11 on: October 02, 2015, 10:32:51 pm »
http://dmitryfrank.com/projects/tneo
Interesting, but I'd like to go with an RTOS that has some traction in commercial products.  If I learn something like freertos, I might be able to pick up some contract work related to it.
Unthinking respect for authority is the greatest enemy of truth. Einstein
 

Offline ralphd

  • Frequent Contributor
  • **
  • Posts: 442
  • Country: ca
    • Nerd Ralph
Re: which ARM rtos?
« Reply #12 on: October 02, 2015, 10:40:02 pm »
I don't like much about mbed. It's like too much like Arduino for me to consider for a serious project.

I've been using Keil's RTX. Which like FreeRTOS (can be?) it's a CMSIS RTOS. So the idea is you could plug in any RTOS under the CMSIS layer. I've been very happy with it so far while staying under 32K rom.
I think I'll do some reading on CMSIS-RTOS, and how compatible freertos is or is not.
Unthinking respect for authority is the greatest enemy of truth. Einstein
 

Offline ralphd

  • Frequent Contributor
  • **
  • Posts: 442
  • Country: ca
    • Nerd Ralph
Re: which ARM rtos?
« Reply #13 on: October 02, 2015, 10:49:38 pm »
Seems like the main FreeRTOS guy doesn't think much of CMSIS-RTOS.
http://www.embedded.com/electronics-blogs/industry-comment/4237614/Who-wins-when-Cortex-M-adds-RTOS-abstraction-layer-
He makes false assumptions though, like assuming an os abstraction layer always adds overhead.  When it is just function name mappings, that can be done in a header file with no overhead.
Unthinking respect for authority is the greatest enemy of truth. Einstein
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 18949
  • Country: nl
    • NCT Developments
Re: which ARM rtos?
« Reply #14 on: October 03, 2015, 08:08:09 am »
Unless you have a good commercial reason to do so, I'd skip the ARM chips with the smallest memory. Go for a device with at least 256k; the incremental cost is tiny, and you'll find your code size does tend to be larger than it would be on an 8-bit device.
I can get 10pcs of f030k6 (32K flash) for $6.
The few 256K parts I've seen have been around $2 or more.  Can you point to any in the $1 range?
Why make life hard for yourself for a few dollars? Just start with a big device. It will have more cool peripherals to play with and you don't run into memory problems just as things start to get fun!
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline andersm

  • Super Contributor
  • ***
  • Posts: 1120
  • Country: fi
Re: which ARM rtos?
« Reply #15 on: October 03, 2015, 08:42:26 am »
In general CMSIS is a very thin layer (basically the systick timer and interrupt controller) so any RTOS written for an ARM Cortex Mx series is likely to be CMSIS based even if it doesn't specifically says so.
CMSIS-RTOS is an attempt at a standardised API for RTOSes, like eg. ┬ÁITRON. If you download ARM's CMSIS distribution it includes the CMSIS-RTX implementation, which is actually Keil's BSD-licensed RTX kernel with an API wrapper. CMSIS-RTOS offers all the basic services you'd expect, but perhaps to not limit implementations it eg. offers only seven levels of task priorities (-3 to +3).

Offline ralphd

  • Frequent Contributor
  • **
  • Posts: 442
  • Country: ca
    • Nerd Ralph
Re: which ARM rtos?
« Reply #16 on: October 03, 2015, 03:43:09 pm »
Thanks, that clears up some of the confusion.
If I understand it correctly, mbed OS is not based on CMSIS-RTOS.
Unthinking respect for authority is the greatest enemy of truth. Einstein
 

Online Jeroen3

  • Super Contributor
  • ***
  • Posts: 3404
  • Country: nl
  • Embedded Engineer
    • jeroen3.nl
Re: which ARM rtos?
« Reply #17 on: October 03, 2015, 03:50:59 pm »
Are you looking for an RTOS with or without peripheral abstraction?

https://github.com/ChibiOS/ChibiOS/blob/master/os/nil/src/nil.c

ChibiOS/RT looks more interesting than nil, since the comparison page says it is CMSIS-RTOS compatible.  The docs say 2-6KB for RT vs ~1KB for nil.
I wish they had a clear list of supported MCUs.  The release notes have lots of references to STM32F parts, but I don't see any LPC parts listed.
The kernel itself is made for ARM Cortex. That means that if you choose the compatible ARM instruction set, it'll run on all targets.
For the HAL (Hardware Abstraction Layer) things are different.
 

Offline richardman

  • Frequent Contributor
  • **
  • Posts: 427
  • Country: us
Re: which ARM rtos?
« Reply #18 on: October 06, 2015, 06:57:55 am »
IMHO, one problem with the existing RTOS is that "everything talks about IoT, but no one is doing anything about it".

There are two classes of microcontrollers: the "big" ones where they handle the kitchen sink tasks, and the little ones where they handle sensor data.

Show me an RTOS that scales both ends and make communication easy between all the systems, without using just TCP/IP or the like.
// richard http://imagecraft.com/
JumpStart C++ for Cortex (compiler/IDE/debugger): the fastest easiest way to get productive on Cortex-M.
Smart.IO: phone App for embedded systems with no app or wireless coding
 

Offline andyturk

  • Frequent Contributor
  • **
  • Posts: 892
  • Country: us
Re: which ARM rtos?
« Reply #19 on: October 08, 2015, 05:18:29 am »
Keil's RTX is free now, although I can't remember if it's open source or not. It didn't used to be free. :-//
yuck.

I selected CMSIS-RTOS RTX for a commercial project and have been using it for a year. It works well enough, but the code makes me hold my nose at times. ChibiOS is a much cleaner implementation IMO, but the licensing is more complicated.
 

Offline ralphd

  • Frequent Contributor
  • **
  • Posts: 442
  • Country: ca
    • Nerd Ralph
Re: which ARM rtos?
« Reply #20 on: October 09, 2015, 09:28:55 pm »
Someone on HaD pointed out that the Keil compiler/IDE is free for STM32F0.
http://www2.keil.com/stmicroelectronics-stm32/mdk
Unthinking respect for authority is the greatest enemy of truth. Einstein
 

Online Jeroen3

  • Super Contributor
  • ***
  • Posts: 3404
  • Country: nl
  • Embedded Engineer
    • jeroen3.nl
Re: which ARM rtos?
« Reply #21 on: October 10, 2015, 11:32:29 am »
Too bad their debugger is not.
 

Offline d21d3q

  • Newbie
  • Posts: 1
  • Country: pl
Re: which ARM rtos?
« Reply #22 on: February 20, 2017, 12:06:15 pm »
Why so few ppl mention here freertos?
 

Online Jeroen3

  • Super Contributor
  • ***
  • Posts: 3404
  • Country: nl
  • Embedded Engineer
    • jeroen3.nl
Re: which ARM rtos?
« Reply #23 on: February 20, 2017, 12:11:42 pm »
Because, contrary to the name, its not free. Only the pure kernel is.
 

Offline voltsandjolts

  • Supporter
  • ****
  • Posts: 827
  • Country: gb
Re: which ARM rtos?
« Reply #24 on: February 20, 2017, 12:45:45 pm »
Because, contrary to the name, its not free. Only the pure kernel is.

That needs some clarification.
FreeRTOS + TCP + FAT are available for Free under the GPL license.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf