= RTEMSSummerOfCode = RTEMS is a participating organization of the [http://www.google-melange.com/gsoc/homepage/google/gsoc2014 Google Summer of Code 2014]! Please use this page as a jumping off point and ask questions. We want you to be a part of the RTEMS community! [[TOC(GSoC, depth=2)]] [[Image(Soc-logo-google-blue.jpg)]] Potential Students: Read through all the material on this page, and be sure to add yourself to the table in the Student Information section. Remember to fill out an [http://www.google-melange.com/gsoc/homepage/google/gsoc2014 official GSOC application] in addition to the informal proposal we request. We also require you build RTEMS, create an application, run it and post the result to the RTEMS mailing list. The [wiki:GSoC/GettingStarted GSoC Getting Started] page has some more information. Potential Mentors: Share your knowledge and pledge to help a student. Visit the [http://www.google-melange.com/gsoc/homepage/google/gsoc2014 GSoC2014] Melange system to register and open a connection with RTEMS Project. = General Information = The RTEMS Community is proud to have participated in previous editions of the [https://developers.google.com/open-source/soc/ Google Summer of Code] as well as [https://developers.google.com/open-source/gci/ Google Code-in (GCI)]. Information for prior years: * See RTEMS [wiki:GSoC/2013 Summer of Code 2013] * See RTEMS [wiki:GSoC/2012 Summer of Code 2012] * See RTEMS [wiki:GSoC/2011 Summer of Code 2011] * See RTEMS [wiki:GSoC/2010/Main **NAME** Summer of Code 2010] * See RTEMS [http://wiki.rtems.org/wiki/index.php/RTEMS_Summer_Of_Code_2009 Summer Of Code 2009] and [http://www.google-melange.com/gsoc/homepage/google/gsoc2009 Google Summer of Code 2009] * See RTEMS [http://wiki.rtems.org/wiki/index.php/RTEMS_Summer_Of_Code_2008 Summer Of Code 2008] = General Program Information and Guidance = * [http://www.google-melange.com/ Google's Starting Page for the Summer of Code] * [http://www.booki.cc/gsocstudentguide/ GSoC Student Guide] - This is a community developed book. = RTEMS Specific Information = * [wiki:TBR/Delete/Virtual_Machines_for_RTEMS_Development Virtual Machines (VMs)] are pre-configured RTEMS development environments playable with [http://www.virtualbox.org VirtualBox]. For students who do not have a dedicated development platform, the VMs are great for minimizing the pain of setup for RTEMS development. * [http://www.rtems.com/moodle/ RTEMS University] - included are presentations on GSoC and RTEMS as well as a presentation on GSoC from the RTEMS Project perspective. * [wiki:GSoC/GettingStarted GSoC Getting Started] - getting up to speed with RTEMS development for GSoC students. * [http://rtems.org/onlinedocs/doc-current/share/rtems/html/ RTEMS User Documentation (git daily)] Be sure to add yourself to the table below.== Writing Proposals and Doing Projects == '''Problem:''' Over the years of participating in Summers of Code, the RTEMS project has noticed some recurring themes with Summer of Code projects: # Projects would not meet the needs of the RTEMS project (and so would not be upstreamed). # Projects would be completed in such a way as they were not maintainable (external projects would make use of the RTEMS build system [http://home.gwu.edu/~cssmith/LuaRtems/ see:LUA], as opposed to using the external software's own build system [http://git.rtems.org/rtems-addon-packages/ see:rtems-addon-packages]), or projects would be hardcoded based on the RTEMS tree at one point in time see:[wiki:Building/MingwTools BuildingMingwTools] the NSIS installer. # Projects would be partially done without enough information for the next summer of code (or google code in) student to continue the work. For example: a change would be made for one architecture, but the way to generalize for the others was not documented. # Projects would be submitted as one giant patch at the end of summer, if rtems-devel reviewed the patch, the student would be busy with schoolwork when it was time to make changes. # Projects were not documented well enough for someone to verify it works. # Projects would be done over and over again (instead of being new) '''Solution:''' In the proposal the following MUST be included: # A paragraph explaining what the project is trying to accomplish ## What is the core problem being solved? ## Why is this better than what we have already done? # A sentence explaining how this project could be maintained (given developers have little time to maintain the code) # Make documenting how the next summer of code student will pick up with developing the project in later years a project deliverable # Break the project up into increments, so that if time runs out, each increment could be upstreamed, or at least written up on a wiki page so the next year's student could get farther faster. # Make writing a tutorial to include a deliverable # email the first draft to rtems-devel@rtems.org for feedback, and make adjustments before submitting '''(THIS IS A CRITICAL REQUIREMENT!!!)''' Expect the following questions from the email list: # We really need ''something else specific'' done instead... could you do ''something else specific''? # What's the maintainence plan? # How will we test it? # We did this already... How is this an improvement? # This is too much for you to complete in a summer... please remove these pieces from your proposal In addition, the RTEMS project will furnish not only a mentor, but a co-mentor, and one or two additional people to help with keeping the project on a topic that is both meaningful for the student, and for RTEMS. = Project Ideas = [wiki:Developer/OpenProjects Open Projects] contains the open projects list for RTEMS. It is by no means an all inclusive list and we are open to suggestions. Submissions of ports to new architectures, new BSPs, new device drivers, and test improvements are always welcomed. = Student Information = Visit [wiki:Developer/OpenProjects Open Projects] to find an interesting project, or propose your own! Ask about your project idea on the email list or IRC. The project descriptions often require additional knowledge to flesh out a project proposal. We want you to hit the ground running, so you need to build RTEMS, modify it a little, and run samples as a prerequisite. Please visit the RTEMS [wiki:GSoC/GettingStarted GSoC Getting Started] page for details. RTEMS is an operating system targeting embedded systems that are [http://en.wikipedia.org/wiki/Cross_compiler cross-compiled], meaning that you develop on a host system and run programs on a target system. In general, students working on code require no special hardware, because RTEMS runs on simulators like gdb, skyeye, and qemu. The development can all be done and tested using a GNU/Linux or other suitable host. Please read through the [wiki:Developer/GSoC/ProjectManagement SoC Project Management] page to get a sense of our expectations from you for the summer of code. = References = * [https://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents Advice for Google Summer of Code Students] from GSoC pageHow * HOWTO: [http://drupal.org/node/59037 Write a Summer of Code application] from Drupal. * [http://blog.gerv.net/2006/05/how_not_to_apply_for_summer_of/ How Not to Apply to GSoC] = Students' Proposals = '''The final version of your proposal must be submitted via Melange at Google.''' We have provided a [https://docs.google.com/document/d/1ECsmPB0ngIrVNXHlJFz0ArwN6GfkDURvpKKVHIl_0vo/edit?usp=sharing Google Docs template] for the Student Proposal. Feel free to copy it and invite potential mentors to review. '''Please be aware that this is NOT the official form to submit your proposal on. Your official application must be submitted through the GSOC Melange system.''' Periodically copy and paste your proposal into the student application form and save it in Melange to avoid any last minute problems. Until then, please use Google Docs and put the link in this table. That way any mentor or RTEMS community member can request access and comment on your proposal. Students.. please don't peek at each other. :)
GSOC STUDENTS! PLEASE FILL IN THE APPLICATION AT http://www.google-melange.com! YOU CAN EDIT UNTIL THE DEADLINE! BUT YOU WILL NOT GET A SLOT IF YOU DO NOT APPLY THROUGH Google!!!
{| border="1" style="margin: 1em auto 1em auto;text-align: center;" |+ |- |'''Student''' || '''Completed Hello''' || '''IRC Handle''' || '''Proposal Title''' || '''Google Docs URL''' |- |NAME || Yes or No|| nick on #rtems || Project Title || Link to Google Docs for proposal (shared with mentors) |- |Zhang wenjie || Yes || Json || Condition Variables for RTEMS || [https://github.com/cloud-hot/proposal Proposal] | |- |Youren Shen || Yes || Sched || Paravirtualization Layer in RTEMS || [https://docs.google.com/document/d/10ehcM1f2eKNwcNgv5stphGtsVAnYc_K7KLhxmjvE1k8/edit?usp=sharing Proposal] |- |Hesham AL-Matary || Yes || Hesham || Porting RTEMS to OpenRISC || [https://docs.google.com/document/d/1vZHLcEZvqidIpFAadbyMGLt5oLKrr2O4I5zmxWYL1lE/ Proposal] |- |Andre Marques || Yes || asuol || Raspberry Pi BSP Peripherals || [https://docs.google.com/document/d/13HiNH_EjnzbA3HJ86Cmd2Ooi0YOsehSGkTILD_M-REw Proposal] |- |Yang Jin || Yes || jinyang || Porting CAN driver, LinCAN, to RTEMS || [https://docs.google.com/document/d/12T2Sd9vDBGfMhlansaW0Ti2OmtrpRPgAXxdPuOHbM78 Proposal] |- |Janek van Oirschot || Yes || JustJanek|| ARINC 653 compliance on RTEMS using POK || [https://docs.google.com/document/d/15M-TEwhhABJj7e_C-54eMhLNSdgS-lazLyzWKDMC2lo Proposal] |- |P?emysl Houdek || Yes || AoLaD|| RTEMS port to Cortex – R4f || [https://docs.google.com/document/d/1qaGgjSLxNgNH0rDeG3dyJNrNE-cNEm6J7A0yEmJ-jsk Proposal] |} The ''Student'' column is for your name. The ''Completed Hello'' column lets us all know whether or not you completed the require Hello World project. Based upon our experience, students who have successfully compiled and run an RTEMS application have a MUCH MUCH higher chance of success on the proposed project. The ''IRC Handle'' column is your handle on IRC. RTEMS folks hang out in #rtems on freenode.net. The ''Proposal Title'' should be self-explanatory. The ''Google Docs URL'' is your proposal in Google Docs that can be reviewed and commented on by mentors. = Students' Summer of Code Tracking Table = Students whose GSoC project is accepted by RTEMS shall fill in a slot with their information in the following table, which helps to centralize [wiki:Developer/GSoC/ProjectManagement SoC Project Management]. {| border="1" style="margin: 1em auto 1em auto;text-align: center;" |+ |- |'''Student''' || '''IRC Handle''' || '''Project Link''' || '''Repository Link''' || '''Blog''' |- |NAME || nick on #rtems || Link to Project Wiki page || Link to project's public Github repository || Link to your development blog |- |Hesham ALMatary || Hesham || [http://www.rtems.org/wiki/index.php/OpenRISC_Port Wiki page] || [https://github.com/heshamelmatary?tab=repositories github] || [http://heshamelmatary.blogspot.com/ Blog] |- | Andre Marques || asuol || [http://www.rtems.org/wiki/index.php/Raspberry_Pi_BSP_Peripherals Wiki page] || [https://github.com/asuol/rtems github] || [http://asuolgsoc2014.wordpress.com/ Blog] |- |Youren Shen || Sched || [ Wiki page SoC Project Management] || [https://github.com/HuaiYuSched/rtems_GSoC github] || [https://Huaiyusched.github.io Blog] |- |Janek van Oirschot || JustJanek/JustJNK|| TODO: make wiki || [https://github.com/JustJanek github] || [http://justjnk.blogspot.nl/ Blog] |- |Premysl Houdek || AoLaD|| [http://wiki.rtems.org/wiki/index.php/RTEMSPortToCortexR4 Wiki page] || [https://github.com/AoLaD/rtems github] || |- |Krzysztof Miesowicz || krzysiekm13 || TODO: make wiki || [https://github.com/krzysiekm13 github] || [http://kmiesowicz.blogspot.com/p/esa-socis-2014.html Blog] |- |} = RTEMS Mentors = See our [wiki:GSoC/Mentors RTEMS Mentors] page for a list of potential project mentors.