start
Table of Contents

Developing MIOS Applications with Code::Blocks

Note This documentation has become outdated due to upgrades in both the simulator and Code::Blocks. If you are about to do this, please drop me a line first and I’ll give you a couple of tips :) - stryd_one

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 :)



Install and Configure Applications

GNU PIC Utilities (GPUtils)

ActiveState ActivePerl

Small Device C Compiler (SDCC)

Environment Variables

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:

Sun Java J2SE

Code::Blocks IDE

Install

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>

Upgrade

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.

Configure

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.

Project Setup

Full instructions are below, but you may jump to the required section based on your requirements:

Project Setup - New Application

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:

Project Setup - Existing Application

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.

Create Empty Project

Add Application files to project

Configure Build Targets

AC-SIM Build Target

Skip this section if you do not need to use the simulator

MBHP Build Target

Perform the following sections to build the application for MBHP

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 error message will be:

Linking project
lib/libsdcc.lib: No such file or directory
ERROR!

The common library for pic16 derivatives is not compatible to MIOS, therefore I’ve created a special one. Click here for more information

FILES lib/libsdcc.lib




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!