Re:FreeRTOS meets Rust
by tesseract on Tuesday September 27, 2016 @05:53PM
(#12593558)
The PDF manual sold by FreeRTOS, "Using the FreeRTOS Real Time Kernel - A Practical Guide", is worthwhile. I agree that the web documentation is somewhat lacking and suspect that for better or worse, it is that way in order to encourage buying the book.
Re:FreeRTOS meets Rust
by ansible on Tuesday September 27, 2016 @06:17PM
(#12593696)
I bought the book and looked through some example programs. That was enough for me to get going.
The main things you want to keep in mind is that the queues and such are not for large amounts of data. It is better, for example, to statically allocate three buffers, and then send the buffer number over a queue interface, rather than send the data itself, which involves two copy operations.
The other thing to pay attention to is that you should only be using the ISR specific versions of the API inside an ISR. That, and minimize the code in the ISRs in general, but that is applicable to anything.
Re:FreeRTOS meets Rust
by stephen_g on Tuesday September 27, 2016 @08:50PM
(#12594600)
The lack of documentation was one of the reasons I ditched FreeRTOS and moved to ChibiOS, which I'm enjoying a lot. It has a much nicer API and cleaner codebase, really good demo projects, and a good discussion forum where the main developer usually answers any questions in a day or two. Unfortunately it still isn't that much better in terms of written documentation though.
Re:FreeRTOS meets Rust
by ambrop7 on Wednesday September 28, 2016 @02:39AM
(#12595840)
The problem with FreeRTOS is that it comes without batteries included, like drivers, networking and filesystem. I see such features as a primary advantage of an RTOS compared to a home-grown solution without threads (i.e. just main and interrupts).
For those who like a full OS, RTEMS is a more complete solution.
Re:FreeRTOS meets Rust
by kirrent on Wednesday September 28, 2016 @03:17AM
(#12595969)
To be fair, that's by design and they make no secret of the fact that it's not a fully featured OS. FreeRTOS has a lot of that stuff available but I think that part of the reason it's so popular is because of how bare-bones, lightweight, and portable it is. From their FAQ:
What is a Real Time Kernel?
See the page "what is an RTOS" for a more detailed explanation than provided here.
A Real Time Operating System can provide many resources to application writers - including TCP/IP stacks, files systems, etc. The Kernel is the part of the operating system that is responsible for task management, and intertask communication and synchronisation. FreeRTOS is a real time kernel.
Re:FreeRTOS meets Rust
by rkangel on Wednesday September 28, 2016 @07:10AM
(#12596778)
For me though, that's an advantage. I just want the basic primitives that deal with the pre-emptive multitasking and then we'll build everything over the top.
The main things you want to keep in mind is that the queues and such are not for large amounts of data. It is better, for example, to statically allocate three buffers, and then send the buffer number over a queue interface, rather than send the data itself, which involves two copy operations.
The other thing to pay attention to is that you should only be using the ISR specific versions of the API inside an ISR. That, and minimize the code in the ISRs in general, but that is applicable to anything.
Although, libopencm3 has progressed nicely, so FreeRTOS + libopencm3 could now be a decent alternative to ChibiOS.
https://www.micrium.com/books/ucosiii/
https://developer.pebble.com/blog/2014/05/23/FreeRTOS-Modifi...
For those who like a full OS, RTEMS is a more complete solution.
A Real Time Operating System can provide many resources to application writers - including TCP/IP stacks, files systems, etc. The Kernel is the part of the operating system that is responsible for task management, and intertask communication and synchronisation. FreeRTOS is a real time kernel.