2023年8月5日土曜日

BlackFinを使ってみるなり(4) CrosCore起動、さっぱりわからん、余裕でわからん

こんにちわ.星漿体と同化して元気いっぱい、、、ひらりんです.

プリント基板設計中はアニメを見ながら作業します.おかげでアニメの消化が捗ったかというと、むしろ消化がSTOPしてます.
なぜか?
呪術廻戦2ばっかり無限loop視聴してるからです.#27#28#29と懐玉・玉折編のラストへ向かってのpotential upがすごい.#29は絵コンテ御所園翔太でした.彼はレイアウトと時間と効果音のtotal制御能力が途方も無く優秀です.CG製作のおかげで誰が作ったってそこその画像は出来てしまうご時世ですが、御所園はそうゆう製作リソースを軽々と超越した次元に居る、存在自体が教科書もとい天元様.彼を監督に抜擢してくれたMAPPAに感謝します.チェンソーマン2期も監督御所園翔太でやってほしいなぁ.
↓姉妹かわいい.JKになったらあまりかわいくないこいつらだけど.
懐玉・玉折編は終わったので、来週と再来週は総集編が放送され、その後に渋谷事変になるみたいです.道玄坂~ハチ公前~明治通りの辺りがしっちゃかめっちゃかになるみたいで楽しみです.OPはKing Gnuに変わります.

ーーーー
アナログフロントエンド基板を発注しました.JLCPCBに5種類発注して、$24ぐらいでした.円安なので¥3500とかしてます.部品を集めなくちゃいけない.秋月とmarutsuで入手可能な部品を使ったのでなんとかなるでしょう.一発で動く気は全然しません.
DACは既報の通り、PCM510xを使います.なにもしないDAC.
ADCはMCP3561にしました.24bit150ksps.なにもしなさそうなADC.¥1000ぐらい.
これからアキバに行きます.

ーーーー
基板発注が終わったので、BlackFinのお試しを開始するなり.

早速、評価ボード同梱のライセンスナンバー(180days有効と書かれている)を入力する.
↓しかし、expiredが出てしまう.これはfuckだなぁ.
ほぼ同時にADからメールが来て、どうやらこうゆうお助けがあるようです.
onlineのアクティベーションすると期限切れだが、電子メール記載の検証コードを保存すればいい。
HelpからManage Licenceせよと言っているので、その藁にすがろうじゃないか.
↓この画面で、メール記載のcodeを入力するが、やはりexpiredでだめだわ.しかし2度目のトライで成功しました.なんでだろ?
licence操作の感想では、何度でも延長できてしまいそうな感じがしました.

ーーーー
立ち上がったcrossccoreの画面がこちら.
「ムッ、これは、、、まるでSTM32のIDEではないか!?」
Eclipseで記述されているから見た目が同じっぽくなるんですかね?

↓new projectへ.この操作感もSTM32IDEっぽい既視感.右下のsilicon revisionには参ったが、ICを見たら1.1と刻印されてた.よっぽど酷いバグが在ったんだろうねぇ(笑)
ここで、BF706評価ボードをセレクトするものとばかり思っていたのだけれど、そうゆう選択肢は出ません.てことはこのlicenceはBlackFin/SHARCの全てを扱えるみたいです.

↓new projectの次の画面で、source codeのincludeをセレクトするみたい.UART,SPI,SPORT,TWI,Timer,GPIO辺りは必須だろうからチェックを入れます.

↓空っぽのprojectが出来ましたが、なにやらさっぱり判りません.DSPじゃなくてCPUだよねぇこれ.DSPのprogrammingはどうすんの?

Tutorialからじっくり勉強が必要でぇす.手ぇ付けらんねーよ、こんなもん.
SigmaStudioは簡単でよかった.それは認めよう.

3へ    5へ

かしこ

