The first version of uC/OS was published in 1992. uC/OS-II in 1998 and uC/OS-III in 2009.
I would invite you to download any of the uC/OS-III books (in PDF format) for free from the Micrium website: www.micrium.com. The book is somewhere close to 900 pages compared to the 200 or so pages for the 1st book.
of course, but back then more than 10 years ago, uC/OS wasn't available for former Mitsubishi (actual Renesas) so the only solution was to write my own kernel. I must admit that I've used your book "uC - The Real Time Kernel" and I must say thank you for that.
bobybacs: The best solution is to write your own RTOS if uC/OS doesn't fit, I have written some years ago my own RTOS for MSP430 family, also for Renesas and for 386EX. Then you can change the scheduling algortithm as you like. It's preaty easy to write a minimalist RTOS for small CPU
Well, writing your own kernel is interesting and could be a fun exercise but, if your company is paying you to develop a product you might consider getting something off-the-shelf. For example, uC/OS-II and uC/OS-III are quite scalable and can thus fit on small MCUs. If these two kernel don't satisfy your requirements then you can always find something that will.
@cghaba: The best solution is to write your own RTOS if uC/OS doesn't fit, I have written some years ago my own RTOS for MSP430 family, also for Renesas and for 386EX. Then you can change the scheduling algortithm as you like. It's preaty easy to write a minimalist RTOS for small CPU
On the subject of statistics, don't some RTOSs provide tools for profiling the system thereby allowing one to fine-tune the system?
Yes, for example, we have a cool tool called uC/Probe that displays uC/OS-III statistics at run-time. In fact, that's just a subset of what uC/Probe can do because it also allows you to display 'any' of your own variables at run-time. I'll show a screen shot of that on day 5.
There are also other 'profiling' tools that shows the tasks on a timeline. Micrium will be introducing such a product in August.
Thanks. Would it be feasible to release any allocated resources upon (or just prior to) deleting a task?
Well, if a task delete itself, yes. If a task is deleting another task, that task might not know that the other task owns resources or, in fcat, that many other tasks will be sharing those resources. Of course, if you write the whole code base then you might know that you'll also need to delete some of these other tasks.
When you say deleting tasks that still have resources, what is meant by a bad situation... locked up waiting for reseources? (is that known as deadlock?)
Well, suppose a task is 'waiting for a message' from another task and that other task gets deleted then the waiting task will never get that message. Of course, if the task waits with a timeout, it will eventually run so, you might be able to take corrective actions.
If the task being deleted locked a semaphore (we'll see later this week) then other tasks would not be able to access those resources.
if every tasks are in pending state then the idle task could bring the CPU in idle state, is that correct ? Who would wake up the CPU after one of the pending task would be ready to execute ? Maybe it's only a poor design, but in theory it would be possible
uC/OS-II is NOT free for commercial use. In other words, if/when you decide to use uC/OS-II in a commercial product then you must purchase a license allowing you to use uC/OS-II in that product. Please contact email@example.com for licensing details.
However, uC/OS-II is free to use for educational use.
Hi Jean. I noticed some fading in and out of audio (about 5 - 10 second intervals) both yesterday and today. It's as the mike is on a lapel and partially hidden by your collar. But it's still understandable.
Are you going to discuss how gathering task statistics in the kernel is used Jean?
Yes, I will briefly discuss this on day 5. Basically, you can display how often a task executes by counting the number of context switches to that task (the kernel would do that). The fact that the counter doesn't increment would indicate that the task is not executing.
Determining the CPU usage on a per task basis could confirm whether your task takes as much time as you'd expect it to or, if not, maybe it's a problem.
No, the OS is not free - go to http://micrium.com/buy/licensing/ and you can read how our licensing works and watch a little video. Note that the CC button brings up several language translations for those who would like them."
I don't recommend deleting tasks for a number of reasons. One of them is because the task being deleted could own resources that other tasks are expecting. If those resources are not released then you can end up in a bad situation.
If you are having trouble with the audio, please try using FF or Chrome. Many people experience issued with IE. Also, please make sure you have the current version of Flash. That makes a big difference.
Hi all - The audio is live! If you don't see the audio bar at the top of your screen, refresh your browser. It may take a few refreshes to appear. If you are using IE and are having trouble with the audio, please try FF or Chrome. Some people experience issues with IE. Also, some companies block live streams. If yours does, the class will be available on-demand immediately after the lecture ends.
Please note that some companies block live audio streams. If you don't hear the audio when the class starts, try refreshing your browser. If you still have problems, the class will be archived immediately following the live taping.
Is there somewhere that I can go to get the complete audio from yesterdays presentation? I had the slides but only was able to get part of the audio after Jean had actually launched into the Q&A. It seems that our system buffered the audio and would not release it to me to hear until near the end of the session. On top of that the first part of the audio was not included.
I tried leaving the session and then rejoining. The audio would come on for a second or two and then disappear.
Truchard will be presented the award at the 2014 Golden Mousetrap Awards ceremony during the co-located events Pacific Design & Manufacturing, MD&M West, WestPack, PLASTEC West, Electronics West, ATX West, and AeroCon.
In a bid to boost the viability of lithium-based electric car batteries, a team at Lawrence Berkeley National Laboratory has developed a chemistry that could possibly double an EV’s driving range while cutting its battery cost in half.
For industrial control applications, or even a simple assembly line, that machine can go almost 24/7 without a break. But what happens when the task is a little more complex? That’s where the “smart” machine would come in. The smart machine is one that has some simple (or complex in some cases) processing capability to be able to adapt to changing conditions. Such machines are suited for a host of applications, including automotive, aerospace, defense, medical, computers and electronics, telecommunications, consumer goods, and so on. This discussion will examine what’s possible with smart machines, and what tradeoffs need to be made to implement such a solution.