C55x C语言编程之存储器模式

来源:本站
导读:目前正在解读《C55x C语言编程之存储器模式》的相关信息,《C55x C语言编程之存储器模式》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《C55x C语言编程之存储器模式》的详细说明。
简介:C55x C语言编程之存储器模式

C编译器将存储器当作一个由代码子模块和数据子模块组成的线性模块。每个由C程序生成的代码子模块或数据子模块被放到各自的连续存储空间中。编译器认为目标存储器的全部24位地址都有效。

编译器支持两种存储器模型:小存储模式和大存储器模式。两种存储模式的数据在存储器中的放置和访问不同。

1.小存储器模式(默认模式)

使用小存储器模式将得到比使用大存储模式时更少的代码和数据。但是,程序必须满足一定的大小和存储放置限制。

在小存储器模式中,在单页(64KB)存储器内的以下段必须都分配合适:

.bss和.data段(所有静态和全局数据)。

.stack和sysstack段(第一和第二系统堆栈)。

.sysmem段(动态存储空间)。

.const段。

而对.text段(代码)、.switch段(switch语句)和.cinit段(变量初始化)的大小和位置没有限制。

小模式下编译器使用16位数据指针来访问数据。XARn寄存器的高7位用来设置指向包含.bss段的存储页。在程序执行过程中它们仍指向原来那些值。

2.大存储器模式

大存储器模式支持不严格的数据放置。用-ml shell选项就可以应用该模式。

在大存储器模式下,数据指针为23位,在存储器中占2字空间。.stack和.sysstack段必须在同一页上。

在大存储器模式下编译代码时,必须和rts55x.lib运行时间库链接。应用程序中的所有文件都必须使用相同的存储器模式。

链接器不允许同时存在大存储器模式和小存储器模式。

提醒:《C55x C语言编程之存储器模式》最后刷新时间 2024-03-14 01:06:44,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《C55x C语言编程之存储器模式》该内容的真实性请自行鉴别。