Is it possible to decice the memory area to download on uC and QSPI?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-02-06 9:09 AM
Hi,
is it possibile to decide what area of microcontroller to program (the range) while debugging?
I would like to remove QSPI memory update (via loader) because it take too much time.
Solved! Go to Solution.
- Labels:
-
QSPI
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-02-09 1:26 PM
Sincerely, I appreciate all kind of hints from everyone!
Then I start to experiment and to filter the varoius answer on web.
The result is that objcopy --remove-section command syntax is right . is it also possibile to create a queue:
objcopy --remove-section=ExtFlashSection --remove-section=FontFlashSection --remove-section=TextFlashSection
instead themost important missing code is the first part of the command:
arm-none-eabi-objcopy.exe
writing :
arm-none-eabi-objcopy.exe --remove-section=ExtFlashSection --remove-section=FontFlashSection --remove-section=TextFlashSection "${BuildArtifactFileBaseName}.elf" "${BuildArtifactFileBaseName}.elf"
Everything works.
I checked inside the "*.elf" file the ExtFlashSection, FontFlashSection and TextFlashSection and i discovered that these sections are not even presents.
Thank you so much.
Obviously compiler doesn't generate any errors, but only one warning witch tomorrow I will check:
22:14:44 **** Incremental Build of configuration Debug for project AlgoTouch ****
make -j12 all
arm-none-eabi-size AlgoTouch.elf
text data bss dec hex filename
380828 261800 164644 807272 c5168 AlgoTouch.elf
Finished building: default.size.stdout
arm-none-eabi-objcopy.exe --remove-section=ExtFlashSection --remove-section=FontFlashSection --remove-section=TextFlashSection "AlgoTouch.elf" "AlgoTouch.elf"
arm-none-eabi-objcopy.exe: AlgoTouch.elf: warning: empty loadable segment detected at vaddr=0x90365ae0, is this intentional?
22:14:51 Build Finished. 0 errors, 0 warnings. (took 7s.88ms)
Stay tuned!!!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-02-06 10:28 AM
Set up your linker to use flash. The decision is done at link time, not upload time.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-02-06 11:55 AM
changing
FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 2048K
to
FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 512K
allow to reduce flash programming time. Right?
Instead, How can I block qspi write without blocking qspi reading?
The scope is not update external graphic contents during programming and debug: graphic design, text and pictures are not changed.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-02-06 12:20 PM
No. This only declares less flash is available to the linker. But in both cases upload is to on-chip flash. QSPI is not at 0x08000000.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-02-06 1:15 PM
so isn't there no way to exclude QSPI update?
I want to fast the debug process: i don't want to wait 2 minutes waiting QSPI is update
( I use these setting on my linker:
FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 2048K
QUADSPI (rx) : ORIGIN = 0x90000000, LENGTH = 8M,
I thinking that if I remove QUADSPI section, Touchgfx stack cant load data from external memory)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-02-06 1:55 PM
Post link, can't you use objcopy --remove-section= ?
Up vote any posts that you find helpful, it shows what's working..
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-02-07 1:14 AM
For example when you use CubeIDE in debug config turn off DOWNLOAD at all and create flash only code script without reflash QSPI.
Scritp you can place to run after build part in config.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-02-07 1:56 AM
Can you help me with this instruction?
I never use it. Have you got an example?
Must I insert the script in this section, right?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-02-08 9:27 AM
These aren't things I use day-to-day, and I'm not a CubeIDE user, think of me as the guy on the street giving directions, not the taxi driver.
There is documentation, check what sections you have in your linker script (.LD), check those which have content via (.MAP), or dumping the .ELF file
Here with typical naming from TouchGFX, pick those contributing to your QUADSPI foot print
objcopy --remove-section=ExtFlashSection --remove-section=FontFlashSection --remove-section=TextFlashSection target.elf
Up vote any posts that you find helpful, it shows what's working..
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-02-09 1:26 PM
Sincerely, I appreciate all kind of hints from everyone!
Then I start to experiment and to filter the varoius answer on web.
The result is that objcopy --remove-section command syntax is right . is it also possibile to create a queue:
objcopy --remove-section=ExtFlashSection --remove-section=FontFlashSection --remove-section=TextFlashSection
instead themost important missing code is the first part of the command:
arm-none-eabi-objcopy.exe
writing :
arm-none-eabi-objcopy.exe --remove-section=ExtFlashSection --remove-section=FontFlashSection --remove-section=TextFlashSection "${BuildArtifactFileBaseName}.elf" "${BuildArtifactFileBaseName}.elf"
Everything works.
I checked inside the "*.elf" file the ExtFlashSection, FontFlashSection and TextFlashSection and i discovered that these sections are not even presents.
Thank you so much.
Obviously compiler doesn't generate any errors, but only one warning witch tomorrow I will check:
22:14:44 **** Incremental Build of configuration Debug for project AlgoTouch ****
make -j12 all
arm-none-eabi-size AlgoTouch.elf
text data bss dec hex filename
380828 261800 164644 807272 c5168 AlgoTouch.elf
Finished building: default.size.stdout
arm-none-eabi-objcopy.exe --remove-section=ExtFlashSection --remove-section=FontFlashSection --remove-section=TextFlashSection "AlgoTouch.elf" "AlgoTouch.elf"
arm-none-eabi-objcopy.exe: AlgoTouch.elf: warning: empty loadable segment detected at vaddr=0x90365ae0, is this intentional?
22:14:51 Build Finished. 0 errors, 0 warnings. (took 7s.88ms)
Stay tuned!!!
