Skip to content

Commit

Permalink
adding samd core files
Browse files Browse the repository at this point in the history
  • Loading branch information
boseji committed Jun 2, 2020
1 parent 1a80180 commit 24645b3
Show file tree
Hide file tree
Showing 650 changed files with 227,768 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
package_avdweb_nl_pre_release_index.json
*.bz2
3 changes: 3 additions & 0 deletions avdweb_nl_samd/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
*.bz2

bootloaders/*/build/
227 changes: 227 additions & 0 deletions avdweb_nl_samd/CHANGELOG
Original file line number Diff line number Diff line change
@@ -0,0 +1,227 @@
SAMD CORE ?.?.?? ????.??.??

SAMD CORE 1.6.21 2019.04.01

* MKR boards: changed I2C to sercom2, SPI1 + Serial2 to sercom4
* Improved accuracy of delay() function. Thanks @BenF
* MKR 1500: Changed SARA module to be powered off on boot

SAMD CORE 1.6.20 2018.11.28

* Replaced boolean type with bool in examples. Thanks @per1234
* Added c++ linker command to allow to include libstdc++ when linking. Thanks @helmut64
* CPX driver fixes. Thanks @dhalbert
* I2S: Changed library to use 8 MHz oscillator source if 48MHz divider does not fit in 8 bits
* UART: Added frame error handling
* USB: Fixed memory leak on reconnects
* SDU: Added support for Arduino M0. Thanks @jandrassy
* Added arduinoOTA upload keys for Arduino M0. Thanks @jandrassy
* USB: Fixed USB Host failures and fixed memory overwrite in USBHost. Thanks @gdsports
* USB: Added method to return USB error code. Thanks @MarkFischer
* CDC: Clear line state on end()
* USB: Added USB device end() method
* Removed requirement that the DAC is on A0. Thanks @GabrielNotman
* Added alternate ports 44, 45 to make the SWCLK and SWDIO pins available on the Zero. Thanks @helmut64
* Added defines for MKR pin layout
* Fixed freeze in tone()
* Added MKR NB 1500 variant and bootloader
* Increased the default serial buffer size to 256

SAMD CORE 1.6.19 2018.07.11

* Fixed bootloader tools for .org boards
* M0: Updated pin definitions for D6, D7 and D13 to match Zero
* SPI: Fixed interrupt mask to block. Thanks @ggajoch
* Added MKR WiFi 1010 variant and bootloader
* Updated Windows Drivers to 1.4.0 and re-signed Adafruit_Circuit_Playground_Express.inf

SAMD CORE 1.6.18 2018.03.05

* Wire: Added support for general call (broadcast)
* SPI: Added SPI.notUsingInterrupt(...) API
* Fixed build errors if variant disabled USB
* Wire: TX and RX buffers are now 256 bytes (previously was 64 bytes)
* Added samd21e sercom compatibility. Thanks @mitchellpontague
* Fixed lock ups when outputting to UART during ISR
* Wire: correct I2C frequency calculations, and allow variant to overide default pull up resistor rise time
* USB: Fixed build errors when CDC_ENABLED was not set. Thanks @gdsports

SAMD CORE 1.6.17 2017.11.29

* More accurate approximation for multiplication factor of PLL to make 48Mhz. Thanks @joverbee
* Fix changing trigger mode (RISING/FALLING/...) in attachInterrupt(..) during runtime. Thanks @joverbee
* Improved ISR response time. Thanks @joverbee
* USB power current can now be overridden in the variant. Thanks @awatterott
* UART's now support optional RTS and CTS pins defined in the variant.
* Added support for MKR GSM 1400 and MKR WAN 1300

SAMD CORE 1.6.16 2017.08.23

* Is now possible to use PWM on D7 (though it can't be used with PWM on D12 at the same time). Thanks @Adminius
* PWMs now can perform real 16-bit resolution if analogWriteResolution(16) is set. Thanks @Adminius
* USB CDC: fixed issue of available() getting stuck when receiving ZLP's
* Serial (UART) tx is now buffered.
* Improved CRYSTALLESS stability. Thanks @tannewt
* Some fixes to Adafruit Circuit Playground Express variant. Thanks @ladyada
* Updated Stream and Print class
* Native USB now supports USB Serial Number
* Fixed pgm_read_ptr compatibility macro. Thanks @nkrkv

SAMD CORE 1.6.15 2017.04.27

* Added missing Windows driver for MKRFox1200
* Added SDU support for MKRFox1200

SAMD CORE 1.6.14 2017.04.04

* Fixed platform definition for openocd
* Added bootloader definitions for MKRFox1200
* Added lowpower function on USB subsystem

SAMD CORE 1.6.13 2017.03.31

* Added SDU (SD card Updater) library.
* Fixed 8MHz clock being generated incorrectly. Thanks @keestux

SAMD CORE 1.6.12 2017.02.07

* Fixed type conflict of utoa function. Thanks @kbumsik
* Fixed pinMode(pin, OUTPUT) not working after analogRead(pin)
* Reenabled support for Tian
* Fixed signature for Adafruit Circuit Playground Express board
* Added CMSIS headers for SAML21 chip series. Thanks @aethaniel

SAMD CORE 1.6.11 2016.12.23

* Temporarily disabled support for Arduino Tian until an upload issue is fixed

SAMD CORE 1.6.10 2016.12.23

* Added .org boards
* Fixed MKRZero `build.board` property
* linker: .data section is now aligned to 16 bytes address
* Added support for CRYSTALLESS configurations (thanks @ladyada)
* Added Circuits Playground board
* Added method to automatically retrieve sketch start via linker variable
(see https://github.com/arduino/ArduinoCore-samd/pull/185)
* Fixed USBDevice.epBank1EnableTransferComplete method
* Adapted bootloader source code to CMSIS 4.5

SAMD CORE 1.6.9 2016.12.12

* MKR1000: Enabled PWM on pin 11, it is shared with pin A4
* SPI: Optimized SPI.transfer(...)
* Added linker flags for the ARM Math library
* Added new I2S library
* Bootloader: Check sketch vectors before waiting for double tap
* Upgraded CMSIS version to 4.5.0, and use new CMSIS-Atmel package
* Added Arduino MKRZero board.

SAMD CORE 1.6.8 2016.10.12

* Fixed regression on analogWrite. Thanks @bose-mdellisanti!
* Fixed regression on SerialUSB.available()
* C++ global constructors (if any) are now run after hardware initalization.

SAMD CORE 1.6.7 2016.09.28

* Fixed Serial.flush() blocking before any writes. Thanks @hangmoh
* Added snprintf_P to avr/pgmspace.h stub. Thanks @jantje
* Another small fix to String iterators. Thanks @Ivan-Perez @Chris--A
* Fixes SerialUSB.write(...) returning 0 instead of byte written
* Added Uart::availableForWrite()
* Added defines for RAMSTART, RAMSIZE, RAMEND
* Fixed writing LOW to a digital input pin blocking subsequent digitalRead attempts
* Fixed digitalWrite() unnecessarily activating the pull-up resistor
* Wire: Slave writes now use TX buffer
* Added getTimeout() method to Stream.
* Fixed glitch in PWM generation that may happen when calling analogWrite()
* PWM frequency is now 732.4Hz (before it was 187500.0Hz)
* Fixed PWM/analogwrite() not working on pin 13 on the Zero
* Improved reliability of SerialUSB under heavy load (this should solve
all issues with MKR1000/WiFi101 firmware updater on MacOSX)
* Improved SerialUSB.read() performance
* Added String::toDouble()
* Bootloader: LED now pulses and USB TX/RX blink on transfer (like Leonardo)
* Bootloader: enabled USB string descriptors

SAMD CORE 1.6.6 2016.05.19

* Fixed digitalPinToInterrupt() macro, now it works as documented.
* Added analogInputToDigitalPin macro
* Fixed NUM_DIGITAL_PINS for Zero Board.
* On-board RX-TX LEDs now blinks when there is activity on the native USB port
* Fixed platform.txt, the core now compiles again with Arduino IDE <=1.6.5. Thanks @per1234
* Fixed Wire.write(0x00) "ambiguos method" error
* String class now supports iterators. Thanks @Chris--A
* Remove enabling bootloader protection when burning bootloader. This enables WDT, so sketches do not work.
* Added remote upload for Yun-Shield

SAMD CORE 1.6.5 2016.04.02

* Added Arduino/Genuino MKR1000 board
* Set NVMCTRL.MANW bit to 1 (default is 0). This prevents accidental writes on program memory.
* Bootloader: Fixed wrong UART speed (regression)
* Fixed incorrect return value from Wire.available() when the receive buffer is not fully read.
* Added DAC0 definition in Arduino/Genuino Zero variant file.
* Enabled bootloader protection after "Burn bootloader".

SAMD CORE 1.6.4 2016.02.19

* Fixed Wire address setup when running as slave.
* Fixed String constructor when using floating point numbers.
* USBHost: fixed blocking USBHost.Task(). Thanks @bbx10
* USBHost: fixed some ASCII Control codes in keyboard controller. Thanks @bbx10
* USBHost: ported some minor fix from upstream UHS2. Thanks @bbx10
* USBHost: fixed wrong library initialization. Thanks @bbx10 @ladyada
* better interrupt handling in Serial::accept()

SAMD CORE 1.6.3 2016.02.15

* Added drivers for Arduino/Genuino MKR1000 board
* Fixed Wire master repeated start behaviour
* Added SerialUSB methods: readBreak(), baud(), stopbits(), paritytype(), numbits(), dtr(), rts()
* Added SPI.transfer16(..) method
* Bugfix: added missing Serial.begin(baud, config) method. Thanks @tuxedo0801
* Fixed Serial baudrate calculations for 1200bps. Thanks @TomKeddie
* Fixed Serial.flush() that now waits until the last bit has been sent. Thanks @TomKeddie
* Fixed Serial configuration for data-bit. Thanks @TomKeddie
* Bootloader: 32Khz external oscillator is now used, improves USB clock. Thanks @aethaniel
* Bootloader: Clean up of makefiles and file organization. Thanks @aethaniel
* Added PWM capability to pins A1/A2 of Arduino Zero.
* variant.h/cpp: PWM capability is now determined by PIN_ATTR_PWM combined with
PIN_ATTR_TIMER or PIN_ATTR_TIMER_ALT for timer selection.
* Small fix to USBHost example "USB_desc.ino". Thanks @bbx10
* USBHost: USB-Keyboard right shift key was ignored. Thanks @bbx10
* Wire library now support multiple instances in variant. Thanks @spiderkeys
* Ported some SerialUSB API (readBreak(), baud(), stopbits(), paritytype(), numbits(), dtr(), rts())

SAMD CORE 1.6.2 2015.11.03

* Fixed bug in delay calculations
* Fixed deadlock conditions in Wire. Thanks Erin Tomson
* Print not aborting on write() failure. Thanks @stickbreaker
* SPI can now be configured in variants. Thanks @aethaniel
* Implemented Wire.end
* Fixed external interrupt for pin 8 and 9
* Implemented Wire.setClock. Thanks @PaoloP74
* Wire: allow scanning bus via beginTransmission-endTransmission
* USB Device: big refactoring and bug fix
* USB Device: added PluggableUSB interface
* updated bossac to version 1.6.1-arduino

SAMD CORE 1.6.1 2015.07.21

* Added missing ATN pin definition
* Added missing bootloader key/value pair in boards.txt (this allows to burn bootloader with Sam-ICE too)
* Fixed min/max functions
* Fixed hooks for Cortex-M RTOS
* Fixed acknowledge of UART errors
* Enabled C11/C++11
* Fixed initialization in USB Device
* Updated bossac to version 1.6-arduino

SAMD CORE 1.6.0 2015.06.15

* First public release.

71 changes: 71 additions & 0 deletions avdweb_nl_samd/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# Arduino Core for SAMD21 CPU

This repository contains the source code and configuration files of the Arduino Core
for Atmel's SAMD21 processor (used on the Arduino/Genuino Zero, MKR1000 and MKRZero boards).

## Installation on Arduino IDE

This core is available as a package in the Arduino IDE cores manager.
Just open the "Boards Manager" and install the package called:

"Arduino SAMD Boards (32-bit ARM Cortex-M0+)"

## Support

There is a dedicated section of the Arduino Forum for general discussion and project assistance:

http://forum.arduino.cc/index.php?board=98.0

## Bugs or Issues

If you find a bug you can submit an issue here on github:

https://github.com/arduino/ArduinoCore-samd/issues

Before posting a new issue, please check if the same problem has been already reported by someone else
to avoid duplicates.

## Contributions

Contributions are always welcome. The preferred way to receive code cotribution is by submitting a
Pull Request on github.

## Hourly builds

This repository is under a Continuous Integration system that every hour checks if there are updates and
builds a release for testing (the so called "Hourly builds").

The hourly builds are available through Boards Manager. If you want to install them:
1. Open the **Preferences** of the Arduino IDE.
2. Add this URL `http://downloads.arduino.cc/Hourly/samd/package_samd-hourly-build_index.json` in the **Additional Boards Manager URLs** field, and click OK.
3. Open the **Boards Manager** (menu Tools->Board->Board Manager...)
4. Install **Arduino SAMD core - Hourly build**
5. Select one of the boards under **SAMD Hourly build XX** in Tools->Board menu
6. Compile/Upload as usual

If you already installed an hourly build and you want to update it with the latest:
1. Open the **Boards Manager** (menu Tools->Board->Board Manager...)
2. Remove **Arduino SAMD core - Hourly build**
3. Install again **Arduino SAMD core - Hourly build**, the Board Manager will download the latest build replacing the old one.

## License and credits

This core has been developed by Arduino LLC in collaboration with Atmel.

```
Copyright (c) 2015 Arduino LLC. All right reserved.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
```
13 changes: 13 additions & 0 deletions avdweb_nl_samd/VARIANT_COMPLIANCE_CHANGELOG
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
SAMD CORE 1.6.10

* The linker script must define `__text_start__` symbol at the beginning of .text section.
This symbol is used to automatically determine the bootloader size.

SAMD CORE 1.6.6

* `digitalPinToInterrupt` #define moved to Arduino.h, variant.h must no longer define it.

SAMD CORE 1.6.3

* Timer for pin PWM selected based on value of `PIN_ATTR_TIMER_ALT` or `PIN_ATTR_TIMER`.
Prior to this "pin type" (ulPinType) was used.
54 changes: 54 additions & 0 deletions avdweb_nl_samd/boards.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Copyright (c) 2014-2017 Arduino LLC. All right reserved.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

menu.crystalsel=Crystal Selection

# SAM 15x15 (only native USB port)
# --------------------------------------
sam15x15.name=SAMD21
sam15x15.vid.0=0x2341
sam15x15.pid.0=0x804d
sam15x15.vid.1=0x2341
sam15x15.pid.1=0x004d
sam15x15.vid.2=0x2341
sam15x15.pid.2=0x824d
sam15x15.vid.3=0x2341
sam15x15.pid.3=0x024d

sam15x15.upload.tool=bossac
sam15x15.upload.protocol=sam-ba
sam15x15.upload.maximum_size=262144
sam15x15.upload.use_1200bps_touch=true
sam15x15.upload.wait_for_upload_port=true
sam15x15.upload.native_usb=true
sam15x15.build.mcu=cortex-m0plus
sam15x15.build.f_cpu=48000000L
sam15x15.build.usb_product="Arduino Zero"
sam15x15.build.usb_manufacturer="Arduino LLC"
sam15x15.build.board=SAMD_ZERO
sam15x15.build.core=arduino
sam15x15.menu.crystalsel.withcrystal=With 32KHz Clock Crystal
sam15x15.menu.crystalsel.withoutcrystal=Without Crystal
sam15x15.menu.crystalsel.withoutcrystal.build.extra_flags=-DCRYSTALLESS -D__SAMD21G18A__ {build.usb_flags}
sam15x15.menu.crystalsel.withcrystal.build.extra_flags=-D__SAMD21G18A__ {build.usb_flags}
sam15x15.build.ldscript=linker_scripts/gcc/flash_with_bootloader.ld
sam15x15.build.openocdscript=openocd_scripts/arduino_zero.cfg
sam15x15.build.variant=sam15x15_d21
sam15x15.build.variant_system_lib=
sam15x15.build.vid=0x2341
sam15x15.build.pid=0x804d
sam15x15.bootloader.tool=openocd
sam15x15.bootloader.file=zero/samd21_sam_ba.bin
Binary file not shown.
6 changes: 6 additions & 0 deletions avdweb_nl_samd/bootloaders/mkr1000/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@

The source code of the bootloader is in the folder:

bootloader/zero/


Binary file not shown.
Loading

0 comments on commit 24645b3

Please sign in to comment.