Getting Started
WARNING
ドキュメント整備途中です
Development Environment
bash
go get -u github.com/project-mahiwa/mahiwa-frontend-go
bash
cargo install mahiwa_frontend_rust
WARNING
Rust Crateのリポジトリはmahiwa-frontend-rustですが,Rustではスネークケースが一般的であるため,Crate名はmahiwa_frontend_rustにしています.
Flash Environment
Install Mahiwa Burner
https://github.com/project-mahiwa/mahiwa-burner/releases のページより環境にあった最新の書き込みツールをインストールしてください.
WARNING
GUI自体はクロスプラットホームですが, 動作確認済みOSはUbuntu, Arch Linuxのみです.
Install dependency tools
現段階のMahiwa Burnerでは依存しているCLIアプリケーションを ご自身でインストールしていただく必要があります.
bash
brew install wabt platformio
bash
sudo pacman -S git xxd wabt platformio-core
Write Hello World
Write in your favorite language
go
package main
import (
"github.com/project-mahiwa/mahiwa-frontend-go/serial"
"github.com/project-mahiwa/mahiwa-frontend-go/arduino"
)
func main() {
serial.Print("Hello mahiwa written in Go language")
for {
serial.Println("mahiwa running")
arduino.Delay(900)
}
}
rust
#![no_std]
#![no_main]
use mahiwa_frontend_rust::arduino;
use mahiwa_frontend_rust::serial;
#[no_mangle]
fn _start() {
serial::print("hello mahiwa written in Rust");
loop {
arduino::delay(900);
serial::println("hello mahiwa");
}
}
Generate WebAssembly
コンパイル設定ファイルの用意
json
{
"inherits": ["wasm"],
"ldflags": [
"--initial-memory=65536",
"--max-memory=65536",
"-zstack-size=2048"
]
}
toml
[build]
target = "wasm32-unknown-unknown"
rustflags = [
"-C", "link-args=-zstack-size=2048 -s",
]
WebAssemblyバイナリコードへのコンパイル
bash
tinygo build -target ./target.json -o main.wasm main.go
bash
cargo build --release
Flash to MCU
Mahiwa Burnerを起動して,手順に従い書き込んでください.