I propose to generate C++ interfaces automatically. Probably it's possible to reuse doxygen comments.
Also it would be possible to generate interfaces for any scripting language that might run on top of chibios.
[RFC] Ideas for ChibiOS/RT 3.0
- Giovanni
- Site Admin
- Posts: 14891
- Joined: Wed May 27, 2009 8:48 am
- Has thanked: 1202 times
- Been thanked: 996 times
Re: [RFC] Ideas for ChibiOS/RT 3.0
Interesting but not simple.
Probably it would be possible to create an XML description of a module interface and then compile it in a target language with calls to the module automatically generated.
Giovanni
Probably it would be possible to create an XML description of a module interface and then compile it in a target language with calls to the module automatically generated.
Giovanni
Re: [RFC] Ideas for ChibiOS/RT 3.0
In this case it's better to use SIDL. There are multiple SIDL compilers available.
Re: [RFC] Ideas for ChibiOS/RT 3.0
What about fixed priority real-time support (rate monotonic) with a cpu reservation server like Sporadic server?
- Giovanni
- Site Admin
- Posts: 14891
- Joined: Wed May 27, 2009 8:48 am
- Has thanked: 1202 times
- Been thanked: 996 times
Re: [RFC] Ideas for ChibiOS/RT 3.0
Nice idea, but probably it would be too complex for a small system, wouldn't it?
Giovanni
Giovanni
Re: [RFC] Ideas for ChibiOS/RT 3.0
I don't think so, just take a look at projects like Nano-RK or Erika (there is also Hartik).
In the past I have extended Keil RTX with an EDF scheduler, a Constant Bandwidth Server and SRP protocol, and it works pretty well on a cortex-m.
A fixed priority scheduler is easier to implement, and should be straightforward to implement on ChibiOs.
In the past I have extended Keil RTX with an EDF scheduler, a Constant Bandwidth Server and SRP protocol, and it works pretty well on a cortex-m.
A fixed priority scheduler is easier to implement, and should be straightforward to implement on ChibiOs.
- Giovanni
- Site Admin
- Posts: 14891
- Joined: Wed May 27, 2009 8:48 am
- Has thanked: 1202 times
- Been thanked: 996 times
Re: [RFC] Ideas for ChibiOS/RT 3.0
ChibiOS already has a fixed priority scheduler, not sure if you mean something else from how I understand it.
Giovanni
Giovanni
Re: [RFC] Ideas for ChibiOS/RT 3.0
I'm talking about hard real-time with a fixed priority scheduler like Rate Monotonic (because its easier to implement on a non real-time fixed priority kernel like ChibiOS than a dynamic priority scheduler like EDF), and soft real-time support through a cpu reservation server like Sporadic server.
- Giovanni
- Site Admin
- Posts: 14891
- Joined: Wed May 27, 2009 8:48 am
- Has thanked: 1202 times
- Been thanked: 996 times
Re: [RFC] Ideas for ChibiOS/RT 3.0
I think you can already do rate monotonic scheduling with ChibiOS, it is just matter of how you assign priorities to the threads which are already fixed priority and preemptive.
And how ChibiOS would be non-realtime? I am missing something here.
Giovanni
And how ChibiOS would be non-realtime? I am missing something here.
Giovanni
Re: [RFC] Ideas for ChibiOS/RT 3.0
Well, as you pointed out, ChibiOS it's actually a deterministic real-time OS, but it's not a soft or hard real-time os, and that is what I mean.
The definition of Real-Time OS it's a bit tricky..
An RTOS that can usually or generally meet a deadline is a soft real-time OS, but if it can meet a deadline deterministically it is a hard real-time OS.
Basically I can assign priorities to the threads based on rate monotonic policy, and easily implement periodic tasks, but now the problem is that is proved that all works with these limitations:
• all tasks are periodic and noninteracting
• deadlines are always at the end of the period
• there are no interrupts
• rate monotonic priorities are assigned
• there is zero context switch overhead
• tasks do not suspend themselves
What is missing to make this system usable is an extensions to the basic rate monotonic theory to support at least:
• nonzero task switching times
• preperiod deadlines
• interrupts and non-rate-monotonic priorities
• task interactions
• aperiodic tasks
• mode change
• basic resource reservation
Assign priorities to the threads is just not enough for a hard/soft real-time OS.
Sorry if I'm not that clear, I'm not an expert
The definition of Real-Time OS it's a bit tricky..
An RTOS that can usually or generally meet a deadline is a soft real-time OS, but if it can meet a deadline deterministically it is a hard real-time OS.
Basically I can assign priorities to the threads based on rate monotonic policy, and easily implement periodic tasks, but now the problem is that is proved that all works with these limitations:
• all tasks are periodic and noninteracting
• deadlines are always at the end of the period
• there are no interrupts
• rate monotonic priorities are assigned
• there is zero context switch overhead
• tasks do not suspend themselves
What is missing to make this system usable is an extensions to the basic rate monotonic theory to support at least:
• nonzero task switching times
• preperiod deadlines
• interrupts and non-rate-monotonic priorities
• task interactions
• aperiodic tasks
• mode change
• basic resource reservation
Assign priorities to the threads is just not enough for a hard/soft real-time OS.
Sorry if I'm not that clear, I'm not an expert