欢迎来到天天文库
浏览记录
ID:9119034
大小:357.85 KB
页数:7页
时间:2018-04-18
《进一步掌握stvd和cosmic》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、如何分配变量到指定的地址举例:unsignedchartemp_A@0x00;//定义无符号变量temp_A,强制其地址为0x00unsignedchartemp_B@0x100;//定义无符号变量temp_B,强制其地址为0x100@tinyunsignedchartemp_C;//定义无符号变量temp_C,由编译器自动在地址小于0x100的RAM中为其分配一个地址@nearunsignedchartemp_D;//定义无符号变量temp_D,由编译器自动在地址大于0xFF的RAM中为其分配一个地址另外也可以采用伪指令"pragma"将函数或者变量定义到指定的se
2、ction中,例如:#pragmasection[name]//将下面定义的未初始化变量定义到.namesection中Unsignedchardata1;Unsignedintdata2;……(任何需要定义在.namesection中的变量)……#pragmasection[]//返回到正常的section.注意:pragma伪指令可以用来定位函数,初始化变量或者未初始化变量。这三者用不同的括号区分。(name):代码[name]:未初始化变量{name}:初始化变量如何在COSMICC文件中使用汇编语言在COSMICC文件中使用汇编语言常见的方法有如下两种:使用#
3、asm…#endasm组合格式或_asm("…");单行格式。举例1:unsignedchartemp_A;Voidfunc1(void){...#asmPUSHALDA,(X)LD_temp_A,APOPA#endasm...}注:在C嵌汇编环境下使用全局变量,要在该全局变量名称前加下划线"_"。举例2:Voidfunc1(void){..._asm("rim");_asm("nop");...}如何观察RAM/FLASH/EEPROM的最终分配情况在Project->settings->linker选项页中,将Category选为Output,再勾选Generat
4、eMapFile。 点击OK按键后,再次编译链接该项目,如果成功则会在项目输出目录中(本例是在C:STM8_NewProject1debug目录下)生成.map文件。该文件详细地列出RAM/FLASH/EEPROM的分配使用情况。如何生成hex格式的输出文件在Project->settings->PostBuild选项页中,在commands栏内加入下行命令:chex–fi-o$(OutputPath)$(TargetSName).hex$(OutputPath)$(TargetSName).sm8再次编译链接该项目,如果成功则会在项目输出目录中(本例是在C:S
5、TM8_NewProject1debug目录下)生成.hex文件。什么是MEMORYMODELSTM8的C编译器支持多种存储器模式。用户可以根据应用的需要选择最适合的配置。可以根据需要选择采用2个字节的寻址方式(仅适用于64k以内的程序)或者3字节的寻址方式。也可以规定将变量默认为定义在存储器的哪一区域:zeropage内,还是zeropage外。下面对几种供选择的MEMORYMODEL做简单说明。在Project->settings->CComplier选项页中,将Category选为General,里面有一个MemoryModels选项栏如下: 在下拉菜单中共有
6、4种MEMORYMODEL可供选择:·程序地址空间在64K以内(即程序容量小于32K)mods0,modsl0·程序地址哦那个键在64K以上(即程序容量大于32K)modsmodsl MODS0MODSL0MODSMODSL名称StackShort短堆栈模式StackLong长堆栈模式StackShort短堆栈模式StackLong长堆栈模式程序地址空间程序所用到的地址空间在64K范围内程序所用到的地址空间超出64K范围指针默认类型函数指针和数据指针默认为@near(2bytes)函数指针默认为@far(地址为3字节);数据指针默认为@near全局变量默认类型所有全局
7、变量的地址默认为1个字节。对于地址超出1个字节的变量,必须用@near定义所有全局变量默认为Long型。若要将变量地址定义为1个字节,必须用@tiny定义所有全局变量的地址默认为1个字节。对于地址超出1个字节的变量,必须用@near定义所有全局变量默认为Long型。若要将变量地址定义为1个字节,必须用@tiny定义.lkf文件的作用.lkf文件在程序链接时决定如何具体分配RAM/ROM的空间。在ProjectSettings–Linker–Category(Input)选项页中,当"Auto"选择框被选中时,由系统自动生成.LKF文件,否则由用户指定
此文档下载收益归作者所有