bsp_section_work_begin

来源:互联网 发布:小甲鱼算法视频怎么样 编辑:程序博客网 时间:2024/06/05 23:55
#pragma section( "section-name" [, attributes] )·作用是由程序指定创建一个段·一般默认段都是由编译器自动指定的 如果iar的时候是没有默认段的 必须由编写者手动指定·比如#pragma section = ".data"就是创建一个名字为.data的段,
·然后下面调用  data_ram = __section_begin(".data");  来获取这个段的首地址以备其操作  其他类似关于pragma section的详细说明如下:(对于#pragma 预处理还有很多功能)==================================================================================#pragma section。创建一个段。其格式为:#pragma section( "section-name" [, attributes] )section-name是必选项,用于指定段的名字。该名字不能与标准段的名字想冲突。可用/SECTION查看标准段的名称列表。attributes是可选项,用于指定段的属性。可用属性如下,多个属性间用逗号(,)隔开:read:可读取的write:可写的execute:可执行的shared:对于载入该段的镜像的所有进程是共享的nopage:不可分页的,主要用于Win32的设备驱动程序中nocache:不可缓存的,主要用于Win32的设备驱动程序中discard:可废弃的,主要用于Win32的设备驱动程序中remove:非内存常驻的,仅用于虚拟设备驱动(VxD)中如果未指定属性,默认属性为read和write。在创建了段之后,还要使用__declspec(allocate)将代码或数据放入段中。例如://pragma_section.cpp#pragma section("mysec",read,write)int j = 0;__declspec(allocate("mysec"))int i = 0;int main(){}该例中, 创建了段"mysec",设置了read,write属性。但是j没有放入到该段中,而是放入了默认的数据段中,因为它没有使用__declspec(allocate)进行声明;而i放入了该段中,因为使用__declspec(allocate)进行了声明。
0 0
原创粉丝点击