浅析STVD(COSMIC)定义变量及其位定义.doc

浅析STVD(COSMIC)定义变量及其位定义.doc

ID:28103790

大小:142.00 KB

页数:11页

时间:2018-12-08

浅析STVD(COSMIC)定义变量及其位定义.doc_第1页
浅析STVD(COSMIC)定义变量及其位定义.doc_第2页
浅析STVD(COSMIC)定义变量及其位定义.doc_第3页
浅析STVD(COSMIC)定义变量及其位定义.doc_第4页
浅析STVD(COSMIC)定义变量及其位定义.doc_第5页
资源描述:

《浅析STVD(COSMIC)定义变量及其位定义.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、浅析STVD(COSMIC)定义变量及其位定义  如何分配变量到指定的地址  举例:  unsignedchartemp_A@0x00;//定义无符号变量temp_A,强制其地址为0x00  unsignedchartemp_B@0x100;//定义无符号变量temp_B,强制其地址为0x100  @tinyunsignedchartemp_C;//定义无符号变量temp_C,由编译器自动在地址小于0x100的RAM中为其分配一个地址  @nearunsignedchartemp_D;//定义无符号变量temp_D,由编译器自动在地址大于0xFF的RAM中为其分配一个地址  另

2、外也可以采用伪指令“pragma”将函数或者变量定义到指定的secTIon中,例如:  #pragmasecTIon[name]//将下面定义的未初始化变量定义到.namesecTIon中  Unsignedchardata1;  Unsignedintdata2;  ……(任何需要定义在.namesecTIon中的变量)  ……  #pragmasection[]//返回到正常的section.  注意:pragma伪指令可以用来定位函数,初始化变量或者未初始化变量。这三者用不同的括号区分。  (name):代码  [name]:未初始化变量  {name}:初始化变量  如

3、何在COSMICC文件中使用汇编语言  在COSMICC文件中使用汇编语言常见的方法有如下两种:使用#asm…#endasm组合格式  或_asm(“…”);单行格式。  举例1:  unsignedchartemp_A;  Voidfunc1(void)  {  。..  #asm  PUSHA  LDA,(X)  LD_temp_A,A  POPA  #endasm  。..  }  注:在C嵌汇编环境下使用全局变量,要在该全局变量名称前加下划线“_”。  举例2:  Voidfunc1(void)  {  。..  _asm(“rim”);  _asm(“nop”);  

4、。..  }  如何观察RAM/FLASH/EEPROM的最终分配情况  在Project-》settings-》linker选项页中,将Category选为Output,再勾选GenerateMapFile。  点击OK按键后,再次编译链接该项目,如果成功则会在项目输出目录中(本例是在C:STM8_NewProject1debug目录下)生成.map文件。该文件详细地列出RAM/FLASH/EEPROM的分配使用情况。  如何生成hex格式的输出文件  在Project-》settings-》PostBuild选项页中,在commands栏内加入下行命令:  chex–f

5、i-o$(OutputPath)$(TargetSName).hex$(OutputPath)$(TargetSName).sm8  再次编译链接该项目,如果成功则会在项目输出目录中(本例是在C:STM8_NewProject1debug目录下)生成.hex文件。  什么是MEMORYMODEL  STM8的C编译器支持多种存储器模式。用户可以根据应用的需要选择最适合的配置。可以根据需要选择采用2个字节的寻址方式(仅适用于64k以内的程序)或者3字节的寻址方式。也可以规定将变量默认为定义在存储器的哪一区域:zeropage内,还是zeropage外。下面对几种供选择的MEM

6、ORYMODEL做简单说明。  在Project-》settings-》CComplier选项页中,将Category选为General,里面有一个MemoryModels选项栏如下:    在下拉菜单中共有4种MEMORYMODEL可供选择:  程序地址空间在64K以内(即程序容量小于32K)  mods0,  modsl0  程序地址哦那个键在64K以上(即程序容量大于32K)  mods  modsl  MODS0MODSL0MODSMODSL  名称StackShort  短堆栈模式StackLong  长堆栈模式StackShort  短堆栈模式StackLong  

7、长堆栈模式  程序地址空间程序所用到的地址空间在64K范围内程序所用到的地址空间超出64K范围  指针默认类型函数指针和数据指针默认为@near(2bytes)函数指针默认为@far(地址为3字节);  数据指针默认为@near  全局变量默认类型所有全局变量的地址默认为1个字节。对于地址超出1个字节的变量,必须用@near定义所有全局变量默认为Long型。若要将变量地址定义为1个字节,必须用@tiny定义所有全局变量的地址默认为1个字节。对于地址超出1个字节的变量,必须用@near定义所有

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。