stephen_chen 发表于 2009-7-7 10:30:01

IAR C如何定义变量

我用__saddr GLOBAL 定义的变量,附初值后再读回来发现数值不对,查看9212的文档,发现saddr定义地址有一段是和SFR重合的(FF00-FF1F),会不会是因为这个问题呢,请大家指教!

korren 发表于 2009-7-8 17:17:10

是什么型号?有的编译器版本是哪一个?链接文件RAM和SFR重合会错误的,检查一下链接文件-Z(DATA)SADDR_I,SADDR_Z,SADDR_N=RAM开始地址-RAM结束地址,是不是超过了RAM界限。

sophie0403 发表于 2009-7-9 10:36:45

堆栈设在哪了?

stephen_chen 发表于 2009-7-15 12:53:17

用的是78K0S的9212,编译器是用IAR 4.60A, 我也曾经怀疑这个问题,但查看.map发现RAM的定义空间都没问题, SADDR_I = FE9E, SADDR_Z = FE9E - FEA3, 没有SADDR_N, RAM的空间应该是FE80 - FEFF的吧, 另外堆栈是在编译器里面设的,地址是FE80 - FE9D
页: [1]
查看完整版本: IAR C如何定义变量