This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

'LightingBolt' - an open source scheduler for a STR9 is released

Hello all,

I have announced the release of LightingBolt about 2 months, but I did not get around to finish it entirely on time. My apologies for that - I was too busy at work, mainly. Now that the big moment has arrived, I would like to emphasize a few points:
* It was not my intention to create the fastest, smallest etc. ARM9 kernel out there. 'LightingBolt' is an experimental project - please do keep that in mind when/if using it. Please do not integrate it into any mission critical system without further testing.
* All the mistakes in it, is there are any, are indeed mine. Please inform me of such bugs so that I can address them.
* Please read the user manual that comes along with the software.
* Porting: I believe porting 'LightingBolt' to other ARM platforms (the LPC family for example) should not be too hard. Since I am working with an LPC2478 nowadays, that is certainly a very interesting venture.

Here is the previously posted (on this forum) summary of the 'LightingBolt' features:

"Lighting Bolt", an open source STR9 preemptive scheduler, will be released within two weeks. A separate announcement shall be made as to the exact release date along with a link to the "SourceForge" page dedicated to the project.

"Lighting Bolt" is based on my previous endeavour for the C167 controller (available at sourceforge.net/.../) but I feel that it is a much better, mature computer program. I have tried very hard to deliver a piece of quality software.
The following modifications have taken place to produce "Lighting Bolt":

* A very fast context switch, measured in [microseconds] at 48[MHz] (STR9 can run at up to 96[MHz]).
* A rewritten synchronization module. Semaphores are now truly task-safe and contain the correct logic. A new synchronization primitive (event) introduced.
All synchronization elements are linked statically, and there is no need to allocate/release them, or for this matter neither any other system resource, like timers. User does not need direct access to basic system data types to use the kernel. This enhances robustness.
* The system's priority queue has been completely rewritten. It is now logarithmically correct.
* The program has been generally retrofitted to run efficiently on an ARM core.
* Strict screening by PC-lint.
* Stack level checking.
* Open source installer (NSIS) used to create a self extractor for the delivery of the source code.
* Modularity.
* Documentation.

sourceforge.net/.../

Parents Reply Children
  • "Please do not integrate it into any mission critical system without further testing."

    Are you saying that I should back off on my nuclear power-plant control-system project, or did you imply that I need to test the code in case there are any unforseen bugs?

  • Well, I meant to say that some aspects of the program were not fully tested, and there are some features of it I am not completely happy with. I did not measure the execution time of all the system calls (I should have, probably will do so in the next release). I did not use SWIs to the extent I should have. And there are other things (I will build a USB bootloader when I have time). The open software license clearly demonstrates the degree of liability of the author; if your reactor might experience a core meltdown, you better choose a commercial product that has an author you can hold accountable...

  •  * D63FA905-A939-441B-814F-D45FDB52DDFD quickly switching from the nuclear reactor project toimplementing the steering system of a jet fighter^H^H^H^H^H^H^H^H^H^H^H^H LEGO car.