make-hex-bundle merely zips together multiple hex files, representing the same code version, built for different platforms. It is the tool I'm using to build the hex bundles for distribution (on the Downloads page). You shouldn't typically need to worry about this. Why are you looking for any additional step after you already have the hex file? Why are you not simply flashing it on the IOIO at this point?
On Mon, Nov 10, 2014 at 3:55 AM, RD <[email protected]> wrote: > I have compiled the "device_bootloader" project and merged it with the > "app_layer_v1". > While compiling I got this message on the linker scripts as you said: > "Total program memory used (bytes): 0x143e8 *(82920)* 36%" > But my resulting HEX file (of merged "device_bootloader" & "app_layer_v1") > in the IOIO0030\production directory is of 342KB size. > > Then I used the script /tools/make-hex-bundle and obtained another HEX > file, of size 103KB. > > Can you please explain me what is the work of *"make-hex-bundle"* script? > Does this new HEX file (103KB) and the compiled HEX file (342KB) has same > functionality? > > Sorry for the silly questions.. > > Thanks.. > > > On Saturday, November 8, 2014 10:40:47 AM UTC+5:30, Ytai wrote: >> >> The IOIO-OTG does not normally run *this* bootloader. There's another >> project in the firmware directory called DeviceBootloader, which is the one >> you want to merge in. >> The hex file is just a text file containing the ROM data in a very >> inefficient format, at least twice as large as the image size. The actual >> size of the ROM image can be seen in the linker output log when compiling. >> For debugging, make sure you're connecting to the correct PGD/PGC pair >> specified in the configuration settings in main.c of the DeviceBootloader, >> or otherwise change them to match your pins. >> >> On Wed Nov 05 2014 at 10:13:05 PM RD <[email protected]> wrote: >> >>> 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]> 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. >>> >> -- > 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.
