STM8单片机C语言编程技巧.doc
《STM8单片机C语言编程技巧.doc》由会员分享,可在线阅读,更多相关《STM8单片机C语言编程技巧.doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流STM8单片机C语言编程技巧【精品文档】第 7 页如何分配变量到指定的地址举例:unsigned char temp_A0x00; /定义无符号变量temp_A,强制其地址为0x00unsigned char temp_B0x100; /定义无符号变量temp_B,强制其地址为0x100tiny unsigned char temp_C; /定义无符号变量temp_C,由编译器自动在地址小于0x100的RAM中为其分配一个地址near unsigned char temp_D; /定义无符号变量temp_D,由编译器自动在地址大于0xFF的RAM中为其分
2、配一个地址另外也可以采用伪指令pragma将函数或者变量定义到指定的section中,例如:#pragma section name / 将下面定义的未初始化变量定义到.name section中Unsigned char data1;Unsigned int data2;(任何需要定义在.name section中的变量)#pragma section / 返回到正常的section.注意:pragma伪指令可以用来定位函数,初始化变量或者未初始化变量。这三者用不同的括号区分。(name):代码name :未初始化变量name:初始化变量如何在COSMIC C文件中使用汇编语言在COSMIC
3、 C文件中使用汇编语言常见的方法有如下两种:使用#asm #endasm组合格式或_asm(); 单行格式。举例1:unsigned char temp_A;Void func1(void).#asmPUSH ALD A,(X)LD _temp_A,APOP A#endasm.注:在C嵌汇编环境下使用全局变量,要在该全局变量名称前加下划线_。举例2:Void func1(void)._asm(rim);_asm(nop);.如何观察RAM/FLASH/EEPROM的最终分配情况在Project-settings-linker选项页中,将Category选为Output,再勾选Generate
4、Map File。点击OK按键后,再次编译链接该项目,如果成功则会在项目输出目录中(本例是在C:STM8_NewProject1debug 目录下)生成 .map 文件。该文件详细地列出RAM/FLASH/EEPROM的分配使用情况。如何生成hex格式的输出文件在Project-settings-PostBuild选项页中,在commands栏内加入下行命令:chex fi -o $(OutputPath)$(TargetSName).hex $(OutputPath)$(TargetSName).sm8再次编译链接该项目,如果成功则会在项目输出目录中(本例是在C:STM8_NewProjec
5、t1debug 目录下)生成 .hex 文件。什么是MEMORY MODELSTM8的C编译器支持多种存储器模式。用户可以根据应用的需要选择最适合的配置。可以根据需要选择采用2个字节的寻址方式(仅适用于64k以内的程序)或者3字节的寻址方式。也可以规定将变量默认为定义在存储器的哪一区域:zero page内,还是zero page 外。下面对几种供选择的MEMORY MODEL做简单说明。在Project-settings-C Complier选项页中,将Category选为General,里面有一个Memory Models选项栏如下:在下拉菜单中共有4种MEMORY MODEL可供选择:
6、程序地址空间在64K以内(即程序容量小于32K)mods0,modsl0 程序地址哦那个键在64K以上(即程序容量大于32K)modsmodslMODS0MODSL0MODSMODSL名称Stack Short短堆栈模式Stack Long长堆栈模式Stack Short短堆栈模式Stack Long长堆栈模式程序地址空间程序所用到的地址空间在64K范围内程序所用到的地址空间超出64K范围指针默认类型函数指针和数据指针默认为near (2 bytes)函数指针默认为far(地址为3字节);数据指针默认为near全局变量默认类型所有全局变量的地址默认为1个字节。对于地址超出1个字节的变量,必须用
7、near定义所有全局变量默认为Long型。若要将变量地址定义为1个字节,必须用tiny定义所有全局变量的地址默认为1个字节。对于地址超出1个字节的变量,必须用near定义所有全局变量默认为Long型。若要将变量地址定义为1个字节,必须用tiny定义.lkf 文件的作用.lkf文件在程序链接时决定如何具体分配RAM/ROM的空间。在Project Settings Linker Category(Input)选项页中,当Auto选择框被选中时,由系统自动生成.LKF文件,否则由用户指定。当Auto选择框被勾选时,.lkf文件会自动生成在项目主目录下的 debug/ 和 release/ 目录中。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STM8 单片机 语言 编程 技巧
限制150内