-
Notifications
You must be signed in to change notification settings - Fork 0
InformationSDK
このソフトウェア開発キットは、主に新世代のAVRファミリ (Microchipブランド統合以降で発表されたもの) について、Arduino IDEでの開発を支援するために構成されている。 AVR-GCC/AVR-LIBC を用いて書かれた C/C++/アセンブラ プログラムを avrdude を用いて対象MCUにアップロードするまでの作業フローを提供する。
警告: Arduino互換APIは提供されない。
[MultiX Zinnia Product : WiKi]へ移動
- Arduino IDE の「環境設定」「追加のボードマネージャーのURL」に以下のリンクを追加
- 「ボードマネージャー」ダイアログパネルを開き、検索欄に "multix" と入力
- 目的のアーキテクチャを選択して「インストール」
megaAVR
/modernAVR
/reduceAVR
- 上記リンクは更新がある程度まとまってから差し替えられるため、公開リポジトリより古い場合がある。 なる早で Arduino IDE に更新を取り込みたい場合は、下記リンクを使用されたい。
main
リポジトリがそのまま主開発ブランチで、ある程度の区切り毎にX.Y.Z
ブランチが記録されるスタイル。
現在活性化中なのは0.2.n
(AVR EA系統対応)
-
avrdude
とAVR-GCC/LIBC
は複数のSDK(アーキテクチャ別) で共有するため更新競合状態になることがある。 競合中のSDKは更新ボタンを押すとそれが残りただ1つになるまで無効化(自動削除)されるので、 その後で改めて無効になったSDKを選んで再インストールする必要がある。
- Windows (32bit/64bit)
- macOS (64bit)
- Linux (主にintel系64bit)
現在この SDK は複数の異なる対象アーキテクチャ向けにリポジトリを分けて提供される。
ボードメニュー/サブメニュー以下の選択はそれぞれを参照のこと。
-
MultiX Zinnia Product SDK [megaAVR] ->HERE
- megaAVR-0 と tinyAVR-0/1/2 系統。(Atmelブランド世代)
-
MultiX Zinnia Product SDK [modernAVR] ->HERE
- AVR DA/DB/DD/EA 系統。(Microchipブランド世代)
-
MultiX Zinnia Product SDK [reduceAVR] ->HERE
- 旧世代AVRのうち TPI方式に対応した系統。(Atmelブランド世代)
-
MultiX Zinnia UPDI4AVR Firmware Builder ->HERE
- UPDI4AVR Firmware をサポートする [megaAVR] のサブセット。
共通基盤の AVR-GCC/AVR-LIBC toolchain は既知の AVR 8bit 系全種に対応している。
makeコマンドを別途用意すれば大抵の事はできるはず。(Windowsでも)
系統 | pin | 2KiB | 4KiB | 8KiB | 16KiB | 32KiB |
---|---|---|---|---|---|---|
tinyAVR-0 | ||||||
8 | ATtiny202 | ATtiny402 | ||||
14 | ATtiny204 | ATtiny404 | ATtiny804 | ATtiny1604 | ||
20 | ATtiny406 | ATtiny806 | ATtiny1606 | |||
24 | ATtiny807 | ATtiny1607 | ||||
tinyAVR-1 | ||||||
8 | ATtiny212 | ATtiny412 | ||||
14 | ATtiny214 | ATtiny414 | ATtiny814 | ATtiny1614 | ||
20 | ATtiny416 | ATtiny816 | ATtiny1616 | ATtiny3216 | ||
24 | ATtiny417 | ATtiny817 | ATtiny1617 | ATtiny3217 | ||
tinyAVR-2 | ||||||
14 | ATtiny424 | ATtiny824 | ATtiny1624 | ATtiny3224 | ||
20 | ATtiny426 | ATtiny826 | ATtiny1626 | ATtiny3226 | ||
24 | ATtiny427 | ATtiny827 | ATtiny1627 | ATtiny3227 |
- Xplained mini ATtiny416 : w/o bootloader
- Curiosity Nano ATtiny1627 : w/o bootloader
太字 は実物確認済
系統 | pin | 8KiB | 16KiB | 32KiB | 48KiB |
---|---|---|---|---|---|
megaAVR-0 | |||||
28 | ATmega808 | ATmega1608 | ATmega3208 | ATmega4808 | |
32 | ATmega808 | ATmega1608 | ATmega3208 | ATmega4808 | |
40 | ATmega4809 | ||||
48 | ATmega809 | ATmega1609 | ATmega3209 | ATmega4809 |
- Arduino UNO WiFi Rev.2 : w/o bootloader
- Arduino Nano Every : w/o bootloader
太字 は実物確認済
系統 | pin | 8KiB | 16KiB | 32KiB | 64KiB | 128KiB |
---|---|---|---|---|---|---|
AVR_DA | ||||||
28 | AVR32DA28 | AVR64DA28 | AVR128DA28 | |||
32 | AVR32DA32 | AVR64DA32 | AVR128DA32 | |||
48 | AVR32DA48 | AVR64DA48 | AVR128DA48 | |||
64 | AVR64DA64 | AVR128DA64 | ||||
AVR_DB | ||||||
28 | AVR32DB28 | AVR64DB28 | AVR128DB28 | |||
32 | AVR32DB32 | AVR64DB32 | AVR128DB32 | |||
48 | AVR32DB48 | AVR64DB48 | AVR128DB48 | |||
64 | AVR64DB64 | AVR128DB64 | ||||
AVR_DD | ||||||
14 | AVR16DD14 | AVR32DD14 | AVR64DD14 | |||
20 | AVR16DD20 | AVR32DD20 | AVR64DD20 | |||
28 | AVR16DD28 | AVR32DD28 | AVR64DD28 | |||
32 | AVR16DD32 | AVR32DD32 | AVR64DD32 | |||
AVR_DU | ||||||
28 | AVR64DU28 | |||||
32 | AVR64DU32 | |||||
AVR_EA | ||||||
28 | AVR16EA28 | AVR32EA28 | AVR64EA28 | |||
32 | AVR16EA32 | AVR32EA32 | AVR64EA32 | |||
48 | AVR16EA48 | AVR32EA48 | AVR64EA48 | |||
AVR_EB | ||||||
14 | AVR16EB14 | AVR32EB14 | ||||
20 | AVR16EB20 | AVR32EB20 | ||||
28 | AVR16EB28 | AVR32EB28 | ||||
32 | AVR16EB32 | AVR32EB32 |
- Curiosity Nano AVR128DB48 : w/o bootloader
- Curiosity Nano AVR64EA48 : w/o bootloader
太字 は実物確認済
斜体 は今後対応予定
- ATtiny4 ATtiny5 ATtiny9 ATtiny10
- ATtiny20 ATtiny40
- ATtiny102 ATtiny104
太字 は実物確認済
斜体 は現在未対応(Variant選択なし)
package_multix_zinnia_index.json
を使用して SDK をセットアップすると、以下のツールチェインも自動的に取得・インストールされる。
インストールされる版はその時点での最新版であるが、Arduino IDE ボードマネージャーでのバージョン更新は以後行われず、その時点の版で固定される。 意識的に最新版へ更新するには、これらを使用する該当 SDK を一旦全てアンインストールしなければならない。
AVR-GCC 本体と AVR-LIBC ライブラリは、Microchip社の一次配布元から提供されたものを使用する。 これに Microchip社提供のデバイスサポートファイル(AT Pack)の一部を統合して、二次配布元から提供される。 配布ライセンスは GPL 2.0 である。
- 一次配布元 : https://www.microchip.com/en-us/tools-resources/develop/microchip-studio/gcc-compilers/
- C/C++ cross compiler
- Assembler and linker
- C-libraries for developing C/C++ programs
- 追加パッケージ配布元 : https://packs.download.microchip.com/
- Microchip ATautomotive Series Device Support
- Microchip ATmega Series Device Support
- Microchip ATtiny Series Device Support
- Microchip AVR-Dx Series Device Support
- Microchip AVR-Ex Series Device Support
- 二次配布元 : https://github.com/askn37/askn37.github.io/tree/main/archives
0.2.10以降
- https://askn37.github.io/archives/7.3.0-avr8-gnu-toolchain-231214-darwin_x86_64.tar.gz
- https://askn37.github.io/archives/7.3.0-avr8-gnu-toolchain-231214-windows_x86_64.tar.gz
- https://askn37.github.io/archives/7.3.0-avr8-gnu-toolchain-231214-linux_x86_64.tar.gz
0.2.8以降
- https://askn37.github.io/archives/7.3.0-avr8-gnu-toolchain-231113-darwin_x86_64.tar.gz
- https://askn37.github.io/archives/7.3.0-avr8-gnu-toolchain-231113-windows_x86_64.tar.gz
- https://askn37.github.io/archives/7.3.0-avr8-gnu-toolchain-231113-linux_x86_64.tar.gz
AVRDUDEは、Arduino社を一次配布元として提供される。 一部 Arduino IDE用の独自修正がされており、GitHub で公開されている版とは一致しない。 配布ライセンスは GPL 2.0 である。
0.2.6以降
- https://downloads.arduino.cc/tools/avrdude_7.2-arduino.1_Windows_32bit.tar.gz
- https://downloads.arduino.cc/tools/avrdude_7.2-arduino.1_macOS_64bit.tar.gz
- https://downloads.arduino.cc/tools/avrdude_7.2-arduino.1_Linux_ARM64.tar.gz
- https://downloads.arduino.cc/tools/avrdude_7.2-arduino.1_Linux_ARMv6.tar.gz
- https://downloads.arduino.cc/tools/avrdude_7.2-arduino.1_Linux_64bit.tar.gz
- https://downloads.arduino.cc/tools/avrdude_7.2-arduino.1_Linux_32bit.tar.gz
-
0.2.10 (23/01/16)
-
7.3.0-avr8-gnu-toolchain-231214
に更新。- AVR64DU28/32 に暫定対応。
- 動作確認済に AVR64EA32、 AVR64EA48、 AVR16EB32、ATtiny1627, ATtiny416 を追加。
-
Core Modules の
<api/UarfUART.h>
を微修正。AVR_EVSYS=201
修正。 -
Core Libraries の修正/追加と応用記述の追加。
<ReadUART.h>
<UrowNVM.h>
-
<FlashNVM.h>
(BOOTROW 対応を追加)
- Bootloader を FWV=3.71 に更新。
-
-
0.2.9 (23/12/11)
- megaVAR/modernAVRについて、同梱ブートローダー全体を独自のArduino上位互換動作コードに変更。(
Optiboot
由来ソースコードを除去) - 同、CRCSCAN機能用CRC16/32検査値付与。
-
<api/btools.h>
にcrc16_ccitt_false
関数を追加。
- megaVAR/modernAVRについて、同梱ブートローダー全体を独自のArduino上位互換動作コードに変更。(
-
0.2.8 (23/11/24)
-
7.3.0-avr8-gnu-toolchain-231113
に更新。 - UPDI4AVR Firmware を
UPDI4AVR_FW634B
に変更。-
AVRDUDE 7.3
仕様に準拠。 - HV制御は添付の
avrdude.conf.UPDI4AVR
を使用した場合に有効。
-
- UPDI4AVR Software を
UPDI4AVR_FW606A
に変更。-
FW634B
からのバックポートにより、HV制御以外の機能性は概ね互換。
-
-
-
0.2.7 (23/10/18)
-
AVR16EBxx に実験的対応
- bootloader の正常動作は未確認
-
dryrun
を書込器選択に追加。 -
avrdude.conf
参照ルールの変更。-
arduino
/UPDI4VAR
/TPI4AVR
/dryrun
を書込器に指定した場合のみ、ローカルの特別な設定ファイルを参照する。それ以外は規定の(tools/avrdude/etc内の)avrdude.conf
を参照する。 - この変更により、AVR_EA系統のようにまだ他の書込器で未対応/未検証のパーツ設定が分離された。
-
-
AVR16EBxx に実験的対応
-
0.2.6 (23/10/16)
-
7.2-arduino.1
に更新。 -
7.3.0-avr8-gnu-toolchain-231004
に更新。-
Atmel.ATautomotive_DFP.2.0.214.atpack (2022-03-03)
追加。ATtiny416auto
対応。 -
Atmel.AVR-Ex_DFP.2.7.184 (2023-10-02)
対応。
-
-
-
0.2.5 (23/10/09)
- AVR_EB系統の対応準備
-
avrdude.conf.updi
記述を avrdude 7.1 準拠に改正
-
0.2.4 (23/09/09)
-
7.3.0-avr8-gnu-toolchain-230831
に更新。-
Atmel.ATmega_DFP.2.1.506 (2023-08-14)
対応。 -
Atmel.AVR-Ex_DFP.2.6.181 (2023-08-24)
対応。
-
-
programmers.txt
を改正。-
SerialUPDI
の-xrtsdtr=High
オプションを有効化。
-
-
-
0.2.3 (23/07/09)
-
7.3.0-avr8-gnu-toolchain-230628
に更新。-
Atmel.AVR-Ex_DFP.2.5.176 (2023-06-26)
対応。 -
<avr/eeprom.h>
がAVR_EA
でも正常動作するよう改善。
-
- AVR16EBxx 対応ヘッダが追加されたが、バリアントはまだサポートされていない。
-
-
0.2.2 (23/05/23)
-
7.1-arduino.1
に更新。
-
-
0.2.1 (23/05/08)
-
7.3.0-avr8-gnu-toolchain-230418
に更新。-
Atmel.AVR-Ex_DFP.2.4.168 (2023-04-18)
対応。 -
注意 : この版では未だ
<avr/eeprom.h>
がAVR_EA
では正常動作しない。
-
- AVR16EAxx、AVR32EAxx をバリアント選択に追加。
-
-
0.2.0 (23/04/08)
-
modernAVR
でAVR_EA
対応。- 現時点の
AVR-LIBC
でビルド可能な AVR64EA28/32/48 をバリアント選択に追加。 - AVR64EA32 を動作検証済表に追加。
- 専用ブートローダー
optiboot_ex1
を追加。 -
<api/FlashNVM.h>
にAVR_EA
対応を追加。 -
注意 : 現時点の
AVR-LIBC
では<avr/eeprom.h>
がAVR_EA
で正常動作しない。
- 現時点の
-
-
0.1.4 (23/04/01)
-
7.3.0-avr8-gnu-toolchain-230322
に更新。-
Atmel.AVR-Ex_DFP.2.3.163 (2023-03-22)
対応。
-
-
avrdude.conf.updi
を改正。-
UPDI4AVR
の既定速度を9216000
bpsに変更。(多くのUSB-USART変換で扱える最大の安全速度) -
AVR_DA/DB_DD
のEEPROM page-size
を16に訂正。
-
-
-
0.1.3 (23/03/15)
-
avrdude.conf.updi
を改正。-
modernAVR
/megaAVR
を共通化。 - 書込器使用時の
EEPROM
書込異常対応。(page-size
を8に統一) -
fuses
/lock
のファイル指定書込異常対応。(page-size
を1に統一)
-
-
programmers.txt
を改正。-
SerialUPDI
の非公式な選択肢を削除。
-
-
-
0.1.2 (23/02/25)
-
TaskChanger
の暗黙的yield
グローバルフック書換を廃止。 -
nop
とwdt_reset
マクロを追加。 - 動作確認済品種に
ATtiny1626
を追加。 -
megaAVR
ボードマネージャの一部の不確実なSerial
マクロを修正。
-
- [MultiX Zinnia Product : WiKi]
- [AVR.JP](日本語訳)
- [AVR-LIBC](日本語訳)
各構成要素はそれぞれ異なる配布ライセンスに属する。条件はそれぞれの規約に従う。
- BSD License
- avr-libc
- GNU General Public License v2.0
- avr-gcc
- avrdude
- MIT License
- other original document and code
Twitter(X): @askn37
BlueSky Social: @multix.jp
GitHub: https://github.com/askn37/
Product: https://askn37.github.io/
Copyright (c) 2022,2023 askn (K.Sato) multix.jp
Released under the MIT license
https://opensource.org/licenses/mit-license.php
https://www.oshwa.org/
multix.jp/てくにかるむ(休眠中)
Multix Zinnia Product SDK [*AVR]
AVR.JP(日本語訳)
AVR-LIBC(日本語訳)