微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 无XDATA单片机,高128字节RAM KEIL中使用。

无XDATA单片机,高128字节RAM KEIL中使用。

时间:10-02 整理:3721RD 点击:
这是APP上第一篇帖子,写写昨天在做企业项目中遇到的问题(此问题其实比较小儿科,只是以前没注意)。
        这之前先说说STC,其实本人最不想用的就是STC,迫于板子体积受限,STC15W204S的SOP8封装很适合,且有256字节的内存。STM8小体积的居然都是小于等于128内存。
        言归正传,说的就是和RAM相关的知识点,有没有想过keil 再使用默认配置SMALL模式,如果定义unsigned char a[100]; 会提示内存空间不足,那怎么解决呢?STC15W204不是有256RAM吗!有人说把keil内存配置改成LARGE,那么编译是通过了,可你会发现程序下载到单片机后无法正确执行,这是行为LARGE模式使用的是外部扩张RAM   即XDATA,汇编为MOVX A @DPTR,   可是STC15W204是没有XDATA的,所以无法执行程序。
        其实keil内存配置还应该选SMALL,然后在定义变量的时候如下定义:unsigned char idata a[100];   加idata修饰就好了。
        idata 表示内部RAM高128字节,只能是间接寻址,速度比data里的数据要慢。
        就写道这,记录一下而已。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top