[DEV] RT7

This forum is dedicated to feedback, discussions about ongoing or future developments, ideas and suggestions regarding the ChibiOS projects are welcome. This forum is NOT for support.
User avatar
Giovanni
Site Admin
Posts: 12943
Joined: Wed May 27, 2009 8:48 am
Location: Salerno, Italy
Has thanked: 729 times
Been thanked: 609 times
Contact:

[DEV] RT7

Postby Giovanni » Sun Jun 07, 2020 6:39 pm

Hi,

Just for information, I am merging RT7 to trunk, repository is going unstable for a while starting tomorrow in the morning.

About RT7, is brings new features and a general internal cleanup:
- Support for multiple cores. There will be three modes: single, multiple decoupled cores, multiple coupled cores.
- Clean up of the internal objects model.
- Improvements to the port interface required by multi core support.
- Fixed some style inconsistencies.
- All internal functions are now prefixed by __ instead of a single _ for MISRA compliance.
- The trace buffer now registers also the "ready" event and there is an hook for it.

The API is not impacted, it will fit easily where RT6 already runs. It will probably receive more enhancements before it will be released as 21.x.

Giovanni

User avatar
Giovanni
Site Admin
Posts: 12943
Joined: Wed May 27, 2009 8:48 am
Location: Salerno, Italy
Has thanked: 729 times
Been thanked: 609 times
Contact:

Re: [DEV] RT7

Postby Giovanni » Fri Jun 12, 2020 11:42 am

I decided to not commit this on trunk, I created a separate branch because it needs some extra work:

- There is no clear use case yet except for some Cortex-A MPUs which tend to use more complex OSes anyway.

- It needs a semantic for "shared" objects, data structure meant to be shared among multiple cores, a semaphore for example. Shared objects cannot go in private RAM areas. Shared objects would also be required to not be cached because embedded cores don't have cache coherence mechanisms. An abstraction is needed for shared objects.

- The thread_t structure allocated in the working area (in RT) can become a problem, it would prevent creating working areas in private RAMs like CCMs. Changing this would require an API change for static threads (working area and thread structure would have to be declared separately and passed to the API).

I will go for a 6.2 for the next release cycle instead, it will have many of the RT7 internal improvements in order to converge more easily.

Giovanni

User avatar
Giovanni
Site Admin
Posts: 12943
Joined: Wed May 27, 2009 8:48 am
Location: Salerno, Italy
Has thanked: 729 times
Been thanked: 609 times
Contact:

Re: [DEV] RT7

Postby Giovanni » Sun Jul 12, 2020 9:26 am

Hi,

I branched the latest stable trunk here: svn+ssh://gdisirio@svn.osdn.net/svnroot ... t_20200712 (this is officially RT 6.2.0).

Trunk is going unstable for a while, this is the plan:

- RT7 merged except multi-core support (it is not yet time for this), I can introduce it anytime if necessary.
- Ports will need changes in preparation of multi core support.
- NIL will be modified in order to support the changes in the port layer (shared with RT).

RT7 includes so far:

- Documentation improvements.
- Consistency-related improvements.
- MISRA-related improvements.
- Support for multiple OS instances (non-interacting multiple cores of same kind, it is like having one RTOS for each core but no code duplication).
- Preparation for true multi-core support.
- High resolution time stamps.
- More trace events (ready is traced now).
- Periodic virtual timers (to be implemented).

Application API is unchanged from RT6.

Giovanni

User avatar
Giovanni
Site Admin
Posts: 12943
Joined: Wed May 27, 2009 8:48 am
Location: Salerno, Italy
Has thanked: 729 times
Been thanked: 609 times
Contact:

Re: [DEV] RT7

Postby Giovanni » Sun Jul 12, 2020 2:19 pm

RT7 working, only ARMv7-M so far, other ports need adjustments.

Remember to update your chconf.h files.

Giovanni


Return to “Development and Feedback”

Who is online

Users browsing this forum: No registered users and 1 guest