由于Embedded Studio还没有支持雅特力的支持包,因此通过MDK的工程无法直接导入到embedded studio中。需要自己新建一个工程。
新建的时候是可以选择雅特力的单片机的。
工程新建好后,默认会包含3个文件。如下图所示。其中两个汇编文件的作用是之前MDK的工程中startup.s的作用。
注意点一、只是由于embedded studio,只知道雅特力单片机的flash和RAM信息,并不知道具体的外设中断点位置,因此需要自己将中断点位置,从原MDK的startup文件中复制过来,复制到Cortex_M_Startup.s文件中。否则,程序一运动到中断就会报错。
如下图所示。
注意点二、由于embedded studio 和mdk的编译器不同,之前如果程序中有对printf函数重定向到串口的话就需要修改一下调试信息的输出方式。
建议程序中不要直接用printf输出调试信息,可以用宏定义的方式,这样方便后期修改为其他函数。
以下是一个用串口输出调试信息的函数例子。
#ifdef SESV8
char buf[256];
void uart0_printf(const char *fmt, ...)
{
char *p; va_list ap;
FILE *f;
va_start(ap, fmt);
vsnprintf(buf, sizeof(buf), fmt, ap);
for (p = buf; *p; ++p)
{
while(usart_flag_get(PRINT_UART, USART_TDBE_FLAG) == RESET);
usart_data_transmit(PRINT_UART, *p);
}
va_end(ap);
}
#endif