Header logo

RTEMS - Real Time Operating System

2014

November

RTEMS Rehosting Status

The RTEMS Project services have been relocated from OAR Corporation to the Oregon State University Open Source Lab as part of an on going improvement and investment in The RTEMS Project. We thank you for your patience as this complex task was undertaken by volunteers around the world. The whole process started a few years after the tornado hit Huntsville and all power was from lost from the OAR Corporation's offices for a week. We hope we are happy settled for the next 25 years. A huge thanks to OAR Corporation and Mark and Joel for their past and future support of RTEMS. A special thank you to Amar for the huge amount of work he did moving us and all stuff we had accumulated in the last 20 years. It is not until you move do see how much "stuff" you have. RTEMS is now hosted on new rack based hardware at OSU OSL purchased using donations from the Google Open Source Program Office for participation over the years in the Google Summer of Code and the Google Code-In. OSU OSL site means our servers are almost directly connected to a Internet 2 backbone. The system has been designed from the start to provide a robust server infrastructure for RTEMS users and developers providing standard web services, wiki, bug reports, git repositories. We also now have the capabilities to add patch management and continuous integration. The move took time ...lots of time... in fact much long than we thought. It required many hours of work and we have plenty to still go as we work through the long-term process and infrastructure improvement plans. The previous single machine provided all the services and this has been broken into a number of independent services improving the stability and security. With this change came a review and audit of all the pages in the web site, wiki and ftp area. We took the extra time to better arrange the information we have and provide a better organisation to help us move to a more automatic build and test framework. To some extent we were forced into the review because the URLs to the various services had been split up into functional groups rather than the one single top level. We hope this structure will provide a better and cleaner platform as we move forward. If you want to give us a hand please contact us. There is plenty to do and with more people these tasks include this migration can happen sooner and faster.

Highlights

  • A single host machine hosting multiple services was split into multiple jail instances running single services. This has been a large contributor to the transition as interactions and URLs that "just worked" on a single machine needed tweaking to work across multiple logical hosts.
  • The RTEMS Wiki (hosted in Mediawiki) and the Bugzilla instance have been combined into a single Trac installation. Trac can also integrate with git and thus provides reporting and release automation assistance we never had before.
    • Note: devel.rtems.org is expected to be live late on 19 Nov or 20 Nov.
    • Bugzilla account info has been carried over to Trac. Instead of user@example.com you need to reset your password with the login being the 'user' portion of your email address.
    • Anyone can edit the wiki now if they sign up (no change). Please ask if you are unsure of where things should go.
    • Wiki should now be the home for developer content only. User documentation will now move to user documentation.
    • /TBR/ wiki pages will be moved in the future to various destinations out side the wiki.
    • Trac's Ticket (Bug) database needs a MAJOR cleanup
    • Trac Tickets can be associated with a release and used to track progress to a release e.g. http://devel.rtems.org/roadmap and http://devel.rtems.org/milestone/4.11
  • docs.rtems.org is the new home for documentation.
  • dispatch.rtems.org is the new host to access git write through.
  • The Moodle installation has been decommissioned. Don't worry, we will find a new home for the content.
  • New user manual will be out as soon as we're done!

GSOC 2010 RTEMS Presentation and Flyer Available

We here in RTEMS-land have been busy getting ready for the 2010 edition of the Google Summer of Code. We have already given a presentation to the IEEE-CS Student Chapter at the University of Tennessee at Chattanooga. Now the flyer and presentation material are available here:

Announcement:RTEMS Kick Start and Open Class June 2010

OAR Corporation is proud to announce once again be teaching the Kick Start and Open Class. As RTEMS maintainer, I will once again be teaching these classes. This is the first time these have been offered in 2010. This is an unparalleled opportunity to learn about RTEMS from one of its creators. Both classes are offered in Huntsville, Alabama.
  • Kick Start - June 7, 2010
  • Open Class - June 8 - 11, 2010 (outline)
This is an enjoyable class to teach and I look forward to seeing you here. Email me directly with any questions. --Joel Sherrill joel DOT sherrill AT oarcorp DOT com

Test Coverage Reports Available

The RTEMS Project is pleased to announce that test coverage reports are now available for ARM, m68k, PowerPC SPARC, and x86. This is still a work in process with sponsorship of further coverage activities very much appreciated. We want to expand the code base analysed, improve coverage percentage across archtitectures, and do other kinds of analysis including statement and condition/decision coverage analysis. Current results are available here.

RTEMS Open Class -- January 2015 in Huntsville

The first RTEMS Open Classes of 2015 will be held in January 2015 in Huntsville Alabama. Once again, Joel Sherrill will be teaching the class. The classes are scheduled as follows: For more detailed information on the Kick Start and Open Class, please visit RTEMS Training. To express interest in dates in Huntsville or to host a class at your company, please contact Joel Sherrill (joel.sherrill AT OARcorp DOT com).

4.7.2 Released

(February 14, 2008): The second Valentine's Day present to the RTEMS Community is the 4.7.2 release. This is the third release from the 4.7 release series and is primarily a bug fix release.

4.8.0 Released

(February 14, 2008): Happy Saint Valentine's Day!!! Today there were two RTEMS releases. The first of these is the long anticipated 4.8.0. 4.8.0 is the first release from the 4.8 release series and represents a long awaited step forward from the 4.8 releases. There have been many improvements to RTEMS itself including optional nanosecond timing granularity, smaller executables, a port to the Blackfin, and new POSIX services. The GNU/Linux RPMs have been updated and there are now MinGW hosted tools for MS-Windows users. On either hosts, users should be able to get started with RTEMS in a matter of minutes. For more details, see the 4.8.0 release information. Please note that if we forgot to include anyone's work in the release information, it is an accident. Please email and we will add the information.

Google Summer of Code Projects Announced

(April 21, 2008) RTEMS was fortunate enough to be included as Google Summer of Code project and received four student slots funded by Google. There were over three times as many student proposals as funded slots and all were good. In addition to the four funded student proposals, a few other students wanted to do the project anyway -- truly in the free software spirit. We want to thank Google as well as all the students and mentors involved in this effort. Details on the student projects are at RTEMS Summer Of Code Wiki page.

4.7.3 Released

(August 8, 2008) On this numerically interesting date, 4.7.3 is released to the RTEMS Community. This is the fourth release from the 4.7 release series and is primarily a bug fix release.

4.8.1 Released

(August 13, 2008) The RTEMS Project is pleased to release 4.8.1. This is the second release from the 4.8 release series and is primarily a bug fix release.

4.9.3 Released

The RTEMS Project is pleased to release 4.9.3. This is the fourth release from the 4.9 release series and is primarily a bug fix release. Of interest, and a significant milestone in the history of RTEMS, the release is the first to include test coverage reports. Reports are included for x86, ARM, SPARC, and Coldfire.

Wiki Upgraded

The RTEMS Wiki was upgraded to the latest version of MediaWiki. The upgrade went smoothly but if there are any issues, please report them.

4.9.2 Released

(March 12, 2009) The RTEMS Project is pleased to release 4.9.2. This is the third release from the 4.9 release series and is primarily a bug fix release.

RTEMS 4.10 Fedora 10 Development Environment VMWare Image

(March 16, 2009) The RTEMS Project is proud to announce the availability of a virtual machine preconfigured with the RTEMS 4.10 Development Environment for SPARC and i386. It is ready to run examples on simulators out of the box. We hope that this will lower the bar for getting started with RTEMS and provide a standard reference platform for demonstrations. We encourage all Summer oF Code students without dedicated GNU/Linux installations to try this. It is available for download via BirTorrent. Details are in the Virtual Machines for RTEMS Development Wiki page.

RTEMS 4.9.4 Released

The RTEMS Project is pleased to release 4.9.4. This is the fifth release from the 4.9 release series and is primarily a bug fix release. This is the second release to include test coverage reports and the first to include reports generated by the second generation of the analysis toolset. The reports are now function oriented and where available, include branch information. Note that at this point no simulator being used reports accurate branching information. Reports are included for x86, ARM, SPARC, and Coldfire here.

Issues With Problems Report Numbers

  • 1495/bsp - calling rtems_clock_get_uptime in a tight loop on pc386/QEMU leads to backwards time travel
  • 1477/cpukit - _Objects_Set_name does not ensure NULL terminated string
  • 1480/cpukit - Missed period statistics are wrong in 4.9.3 (right in 4.9.2)
  • 1481/cpukit - Check for partial period performed too early when updating period statistics
  • 1482/cpukit - POSIX timer_settime has path which does not exit dispatching critical section
  • 1490/doc - rtems_clock_get_ticks_per_second wrong prototype (typo)
  • 1497/bsp - gen5200 should not enable interrupts while waiting for reset

Issues Without Problems Report Numbers

  • Fixed the MSDOS node create to have the correct time.
  • libcpu m68k/mcf5282 - MCF5282_FEC_EMRBR_R_BUF_SIZE and MCF5282_CFM_CFMCMD_CMD were missing hexadecimal prefixes

Trac Tickets PR Shortcut Available

This isn't exactly ground breaking news but there is a new handy feature on the RTEMS.org. You can now access a specific RTEMS Trac Tickets by adding "nnnn" to http://devel.rtems.org/ticket/. For example, a short URL like http://devel.rtems.org/ticket/1789 to access the PR to add the Simple SMP Scheduler to the development head.

GSOC 2010 Students Announced

RTEMS is pleased to announce that we received eight (8) student slots this year. In addition, we are pleased that three of the projects involve cooperation with other open source software projects (Go, Parrot, and Milkymist). We had a record number of submissions and we really wanted to accept more. Unfortunately, there has to be a limit. If your project was not accepted this year but you still want to work on it, please do so. We will be happy to mentor you. We would like to thank all students who took an interest in RTEMS and put forward a proposal. We are seeing the quality of proposals and students improve each year and this is a credit to all who are involved. We would also like to thank all of the mentors who took the time to review and comment on the proposals. And we would like to thank the folks in the Google Open Source Program Office for sponsoring the Summer of Code again and putting up with all of us.
Student Project Mentors
Gedare Bloom Modular SuperCore Scheduler Manager Joel Sherrill
Robert Kuo Parrot on RTEMS Jonathan Duke Leto, Chris Johns
Vinu Rajashekhar RTEMS Port of GNU GCC Go Ian Lance Taylor, Joel Sherrill
Alin Rus POSIX Asynchronous and List IO Ralf Corsepius
Claudio Silva ATA/SATA Driver Chris Johns
Yann Sionneau RTEMS Port to Milkymist Michael Walle, Sebastien Bourdeauducq
Bharath Suri RTEMS Test Coverage Improvements Jennifer Averett, Santosh Vattam
Wenjie Zhang RTEMS Sequenced Initialization and System Events Sebastian Huber, Chris Johns
NOTE: We would like all projects to have two mentors. But we have not yet assigned a second mentor to each project. If you are interested in helping mentor one of the students above, just speak up.

RTEMS 4.9.6 Released

The RTEMS Project is pleased to release 4.9.6. This is the seocnd release from the 4.9 release series and includes both bug fixes and BSP updates. The PRs addressed are included in the release package and listed in the release notes. This release includes test coverage reports for multiple targets. The test coverage reports are now function oriented and where available, include branch information.

ViewCVS Updated (and now called ViewVC)

Sometimes we don't realize how much time has passed since we last worked on something. In this case it was viewcvs.cgi. Chris Johns reported that it was crashing under certain conditions. A quick review said that we had a version dated 1999. It apparently served us well and quietly for 11 years. A lot has changed in those 11 years. Now many of the web packages we used to install by hand are available as RPMs. So the old version has been removed and a standard RPM version installed. This has broken all URLS using the old installation. The new URL is here. This version has a number of features we didn't have in the old one. If you know of specific features you would like to see enabled, please speak up. We will check into turning them on. If there are problems, please report them.

SPARC V9 Support Added to CVS Head

Today marks a new phase in the life of RTEMS, as we introduce the first 64-bit processor family, the SPARC V9 (sparc64). Gedare Bloom (GSOC 2010 student) and Eugen Leontie (husband of GSOC 2009 student) have worked diligently to port RTEMS to the SPARC V9 CPU and have provided two BSPs that support the UltraSPARC T1 and UltraSPARC III processors. The target sparc-rtems4.11 is already included in the standard tool chain with RPMs available for RPM based GNU/Linux distributions. Thanks to Ralf Corsepius for providing these tools and assisting in the review of this code. The Niagara BSP for the UltraSPARC T1 can be executed using the free simulator m5sim. Qemu and other simulators should also be able to be used for these BSPs but this has not been attempted yet.

