[rtems commit] arm/lpc176x: Add per-section compilation and linking support
Joel Sherrill
joel at rtems.org
Sat Jan 16 17:18:14 UTC 2016
Module: rtems
Branch: master
Commit: 950c63fc16f0568e44a09c97e047ed3c7835e402
Changeset: http://git.rtems.org/rtems/commit/?id=950c63fc16f0568e44a09c97e047ed3c7835e402
Author: Aun-Ali Zaidi <admin at kodeit.net>
Date: Fri Jan 15 23:45:29 2016 -0600
arm/lpc176x: Add per-section compilation and linking support
ARM mbed LPC1768:
=================
The size of the sample executables without this option were:
text data bss dec hex filename
92032 1812 30984 124828 1e79c unlimited.exe
389316 5692 27112 422120 670e8 fileio.exe
92696 1780 31016 125492 1ea34 ticker.exe
100144 1868 30920 132932 20744 nsecs.exe
146696 1800 31016 179512 2bd38 cdtest.exe
131480 2256 30536 164272 281b0 capture.exe
83568 1756 31048 116372 1c694 hello.exe
137628 2164 30632 170424 299b8 paranoia.exe
178624 6560 26536 211720 33b08 loopback.exe
90432 1780 31016 123228 1e15c base_sp.exe
67048 1536 31272 99856 18610 minimum.exe
The size of the sample executables with this option enabled were:
text data bss dec hex filename
75004 1784 31016 107804 1a51c unlimited.exe
377172 5680 27112 409964 6416c fileio.exe
48152 1320 31464 80936 13c28 minimum.exe
66276 1712 31080 99068 182fc hello.exe
74548 1768 31016 107332 1a344 base_sp.exe
76916 1768 31016 109700 1ac84 ticker.exe
124620 2236 30568 157424 266f0 capture.exe
165108 6460 26632 198200 30638 loopback.exe
121864 2152 30632 154648 25c18 paranoia.exe
139056 1796 31016 171868 29f5c cdtest.exe
87732 1856 30952 120540 1d6dc nsecs.exe
ARM mbed LPC1768 AHB SRAM:
==========================
The size of the sample executables without this option were:
text data bss dec hex filename
92032 1812 63752 157596 2679c unlimited.exe
146696 1800 63784 212280 33d38 cdtest.exe
92696 1780 63784 158260 26a34 ticker.exe
83568 1756 63816 149140 24694 hello.exe
178624 6560 59304 244488 3bb08 loopback.exe
137628 2164 63400 203192 319b8 paranoia.exe
389324 5692 59880 454896 6f0f0 fileio.exe
90432 1780 63784 155996 2615c base_sp.exe
67048 1536 64040 132624 20610 minimum.exe
131480 2256 63304 197040 301b0 capture.exe
100144 1868 63688 165700 28744 nsecs.exe
The size of the sample executables with this option enabled were:
text data bss dec hex filename
377180 5680 59880 442740 6c174 fileio.exe
165108 6460 59400 230968 38638 loopback.exe
121864 2152 63400 187416 2dc18 paranoia.exe
76916 1768 63784 142468 22c84 ticker.exe
139056 1796 63784 204636 31f5c cdtest.exe
87732 1856 63720 153308 256dc nsecs.exe
124620 2236 63336 190192 2e6f0 capture.exe
75004 1784 63784 140572 2251c unlimited.exe
66276 1712 63848 131836 202fc hello.exe
74548 1768 63784 140100 22344 base_sp.exe
48152 1320 64232 113704 1bc28 minimum.exe
ARM mbed LPC1768 AHB SRAM w/ Ethernet:
======================================
The size of the sample executables without this option were:
text data bss dec hex filename
90432 1780 38580 130792 1fee8 base_sp.exe
67048 1536 34892 103476 19434 minimum.exe
92696 1780 38636 133112 207f8 ticker.exe
131480 2256 39932 173668 2a664 capture.exe
83568 1756 38156 123480 1e258 hello.exe
100144 1868 38588 140600 22538 nsecs.exe
178624 6560 41224 226408 37468 loopback.exe
137628 2164 38868 178660 2b9e4 paranoia.exe
92032 1812 41940 135784 21268 unlimited.exe
The size of the sample executables with this option enabled were:
text data bss dec hex filename
75004 1784 41896 118684 1cf9c unlimited.exe
87732 1856 38536 128124 1f47c nsecs.exe
76916 1768 38584 117268 1ca14 ticker.exe
66276 1712 38128 106116 19e84 hello.exe
124620 2236 39888 166744 28b58 capture.exe
165108 6460 41188 212756 33f14 loopback.exe
121864 2152 38816 162832 27c10 paranoia.exe
48152 1320 35064 84536 14a38 minimum.exe
74548 1768 38560 114876 1c0bc base_sp.exe
---
c/src/lib/libbsp/arm/lpc176x/make/custom/lpc1768_mbed.cfg | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/c/src/lib/libbsp/arm/lpc176x/make/custom/lpc1768_mbed.cfg b/c/src/lib/libbsp/arm/lpc176x/make/custom/lpc1768_mbed.cfg
index a5ed9c6..6e7b32c 100644
--- a/c/src/lib/libbsp/arm/lpc176x/make/custom/lpc1768_mbed.cfg
+++ b/c/src/lib/libbsp/arm/lpc176x/make/custom/lpc1768_mbed.cfg
@@ -9,6 +9,11 @@ RTEMS_CPU = arm
CPU_CFLAGS = -march=armv7-m -mthumb
CFLAGS_OPTIMIZE_V = -O2 -ggdb3
+
+# Add CFLAGS and LDFLAGS for compiling and linking with per item sections
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+LDFLAGS = -Wl,--gc-sections
+
BINEXT?=.bin
# This defines the operations performed on the linked executable.
# is currently required.
More information about the vc
mailing list