27-Mar-2021
[LPCNetべんちまーく。(5)]

タイトルに偽りありで、今回はベンチマークテスト無しです。

29-Jan-2021に記した、AArch64上のarmbian上でAArch32なバイナリの生成と動作をさせる方法…ひょっとしたらRaspberry Pi Desktop(x86_64カーネルなのにユーザーランドはi386)でも似たようなことができるのか気になったので早速試してみます。

  1. apt-get install crossbuild-essential-amd64
  2. echo "/usr/x86_64-linux-gnu/lib" > /etc/ld.so.conf.d/x86_64-linux-gnu.conf
  3. mkdir /lib64
  4. ln -s /usr/x86_64-linux-gnu/lib/ld-2.28.so /lib64/ld-linux-x86-64.so.2
  5. /sbin/ldconfig

あとはx86_64-linux-gnu-gccでコンパイルし、得られたx86_64オブジェクトを実行すれば良さそうです。何か特別なライブラリが必要になった場合については面倒なことになりそうですが、前回と同様にちょっとした実験ならこれで十分でしょう。

Rock Pi S向けのケースも届き、収納も終えたのでそろそろこちらも動かさなければ…53.00kg(07:55)

21-Mar-2021
[行き詰まりました]

大陸の覇者なんですけど。

★5
ギルデロイ(槍), ソフィア(本), ハンイット(弓), ニコラ(短剣), トレサ(槍), ライオネル(剣), ドロテア(槍), ザンター(弓), ティキレン(剣), リュミス(斧), グロッサム(扇), ステッド(杖), サイラス(本)
★4
ケネス(本), レヴァン(本), チェルナ(槍)

★5があれこれ増えていますが、なかなか来ません。★4追加分もたまに来る程度です。

★4なのに★3な人達についてはアイテムを調達して残り一人までにしましたが、リネット/テレーズの★5化はどうにもなりません。手持ちの導石を片っ端から砕いて銀導石の欠片にしてみたものの、クラスアップ用アイテムに必要な30000個には全然届かず12000個あるかどうかといったところ。二人共Lv上限に当たってしまい、かといって上限突破のための金導石も思うように集まらず、行き詰まっています。討伐でもなかなか出てきませんし…

★5なのに★4
リネット(扇), テレーズ(本)
★4なのに★3
ウィンゲート(短剣)

メインのシナリオは全てを極めし者・第8章までは来ています。武器防具を揃えて殴り込みへ行くにしても、材料が無いことには揃いません…

という訳で、LGT8F328D向けのbootloaderをなんとなく修正して、avr-gcc-5.4.0/7.3.0でビルドできるようにしていました。ベースとなるoptibootを5.0から6.2に上げた方が良いような気もしますし、LGT8F328D/LGT8F328P(QFP)/LGT8F328P(SSOP)辺りは一つのソースツリーに統合した方が便利そうなのですが、とりあえずビルドが全くできない状況はマズいので。53.85kg(20:20)

18-Mar-2021
[USB接続のサウンドアダプタを]

録音に対応したもの、というのはあんまり持っていないので(direwolfのテスト用に)一台追加してみたは良いのですが…

tp3084288.jpg tp3084289.jpg

tp3084290.jpg tp3084291.jpg tp3084293.jpg

とりあえずその辺に転がっているSingle-TTなUSB2.0のハブを経由させればdirewolfが安定して動くことが確認できたので、これで良しとしています。

その一方で、PC本体(OHCI/UHCI)に繋いでdirewolfを動かすと数分動かした程度で止まります…単にdirewolfが止まっているだけならともかく、運が悪いとOpenBSDがddbに落ちていたりします。という訳で、OpenBSD側の対策をどうするか、今後考える必要があるかもしれません。C-Media CM6206-LXが載っているのでそんなに阿呆な製品ではないと思うのですけど。

USB側の蓋は爪を折ってしまい、半田ゴテで溶かしてくっつけてはみたのですが…うまくいきません。

