Hi,
We have a large data array included in our source code in a header file.
It is declared as:
uint name[]=
{
0x...,
0x...,
etc
};
The size is >100kByte.
This works and runs fast (<1minute) when building and running/debugging with the XTAG.
Now we want to flash this image onto the board with xflash. We have used --verbose to see what's going on. The lines where the libcompressor is running take forever to complete.
After half an hour we decided it was enough and terminated the process.
If we reduce the size of the array to say 100 words, xflash runs fast and smooth, and the image gets flashed onto the board. This takes 1-2 minutes to complete like we are used to.
We are building this for the USB slicekit with XU216, compiler 14.2.1.
Would anyone have a clue about where to start looking for this issue?
Thanks!
XFlash libcompressor time - large data array in program
-
- Member++
- Posts: 21
- Joined: Fri Jul 01, 2016 6:36 am
-
- Experienced Member
- Posts: 74
- Joined: Mon Dec 16, 2013 12:14 pm
Hi LumiCore
It sounds like the compression algorithm is failing to compress the large array correctly. Can you share the data that the array contains? This is something we can investigate in the tools and try to have fixed in a future release. In the meantime you can use the --no-compression flag with xflash to disable the compression step and get you past this issue.
Colin.
It sounds like the compression algorithm is failing to compress the large array correctly. Can you share the data that the array contains? This is something we can investigate in the tools and try to have fixed in a future release. In the meantime you can use the --no-compression flag with xflash to disable the compression step and get you past this issue.
Colin.
-
- Member++
- Posts: 21
- Joined: Fri Jul 01, 2016 6:36 am
Hi Colin,
The flag did the short term trick! The data is sent to you for your reference.
Thanks!
The flag did the short term trick! The data is sent to you for your reference.
Thanks!
-
- XCore Addict
- Posts: 199
- Joined: Tue Jan 17, 2017 9:25 pm
Sorry to resurrect an old thread, however I'm having this exact same problem w/ 14.2.4 on the xCORE-200 MC-Audio development board. My project is a modified version of the reference application, but now has large header files containing filter coefficients. xflash with --verbose shows libcomrpessor taking a very, very long time.
Adding the --no-compression flag enables flash programming as expected. What is the ramification, if any, of not compressing binary data?
Adding the --no-compression flag enables flash programming as expected. What is the ramification, if any, of not compressing binary data?
-
- Experienced Member
- Posts: 74
- Joined: Mon Dec 16, 2013 12:14 pm
The only ramification is that your flash image will occupy more space in flash memory and therefore you can not fit as many images into flash. Depending on the size of your image and the amount of compression you might have attained, your boot time may be marginally faster or slower (time to read from flash vs time to decompress).
Colin
Colin
-
- XCore Addict
- Posts: 233
- Joined: Mon Jan 08, 2018 4:14 pm
resurrecting again, "the only ramification..." is that if your image is uncompressed, there are chances that its size will be over your FLASH_MAX_UPGRADE_SIZE parameter, or boot partition, therefore the product cannot be upgraded anymore...
see an experience here :
viewtopic.php?f=26&t=8016
see an experience here :
viewtopic.php?f=26&t=8016
-
- XCore Expert
- Posts: 580
- Joined: Thu Nov 26, 2015 11:47 pm
Quick question -- how long did you wait for the compression to finish? I've waited over an hour and it eventually succeeded. I think from now on I will start it before I head to bed at night.