Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TinyGo 0.28.1 で動作確認を行う #8

Closed
sago35 opened this issue Jul 3, 2023 · 12 comments
Closed

TinyGo 0.28.1 で動作確認を行う #8

sago35 opened this issue Jul 3, 2023 · 12 comments

Comments

@sago35
Copy link
Owner

sago35 commented Jul 3, 2023

0.28 での以下の変更などにより動かないコードがあるかもしれない。
ので、いったん確認を行う。

  • reflect の追加により大幅なコード変更
  • 割り込みハンドラ内の heap allocation 禁止 (panic になる)
  • USB 周りのリファクタリング (少なくとも hid-joystick が動かない状態になってしまった)

2023/08/03 時点の動かない部分まとめ。

  • USB MIDI
    • import path の変更 ( → machine/usb/adc/midi ) が必要
  • I2C
    • cache 有効化による高速化で wait 時間が短くなりすぎている (↓ の enableCache() 削除 or wait 時間調整)
  • ディスプレイの PNG 表示
    • enableCache() 削除
  • tinyfont を使用時に問題が出る場合は、以下を実行して Version を下げてみてください
    • go get tinygo.org/x/tinyfont@34f5899f6c1e34aa6daa4e12e2b96a2ea370dff9
@sago35
Copy link
Owner Author

sago35 commented Jul 4, 2023

ざっと Chapter 5 の終わりまで確認した。
今の所以下を除いて問題なさそう。

  • USB MIDI (P.185 ~ P.189)
    • import が machine/usb/midi から machine/usb/adc/midi に変更になっているためソース変更が必要
  • I2C (P.164 ~ P.168)
    • どうも動いていない? (要確認)
    • 0.29-dev では 0x00 が読みだされる
    • v0.27.0 では 0x33 が読みだされる (問題無し
    • v0.28.1 では 0x00 が読みだされる
      • src/runtime/runtime_atsamd51.go の enableCache() をコメントアウトすると 0x33 がよみだされる
  • その他の QSPI と SDcard はまだ確認していない

@sago35
Copy link
Owner Author

sago35 commented Jul 9, 2023

Chapter 8 アプリケーション作成を確認した。

@sago35
Copy link
Owner Author

sago35 commented Jul 10, 2023

Chapter 6 ディスプレイに表示する、を確認した。
動かないのは以下。

  • P.216 の PNG 表示が動かない
    • enableCache() をコメントアウト (↑) すれば (書籍に記載の通り --opt s 等で) 動く

@kenichi-harada
Copy link

Ububtuで試してしていますが、P.210の一番上でフォントを生成するコマンド を実行してみると
tinyfontgen-ttf --output font.go --fontname NotoSans32pt -size 32NotoSansJP-Regular.otf --string "こんにちは"
tinyfontgen-ttf: コマンドが見つかりません
となってしまいます。お気づきの点がありましたらお知らせください。

@sago35
Copy link
Owner Author

sago35 commented Aug 2, 2023

@kenichi-harada

問い合わせありがとうございます。
P.209 の

go install tinygo.org/x/tinyfont/cmd/tinyfontgen-ttf@dev

を実行すると、 $GOPATH/bin/tinyfontgen-ttf に実行ファイルが生成されます。
なので、例えば以下のようにすると実行できるのではないでしょうか?

$ `go env GOPATH`/bin/tinyfontgen-ttf --help
(ヘルプが表示される)

$ `go env GOPATH`/bin/tinyfontgen-ttf --output font.go --fontname NotoSans32pt -size 32NotoSansJP-Regular.otf --string "こんにちは"

上記で大丈夫そうであれば、 P.20 に記載の環境変数 PATH の設定を行うと良いかと思います。

@kenichi-harada
Copy link

素早いお答えありがとうざいました。ご指摘のように行ってうまくできました。P.20のパスの設定は行っていたのですが、(`)の入力を( ’ )プライムで入力してました。感謝です!

@kenichi-harada
Copy link

度々お尋ね致します。その後の手続きでエラーなく進みますが、go run . で下記のようなエラーが出ます。not implement とあるので、なにか不足しているものがあるのでしょうか。ご教示いただければ幸いです。

ken@ken-ubutu-iiyama:~/wrk/font$ go run .

main

./main.go:18:33: cannot use font (variable of type *const2bit.Font) as type tinyfont.Fonter in argument to tinyfont.WriteLine:
*const2bit.Font does not implement tinyfont.Fonter (wrong type for GetGlyph method)
have GetGlyph(r rune) tinyfont.Glypher
want GetGlyph(r rune) tinyfont.Glyph
./main.go:19:33: cannot use font (variable of type *const2bit.Font) as type tinyfont.Fonter in argument to tinyfont.WriteLine:
*const2bit.Font does not implement tinyfont.Fonter (wrong type for GetGlyph method)
have GetGlyph(r rune) tinyfont.Glypher
want GetGlyph(r rune) tinyfont.Glyph
./main.go:20:33: cannot use font (variable of type *const2bit.Font) as type tinyfont.Fonter in argument to tinyfont.WriteLine:
*const2bit.Font does not implement tinyfont.Fonter (wrong type for GetGlyph method)
have GetGlyph(r rune) tinyfont.Glypher
want GetGlyph(r rune) tinyfont.Glyph

@sago35
Copy link
Owner Author

sago35 commented Aug 3, 2023

こちらもありがとうございます。
確認しましたが、 tinyfont 側の問題のようなので、もうしばしお待ちください。 @kenichi-harada

@sago35
Copy link
Owner Author

sago35 commented Aug 3, 2023

気づいてなかったですが、以下に Issue もあったようです。
tinygo-org/tinyfont#43

@sago35
Copy link
Owner Author

sago35 commented Aug 3, 2023

@kenichi-harada
修正方法が微妙に悩ましいので、少し時間がかかる可能性があります。
いったん、問題のないバージョンの tinyfont を使うようにしてください。

以下を実行してからであれば、動かすことができます。

$ go get tinygo.org/x/tinyfont@34f5899f6c1e34aa6daa4e12e2b96a2ea370dff9

@kenichi-harada
Copy link

ありがとうございます。ご教示いただいた方法で試してみます。

@sago35
Copy link
Owner Author

sago35 commented Sep 8, 2023

TinyGo 0.29 版 (#9) を作成したので閉じます。

@sago35 sago35 closed this as completed Sep 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants