- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
What RTOS can be used with PSoC 4?
Maybe, is used or planned to be used?
Knowledge Base gave answer for PSoC® 5LP:
Micrium uC/OS – III and FreeRTOS. Are these suitable for PSoC 4?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Looks like FreeRTOS can size into 4K ROM and 236 bytes RAM,
so quite feasable on PSOC 4.
MCU support listed at website -
- Supported processor families: PSoC 5 ARM Cortex-M3
- Supported tools: GCC, ARM Keil and RVDS - all in the PSoC Creator IDE
Maybe a port possible ?
Regards, Dana.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for complementing:) answers. I'd remembered something and find the plentiful resource:
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I write a RTOS for cortex-m0, such as psoc4.
It works very well in my product.
It support:
15 tasks (not include idle)
timer, semphore, flag, mutex, remote call service, critical section service.
4 levels priority, round robin schedule for each level.
no interrupt mask/disable for critical section. it uses SVC and PendSvc.
etc...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
it just use 128 bytes ram or less if you want. The most usage of ram is stack ram for each task.
It is evry sufficien if it can use 1k byte ram.
In my product, it just occupis 300 bytes for 4 task, one for uart, on for I2C(LCD), one for service routin and one for idle task.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@Hogarth
I recently finished the same! How did you overcome the bug in malloc() ? I had to write my own memory-manager.
Bob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
T tried freertos.
3 tasks took 2600 bytes with minimal stack. So ram was too small for simple jobs.
elemnt14 shows example, which contains nothing except blinking leds.
And this is what Rtos can be used for on PSOC4.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I allocated stack of 100. I think it's 400 bytes, even if default freertos variable was char.
I this freertos use 32bit variables which cause hudge losses.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@bob, sorry, i don't use malloc. and i would like to disable heap created by creator ide.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
http://www.j1sys.com/products/psoc/SAK-PROTO-FreeRTOS.html This one looks good also. I have not tried it yet however!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@Bob, @Hogarth
is there an example for similar "mini-RTOS" as you made, or an explanation/guidelines how to make one yourself?
I'm working on a complicated project (many tasks, interfaces, end-points) based on PSOC 4, and having some kind of OS can make things easier...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@Michael
I posted my RTOS (named ARTS) in the "PSoC Community Components" forum. Feel free to go through it, it is well documented 😉
Any comments welcome.
Bob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you Bob.
I'll check it out.