2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

milk-V DuoAdvent Calendar 2023

Day 3

milk-v duo上のtinyccでi2c接続したSSD1306ディスプレイに文字を表示

Last updated at Posted at 2023-12-02

はじめに

秋葉原ロボット部の有志で、milk-v duoを購入し、個々人が様々な実験を行って、勉強会内で報告しています。

Milk-v duoは9ドルのrisc-vコンピュータとして知られています。
ハードウェアは以下の通りです。

  1. CPUはCVITEKのCV1800B (C906@1Ghz + C906@700MHz)
  2. 最高1 GHzで動作するデュアルRV64コア
  3. 64 MBのラム
  4. オプションのアドオンボードを接続すると10/100Mbpsの速度でイーサーネットに接続可能

最近、milk-v duoにTiny C Compiler(以降、TinyCC)が移植されましたので、milk-v duo上でCのプログラミングを行います。

TinyCCとは

Tiny C compilerはFabrice Bellardさんによって、開発されたCコンパイラです。
https://bellard.org/tcc/

現在は、レポジトリで管理されています。
https://repo.or.cz/w/tinycc.git

ディスカッション等はメーリングリストで行われているようです。
https://lists.nongnu.org/mailman/listinfo/tinycc-devel

TinyCCのインストール

母艦で、
https://github.com/robtech21/MilkV-Duo-Resources
から「milkv-duo-tinycc.zip」をダウンロードして、milk-v duoの「/root」に転送します。
その後、以下の操作により、tinyccをインストールします。
./install.shの後の記述は、インストールプロセスの表示です。

# unzip milkv-duo-tinycc.zip
# cd milkv-duo-tinycc
# chmod +x install.sh
# ./install.sh
 1 .  copy tcc, include/*, lib/* --> /usr/local/lib/tcc
 2 .  copy sysroot/include/* --> /usr/local/include/riscv64-linux-gnu/
 4 .  copy sysroot/lib/* -->  /usr/local/lib/riscv64-linux-gnu/
 5 .  install success
#

プロンプト「#」が表示されたら、インストール終了です。
tccに実行権限を付与します。

# chmod +x /usr/local/bin/tcc

SSD1360 OLED用プログラムのコンパイル

母艦で、
https://github.com/armlabs/ssd1306_linux
をダウンロードし、milk-v duoに転送します。
Milk-v duo上で以下の操作を行います。

# unzip ssd1306_linux.zip
# cd ssd1306_linux
# tcc -r -o ssd1306.o ssd1306.c -I .
# tcc -r -o linux_i2c.o linux_i2c.c -I .
# tcc -o ssd1306 main.c linux_i2c.o ssd1306.o -I .

実行ファイルの「ssd1306」が生成します。

SSD1360 OLED上に文字表示

画面サイズを指定します。

# ./ssd1306 -I 128x64

画面をクリアします。

# ./ssd1306 -c

ダブルクオーテーションで囲まれた文字の表示を行います。

# ./ssd1306 -m "Low Level Meetup\n at Zoom meeting\n 0n Nov.4, 2023"

image.png

文字が表示されました。

以下にパラメータを記載しますので、いろいろ試してみてください。

-I  oledの初期化 (128x32 や 128x64 、 64x48)
-c  画面消去 (行番号 あるいや all)
-d  0/ディスプレイオフ 1/ディスプレイオン
-f  0/ 5x7の小さいフォント 1/ 8x8の普通のフォント(デフォルトは小さいフォント)
-h  ヘルプ
-i  0/ 正常な位置 1/ 上下逆さま
-l  表示したい行を指定
-m  OLEDに表示したい文字列を指定
-n  I2Cデバイスのノードアドレス(0,1,2..., デフォルトは 0)
-r  0/ 回転なし 180/回転
-x  x 座標
-y  y 座標

参考 https://community.milkv.io/t/milk-v-duo-i2c-ssd1306-with-user-space-driver/323

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?