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.
