微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > DSP学习交流 > CMD文件简介与预编译指令#pragma的使用ss

CMD文件简介与预编译指令#pragma的使用ss

时间:10-02 整理:3721RD 点击:
一、CMD文件
    CMD文件(Linker Command Files)是编译完成后链接各个目标文件时,用来指示各个数据、符号等是如何划分到各个段,以及每个段所使用的存储空间的。
    CMD文件关键字:
  •     MEMORY
  •     SECTIONS
  •     align ALIGN
  •     attr  ATTR
  •     LENGTH length  len  l
  •     ORIGIN origin org o
  •     PAGE page
  •     RUN  run
  •     LOAD  load
  •    Copy
  •     fill FILL
  •     TYPE type
  • ......

    其中常用的是MEMORY,SECTIONS
    MEMORY是用来划分内存分配表;
    SECTIONS用来指定各个段所属内存区域。

二、#pragma预编译指令
  • #pragma CODE_SECTION    指定代码所属段
  • #pragma DATA_SECTION    指定数据所属段
  • #pragma SET_CODE_SECTION   
  • #pragma SET_DATA_SECTION
  • #pragma DATA_ALIGN      指定变量字节对齐



三、例子
     指定变量i,k到DataSH段

  1. #pragma SET_DATA_SECTION(".DataSH")
  2. unsigned int i;
  3. unsigned char k;
  4. #pragma SET_DATA_SECTION()

复制代码

   在CMD文件中,我们将DataSH段制定到128K的共享内存中
   

  1. .DataSH > SHRAM

复制代码

重新编译后,打开.map文件,可以看到SHRAM中被占用了5个字节
   


    往下拉,看以看到定义的变量i,k具体的内存地址
   


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top