mchf firmware compilation

今mchfのボードに書き込まれているバイナリのファームウェアは5MHzバンドが送信出来たり当然免許おろせませんので、こちらの方も対策を、というか日本版のファームウェアをコンパイルできるように準備を始めました。前に作ったような気がしたコンパイル環境は3年も経って当然のように見つからないのでgitのUHSDRのページを見て、試行錯誤。最初、STM32の開発をWindows上のsystem workbench for stm32でやっている関係で、こちらのEclipseにprojectをimport すればOK?と思って、やってみたんですが、コンパイル環境が正しくセットされず、うまくいかなかったため、Ubuntu 20.04 の環境にmake でコンパイルする環境をセットすることにしました。ので、備忘録。

arm のコンパイラー等はこちらには入っていなかったので、

sudo apt-get install gcc-arm-linux-gnueabihf
sudo apt-get install gcc-arm-none-eabi
sudo apt-get install git
git clone https://github.com/df8oe/UHSDR.git
cd UHSDR/mchf-eclipse
make all

したところ、一応コンパイル通ったので良いかと思います。fw-mchf.binというのがなんかできているから、これを書けば多分動くんだと思う(default でmchfの設定になっているはず)。

あとは、こちらに従って、ソース書き換えてビルドすればいいや。ぐらいに思っていますが、一応対応個所をソースで確認。

drivers/ui/ui_driver.c

src/uhsdr_version.h

hardware/uhsdr_board.h こちらはだいぶ変わってしまってる。ので、for i in find . -name '*.h'; do echo $i; grep BAND $i; done|less などでしらみつぶしに調べる。

drivers/ui/ui_configuration.hとか、drivers/ui/radio_management.hとか,drivers/ui/radio_management.c, drivers/ui/menu/ui_menu.c を調べると、BAND_MODE_60 とかあるので、この辺をいじくればいいのかな。

多分、radio_management.cで60m など、BandInfoを定義していてそこでは、receive only やバンドの周波数を書くようになっていて、また、そのあと、bandInfo_combined[]に定義するバンドのまとめを作るようになっているので、この辺で変更すれば、きっとregion3 のバンド構成にできるんでしょう。多分。60m バンドに関しては、bi_60m_rxというのがあるからこれを使えばいいに違いない。bandInfo_regions3_thaiというのが定義されていて、なぜタイだけ?と思う。

… あたりまで、ソースを眺めて、OKということに。

あとは、EEPROMやっぱりつけとこうかな、などと思う。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)