arm-none-eabi-gccとボードのライブラリを準備する。
必要なもの(GCC)
- Teensy 4.x本体。
- ARMコンパイラ。
- GNU Tools for ARM Embedded Processorsからgccをダウンロードし展開。
- https://developer.arm.com/open-source/gnu-toolchain
- GNU Tools for ARM Embedded Processorsからgccをダウンロードし展開。
- Teensyの場合はarm_cortexM7lfsp_math.aをダウンロードし、arm-none-eabi/libにコピー。
- それぞれのボードのライブラリ。Teensyの場合はここ。
- makeで開発できるテンプレートを使用すると楽。ここからダウンロード。
- tools以下にダウンロードしたgccを置く。
- src以下にmain.cppを書く。サンプルは以下の通り。
- makeで開発できるテンプレートを使用すると楽。ここからダウンロード。
// ©2017 Yuichiro Nakada
#include "WProgram.h"
void setup()
{
pinMode(13, OUTPUT);
analogWriteResolution(8); // 8bit/Resolution
}
void loop()
{
if (usb_audio_receive_buffer[0]<0x7fff) digitalWriteFast(13, LOW);
else digitalWriteFast(13, HIGH);
analogWrite(9, 50);
}
extern "C" int main()
{
setup();
while (1) {
loop();
yield();
}
}
必要なもの(SEGGER)
- Teensy 4.x本体。
- ARMコンパイラ。
- Embedded Studio for ARMからダウンロードし展開。
- 展開したフォルダで「./install_segger_embedded_studio –copy-files-to .」を実行。
- makeで開発できるテンプレートを準備。ここからダウンロード。
- 先程展開した/bin/segger-ccを/tools/arm-segger/binにコピー。
- 先程展開した/includeを/tools/arm-segger/includeにコピー。
- teensy4.mini以下にmain.cを書く。サンプルは以下の通り。
- make uploadを実行。
// ©2020 Yuichiro Nakada
#include "WProgram.h"
int main()
{
pinMode(13, OUTPUT);
digitalWriteFast(13, HIGH);
while (1) {
//Serial.println("Hello World...");
// usb_seremu_write("Hello World...\n\r", 16);
digitalWriteFast(13, HIGH);
delay(500);
digitalWriteFast(13, LOW);
delay(500);
}
}
Dockerを使う
- 以下のコマンドを実行する。
$ docker pull berry0/teensy-dev:latest $ docker run --net=host -it -d --name teensy-dev berry0/teensy-dev:latest $ docker exec -it teensy-dev /bin/bash # cd /arduino-sdk/teensy/tools/ # echo "yes" | sh setup_segger.sh # cd /arduino-sdk/teensy/teensy4 # make # make upload # make clean # cd /arduino-sdk/teensy/teensy4.mini # make # make upload # make clean
- https://github.com/yui0/arduino-sdk