对Proteus与Keil联调过程中遇到的怪异现象解决方法
近日接到客户项目,要求编写一个使用51串口设置时间的闹钟项目,本来是轻轻松松半天搞定的事情,最后却是费了我整整一晚上,遇到的主要问题就是联调现象不对的问题,如图:
自已的上一个项目也是同样现象,仿真总是不出现象,无奈只好找出以前的例子来进行对比,或者准备“旧瓶换新酒”,其中无奈真是难受,发现同一个程序的情况下,在本编译环境下就是出问题,排除了程序的原因,那一定是Keil配置出现了问题,对比发现,在选择芯片的 Memory Model时,以前的程序都是选择的Small: Variables in DATA,而这个程序配置的是Large:variables in XDATA,会不会是这个原因呢:
将本程序设置改为Small后,果然现象正确:
为什么会出现这种现象呢?
对比两种编译的结果如下
可见,在选择Large:variables in XDATA时,大部分的data存储到了XDATA中,即外部RAM,而在硬件环境中,并没有对80C52进行RAM扩展,仅仅使用了片内的128B的RAM:
, 这样一来,也可能是程序在运行时将寻址不到存储于外部RAM中的数据,从而使程序出现异常。
除了选择内存模型外,在变量名前面添加存储区类型应该也是可能的解决方法:data char i=0; 以显式说明将该变量在内部RAM 中分配内存。不过,在程序所需要的数据区非常大时,扩展RAM还是比较通用的做法。
第一次比较真切的感受到在嵌入式编程中,内存空间的宝贵性,在编写程序时,一定要注意程序结构,减少不必要的内存开销,对于系统性能的提高与降低成本是非常必要的。
对Proteus与Keil联调过程中遇到的怪异现象解决方法相关推荐
- hadoop过程中遇到的错误与解决方法
hadoop过程中遇到的错误与解决方法 参考文章: (1)hadoop过程中遇到的错误与解决方法 (2)https://www.cnblogs.com/zhjh256/p/10669881.html ...
- 计算机组装时遇到的问题,计算机组装及正常维修过程中遇到的问题和解决方法.doc...
<计算机组装及正常维护过程中遇到的问题和解决方法> 指导老师:XXX 班级:XXX 姓名:XXX 学号:XXXX 计算机组装遇到的问题和解决方法 在安装之前要特别注意下面这些事项:第一.防 ...
- 使用遇到的问题_聚氯化铝在使用过程中遇到的问题及解决方法
聚氯化铝在使用过程中遇到的问题及解决方法 随着现在工业的发展改良,现在的工业废水水质的变化幅度大,导致处理方面也有新的问题出现,常见的有聚氯化铝投入水中产生泡沫,药剂堵塞泵等问题. 聚氯化铝投入水中产 ...
- 将html代码部署到阿里云服务器,并进行域名解析,以及在部署过程中遇到的问题和解决方法
将html代码部署到阿里云服务器,并进行域名解析,以及在部署过程中遇到的问题和解决方法 参考文章: (1)将html代码部署到阿里云服务器,并进行域名解析,以及在部署过程中遇到的问题和解决方法 (2) ...
- 记flume部署过程中遇到的问题以及解决方法(持续更新)
项目需求是将线上服务器生成的日志信息实时导入kafka,采用agent和collector分层传输,app的数据通过thrift传给agent,agent通过avro sink将数据发给collect ...
- crossover的使用过程中出现的问题和解决方法
crossover的使用过程中出现的问题和解决方法: 原因分析: 出现X11丢失的主要是因为缺少的X11软件包,这一错误在Mac OS 10.6系统上发生的频率比较高,在Mac OS 10.8及更高版 ...
- 硒鼓加粉过程中常见缺陷对照表及解决方法!
硒鼓加粉过程中常见缺陷对照表及解决方法! 1.问题:底灰 原因:低湿高温;PCR(充电辊)缺陷;磁辊护套及涂层缺陷;PCR或电晕电接触点缺陷;OPC(感光鼓)缺陷;不良碳粉;高压电源不良. 解决方法: ...
- Tomcat启动过程中找不到JAVA_HOME解决方法
在XP上明明已经安装了JDK1.5并设置好了JAVA_HOME,可偏偏Tomcat在启动过程中找不到. 报错信息如下:Neither the JAVA_HOME nor the JRE_HOME en ...
- 使用javamail发信过程中的一些问题及解决方法
今天在研究javamail发信的过程中,出现了一些小问题,现总结如下,以免后来者走些不必要的弯路,先把完整的能够正常运行的代码示例粘贴如下: 发邮件源代码: package com.hyq.tes ...
- JAVA项目中找不到tomcat_Tomcat启动过程中找不到JAVA_HOME解决方法
在XP上明明已经安装了JDK1.5并设置好了JAVA_HOME,可偏偏Tomcat在启动过程中找不到. 报错信息如下:Neither the JAVA_HOME nor the JRE_HOME en ...
最新文章
- DCNv2 windows编译 2021ok
- POJ9384 迷宫(基金会BFS)
- python如何将生成的随机数存入文件中_用python在excel中读取与生成随机数写入excel中...
- jquery+ajax+ashx
- mysql5.1编译安装centos7_02: mysql 5.7 编译安装 (centos7)
- 暗黑破坏神java魔法护身,发个实用的贴!!暗黑+1+2技能护身符合成,望大家顶下,能加精...
- C++之保护和私有构造函数与析构函数
- ArcGIS操作小技巧(三)之License service不能启动的解决方法
- bug管理工具之禅道的测试模块的使用
- 防火墙 虚拟服务器,防火墙应用指南(二)——虚拟服务器的搭建-20210526012702.pdf-原创力文档...
- 微信打飞机--Java版
- Windows蓝屏的解决办法(如:UNEXPECTED_STORE_EXCEPTION蓝屏)
- 机械师笔记本电脑使用小常识
- 小米路由器 内核 linux,小米路由器配置ssh登入方法教程
- ciscoVLAN配置典型案例,很实用。
- python字符串的内部函数_「Python」字符串操作内置函数
- Java部分集合以及部分常用类
- windows下查看硬盘序列号、设备序列号、操作系统版本和安装时间、系统启用时间等命令
- C#不四舍五入保留两位小数
- POSIX Timer