[U-Boot-Users] Alignment of bss section in hello world standalone application on ARM
Christian Eggers
christian.eggers at kathrein.de
Thu Mar 22 16:54:04 CET 2007
Hello,
some builds of the example hello_world application causes a data abort in
app_startup().
This seems to be caused by an unligned memory access to __bss_start
(stubs.c):
173 extern unsigned long __bss_start, _end;
174
175 void app_startup(char **argv)
176 {
177 unsigned long * cp = &__bss_start;
178
179 /* Zero out BSS */
180 while (cp < &_end) {
181 *cp++ = 0;
182 }
183
189 }
There's no explicit linker script for ARM platform. The implicit default
script seems not to
aling __bss_start to a multiple of 4 (required for unsigned long access).
(gcc-3.3.5)
Solution 1:
The data type could be changed to "unsigned char". This may drop some
performance,
if really large amounts of uninitialised data used.
Unfortunately I don't know whether this will work on all platforms.
Solution 2:
Create a suitable linker file. I've attached a slightly modified "default"
script generated
ld --verbose. Perhaps this file might be more complex then necessary or
may not run
on different gcc versions. Unfortunately I'dont know how to create a more
"minimalistic"
file.
regards
--
Christian Eggers
Dipl. Ing. (FH)
Development Software
Mobile Communication Networks, EMA
KATHREIN-Werke KG
Anton-Kathrein-Straße 1-3
P.O. Box 100 444
83004 Rosenheim, Germany
Tel.: +49 8031 184-5857
Fax: +49 8031 184-951
E-Mail: christian.eggers at kathrein.de
Internet: http://www.kathrein.de
KATHREIN-Werke KG
Anton-Kathrein-Straße 1-3
P.O. Box 100 444
83004 Rosenheim, Germany
Registergericht: Amtsgericht Traunstein, HRA 460
Geschäftsführender persönlich haftender Gesellschafter Prof. Dr. Dr. h.c. Anton Kathrein, Dipl.-Betriebswirt
Erfüllungsort und Gerichtsstand: Rosenheim
Register court: local court Traunstein, certificate of registration no. 460
Personally liable managing partner Prof. Dr. Dr. h.c. Anton Kathrein, Dipl.-Betriebswirt (MBA-equivalent)
Place of performance and place of jurisdiction: Rosenheim
This e-mail is confidential and may contain privileged information. If you have received this communication in error, please notify us immediately by responding to this email and then delete it from your system. The sender therefore does not accept liability for any errors or omissions in the contents of this message which arise as a result of e-mail transmission. We believe but do not warrant that this e-mail and any attachments are virus free. You must therefore take full responsibility for virus checking.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.denx.de/pipermail/u-boot/attachments/20070322/27818da7/attachment.htm
-------------- next part --------------
A non-text attachment was scrubbed...
Name: default.ld
Type: application/octet-stream
Size: 6992 bytes
Desc: not available
Url : http://lists.denx.de/pipermail/u-boot/attachments/20070322/27818da7/attachment.obj
More information about the U-Boot
mailing list