tp3144298.jpg tp3144297.jpg tp3144299.jpg

仕方がないので木材を使って、こんな感じに直してみました。この程度の見てくれの違いなら、許容範囲でしょうか…?52.00kg(19:50)

14-Mar-2021
[WAVGAT UNO R3なるものが届きました]

これもLGT8F328P相当(WAVGAT AVGA328Pと書かれたプロセッサ)が載っているらしいということで頼んでおりました。

tp3144294.jpg tp3144295.jpg

MassDuino UNO R3同様に16MHzの水晶発振子が載っているのでこれを使うことができるのですが…現状のlgt8fxって確か外付けの水晶も内蔵オシレータ同様に32MHzを前提としているので色々面倒そうな気がします。

Arduino IDEに追加するボード対応パッケージはhttps://drive.google.com/open?id=10gwrG9uTDwaEO-7EudsmBkfgdcyrcABIから落とすようにと指示があります。ダウンロードしたupdate.rarを展開するとWAVとWAV8Fのディレクトリが生成されますが、WAV/avrとWAV8F/の内容は同一です。例によってデータメモリ領域のダンプブートローダーのダンプを取ってみましたが、ブートローダーはupdate.rarに入っているoptiboot_lgt8f328p.hexと同一と考えて良さそうです。

こちらはMassDuino UNO R3と異なり、avrdudeは57600bpsでの書き込みとなります。冒頭にLGT8F328P相当らしいと書いていますが、uDSCのテストも動作しているのでそれで間違いないはずです。なお、SWDICE_mkII Pro v2.0接続用の端子(SWD/SWC)を探してみたのですが、基板が黒いのでよく分かりません。WAVGAT Nano Faux cloneを参考に調べてみると、こんな感じのようです。

実際にSWDICE_mkII Pro v2.0を繋げてbootloaderの書き換えができるかどうかは、どこかの時点で試すかもしれません。52.85kg(19:20)

09-Mar-2021
[MassDuino UNO R3なるものが届きました]

こんな感じのカラフルな奴です。MD-328Dなるプロセッサが載っていますね。

tp3084284.jpg tp3084287.jpg

LGT8F328の類と聞いていたのでArduino IDEにlgt8fxをインストールしてスケッチを書き込め…ません。lgt8fxのデフォルトは57600bpsなのですが、MassDuinoでは115200bpsを要求するのでここからどうにかする必要があります。コンパイルされたスケッチを、avrdudeで然るべきオプションを指定して書き込めば良いのですが。

話によるとLGT8F328Dらしいのでvariant: 328D(rare)にしてコンパイルしたものを流し込んでみましたが、動きません。328P-LQFP32 wemos-TTGO-XIの設定で動いたので、おそらくスタートアップの部分も調整が必要そうです。

uDSCのテストは案の定正しく動かなかったのと、32MHzでの動作もしないこと(max 20MHzと聞いています)、Arduino_prime_number_benchmarkの結果から判断するに、MD-328DはLGT8F328Dと同じものと考えて良さそうです。

折角なので、データメモリ領域のダンプブートローダーのダンプを取ってみました。MassDuino製造元のダウンロードページにあるArduino - MassDuino_Support_Package V46r2の内容と比較するに、ブートローダーはbootloaders/md328d/optiboot_md328d_extosc_sled_115200bps.hexが書き込まれているようです(とはいえ完全には一致していません)。

とりあえず、取っ掛かりとなる情報はこれだけあれば十分ですかね…?51.70kg(19:30)

14-Mar-2021補足:MassDuino UNO R3はSWDICE_mkII Pro v2.0が繋がります。MD-328D脇にあるC(SWC)/G(GND)/D(SWD)が対応するので、こんな感じに端子を付けて…(半田吸い取り器等ではんだを吸い出してからでないと付かないのが面倒なのですが)

tp3144296.jpg

