程序就是想打印BIOS中的时间:年
原程序如下:
#include
#include
#include
#include
void biostime()
{
struct tm ahora;
int cYear;
sysOutByte(0x70,0x09);
cYear=sysInByte(0x71);
ahora.tm_year = 100 + (cYear&0x0F) + 10*((cYear&0xF0)>>4);
printf("%d",ahora.tm_year);
}
编译和Build都没有错误,但Download时报如下错误:
Errors while downloading C:/Tornado2.2/target/proj/time/SIMNTgnu/time.out:
_sysOutByte
_sysInByte
有人遇到过这种情况吗?谢谢啦
那要是想在模拟环境下读系统当前时间,不用这两个函数还有其他方法吗?谢谢!
如果你的文件是cpp的,可以改为.c的试试。我也遇到过下载不下去的问题,就是这样解决的。因为vxworks对于c++的支持不是很好!但是不知道你的这个是不是这个问题,可以试试看!
跟C和C++没有关系。
错误的意思是sysOutByte和sysInByte函数在系统中没有找到。
模拟器上不支持bios访问的,sysOutByte和sysInByte这样对实际硬件访问的函数在模拟器上是没有的
问题sysOutByte函数在你的目标机上没有找到,你builder过了,只是编译上没有问题,但是在下载到内存中需要连接sysOutByte,所以就出现以上的错误了.
所以你需要实现该函数.
引用
那要是想在模拟环境下读系统当前时间,不用这两个函数还有其他方法吗?谢谢!
这样就可以读系统时间
unsigned char timebuf[64];
struct tm *timePtr;
time_t clock;
time(&clock);
timePtr = localtime(&clock);
strftime(timebuf, MAXWORDSLEN, "%Y年%m月%d日 %H:%M:%S", timePtr);
printf("%s\n", timebuf);