2015-10-14 63 views
0

我是Atmel Studio的新手。我用ATSAMV71Q21设备创建了新的GCC C Execute项目。在main.c文件中添加了printf,然后运行build并得到了一堆“(_write,_fsta等)未定义的错误。我尝试了Atmel”入门“的例子,它工作的很好,我该如何解决这个问题?代码和错误消息。感谢您的帮助。无法使用printf命令构建atmel studio 6.2项目

#include "sam.h" 
#include <stdio.h> 
#include <stdbool.h> 

int main(void) 
{ 
    /* Initialize the SAM system */ 
    SystemInit(); 

    while (1) 
    { 
     printf("abc"); 
     //TODO:: Please write your application code 
    } 
} 

d:/atmel/atmel toolchain/arm gcc/native/4.8.1443/arm-gnu-toolchain/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m\libc.a(lib_a-sbrkr.o): In function '_sbrk_r': D:\Atmel\samv71_softpack_1.4_for_astudio_6_2\studio\Atmel\samv71_Xplained_Ultra\examples\test\test\Debug\sbrkr.c(1,1): error: undefined reference to '_sbrk'

回答

0

如果你只是想解决这个链接错误,那么你可以通过转到项目 - > ASF向导和滚动添加标准串行I/O到标准串行I/O,然后单击添加。

虽然这将解决该连接错误,它可能不会做你期待什么。如果你想打印什么?是否有一个共同的显示连接到您的嵌入式设备?然后,您需要为该显示器及其关联的api使用特定的驱动程序。

如果你只是使用用于调试的目的,同时连接到您的电脑的printf(),那么我建议使用爱特梅尔调试遵循代码执行,检查变量等

1

我还不知道如何做你想要一个最基本的C-程序(#include "sam.h")什么,但我可以帮你,如果你愿意使用ASF API。

您必须先生成一个C-ASF项目。然后使用ASF向导将标准串行I/O添加到项目中。配置正确,并且printf,puts,...将打印到连接到控制器的终端程序。

#include <asf.h> 
#include "stdio_serial.h" 

static void configure_console(void) 
{ 
    const usart_serial_options_t uart_serial_options = { 
     .baudrate = CONF_UART_BAUDRATE, 
     .paritytype = CONF_UART_PARIT 
    }; 

    /* Configure console UART. */ 
    sysclk_enable_peripheral_clock(CONSOLE_UART_ID); 
    stdio_serial_init(CONF_UART, &uart_serial_options); 
} 

int main(void) 
{ 
    /* Insert system clock initialization code here (sysclk_init()). */ 
    sysclk_init(); 
    board_init(); 

    configure_console(); 

    while (1) { 
     printf("abc"); 
    } 

    return 0; 
}  

这适用于具有SAM3X8E控制器的Arduino Due。

相关问题