あとはIOREFにVCC, RSTにVPP/RSTを繋げればbootloaderの書き換えもできます。色々面倒なので、確かLGTMCU/Larduino_HSPのoptiboot_lgt8f328d_intosc.hexを書き込んでLarduino相当にしているはず。

でも何故LGT8F328Dってbootloaderを外付け水晶の有無で分けちゃったんでしょうかね(LGT8F328Pについては一つしかない)。とりあえず内蔵発振器で起動だけしておいて、スケッチ起動時に切り替えちゃえば良い気もするのですが。あと、bootloaderをmakeすると-mshort-callsなんてオプションは知らぬわとgccに怒られたのでarduino-1.5.6(gcc-4.3.2)を持ってきてビルドを試みたのですが、ldがsegfaultを起こしてinternal errorになってしまいます。こんな時、どうすれば良いのでしょう…?

21-Mar-2021補足:ICSPコネクタ側の結線ですが、簡単に調べた感じだとWAVGAT UNO R3とは異なり標準的な6pin ICSPの結線(VCC/GND/RESET/MISO/MOSI/SCK)のようです。MassDuinoと同じ基板を使い、MD-328DではなくATmega328Pを載せたBUONO UNO LCを売っているのでこうなっているのでしょう。

07-Mar-2021
[メモ(2)]

11-Feb-2021の進捗。体裁を合わせるために大陸の覇者ネタからいきます…まずは居ないキャラ。今のところ武闘大会には参加できないので(全てを極めし者・7章から未だに進んでいない)、情報が出てきたキャラクターは居ないものとして追加してしまって良いでしょう。

★5
ギルデロイ(槍), ソフィア(本), ハンイット(弓), ニコラ(短剣), トレサ(槍), ライオネル(剣), ドロテア(槍), ザンター(弓), ティキレン(剣), リュミス(斧), グロッサム(扇)
★4
ケネス(本), エフレン(杖), レヴァン(本)

★5なのに★4とか★4なのに★3な人達については…ミロードを引いたのは嬉しいのですが、主に使っているリネット/テレーズが来ない。★4についてはクラスアップ用アイテムも揃わないのでこちらは状況変わらず。

★5なのに★4
リネット(扇), テレーズ(本)
★4なのに★3
ウィンゲート(短剣), デヴィン(槍), ポーラ(扇)

とりあえず★3キャラを片っ端からLv45近くまで育成し、影響力をとにかく上げることをやっているのでメインのシナリオが全然進まないというか進めていません。これを書いている時点で総プレイ時間は160時間、旅団メンバーは71人・合計Lvは3368、影響力ランクは22(富)/22(権力)/23(名声)…他のプレイヤーがどんな感じで進めているのか、気になります。

収拾がついていないあれやこれやについてはこんな感じ。

OpenBSD: Allwinner H6におけるUARTの問題
発注していたRock Pi Sは到着するも、やはりケースが無いとダメだろうということでこちらも発注・到着待ち。
OpenBSD: OrangePi One Plusにおけるネットワークの問題
なんにも進んでいません。
M17: 仕様書の日本語訳
これも進めていません。
OpenGD77: 特になし
DM-1801が使えるようになったので、久々にビルド。ブランチ構成の変更があったのでこれに追従し、ビルドエラーを見つけたのでその報告
xlxd: IPv6対応の再々作成
作り直してpull-request投げ直し。反応は期待しない。そういえばXLXサーバの名称、今まではXLX000〜XLX999のみでしたがいつの間にかXLXAAA〜XLXZZZが追加されていますね。
LGT8Fx: 支援
WAVGATのArduino UNO R3は既に発注済み、これに加えて(2.4GHz-LoRaのため標準的なArduinoフォームファクタで3.3V I/Oに対応するAVR系のものを探している際に見つけた)MassDuino UNO R3も発注。01-Mar-2021はこの伏線。
LoRa: 2.4GHz
何もしていません。wemos TTGO XIとPM1280なアレ、PM1280を取り外し可能にしているのでここに2.4GHz対応モジュールを繋げちゃえば良いんですけどね…信号線をどう配置したか調べるのが面倒で。
direwolf: sndio対応
とりあえず動くようになったのでpull-request出して、待ち。

