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] <javascript:>> 
> 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] <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.

Reply via email to