Go Programming Language now available for RTEMS

Thanks to the success of Vinu Rajashekhar's Google Summer of Code project, we are pleased to announce that there is now support for the Go programming language, a new systems language, for RTEMS. Vinu successfully ported GCC Go to RTEMS. This is the first cross and first embedded systems port of Go. The port is passing all of the Go tests in its GCC testsuite. The instructions for building and other information on the port can be found in the RTEMS Wiki at GCCGORTEMS. Now people can experiment with Go on real-time, embedded systems ! Thanks to Ian Lance Taylor from the Go project for mentoring this. Joel Sherrill provided backup from the RTEMS side.

Semantic Wiki Extensions to Mediawiki Installed

The RTEMS Wiki has been upgraded to the latest version of Mediawiki. In addition, the Semantic Wiki extensions have been installed. This extensions includes significant capabilities which will allow us to better search, organise, tag, browse, evaluate, and share our wiki's content. Learning Semantic Wiki tagging and use will be a learning opportunity for us all but should be worth it. A thank you goes to Google for the Mentor Summit where I met one of the Semantic Wiki maintainers and was convinced of its value.

RTEMS 4.10.0 Released

The RTEMS Project is pleased to release 4.10.0. This is the first release from the 4.10 release series and is primarily a bug fix release. As the first release in the 4.10 release series, it has new features and BSPs not present in previous release series. This release includes test coverage reports for multiple targets. The test coverage reports are now function oriented and where available, include branch information.

RTEMS 4.9.5 Released

The RTEMS Project is pleased to release 4.9.5. This is the sixth release from the 4.9 release series and is primarily a bug fix release. This is a bug fix release with the list of PRs addressed included in the release package. This release includes test coverage reports for multiple targets. The test coverage reports are now function oriented and where available, include branch information.

New RTEMS Fedora Virtual Machine Images Available

I have prepared two Fedora 14 Virtual Machine images and published them to sourceforge.net. One includes the RTEMS Development Environment for 4.10, while the other contains a 4.11 RTEMS Development Environment. This is a low effort way to get started with RTEMS. The VMs were created and tested using VirtualBox. The VM image includes SPARC and i386 target support as well as Eclipse with the RTEMS plugin. Simulators are included for the SPARC/sis BSP and i386/pc386. Qemu is also installed and configured to support testing networked applications with the pc386 BSP. Anyone interested in RTEMS who wants a pre-setup environment to play in is encouraged to use these. See this page for more details.

RTEMS Accepted in Google Summer of Code 2011

The RTEMS Project has been accepted to be a participating organization in the Google Summer of Code 2011. We have been busy in the off-season getting ready for potential students. We have started to update the Open Projects and RTEMS Summer of Code pages in the Wiki and begun to promote GSOC.

RTEMS CVS to Git Conversion

Chris Johns recently made an announcement to the RTEMS Users mailing list which gave the status of the CVS to Git conversion process. Read that email for details and watch the Users' List for follow ups. Feel free to ask questions and report issues. This is a big transition and we all have learning to do. There was positive reaction in public but someone politely noted in a private email to me that this was the first they had heard of it. It really was a nice way of saying.. "Hey.. you forgot to say anything until it was almost done!" [
I was surprised to see that RTEMS is moving from CVS to git. I've searched the wiki but haven't found any info as to why the change was/is being done. Perhaps a link on http://git.rtems.org/ to the reason(s) for the change would be a good idea. The last I seem to recall (and I'm sure my memory has more than a few read errors) there was no plan to move from cvs to another source code control system.
Everyone on the RTEMS Project knew that CVS was old and had deficiencies like moving or renaming files, etc. We had briefly looked at moving to SVN years ago but it wasn't enough to be enticing. We just never had a pressing reason to move from CVS and incur transition pain. That is .. until now.. Chris Johns and I met Amar Takhar of the Network Time Protocol (NTP) Project at the GSOC Mentors Summit in 2009. Amar was intrigued by the variety of target architectures and number of BSPs we had to support in RTEMS. He thought it would be challenging and fun to set up an automated BuildBot for RTEMS. On each check in, the BuildBot would automatically build all impacted configurations, run tests, log failures, send emails, etc.. It would be an invaluable tool for catching errors as soon as they are introduced. Amar got the buildbot installed and working but it became apparent that CVS not providing atomic change sets resulted in not having good input to the build bot. Without an atomic change set coming directly from the Revision Control System, there is no way to be sure that you are building because of a complete change. As we all know, Garbage In, Garbage Out. In addition, Jennifer and I were in the middle of trying to track the CVS head and merge our SMP changes. It was very difficult with CVS. Large changes like SMP or a TCP/IP stack upgrade are painful to manage over the course of months in CVS. Fighting CVS was painful but wasn't enough to drive a switch. Ultimately, the atomic change set requirement was the straw that broke the camel's back and initiated the planning of the conversion to git. So we starting planning the change. The plan is at http://devel.rtems.org/wiki/Projects/CVStoGit. This is not a decision we made lightly. RTEMS has 17 years of CVS history. We don't want to negatively impact that history in converting to another Revision Control System. About the time I started to wonder if the RTEMS Project was suffering because we do not periodically evaluate the tools we depend upon and our development processes. It is only natural to accept the status quo because we are all human and use what we are familiar with. But, on the other hand, many of the tools RTEMS depends upon are newer versions of the same ones we used 10+ years ago. Those tools were the best of breed when we selected them. Are they the best solution now? If given a clean slate, would we pick them again? I don't know. I only know we need to use best of breed tools and processes to produce the best real-time operating system possible. The transition to git and adoption of a BuildBot are the first step in what I hope will be a continuous improvement process for the RTEMS Project. Please hold on during the transition and help out. This is a learning experience for us all. Ask questions and report problems.

RTEMS in Google Code-In 2011-12

The RTEMS Project is excited to be one of the 18 open source organizations participating in this year's Google Code-in contest for 13-17 year old students. The RTEMS Project has put together a list of tasks which the students can undertake. These tasks are much smaller than Google Summer of Code projects and generally take on the order of less than 5 days. I encourage any RTEMS user to mentor in this program. The tasks are very small and do not require deep RTEMS knowledge. For example, last year, a number of students took on tasks to add initial Wiki pages for BSPs which did not have one. This required adding only the basic technical information about the board with links to vendor documentation. Details on running RTEMS on the board are well beyond the capabilities of anyone without personal experience with the board. Any RTEMS user could mentor that task and review the content for formatting and thoroughness. If you know students who would be candidates to participate, please encourage them.

RTEMS 4.10.1 Released

The RTEMS Project is pleased to release 4.10.1. This is the second release from the 4.10 release series and includes both bug fixes and BSP updates. The PRs addressed are included in the release package and listed in the release notes. This release includes test coverage reports for multiple targets. The test coverage reports are now function oriented and where available, include branch information.

4.10.2 Released

The RTEMS Project is pleased to release 4.10.2. This is the third release from the 4.10 release series and includes both bug fixes and BSP updates. The PRs addressed are included in the release package and listed in the release notes. This release includes test coverage reports for multiple targets. The test coverage reports are now function oriented and where available, include branch information.

Git Conversion Complete