あと、ドローンに手を出そうとしていて色々動いています。こっちもこっちでなかなか進みません…53.85kg(18:30)

03-Mar-2021
[こうかなー…]

Обзор клона меги328 -LGT8F328Pの書き込みを見るに、uDSCレジスタの読み書きはin/out命令を使うと(レジスタによっては)自動的に16bit I/Oでやってくれるようだ…ということで、こんな感じのスケッチを書いてテストしています。

一体何をテストしているんだというコードなんですが(自分で書いていてもそう思うし明日コードを読み返して困惑することは確かなので今のうちにメモしてしまうのですが)、やってることは大体こんな感じです。

in/out命令でuDSCの16bitレジスタを指定すると、自動的にRn+1:Rnで入出力してくれるようです(なので、コンパイラに対して適切に指示しておかないと面倒なことになりませんかこれ…?)。8bitレジスタからの読み込みを行った場合、実は16bitで読むので意図しないレジスタを壊します、ということはなさそうです。

あと、データシートではDSSDレジスタはR/Wと書かれているのですが、テストでは書き込みができていません。まだ試していないのですが、LDD Rn, Z+q形式によるuDSCレジスタへの書き込み対象にDSSDが無いことから、Read onlyの可能性は高いかもしれません。

それにしても、一体何をやっているんでしょうか自分。こういうテストって、あんまし意味ないですよね…52.65kg(20:50)

01-Mar-2021
[ちょっと必要があったので(2)・ほか]

23-Feb-2021の続き。

前回はプログラム領域のダンプをIntel HEX形式で行いましたが、今回はデータメモリ領域(0x0000〜0xffff)を普通にダンプするスケッチを作って、LGT8F328PATmega328Pそれぞれで見てみました。はっきり言って、全然様子が違います…

ついでに、LGT8F328Pに入っているuDSCなるモジュールの簡単な動作テストを行うスケッチも作っています。本来なら16bit値のロード/ストアを行ってきちんと試したいところなのですがやり方が分からないのと、とりあえずLGT8F328D(uDSCが無いらしい?)との区別を付けられるかどうかの実験に使うので8bit値のロード/ストアで止むなしとしています。

13-Feb-021のsndio対応版direwolfが突如止まる現象、調べてみるにチップセット(A88X)内蔵OHCIにUSBオーディオアダプタ(GeneralPlus)をつなげた場合に起こることが分かりました。同じアダプタでもUSB2.0ハブを経由した場合や、USB2.0拡張カード(VIA VT6212搭載、EHCI/UHCI)に繋いだ場合は問題ありません。ハードウェアの問題なのか、sio_pollfd()〜poll()〜sio_revents()でPOLLHUPを喰らっているので、この場合の(異常終了した旨通知する)処理を追加しておきました。

大陸の覇者は…ヨルン(剣)引きました。ケネスとレヴァンはいつ来るのでしょう…

★5
ギルデロイ(槍), ソフィア(本), ハンイット(弓), ニコラ(短剣), トレサ(槍), ライオネル(剣), ドロテア(槍), ザンター(弓), ティキレン(剣), リュミス(斧)
★4
ケネス(本), エフレン(杖), レヴァン(本)

★5なのに★4とか★4なのに★3な人達も、ちょっとまとめてみます。

★5なのに★4
リネット(扇), ミロード(杖), テレーズ(本)
★4なのに★3
ウィンゲート(短剣), デヴィン(槍), ポーラ(扇)

3人くらい★4へのクラスアップの操作をして、まだまだ必要な人がいるかなと思っていたのですが…意外と引いていたみたいです。★5についてはモルルッソ(杖)を引けたのは非常に助かるのですが、リネットとテレーズのLvがそろそろ限界に近いのでどうにかならないかと思っています(限界突破のために金導石が必要という時点で★4よりもツラい…)。52.90kg(06:55)