23 件のコメント:

  1. CPUとDSPの違いってプログラムとデータで個別のメモリを持ってる(ハーバードアーキテクチャ)ってだけでだけですから……。今どきのCPUはキャッシュがInstructionとdataで別れてるし、SIMD命令があったりするからDSPとの差がほとんどなくなっちゃってますね。

    返信削除
    返信
    1. 画面にmain()が出てきて、それってcpuのエントリなの?DSPのエントリなのというレベルからのblackfinであります。んがー

      DSP動かしたくば、cpuのDMAでflowせよとかっていうperipheral扱いだったら萎える・・・・自走してねDSP

      削除
    2. ひょっとして、DSPに対して並列処理する回路ブロックをHDLでつないで使うイメージを持ってたりしますか?残念ながら逐次制御方式なのでプログラミングはCPUと何も変わりません。そこら辺を隠蔽しているADAUのSigmaStudioは優秀というか罪作りですね……。

      削除
    3. そうそれそれ。
      dataflowは勝手にやっててよもー

      tutorialを見なくっちゃ

      削除
    4. 8月15日頃までにキャッチアップしたいの

      削除
    5. >プログラミングはCPUと何も変わりません
      最近のDSPをよく知らないので分かりませんが、私の知るDSP(大昔のやつ)は、ハード的には、CPUと信号処理回路は一体化してて、
      ・実行クロックは「サンプリングクロックの倍数」でないといけない。
      ・プログラムの実行は、「サンプリング時間」を起点としてはじまり、「次のサンプリングまでに、終了」しないといけない。
      間に合わないと、「勝手に」プログラムカウンタがリセットされて、最初から走る。
      のような制約がありました。
      ※当然、言語は「機械語」(アセンブラもあるが、殆ど「単語を16進数(命令)に置き換える」位の機能しかない。)で、「高級言語」など無い。
      ※現代の「PLC」にも、「実行周期」という概念があって、同じような制約がある。まぁ、昨今のPLCは高性能なので、まず「処理が終わらない」ようなことはありませんが。
      なので、「DSP特有の考え方」は、あります。
      ※これは、
      ・プログラムとデータで個別のメモリを持ってる(ハーバードアーキテクチャ)
      とかとは、また別のレベルの話です。ちなみに、「PIC」は、確か「ハーバードアーキテクチャ」だったような。
      (だから、「DSPIC」(これは、CPU/PLCの開発が一体化してるらしい)とか作ったのかな?)

      削除
    6. まぁ、「DSP」も、若干「バズワード」っぽいところがあるので、開発元が、
      「これはDSPです」
      って言えば、何でもそうなっちゃいますが。。。
      ※特に、昨今はCPUの性能が上がったので、「ふつーの組み込みマイコン」でも、音声帯域位なら、余裕で
      ・実時間処理
      出来ちゃいますしね・・・
      ※デジタルフィルタ処理(IIRとかFIRとか)なんて、単に、
      ・C言語の配列操作処理
      で、出来ちゃうし・・・
      (昔は、「性能の限界」があったから、こういう芸当は出来なかった。)

      削除
    7. >「次のサンプリングまでに、終了」

      そんなこったろうと薄々思っていますが、100サンプルのpipelineでも構わんです。

      削除
    8. 勝手な想像(BlackFinの仕様書見たことない)ですが、DSP処理は、
      ・割り込み処理内
      に、記述とかじゃないのかな。サンプルごとに、「割り込み」が掛かって、
      ・次のサンプリングまでに、割り込みが終了しないとダメ
      とかのような気がする。
      それを除けば、「ふつーのCPU」として使える。
      ※つか、これだったら、自分で回路組めば、STM32とかと変わらんじゃないか。ホント、CPUの性能が上がりすぎて「何違うねん?」って時代だなー。

      削除
    9. ↑ 割り込みが終了しないとダメ

      割り込み「処理」が終了しないとダメ
      です。なんか最近、誤字が多いな・・・

      削除
    10. >STM32とかと変わらんじゃ

      たしかにそれはやたらと早いSTM32(笑)

      ADAUでも、周期内に処理が完結するかどうかはissueになってました.サンプリング周波数が48kHzだと処理できていたけれど、192kHzだと処理が終わらないなんつう問題があるんだそうです.
      なんかでたとこ勝負な.

      削除
    11. BlackFinにはマルチサイクル処理がありますように...

      削除
    12. いや無いかそんなの....弱気

      削除
    13. DSPならではの機能といえば、1命令での積和、サーキュラーアドレッシング、ゼロオーバーヘッドのループ制御だなー、と思いBlackfinにもあるのか調べてみたところ面白い記事を見つけました。BlackfinとCortex-M7の比較です。
      http://bfin.sakura.ne.jp/?p=838
      ツボを押さえた的確な比較だと思います。この記事によるとBlackfinには上記機能はちゃんと搭載されているようですね。

      削除
    14. 知らないけど知りたい情報が書かれていて、仔細に読みました.

      CORTEX-M7浮動小数点演算で120MTaps/S
      CORTEX-M7 16bit固定小数点演算だと240MTaps/S
      Blackfin DSPの固定小数点演算能力は800MTaps/S
      ということは、わたしは96kspsで動かしたいので、1smpl当たり、1250/2500/8300MTaps/S

      サーキュラ・バッファの効用が理解出来ました.投稿に書かれている通り、CPUのFIFOだとend検出でover headありますね.

      Blackfinは16bit DSP ←これはダメかもSHARCへ移行か?

      AVアンプのようなヘビーなオーディオ信号処理にはSHARCやVerociTIが使われる.

      リミッターはSHARCで15.34MIPSを食う ←へ~

      これを読んで、STM32F730R8T6で出来そうな気がしてきました.実を言うとFIRはなるべく使わないつもりでいるんです.IIRで間に合うはずと思っています.ということはcoretex-m7で.

      削除
    15. あうー
      誤:1smpl当たり、1250/2500/8300MTaps/S
      正:1smpl当たり、1250/2500/8300Taps/S

      削除
    16. ちな、USB DCCを作ったときの感触ではM3はfilter処理にはpower負けしてた印象です.FIFO処理でヘトヘトみたいな.
      ↓この数値だとM7は3倍.果たしてどうか.
      STM32F2 M3 150DMIPS/398CoreMark
      STM32F7 M7 462DMIPS/1082CoreMark

      削除
    17. Blackfinも700番は32bitになるようですよ。とはいえ、FIRがいらないのでしたらSTM32でいいかもですね。

      削除
    18. そうですか、超ラッキー、超

      いま、BlackFinの資料を読んでるとこなのですが、古くてBF5xxしかなかった頃の資料でした.それにはDSPは16bitに最適化されていると書かれていてしょんぼりしてたとこでしたー

      最終的にSTM32一発でやれたら嬉しいです.
      ま、DSPを使ってみたかったのでクビつっこんでるわけなのでBF706がどんなものなのかの試食はしばらく続けようと思います.

      削除
  2. >Eclipseで記述されているから見た目が同じっぽくなる
    「見た目」は、Javaの「なんとか(最近、Javaやってないから名前忘れた)」というUIオブジェクトで組んでるからですね。
    ※ネタ的には、Windowsというよりも、LinuxのUI(X Windou系のやつ)に、近いですね。やたら曲線を多用してますが、私は嫌いではないです。
    ※最近は、これはあまり流行らない(今は、どちらかというと、Microsoftの VSCode みたいなUI
    (あれは、元々は、「Electron (UI部分は、Google Chrome)」ですが。要は「Wrb Browser」です。)
    が流行りみたいなので、ちょっと「古めかしい感じ」がする。)
    ですね。結構歴史が古いのかな。

    返信削除
    返信
    1. そういえば、「Arduino」の、純正開発環境も、「Java」で、出来てましたね。UIの雰囲気も「ちょっと」似てる。
      「Arduino」の開発も、「Platform IDE」なので、最近のは何かみんな
      ・VSCode
      に、乗っ取られてるって感じですね・・・

      削除
    2. ↑ 「Arduino」の開発も、「Platform IDE」なので、
      は、
      最近は、「Arduino」の開発も、みんな「Platform IDE」なので、
      です。言葉足らずでした。

      削除
    3. >Javaの「なんとか(最近、Javaやってないから名前忘れた)」というUIオブジェクトで組んでるから

      いやー笑っちまうくらい似てまして.

      まずはDSPでLチカから始めまーす

      削除