The RTEMS project has completed its switch to the GIT version control tool. I wish to thank Amar, Chris, and Jeff for completing this major change. The git repositories are located on the 'git.rtems.org' server. There is support for the git protocol as well as access via the git web site (http://git.rtems.org/). The main documentation for using git on the RTEMS project can found at http://devel.rtems.org/wiki/Developer/Git. Please update, edit and enhance the documentation to help improve it for all users. All CVS access will stop in 2 weeks. If you have a CVS checkout and wish to get a patch please do this. If you have commit rights and do not have an account on http://git.rtems.org/ please send Chris your public ssh key privately and he will create your account. If you see any issues related to the git, please feel free to bring them to the attention of Chris, Jeff, or Joel. This has been and will continue to be a learning experience for us all. But we must all remember that we work in a fast moving field and that learning new tools and improving our work processes is something we must do and should embrace. Change can be good. :) Thanks again to everyone.

RTEMS Accepted in GSOC 2012

The RTEMS Project has been accepted as a participating organization in the Google Summer of Code 2012. We have been busy in the off-season getting ready for potential students. Visit the updated Open Projects and RTEMS Summer of Code pages in the Wiki and dig in. See the GSOC information block on the main page for more details.

RTEMS Selected for ESA Summer of Code In Space 2012

The RTEMS Project is proud to announce that we have been selected for a second year to be a participating organization in the European Space Agency's Summer of Code in Space. Julien Delange posted this invitation to the RTEMS mailing lists. A list of projects is available at http://devel.rtems.org/wiki/Developer/OpenProjects. Last year's student improved the RTEMS coverage analysis toolset to support producing files which gprof could read and produce reports. What will this year bring?
I would like to remind that the student application period for SOCIS2012 is still open until 27/12. Interested students can apply to the program and either select an open project proposed by mentoring organizations or submit their own ideas. For each successful project, the selected student will receive a reward of 4000 €. This is a nice way for earning money during this summer period and also contribute to some open-source software! Information about the program can be found on our website (http://sophia.estec.esa.int/socis2012/), selected mentoring organizations are listed on http://sophia.estec.esa.int/socis2012/?q=node/13. If you have any question about the program, do not hesitate to contact us! Do not hesitate to distribute/disseminate the information to all potential interested entities (universities, projects, open-source communities, etc.).

RTEMS Selected as Google Code In 2012 Organization

Google has announced the participating organizations for the 2012 edition of Google Code In. This is a program for high school students and you should pitch this to your local high school. Only TEN!! organizations were accepted.
  • Apertium
  • BRL-CAD
  • Copyleft Games Group
  • Haiku
  • KDE
  • RTEMS Project
  • Sahana Software Foundation
  • SugarLabs
  • The Fedora Project
  • The NetBSD Project
As this is a great honor, I encourage users to pitch in and help mentor. Mentoring GCI is different from mentoring GSOC students. Each task is smaller and should be something almost ANY member of the RTEMS Community can do in about two hours. Our goal as a project is to have enough people responding to students that we are ALWAYS available and respond quickly. To achieve this, a mailing list has been set up so each mentor can track every open task. If one needs attention and you are available, respond. Please volunteer to be a mentor in this. Similarly if you have ideas for appropriate tasks, please help by adding them to http://devel.rtems.org/wiki/GCI/Projects Thanks and let's make this a great program for the students.

RTEMS Accepted in GSOC 2013

The RTEMS Project has been accepted as a participating organization in the Google Summer of Code 2013. We have been busy in the off-season getting ready for potential students. Visit the updated Open Projects and RTEMS Summer of Code pages in the Wiki and dig in. See the GSOC information block on the RTEMS Project website for more details.

Google Summer of Code Wrapup Report Available

(October 12, 2009) We have made a wrapup report available here which highlights each of the students' work.

GSOC 2013 RTEMS Project Final Report

The RTEMS Project had another great Google Summer of Code! Eight students successfully completed projects spanning the range of RTEMS. Good news from each of the students, in their own words, is included in the final report. The students and projects were:
  • Application Configuration GUI for RTEMS by Shubham Somani
  • Atomic Operations and SMP lock debug tool for RTEMS by Deng Hengyi
  • Enhance low-level API of libmm for Memory Protection and Caches by Hesham Moustafa AL-matary
  • Paravirtualization Layer in RTEMS by Phillip Eppelt
  • Porting CAN driver, LinCAN, to RTEMS by Jin Yang
  • RTEMS Runtime Loader by Peng Fan
  • SMP Aware Scheduler by Sree Harsha Konduri
  • Unified APIs by Vipul Nayyar
GSOC was initially launched in 2005 and RTEMS has participated in every GSOC instance since 2008. As usual, we have a large volume of code and documentation to review and merge, and we hope our students continue to work on their projects and remain active in open-source. The following projects were successfully completed: We also extended our history of working with other open-source projects with one student adding CAN device emulation to Qemu, another student running RTEMS in a Pok partition, and another who has made made modifications to GDB to provide better support for debugging RTEMS dynamically loaded applications. We look forward to continued contributions from the students!

GSOC 2014 RTEMS Project Final Report

The RTEMS Project finished another year of Google Summer of Code, with five students successfully completing projects from various areas of RTEMS. The final report with specific project details from each student can be found here for html and here for a Word document. The projects and students for 2014 were:
  • Paravirtualization Layer in RTEMS, by Youren Shen
  • Porting RTEMS to OpenRISC, by Hesham ALMatary
  • ARINC 653 compliance on RTEMS using POK, by Janek van Oirschot
  • Raspberry Pi BSP Peripherals, by Andre Marques
  • RTEMS port to Cortex – R4f, by P?emysl Houdek
Congratulations to the students! Hopefully, they will continue to work on their projects and remain active in the open-source community.

May

RTEMS in ESA Summer of Code in Space 2014

RTEMS is fortunate enough to be included once again in the ESA Summer of Code in Space. We want students! This year we want to encourage the SOCIS students to focus on improvements to our new rtems-test Python-based framework. This will include:
  • adding more BSPs (simulators and real boards) to rtems-test
  • building more simulators with the RTEMS Source
    • if successful, sim-scripts should be obsolete
  • integrating coverage runs into rtems-test
  • improvements to the coverage test reporting
    • reporting should be on "module" level. Too coarse now.
    • some scripts could be migrated to Python
Although this sounds like very specific and focused work, it is actually a lot of work and covers a lot of area. Interestingly, a lot of this work is in Python so should be approachable by more students.

April

GCI 2013 Winners from RTEMS

Last week the two Google Code-In 2013 Grand Prize Winners from RTEMS went to Google for the Grand Prize trip. This year RTEMS was allowed to send one mentor, so Gedare accompanied the two winning students. The trip was a lot of fun, and we look forward to GCI 2014!

February

RTEMS at Embedded World 2014

Our friends at embedded brains GmbH will have a booth at the Embedded World 2014 Exhibition and Conference in Nuremberg, Germany. The conference is open from February 25 'til February 27. See the Embedded World site for further details. The embedded brains booth will be in Hall 5, Stand 261. One of their major topics will be RTEMS and customer applications using it. Joel Sherrill and Mark Johannes from OAR will also be present. This is a good opportunity to meet face to face with some of the core RTEMS developers and maintainers, as well as many RTEMS users. If anyone is interested in free tickets, please contact Thomas Doerfler privately at Thomas.Doerfler at embedded-brains.de.

Google Code-In 2013 RTEMS Project Final Report

Between mid-November and early January, the RTEMS Project participated as one of ten mentoring organizations in the Google Code-In (GCI), a contest for pre-university students that encourages the involvement of students age 13-17 in open source communities. During the 7 week time-frame of GCI, RTEMS Project had 39 students complete 265 tasks under the tutelage of 15 mentors. That is an average of over 5 tasks per day! 16 students completed the Getting Started with RTEMS task, which both provided useful feedback about new users trying to work with RTEMS and prepared the students for hands-on programming work with RTEMS. Of the 39 students, 7 of them completed more than 10 tasks, and our 2 grand-prize winners completed 103 tasks between them! RTEMS Project is proud of the efforts and accomplishments of these students, and grateful to the Open Source Programs Office, the mentors, organization administrators, and open source community who supported these and all the other GCI students. The following provides some more details about the accomplishments of the students who worked with the RTEMS Project during this iteration of GCI. The attached chart shows a plot of the number of tasks that each student completed; each point along the X-axis is one of our (anonymous) student participants. Below are descriptions of some of the more notable accomplishments that the students achieved in each of the 5 task categories: Code, Documentation/Training, Outreach/Research, Quality Assurance, and User Interface.

Code

  • C99 “restrict” keyword added to Newlib C Library for POSIX conformance.
  • Ported the Rhealstone Benchmark to RTEMS, now available in testsuites/rhealstone.
  • Added Waf build support to the RTEMS examples-v2 and multiio repositories, and to Alan Cudmore’s RTEMS Kernel Image repository.
  • Refactored over a dozen BSPs to conform to guidelines determined by Vipul Nayyar’s GSoC 2013 project.
  • Refactored portions of the monolithic sp09 test case into new, finer-grained tests.
  • Created or fixed 9 POSIX timing tests.

Documentation / Training

  • Determined guidance for doxygen use in BSPs and added doxygen comments to about 40 BSPs.
  • Fixed documentation in the RTEMS POSIX user manual and in multiple test cases.

Outreach / Research

  • Created 2 video tutorials for Getting Started with RTEMS.
  • Updated the RTEMS wiki page on references to RTEMS with 6 years worth of references from Google Scholar.

Quality Assurance

  • Investigated and/or fixed over 20 bugs in the RTEMS Bugzilla.

User Interface

  • Updated the rtems-graphics-toolkit repository and fixed some bugs.
Thanks again to everyone involved in making this GCI a successful one for RTEMS Project. Gedare Bloom, RTEMS Project

January

RTEMS Talk at VU in Amsterdam

Thanks to Ben Gras from Minix, Joel Sherrill gave a talk about RTEMS at VU University in Amsterdam! Title: Scheduling and Thread management with RTEMS Hosted by: Herbert Bos and Ben Gras When: Tuesday, January 21, 2014 Where: Mathematics and Science Building ("Wiskunde & Natuurkunde Gebouw"), room S6.07, of VU campus Talk Abstract RTEMS is a free, open source, real-time operating system that supports multiple standards and includes support for multiple space-hardened microprocessors. RTEMS is commonly used in space applications and has a long history of successful deployment in critical applications. Symmetric Multiprocessing (SMP) microprocessors are becoming more common in commercial embedded systems and are not available in space-hardened configurations. This presentation (slides are in the attached PDF) focuses on the enhancements that have been made to RTEMS to support SMP microprocessors. In particular, the Thread Scheduling subsystem has seen significant refactoring and additions. RTEMS now supports multiple thread scheduling algorithms for uniprocessor and SMP configurations. RTEMS currently has SMP support for SPARC LEON3, PowerPC QorIQ, ARM, and x86. The presentation will conclude by highlighting areas in which the flight software community can provide feedback and support in improving this support in RTEMS.

2013

December

RTEMS.COM domain splitting from RTEMS.ORG

For many years RTEMS.ORG and RTEMS.COM have pointed to the same IP, same services, and same content. However, very soon the RTEMS.ORG and RTEMS.COM domains will be separated to cover their own unique content. The RTEMS Community will continue to operate under the RTEMS.ORG site. The RTEMS.COM site will provide information concerning OAR’s RTEMS Services and Products. Please adjust your bookmarks accordingly. If you have used the RTEMS.COM site for any RTEMS Project and Community resource, please update this to RTEMS.ORG.

April

Solar Dynamic Observatory Launches

This satellite includes five radiation hardened Coldfire CPUs running RTEMS. There are more details and links at the RTEMS Ramblings Blog. We are looking forward to the discoveries sure to be made with SDO.

1993 RTEMS Brochure Online

(January 23, 2009) The year was 1993 and the U.S. Army was trying to promote the benefits of RTEMS. As part of that, a brochure was created. Where you lucky enough to have gotten one of these? If not, we have scanned one so you can see it.

February

Google Summer of Code 2013 and RTEMS

I (Joel) gave two brief presentations today at the University of Tennessee at Chattanooga on RTEMS and Google Summer of Code 2013. I shared my experiences in a blog post. PDFs are available as part of this news item.

2012

May

RTEMS Featured in May 2012 Edition of French GNU/Linux Magazine

Julien Delange has written an article about real-time operating systems programming which is featured in issue number 149 (index and contents) of the French GNU/Linux Magazine.This magazine is one of the best known magazines about open-source software and Linux-related matters in France. Joel: I am sorry I can't read French and say more good things about the article. I do understand enough to recognize the article in the table of contents as "p. 70 Anatomie d'un OS temps réel"

RTEMS Google Summer of Code™ 2012 Projects

The RTEMS Project was accepted for the fifth year as a participant in the Google Summer of Code™. This year we were fortunate and have ten students each of whom is attempting a project of interest to the RTEMS community. I encourage everyone to support these students in their work this summer.
Project Student Mentor Co-mentor(s)
BSP for BeagleBoard and/or BeagleBone Claas Ziemke Ray Xu Santosh Vattam
Use hash or map in POSIX keys Zhongwei Yao Joel Sherrill Pavel Pisa
Porting NXLib and Updating Libraries in RTEMS Graphics Toolkit Alexandru-Sever Horin Pavel Pisa Joel Sherrill
Bdbuf Improvements Xiang Cui Sebastian Huber Chris Johns
RTEMS on Asymmetric Multiprocessor (OMAP4) Xi Yang Joel Sherrill Muhammad Adnan
Update the RTEMS TCP/IP Stack Kevin Polulak Jennifer Averett Joel Sherrill
RTEMS MMU/MPU support for ARM Architecture Hesham Moustafa ALmatary Gedare Bloom Aanjhan Ranganathan
ARINC 653 API Support Wiktor Langowski Julien Delange Cláudio Silva, Joel Sherrill
RTEMS Testing Project Xiaochen Pan Amar Takhar Sebastian Huber, Ricardo Aguirre Reyes
Atomic Operations for RTEMS Deng Hengyi Chris Johns Joel Sherrill

February

Embedded World - February 28 to March 1 in Nuremberg Gemany

embedded brains GmbH will once again be present at the Embedded world 2012 trade fair in Nuermberg, Germany, which is from February 28.-March 1. 2012. We will be present in Hall 5, Booth 5-311. The trade fair will be a good event to see many RTEMS developers and users face to face, so we would like to see you as a guest at our booth.

It is a pleasure to host OAR Corporation at our booth this year. Joel Sherrill will be present. This will guarantee interesting discussions about the present and future of RTEMS.

Once again, we would be happy to see you in Nuermberg. If you need a free entry ticket, please let Thomas Doerfler or Sebastian Huber of embedded brains GmbH know.

If you can make it to the show, we would really like to meet you. If you are on Facebook, the RTEMS Users Group has a public event which you are encouraged to note that you are attending.


Git Conversion Complete

The RTEMS project has completed its switch to the GIT version control tool. I wish to thank Amar, Chris, and Jeff for completing this major change.

The git repositories are located on the 'git.rtems.org' server. There is support for the git protocol as well as access via the git web site (http://git.rtems.org).

The main documentation for using git on the RTEMS project can found at http://wiki.rtems.org/wiki/index.php/Git. Please update, edit and enhance the documentation to help improve it for all users.

All CVS access will stop in 2 weeks. If you have a CVS checkout and wish to get a patch please do this.

If you have commit rights and do not have an account on http://git.rtems.org please send Chris your public ssh key privately and he will create your account.

If you see any issues related to the git, please feel free to bring them to the attention of Chris, Jeff, or Joel.

This has been and will continue to be a learning experience for us all. But we must all remember that we work in a fast moving field and that learning new tools and improving our work processes is something we must do and should embrace. Change can be good. :)

Thanks again to everyone.


2011

December

4.10.2 Released

The RTEMS Project is pleased to release 4.10.2. This is the third release from the 4.10 release series and includes both bug fixes and BSP updates. The PRs addressed are included in the release package and listed in the release notes. This release includes test coverage reports for multiple targets. The test coverage reports are now function oriented and where available, include branch information.


November

RTEMS Now Has a Twitter Feed

RTEMS now has a twitter feed -


RTEMS in Google Code-In 2011-12

The RTEMS Project is excited to be one of the 18 open source organizations participating in this year's Google Code-in contest for 13-17 year old students.

The RTEMS Project has put together a list of tasks which the students can undertake. These tasks are much smaller than Google Summer of Code projects and generally take on the order of less than 5 days.

I encourage any RTEMS user to mentor in this program. The tasks are very small and do not require deep RTEMS knowledge. For example, last year, a number of students took on tasks to add initial Wiki pages for BSPs which did not have one. This required adding only the basic technical information about the board with links to vendor documentation. Details on running RTEMS on the board are well beyond the capabilities of anyone without personal experience with the board. Any RTEMS user could mentor that task and review the content for formatting and thoroughness.

If you know students who would be candidates to participate, please encourage them.


RTEMS CVS to Git Conversion

Chris Johns recently made an announcement to the RTEMS Users mailing list which gave the status of the CVS to Git conversion process. Read that email for details and watch the Users' List for follow ups. Feel free to ask questions and report issues. This is a big transition and we all have learning to do.

There was positive reaction in public but someone politely noted in a private email to me that this was the first they had heard of it. It really was a nice way of saying.. "Hey.. you forgot to say anything until it was almost done!"

I was surprised to see that RTEMS is moving from CVS to git. I've searched the wiki but haven't found any info as to why the change was/is being done. Perhaps a link on http://git.rtems.org to the reason(s) for the change would be a good idea. The last I seem to recall (and I'm sure my memory has more than a few read errors) there was no plan to move from cvs to another source code control system.

Everyone on the RTEMS Project knew that CVS was old and had deficiencies like moving or renaming files, etc. We had briefly looked at moving to SVN years ago but it wasn't enough to be enticing. We just never had a pressing reason to move from CVS and incur transition pain. That is .. until now..

Chris Johns and I met Amar Takhar of the Network Time Protocol (NTP) Project at the GSOC Mentors Summit in 2009. Amar was intrigued by the variety of target architectures and number of BSPs we had to support in RTEMS. He thought it would be challenging and fun to set up an automated BuildBot for RTEMS. On each check in, the BuildBot would automatically build all impacted configurations, run tests, log failures, send emails, etc.. It would be an invaluable tool for catching errors as soon as they are introduced. Amar got the buildbot installed and working but it became apparent that CVS not providing atomic change sets resulted in not having good input to the build bot. Without an atomic change set coming directly from the Revision Control System, there is no way to be sure that you are building because of a complete change. As we all know, Garbage In, Garbage Out.

In addition, Jennifer and I were in the middle of trying to track the CVS head and merge our SMP changes. It was very difficult with CVS. Large changes like SMP or a TCP/IP stack upgrade are painful to manage over the course of months in CVS. Fighting CVS was painful but wasn't enough to drive a switch.

Ultimately, the atomic change set requirement was the straw that broke the camel's back and initiated the planning of the conversion to git. So we starting planning the change. The plan is at http://www.rtems.org/wiki/index.php/CVStoGit. This is not a decision we made lightly. RTEMS has 17 years of CVS history. We don't want to negatively impact that history in converting to another Revision Control System.

About the time I started to wonder if the RTEMS Project was suffering because we do not periodically evaluate the tools we depend upon and our development processes. It is only natural to accept the status quo because we are all human and use what we are familiar with. But, on the other hand, many of the tools RTEMS depends upon are newer versions of the same ones we used 10+ years ago. Those tools were the best of breed when we selected them. Are they the best solution now? If given a clean slate, would we pick them again? I don't know. I only know we need to use best of breed tools and processes to produce the best real-time operating system possible.

The transition to git and adoption of a BuildBot are the first step in what I hope will be a continuous improvement process for the RTEMS Project. Please hold on during the transition and help out. This is a learning experience for us all. Ask questions and report problems.


Flight Software Workshop 2011 Presentations Now Online

Presentations from the 2011 Workshop on Spacecraft Flight Software are now available online at http://flightsoftware.jhuapl.edu/.

The presentations were interesting and I hope you take the time to see what is going in the space community. There were more than a few presentations on projects using RTEMS. :)


October

GSOC 2011 RTEMS Project Final Report

This was an interesting year for the RTEMS Project and the Google Summer of Code. We had eight wonderful students who challenged each of the mentors to do their best. I hope that we can keep them all involved with RTEMS in some capacity. They were all very good and highly productive. If there is any downside to this years GSOC, it was not much of one. We just have a large volume of code, tests, and bug reports which were produced and need to be digested.

The full report is available at http://www.rtems.org/gsoc2011_final_report.


GSOC 2011 Final Report

This was an interesting year for the RTEMS Project and the Google Summer of Code. We had eight wonderful students who challenged each of the mentors to do their best. I hope that we can keep them all involved with RTEMS in some capacity. They were all very good and highly productive. If there is any downside to this years GSOC, it was not much of one. We just have a large volume of code, tests, and bug reports which were produced and need to be digested.

RTEMS Project Administor Report

As most folks familiar with RTEMS know, I (Joel Sherrill) teach a week long class on RTEMS between four and ten times a year. Having been founded by the first head of the computer science department at University of Alabama in Huntsville, we have always been friendly to academia. Since our first year as a GSOC Organization, we have offered free tuition (USD2500) for any GSOC student who wished to attend the RTEMS Open Class in either Huntsville or Munich. The Huntsville class is webcast for those students who can=92t attend in person. Initially, I was disappointed that no students could attend the Huntsville class in person even though 3-4 were on the webcast. In the middle of the week, the infamous April 2011 tornados hit and left enormous damage across the Southern U.S. OAR itself was undamaged how-ever without power for 6 days and I ended up teaching the class without power to those who attended. In retrospect, I am glad no GSOC students were in attendance.

The Munich class was held in late May and this time two GSOC students were able to attend. One even asked if they could bring a college friend along to attend. Since there was space and we had an extra copy of the class material, we were happy to let them all attend. I worked with the students who came to ensure they were building everything OK, understood their project, and had made initial steps before they left.

One thing I hope all of the GSOC students we have the privilege of mentoring have learned is that it is important to =93pay it forward=94. The core developers believe it is our responsibility to help the next generation of computer scientists via mentoring, recommendation letters, career advice, or just a free lunch. We needed this when we were in their position and we hope they remember to =93pay it forward=94 when they are in a position to do so.

Now on to the good news from each of the students.

Hypervisor for RTEMS by Zhang WenjieM

After almost three month work the GSOC project is going to final phase. My project Hypervisor for RTEMS completed somewhat a little different from the project original plan. Because my project is based on the work of AIR project which provides the hypervisor kernel, before the project starts i don not see any source code about it. After i got the source codes from Tobias i first study and analysis them carefully, and then discuss with Joel to determine the most important task is to merge the hypervisor code to the latest RTEMS version (hypervisor code is based on RTEMS 4.8.1).

The merge work includes two goals: first goal is to update the para-virtualized guest RTEMS and second goal is to update the host side RTEMS which is used as a BSP for hypervisor kernel. About the guest side i also implement a new BSP for all the para-virtualized SPARC architecture. During this stage i encounter a problem which troubled me for a long time. It is because of the different size of boolean type build under rtems 4.8.1 and rtems 4.11 which cause a very strange behavior under the partition OS schedule. After this problem has been solved the guest side work is done. About the host side i use the IFDEF similar skill to patch the RTEMS which mainly modify a little code about the score code and LEON3 BSP code. During this stage i also encounter a thorny problem also about the partition OS schedule. When the hypversor schedule the second cycle it will only execute each partition OS=91 idle task. This problem is caused by the wrong load and store operation of variable _Context_Switch_necessary. After it was solved the all the update work is done.

Although the GSOC project has been completed but there are a lot of work to do with this project. The most urgent thing is how to merge those code to RTEMS CVS head. And then continue to do the development about the virtualize under RTEMS. I will continue to pay attention to this work.

Implementation of the ISO9660 Filesystem by Christophe Huriaux

After a slow start due to schedule conflicts with school, the ISO9660 filesystem is almost fully implemented in RTEMS. My implementation choice was to write this filesystem from scratch, rather than porting it from an other OS.

For recall ISO9660 is a read-only filesystem used in optical devices like CD-ROM and is also used as the file format of =93ISO images=94. Both use-cases are implemented, one can either mount a device or an ISO file located on an other volume.

At what level is ISO9660 implemented? First of all the whole original standard describing the legacy filesystem ISO9660 (also available as ECMA-119) is working, as well as the later ISO9660:1999 revision, which means that every single ISO file should be readable in RTEMS (or at least in a degraded fashion). The major disadvantages of this filesystem are the various limitation on filenames : only uppercase characters, digits and hyphens. A mount options can tweak the way the filesystem expose the filenames : either untouched (uppercase) or lower-cased (for compatibility purpose with the default Linux implementation).

I=92ve also managed to implement Joliet and Rock Ridge extensions. The first one is widely used on Windows platform to let an ISO9660 volume use a wider character set thanks to the use of UCS-2 encoded filenames. If the ISO9660 stack is compiled with iconv support (which is highly experimental ATM, I thank Ralf Corsepius for providing the iconv enabled toolchain !) it can do the character-set conversion at run-time, from Joliet=92s UCS-2 to a user-defined character-set (iso-8859-15 by default).

Rock Ridge gives the most benefit to RTEMS since it brings a lot of POSIX things to the ISO9660 volume : detailed timestamps, owner=92s UID and GID, POSIX file modes and others node type (device, symbolic link). Some other features are currently not implemented : deeper directory structure (ISO9660 allows only a depth of 8 directories) and sparse files support.

The filesystem implementation has been tested under the i386 platform, I=92m currently fixing endianness and structure alignment issues to let the stack run well under the SPARC SIS simulator. ISO9660 records most of the multi-byte data in bi-endian format (little and big endian), it=92s thus beneficial to take part of the volume ability. After consulting Chris Johns, my GSoC mentor, I will file a PR and the associated patches as soon as these issues are fixed in order to merge andhave public reviews of the ISO9660 stack. Chris also pointed me to others fields of RTEMS on which I could contribute after that.

Lua Scripting and Shell Support in RTEMS by Scotty Smith

Testing of the Lua port to RTEMS has been successful. All the test cases provided with the Lua distribution execute as advertised within the Lua system. The current port should operate exactly as Lua operates on the host system. All changes made to the Lua source code were done in order to accommodate the RTEMS system. They were all minor changes, however.

As well as the normally defined API for communicating between C and Lua, I have provided functions for spawning two different types of Lua shells. The first function, _Lua_spawn_shell(), creates a shell that operates as a normal Lua shell would on the host operating system. The second function, _Lua_spawn_RTEMS_shell(), creates a Lua shell that accepts RTEMS shell commands as well. This allows user defined RTEMS commands as well. It currently does not force a log-on prompt, however.

The final part of my Google Summer of Code project was a Python to Lua translator. This part of the project ended up being much tougher that I had originally envisioned. The submitted translator works for Python code that is written with the knowledge that it will be translated to Lua. This implies that there is no exception handling code, as well as no usage of the Python standard library. It ended up being a very difficult problem to translate the entire Python standard library to include the necessary communication code for usage in Lua. To that end, it is currently not implemented.

There are currently discussions as to how to include the Lua port with the RTEMS distribution. The submitted code works for a Lua distribution contained within the cpukit directory of RTEMS. Current discussion point to this project being converted into an RTEMS add-on package.

Porting of resource reservation framework to RTEMS by Petr Benes

The motivation of this project was the intention to provide hard real-time capabilities to the FRSH/FORB (http://frsh-forb.sourceforge.net/) resource reservation framework by means of porting it from Linux to RTEMS. One of the main steps to make it work is implementation of a scheduling policy enabling reservation of CPU capacity for each task with deadlines.

First of all, before writing any schedulers, it was necessary to adjust current implementation of red-black tree, which usually serves as a ready queue for EDF (Earliest Deadline First) scheduler. The red-black tree is now capable of handling multiple items with similar key (tasks with similar deadlines). Moreover, the pluggable scheduler interface needed to be extended with a few more hooks enabling other than priority schedulers.

After that, two separate schedulers were implemented, EDF and CBS (Constant Bandwidth Server). The EDF is a relatively conventional dynamic priority scheduler. The RTEMS implementation uses Rate Monotonic manager to indicate deadlines of tasks (jobs) to the scheduler. Moreover, tasks without deadlines are handled as background (low priority) task.

The CBS scheduler is mainly based on EDF, yet some additional features are applied. The aim of the scheduler is to provide temporal isolation of tasks. Each task declares not only deadline but also a computation time necessary to meet the deadline. The CBS guarantees that any behavior of a task can not cause a deadline miss of another task.

Both schedulers are ready to merge, yet still being reviewed. Tests for the schedulers are also ready. Proper documentation is missing at the moment, but will be delivered soon. My best helping hands were Gedare and Joel whom I have to thank a lot. I hope I stay involved in RTEMS scheduling in the future. It might be useful to extend the CBS with quality of service features.

POSIX Filesytem Compliance Test Suite by Xiang Cui

The new test suite fstests is added in RTEMS head now. The aim of the test suite is mainly testing the implementation of differet filesystems (imfs, dosfs, and rfs) . A lot of POSIX compliance problems were found in the progress of completing the test suite. The test suite also confirmed some bugs which alreadly listed in bugzilla. The tests can't be uesed in coverage test now, due to that some of the bugs can't be fixed in short time.

Although interrupted by other thing in the summer, I gained a lot of knowledge during the project. I am very thankful to the community. I alreadly start to advise and help my classmates to use RTEMS. In the future I will continue helping fix bugs in tests as I become more familiar with RTEMS.

POSIX Timing Tests by Ricardo Aguirre

The goal of my project was to develop timing tests for some threading and synchronization operations from the POSIX standard. For each method tested, I wrote tests for various execution paths of that routine. For example, a sleep() can be a yield or a blocking operation. I developed timing tests for the following classes of POSIX Operations:

  • Threads
  • Synchronization
  • Interprocess Communication
  • Scheduling Interface

This means I wrote timing tests for the following types of POSIX objects:

  • pthread_mutex
  • pthread_key
  • pthread_barrier
  • pthread_rwlock
  • message queue
  • semaphore
  • sleep and nanosleep

The development plan for the POSIX Timing Tests and their current status is located in the file rtems/testsuites/psxtmtests/psxtmtests_plan.csv in the RTEMS source tree.

RTEMS MMU Context Support by Quanming Shi

The MMU hardware can be used for memory protection in RTEMS running with PowerPC 6xx CPU now. As described in my proposal, I have implemented a suite of user level API for memory protection control. Users can add/delete/modify/search memory protect domain and control the access and cache attributes. I reused some hardware related part of the code of the previous GSOC 2009 RTEMS MMU Project, such as the PSIM exception handler. Thanks to the author, Aanjhan Ranganathan.

Compare to my proposal, there are several obvious change: the first is I give up to integrate my new API with the Partition or other RTEMS API. Instead, I implement the cache attribute control and several POSIX API functions. The cache attribute is also a part of the attributes can be control by the new API now. The new POSIX APIs contain mmap, munmap and mprotect. The implementation is basic and simple, and only support part of the function defined by POSIX standard now.

The project has not been merged into RTEMS yet. This will be my next work. I will continue to pay attention to the improvement in future. [Editor's Note: His mentor is using this in his RTEMS based application. Once he is satisfied with that and his own work, it is expected to be merged.]

Anyone who are interested in my project can find my code on google code project[1]. For more details about my project, Please check my final report and the API=92s user manual in the same project website.

[1] http://code.google.com/p/gsoc2011-rtems-mmu-support-project/

RTEMS port of the GNU Java Compiler by Jie Liu

This is the third report after =93GCJ Porting for RTEMS Status Report=94[1] and =93RTEMS Port of GCJ Progress Report=94[2], and it is also the final report for the open project =93RTEMS port of the GNU Java Compiler=94[3] which belongs to GSoC 2011. After the second report:

  • bdwgc=92s pthread support is available on RTEMS/i386
  • bdwgc=92s pthread support patch has been merged[4]
  • found 3 bugs in RTEMS, bugzilla 1855, 1867, 1894, thanks Joel for fixing these bugs
  • gcj patch for RTEMS/i386 has been merged into gcc[5]
  • augmented scripts in rtems-testing for gcj RTEMS/i386

All the patches can be seen at google-summer-of-code-2011-rtems[6] Jie_Liu.tar.gz.

So gcj is available on RTEMS/i386.

[1] http://www.rtems.org/pipermail/rtems-users/2011-June/008574.html

[2] http://www.rtems.org/pipermail/rtems-users/2011-July/008657.html

[3] http://www.rtems.org/wiki/index.php/GNUJavaCompiler

[4] http://gcc.gnu.org/ml/java-patches/2011-q3/msg00042.html

[5] http://gcc.gnu.org/ml/java-patches/2011-q3/msg00055.html

[6] http://code.google.com/p/google-summer-of-code-2011-rtems/downloads/list


RTEMS at Flight Software Workshop

The RTEMS Project will be making an appearance at the Flight Software Workshop to be held at The Johns Hopkins University Applied Physics Laboratory from October 19 - 21, 2011. Joel Sherrill will be presenting an updated version of the RTEMS Development Roadmap including updates on 4.11 and our wish list. Also in attendance will be Chris Johns, Gedare Bloom, and Mark Johannes from our community.

OAR Corporation is a sponsor of this year's event and will have a table top display with information on RTEMS.

We look forward to seeing you there and hearing about your project and RTEMS needs.


July

Announcing Legacy Releases 4.6.9, 4.7.5, and 4.8.4

The RTEMS Project provides support for two branches, currently 4.10 and 4.9, as well as the development head (e.g. 4.11). OAR Corporation recognizes that a project may select an RTEMS version and choose not to upgrade to new release series. This minimizes the impact of tool updates and RTEMS changes. But using that old RTEMS release with no support or possibility of bug fixes is also not a good situation to be in. To address that need, OAR offers legacy support for older RTEMS release series.

Today OAR Corporation is proud to announce new releases in the 4.6, 4.7, and 4.8 release series.

  • 4.8.4 includes over 20 bug fixes not in the last 4.8 public release.
  • 4.7.5 includes over 35 bug fixes not in the last 4.7 public release.
  • 4.6.9 includes over 55 bug fixes not in the last 4.6 public release.

If you are using one of these older release series, you should seriously consider legacy support. For more information, contact Joel Sherrill.


RTEMS 4.9.6 Released

The RTEMS Project is pleased to release 4.9.6. This is the seocnd release from the 4.9 release series and includes both bug fixes and BSP updates. The PRs addressed are included in the release package and listed in the release notes. This release includes test coverage reports for multiple targets. The test coverage reports are now function oriented and where available, include branch information.


RTEMS 4.10.1 Released

The RTEMS Project is pleased to release 4.10.1. This is the second release from the 4.10 release series and includes both bug fixes and BSP updates. The PRs addressed are included in the release package and listed in the release notes. This release includes test coverage reports for multiple targets. The test coverage reports are now function oriented and where available, include branch information.


RTEMS Accepted in ESA Summer of Code In Space

The participating organizations in the first ESA Summer of Code in Space has been announced. There are 32 participating organization and each is to be allowed one student.

From the announcement:

For the first edition of SOCIS (2011) we received 32 applications from mentoring organizations. As this first edition of SOCIS is a pilot programme (and thus limited in funding) we preferred to include more organizations than assigning multiple slots. The following 20 organisations have thus been assigned 1 student slot each.

Please visit the ESA SOCIS program site for more information. If you have questions about the program, there is a Google Group for this purpose. Information for students interested in an RTEMS project, should see the information on the RTEMS Project home page.

Reference: SOCIS Selected Organizations


DAWN To Enter Orbit of Vesta

DawnDAWN was launched September 2007 and has taken almost four years to reach its first science stop. It is to enter the orbit of the asteroid Vesta today (15 July 2011) and orbit for approximately one year collecting data. The image to the right was obtained this image with its framing camera (which runs RTEMS) on July 9, 2011. It was taken from a distance of about 26,000 miles (41,000 kilometers) away from the protoplanet Vesta. Each pixel in the image corresponds to roughly 2.4 miles (3.8 kilometers).

References:

  • http://dawn.jpl.nasa.gov/feature_stories/spacecraft_to_enter_asteroid_orbit.asp
  • http://dawn.jpl.nasa.gov/multimedia/dawn_vesta_image_070911.asp

May

Passing of Dr James Johannes

Dr James Johannes passed away earlier this week. He founded On-Line Applications Research (OAR) Corporation in 1978. He was an Emeritus Professor of the Computer Science department faculty at University of Alabama in Huntsville and was the first head of the department. Based upon the number of dissertations on the shelves at OAR, he advised over twenty-five successful Ph.D. students. When he retired, he was serving as the Graduate Dean of the UAH College of Science.

For my reflections on Dr J, please visit my blog entry.


New Book Features Information on RTEMS

The new book Building Parallel, Embedded, and Real-Time Applications with Ada features information on Ada and RTEMS. John McCormick was kind of enough to allow me to use the examples from this book for a SIGAda 2011 tutorial. One of these was a coffee vending machine examples which morphed into variants with a command line and web interface. Below is the press release.

John W. McCormick, University of Northern Iowa

Frank Singhoff, Université de Bretagne Occidentale

Jérôme Hugues, Institute for Space and Aeronautics Engineering (ISAE), Toulouse

Summary

The arrival and popularity of multi-core processors has sparked a renewed interest in the development of parallel programs. Similarly, the availability of low-cost microprocessors and sensors has generated a great interest in embedded real-time programs. This book provides students and programmers whose backgrounds are in traditional sequential programming with the opportunity to expand their capabilities into parallel, embedded, real-time and distributed computing. It also addresses the theoretical foundation of real-time scheduling analysis, focusing on theory that is useful for actual applications. Written by award-winning educators at a level suitable for undergraduates and beginning graduate students, this book is the first truly entry-level textbook in the subject. Complete examples allow readers to understand the context in which a new concept is used, and enable them to build and run the examples, make changes, and observe the results.

Reviews

"By providing an extensive foundation for real-time and embedded systems programming, this book serves a much-needed role for both students and professional alike. Students will benefit from the clarity of the text and the many straight-forward examples. Professional developers will benefit from the breadth of material showing how to harness multi-core and multi-processor platforms effectively, with a mainstream, industrial-strength concurrent programming language. The accessibility and readability provided by the Ada language make it ideal for such a book, even for those not using Ada at present. As the owner of more than forty books on Ada and many years of embedded/real-time systems development, I am happy to recommend this one and look forward to its publication."

Patrick Rogers, AdaCore

Table of Contents

1. Introduction and overview
2. Sequential programming with Ada
3. Task basics
4. Communication and synchronization based on shared objects
5. Communication and synchronization based on direct interaction
6. Distributed systems with Ada
7. Real-time systems and scheduling concepts
8. Real-time programming with Ada
9. Tools for building and verifying real-time applications
Index

Hardback ISBN: 9780521197168

Bugzilla PR Shortcut Available

This isn't exactly ground breaking news but there is a new handy feature on the RTEMS.org. You can now access a specific RTEMS Bugzilla PR by adding "PRnnnn" to http://www.rtems.org.

For example, a short URL like http://www.rtems.org/PR1789 to access the PR to add the Simple SMP Scheduler to the development head.


Tornados of April 27th and Status

On Wednesday April 27, 2011, much of the southern United States was hit by one of the worst tornado storm systems in recorded history. I expect that all of you have seen some news reports about this. OAR Corporation is in Huntsville Alabama and hosts the servers and lab for the RTEMS Project. None of OAR was damaged but the main power transmission lines for north Alabama and Mississippi were destroyed by the storm. There are still areas in our county without power one week later.

My family and I went out of town after we realized it would be awhile for power to be restored. It took days at the hotel but slowly I remembered various ways to get in touch with parts of the RTEMS Community. Thursday about 5am, I managed to sent an email from my phone to a few people. Friday, we got to the hotel and I gave out news on IRC but didn't remember to change the topic. Finally I started to blog<//a> about it as well as post on the RTEMS Facebook and linkedin.com groups.

The power is now back at OAR and we are spending the day verifying everything is OK. The refrigerator has to be cleaned out. Some electronic devices had their batteries die during the six day outage. We think the public view of the RTEMS Project and OAR are OK now. But if you spot problems, let us know.

All in all, I am thankful that all survived without injury. I will probably write a couple of more storm related entries in my blog to clarify the state of things.


April

Google Summer of Code 2011 Students Announced

The RTEMS Project is proud to announce that we received eight (8) student slots in the 2011 edition of the Google Summer of Code. Congratulations to the students who were accepted. The students and projects that were accepted are:

Title Student
Implementation of the ISO9660 filesystem Christophe Huriaux
Lua Scripting and Shell Support in RTEMS Scotty Smith
RTEMS MMU Context Support Quanming Shi
RTEMS port of the GNU Java Compiler Jie Liu
POSIX Timing Tests Ricardo Aguirre Reyes
POSIX Compliance Test Suite Cui Xiang
Porting of resource reservation framework to RTEMS executive Petr Benes
Hypervisor for RTEMS Zhang Wenjie

Tentative mentors have been assigned, but a review of mentors and co-mentors needs to be performed. This ensures that all projects have two mentors and that no mentors are overloaded.


Solar Dynamic Observatory Featured in Smithsonian magazine

The April 2011 issues of the Smithsonian features the article Something New Under the Sun. This article has information on a number of solar projects but most of it is on the Solar Dynamic Observatory which launched in February 2010 and is running 5 hardened Coldfires running RTEMS. I blogged on the project when it launched. Since going operational, SDO has beamed 18 megabytes of data per second continuously back to earth for scientists to analyse. This includes high-resolution photos and magnetic field maps.

Congratulations to those who worked on this project.

The article includes a photo gallery with a number of interesting pictures. I thought this one was spectacular.

Ultraviolet image of the Sun

Ralf Corsepius In Mentor Photo on GSoC Home Page

If you visit the top page for the Google Summer of Code 2011 and look closely you can find long-time RTEMS contributor Ralf Corsepius. I won't make you guess where he is. Just look on the right hand side of the photo on the top row. He is there in the corner two rows above the lovely person with the triangle pirate-hat.

This was a nice reminder of the pleasant and productive time with Ralf, Chris Johns, and I had there.


March

Google Summer of Code 2011 Flyers Available

Here are a couple of flyers for RTEMS and the Google Summer of Code 2011. Please do your best to encourage students you know to apply to some organization even if it isn't RTEMS. If you are a student, please hang these around your department and lab.

Students can begin to apply today (28 march 2011).

NOTE: The RTEMS Flyer should be able to be printed either single or double-sided. When double-sided, if you are lucky, the pull-offs should line up.


RTEMS Accepted in Google Summer of Code 2011

The RTEMS Project has been accepted to be a participating organization in the Google Summer of Code 2011. We have been busy in the off-season getting ready for potential students. We have started to update the Open Projects and RTEMS Summer of Code pages in the Wiki and begun to promote GSOC.


New RTEMS Fedora Virtual Machine Images Available

I have prepared two Fedora 14 Virtual Machine images and published them to sourceforge.net. One includes the RTEMS Development Environment for 4.10, while the other contains a 4.11 RTEMS Development Environment.

This is a low effort way to get started with RTEMS. The VMs were created and tested using VirtualBox. The VM image includes SPARC and i386 target support as well as Eclipse with the RTEMS plugin. Simulators are included for the SPARC/sis BSP and i386/pc386. Qemu is also installed and configured to support testing networked applications with the pc386 BSP. Anyone interested in RTEMS who wants a pre-setup environment to play in is encouraged to use these. See this page for more details.


February

RTEMS Open Class -- April 2011 in Huntsville

The first RTEMS Open Classes of 2011 will be held in April 2011 in Huntsville Alabama. Once again, Joel Sherrill will be teaching the class. The classes are scheduled as follows:

For more detailed information on the Kick Start and Open Class, please visit RTEMS Training.

To express interest in dates in Huntsville or to host a class at your company, please contact Joel Sherrill (joel.sherrill AT OARcorp DOT com).


RTEMS 4.9.5 Released

The RTEMS Project is pleased to release 4.9.5. This is the sixth release from the 4.9 release series and is primarily a bug fix release. This is a bug fix release with the list of PRs addressed included in the release package. This release includes test coverage reports for multiple targets. The test coverage reports are now function oriented and where available, include branch information.


RTEMS 4.10.0 Released

The RTEMS Project is pleased to release 4.10.0. This is the first release from the 4.10 release series and is primarily a bug fix release. As the first release in the 4.10 release series, it has new features and BSPs not present in previous release series.

This release includes test coverage reports for multiple targets. The test coverage reports are now function oriented and where available, include branch information.


January

Semantic Wiki Extensions to Mediawiki Installed

The RTEMS Wiki has been upgraded to the latest version of Mediawiki. In addition, the Semantic Wiki extensions have been installed. This extensions includes significant capabilities which will allow us to better search, organise, tag, browse, evaluate, and share our wiki's content.

Learning Semantic Wiki tagging and use will be a learning opportunity for us all but should be worth it.

A thank you goes to Google for the Mentor Summit where I met one of the Semantic Wiki maintainers and was convinced of its value.


2010

December

Flight Software Workshop 2010

Joel Sherrill will be speaking Thursday, December 9, 2010 at the Flight Software Workshop at the California Institute of Technology in Pasadena, CA. I will also be participating in a panel discussion that evening. This event is hosted by The Aerospace Corporation, with support from The Johns Hopkins University Applied Physics Laboratory and The Jet Propulsion Laboratory.

If you are attending, please be sure to say hi to me. If you can bring me a souvenir of your project using RTEMS, that would be very much appreciated.

--joel


October

Lawrence Berkeley National Laboratory Visit

The GangOctober 22, 2010 is a date which will long be remembered. Chris Johns, Ralf Corsepius, and I were in San Jose to attend the Google Summer of Code Mentors Summit. I had asked Eric Norum if we could visit him at Lawrence Berkeley National Laboratory, get a tour, and maybe give an RTEMS presentation. He was kind enough to arrange the visit, handle the paperwork, and even run up and down the steep hill side to find us when we arrived.

There were about 30 people in attendance with a number from Stanford Linear Accelerator Center (SLAC). Among them was Till Straumann! Before this meeting, only a few pairs of us had ever met in person before. This was the largest gathering of RTEMS core developers ever! Together we have about 70 years of RTEMS experience.

From left to right, you have Ralf Corsepius, Eric Norum, Chris Johns, Till Straumann, and myself -- Joel Sherrill.


Running SLOCount on RTEMS

I have run David Wheeler's sloccount on RTEMS and written the results up in a blog entry.

There are more details in the blog but highlights are that RTEMS is estimated to represent over 200 person-years of development with an estimated cost of 49 million USD. And for you, it is free.


August

Go Programming Language now available for RTEMS

Thanks to the success of Vinu Rajashekhar's Google Summer of Code project, we are pleased to announce that there is now support for the Go programming language, a new systems language, for RTEMS. Vinu successfully ported GCC Go to RTEMS. This is the first cross and first embedded systems port of Go. The port is passing all of the Go tests in its GCC testsuite.

The instructions for building and other information on the port can be found in the RTEMS Wiki at http://rtems.com/wiki/index.php/GCCGoRTEMS. Now people can experiment with Go on real-time, embedded systems !

Thanks to Ian Lance Taylor from the Go project for mentoring this. Joel Sherrill provided backup from the RTEMS side.


Drupal and Mediawiki Updated on RTEMS.org

I updated Drupal and Mediawiki this morning on the server to the latest and greatest version. This is a largely manual operation and although everything appears to be fine, I wanted to let everyone know something changed. So if you see an anomaly, please report it.


July

RTEMS GSOC 2010 Progress Report

As June ends, it has been a month since the end of the bonding period. In this report, we find out what the students and mentors have accomplished in that time. Personally, I am impressed with the progress they have made. I encourage the community to communicate with and challenge the students. I encourage the students to keep working and submit patches incrementally. Reviewing and merging can be time-consuming. :)

Gedare Bloom -- Modular SuperCore Scheduler

My project is on target, and I have finished my first milestone, which was to produce a refactored ready queue by June 15th. I posted the code for this in my Google project. However, since then I have re-worked the ready queue implementation in order to further improve its modularity and efficiency. The new ready queue will be part of my next milestone, which is the refactored scheduler subsystem that I have targetted for completion by July 12th.

I am wrapping up the first attempt at refactoring the scheduler subsystem, and expect that I will make my next milestone. During this period I will be preparing patches to see about merging the refactoring work with the CVS head, as my code should be supporting the existing RTEMS scheduling mechanism.

Joel adds: Gedare does not mention a couple of items. He has also submitted the SPARC64 port that he and Eugen Leontie wrote along with two BSPs. He has done previous work on adding an Earliest Deadline First (EDF) Scheduler to RTEMS and we have been contacted by a student and advisor from Portugal with other EDF implementations. These will serve as test cases for having multiple schedulers and being able to easily select one of those available.

Vinu Rajashekhar -- RTEMS Port of GNU GCC Go

The work is going great. The porting is nearly complete on i386, with just 2 changelists left to be added to the gofrontend, and one patch left to be added to RTEMS. The testing of the port, using the GCC Go testsuite was also started side-by-side. Most of the testcases are working fine, and some handful of testcases, which are having trouble, are being handled individually.

After handling all the testcases, patches will be sent in so that the gcc testsuite of RTEMS can handle GCC Go testing. Then, I guess, work will start on documentation.

Joel adds: He is understating how well this has gone.Most of the test failures currently are tests that either will never run on RTEMS or have heavy resource requirements. He has submitted improvements to RTEMS as well as Go and had to get FSF copyright assignment paperwork in place for part of the work.

Bob Kuo -- RTEMS Port of Parrot VM

The work is coming along nicely. I have a set of tools that help cross compile Parrot and the configuration step of parrot and the building step both currently build without errors or warnings for i386 targets.

I am currently wrestling with setting up the default filesystem for QEMU so I can begin running the parrot test suite. Once that is done I will write a script that will allow the test suite to be automatically run under QEMU. After both of those are done, I will work on simplifying the installation and building of Parrot for RTEMS and begin more in-depth documentation.

Alin Rus -- RTEMS POSIX Asynchronous IO

The project is on schedule. As promised in the proposal, I finished implementing aio_read(), aio_write(), aio_error(), aio_cancel() and aio_return(). There is still work to be done to ensure compatibility with the POSIX standard as defined by the Open Group and an issue with thread priorities.

I am now working on cleaning up, testing and documenting the code. Until the midterm I hope I can also make some progress on aio_init() which will offer some flexibility and optimization to the current implementation. Once this is done I can start working on notification and lio_listio().

Bharath Suri -- Test coverage improvement

As planned, I have been working on libcsupport and libfs in June. There has been considerable improvement in the coverage (now around 92% with -Os considering the Developmental code). _rename_r, fifo/pipe (few explanations required), error reporting have been completed, and user database access routines (getpwent.c) are on the verge of completion. A few wrapper functions have also been targeted.

Although few iterations took more time than expected, things should be moving a bit quicker now, since I have got a taste of how things work. Focus on libcsupport and libfs would continue till major / all of it is covered.

Joel adds: What Bharath does not say is that in March, the coverage percentage for the Developmental configuration was 83%. So the test coverage is moving up nicely.

Cláudio Silva -- RTEMS Port of NetBSD's ATAPI/SATA Driver

The port of the NetBSD ATAPI driver's core is almost complete. There are only about 5 functions left to be ported for successful compilation and linking of ata.c, mostly NetBSD autoconf framework functions. Several NetBSD kernel functions were successfully ported and tested in RTEMS.

Once this driver part is successfully compiled I will proceed to testing it in VirtualBox. The next part to be ported will be the IDE controller drivers (pciide) that enable several ATAPI functions including DMA. Some controller drivers will be selected and ported (ICH6, pxiide?,...). Since some functions are already ported for RTEMS, this port should go faster.

Joel adds: This is an important because it adds driver support for more modern hardware.

Zhang Wenjie -- RTEMS Sequenced Initialization and System Events

My project is getting along as planned, the RTEMS Sequenced Initialization should be done inthe mid-term. Now the API of RTEMS Sequenced Initialization has been done, the information of how to design is put the RTEMS wiki and the code of API is put the RTEMS Bugzilla. These days I am working on the the test case of the API. The first version of test case is done and the basic function have been tested, but the code need to be improved.

So next work is to complete the test case, once the test result of the API is ok i can update the RTEMS Classic API, and POSIX API initialization calls with the Sequenced Initialization API and updating all linker command files.

Joel adds: This is an important project for Tiny/RTEMS as it helps completely drop out initialization code that is not needed by an application.

Yann Sionneau -- RTEMS port to Milkymist System-on-Chip

The port is on his way, UART in polled mode is working, so is the clock and timer driver. I have successfully compiled and run several samples programs like hello, ticker, nsecs, paranoia and fileio on lm32-qemu using -M milkymist -nographic arguments.

Moreover i tested hello and ticker on the real Milkymist SoC on a ML401 dev board, which worked perfectly as expected, which validates the uart and timer driver. The framebuffer driver is working, in single buffered -with flicker- mode. I have written a sample test that writes red pixels in the entire frontbuffer and it shows a really nice red screen with qemu in graphic mode :)

Next move : implementing anti-flicker by doing double or triple buffering.


June

SPARC V9 Support Added to CVS Head

Today marks a new phase in the life of RTEMS, as we introduce the first 64-bit processor family, the SPARC V9 (sparc64). Gedare Bloom (GSOC 2010 student) and Eugen Leontie (husband of GSOC 2009 student) have worked diligently to port RTEMS to the SPARC V9 CPU and have provided two BSPs that support the UltraSPARC T1 and UltraSPARC III processors.

The target sparc-rtems4.11 is already included in the standard tool chain with RPMs available for RPM based GNU/Linux distributions. Thanks to Ralf Corsepius for providing these tools and assisting in the review of this code.

The Niagara BSP for the UltraSPARC T1 can be executed using the free simulator Qemu and other simulators should also be able to be used for these BSPs but this has not been attempted yet.


ViewCVS Updated (and now called ViewVC)

Sometimes we don't realize how much time has passed since we last worked on something. In this case it was viewcvs.cgi. Chris Johns reported that it was crashing under certain conditions. A quick review said that we had a version dated 1999. It apparently served us well and quietly for 11 years. A lot has changed in those 11 years. Now many of the web packages we used to install by hand are available as RPMs. So the old version has been removed and a standard RPM version installed. This has broken all URLS using the old installation. The new URL is http://www.rtems.org/viewvc/.

This version has a number of features we didn't have in the old one. If you know of specific features you would like to see enabled, please speak up. We will check into turning them on.

If there are problems, please report them.


April

Announcement:RTEMS Kick Start and Open Class June 2010

OAR Corporation is proud to announce once again be teaching the Kick Start and Open Class. As RTEMS maintainer, I will once again be teaching these classes. This is the first time these have been offered in 2010. This is an unparalleled opportunity to learn about RTEMS from one of its creators. Both classes are offered in Huntsville, Alabama.

This is an enjoyable class to teach and I look forward to seeing you here. Email me directly with any questions.

--Joel Sherrill

joel DOT sherrill AT oarcorp DOT com


GSOC 2010 Students Announced

RTEMS is pleased to announce that we received eight (8) student slots this year. In addition, we are pleased that three of the projects involve cooperation with other open source software projects (Go, Parrot, and Milkymist). We had a record number of submissions and we really wanted to accept more. Unfortunately, there has to be a limit. If your project was not accepted this year but you still want to work on it, please do so. We will be happy to mentor you.

We would like to thank all students who took an interest in RTEMS and put forward a proposal. We are seeing the quality of proposals and students improve each year and this is a credit to all who are involved. We would also like to thank all of the mentors who took the time to review and comment on the proposals. And we would like to thank the folks in the Google Open Source Program Office for sponsoring the Summer of Code again and putting up with all of us.

Student Project Mentors
Gedare Bloom Modular SuperCore Scheduler Manager Joel Sherrill
Robert Kuo Parrot on RTEMS Jonathan Duke Leto, Chris Johns
Vinu Rajashekhar RTEMS Port of GNU GCC Go Ian Lance Taylor, Joel Sherrill
Alin Rus POSIX Asynchronous and List IO Ralf Corsepius
Claudio Silva ATA/SATA Driver Chris Johns
Yann Sionneau RTEMS Port to Milkymist Michael Walle, Sebastien Bourdeauducq
Bharath Suri RTEMS Test Coverage Improvements Jennifer Averett, Santosh Vattam
Wenjie Zhang RTEMS Sequenced Initialization and System Events Sebastian Huber, Chris Johns

NOTE: We would like all projects to have two mentors. But we have not yet assigned a second mentor to each project. If you are interested in helping mentor one of the students above, just speak up.


First Images From NASA Solar Dynamic Observatory

SDO Initial Image NASA's recently launched Solar Dynamics Observatory, or SDO, is returning early images that confirm an unprecedented new capability for scientists to better understand our sun’s dynamic processes. These solar activities affect everything on Earth. As discussed in this blog entry on the launch, the satellite includes five radiation hardened Coldfire processors running RTEMS. The RTEMS Project is proud to be a part of this mission.

Some of the images from the spacecraft show never-before-seen detail of material streaming outward and away from sunspots. Others show extreme close-ups of activity on the sun’s surface. The spacecraft also has made the first high-resolution measurements of solar flares in a broad range of extreme ultraviolet wavelengths.

"These initial images show a dynamic sun that I had never seen in more than 40 years of solar research,” said Richard Fisher, director of the Heliophysics Division at NASA Headquarters in Washington. "SDO will change our understanding of the sun and its processes, which affect our lives and society. This mission will have a huge impact on science, similar to the impact of the Hubble Space Telescope on modern astrophysics.”

Launched on Feb. 11, 2010, SDO is the most advanced spacecraft ever designed to study the sun. During its five-year mission, it will examine the sun's magnetic field and also provide a better understanding of the role the sun plays in Earth's atmospheric chemistry and climate. Since launch, engineers have been conducting testing and verification of the spacecraft’s components. Now fully operational, SDO will provide images with clarity 10 times better than high-definition television and will return more comprehensive science data faster than any other solar observing spacecraft.

The source for this article is http://www.nasa.gov/mission_pages/sdo/news/first-light.html. There is much more information on the Solar Dynamic Observatory there.


March

RTEMS Accepted as Organization in Google Summer of Code 2010

The RTEMS Project is very pleased to have been accepted as an organization in the 2010 edition of the Google Summer of Code. We encourage all potential students to join the mailing list and visit our IRC channel (#rtems on freenode.net). We will do everything we can to assist you in understanding the projects and helping you decide.


RTEMS 4.9.4 Released

The RTEMS Project is pleased to release 4.9.4. This is the fifth release from the 4.9 release series and is primarily a bug fix release. This is the second release to include test coverage reports and the first to include reports generated by the second generation of the analysis toolset. The reports are now function oriented and where available, include branch information. Note that at this point no simulator being used reports accurate branching information. Reports are included for x86, ARM, SPARC, and Coldfire here.

Issues With Problems Report Numbers

  • 1495/bsp - calling rtems_clock_get_uptime in a tight loop on pc386/QEMU leads to backwards time travel
  • 1477/cpukit - _Objects_Set_name does not ensure NULL terminated string
  • 1480/cpukit - Missed period statistics are wrong in 4.9.3 (right in 4.9.2)
  • 1481/cpukit - Check for partial period performed too early when updating period statistics
  • 1482/cpukit - POSIX timer_settime has path which does not exit dispatching critical section
  • 1490/doc - rtems_clock_get_ticks_per_second wrong prototype (typo)
  • 1497/bsp - gen5200 should not enable interrupts while waiting for reset

Issues Without Problems Report Numbers

  • Fixed the MSDOS node create to have the correct time.
  • libcpu m68k/mcf5282 - MCF5282_FEC_EMRBR_R_BUF_SIZE and MCF5282_CFM_CFMCMD_CMD were missing hexadecimal prefixes

New RTEMS Website Deployed

It is pretty obvious if you are reading this, but we now have a new website. Take a few minutes and look around. It is based upon Drupal and should provide a strong foundation for the future.

I would like to thank Chris Johns for his assistance in getting this together. He worked on the style sheets while I worked on content and adminstrivia.

If you spot any issues or broken links, please point them out.


GSOC 2010 RTEMS Presentation and Flyer Available

We here in RTEMS-land have been busy getting ready for the 2010 edition of the Google Summer of Code. We have already given a presentation to the IEEE-CS Student Chapter at the University of Tennessee at Chattanooga. Now the flyer and presentation material has been added to the RTEMS Moodle as the GSoC and RTEMS 2010 course. The material available is:

You will either have to have an account or login on the RTEMS Moodle as Guest.


February

RTEMS in Google Open Source Blog

(February 20, 2010) The wonderful people at the Google Open Source Program have added a blog entry on RTEMS and our success in the Google Summer of Code 2009. We are hopefully looking forward to being included in the 2010 program and being equally successful.


Solar Dynamic Observatory Launches

This satellite includes five radiation hardened Coldfire CPUs running RTEMS. There are more details and links at the


2009

December

Ticker Turns 21

The RTEMS ticker test (a.k.a. sp01) was the first test created during the development of RTEMS. It sets the date and time to 9:00 pm on 31 December 1988. This coincides with the earliest part of the RTEMS Project. Since there is no birth certificate, we are treating this as RTEMS Birthdate. Please toast RTEMS turning 21 where ever you are. Please don't be online -- share the New Year's Eve with loved ones. :)


Wiki Upgraded

The RTEMS Wiki was upgraded to the latest version of MediaWiki. The upgrade went smoothly but if there are any issues, please report them.


November

4.9.3 Released

The RTEMS Project is pleased to release 4.9.3. This is the fourth release from the 4.9 release series and is primarily a bug fix release. Of interest, and a significant milestone in the history of RTEMS, the release is the first to include test coverage reports. Reports are included for x86, ARM, SPARC, and Coldfire.


October

Test Coverage Reports Available

The RTEMS Project is pleased to announce that test coverage reports are now available for ARM, m68k, PowerPC SPARC, and x86. This is still a work in process with sponsorship of further coverage activities very much appreciated. We want to expand the code base analysed, improve coverage percentage across archtitectures, and do other kinds of analysis including statement and condition/decision coverage analysis. Current results are available here.


Google Summer of Code Wrapup Report Available

(October 12, 2009)

We have made a wrapup report available here which highlights each of the students' work.


September

Google Summer of Code Concludes

(September 1, 2009) We are proud to announce that our six GSoC and one RTEMS Summer of Code students were very productive this summer. We are working to ensure that as much of their work as possible shows up in the upcoming 4.10 releases.


March

RTEMS 4.10 Fedora 10 Development Environment VMWare Image

(March 16, 2009) The RTEMS Project is proud to announce the availability of a virtual machine preconfigured with the RTEMS 4.10 Development Environment for SPARC and i386. It is ready to run examples on simulators out of the box. We hope that this will lower the bar for getting started with RTEMS and provide a standard reference platform for demonstrations. We encourage all Summer oF Code students without dedicated GNU/Linux installations to try this. It is available for download via BirTorrent. Details are in the Virtual Machines for RTEMS Development Wiki page.


Eclipse Plugin for RTEMS Support

(March 13, 2009) This plugin adds support for invoking RTEMS toolchains and libraries within the Eclipse C/C++ Tooling (CDT) environment. Version 1.2.0 adds Hello-World and C++ samples to the plugin's feature set. To obtain the plugin, simply add this URL to your Eclipse installation's list of Update Sites.


4.9.2 Released

(March 12, 2009) The RTEMS Project is pleased to release 4.9.2. This is the third release from the 4.9 release series and is primarily a bug fix release.


February

OpenGroup/IEEE POSIX Permission

(February 17, 2009) The RTEMS Project has been granted permission by the IEEE and Open Group to excerpt and reuse text from the Open Group Base Specification Issue 6 in the RTEMS POSIX API User's Guide and RTEMS Shell User's Guide. This is a major milestone and grants the RTEMS Project the same permissions the GNU/Linux man pages projects and NetBSD have. A scanned copy of the agreement with the signature page removed is available online. We would like to offer our thanks to those who helped in this effort.


RTEMS eLearning Site Online

(February 3, 2009) The RTEMS Project now has an eLearning Site (http://moodle.rtems.com/). The site uses the FOSS Learning Management System (LMS) Moodle (Moodle). Please visit the RTEMS University Moodle, create an account, watch some presentations, and take some quizzes. There are currently only a handful of modules in the course catalogue but OAR plans to populate this with much educational material on RTEMS.


January

1993 RTEMS Brochure Online

(January 23, 2009) The year was 1993 and the U.S. Army was trying to promote the benefits of RTEMS. As part of that, a brochure was created. Where you lucky enough to have gotten one of these? If not, we have scanned one so you can see it.


2008

December

4.9.1 Released

(December 12, 2008) The RTEMS Project is pleased to release 4.9.1. This is the second release from the 4.9 release series and is primarily a bug fix release.


September

4.9.0 Released

(September 24, 2008) The RTEMS Project is pleased to release 4.9.0. This is the first release from the 4.9 release series and is a new features release.


4.9 Branch Created

(September 10, 2008) The RTEMS Project is pleased to announce that the CVS Branch for the 4.9 Release Series has been cut. We have entered a (hopefully short) period testing and polishing which will culminate with the 4.9.0 release. A side-effect of cutting the 4.9 Branch is that the CVS head is open for major submissions again.


August

4.8.1 Released

(August 13, 2008) The RTEMS Project is pleased to release 4.8.1. This is the second release from the 4.8 release series and is primarily a bug fix release.


4.7.3 Released

(August 8, 2008) On this numerically interesting date, 4.7.3 is released to the RTEMS Community. This is the fourth release from the 4.7 release series and is primarily a bug fix release.


April

Google Summer of Code Projects Announced

(April 21, 2008) RTEMS was fortunate enough to be included as Google Summer of Code project and received four student slots funded by Google. There were over three times as many student proposals as funded slots and all were good. In addition to the four funded student proposals, a few other students wanted to do the project anyway -- truly in the free software spirit. We want to thank Google as well as all the students and mentors involved in this effort. Details on the student projects are at RTEMS Summer Of Code Wiki page.


February

4.8.0 Released

(February 14, 2008): Happy Saint Valentine's Day!!! Today there were two RTEMS releases. The first of these is the long anticipated 4.8.0. 4.8.0 is the first release from the 4.8 release series and represents a long awaited step forward from the 4.8 releases. There have been many improvements to RTEMS itself including optional nanosecond timing granularity, smaller executables, a port to the Blackfin, and new POSIX services. The GNU/Linux RPMs have been updated and there are now MinGW hosted tools for MS-Windows users. On either hosts, users should be able to get started with RTEMS in a matter of minutes. For more details, see the 4.8.0 release information. Please note that if we forgot to include anyone's work in the release information, it is an accident. Please email and we will add the information.


4.7.2 Released

(February 14, 2008): The second Valentine's Day present to the RTEMS Community is the 4.7.2 release. This is the third release from the 4.7 release series and is primarily a bug fix release.


2007

September

4.8 Branch Created

The CVS branch for the 4.8 Release Series has been cut. This means that the feature set for RTEMS Versions 4.8.x has been frozen. It is now just a matter of testing and addressing the details associated with a release.


August

4.7.99.2 Snapshot

RTEMS 4.7.99.2 is released. This is hoped to be the last snapshot from the CVS head before branching the 4.8 release series. For more details, see the 4.7.99.2 release information. Please note that if we forgot to include anyone's work in the release information, it is an accident. Please email and we will add the information.


April

4.7.1 Released

RTEMS 4.7.1 is released. This is the second release from the 4.7 release series. It includes some bug fixes and some improvements. In particular, 4.7.1 includes improvements which should result in smaller executables.


March

4.7.1 Snapshot

RTEMS 4.7.99.1 is released. This is the first snapshot from the CVS head and what will eventually lead to the 4.8 release series. For more details, see the 4.7.99.1 release information. Please note that if we forgot to include anyone's work in the release information, it is an accident. Please email and we will add the information.


4.7.0 Released

RTEMS 4.7.0 is released. This is the first release from the 4.7 release series and represents a long awaited step forward from the 4.6 releases. There have been many improvements to RTEMS itself but the most visible is probably the addition of Yum/APT repositories. This allows GNU/Linux users to install RPMs and get started with RTEMS in a matter of minutes. For more details, see the 4.7.0 release information. Please note that if we forgot to include anyone's work in the release information, it is an accident. Please email and we will add the information.


2006

October

Blackfin Port Merged

A port to the Analog Devices Blackfin has been merged. This port was written and submitted by Alain Schaefer.


September

4.7 Branch Cut

The 4.7 branch has been cut. The focus on the branch is now achieving tool and source code stability.


August

NIOS II Port Merged

A port to the Altera NIOS II has been merged. This port was written and submitted by Kolja Waschk.


July

We are approaching the branching point for 4.7.

Last week, Joel released nearly a complete set of new development tool RPMs based upon Ralf's new RPM specifications. There are a couple of issues needing to be resolved before branching but we are very close. Please help test your configuration and update the appropriate BSP Wiki page with success information.


April

4.6.99.3 is now available.

It is primarily a snapshot to get feedback on and is accompanied by new gcc/newlib and gdb RPMS. It includes at least two new BSPs for Toshiba reference boards (RBTX4925 and RBTX4938) from Bruce Robinson of PMC Corporation. There are numerous other improvements and additions. If I forgot to include something you did, please report it so it can be listed here. 4.6.99.3 and all add-on packages may be downloaded via ftp or http.


4.6.6 is now available.

It addresses a handful of problems with the most critical being the infamous barrier patch caused by gcc moving code outside of an interrupt disable critical section. Improvments in 4.6.6 include an update to the Leon3 BSP which adds SpaceWire support and a patch to the pc386 BSP which makes it easy to configure it for VGA or COM1 as the console.

In addition to the general improvements in the 4.6 release series, there is also 4.6.6 specific information and download information here. If you are in a hurry though, the release and all add-on packages may be downloaded via ftp or http.


March

Update

The CVS head continues to evolve and improve. Highlights of recent activities include:

  • Motorola MPC5200 support with multiple BSPs by Thomas Doerfler
  • Large speedup in FAT filesystem performance by Thomas Doerfler
  • More autotools build infrastructure improvements by Ralf Corsepius
  • RTEMS RPMs submitted to Fedora Extras by Ralf Corsepius
  • SuperCore Doxygen comment conversion by Joel Sherrill

We expect to receive a new MIPS R4000 BSP and port to the Altera NIOS2 in the near future.


January

The CVS head continues to evolve and improve.

empty


2005

October

RTEMS 4.6.5 is now available.

This release addresses 6 issues reported by users with previous releases. Most of the issues were improvements to BSPs. One critical issue was a missing patch to the shared console driver source which resulted in multiple not compiling.

In addition to the general improvements in the 4.6 release series, there is also 4.6.5 specific information and download information here. If you are in a hurry though, the release and all add-on packages may be downloaded via ftp or http.


September

RTEMS 4.6.4 is now available.

This release addresses 38 problems reported by users with previous releases. The 4.6.4 release does include some bug fixes although improvements and cleanups account for more than 50% of the changes by bulk.

In addition to the general improvements in the 4.6 release series, there is also 4.6.4 specific information and download information here. may be downloaded via ftp or http.

Thanks again to Ralf Corsepius for his work which allows the 4.6 series tools to be installed in parallel with those for the 4.5 release series and the CVS development trunk. Without this capability, it would be more difficult to test and maintain older RTEMS releases. The 4.6.4 release represents months of user problems reports and testing in parallel with true development on the CVS trunk. Continuing to provide bug fix releases is critical for embedded systems with long lifespans.


August

Update

There is a lot of activity on the CVS head which will turn into 4.7 and a number of minor fixes to the 4.6 branch. Right now, I (Joel) am working on a new set of RPMs for the CVS head. This wil include new automake, binutils, gcc/newlib, and gdb RPMs. Moving to binutils 2.16.1 broke the old gdb RPMs so I am currently debugging new gdb RPMs. Once these work, all will be released along with a snapshot from the CVS head.


June

New gcc/newlib and binutils RPMs

There are new gcc/newlib and binutils RPMs available for use with the CVS head. If you are using APT or YUM, a simple update will be sufficient to transition to them. Otherwise, they may be downlaoded via ftp or http from the RTEMS ftp site. Thanks to Ralf Corsepius for helping out so much on these in spite of all the frustrations.

The rtems-4.7-gcc4.0.0newlib1.13.0-2 RPM set includes C for 11 targets, C++ for 9, and Ada for 7. They may be downloaded via ftp or http. This set of RPMs includes C for 11 RTEMS targets, C++ for 9, and Ada for 7 RTEMS targets. The rtems-4.7-binutils-2.16-1 RPM set includes support for 13 RTEMS targets and may be downloaded via ftp or http.


May

Update

The CVS head has had a lot of activity over the past few months including multiple new BSPs (Gamepark GP32, Radstone EP1A, Arcturus Networks uC5282), old BSPs removed, unification of the PCI and IRQ APIs, removal of warnings from gcc 4.0, and much more. The current plan is to release gcc 4.0.0 RPMs soon. Ralf has successfully built most targets including Ada support so it should just be a matter of duplicating that and providing them on the ftp site.


2004

October

RTEMS 4.6.2 is now available.

This release addresses the 36 problems reported by users with the 4.6.1 release. The 4.6.2 release does include some bug fixes although improvements and cleanups account for at least 50% of the PRs closed. The biggest improvement is the new NFS client for RTEMS which was contributed by Till Straumann of Stanford University.

In addition to the general improvements in the 4.6 release series, there is also 4.6.2 specific information and download information here. If you are in a hurry though, the release and all add-on packages may be downloaded from ftp://ftp.rtems.com/pub/rtems/4.6.2.


September

RTEMS Wiki Online

RTEMS has long needed a dynamic system to capture information about using BSPs, applications, hints, etc.. The current FAQ is a static document and it has proven difficult to add information in a timely manner. Enter the RTEMS Wiki. Some of the current FAQ and application information has already been transfered to the Wiki. Also an initial structure has been added for BSP and application information. Everyone is encouraged to shared their knowledge, pitch in, and edit away.


June

Upgrade Update On May 23.

there was a security breach on the rtems.com server. The breach was cleaned up and this was taken as a sign that the overdue OS upgrade needed to be performed. At this point, we believe everything EXCEPT the generation of indices for site searches (ht://Dig) is back on-line. The most noticeable impact of the update should be that new versions of GNATS, GNATSWeb, and CVSWeb are now being used.


April

RTEMS 4.6.1 is now available.

This release addresses the 14 problems reported by users with the 4.6.0 release. The general improvements in the 4.6 release series and more specific download information are discussed here. The release and add-on packages may be downloaded from ftp://ftp.rtems.com/pub/rtems/4.6.1.


February

RTEMS 4.6.0 is now available.

This release has a lot of improvements over the 4.5 release series. Some of the high level differences are discussed here. The release, tools, and add-on packages may be downloaded from ftp://ftp.rtems.com/pub/rtems/4.6.0. Be warned that this is a large directory (1.6 GB) so please try to download just what you require. There are multiple ways to assist in just downloading what you need:


January

Update

The past few months have seen a lot of internal activity that has not yet been reflected to the public. I just updated the page that documents what is happening on the development trunk and here are just a few highlights of on-going activities that will make their public debut shortly:

  • Toolsets for 4.6 and the development tree are now independent of one another and can be installed in paralled on the same development machine.
  • At the suggestion of Ralf, the RTEMS toolsets will soon be able to be automatically upgraded. We are in the process of setting up apt4rpm on the RTEMS server.
  • Once apt4rpm is installed, 4.6.0 will be release.
  • The conversion to complete use of automake and separation of BSP and CPU Kits is coming closer to completion.

So hang on, all this infrastructure work is about to pay off handsomely.


2003

October

RTEMS 4.6.0pre5

has been released. This is the fourth and hopefully final preview of the 4.6.0 release. Thanks to everyone's testing, 58 problems were found and fixed. The biggest change however is that now the tools are installed to /opt/rtems-4.6 by default to avoid potential conflicts as development proceeds. For those who remember, there came a point past the 4.5 releases where those tools no longer worked with new snapshots. This addresses that problem by providing distinct toolsets with different install points for the 4.6 release series and future snapshots.


September

New BSP from Cognet

Cogent Computer Systems, Inc. has announced the availability of an RTEMS BSP for their AT91RM9200 ARM920T based CSB337 board. See http://linuxdevices.com/news/NS5580793766.html for more information.


August

NEW WEB SITE AND SERVER!!!

The completely new RTEMS website and all RTEMS project support services are now on dedicated computer at the rtems.com domain. This server is currently hosting web, ftp, cvs, and bug tracking services for the project. Thanks to OAR Corporation for providing the computer and hosting.


July

RTEMS 4.6.0pre4 has been released.

This is the fourth and hopefully final preview of the 4.6.0 release. It addresses 10 problems reported against pre3.


RTEMS ss-20030703 has been released.

This snapshot addresses a range of issues from minor bugs to improvements in documentation. See the ANNOUNCEMENT associated with the snapshot for more details.


May

GCC 3.2.3/Newlib 1.11.0 (revision 2) tools made available on RTEMS ftp site.

Binaries for GNU/Linux (RPMs), Cygwin, and Solaris were included in addition to source and patches. Revision 1 was only used for testing purposes. Revision 2 was required in order to include the libstdc++ i386 atomicity.h fix.


The RTEMS mailing list archives have been regenerated.

This will make email addresses harder to harvest by Spammers. The obvious results of this are that "@" is now "at" and that "." is not "dot". This was done to all archived messages back to 1999.


April

RTEMS SS-20030417 has been released.

This snapshot fixes minor bugs including a build failure for the MCP750 BSP and the Development Environment Guide.