Arm Community
Site
Search
User
Site
Search
User
Arm Developer
Documentation
Learning Paths
On-Demand Videos
Groups
Arm Ambassadors
Education Hub
Open Source Software and Platforms
Research Collaboration and Enablement
Forums
AI forum
Architectures and Processors forum
Arm Development Platforms forum
Arm Development Studio forum
Automotive forum
Compilers and Libraries forum
Embedded and Microcontrollers forum
Internet of Things (IoT) forum
Keil forum
Laptops and Desktops forum
Mobile, Graphics, and Gaming forum
Morello forum
Operating Systems forum
Servers and Cloud Computing forum
SoC Design and Simulation forum
SystemReady Forum
Blogs
AI blog
Announcements
Architectures and Processors blog
Automotive blog
Embedded and Microcontrollers blog
Internet of Things (IoT) blog
Laptops and Desktops blog
Mobile, Graphics, and Gaming blog
Operating Systems blog
Servers and Cloud Computing blog
SoC Design and Simulation blog
Tools, Software and IDEs blog
Support
Arm Support Services
Documentation
Downloads
Training
Arm Approved program
Arm Design Reviews
Community Help
More
Cancel
Support forums
Arm Development Studio forum
Looking for a way to not place any static data in BSS section
Jump...
Cancel
Locked
Locked
Replies
3 replies
Subscribers
120 subscribers
Views
4732 views
Users
0 members are here
Options
Share
More actions
Cancel
Related
How was your experience today?
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion
Looking for a way to not place any static data in BSS section
Adam Openshaw
over 11 years ago
Note: This was originally posted on 2nd October 2012 at
http://forums.arm.com
The ARM compiler is very strict (and formidable) at placing zero initialized or uninitialized static data > 8 bytes into the BSS section to save space in the image. I have a use case where I do not want ANY static data in BSS. I want all of it to go into RO/RW-DATA sections only.
I've scoured the web looking for something similar or equivalent to the GNU C compiler's -fno-zero-initialized-in-bss option for RVCT, but cannot find anything. I'm compiling with DS-5.
Does anyone know if there is a way to compile without placing any static data into the BSS section? Placing static data into a BSS section is an optimization, and it's only natural that you should be able to disable it.
Thanks,
Meiyo
sasa pavlovic
over 11 years ago
Note: This was originally posted on 2nd October 2012 at
http://forums.arm.com
Hi, I don't know how to do it in DS-5, but in Keil, you have something called the scatter file where you can use linker commands to specifically place data in your desired memory regions. There's is no special (button-like) options to disable .bss sections. Check if there's something similar in DS-5 but I think it should be because ARM is the developer of both.
Good luck
Cancel
Vote up
0
Vote down
Cancel
Adam Openshaw
over 11 years ago
Note: This was originally posted on 3rd October 2012 at
http://forums.arm.com
Hi Sasa,
Thanks for your response. I am aware that you are able to use the scatter loading procedure to place various sections like ZI and RW data in the same loadable region, but this is not quite what I am looking for.
My problem exists because the .bss sections have a filesize of 0 bytes. For my use case I need the static data to actually occupy space in the executable. The only way to do this seems to be to have the static data in the data section and not bss.
I'm looking for any way to get around this optimization. Being able to disable it is ideal, since it's nothing more than space optimization, but it's seeming less and less likely that this is supported for some reason.
Thanks again,
Meiyo
Cancel
Vote up
0
Vote down
Cancel
Adam Openshaw
over 11 years ago
Note: This was originally posted on 3rd October 2012 at
http://forums.arm.com
I was able to accomplish what I desired after consulting ARM support. For anyone who is interested, here is the solution:
The answer is using the --bss_threshold option when compiling. The documentation on this option makes it seem like the only two options are: --bss_threshold=0 or --bss_threshold=8...
[font=Verdana, Tahoma, Arial, Helvetica, sans-serif][size=2]
Syntax
[/size][/font][font=Verdana, Tahoma, Arial, Helvetica, sans-serif][size=2]--bss_threshold=
num
Where:
num
is either:
0place small global ZI data items in ZI data sections
8place small global ZI data items in RW data sections.
[/size][/font]
It turns out, however, that the compiler is actually capable of accepting anything up to the maximum int, and anything below that size in bytes will be put into RW data instead of BSS.
Regards,
Meiyo
Cancel
Vote up
0
Vote down
Cancel