STM8中的@far是什么意思呢?

[复制链接]
2504|10
 楼主| haokeer 发表于 2016-7-18 21:45 | 显示全部楼层 |阅读模式
STM8中的@far是什么意思呢?以前一直用的51,刚转STM8上来
喵喵小星人 发表于 2016-7-19 19:46 | 显示全部楼层
在STM8中,指定地址的长度可以有3种方式,@tiny使用1个字节表示地址,只能寻址地址范围0x00~0xFF;@near使用2个字节表示地址,只能寻址地址范围0x0000~0xFFFF;@far使用3个字节表示地址,寻址地址范围0x000000~0xFFFFFF
maninman1981 发表于 2016-7-20 22:11 | 显示全部楼层
给你举几个例子吧
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中为其分配一个地址
rmbass 发表于 2016-7-21 09:23 | 显示全部楼层
maninman1981 发表于 2016-7-20 22:11
给你举几个例子吧
unsigned char temp_A@0x00; //定义无符号变量temp_A,强制其地址为0x00
unsigned char t ...

@应该不是标准c的语句,这个@是如何定义的呢?
yysforever 发表于 2016-7-22 10:59 | 显示全部楼层
可以这样理解,@near可以访问两字节指针所能访问的数据的范围,@far是三指针的,而那个@tiny是一个字节的,和那个51的基本差不多,也就是那些idata,padat,xdata之类的
冰是睡着的冰 发表于 2016-7-22 21:49 | 显示全部楼层
yysforever 发表于 2016-7-22 10:59
可以这样理解,@near可以访问两字节指针所能访问的数据的范围,@far是三指针的,而那个@tiny是一个字节的, ...

懂了,原来这是STM8自定义的一个标志,对吧?
yesherecn 发表于 2016-7-23 11:53 | 显示全部楼层
冰是睡着的冰 发表于 2016-7-22 21:49
懂了,原来这是STM8自定义的一个标志,对吧?

不是STM8,是STVD编译器,在c的标准上面,每个厂家增加了自己的定义,所以就显得有点乱了
playergatsby 发表于 2016-7-23 22:49 | 显示全部楼层
STVD就是比较复杂,STM8推荐用IAR,语法基本和标准c是一样的
jouney316 发表于 2016-7-24 10:54 | 显示全部楼层
参见COSMIC安装目录下,CXSTM8_32K \ Docs \ Clanguage.pdf。这是COSMIC自定义的语法
Dennis-Zhou 发表于 2016-7-25 19:18 | 显示全部楼层
stm8 stvd下
near等于51的xdata
tiny等于51的idata
@就是相当于指针这个意思了。指向一个空间
l科科1987 发表于 2016-7-26 10:00 | 显示全部楼层
看看编译器的帮助手册,多看几遍就懂了。不过还是建议换IAR吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

183

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部