stc89c52中数据类型如da
1、在Memory Model下设置compact,程序中就可以直接char i;默认的就是用的xram?
对。就是在外部RAM,不过应该是pdata,只是访问方式和xdata不一样,这点可以不用关心。
2、不设置Memory Model,默认small,不过我在程序里面用pdata,编译后,也会使用xram?
没错!
3、Program Size: data=159。1 xdata=0 code=5628这个data=159。 1是不是编译时候检测到的变量定义使用ram情况,不包含程序处理中堆栈和局部变量的使用?
局部变量肯定包含在里面,堆栈我说不大好,没有在如此的极限状态下用过。...全部
1、在Memory Model下设置compact,程序中就可以直接char i;默认的就是用的xram?
对。就是在外部RAM,不过应该是pdata,只是访问方式和xdata不一样,这点可以不用关心。
2、不设置Memory Model,默认small,不过我在程序里面用pdata,编译后,也会使用xram?
没错!
3、Program Size: data=159。1 xdata=0 code=5628这个data=159。
1是不是编译时候检测到的变量定义使用ram情况,不包含程序处理中堆栈和局部变量的使用?
局部变量肯定包含在里面,堆栈我说不大好,没有在如此的极限状态下用过。不过如果编译能通过说明堆栈、局部变量等都够用。
所以在建立工程前应选择好芯片。
4、我要使用xram用idata还是pdata?
用xram应使用pdata或xdata。idata和data都属于内部RAM,只是idata采用的是间接访问模式,data是直接访问模式,效率上后者更高。
5、data不够我要存储数组怎么用
编译时可以选择small模式,然后声明数组是用比如:uchar xdata xx[100],就行了,这样的话其它的变量都会使用内部RAM,只有数组由于声明了xdata会放到外部RAM中。
其实这也是常规做法,只有内部变量不够的时候才会选用中模式或大模式,然后相提高代码效率时,再将那些局部变量什么的去声明为data、idata等,倒过来做。如果嫌麻烦直接使用大模式也行。期待好评。
收起