Код: Выделить всё
- printf() c-version (no c++)
- no Arduino library
- arm-gcc toolchain & std library
Код: Выделить всё
_FDEV_SETUP_WRITE was not declared in this scope
в инете нашел единственный вариант для SAM
sam printf
Simple print functions for Atmel SAM microcontrollers using DMA
в описании указан "наш чип" как протестированый
собирается без проблем (кроме варнингов, возможно следует присмотреться?!, undefined reference - это не хухры мурхры)
печать не работает (пробовал по разному)
варнинги (пути к тулчейну усечены, для удобства восприятия)
Спойлер
Код: Выделить всё
...
dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld: dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc.a(libc_a-fstatr.o): in function `_fstat_r':
/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/reent/fstatr.c:55: warning: undefined reference to `_fstat'
dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld: dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc.a(libc_a-isattyr.o): in function `_isatty_r':
/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/reent/isattyr.c:52: warning: undefined reference to `_isatty'
dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld: dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc.a(libc_a-sbrkr.o): in function `_sbrk_r':
/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/reent/sbrkr.c:51: warning: undefined reference to `_sbrk'
dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld: dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc.a(libc_a-writer.o): in function `_write_r':
/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/reent/writer.c:49: warning: undefined reference to `_write'
dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld: dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc.a(libc_a-closer.o): in function `_close_r':
/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/reent/closer.c:47: warning: undefined reference to `_close'
dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld: dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc.a(libc_a-lseekr.o): in function `_lseek_r':
/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/reent/lseekr.c:49: warning: undefined reference to `_lseek'
dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/bin/ld: dev/bin/arm/11.3/bin/../lib/gcc/arm-none-eabi/11.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libc.a(libc_a-readr.o): in function `_read_r':
/data/jenkins/workspace/GNU-toolchain/arm-11/src/newlib-cygwin/newlib/libc/reent/readr.c:49: warning: undefined reference to `_read'
...
sam3 Low Level prg-ing
Low level" programming of the Arduino DUE SAM3 controller with a custom IDE
в нем используются arduino-sam библиотеки
Код: Выделить всё
~/.arduino15/packages/arduino/hardware/sam/1.6.12
Спойлер
Код: Выделить всё
#///////////////////////////////////////////////////////////////////////////////
# arduino toolchain version's
#///////////////////////////////////////////////////////////////////////////////
ARD_SAM_VER = 1.6.12
ARD_ARM_VER = 4.8.3-2014q1
ARD_BOS_VER = 1.6.1
#///////////////////////////////////////////////////////////////////////////////
# arm toolchain version -> ~/dev.bin.arm/
#///////////////////////////////////////////////////////////////////////////////
#ARM_VER_DEF = 5.2.1
#ARM_VER_DEF = 11.2
ARM_VER_DEF = 11.3
#ARM_VER_DEF = 12.2
ARM_VER ?= $(ARM_VER_DEF)
#TOOL_CHAIN_DEF = ARDUINO
#TOOL_CHAIN_DEF = ARM_DEF
TOOL_CHAIN_DEF = ARM
TOOL_CHAIN ?= $(TOOL_CHAIN_DEF)
#///////////////////////////////////////////////////////////////////////////////
# post
#///////////////////////////////////////////////////////////////////////////////
ARD = $(HOME)/.arduino15/packages/arduino
SAM = $(ARD)/hardware/sam/$(ARD_SAM_VER)
SAM_SYS = $(SAM)/system
...
INC += -I$(PRJ_DIR)/inc
INC += -I$(PRJ_DIR)/lib
INC += -I$(PRJ_DIR)/src
INC += -I$(SAM_SYS)/
INC += -I$(SAM_SYS)/libsam
INC += -I$(SAM_SYS)/libsam/include
INC += -I$(SAM_SYS)/CMSIS/CMSIS/Include
INC += -I$(SAM_SYS)/CMSIS/Device/ATMEL
#
INC += -I$(SAM)/cores/arduino
...
#///////////////////////////////////////////////////////////////////////////////
# Toolchain: ARM | Arduino & Include
#///////////////////////////////////////////////////////////////////////////////
ifeq ($(TOOL_CHAIN),ARM_DEF)
_P = /usr/bin/arm-none-eabi-
else
ifeq ($(TOOL_CHAIN),ARM)
_P = $(HOME)/dev.bin.arm/$(ARM_VER)/bin/arm-none-eabi-
else
_P = $(ARD)/tools/arm-none-eabi-gcc/$(ARD_ARM_VER)/bin/arm-none-eabi-
endif
endif
#BOSSA = $(ARD)/tools/bossac/$(ARD_BOS_VER)-arduino/bossac
BOSSA = bossac
AR = $(_P)ar
CC = $(_P)gcc
CXX = $(_P)g++
AS = $(_P)as
NM = $(_P)nm
LKELF = $(_P)g++
OBJCP = $(_P)objcopy
SIZE = $(_P)size
STRIP = $(_P)strip
Код: Выделить всё
arm-none-eabi
- 11.2
- 11.3
- 12.2
- 5.2.1
Код: Выделить всё
~/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-XXX
Код: Выделить всё
TOOL_CHAIN_DEF = ARDUINO
TOOL_CHAIN_DEF = ARM_DEF
TOOL_CHAIN_DEF = ARM
понимаю, что можно взяться разгрызать
- реализацию класса Arduino-Due/Serial.xxx
- реализацию стандартной печати в asf-library
и то и другое, понятное дело, работает, но хотелось-бы пока разобраться с данной библиотекой
как обычно, принимаются любые идеи/ссылки/советы по делу, помидоры в разумных количествах, можно просто побалагуить... но, желательно в тему :о)
!!! ADD !!!
ТЕСТИРОВАЛ ЭТУ И МНОГИЕ ДРУГИЕ ПОДОБНЫЕ БИБИЛИОТЕКИ, НИ ОДНА НЕ РАБОТАЕТ
УТОЧНЯЮ - КОНТРОЛЛЕР SAM3X8E
спасибо
#tag: avr atmel arduino due printf c arm-gcc asf


