注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

碧空雄鹰的博客

人和人相遇,靠的是一种缘;人和人相处,靠的是一份诚;人和人相爱,靠的是一份真

 
 
 

日志

 
 
关于我

人生有三样东西是无法隐瞒的:咳嗽、贫穷和爱,你想隐瞒,却欲盖弥彰。 人生有三样东西是不该挥霍的:身体、金钱和爱,你想挥霍,却得不偿失。 人生有三样东西是无法挽留的:生命、时间和爱,你想挽留,却渐行渐远。 人生五靠: 命运不是靠时间,而是靠勤奋,时间不是靠虚度,而是靠使用,感情不是靠缘分,而是靠珍惜,金钱不是靠使用,而是靠投资,事业不是靠满足,而是靠踏实。 人生三大遗憾 : 不会选择,不坚持选择,不断地选择。

网易考拉推荐

keil 相关选项设置  

2013-05-07 16:35:12|  分类: KEIL |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

keil 相关选项设置

Memory Model:这里很多人不清楚SMALL模式和LARGE模式的不同(中间那个COMPATC模式一般没用)。平时我们定义变量的时候,都喜欢直接uchar a;,实际上这个a是属于data还是xdata呢?编译器就是由你选择的Memory Model决定的,我们一般选择的都是Small模式,那么它就会把uchar a中的a变量编译成data,也就是相当于uchar data a; 同理,如果我们选择Large模式,它就会编译成xdata,即相当于uchar xdata a;
LARGE
模式下所有变量和局部数据段都定义在8051的外部数据存储器中,可访问64K字节的全部地址空间。是效率不高的数据访问形式。对于指定了存储器类型的变量,不受LARGE设置的影响。调用子程序用到的堆栈始终放在8051内部数据存储器中
SMALL
模式下所有函数和过程的变量机局部数据段被定义在8051的内部数据存储器中,因此对数据对象的访问速度最快,缺点是地址空间有限。调用子程序时所用到的堆栈始终放在8051内部数据存储器中。

Use On-chip ROM(0x0-0x1fff):这个选项是使用片上的Flash Rom,我们知道At89c528kflash 
Rom.
取决于你的应用系统,你的单片机的EA接高电平的话,请选中这个选项,如果你的单片机的EA接低电平,表示使用外部Rom,那么不要选中该选项.我们在这里选中它
Code Banking:
是使用Code Banking技术.keil可以支持程序代码超过64k的情况,最大可以有2兆的程序代码.如果你的代码超过64k,那么就要使用Code Banking技术,以支持更多的程序空间.Code Banking是一个高级的技术,支持自动的Bank的切换,是建立一个大型系统的需要,比如你要在单片机里实现汉字字库,实现汉字输入法,都要用到该技术.一般不选中它.
Code Rom Size:
Small: program 2K or less ;
适用于89c2051这些芯片,2051只有2k的代码空间,所以跳转地址只有2k,编译的时候会使用ACALL AJMP这些短跳转指令,而不会使用LCALL,LJMP指令.如果你的代码跳转超过2k,那么会出错. 
  Compact:2k functiongs ,64k program:表示每个子函数的程序大小不超过2k,整个工程可以有64k的代码.就是说在main()里可以使用LCALL, LJMP指令,但在子程序里只会使用ACALL,AJMP指令.除非你确认你的每个子程序不会超过2k,否则不要用Compact方式.
  Large:64K program:表示程序或子函数都可以大到64k.使用code bank还可以更大.通常我们都选用该方式.Code Rom Size选择Large方式速度不会比Small慢很多,所以一般没有必要选择CompactSmall的方式.我们这里选择Large方式.

 

  评论这张
 
阅读(149)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018