Thanks for your reply. I want to flash the IOIO-OTG board with a PIC Programmer so that I can step debug the code, so I need the merged HEX file. And the size of this merged HEX file after compiling is more than 300KB. Why is the size of the HEX file irrelevant? What other options do I have to flash the image? Is there any way to reduce the size?
On Thursday, November 6, 2014 9:53:29 AM UTC+5:30, Ytai wrote: > > 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] <javascript:>> > 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] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> 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.
