想把44B0的代码从ADS转到MDK。
第一个问题是编译器的版本不一样,代码可能不兼容。
第二个问题是链接器的object文件链接问题,主要集中在程序的entry定位和代码定位到SDRAM中去。
现在就卡在这个va_list可变参数列这里,MDK的stdarg.h和ADS的stdarg.h不一样。
老是编译出错。
consle.c中的代码如下
#ifdef __SDT_COMPILER
typedef char *__va_list[1];
#else
typedef int *__va_list[1];
#endif
int vsprintf(char * /*s*/, const char * /*format*/, .../*__va_list arg*/);
void printf(char *fmt, ...)
{
va_list ap;
char string[256];
va_start(ap, fmt);
vsprintf(string, fmt, ap);
UartSendString(CONSOLE_UART, string);
va_end(ap);
}
其中的编译出错在va_list和__va_list
算了,未完待续。
花了一整晚