PropellerGCC is an open-source C/C++ compiler for the Propeller P8X32A multicore microcontroller. It is an ANSI-C C89 and C99 compliant with very few exceptions [1]. Its libraries include propeller.h (which also includes cog.h) to accomodate the multicore Propeller architecture, as well as many Standard C Libraries; the complete library reference is available here [2].
Since some standard libraries (such as stdio.h) are very large, the Propeller C Learning System includes custom non-standard Simple Libraries (see below) that use far less memory and also provide features to support microcontroller I/O tasks. See the PropellerGCC FAQ [3] for more information about PropellerGCC and memory usage.
SimpleIDE is the programming software for the Propeller C Tutorials.
Download the SimpleIDE User Guide [4]
Simple Libraries are designed by the Parallax Education Team especially for the Propeller C Tutorials series. They are included in the Learn folder distributed with the SimpleIDE software, and with every interim Learn folder update. See the "Stay Current!" box on the upper right for the latest versions.
The Propeller C Tutorial Archive [5] contains previous versions of the tutorials, and links to the corresponding Learn folder (with Simple Libraries and Example Code) as well as the compatible version of the SimpleIDE software.
When you open an example program in SimpleIDE, it is contained in a project. SimpleIDE is designed to be a one-project per window system. If you want to have more than one project open, just open more than one SimpleIDE window. For example, here is what it looks like to have two example programs open.
In Windows, every time you double-click a .side file, it’ll open the project into a new SimpleIDE window and automatically open its .c main into the editor pane.
In Mac, you have to first make one or more copies of the Applications Folder’s SimpleIDE app. Then, any time you need more than one window open, just double-click more than one SimpleIDE copy in the Applications folder.
Whenever you use New Project, Open Project, Save Project, or Save Project As, you are creating/opening/saving the entire project, including the C code files. These choices are available as buttons on the button bar, and also through the Project menu.
Some example projects just contain a single .c file. Others contain multiple .c files, and still others contain multiple files of various types that get compiled into a Simple Library. For projects with multiple files, click the lower-left Project Manager button to view them. Each file you click in that list will open into a new editor tab. Remember, all the tabs that open in that SimpleIDE window are files that are part of that project. For more examples of working with multiple files, see the Library Studies guide [6].
Need to go shopping for libraries that support devices? In SimpleIDE, Click Help and select Simple Library Reference. When you have found a Simple Library you want to use, simply #include that library in your program, and SimpleIDE takes care of the rest. For example, if the ping library has the functions you need to incorporate a Ping))) sensor into your project, add #include “ping.h” to your project. Your program can then call any function in the ping library.
Propeller GCC also contains most standard C libraries. These libraries have been documented many times over on the web at large, so if you are looking for info on something like string manipulation, try a Google search like this: "How do I compare two strings with C language?" In this case, you might discover examples showing that you need to add #include <string.h> to your program, along with calls to one or more of the string library’s functions, like strcmp in this case.
Why "filename.h" or <filename.h> ?
It has to do with where the C compiler pre-processor will first search for files. By convention, user-created libraries use the "filename.h" notation. Standard libraries and device-specific libraries that are packaged with the compiler use the <filename.h> location. But don't worry, PropGCC and SimpleIDE will find your libraries either way.
Each project has at least two files, a .side project file and a main file. For example, the Count to Ten project has two files, Count to Ten.side, and Count to Ten.c.
Authors of larger programs will often sort functions into multiple files. The code will always start in the function named main, but main might call functions in other files. The simplest way to add files to your project is to keep them in the same folder with the .side file. For example, if you want to add files to your project, click Project and select Add Tab to Project. If you want to open files existing files into your project, put them in the same folder with your project, then use Project -> Open Tab to project. Both of these features have a dropdown for setting the type of file to create/add.
If you want to create your own Simple Library, see the Library Studies guide [7]. It also has step-by-step examples of working with multiple files in a project.
If you want to customize a Simple Library for use with a specific project without affecting the Simple Libraries folder, just put a copy of the Simple Library (a folder whose name starts with lib) into the folder that contains the project. You do not need to add anything to the project manager, just make sure to #include the library in your code. SimpleIDE automatically checks subfolders under the project for libraries before it checks in …Documents/SimpleIDE/Learn/Simple Libraries/.
Libraries that have not been precompiled might just be a collection of one or more .h, .c, and optionally other files. These can either be converted to Simple Library project with those files using techniques introduced in Library Studies guide, or manually added to a given Project. Adding files to a project can be done with the Add/Open Tab to Project, but the files can also be placed in a subfolder, then incorporated into the project by right-clicking the Project Manager’s file list and selecting Add File Link.
SimpleIDE was originally created to provide an alternate option to the command line tools that were being used while the Propeller GCC compiler was still in development. This earlier version of the software had a number of features that made it easy for beginners who are not yet aware of the distinctions between projects and files to create bugs — bugs that bring learning to a screeching halt. To make SimpleIDE more available to to new programmers (often students just getting started in an educational environment), a new user interface called Simple View was designed to prevent file operations happening in place of the intended project operations. This new interface still allows the more advanced project creations that were performed with the original, but without file operation traps for new users that the older Project View had.
Project View is still available in SimpleIDE, though not actively supported by Parallax. Access to these features is also intentionally nonintuitive to prevent new users from unintentionally accessing them. For information on how to access Project View and explanations of its features, open the SimpleIDE User Guide from SimpleIDE's Help menu, and read the Project View section.
To see current and previous version information for SimpleIDE, please select your operating system from the list below:
Need to install the latest version of SimpleIDE? Click here to go to the Set Up SimpleIDE page [12].
Need to install the latest version of SimpleIDE? Click here to go to the Set Up SimpleIDE page [20].
Need to install the latest version of SimpleIDE? Click here to go to the Set Up SimpleIDE page [12].
Need to install the latest version of SimpleIDE? Click here to go to the Set Up SimpleIDE page [12].
Need to install the latest version of SimpleIDE? Click here to go to the Set Up SimpleIDE page [12].
Looking for Propeller C tutorials that are compatible with the previous versions of SimpleIDE and the Learn folder? Download the older versions of our Propller C tutorials as html archives here.
Learn Folder Update 2014.11.07 [23]
Learn Folder Update 2013.11.01 [24]
Last used as an update to SimpleIDE 0-9-45.
Simple Circuits 2013.08.07 [26]
Simple Devices 2013.08.07 [27]
Functions 2013.08.07 [28]
The above tutorials are compatible with the following version of the Learn folder and SimpleIDE:
Links
[1] https://github.com/parallaxinc/propgcc/blob/master/doc/C-Standard.html
[2] https://rawcdn.githack.com/parallaxinc/Simple-Libraries/5faf8977b1db2c8565204dd58d8f9c60d0a74257/Learn/Simple%20Libraries%20Index.html
[3] https://sites.google.com/site/propellergcc/documentation/faq
[4] https://learn.parallax.com/sites/default/files/content/propeller-c-reference/landing/SimpleIDE-User-Guide-1-01.pdf
[5] https://learn.parallax.com/C/propeller-c-tutorial-archive
[6] https://learn.parallax.com/propeller-c-libraries
[7] https://learn.parallax.com/propeller-c-library-studies
[8] https://learn.parallax.com/C/simpleide-windows-version-info
[9] https://learn.parallax.com/C/simpleide-mac-version-info
[10] https://learn.parallax.com/C/simpleide-linux-version-info
[11] https://learn.parallax.com/C/simpleide-rasppi-version-info
[12] http://learn.parallax.com/propeller-c-set-simpleide
[13] https://www.parallax.com/product/32420d
[14] https://www.parallax.com/downloads/parallax-usb-driver-installer
[15] https://github.com/parallaxinc/SimpleIDE/issues/258
[16] https://github.com/parallaxinc/SimpleIDE/issues/255
[17] https://github.com/parallaxinc/SimpleIDE/issues/249
[18] https://github.com/parallaxinc/SimpleIDE/issues/251
[19] https://github.com/parallaxinc/SimpleIDE/issues/259
[20] https://learn.parallax.com/propeller-c-set-simpleide
[21] https://github.com/parallaxinc/SimpleIDE/issues/247
[22] https://github.com/parallaxinc/SimpleIDE
[23] https://learn.parallax.com/sites/default/files/content/propeller-c-tutorials/set-up-simpleide/Learn-folder/Learn-Folder-Updated-2014-11-07.zip
[24] https://learn.parallax.com/sites/default/files/content/propeller-c-tutorials/set-up-simpleide/Learn-folder/Learn-Folder-Update-2013-11-01.zip
[25] https://learn.parallax.com/sites/default/files/content/propeller-c-reference/TutorialArchive/PropellerC%20StartSimple%202013.08.07.zip
[26] https://learn.parallax.com/sites/default/files/content/propeller-c-reference/TutorialArchive/PropellerC%20SimpleCircuits%202013.08.07.zip
[27] https://learn.parallax.com/sites/default/files/content/propeller-c-reference/TutorialArchive/PropellerC%20SimpleDevices%202013.08.07.zip
[28] https://learn.parallax.com/sites/default/files/content/propeller-c-reference/TutorialArchive/PropellerC%20Functions%202013.08.07.zip
[29] http://learn.parallax.com/sites/default/files/content/propeller-c-tutorials/start-simple/book-cover/Learn%20Folder%20%28Updated%202013.05.01b%29.zip
[30] https://propside.googlecode.com/files/Simple-IDE_0-9-28_setup.zip