依存性の管理

モジュールの中の要素の調整でファイル更新をすると依存関係の巻き添えが起きて大分待たされる事になって辛い。
コンパイラがEntity単位で内容が更新されたかどうかとそれぞれの依存性を把握していれば防げるのだろうか?
まぁそんなのは夢物語だからファイル分割を気を付けるべきなんだけど…。

 

リンク時最適化が上手く効いてくれるならヘッダにコードを置く必要性が薄くなるかも?でもこれも期待薄だろうなぁ。。人が工夫を凝らす事で詰め込む事は出来るんだろうけど試行錯誤しやすくするのにも知恵が必要だ…。

 

C++ の module について思い浮かんで検索したら下記のサイトがヒットした。

https://vector-of-bool.github.io/

 

依存関係はグラフで図示すれば分かりやすいのかもしれないけれど、色々な切り口があるからどう表現すれば良いのだろうか?

 

ノイマン型アーキで人間が試行錯誤して作り上げたものはなかなかに複雑で立派だけど、この方向性でずっと行くべきなのかというと躊躇する。

 

何かしらの僅かなコストと引き換えに手間を大きく省けるならそこに価値が生まれるのでうまいやり方を見つけたい。

 

 

BeagleBoard x15

BeagleBoard x15 を購入した。

https://beagleboard.org/getting-started

の説明を読んでセットアップ

SDカードにイメージを焼き込む

まずはSDカードのイメージをダウンロード 

現時点の BeagleBoard x15 の最新イメージは、「Debian 9.5 2018-10-07 4GB SD LXQT」 のようだ。Etcher というSDカードにイメージを書き込むプログラムが紹介されていてそれをインストールする事でSDカードへのイメージの書き込みは簡単に行う事が出来た。

電源について 

ちなみに BeagleBoard x15 は 12V5A(60W) の電源が必要で DCコネクタの規格は 内径 2.5mm 外径 5.5mm のようだ。手持ちのACアダプタに12V5Aのものが無かったので Tosmisy というメーカーのものを 1500 円くらいで購入した。色々なジャックに対応する為に交換可能なプラグが8種類ぐらい付属品で付いてくる。しかし話が逸れるけど、ACアダプタって電圧と電流の組み合わせの分だけ数が多くて嫌になるなぁ。。USB PDで全部賄えるようになったら良いんだけど…。

デバッグケーブル

USB変換COMケーブルはラズパイ用のを購入。

(赤) USB5V
(黒) GND
(緑) TxD ロジックレベル(約3.3V)
(白) RxD ロジックレベル(約3.3V)

となっているようで、ボード側の方は Quick Start Guide の説明を見ると

PIN番号 1 グラウンド
PIN番号 4 受信
PIN番号 5 送信
となっている。PIN1に黒、PIN4に緑、PIN5に白、のメスのジャンパワイヤを挿したら Teraterm で電文が見れるようになった。

CCSで開発

まず新規に Target Configuration File を作成する。

  • Connection に Blackhawk XDS560v2-USB System Trace Emulator を指定
  • Board or Device に GPEVM_AM572X を指定
  • Beagle Board x15 の電源投入もしくはリセット直後に、デバッグケーブルのターミナルで Press SPACE to abort autoboot in 2 seconds と表示されるのでスペースキーを打って Linux 側のブートを止める

上記の手順でC66x DSP用のプログラムをデバッグ出来るようになった。

Linuxと連携

Linux上でDSPと通信するには Processor SDK の IPC を使う必要がある。

http://software-dl.ti.com/processor-sdk-linux/esd/docs/latest/linux/Foundational_Components_IPC.html#ipc-quick-start-guide