赞
踩
1.编译时为变量指定段
- __attribute__((section("name")))
- RealView Compilation Tools for µVision Compiler Reference Guide Version 4.0
-
- Home > Compiler-specific Features > Variable attributes > __attribute__((section("name")))
-
- 4.5.6. __attribute__((section("name")))
- Normally, the ARM compiler places the objects it generates in sections like data and bss. However, you might require additional data sections or you might want a variable to appear in a special section, for example, to map to special hardware. The section attribute specifies that a variable must be placed in a particular data section. If you use the section attribute, read-only variables are placed in RO data sections, read-write variables are placed in RW data sections unless you use the zero_init attribute. In this case, the variable is placed in a ZI section.
-
- Note
- This variable attribute is a GNU compiler extension supported by the ARM compiler.
-
- Example
- /* in RO section */
- const int descriptor[3] __attribute__ ((section ("descr"))) = { 1,2,3 };
- /* in RW section */
- long long rw[10] __attribute__ ((section ("RW")));
- /* in ZI section *
- long long altstack[10] __attribute__ ((section ("STACK"), zero_init));/
- __attribute__((section("name")))
- RealView Compilation Tools for µVision Compiler Reference Guide Version 4.0
-
- Home > Compiler-specific Features > Function attributes > __attribute__((section("name")))
-
- 4.3.13. __attribute__((section("name")))
- The section function attribute enables you to place code in different sections of the image.
-
- Note
- This function attribute is a GNU compiler extension that is supported by the ARM compiler.
-
- Example
- In the following example, Function_Attributes_section_0 is placed into the RO section new_section rather than .text.
-
- void Function_Attributes_section_0 (void)
- __attribute__ ((section ("new_section")));
- void Function_Attributes_section_0 (void)
- {
- static int aStatic =0;
- aStatic++;
- }
- In the following example, section function attribute overrides the #pragma arm section setting.
-
- #pragma arm section code="foo"
- int f2()
- {
- return 1;
- } // into the 'foo' area
- __attribute__ ((section ("bar"))) int f3()
- {
- return 1;
- } // into the 'bar' area
- int f4()
- {
- return 1;
- } // into the 'foo' area
- #pragma arm section
记录完毕,希望能够给遇到同样问题的朋友些许帮助。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。