This is an old revision of the document!
This is a walkthrough on the process of developing MIOS Applications primarily in C but also in ASM utilising the MIOS C Wrapper. The platform used will be Code::Blocks IDE onMicrosoft Windows XP, and the applications will be built for both AC-Sim (AudioCommander's C Simulator) compiled with GCC for MinGW, and for the MIDIBox Hardware Platform (MBHP) compiled for PIC18F with SDCC, assembled with GPUtils, using ActiveState ActivePerl to generate, and parse files for, the DOS-Console-based make batch file scripts, and MIOS Studio will be used for debugging on MBHP.
Please don't be put off by all that mumbo jumbo. If you're totally newbie then this document is also for you :) I've included everything you need to do, step-by-step, for everything except for actually coding the app. I hope this will not only make it easier for newbies to get started, but for ASM coders like myself to transfer their skills into C development (which seems to be the future of MIOS) or as a reference point for the experienced. In order to do this, I've included as much information as possible, but I have created links to jump through the document for those who don't need all that detail.
I hope you find this document helpful and that you will feel free to make suggestions or criticism or corrections or any kind of modifications as you see fit :)
Normally, the necessary directories are added to you PATH environment variable during the above installations. Sometimes, they aren't. Here's how to check it:
Full Installer package is highly recommended unless you're an expert. This will also install and configure GDB (GNU DeBugger) and MinGW, which contains GCC - the GNU C Compiler. GDB is used to debug your application in the simulator, which is compiled with GCC.
<trivia> GCC actually stands for GNU Compiler Collection. It supports heaps of other stuff so the name changed.</trivia>
For our purposes, CodeBlocks should be updated to the latest nightly build. Features required to build the applications are unavailable in version 1.0RC2 which has been installed above.
In order to use the GDB (GNU DeBugger) debugging features of Code::Blocks with AC-Sim (AudioCommander's C Simulator) you need to configure GCC to produce debugging symbols when compiling as follows:
This should be all that is needed to have all the applications ready to go.
Full instructions are below, but you may jump to the required section based on your requirements:
If you are creating a new application, you can simply download the MIOS SDCC Skeleton Application Template, extract it to your template directory, and start with that, and none of the below steps are necessary. This zip file does not change any of the functionality of the normal SDCC Skeleton App, so you can use it as normal, as well as with C::B. Here is a walkthrough:
I plan to write a small application which will automatically convert a MIOS application (as downloaded from UcApps) into a Code::Blocks Project complete with AC-Sim sources for pre-MBHP debugging. In the meantime, the C::B Project can be setup from either an existing MIOS C Application or the SDCC_Skeleton App as follows. You should have your application/skeleton in a dedicated folder.
Skip this section if you do not need to use the simulator
Perform the following sections to build the application for MBHP
* Returning to 'Project… Properties', 'Targets' tab, Click 'Add'
* Name the target 'MBHP', and Click OK
* In the box labelled 'Selected build target options', select 'Commands Only' from the drop-down list labelled 'Type'
* In the box labelled 'Selected build target files', Tick ONLY 'main.c'
* Click 'OK' to close project properties
* Select 'Project… Properties', Select the 'Targets' tab (Yes, again. It is necessary to apply the previous settings first)
* select target 'Default', click 'Delete', Click 'Yes' to confirm deletion
* select target 'MBHP', click 'Build Options'
* In the box labelled 'Selected Compiler' Select 'SDCC Compiler' from the dropdown list, Click 'OK' (until this point both targets will be using C::B's default of GCC)
* In the box labelled 'Selected build target files', select file 'main.c' and then click 'Selected File Properties'
* Select the 'Advanced' tab, in the box labelled 'Custom Build', Select 'SDCC Compiler' from the dropdown list labelled 'For this compiler'
* Tick 'Use Custom Command to build this file'
* Type into the textbox “make.bat”
* Click OK
* Click OK
==== MIOS-Specific SDCC Libraries ====
TK says:
If multiplications, divisions, pointer operations, etc. are used in the .c code, the linker may fail due to missing functions, which are part of the “libsdcc.lib” library. The common library for pic16 derivatives is not compatible to MIOS, therefore I've created a special one. Click here for more information
* Download the MIOS-Specific SDCC Libraries
* Create a 'lib' directory within the root directory of your project
* Copy the 'libsdcc.lib' file from the above zip file into this directory
* Open the “project.lkr” file of your project and add following line below the “LIBPATH” entry:
FILES lib/libsdcc.lib
Coming real soon (like tomorrow)
===== AC-Sim Simulator =====
==== Setup ====
Follow the instructions at the AC-Sim WIKI page
==== Compile ====
==== Debug ====
===== MBHP =====
==== Compile ====
==== Debug ====
The following is yet to be documented by me….
upload http://www.midibox.org/mios_studio/
done! Make music!