[Theo] tipped us off about something that every TI Evalbot owner may be interested in, the The manual and source code for the uC/OS-III kernel is now available for download. UC/OS-III is what came with the evalbot, and it is a realtime operating system for that and many other chips. The problem with it for most hobby level people is that just the manual was 100$, and unless you already knew something about the system it did not sound very attractive.
But now micrium, the author of US/OS-III, has released the source code free to use in non commercial applications, and manuals for every chip supported it may drum up some more interest in this neat little RTOS. Though it does require a subscriber login.
Excerpt:
Dear Subscriber,
The ideal scenario for developers wishing to evaluate embedded software is to be granted easy access to the software’s full source code. In the case of Micriµm’s celebrated real-time kernel, µC/OS-III, this ideal has become reality. Last week, Micriµm announced a new policy for µC/OS-III: the kernel is now “source available.” µC/OS-III’s incomparably clean source code, as well as PDFs of the popular books describing the kernel, can be downloaded from Micriµm’s Web site at no cost, giving developers a refreshingly fast and simple means of beginning an evaluation
Cool, just need some free evalbot now ;)
r/t OSs only abstract GPIO and MMU calls, they don’t handle paging and topology etc..
You could role your own inside a month with any chip sdk..
This is non-deterministic operating system. Imagine not having to split up tasks into time slices, it’s actually a pretty good system
Does anybody have an opinion on µC/OS-III vs. FreeRTOS?
awesome thank you. dling now.
Great news. I want the book to help out with the evalbot I have.
what does “Source Available” mean? is that “Open-Source with caveats”?
“You need to purchase a license once you decide that you will be using µC/OS-III in your project(s). See our licensing information”
read the first comment
damn… this junk is worthless. give us some open source stuff.. TI stuff with exampl es of usb/ethernet/sdcard… uc/os3 my butt. it took them 20 years to develop this unuser-friendly generic kernel… really? i wish someone would write a kernel like java with proper documentaton and names that are easy to remember.
are you listening TI? example code that is not already built into the unit at shipping time is required. There are several undocumented/uncoded areas which leave the evalbot sitting on my shelf.
are you listening micrium? shit like “OSTCBCurPtr–>StkPtr =R14” does not encourage me to attempt to learn your convoluted methods… in fact im more likely to grab the processor manual and work directly with the registers.
TI is a business, they’ll never support calc modding or giving full docs about their IP cores..they are all in it for business.
The only reason you’re seeing TI dev stuff for independents is because the market that was there in the 70s and 80s is back again..same for radioshack..
That being said RTOS dev is super simple..there is barely any abstractions..
Adam, I just want to point out that the line of code you mentioned (OSTCBCurPtr–>StkPtr =R14) actually does make a lot of sense. It involves the current (stack) pointer of the task control block of the operating system. Taken in that context, I’d be hard-pressed to think of a better name for the structure.
Having used both µC/OS-II/III and FreeRTOS for a few years now, I’ve had almost no complaints about either RTOS. I think anyone who wants to get better at µcontroller programming should look into them, because (once you learn the API) the RTOSes make the programs you write much simpler.
You’re not supposed to *need* to modify that internal stuff. That’s the whole point of using someone else’s work – not reinventing the wheel. By all means, it’s good to understand how stuff works under the hood, and one of the benefits of having source code is being able to look at how someone did it; if you want to roll your own, though, go ahead. Or you could be like Newton and “see far because I stand on the shoulders of giants”, whether it’s micrium or freertos or some other commercial or open-source project.
To anyone who thinks they don’t need an RTOS: You’re right. You can do a lot of stuff without it. Strictly speaking, you don’t need UARTs or DMA either, you can just bit-bang the data out the pins. Watch out for the timing, though; make sure you have all of the interrupts and clocks set properly, and remember that your other processing is going to get interrupted all the time. Would you rather do that? No, because it’s freakin’ stupid to discard the benefits of supporting hardware if you’ve already got it in the processor, and everybody builds it into the processor because it’s so clearly useful. Same thing here. You don’t need a UART for simple discrete I/O, and you don’t need an RTOS for simple operations either; but once you start doing tight bit timing and bit stuffing and communications-type stuff, let the hardware support help you out, and when you can decompose your activities into multiple tasks sharing asynchronous timeslices, you can wind up reinventing the concept of RTOS or you can just use one that other people have already put a lot of thought into.
and RIGHT after i chose NXP and baught the full version of there software
… fuck …
Happily ignoring this one. rtOSses are a dime a dozen, and in 80% of the cases you can do just fine without one and just programming the bare metal. At least, that’s been the case for me.
Finally!
I can use my eval bot!
Amen to that! The second book actually explains the stellaris ware code… I could never make heads or tails of the stuff so this is a very welcome relief!
(blows dust off evalbot box buried in closet)
I remember using this with an FPGA based soft-core processor for an embedded systems class years ago and all this did was piss me off.
It was overly complicated for what it had to do.
So yeah, worthless.
The µC/OS-II book is a classic, covering almost every line of the kernel code with explanations on why certain design decisions were made.
The µC/OS-III book on the other hand is only an API manual and offers nothing of interest if you’re not using the kernel.
Wow, lots of hate for uC. If nothing else, grab the source to see what good commenting style looks like. Going deeper, maybe you can learn what a really solid RTOS looks like. This thing has been evaluated, stressed, and proven in medical life-support apps. That means it will do the same thing every time, no matter what.
Sheesh, is it that hard to accept that sometimes commercial software is actually worth it?
uCII is a step down from UCIII in my opinion. I think they tried to do too much with III. It isn’t as well documented and is harder to use because of it.
My guess as to why we see it being offered for free, is because it wasn’t selling. Prefer CMX any day.
“They” were giving away this set of books at last year’s Embedded Systems Conference (I think) as well. The first book is organized like a textbook; probably a pretty useful introduction to embedded operating systems, or operating systems in general, for people who’ve never thought about it.
For most applications, RTOS is not necessary and is a big resource hog. It’s good to learn the concepts and roll your own subset. Also, I advocate learning the fundamentals of a state machine framework such as from quantum leaps. It will help to architect your firmware and think about how to structure your program before you do any coding.
just don’t want to register to take a look. too busy anyway.
How much does a license cost? I always feel a jittery when they don’t tell you up front.
I’ve used both uC/OS-III and FreeRTOS on a Renesas dev board, and I much prefer FreeRTOS. Along with being free and open source, it’s much simpler to setup and use, and the footprint is very small. There’s lots of documentation, and ports to most microcontroller varieties (with the ability to custom port to any new architectures). uC/OS-III may be better for industrial/medical applications with rigid stability requirements, but for anything else I’d go with FreeRTOS.
Who needs that proprietary sh*t when FreeRTOS is around?
Its a nice gesture, but the uC OS III is unstable as shit.
The bot was a nice idea, but they used almost everything of interest on the chip itself.
lol
“Though it does require a subscriber login.”
Stopped reading there.
ditto
Actually their name would be pronounced “Micrimim” (or “Micrimuum” if you’re American)
I hate it when people misuse Greek letters. It’s not a “u”, it’s an “M”!
uC/OS-III sucks. The thing was tripping over itself, crashing, resetting, hanging when I first used it. Micrium has been releasing patches & fixes, but seriously Micrium, WTF?
The uC/OS-II was a solid, clean, stable, easy to use kernel. III is a bloated, slow, complex pig. Micrium really screwed the pooch by locking down the code at the beginning. Their community is, I’m sorry Micrium, much smarter, more motivated and more competent. Their kernel would be much further along if they’d just opened it to smarter eyes than those within the company. Wondering if LaBrosse ever looks at code anymore?
Kernel has gotten better, I’m still aware of 1 (techincally, 2) bugs in it. The company makes you jump through hoops (register, log in, etc.) just to get the code.
GO with FreeRTOS. Larger community, wider CPU platform support, more responsive support, and cleaner kernel. Other than that, uC/OS-III is great :-(