打印
[资料分享]

keil使用总结

[复制链接]
993|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lijiankun|  楼主 | 2017-6-8 19:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 lijiankun 于 2017-6-8 20:23 编辑
1. 在点击build的时候,进行编译,每次都进行的是全编译,这个时候,可以进行如下设置:

   project--option for target 'xxx' ---target---Code Generation-- 将Use Cross-Module Optimization勾选去掉
再多重新编译一次就可以了。
2.absacc.h keil软件里怎么找不到 ,如何找?
把下面的内容保存成absacc.h即可:原因是高版本的KEIL进行了优化,将以前很多库文件去除了,需要用户手动添加
#ifndef __ABSACC_H__
#define __ABSACC_H__
#define CBYTE ((unsigned char volatile code *) 0)
#define DBYTE ((unsigned char volatile data *) 0)
#define PBYTE ((unsigned char volatile pdata *) 0)
#define XBYTE ((unsigned char volatile xdata *) 0)
#define CWORD ((unsigned int volatile code *) 0)
#define DWORD ((unsigned int volatile data *) 0)
#define PWORD ((unsigned int volatile pdata *) 0)
#define XWORD ((unsigned int volatile xdata *) 0)
#ifdef __CX51__
#define FVAR(object, addr) (*((object volatile far *) (addr)))
#define FARRAY(object, base) ((object volatile far *) (base))
#define FCVAR(object, addr) (*((object const far *) (addr)))
#define FCARRAY(object, base) ((object const far *) (base))
#else
#define FVAR(object, addr) (*((object volatile far *) ((addr)+0x10000L)))
#define FCVAR(object, addr) (*((object const far *) ((addr)+0x810000L)))
#define FARRAY(object, base) ((object volatile far *) ((base)+0x10000L))
#define FCARRAY(object, base) ((object const far *) ((base)+0x810000L))
#endif
#endif


当51单片机通过8255和锁存器74LS273来扩展IO时,经常用到头文件absacc.h。
在程序中,用“#include<absacc.h>”即可使用其中定义的宏来访问绝对地址,包括:CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD
例如:
rval=CBYTE[0x0002];指向程序存贮器的0002h地址
rval=XWORD [0x0002];指向外RAM的0004h地址



相关帖子

沙发
sdnumcu| | 2017-6-8 23:09 | 只看该作者
KEIL 是个好工具

使用特权

评论回复
板凳
yyglucky| | 2017-6-11 04:21 | 只看该作者
haohao继续

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

94

帖子

3

粉丝