• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

51单片机RAM不够用咋办,选pdata程序又出错

e39f0202e05ea92a 2018-11-29 浏览量:1609
就题目说的,选data编译失败,pdata和xdata能成功,但是单片机功能无法实现。。。。
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 编译之后,编译器会给出一个报表

    有data\pdata\xdata区各分配了多少空间

    查询下你使用的MCU,pdata空间有没有超出。

    一般来讲,非重要的数据不要放在data区。对计算效率影响不大的都放xdata区吧

    data区主要放局部变量。

    • 发布于 2018-11-29
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:13
  • 这些是硬件资源 要不精简程序 要不换MCU
    • 发布于2018-11-29
    • 举报
    • 评论 0
    • 0
    • 0

  • RAM不够用这个可以先看看差多少,如果只是差几个字节或者几十个字节,可以通过优化程序算法等方式节省RAM;如果相差比较多了,比如几百个字节,或者上K字节了,那么只能更换RAM更大的单片机了。
    • 发布于2018-11-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 优化程序,通过编译出来的各个区大小,把不必要的数据、变量放到xdata区域。程序中,有些语句或定义,不需要的就去掉,能简化的简化。

    还不行,换MCU吧。

    • 发布于2018-11-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 用xdata把,然后增加外部ram,或者用大一点RAM单片机
    • 发布于2018-11-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 额,其实如果程序太大过于复杂的话就不要用51了,毕竟性能有限,可以考虑下stm32!
    • 发布于2018-11-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 根据编译的情况先看看所需要的空间与实际空间的差别,相差不大就优化程序,差得多就换芯片吧。
    • 发布于2018-11-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 要么加外扩RAM用xdata,要么换ARM的方案。

    • 发布于2018-11-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 如果项目要求的真是比较多,那么是可以选择其他的芯片才可以的
    • 发布于2018-11-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以考虑外接一块RAM,但是要消耗掉几个IO来驱动
    • 发布于2018-12-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 这样对程序进行优化了,可以共用一些变量
    • 发布于2018-12-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个一般都是要外接一个RAM,这样比较稳妥
    • 发布于2018-12-31
    • 举报
    • 评论 0
    • 0
    • 0

  • 如果不能做到外接RAM的话就优化你的程序,通过你的程序来处理
    • 发布于2019-01-12
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

51单片机RAM不够用咋办,选pdata程序又出错