Simplifying RTOS
Most of today’s RTOS offerings are too complicated. Here are some reasons why this is so: Insufficient thought , before designing, as to what is really essential and what is not, leading to redundancy...
View ArticleDynamic Memory Allocation
Today, I am working on the dynamic allocation scheme for SKC++. It’s very simple (as everything is supposed to be in SKC++), so it won’t be long before I post again, reporting on progress. In the...
View ArticleSKC++: First Things Second!
I have been thinking about SKC++ for longer than I have been blogging about it and dynamic memory allocation should not have been my first topic. Before all else, I should have taken the trouble to...
View ArticleSKC++ and Dynamic Memory
Today’s post is about the strategy of dynamic memory handling in SKC++. Last time, I recommended a short slide presentation for perusal. I will not repeat here what that says, except to quote the last...
View ArticleSKC++: Dynamic Memory Classes
Following on from previous postings, here is a UML diagram showing two classes concerned with dynamic memory handling: Bear in mind that everything shown in this blog is work in progress; things will...
View ArticleSKC++: Prototype Task Class
Today’s post discusses the basic structure and characteristics of an SKC++ task. Here is a picture of the class, together with a skeletal but updated version of the Pooled class, from which Task...
View ArticleSKC++: Event Handling
Systems running a pre-emptive kernel are essentially event-driven. Primary events are things which happen outside the software system, in the real world. These are usually communicated to the software...
View ArticleSKC++: Tasks and Timers
Just possibly, you may have been wondering why Task::wait does not include a timeout parameter. The answer is that it does not need to because a timeout is itself an event, so this can be waited for...
View ArticleSKC++: Pause for Thought
I’ve been looking over my SKC++ postings so far and have come to the conclusion that it’s time for a review. Also, before launching into the details of the kernel’s message-passing techniques, I need...
View ArticleSKC++: Message-Passing Principles
Message-passing is used, in an RTOS-based system, to provide a safe way of transferring data from one context to another or, in other words, from task to task. What is safe, though, is not always...
View ArticleSKC++: Message-Passing Uses
Before jumping into the design of the message-passing classes, it is as well to consider how the facility might be used in applications. I start with a common, nicely encapsulated but rather restricted...
View ArticleSKC++: Message-Passing Classes
To avoid clutter, I haven’t shown the class methods. On this occasion, I’ll just describe the classes and their characteristics in the text. Message and aMessage The class aMessage, shown in green is...
View ArticleSKC++: Sending Messages
This is a relatively short article, as the sending of messages from one task to another is straightforward. I decided to defer its counterpart, “Receiving Messages”, until next time because there are...
View ArticleSKC++: Change to “send” function
I have simplified the prototype for send in order to make its use a little easier and also to improve the efficiency of the implementation. Here is the new prototype: void send(MessagePtr&...
View ArticleSKC++: Receiving messages
Although I separated the ideas of posting an untrammelled event, using post, and sending a message (which also posts an event), using send, this is not such a good idea for receiving messages. One of...
View ArticleSKC++: Mutual Exclusion
Just a short article today as SKC++’s mutual exclusion facilities follow a familiar pattern: It seemed like a good idea to provide another abstract interface as there can, in principle, be several...
View ArticleSKC++: Interrupt handling
When it comes to interrupts, SKC++’s guiding principle is “minimum interference”. Some kernels require that interrupts be processed internally, the internal Interrupt Service Routine (ISR) calling out...
View ArticleSKC++: No semaphores!
Hypothesis: SKC++ doesn’t need semaphores. If you disagree with this, please comment, with supporting arguments. In the meantime, I’ll present a few arguments of my own, supporting this hypothesis,...
View ArticleDynamic Memory Software Updated
After a bit of a lull, I have resumed work in earnest on what will become, I hope, a useful and fairly comprehensive C++ software library for embedded and real-time developers. To begin with, I am...
View Article
More Pages to Explore .....