2015-10-14 83 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。