= GSoC Getting Started = [[TOC(GSoC/GettingStarted, depth=2)]] The goal of this page is to help you get RTEMS compiled and running so you can start with the **real** work. Please join the [wiki:TBR/Website/RTEMSMailingLists rtems-users and rtems-devel mailing lists] and ask questions. Help correct any deficiencies in the code or documentation you spot, including those on the wiki. The ultimate goal of GSoC is to help you become part of the open source community. = Configure a Development Computer = You will be best served by using a GNU/Linux environment, which could be in a virtual machine, for example that uses [http://www.virtualbox.org Virtualbox] and should run on most modern desktop systems. {{{#!comment An RTEMS user has provided [https://github.com/thenewwazoo/rtems-vagrant some scripts] for setting up such a development environment with [http://www.vagrantup.com Vagrant]. Note, Vagrant scripts might be broken, a ticket has been submitted to fix it [https://devel.rtems.org/ticket/2488 ticket #2488], so it's better to use RSB directly instead until it's fixed. }}} We recommend building your own compiler using the [http://git.rtems.org/rtems-source-builder/ RTEMS Source Builder (RSB)] with the "download only" option first before you try to build. Refer to the [https://docs.rtems.org/branches/master/user/index.html User Manual] for RSB instructions and guidance on host specific setup. Feel free to ask questions on the rtems-users mailing list if you have trouble with this step. If you want tools for another architecture, replace **sparc** in the RSB directions with another architecture, such as arm or mips. You can also use the RSB to build RTEMS directly, but we recommend that you learn how to build RTEMS by itself with the compiler tools generated by RSB. As you will be compiling a lot of code, it is recommended to have a reasonably fast development machine. = Configure and Build RTEMS for SPARC/erc32 = * [https://docs.rtems.org/branches/master/user/start/index.html Follow our quick start documentation to download and install everything you need] * Once you have all the necessary tools, [wiki:TBR/UserManual/Quick_Start#Running run the hello world example in source tree] as show in the wiki there, or as in the screenshot below. The gdb session with the unmodified hello world will look something like the following (this should have your user name and a newer version of RTEMS): [[Image(SPARC-SIS-HelloWorld.png)]] Note that this image does not show you how to configure or build the executable being run. You are expected to find this information yourself. = Configure and Build RTEMS for "Preferred" BSP = The preferred BSP depends on your project, but your first choice should be a BSP that runs on a simulator such as one in gdb. SPARC/erc32 is a good candidate because it is easy to work with. If your project requires a BSP to support TCP/IP or something else not supported by SPARC/erc32, then still first try a simple environment like SPARC/erc32 and then move on to the one that will support your project. Discuss your project requirements on the RTEMS mailing list and let the community help point you in the right direction. If SPARC/erc32 is not the right test platform for your project then you will need to ensure you know how to run hello world on your preferred BSP. = Prove You Can Work On RTEMS = Modify the hello world example to include a new different print statement. Something like "Hello from The Dark Side!". Then send us enough to prove to us that you did this. We want to know you can work with RTEMS. Create a patch of your changes: see [wiki:Developer/Contributing Contributing] and [wiki:Developer/Git/Users#CreatingaPatch how to create a patch using Git]. If you followed the quickstart guide, this hello world modification will likely need to be made to the file you'll have in `$HOME/development/rtems/kernel/testsuites/samples/hello/init.c`. You can edit the file, commit your changes using git, and then run `git format-patch master` to generate a patch file. This will look like: {{{ diff --git a/testsuites/samples/hello/init.c b/testsuites/samples/hello/init.c index 8874030..dda8175 100644 --- a/testsuites/samples/hello/init.c +++ b/testsuites/samples/hello/init.c @@ -33,9 +33,10 @@ rtems_task Init( rtems_task_argument ignored ) { - printf( "\n\n*** HELLO WORLD TEST ***\n" ); - printf( "Hello World\n" ); - printf( "*** END OF HELLO WORLD TEST ***\n" ); + printf( "\n\n*** GSOC HELLO WORLD TEST ***\n" ); + printf( "Hello from The Dark Side!\n" ); + printf( "Welcome to RTEMS and Google Summer of Code 2009\n" ); + printf( "*** END OF GSOC HELLO WORLD TEST ***\n" ); exit( 0 ); } }}} * Take a "snapshot" of your modified hello world example and send us the snapshot. On GNU/Linux, you should be able to press the "Prnt Scrn" button or use the "xwd" command. This is a snapshot that Joel Sherrill took after running the hello world program with his changes. [[Image(SPARC-SIS-HelloWorld-Modded.png)]] = Send patch and screenshot = == GSoC Candidates == Ask how to submit the proof on the mailing list. We want you to engage with the community via the mailing lists as often as possible! == GCI Students == [wiki:GCI/Coding/HelloWorld Head back to your original task page and make sure you submit all the deliverables required for your task.] = Other targets = If your project requires more of a test environment than what SPARC/erc32 provides, then repeat the hello world steps on the BSP we help you select. If your project involves developing a new BSP, then you may want to run on a BSP from the same target architecture on a simulator. Again we will help you select the BSP. We are here to help you have a functional RTEMS Development Environment as soon as possible so you can move on to the real project. = Interact = Check out the [wiki:GSoC RTEMSSummerOfCode] page. Join the [wiki:Developer/IRC IRC channel] and [wiki:TBR/Website/RTEMSMailingLists mailing lists]. Become part of the RTEMS community. Talk to [wiki:GSoC/Mentors potential mentors], and check out the [wiki:Developer/OpenProjects open projects on the GSoC Ideas List] if you have not already done so. Happy Hacking!