arm-none-eabi-gccとボードのライブラリを準備する。

必要なもの(GCC)

  • Teensy 4.x本体。
  • ARMコンパイラ。
  • Teensyの場合はarm_cortexM7lfsp_math.aをダウンロードし、arm-none-eabi/libにコピー。
  • それぞれのボードのライブラリ。Teensyの場合はここ
    • makeで開発できるテンプレートを使用すると楽。ここからダウンロード。
      • tools以下にダウンロードしたgccを置く。
      • src以下にmain.cppを書く。サンプルは以下の通り。
// ©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