锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

KEIL 单片机的RAM 超出范围处理

时间:2024-04-29 20:07:10

以前写了一个测试程序,昨晚上想把测试程序在改进时候,发现我多增加一个全局变量 unsigned int flag; //定义一个全局变量 ,烧写到单片机。。单片机运行时候。 显示就正常了。测量到的数据也显示不了, 反复测试好多次, 发现问题就在这句: unsigned int flag; //定义一个全局变量 多定义一个就出现错误。 我百思不得其解。。 最后我只有请教了一些朋友,一些有经验的朋友很快就知道问题出在哪里了。 是单片机的RAM 不够了。 因为我的这个程序比较大,涉及全局变量用到的比较多,超出范围了。有三种存储模式SMALL,COMPACT,LARGE. 默认存储模式是SMALL , 默认就把所有的变量都放在RAM里面,这样访问速度是最快,但是适合小程序, 我的RAM 只有1280字节 。是不够的。所以要选择large模式,该模式空间大,可存变量多,但是访问速度相对于比较慢。 所以。。只要把 KEIL Memory Model 设置为:large 即可。

OK ,人多力量大。。 问题就这样解决了。 所以,做个记录。 让看过这篇文章的人,下次遇到这样问题,也可以试试这个方法。


-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章