网站大量收购独家精品文档,联系QQ:2885784924

单片机语言编程技巧.pdf

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
如何分配变量到指定的地址 举例: unsigned char temp_A@0x00; // 定义无符号变量 temp_A ,强制其地址为 0x00 unsigned char temp_B@0x100; // 定义无符号变量 temp_B ,强制其地址为 0x100 @tiny unsigned char temp_C; // 定义无符号变量 temp_C ,由编译器自动在地址小于 0x100 的 RAM 中为其分配一个地址 @near unsigned char temp_D; // 定义无符号变量 temp_D ,由编译器自动在地址大于 0xFF 的 RAM 中为其分配一个地址 另外也可以采用伪指令 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 C 文件中使用汇编语言常见的方法有如下两种:使用 #asm …#endasm 组合格 式 或_asm( …); 单行格式。 举例 1 : unsigned char temp_A; Void func1(void) { ... #asm PUSH A LD A,(X) LD _temp_A,A POP A #endasm ... } 注:在 C 嵌汇编环境下使用全局变量,要在该全局变量名称前加下划线 _ 。 举例 2 : Void func1(void) { ... _asm(rim); _asm(nop); ... } 如何观察 RAM/FLASH/EEPROM 的最终分配情况 在 Project-settings-linker 选项页中,将 Category 选为 Output ,再勾选 Generate Map File 。 点击 OK 按键后,再次编译链接该项目,如果成功则会在项目输出目录中 (本例是在 C:\STM8_NewProject1\debug 目录下 ) 生成 .map 文件。该文件详细地列出 RAM/FLASH/EEPROM 的分配使用情况。 如何生成 hex 格式的输出文件 在 Project-settings-PostBuild 选项页中,在 commands 栏内加入下行命令: chex –fi -o $(OutputPath)$(TargetSName).hex $(OutputPath)$(TargetSName).sm8 再次编译链接该项目,如果成功则会在项目输出目录中 (本例是在 C:\STM8_NewProject1\debug 目录下 ) 生成 .hex 文件。 什么是 MEMORY MODEL STM8 的 C 编译器支持多种存储器模式。用户可以根据应用的需要选择最适合的配置。可 以根据需要选择采用 2 个字节的寻址方式(仅适用于 64k 以内的程序)或者 3 字节的寻址 方式。也可以规定将变量默认为定义在存储器的哪一区域:

您可能关注的文档

文档评论(0)

kxg2020 + 关注
实名认证
内容提供者

至若春和景明,波澜不惊,上下天光,一碧万顷,沙鸥翔集,锦鳞游泳,岸芷汀兰,郁郁青青。

1亿VIP精品文档

相关文档