打印

请教IAR AVR几个名词

[复制链接]
2192|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
电子尘埃|  楼主 | 2008-9-10 08:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AVR, IAR, ck, AC, ST
CSTACK               DATA          00000060 - 0000025F         200   dse    0
RSTACK               DATA          00000260 - 0000027F          20   dse    0

哪位高手们指点一下呀,
这个CSTACK与RSTACK这个是什么意思?
堆栈???
怎么设置合适的大小呀?编译器不能自动设置吗?

相关帖子

沙发
yewuyi| | 2008-9-10 09:03 | 只看该作者

~~

我的理解:
CSTACK 被作为数据栈使用,RSTACK作为函数调用返回的地址向量使用,也就是说,在IAR FOR AVR上,函数调用使用的数据空间和地址空间是分离的。

使用特权

评论回复
板凳
yewuyi| | 2008-9-10 09:10 | 只看该作者

你这一段是抄的哪里的?

CSTACK               DATA          00000060 - 0000025F         200   dse    0
RSTACK               DATA          00000260 - 0000027F          20   dse    0




呵呵,我计算机上的MEGA8的XCL文件中没有这一段,你这是哪个型号的?类似你这段定义我印象中是在IAR FOR NEC的一些芯片型号的XCL文件中看过,IAR FOR AVR中好象是通过OPTION中设置长度,在XCL文件中确定起始地址的方式定义的把?

使用特权

评论回复
地板
电子尘埃|  楼主 | 2008-9-10 11:38 | 只看该作者

回楼上,

这个是编译结果里抄出来的.
CSTACK          
RSTACK  
楼上是通过编译器文件.xcl自行定的吗??
我对那个设置不了解.
我是在Options -General Options-System里的Data stack(CSTACK) Size 默认是0x20,我编译也通过了,也没有报错,可写进去有问题,把这个数改成0x300就可以了.
可是到底是怎么回事,搞不灵清呀?

使用特权

评论回复
5
yewuyi| | 2008-9-10 11:55 | 只看该作者

Options -General Options-System

里面的值是它的长度。

0x20长度的时候有问题,改成X0300就OK,说明数据堆的空间开的不够,程序运行时数据堆溢出了,我不知道IAR会不会对溢出检测,按道理来说,如果有溢出的话编译器会报错或警告的哦。

不过你弄成X0300也太大了把,这个都是开在RAM空间的,呵呵,太费了把?

一般来说,在AVR上,如果没有特殊的应用,0X20的长度应该够了,搞不清楚你在干什么。。。

呵呵,俺也是C的‘白痴’,你请教HOTPOWER、XWJ、所长等等去把。。。

使用特权

评论回复
6
电子尘埃|  楼主 | 2008-9-10 13:00 | 只看该作者

也没干什么呀.就是几个汉字显示菜单调来调去.

RAM不用白不用.现在紧张的是ROM,这个说明,在网上找了一大圈也没有个详细说明的.那个中文的用户手册也太简略了.
"呵呵,俺也是C的‘白痴’,你请教HOTPOWER、XWJ、所长等等去把。。。"
这个跟C有关系吗?
C教材有教吗??

使用特权

评论回复
7
yewuyi| | 2008-9-10 13:09 | 只看该作者

和编译器有关系。。。

不过这些在KEIL和IAR等编译器中,基本含义都差不多,有没有系统的教材就不知道了,好象没看到过,只能看编译器的HELP了。。。

使用特权

评论回复
8
电子尘埃|  楼主 | 2008-9-10 13:51 | 只看该作者

谢谢yewuyi

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

51

主题

444

帖子

0

粉丝