[求助]Keilc51编译的问题
我是个初学者,用KC的tiny编了一个简单的程序。芯片AT89C51(128个的ram),问题如
下:
1)在项目中STARTUP。A51加载了进去,编译可通过,但生成的代码竟用5.5K,正确吗?
2)再把CONF——TNY。A51也加载了进去,并把RAMTOP改为0x7f,编译出现了以下这些错误
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: ?RTX_CURRENTTASK
MODULE: E:\KEIL70.1\C51\LIB\RTX51TNY.LIB (?RTX51_TINY_KERNAL)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: ?RTX_RAMTOP
MODULE: E:\KEIL70.1\C51\LIB\RTX51TNY.LIB (?RTX51_TINY_KERNAL)
*** WARNING L4: DATA SPACE MEMORY OVERLAP
FROM: 0008H
TO: 000DH
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
SYMBOL: ?RTX_CURRENTTASK
MODULE: E:\KEIL70.1\C51\LIB\RTX51TNY.LIB (?RTX51_TINY_OS_CREATE)
ADDRESS: 003BH
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
SYMBOL: ?RTX_RAMTOP
MODULE: E:\KEIL70.1\C51\LIB\RTX51TNY.LIB (?RTX51_TINY_OS_CREATE)
ADDRESS: 004FH
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
SYMBOL: ?RTX_CURRENTTASK
MODULE: E:\KEIL70.1\C51\LIB\RTX51TNY.LIB (?RTX51_TINY_OS_CREATE)
ADDRESS: 0079H
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
SYMBOL: ?RTX_CURRENTTASK
MODULE: E:\KEIL70.1\C51\LIB\RTX51TNY.LIB (?RTX51_TINY_OS_WAIT)
ADDRESS: 00B1H
附简单程序:#include <AT89X51.H>
#include <Rtx51Tny.h>
//#include"at89c51rtx51tny.h"
#define uchar unsigned char
#define uint unsigned int
#define sys 0
#define key 1
#define delay 2
#define ledflash 3
uchar i,j,k;
void InitProc(void)_task_ sys
{
// InitAt89c51();
os_create_task(key);
os_create_task(delay);
os_create_task(ledflash);
}
void KeyProc(void) _task_ key
{
while(1)
{
os_wait(K_TMO,3,0);
if(i <255)
i++;
else
i=0;
}
}
void DelayProc (void) _task_ delay
{
//os_wait(K_TMO,3,0);
while(1)
{
if(k <2550)
k++;
else
k=0;
}
}
void LedProc(void) _task_ ledflash
{while(1)
{if(j <255)
j++;
else
j=0;
}
}
发表时间:2003年9月25日9:01:07