【摘要】:当在软件中声明一个变量时,我们通常不关心变量实际在存储器中的位置,而仅仅通过名称指向变量。然而,有时我们想要控制变量在存储器中存放的位置时,需要做两件事:通知连接器系统中物理存储器在哪里;告诉编译器除了默认的位置我们把变量放在何处。所有在CE0中的编译器输出将会被放置在那里。为了让编译器把已知变量放入“CE0”块,我们使用编译器指示pragma。为了控制变量放置的块,我们能使用DATA_SECTION pragma。
当在软件中声明一个变量时,我们通常不关心变量实际在存储器中的位置,而仅仅通过名称指向变量。编译器和连接器负责保证访问正确的存储器位置。然而,有时我们想要控制变量在存储器中存放的位置时,需要做两件事:
(1)通知连接器系统中物理存储器在哪里;
(2)告诉编译器除了默认的位置我们把变量放在何处。
当代码被编译时,编译器将输出放在预先定义的一些块中。全局变量通常放在.data或.bss块中。连接命令文件(如lnk7.cmd)列出了系统中可用的物理存储器,并决定哪块放入哪个存储区域。在连接器中命令文件的使用贯穿全文,所有编译器的输出被放入DSP的片内存储器(IRMA区域)。这是个相对较小的存储区域,所以如果我们想有大的数据缓存我们需要把它们放在更大的片外存储器。在连接器命令文件中,这个存储空间被命名为SDRAM。所有在CE0中的编译器输出将会被放置在那里。(https://www.xing528.com)
为了让编译器把已知变量放入“CE0”块,我们使用编译器指示pragma。一般来说,编译器指示pragma是编译器特有指令,这些指令允许精细地控制各方面的编译器操作。为了控制变量放置的块,我们能使用DATA_SECTION pragma。它告诉编译器将第一个参数指定的变量放到第二个参数指定的块中。
关于CCS中的各种pragmas变量的更多信息参见在线帮助和C编译器用户手册。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
