[PATCH 10/32] arm/stm32f4: Add per-section compilation and linking support

Joel Sherrill joel at rtems.org
Fri Mar 11 00:15:14 UTC 2016


updates #2577.

For the stm32f105rc BSP variant without this option,
sample executables sizes were as follows:

   text	   data	    bss	    	  dec	    	  hex	filename
  61444	   1724	  63880	 127048	  1f048	ticker.exe
  39397	   1480	  64104	 104981	  19a15	minimum.exe
 131636	   2360	  63240	 197236	  30274	capture.exe
  72818	   1812	  63784	 138414	  21cae	nsecs.exe
 123508	   2100	  63496	 189104	  2e2b0	paranoia.exe
 125564	   1748	  63848	 191160	  2eab8	cdtest.exe
  59488	   1724	  63880	 125092	  1e8a4	base_sp.exe
  61168	   1748	  63848	 126764	  1ef2c	unlimited.exe
  69216	   1692	  63912	 134820	  20ea4	hello.exe
 178492	   6500	  59400	 244392	  3baa8	loopback.exe

For the stm32f105rc BSP variant with this option,
sample executables sizes were as follows:

   text	   data	    bss	    	  dec	    	  hex	filename
  56720	   1700	  63880	 122300	  1ddbc	ticker.exe
  23784	   1400	  64168	  89352	  15d08	minimum.exe
 125096	   2328	  63272	 190696	  2e8e8	capture.exe
  68410	   1788	  63816	 134014	  20b7e	nsecs.exe
 118480	   2076	  63528	 184084	  2cf14	paranoia.exe
 119012	   1724	  63880	 184616	  2d128	cdtest.exe
  54640	   1700	  63880	 120220	  1d59c	base_sp.exe
  55080	   1708	  63880	 120668	  1d75c	unlimited.exe
  62828	   1636	  63944	 128408	  1f598	hello.exe
 164464	   6388	  59496	 230348	  383cc	loopback.exe

For the stm32f4 BSP variant without this option,
sample executables sizes were as follows:

   text	   data	    bss	    	  dec	    	  hex	filename
  61420	   1724	 129416	 192560	  2f030	ticker.exe
  39373	   1480	 129640	 170493	  299fd	minimum.exe
 547160	   2004	 129160	 678324	  a59b4	cxx_iostream.exe
 390329	   5800	 125352	 521481	  7f509	fileio.exe
 297452	  12616	 118824	 428892	  68b5c	pppd.exe
 131612	   2360	 128776	 262748	  4025c	capture.exe
  72794	   1812	 129320	 203926	  31c96	nsecs.exe
 123484	   2100	 129032	 254616	  3e298	paranoia.exe
 125540	   1748	 129384	 256672	  3eaa0	cdtest.exe
  59464	   1724	 129416	 190604	  2e88c	base_sp.exe
  61144	   1748	 129384	 192276	  2ef14	unlimited.exe
  69192	   1692	 129448	 200332	  30e8c	hello.exe
 178468	   6500	 124936	 309904	  4ba90	loopback.exe

For the stm32f4 BSP variant with this option,
sample executables sizes were as follows:

   text	   data	    bss	    	  dec	    	  hex	filename
  56640	   1700	 129416	 187756	  2dd6c	ticker.exe
  23704	   1400	 129704	 154808	  25cb8	minimum.exe
 333792	   1956	 129192	 464940	  7182c	cxx_iostream.exe
 378469	   5776	 125384	 509629	  7c6bd	fileio.exe
 274684	  12452	 118952	 406088	  63248	pppd.exe
 125016	   2328	 128808	 256152	  3e898	capture.exe
  68330	   1788	 129352	 199470	  30b2e	nsecs.exe
 118400	   2076	 129064	 249540	  3cec4	paranoia.exe
 118932	   1724	 129416	 250072	  3d0d8	cdtest.exe
  54560	   1700	 129416	 185676	  2d54c	base_sp.exe
  55000	   1708	 129416	 186124	  2d70c	unlimited.exe
  62748	   1636	 129480	 193864	  2f548	hello.exe
 164384	   6388	 125032	 295804	  4837c	loopback.exe
---
 c/src/lib/libbsp/arm/stm32f4/make/custom/stm32f4.cfg | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/c/src/lib/libbsp/arm/stm32f4/make/custom/stm32f4.cfg b/c/src/lib/libbsp/arm/stm32f4/make/custom/stm32f4.cfg
index 1256a52..edca4bf 100644
--- a/c/src/lib/libbsp/arm/stm32f4/make/custom/stm32f4.cfg
+++ b/c/src/lib/libbsp/arm/stm32f4/make/custom/stm32f4.cfg
@@ -5,3 +5,6 @@ RTEMS_CPU = arm
 CPU_CFLAGS = -march=armv7-m -mthumb
 
 CFLAGS_OPTIMIZE_V = -O2 -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
-- 
1.8.3.1



More information about the devel mailing list