Skip to content

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を起動して,手順に従い書き込んでください.