Skip to content
Thibaut VIARD edited this page Feb 1, 2016 · 16 revisions

Welcome to the ExperimentalCore-sam wiki!

Objectives

This Experimental port intends to support some AT91SAM devices sharing the same peripheral set:

  • ATSAM4S
  • ATSAM4E
  • ATSAMG55
  • ATSAM3X or ATSAM3A

The goal is to obtain a perfect replacement solution for current SAM hardware folder present in Arduino deliveries. This means there shall not be any regression in the Arduino Due support.

Boards and devices

List of boards to be supported (as of 2015/07/01)

  • Arduino Due (ATSAM3X8E)
  • Atmel SAM4S Xplained (ATSAM4S16C)
  • Atmel SAM4S Xplained Pro (ATSAM4SD32C)
  • Atmel SAM4E Xplained Pro (ATSAM4E16E)
  • Atmel SAMG55 Xplained Pro (ATSAMG55J19)
  • Poppy Core (ATSAMG55G19) (added 2015/08)

As all of these devices don't share the same internal bootloader, a common one will be put in place: OpenBLT

Task list

A completed checkbox means: code implemented, validated on all boards and published.

Setup Atmel SAM4S Xplained

  • Device startup code
  • Linker scripts (variant_without_bootloader.ld and variant_with_bootloader.ld)
  • OpenOCD script (variant.cfg)
  • GDB script (variant.gdb)
  • Variant pinmap
  • Variant init code

Setup Atmel SAM4S Xplained Pro

  • Device startup code
  • Linker scripts (variant_without_bootloader.ld and variant_with_bootloader.ld)
  • OpenOCD script (variant.cfg)
  • GDB script (variant.gdb)
  • Variant pinmap
  • Variant init code

Setup Atmel SAM4E Xplained Pro

  • Device startup code
  • Linker scripts (variant_without_bootloader.ld and variant_with_bootloader.ld)
  • OpenOCD script (variant.cfg)
  • GDB script (variant.gdb)
  • Variant pinmap
  • Variant init code

Setup Arduino Due

  • Device startup code
  • Linker scripts (variant_without_bootloader.ld and variant_with_bootloader.ld)
  • OpenOCD script (variant.cfg)
  • GDB script (variant.gdb)
  • Variant pinmap
  • Variant init code

Setup Atmel SAMG55 Xplained Pro

  • Device startup code
  • Linker scripts (variant_without_bootloader.ld and variant_with_bootloader.ld)
  • OpenOCD script (variant.cfg)
  • GDB script (variant.gdb)
  • Variant pinmap
  • Variant init code

Setup Poppy Core

  • Device startup code
  • Linker scripts (variant_without_bootloader.ld and variant_with_bootloader.ld)
  • OpenOCD script (variant.cfg)
  • GDB script (variant.gdb)
  • Variant pinmap
  • Variant init code

Build

  • Add all boards to boards.txt

Improvements

  • Boot using only Cortex-M vectors
  • Put vectors in RAM
  • Add simple dynamic vector API

Core API

  • Digital API
  • Interrupt API
  • Analog API
  • Pulse API
  • Tone API
  • Delay API
  • Reset API
  • Serial API
  • SPI API
  • I²C API

Libraries

  • Servo
  • USB device stack
  • USB Host stack

Bootloader

  • add common SAM drivers (Clocks, GPIO, Serial, USB device)
  • add simple USB device stack. Must work on Win, MacOS, Linux and support USB SS hosts
  • add Serial port for Arduino Due (SAM3X8E)
  • add Serial port for Atmel SAM4S-Xplained (SAM4S16C)
  • add Serial port for Atmel SAM4S-Xplained Pro (SAM4SD32C)
  • add Serial port for Atmel SAMG55-Xplained Pro (SAMG55J19)
  • add Serial port for Atmel SAM4E-Xplained Pro (SAM4E16E)