Raspberry Pi で DPDK が使えるか?
かなり以前に Raspberry Pi で DPDK を走らせようとして挫折したのですが
それから7年も経っているし、状況は変わっているでしょう。再挑戦してみます。
かなり以前に Raspberry Pi で DPDK を走らせようとして挫折したのですが
それから7年も経っているし、状況は変わっているでしょう。再挑戦してみます。
さっと Linux で何かしたいというとき、何を使いますか?Docker を使えば手軽に環境が作れますが、一個のコンピュータとして使うには制約が多くてかえって面倒です。バーチャルマシンを使うのも良いと思います。でも、実体があった方が良いときにはやっぱり Raspberry Pi。ディスク代わりにマイクロ SD を使うので、マイクロ SD を差し替えてしまえば別のホストに早変わりするところなどほとんどバーチャルマシンです。さっと素早く何かしたいときに実に重宝します。ということで、いつも旅には二台のラズパイがお供してくれています。名前もついてますよ。たろ君とじろ君。
これらのラズパイは、ヘッドレスといって、普段はモニタなどにつながずに PC から SSH を使ってログインして使っています。いざというときにはモニタケーブルをつなげば直接操作できますがデスクトップ環境はインストールしないのでかなり不便です。ラズパイ自体はシンプルにしておいて不便なところはPC でサポートすると、結局僕にはその方が楽なためこのような使い方をしています。
そして今日もちょっと使う用があって、たろ君、出番ですよ...ん?電源を入れても反応がない?
909クローンのファームウェアの開発中、eeprom に書き込んだリズムパタンが書き込んだ後に崩れる現象がまあまあ頻繁に発生して、最初はファームウェアのバグのせいかと思っていたのですが、バグにしてはどうにも発生場所がランダムだったり発生の契機が読めなかったりで、これはプロセッサの誤動作なのでは?と考え始め、発生条件をもっとよく調べてみたら、どうも電源を落として立ち上げると何の書き込みをしていなくてもちょいちょい壊れるらしい。そういうわけで何の問題でどう対策すれば良いのか調べました。
TR-909 クローンのシーケンスパタンは eeprom に書き込みますが、avr-libc ライブラリが提供している eeprom 関数には同期書き込みしかありません。
https://www.nongnu.org/avr-libc/user-manual/group__avr__eeprom.html
しかし、TR-909 クローンのファームウェアでは割り込みをほとんど使わずリアルタイム処理がなされていて、eeprom を同期書き込みすると書き込み中処理が止まってしまいます。これが様々な誤動作の原因になってしまうので、非同期書き込み関数を書きました。
Quadrature Trapezoid VCO の続きです。Qadrature Trapezoid VCO は訳すと「直交台形波 VCO」みたいな感じです。元記事の回路図をこの記事に切り貼りするのはちょっとはばかられるので、解説、回路などは Donald さんの元記事を参照していただきたいですが、詳しい解説が書かれていてもそれでも難解な VCO なのでちょっと時間をかけて自分なりに理解してみました。この発振器、実に巧妙に設計されています。よく何もないところからこんな仕組みを思いついたなとすごく感心してしまいます。
今汎用の VCO を作ろうかなと考えています。Analog2.0 の VCO も汎用なので今まで実験などに使ってきたのですけれども、調整箇所が多いなど色々と直したい点があるので一から作り直してみようと考えているわけです。
普通に作るなら今まで通りリセット型の発振器にするのが素直ですけれども、CEM3340 のような三角波を発生する VCO もかねてから興味があったので検討してみました。実は CEM 3340、今は入手しようと思えば入手できてしまいます。数を作るならそれを素直に使うのが良いかもしれないのですが、電源が ±15V と指定されています。利便性を考えて ±10V の電源で設計しようと考えているのでこのプロジェクトでは使えません。残念。昇圧するという手もあることはあるのですけれどもね。