1. You probably shouldn't care about the (v1) bootloader. You want the
device bootloader instead for the IOIO-OTG.
2. How are you measuring the size of the image? Is it the hex *file* size?
If so, it is irrelevant.

On Wed Nov 05 2014 at 7:36:20 AM RD <[email protected]> wrote:

> Hi Ytai,
>
> I am using MPLAB-X IDE v2.20 and Lite version of C30-3.30b compiler. I
> have a IOIO OTG board which is having PIC24FJ256GB206 MCU. I have not
> changed any code as of now.
>
> I have compiled the Bootloader for SPRK0020 configuration. Then I have
> added the Bootloader HEX file in the loadables section of the AppLayerV1
> project and built it for IOIO0030.
>
> Now I have a "app_layer_v1.production.unified.hex" file which is of size
> 391KB and want to flash it to the IOIO OTG board using a PICKit and debug
> the code for my understanding.
>
> Individually compiled the "app_layer_v1.production.hex" is 323KB and
> "bootloader.production.hex" is 89KB.
>
> The Program Memory of PIC24FJ256GB206 is only 256KB, so how will I fit
> this binary on to the chip?
>
> Please help!
>
> On Friday, December 16, 2011 1:52:58 PM UTC+5:30, Ytai wrote:
>>
>> First, a disclaimer: *this is not intended for most users!* This is only
>> for people that want to change the standard behavior of IOIO and come up
>> with custom firmware.
>>
>> A few people have asked on this topic lately, thought I'll make it
>> clearer.
>>
>> First, get MPLAB X (Beta 7.12) and C30 compiler (V3.30c).
>> Open the following projects in MPLAB:
>>
>>    - All the library projects, under firmware/lib*
>>    - firmware/app_layer_v1
>>    - firmware/bootloader if you also want to build the bootloader
>>
>> MPLAB will complain about not having selected a toolchain. Go to each
>> project properties on every configuration (sucks, I know...) and select
>> your C30 V3.30c installation.
>> At this point, MPLAB generated a set of makefiles that you can use in
>> command line.
>> To build everything from command line, run
>> tools/make-all all
>> To clean-build, run
>> tools/make-all clobber all
>> If you don't care about any of the targets, get rid of them. Simply edit
>> tools/make-all, it is pretty straightforward.
>> Note that the makefiles don't have an explicit dependency between the app
>> and the libraries, so if you change any library you need to explicitly
>> clean-build the app. If anyone knows how to declare the app project so that
>> it'll depend on the library let me know please.
>>
>> If you want to build from within MPLAB, you have two problems:
>>
>>    1. Because MPLAB doesn't know that app depends on the libraries, you
>>    need to manually build the libraries *before* building the app. All
>>    the errors in the style of "ld.exe: cannot find -lconn" or -lusb or
>>    -ladb or -lbtstack are a result of the same thing: the linker looks for a
>>    libraries that do not exist, because you haven't built them yet.
>>    2. The app builds OK (I hope), but then MPLAB tries to load it and
>>    hangs while doing so. It is a bug confirmed by Microchip which is supposed
>>    to be fixed on the next MPLAB release. Note that this is specific to
>>    building coff files, so one might think that moving to elf will fix it.
>>    Alas, there is a different bug in the C30 compiler, which is specific to
>>    elf, and will prevent the code from compiling [sigh]
>>
>> Once everything is built, a few tools worth knowing:
>> If you built for the application and the bootloader and want to merge
>> them into a single hex file, tools/merge-hex is your friend. Example usage:
>> tools/merge-hex path/to/bootloader.hex path/to/app.hex >
>> path/to/merged/output.hex
>>
>> If you want to use IOIO Manager to install your app,
>> tools/make-ioio-bundle is your friend. Example usage:
>> tools/make-ioio-bundle firmware/app_layer_v1/dist MyOutputBundle.ioioapp
>> IOIO0022 IOIO0023
>> will build app_layer_v1 (the standard app) for platforms IOIO0022 and
>> IOIO0023 (which are V1.5 and V1.6 boards, running Bootloader V3.x) and
>> package them in a file called MyOutputBundle.ioioapp
>> You can do the exact same with bootloader images, simply name the output
>> file .ioioimg
>>
>> Note that you'll have to build the hex2ioio tool before anything works,
>> by running:
>> make -C tools/hex2ioio
>>
>> To those of you using Windows, get Cygwin and install make and gcc (and a
>> bunch of other stuff to make you regret that you haven't been using Linux
>> in the first place :D ).
>>
>  --
> You received this message because you are subscribed to the Google Groups
> "ioio-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/ioio-users.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"ioio-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/ioio-users.
For more options, visit https://groups.google.com/d/optout.

Reply via email to